From 6cf0462819ff7df2621bd88e3646e740d628ede0 Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Wed, 19 Apr 2017 10:23:24 -0700 Subject: [PATCH 001/321] react-redux: Remove test which does not compile in TypeScript 2.3 --- types/react-redux/react-redux-tests.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/types/react-redux/react-redux-tests.tsx b/types/react-redux/react-redux-tests.tsx index 4c7a55ea7b..543e5565ea 100644 --- a/types/react-redux/react-redux-tests.tsx +++ b/types/react-redux/react-redux-tests.tsx @@ -361,8 +361,8 @@ namespace TestTOwnPropsInference { const ConnectedWithOwnProps = connect(mapStateToPropsWithOwnProps)(OwnPropsComponent); const ConnectedWithTypeHint = connect(mapStateToPropsWithoutOwnProps)(OwnPropsComponent); - // This compiles, which is bad. - React.createElement(ConnectedWithoutOwnProps, { anything: 'goes!' }); + // This should not compile, which is good. + // React.createElement(ConnectedWithoutOwnProps, { anything: 'goes!' }); // This compiles, as expected. React.createElement(ConnectedWithOwnProps, { own: 'string' }); From 95317ca2cba7bca6edce2c769f509999e1ce9507 Mon Sep 17 00:00:00 2001 From: Mitchell Wills Date: Wed, 19 Apr 2017 11:20:02 -0700 Subject: [PATCH 002/321] Fix types of some fields in gapi.auth2.AuthResponse --- types/gapi.auth2/index.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/types/gapi.auth2/index.d.ts b/types/gapi.auth2/index.d.ts index 402da68699..ee727ed27a 100644 --- a/types/gapi.auth2/index.d.ts +++ b/types/gapi.auth2/index.d.ts @@ -131,9 +131,9 @@ declare namespace gapi.auth2 { id_token: string; login_hint: string; scope: string; - expires_in: string; - first_issued_at: string; - expires_at: string; + expires_in: number; + first_issued_at: number; + expires_at: number; } /** From 4cb5f8c313ec0a2671735cb19a8faf8bfdf435ad Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Wed, 19 Apr 2017 13:11:17 -0700 Subject: [PATCH 003/321] isomorphic-fetch: Just use fetch `--lib dom`. --- types/isomorphic-fetch/index.d.ts | 116 +----------------- .../isomorphic-fetch-tests.ts | 38 +++--- types/isomorphic-fetch/tslint.json | 1 + 3 files changed, 23 insertions(+), 132 deletions(-) create mode 100644 types/isomorphic-fetch/tslint.json diff --git a/types/isomorphic-fetch/index.d.ts b/types/isomorphic-fetch/index.d.ts index 00b40fe911..7fbc0d8ed2 100644 --- a/types/isomorphic-fetch/index.d.ts +++ b/types/isomorphic-fetch/index.d.ts @@ -2,116 +2,8 @@ // Project: https://github.com/matthew-andrews/isomorphic-fetch // Definitions by: Todd Lucas // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 -interface ForEachCallback { - (keyId: any, status: string): void; -} - -interface Headers { - append(name: string, value: string): void; - delete(name: string): void; - forEach(callback: ForEachCallback): void; - get(name: string): string | null; - has(name: string): boolean; - set(name: string, value: string): void; -} - -declare var Headers: { - prototype: Headers; - new(init?: any): Headers; -} - -interface Blob { - readonly size: number; - readonly type: string; - msClose(): void; - msDetachStream(): any; - slice(start?: number, end?: number, contentType?: string): Blob; -} - -interface Body { - readonly bodyUsed: boolean; - arrayBuffer(): Promise; - blob(): Promise; - json(): Promise; - text(): Promise; -} - -interface RequestInit { - method?: string; - headers?: any; - body?: any; - referrer?: string; - referrerPolicy?: string; - mode?: string; - credentials?: string; - cache?: string; - redirect?: string; - integrity?: string; - keepalive?: boolean; - window?: any; -} - -interface Request extends Object, Body { - readonly cache: string; - readonly credentials: string; - readonly destination: string; - readonly headers: Headers; - readonly integrity: string; - readonly keepalive: boolean; - readonly method: string; - readonly mode: string; - readonly redirect: string; - readonly referrer: string; - readonly referrerPolicy: string; - readonly type: string; - readonly url: string; - clone(): Request; -} - -declare var Request: { - prototype: Request; - new(input: Request | string, init?: RequestInit): Request; -} - -interface ReadableStream { - readonly locked: boolean; - cancel(): Promise; -} - -interface ResponseInit { - status?: number; - statusText?: string; - headers?: any; -} - -interface Response extends Object, Body { - readonly body: ReadableStream | null; - readonly headers: Headers; - readonly ok: boolean; - readonly status: number; - readonly statusText: string; - readonly type: string; - readonly url: string; - clone(): Response; -} - -declare var Response: { - prototype: Response; - new(body?: any, init?: ResponseInit): Response; -} - -interface GlobalFetch { - fetch(input: Request | string, init?: RequestInit): Promise; -} - -interface Window extends GlobalFetch { -} - -declare function fetch(input: Request | string, init?: RequestInit): Promise; - -declare module "isomorphic-fetch" { - namespace _fetch { } - const _fetch: typeof fetch; - export = _fetch; -} +declare namespace _fetch { } +declare const _fetch: typeof fetch; +export = _fetch; diff --git a/types/isomorphic-fetch/isomorphic-fetch-tests.ts b/types/isomorphic-fetch/isomorphic-fetch-tests.ts index ac1a008350..6c5ad99a68 100644 --- a/types/isomorphic-fetch/isomorphic-fetch-tests.ts +++ b/types/isomorphic-fetch/isomorphic-fetch-tests.ts @@ -1,4 +1,3 @@ -/// import fetchImportedViaCommonJS = require('isomorphic-fetch'); import * as fetchImportedViaES6Module from 'isomorphic-fetch'; @@ -35,13 +34,12 @@ function test_isomorphicFetchTestCases_es6() { }); } - function test_whatwgTestCases_ambient() { - var headers = new Headers(); + const headers = new Headers(); headers.append("Content-Type", "application/json"); - var requestOptions: RequestInit = { + let requestOptions: RequestInit = { method: "POST", - headers: headers, + headers, mode: 'same-origin', credentials: 'omit', cache: 'default' @@ -49,7 +47,7 @@ function test_whatwgTestCases_ambient() { expectSuccess(fetch('http://localhost:3000/poster', requestOptions), 'Post response:'); - var requestOptions: RequestInit = { + requestOptions = { method: "POST", headers: { 'Content-Type': 'application/json' @@ -58,23 +56,23 @@ function test_whatwgTestCases_ambient() { expectSuccess(fetch('http://localhost:3000/poster', requestOptions), 'Post response:'); - var requestOptions: RequestInit = { + requestOptions = { method: "POST", headers: { 'Content-Type': 'application/json' } }; - var request: Request = new Request('http://localhost:3000/poster', requestOptions); + const request: Request = new Request('http://localhost:3000/poster', requestOptions); expectSuccess(fetch(request), 'Post response:'); } function test_whatwgTestCases_commonjs() { - var headers = new Headers(); + const headers = new Headers(); headers.append("Content-Type", "application/json"); - var requestOptions: RequestInit = { + let requestOptions: RequestInit = { method: "POST", - headers: headers, + headers, mode: 'same-origin', credentials: 'omit', cache: 'default' @@ -82,7 +80,7 @@ function test_whatwgTestCases_commonjs() { expectSuccess(fetchImportedViaCommonJS('http://localhost:3000/poster', requestOptions), 'Post response:'); - var requestOptions: RequestInit = { + requestOptions = { method: "POST", headers: { 'Content-Type': 'application/json' @@ -91,23 +89,23 @@ function test_whatwgTestCases_commonjs() { expectSuccess(fetchImportedViaCommonJS('http://localhost:3000/poster', requestOptions), 'Post response:'); - var requestOptions: RequestInit = { + requestOptions = { method: "POST", headers: { 'Content-Type': 'application/json' } }; - var request: Request = new Request('http://localhost:3000/poster', requestOptions); + const request: Request = new Request('http://localhost:3000/poster', requestOptions); expectSuccess(fetchImportedViaCommonJS(request), 'Post response:'); } function test_whatwgTestCases_es6() { - var headers = new Headers(); + const headers = new Headers(); headers.append("Content-Type", "application/json"); - var requestOptions: RequestInit = { + let requestOptions: RequestInit = { method: "POST", - headers: headers, + headers, mode: 'same-origin', credentials: 'omit', cache: 'default' @@ -115,7 +113,7 @@ function test_whatwgTestCases_es6() { expectSuccess(fetchImportedViaES6Module('http://localhost:3000/poster', requestOptions), 'Post response:'); - var requestOptions: RequestInit = { + requestOptions = { method: "POST", headers: { 'Content-Type': 'application/json' @@ -124,13 +122,13 @@ function test_whatwgTestCases_es6() { expectSuccess(fetchImportedViaES6Module('http://localhost:3000/poster', requestOptions), 'Post response:'); - var requestOptions: RequestInit = { + requestOptions = { method: "POST", headers: { 'Content-Type': 'application/json' } }; - var request: Request = new Request('http://localhost:3000/poster', requestOptions); + const request: Request = new Request('http://localhost:3000/poster', requestOptions); expectSuccess(fetchImportedViaES6Module(request), 'Post response:'); } diff --git a/types/isomorphic-fetch/tslint.json b/types/isomorphic-fetch/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/isomorphic-fetch/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From 648ab290969828f8b926b873b69e2f6acf20936d Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Wed, 19 Apr 2017 15:23:44 -0500 Subject: [PATCH 004/321] Update react-datepicker typings for 0.46 --- types/react-datepicker/index.d.ts | 123 +++++++++--------- .../react-datepicker-tests.tsx | 50 ++++--- 2 files changed, 88 insertions(+), 85 deletions(-) diff --git a/types/react-datepicker/index.d.ts b/types/react-datepicker/index.d.ts index 467981c2fc..ab6242b2b0 100644 --- a/types/react-datepicker/index.d.ts +++ b/types/react-datepicker/index.d.ts @@ -1,65 +1,70 @@ -// Type definitions for react-datepicker v0.40.0 +// Type definitions for react-datepicker 0.46 // Project: https://github.com/Hacker0x01/react-datepicker -// Definitions by: Rajab Shakirov , Andrey Balokha +// Definitions by: Rajab Shakirov , +// Andrey Balokha , +// Greg Smith // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.1 -declare module "react-datepicker" { - import * as React from "react"; - import * as moment from "moment"; +import * as React from "react"; +import * as moment from "moment"; - interface ReactDatePickerProps { - autoComplete?: string; - autoFocus?: boolean; - className?: string; - customInput?: React.ReactNode; - dateFormat?: string; - dateFormatCalendar?: string; - disabled?: boolean; - dropdownMode?: string; - endDate?: moment.Moment; - excludeDates?: any[]; - filterDate?(): any; - fixedHeight?: boolean; - forceShowMonthNavigation?: boolean; - highlightDates?: any[]; - id?: string; - includeDates?: any[]; - inline?: boolean; - isClearable?: boolean; - locale?: string; - maxDate?: moment.Moment; - minDate?: moment.Moment; - monthsShown?: number; - name?: string; - onBlur?(event: React.FocusEvent): void; - onChange(date: moment.Moment | null, event: React.SyntheticEvent | undefined): any; - onChangeRaw?(event: React.FocusEvent): void; - onFocus?(event: React.FocusEvent): void; - onMonthChange?(date: moment.Moment): void; - openToDate?: moment.Moment; - peekNextMonth?: boolean; - placeholderText?: string; - popoverAttachment?: string; - popoverTargetAttachment?: string; - popoverTargetOffset?: string; - readOnly?: boolean; - renderCalendarTo?: any; - required?: boolean; - scrollableYearDropdown?: boolean; - selected?: moment.Moment | null; - selectsEnd?: boolean; - selectsStart?: boolean; - showMonthDropdown?: boolean; - showYearDropdown?: boolean; - showWeekNumbers?: boolean; - startDate?: moment.Moment; - tabIndex?: number; - tetherConstraints?: any[]; - title?: string; - todayButton?: string; - utcOffset?: number; - } - let ReactDatePicker: React.ClassicComponentClass; - export = ReactDatePicker; +interface ReactDatePickerProps { + autoComplete?: string; + autoFocus?: boolean; + calendarClassName?: string; + className?: string; + customInput?: React.ReactNode; + dateFormat?: string | string[]; + dateFormatCalendar?: string; + disabled?: boolean; + disabledKeyboardNavigation?: boolean; + dropdownMode?: string; + endDate?: moment.Moment; + excludeDates?: any[]; + filterDate?(): any; + fixedHeight?: boolean; + forceShowMonthNavigation?: boolean; + highlightDates?: any[]; + id?: string; + includeDates?: any[]; + inline?: boolean; + isClearable?: boolean; + locale?: string; + maxDate?: moment.Moment; + minDate?: moment.Moment; + monthsShown?: number; + name?: string; + onBlur?(event: React.FocusEvent): void; + onChange(date: moment.Moment | null, event: React.SyntheticEvent | undefined): any; + onChangeRaw?(event: React.FocusEvent): void; + onClickOutside?(event: React.MouseEvent): void; + onFocus?(event: React.FocusEvent): void; + onMonthChange?(date: moment.Moment): void; + openToDate?: moment.Moment; + peekNextMonth?: boolean; + placeholderText?: string; + popoverAttachment?: string; + popoverTargetAttachment?: string; + popoverTargetOffset?: string; + readOnly?: boolean; + renderCalendarTo?: any; + required?: boolean; + scrollableYearDropdown?: boolean; + selected?: moment.Moment | null; + selectsEnd?: boolean; + selectsStart?: boolean; + showMonthDropdown?: boolean; + showWeekNumbers?: boolean; + showYearDropdown?: boolean; + startDate?: moment.Moment; + tabIndex?: number; + tetherConstraints?: any[]; + title?: string; + todayButton?: string; + utcOffset?: number; + value?: string; + withPortal?: boolean; } +declare const ReactDatePicker: React.ClassicComponentClass; +export default ReactDatePicker; diff --git a/types/react-datepicker/react-datepicker-tests.tsx b/types/react-datepicker/react-datepicker-tests.tsx index df1b02dacf..5a29b38149 100644 --- a/types/react-datepicker/react-datepicker-tests.tsx +++ b/types/react-datepicker/react-datepicker-tests.tsx @@ -1,30 +1,28 @@ -import * as React from "react"; +import * as React from 'react'; import * as moment from 'moment'; -import * as DatePicker from 'react-datepicker'; +import DatePicker from 'react-datepicker'; -class ReactDatePicker extends React.Component<{}, { startDate: moment.Moment; displayName:string; }> { - constructor(props: {}) { - super(); - this.state = { - startDate: moment(), - displayName: 'Example' - } - this.handleChange = this.handleChange.bind(this); - } +class ReactDatePicker extends React.Component<{}, { startDate: moment.Moment; displayName: string; }> { + constructor(props: {}) { + super(); + this.state = { + startDate: moment(), + displayName: 'Example' + }; + this.handleChange = this.handleChange.bind(this); + } - handleChange = function(date?: moment.Moment | null) { - this.setState({ - startDate: date - }); - } + handleChange = function(date?: moment.Moment | null) { + this.setState({ + startDate: date + }); + }; - render(){ - return ( -
- -
- ); - } -}; \ No newline at end of file + render() { + return ( + + ); + } +} From 9ab9dd2efc0197aec5f5378b4cfc67f1587fb6d8 Mon Sep 17 00:00:00 2001 From: Greg Smith Date: Wed, 19 Apr 2017 15:24:00 -0500 Subject: [PATCH 005/321] Add tslint configuration to react-datepicker --- types/react-datepicker/tslint.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 types/react-datepicker/tslint.json diff --git a/types/react-datepicker/tslint.json b/types/react-datepicker/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/react-datepicker/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From fae193727af1273cfe58a400cf6435e9009fbcc8 Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Wed, 19 Apr 2017 13:44:36 -0700 Subject: [PATCH 006/321] backlog-js should use lib instead of isomorphic-fetch --- types/backlog-js/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/backlog-js/index.d.ts b/types/backlog-js/index.d.ts index d06f764baa..e0742c39dd 100644 --- a/types/backlog-js/index.d.ts +++ b/types/backlog-js/index.d.ts @@ -2,9 +2,9 @@ // Project: https://github.com/nulab/backlog-js // Definitions by: Yuichi Watanabe // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 /// -/// declare class Request { private configure; From 0ddf761d3b55c3bdcc739c59b0614f8695cf7295 Mon Sep 17 00:00:00 2001 From: Kanchalai Tanglertsampan Date: Wed, 19 Apr 2017 16:28:09 -0700 Subject: [PATCH 007/321] Update test error when using 2.3 compiler --- types/fixed-data-table/fixed-data-table-tests.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/types/fixed-data-table/fixed-data-table-tests.tsx b/types/fixed-data-table/fixed-data-table-tests.tsx index f57ff3d946..66e85cd6b5 100644 --- a/types/fixed-data-table/fixed-data-table-tests.tsx +++ b/types/fixed-data-table/fixed-data-table-tests.tsx @@ -93,7 +93,11 @@ class MyTextCell extends React.Component { const {rowIndex, field, myData} = this.props; return ( - + {myData[rowIndex][field]} ); @@ -106,7 +110,11 @@ class MyLinkCell extends React.Component { const link: string = myData[rowIndex][field]; return ( - + {link} ); From 029797d3158f20521dbf1453d72cea6b29266e29 Mon Sep 17 00:00:00 2001 From: Kanchalai Tanglertsampan Date: Wed, 19 Apr 2017 16:29:34 -0700 Subject: [PATCH 008/321] Update react-helmet return type of toComponent() according to https://github.com/nfl/react-helmet/blob/master/src/HelmetUtils.js --- types/react-helmet/index.d.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/types/react-helmet/index.d.ts b/types/react-helmet/index.d.ts index aa80c77b3b..f8a96617b6 100644 --- a/types/react-helmet/index.d.ts +++ b/types/react-helmet/index.d.ts @@ -32,8 +32,8 @@ export class Helmet extends React.Component { export interface HelmetData { base: HelmetDatum; - bodyAttributes: HelmetDatum; - htmlAttributes: HelmetDatum; + bodyAttributes: HelmetAttributesTagObject; + htmlAttributes: HelmetAttributesTagObject; link: HelmetDatum; meta: HelmetDatum; noscript: HelmetDatum; @@ -48,6 +48,11 @@ export interface HelmetDatum { toComponent(): React.Component; } +export interface HelmetAttributesTagObject { + toString(): string; + toComponent(): React.HTMLAttributes; +} + export const peek: () => HelmetData; export const rewind: () => HelmetData; export const renderStatic: () => HelmetData; From 12511d4ab20d875f7757ecfebcbc995ad44a545d Mon Sep 17 00:00:00 2001 From: Casey Link Date: Thu, 20 Apr 2017 10:08:54 +0200 Subject: [PATCH 009/321] Add screeps-profiler package --- types/screeps-profiler/index.d.ts | 132 ++++++++++++++++++ .../screeps-profiler-tests.ts | 42 ++++++ types/screeps-profiler/tsconfig.json | 22 +++ types/screeps-profiler/tslint.json | 1 + 4 files changed, 197 insertions(+) create mode 100644 types/screeps-profiler/index.d.ts create mode 100644 types/screeps-profiler/screeps-profiler-tests.ts create mode 100644 types/screeps-profiler/tsconfig.json create mode 100644 types/screeps-profiler/tslint.json diff --git a/types/screeps-profiler/index.d.ts b/types/screeps-profiler/index.d.ts new file mode 100644 index 0000000000..6ce153c7de --- /dev/null +++ b/types/screeps-profiler/index.d.ts @@ -0,0 +1,132 @@ +// Type definitions for screeps-profiler 1.2 +// Project: https://github.com/gdborton/screeps-profiler +// Definitions by: Casey Link +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/** + * The Screeps Profiler is a library that helps to understand where your CPU is being spent in + * the game of Screeps. + * It works by monkey patching functions on the Global game object prototypes, with a function that + * record how long each function takes. The primary benefit of using this profiler is that you can + * get a clear picture of where your CPU is being used over time, and optimize some of the heavier functions. + * While it works best for players that heavily employ prototypes in their code, it should work + * to some degree for all players. + * + * Any modules that you use that modify the game's prototypes should be imported + * before you require the profiler. + * + * @see More information at https://github.com/gdborton/screeps-profiler + */ +interface ScreepsGameProfiler { + /** + * Will run for the given number of ticks then will output the gathered information to the console. + * + * @param {number} ticks - controls how long the profiler should run before stopping + * @param {string} [functionFilter] - parameter will limit the scope of the profiler to a specific function name + */ + profile(ticks: number, functionFilter?: string): void; + + /** + * Will run for the given number of ticks, and will output the gathered information each tick to + * the console. The can sometimes be useful for seeing spikes in performance. + * + * @param {number} ticks - controls how long the profiler should run before stopping + * @param {string} [functionFilter] - parameter will limit the scope of the profiler to a specific function name + */ + stream(ticks: number, functionFilter?: string): void; + + /** + * This will run for the given number of ticks, and will email the output to your registered + * Screeps email address. Very useful for long running profiles. + * + * @param {number} ticks - controls how long the profiler should run before stopping + * @param {string} [functionFilter] - parameter will limit the scope of the profiler to a specific function name + */ + email(ticks: number, functionFilter?: string): void; + + /** + * This will run indefinitely, and will only output data when the output console command is run. + * Very useful for long running profiles with lots of function calls. + * + * @param {string} [functionFilter] - parameter will limit the scope of the profiler to a specific function name + */ + background(functionFilter?: string): void; + + /** + * Print a report based on the current tick. The profiler will continue to operate normally. + * This is currently the only way to get data from the background profile. + * + * @param {number} [lineCount=20] the number of lines to output + */ + output(lineCount?: number): void; + + /** + * Stops the profiler and resets its memory. This is currently the only way to stop a background profile. + */ + reset(): void; + + /** + * Restarts the profiler using the same options previously used to start it. + */ + restart(): void; +} + +interface ScreepsProfilerStatic { + /** + * This line monkey patches the global prototypes. Should be called before and outside your main loop. + */ + enable(): void; + + /** + * Wrap your main loop with this function. + * + * @param {function} callback - your main loop function + */ + // tslint:disable-next-line ban-types + wrap(callback: Function): Function; + + /** + * Register a class to be profiled. Each of the functions on this class will be replaced with + * a profiler wrapper + * @param {Object} clazz constructor + * @param {string} className - The name of the class, a label used in output + */ + // tslint:disable-next-line ban-types + registerClass(constructor: Function, className: string): void; + + /** + * Each of the functions on this object will be replaced with a profiler wrapper. + * @param {Object} object + * @param {string} objectName - Name of the object, a label used in output + */ + registerObject(object: any, objectName: string): void; + + /** + * Wraps a function for profiling, returns the wrapped function. + * + * Be sure to reassign the function, we can't alter functions that are passed. + * + * The second param is optional if you pass a named function function x() {}, but required if + * you pass an anonymous function var x = function(){}. + * + * @param {string} [fnName] - Name of the function, used as a label in output + * @return {function} the original function wrapped for profiling + */ + // tslint:disable-next-line ban-types + registerFN(fn: Function, fnName?: string): Function; +} + +declare global { + /** + * screeps-profiler extends the Game interface with itself + * @see http://docs.screeps.com/api/#Game + */ + interface Game { + profiler: ScreepsGameProfiler; + } + var Game: Game; +} + +declare var profiler: ScreepsProfilerStatic; + +export = profiler; diff --git a/types/screeps-profiler/screeps-profiler-tests.ts b/types/screeps-profiler/screeps-profiler-tests.ts new file mode 100644 index 0000000000..bae26d3e91 --- /dev/null +++ b/types/screeps-profiler/screeps-profiler-tests.ts @@ -0,0 +1,42 @@ +import profiler = require("screeps-profiler"); + +function testFunction() { +} + +class TestClass { + private dummy: string; +} + +const testObj = { + foo() { + }, +}; + +profiler.enable(); +profiler.wrap(testFunction); +profiler.registerClass(TestClass, "TestClass"); +profiler.registerObject(testObj, "testObj"); +profiler.registerFN(testFunction); +profiler.registerFN(testFunction, "testFunction"); + +const ticks: number = 100; +const filterName: string = "test"; + +Game.profiler.profile(ticks); +Game.profiler.profile(ticks, filterName); + +Game.profiler.stream(ticks); +Game.profiler.stream(ticks, filterName); + +Game.profiler.email(ticks); +Game.profiler.email(ticks, filterName); + +Game.profiler.background(); +Game.profiler.background(filterName); + +Game.profiler.output(); +Game.profiler.output(100); + +Game.profiler.reset(); + +Game.profiler.restart(); diff --git a/types/screeps-profiler/tsconfig.json b/types/screeps-profiler/tsconfig.json new file mode 100644 index 0000000000..4334877022 --- /dev/null +++ b/types/screeps-profiler/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "screeps-profiler-tests.ts" + ] +} diff --git a/types/screeps-profiler/tslint.json b/types/screeps-profiler/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/screeps-profiler/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From 5966c451330e8db7d5243b0029f610843b5a51ed Mon Sep 17 00:00:00 2001 From: Hongbo Miao Date: Fri, 21 Apr 2017 23:25:11 -0700 Subject: [PATCH 010/321] chance: add gender --- types/chance/index.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/types/chance/index.d.ts b/types/chance/index.d.ts index 10538b747c..fc5347e859 100644 --- a/types/chance/index.d.ts +++ b/types/chance/index.d.ts @@ -39,6 +39,7 @@ declare namespace Chance { // Person age(opts?: Options): number; + gender(): string; birthday(): Date; birthday(opts?: Options): Date|string; cpf(): string; From b8848ee8cacbcf3a5b6de3eb08a772061eda1e8f Mon Sep 17 00:00:00 2001 From: Kanchalai Tanglertsampan Date: Mon, 24 Apr 2017 14:47:56 -0700 Subject: [PATCH 011/321] update header --- types/react-helmet/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/react-helmet/index.d.ts b/types/react-helmet/index.d.ts index f8a96617b6..fc44177f51 100644 --- a/types/react-helmet/index.d.ts +++ b/types/react-helmet/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for react-helmet 5.0 // Project: https://github.com/nfl/react-helmet -// Definitions by: Evan Bremer , Isman Usoh , François Nguyen , Kok Sam +// Definitions by: Evan Bremer , Isman Usoh , François Nguyen , Kok Sam , Yui T. // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.1 From 37af92fb27cabd477ab7f82e0940c8546ab24fba Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Tue, 25 Apr 2017 08:49:27 -0700 Subject: [PATCH 012/321] Add types for redux-devtools-extension (#16089) --- types/redux-devtools-extension/index.d.ts | 146 ++++++++++++++++++ types/redux-devtools-extension/package.json | 5 + .../redux-devtools-extension-tests.ts | 90 +++++++++++ types/redux-devtools-extension/tsconfig.json | 22 +++ types/redux-devtools-extension/tslint.json | 1 + 5 files changed, 264 insertions(+) create mode 100644 types/redux-devtools-extension/index.d.ts create mode 100644 types/redux-devtools-extension/package.json create mode 100644 types/redux-devtools-extension/redux-devtools-extension-tests.ts create mode 100644 types/redux-devtools-extension/tsconfig.json create mode 100644 types/redux-devtools-extension/tslint.json diff --git a/types/redux-devtools-extension/index.d.ts b/types/redux-devtools-extension/index.d.ts new file mode 100644 index 0000000000..6ef19104c4 --- /dev/null +++ b/types/redux-devtools-extension/index.d.ts @@ -0,0 +1,146 @@ +// Type definitions for redux-devtools-extension 2.13 +// Project: https://github.com/zalmoxisus/redux-devtools-extension +// Definitions by: Daniel Perez Alvarez +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import { + Action, + ActionCreator, + ActionCreatorsMapObject, + GenericStoreEnhancer +} from "redux"; + +export interface ReduxDevToolsSerializeOptions { + /** Serialization mode. */ + options?: any; + /** JSON replacer function used for both actions and states stringify. */ + replacer?(key: any, value: any): any; + /** JSON reviver function used for parsing the imported actions and states. */ + reviver?(key: any, value: any): any; + /** + * Automatically serialize/deserialize Immutable.js via + * `remotedev-serialize`. + */ + immutable?: any; + /** + * Immutable.js `Record` classes used to make possible restore its + * instances back when importing, persisting, etc. + */ + refs?: any[]; +} + +export interface ReduxDevToolsFeaturesOptions { + /** Start/pause recording of dispatched actions */ + pause?: boolean; + /** Lock/unlock dispatching actions and side effects */ + lock?: boolean; + /** Persist states on page reloading */ + persist?: boolean; + /** Export history of actions in a file */ + export?: boolean | 'custom'; + /** Import history of actions from a file */ + import?: boolean | 'custom'; + /** Jump back and forth (time travelling) */ + jump?: boolean; + /** Skip (cancel) actions */ + skip?: boolean; + /** Drag and drop actions in the history list */ + reorder?: boolean; + /** Dispatch custom actions or action creators */ + dispatch?: boolean; + /** Generate tests for the selected actions */ + test?: boolean; +} + +export interface ReduxDevToolsOptions { + /** The instance name to be showed on the monitor page. */ + name?: string; + /** Action creators functions to be available in the dispatcher. */ + actionCreators?: Array> | ActionCreatorsMapObject; + /** + * If more than one action is dispatched in the indicated interval in ms, + * all new actions will be collected and sent at once. It is the joint + * between performance and speed. When set to `0`, all actions will be sent + * instantly. Set it to a higher value when experiencing perf issues (also + * `maxAge` to a lower value). + */ + latency?: number; + /** + * Maximum allowed actions to be stored in the history tree. The oldest + * actions are removed once `maxAge` is reached. It's critical for + * performance. + */ + maxAge?: number; + /** Serialization options. */ + serialize?: ReduxDevToolsSerializeOptions; + /** + * Function which takes `action` object as argument, and should return + * `action` object back. + */ + actionSanitizer?(action: any): any; + /** + * Function which takes `state` object as argument, and should return + * `state` object back. + */ + stateSanitizer?(state: any): any; + /** + * Actions types to be hidden in the monitors (while passed to the + * reducers). If `actionsWhitelist` specified, `actionsBlacklist` is ignored. + */ + actionsBlacklist?: string | string[]; + /** + * Actions types to be shown in the monitors (while passed to the reducers). + * If `actionsWhitelist` specified, `actionsBlacklist` is ignored. + */ + actionsWhitelist?: string | string[]; + /** + * Called for every action before sending, takes `state` and `action` + * object, and returns `true` in case it allows sending the current data to + * the monitor. Use it as a more advanced version of + * `actionsBlacklist`/`actionsWhitelist` parameters. + */ + predicate?(state: any, action: any): boolean; + /** + * If specified as `false`, it will not record the changes till clicking on + * *Start recording* button. Available only for Redux enhancer, for others + * use `autoPause`. + */ + shouldRecordChanges?: boolean; + /** + * If specified, whenever clicking on *Pause recording* button and there are + * actions in the history log, will add this action type. If not specified, + * will commit when paused. Available only for Redux enhancer. + */ + pauseActionType?: string; + /** + * Auto-pauses when the extension’s window is not opened, and so has zero + * impact on your app when not in use. Not available for Redux enhancer (as + * it already does it but storing the data to be sent). + */ + autoPause?: boolean; + /** + * If specified as `true`, it will not allow any non-monitor actions to be + * dispatched till clicking on *Unlock changes* button. Available only for + * Redux enhancer. + */ + shouldStartLocked?: boolean; + /** + * If set to `false`, will not recompute the states on hot reloading (or on + * replacing the reducers). Available only for Redux enhancer. + */ + shouldHotReload?: boolean; + /** + * If specified as `true`, whenever there's an exception in reducers, the + * monitors will show the error message, and next actions will not be + * dispatched. + */ + shouldCatchErrors?: boolean; + /** + * If you want to restrict the extension, just specify the features you + * allow. + */ + features?: ReduxDevToolsFeaturesOptions; +} + +export function composeWithDevTools(options?: ReduxDevToolsOptions): (...funcs: GenericStoreEnhancer[]) => GenericStoreEnhancer; +export function composeWithDevTools(...funcs: GenericStoreEnhancer[]): GenericStoreEnhancer; diff --git a/types/redux-devtools-extension/package.json b/types/redux-devtools-extension/package.json new file mode 100644 index 0000000000..36ce503807 --- /dev/null +++ b/types/redux-devtools-extension/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "redux": "^3.6.0" + } +} diff --git a/types/redux-devtools-extension/redux-devtools-extension-tests.ts b/types/redux-devtools-extension/redux-devtools-extension-tests.ts new file mode 100644 index 0000000000..45ac5c2651 --- /dev/null +++ b/types/redux-devtools-extension/redux-devtools-extension-tests.ts @@ -0,0 +1,90 @@ +import { + Action, + Middleware, + Reducer, + applyMiddleware, + createStore +} from 'redux'; +import { composeWithDevTools } from 'redux-devtools-extension'; + +const composeEnhancers = composeWithDevTools(); + +const reducer: Reducer<{}> = () => ({}); +const middleware: Middleware[] = []; +const store = createStore(reducer, composeEnhancers( + applyMiddleware(...middleware) +)); + +const store2 = createStore(reducer, composeWithDevTools({ + serialize: { + options: { + undefined: true, + function: (fn: any) => fn.toString() + } + } +})); + +const store3 = createStore(reducer, composeWithDevTools({ + serialize: { + replacer: (key, value) => 'foo' + } +})); + +const store4 = createStore(reducer, composeWithDevTools({ + serialize: { + replacer: (key, value) => 'bar' + } +})); + +const store5 = createStore(reducer, composeWithDevTools({ + serialize: { + reviver: (key, value) => 'baz' + } +})); + +const store6 = createStore(reducer, composeWithDevTools({ + serialize: { + immutable: /* Immutable */ {} + } +})); + +const store7 = createStore(reducer, composeWithDevTools({ + serialize: { + immutable: /* Immutable */ {}, + refs: [/* Record */ {}] + } +})); + +const store8 = createStore(reducer, composeWithDevTools({ + actionSanitizer: (action) => action, + stateSanitizer: (state) => state +})); + +const store9 = createStore(reducer, composeWithDevTools({ + actionsBlacklist: 'SOME_ACTION' +})); + +const store10 = createStore(reducer, composeWithDevTools({ + predicate: (state, action) => state.dev.logLevel === 'VERBOSE' && !action.forwarded +})); + +const store11 = createStore(reducer, composeWithDevTools({ + shouldRecordChanges: true, + pauseActionType: '@@PAUSE', + autoPause: true, + shouldStartLocked: true, + shouldHotReload: true, + shouldCatchErrors: true, + features: { + pause: true, // start/pause recording of dispatched actions + lock: true, // lock/unlock dispatching actions and side effects + persist: true, // persist states on page reloading + export: 'custom', // export history of actions in a file + import: 'custom', // import history of actions from a file + jump: true, // jump back and forth (time travelling) + skip: true, // skip (cancel) actions + reorder: true, // drag and drop actions in the history list + dispatch: true, // dispatch custom actions or action creators + test: true // generate tests for the selected actions + } +})); diff --git a/types/redux-devtools-extension/tsconfig.json b/types/redux-devtools-extension/tsconfig.json new file mode 100644 index 0000000000..6d8d644ea6 --- /dev/null +++ b/types/redux-devtools-extension/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "redux-devtools-extension-tests.ts" + ] +} diff --git a/types/redux-devtools-extension/tslint.json b/types/redux-devtools-extension/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/redux-devtools-extension/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From b6746d73a2ddf103c6825449ee2b0953f716d994 Mon Sep 17 00:00:00 2001 From: Tom Wanzek Date: Tue, 25 Apr 2017 12:45:20 -0400 Subject: [PATCH 013/321] D3 Update to 4.8.0 (d3-array 1.2 [Feature/Fix] and d3-format 1.2 [Feature]) (#15904) * Update d3-format to v1.2 * [Feature] Adds support for optional "percent" suffix in locale definition. * Added tslint.json file * [d3-array] Update to version 1.2 * [Feature]: Add `tickIncrement(...)` * [Fix]: Fix incorrect return type of tickStep(...). The correct return type is `number` instead of `number[]` * [Chore]: Updated related comments * [d3] Update minor version to 4.8 * Fix d3-format related linting errors. --- types/d3-array/d3-array-tests.ts | 6 +++- types/d3-array/index.d.ts | 54 +++++++++++++++++++++++++++--- types/d3-format/d3-format-tests.ts | 14 ++++++-- types/d3-format/index.d.ts | 12 ++++--- types/d3-format/tslint.json | 3 ++ types/d3/index.d.ts | 2 +- 6 files changed, 76 insertions(+), 15 deletions(-) create mode 100644 types/d3-format/tslint.json diff --git a/types/d3-array/d3-array-tests.ts b/types/d3-array/d3-array-tests.ts index bb713192e8..b95da5774f 100644 --- a/types/d3-array/d3-array-tests.ts +++ b/types/d3-array/d3-array-tests.ts @@ -389,9 +389,13 @@ mergedArray = d3Array.shuffle(mergedArray, 1, 3); numbersArray = d3Array.ticks(1, 10, 5); +// tickIncrement() ------------------------------------------------------------------ + +let numDiff: number = d3Array.tickIncrement(1, 10, 5); + // tickStep() ------------------------------------------------------------------ -numbersArray = d3Array.tickStep(1, 10, 5); +numDiff = d3Array.tickStep(1, 10, 5); // transpose() ----------------------------------------------------------------- diff --git a/types/d3-array/index.d.ts b/types/d3-array/index.d.ts index 74ecbb0e36..aee2ef38c7 100644 --- a/types/d3-array/index.d.ts +++ b/types/d3-array/index.d.ts @@ -1,9 +1,9 @@ -// Type definitions for D3JS d3-array module 1.1 +// Type definitions for D3JS d3-array module 1.2 // Project: https://github.com/d3/d3-array // Definitions by: Alex Ford , Boris Yankov , Tom Wanzek // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// Last module patch version validated against: 1.1.0 +// Last module patch version validated against: 1.2.0 // -------------------------------------------------------------------------- // Shared Types and Interfaces @@ -246,14 +246,45 @@ export function shuffle(array: T[], lo?: number, hi?: number): T[]; /** * Generate an array of approximately count + 1 uniformly-spaced, nicely-rounded values between start and stop (inclusive). + * Each value is a power of ten multiplied by 1, 2 or 5. See also d3.tickIncrement, d3.tickStep and linear.ticks. + * + * Ticks are inclusive in the sense that they may include the specified start and stop values if (and only if) they are exact, + * nicely-rounded values consistent with the inferred step. More formally, each returned tick t satisfies start ≤ t and t ≤ stop. + * + * @param start Start value for ticks + * @param stop Stop value for ticks + * @param count count + 1 is the approximate number of ticks to be returned by d3.ticks. */ export function ticks(start: number, stop: number, count: number): number[]; /** - * Generate an array of with the differences between adjecent ticks, had the same arguments - * been passed to ticks(start, stop, count) + * Returns the difference between adjacent tick values if the same arguments were passed to d3.ticks: + * a nicely-rounded value that is a power of ten multiplied by 1, 2 or 5. + * + * Like d3.tickStep, except requires that start is always less than or equal to step, and if the tick step for the given start, + * stop and count would be less than one, returns the negative inverse tick step instead. + * + * This method is always guaranteed to return an integer, and is used by d3.ticks to avoid guarantee that the returned tick values + * are represented as precisely as possible in IEEE 754 floating point. + * + * @param start Start value for ticks + * @param stop Stop value for ticks + * @param count count + 1 is the approximate number of ticks to be returned by d3.ticks. */ -export function tickStep(start: number, stop: number, count: number): number[]; +export function tickIncrement(start: number, stop: number, count: number): number; + +/** + * Returns the difference between adjacent tick values if the same arguments were passed to d3.ticks: + * a nicely-rounded value that is a power of ten multiplied by 1, 2 or 5. + * + * Note that due to the limited precision of IEEE 754 floating point, the returned value may not be exact decimals; + * use d3-format to format numbers for human consumption. + * + * @param start Start value for ticks + * @param stop Stop value for ticks + * @param count count + 1 is the approximate number of ticks to be returned by d3.ticks. + */ +export function tickStep(start: number, stop: number, count: number): number; /** * Transpose a matrix provided in Array of Arrays format. @@ -298,6 +329,9 @@ export interface HistogramGenerator { * Divide the domain uniformly into approximately count bins. IMPORTANT: This threshold * setting approach only works, when the materialized values are numbers! * + * Any threshold values outside the domain are ignored. The first bin.x0 is always equal to the minimum domain value, + * and the last bin.x1 is always equal to the maximum domain value. + * * @param count The desired number of uniform bins. */ thresholds(count: number): this; @@ -306,6 +340,9 @@ export interface HistogramGenerator { * Divides the domain uniformly into approximately count bins. IMPORTANT: This threshold * setting approach only works, when the materialized values are numbers! * + * Any threshold values outside the domain are ignored. The first bin.x0 is always equal to the minimum domain value, + * and the last bin.x1 is always equal to the maximum domain value. + * * @param count A function which accepts as arguments the array of materialized values, and * optionally the domain minimum and maximum. The function calcutates and returns the suggested * number of bins. @@ -313,6 +350,10 @@ export interface HistogramGenerator { thresholds(count: ThresholdCountGenerator): this; /** * Set the array of values to be used as thresholds in determining the bins. + * + * Any threshold values outside the domain are ignored. The first bin.x0 is always equal to the minimum domain value, + * and the last bin.x1 is always equal to the maximum domain value. + * * @param thresholds Array of threshold values used for binning. The elements must * be of the same type as the materialized values of the histogram. */ @@ -321,6 +362,9 @@ export interface HistogramGenerator { * Set a threshold accessor function, which returns the array of values to be used as * thresholds in determining the bins. * + * Any threshold values outside the domain are ignored. The first bin.x0 is always equal to the minimum domain value, + * and the last bin.x1 is always equal to the maximum domain value. + * * @param thresholds A function which accepts as arguments the array of materialized values, and * optionally the domain minimum and maximum. The function calcutates and returns the array of values to be used as * thresholds in determining the bins. diff --git a/types/d3-format/d3-format-tests.ts b/types/d3-format/d3-format-tests.ts index 57a98e26c6..9c11d07c70 100644 --- a/types/d3-format/d3-format-tests.ts +++ b/types/d3-format/d3-format-tests.ts @@ -48,7 +48,6 @@ let type: 'e' | 'f' | 'g' | 'r' | 's' | '%' | 'p' | 'b' | 'o' | 'd' | 'x' | 'X' let formatString: string = specifier.toString(); - // ---------------------------------------------------------------------- // Test Precision Suggestors // ---------------------------------------------------------------------- @@ -76,13 +75,22 @@ localeDef = { grouping: [3], currency: ["", ""], numerals : ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"] -} +}; + +localeDef = { + decimal: "\u066b", + thousands: "\u066c", + grouping: [3], + currency: ["", ""], + percent : "\u202f%" +}; let decimal: string = localeDef.decimal; let thousands: string = localeDef.thousands; -let grouping: Array = localeDef.grouping; +let grouping: number[] = localeDef.grouping; let currency: [string, string] = localeDef.currency; let numerals: string[] | undefined = localeDef.numerals; +let percent: string | undefined = localeDef.percent; localeObj = d3Format.formatLocale(localeDef); diff --git a/types/d3-format/index.d.ts b/types/d3-format/index.d.ts index be6c2b9a99..34cf80c047 100644 --- a/types/d3-format/index.d.ts +++ b/types/d3-format/index.d.ts @@ -1,9 +1,9 @@ -// Type definitions for D3JS d3-format module 1.1 +// Type definitions for D3JS d3-format module 1.2 // Project: https://github.com/d3/d3-format/ // Definitions by: Tom Wanzek , Alex Ford , Boris Yankov // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// Last module patch version validated against: 1.1.0 +// Last module patch version validated against: 1.2.0 /** * Specification of locale to use when creating a new FormatLocaleObject @@ -27,16 +27,19 @@ export interface FormatLocaleDefinition { */ currency: [string, string]; /** - * An array of ten strings to replace the numerals 0-9. + * An optional array of ten strings to replace the numerals 0-9. */ numerals?: string[]; + /** + * An optional symbol to replace the `percent` suffix; the percent suffix (defaults to "%") + */ + percent?: string; } /** * A Format Locale Object */ export interface FormatLocaleObject { - /** * Returns a new format function for the given string specifier. The returned function * takes a number as the only argument, and returns a string representing the formatted number. @@ -219,7 +222,6 @@ export function precisionFixed(step: number): number; */ export function precisionPrefix(step: number, value: number): number; - /** * Returns a suggested decimal precision for format types that round to significant digits * given the specified numeric step and max values. diff --git a/types/d3-format/tslint.json b/types/d3-format/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/d3-format/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} diff --git a/types/d3/index.d.ts b/types/d3/index.d.ts index 525c4dbfd3..29d4a7c861 100644 --- a/types/d3/index.d.ts +++ b/types/d3/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for D3JS d3 standard bundle 4.7 +// Type definitions for D3JS d3 standard bundle 4.8 // Project: https://github.com/d3/d3 // Definitions by: Tom Wanzek , Alex Ford , Boris Yankov // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped From 80729fa6cae9876e186f266ebb296177e28e51f7 Mon Sep 17 00:00:00 2001 From: Jan Wolf Date: Tue, 25 Apr 2017 18:48:10 +0200 Subject: [PATCH 014/321] Add typings for auto-sni (#16081) * no message * Added more specific types --- types/auto-sni/auto-sni-tests.ts | 6 ++++++ types/auto-sni/index.d.ts | 25 +++++++++++++++++++++++++ types/auto-sni/tsconfig.json | 22 ++++++++++++++++++++++ types/auto-sni/tslint.json | 3 +++ 4 files changed, 56 insertions(+) create mode 100644 types/auto-sni/auto-sni-tests.ts create mode 100644 types/auto-sni/index.d.ts create mode 100644 types/auto-sni/tsconfig.json create mode 100644 types/auto-sni/tslint.json diff --git a/types/auto-sni/auto-sni-tests.ts b/types/auto-sni/auto-sni-tests.ts new file mode 100644 index 0000000000..a271a1a1ad --- /dev/null +++ b/types/auto-sni/auto-sni-tests.ts @@ -0,0 +1,6 @@ +import * as autosni from "auto-sni"; +let a = autosni({ + agreeTos: true, + email: '', + domains: [''] +}); diff --git a/types/auto-sni/index.d.ts b/types/auto-sni/index.d.ts new file mode 100644 index 0000000000..075f093f0b --- /dev/null +++ b/types/auto-sni/index.d.ts @@ -0,0 +1,25 @@ +// Type definitions for auto-sni v2.1.1 +// Project: https://www.npmjs.com/package/auto-sni +// Definitions by: Jan Wolf +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +import {Server} from "https"; + +declare namespace createServer { + +} + +declare function createServer(opts: { + email: string, + agreeTos: boolean, + domains: Array, + ports?: { + http?: number, + https?: number + }, + debug?: boolean +}, app?: any): Server; + +export = createServer; diff --git a/types/auto-sni/tsconfig.json b/types/auto-sni/tsconfig.json new file mode 100644 index 0000000000..715f315867 --- /dev/null +++ b/types/auto-sni/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "auto-sni-tests.ts" + ] +} diff --git a/types/auto-sni/tslint.json b/types/auto-sni/tslint.json new file mode 100644 index 0000000000..d88586e5bd --- /dev/null +++ b/types/auto-sni/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} From 031d1a1b33722c1ef713c6b5f7451aed79fc0249 Mon Sep 17 00:00:00 2001 From: Cyril Schumacher Date: Tue, 25 Apr 2017 18:50:25 +0200 Subject: [PATCH 015/321] Add definition for "throng" (#16123) * Add definition for "throng". * Fix tslint errors. * Fix mistakes. * Fix mistake. * Replace "class" by "interface". --- types/throng/index.d.ts | 20 ++++++++++++++++++++ types/throng/throng-tests.ts | 30 ++++++++++++++++++++++++++++++ types/throng/tsconfig.json | 22 ++++++++++++++++++++++ types/throng/tslint.json | 3 +++ 4 files changed, 75 insertions(+) create mode 100644 types/throng/index.d.ts create mode 100644 types/throng/throng-tests.ts create mode 100644 types/throng/tsconfig.json create mode 100644 types/throng/tslint.json diff --git a/types/throng/index.d.ts b/types/throng/index.d.ts new file mode 100644 index 0000000000..ac4712be77 --- /dev/null +++ b/types/throng/index.d.ts @@ -0,0 +1,20 @@ +// Type definitions for throng 4.0 +// Project: https://github.com/hunterloftis/throng +// Definitions by: Cyril Schumacher +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare function throng(options: throng.WorkerCallback | throng.Options | number, startFunction?: throng.WorkerCallback): void; +declare namespace throng { + type WorkerCallback = (id: number) => void; + + interface Options { + grace?: number; + lifetime?: number; + master(): void; + start: WorkerCallback; + workers: number; + } +} + +export = throng; +export as namespace throng; diff --git a/types/throng/throng-tests.ts b/types/throng/throng-tests.ts new file mode 100644 index 0000000000..64a1d57845 --- /dev/null +++ b/types/throng/throng-tests.ts @@ -0,0 +1,30 @@ +import throng = require("throng"); + +function masterFunction() { } +function startFunction(id: number) { } + +throng((id: number) => {}); + +throng(startFunction); +throng(3, startFunction); + +throng({ + workers: 4, + master: masterFunction, + start: startFunction +}); + +throng({ + workers: 16, + grace: 1000, + master: masterFunction, + start: startFunction +}); + +throng({ + workers: 4, + lifetime: 10000, + grace: 4000, + master: masterFunction, + start: startFunction +}); diff --git a/types/throng/tsconfig.json b/types/throng/tsconfig.json new file mode 100644 index 0000000000..e462697395 --- /dev/null +++ b/types/throng/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "throng-tests.ts" + ] +} diff --git a/types/throng/tslint.json b/types/throng/tslint.json new file mode 100644 index 0000000000..e60c15844f --- /dev/null +++ b/types/throng/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} \ No newline at end of file From 49b9b5a2a281c3b1f52089b4438fc4597dece9fd Mon Sep 17 00:00:00 2001 From: Kanchalai Tanglertsampan Date: Tue, 25 Apr 2017 09:55:51 -0700 Subject: [PATCH 016/321] Address PR: split BodyAttribute data and HTMLElement data --- types/react-helmet/index.d.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/types/react-helmet/index.d.ts b/types/react-helmet/index.d.ts index fc44177f51..0d4a75878b 100644 --- a/types/react-helmet/index.d.ts +++ b/types/react-helmet/index.d.ts @@ -32,8 +32,8 @@ export class Helmet extends React.Component { export interface HelmetData { base: HelmetDatum; - bodyAttributes: HelmetAttributesTagObject; - htmlAttributes: HelmetAttributesTagObject; + bodyAttributes: HelmetHTMLBodyDatum; + htmlAttributes: HelmetHTMLElementDatum; link: HelmetDatum; meta: HelmetDatum; noscript: HelmetDatum; @@ -48,9 +48,14 @@ export interface HelmetDatum { toComponent(): React.Component; } -export interface HelmetAttributesTagObject { +export interface HelmetHTMLBodyDatum { toString(): string; - toComponent(): React.HTMLAttributes; + toComponent(): React.HTMLAttributes; +} + +export interface HelmetHTMLElementDatum { + toString(): string; + toComponent(): React.HTMLAttributes; } export const peek: () => HelmetData; From 21a88925d2e18acee9764b4977d2c4666053a2ac Mon Sep 17 00:00:00 2001 From: Kanchalai Tanglertsampan Date: Tue, 25 Apr 2017 09:58:25 -0700 Subject: [PATCH 017/321] Fix indentation --- types/fixed-data-table/fixed-data-table-tests.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/types/fixed-data-table/fixed-data-table-tests.tsx b/types/fixed-data-table/fixed-data-table-tests.tsx index 66e85cd6b5..64b622b21f 100644 --- a/types/fixed-data-table/fixed-data-table-tests.tsx +++ b/types/fixed-data-table/fixed-data-table-tests.tsx @@ -111,10 +111,10 @@ class MyLinkCell extends React.Component { return ( + height={this.props.height} + rowIndex={this.props.rowIndex} + columnKey={this.props.columnKey} + className="link-cell"> {link} ); From 4bf3c5c9265e0cd615c6c9f3cb662f2ac1823cee Mon Sep 17 00:00:00 2001 From: Cyril Schumacher Date: Tue, 25 Apr 2017 19:28:28 +0200 Subject: [PATCH 018/321] Add definition for "pidusage". (#16126) * Add definition for "throng". * Fix tslint errors. * Add definition for "pidusage". * Remove definition for "throng". * Fix mistakes. --- types/pidusage/index.d.ts | 12 ++++++++++++ types/pidusage/pidusage-tests.ts | 8 ++++++++ types/pidusage/tsconfig.json | 22 ++++++++++++++++++++++ types/pidusage/tslint.json | 3 +++ 4 files changed, 45 insertions(+) create mode 100644 types/pidusage/index.d.ts create mode 100644 types/pidusage/pidusage-tests.ts create mode 100644 types/pidusage/tsconfig.json create mode 100644 types/pidusage/tslint.json diff --git a/types/pidusage/index.d.ts b/types/pidusage/index.d.ts new file mode 100644 index 0000000000..813bbaa6a4 --- /dev/null +++ b/types/pidusage/index.d.ts @@ -0,0 +1,12 @@ +// Type definitions for pidusage 1.1 +// Project: https://github.com/soyuka/pidusage +// Definitions by: Cyril Schumacher +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export interface Stat { + cpu: number; + memory: number; +} + +export function stat(pid: number, callback: (error: Error, stat: Stat) => void): void; +export function unmonitor(pid: number): void; diff --git a/types/pidusage/pidusage-tests.ts b/types/pidusage/pidusage-tests.ts new file mode 100644 index 0000000000..b1d16cbc16 --- /dev/null +++ b/types/pidusage/pidusage-tests.ts @@ -0,0 +1,8 @@ +import pusage = require("pidusage"); + +pusage.stat(0, (err: Error, stat: pusage.Stat) => { + const cpu = stat.cpu; + const memory = stat.memory; +}); + +pusage.unmonitor(0); diff --git a/types/pidusage/tsconfig.json b/types/pidusage/tsconfig.json new file mode 100644 index 0000000000..275e85d949 --- /dev/null +++ b/types/pidusage/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "pidusage-tests.ts" + ] +} diff --git a/types/pidusage/tslint.json b/types/pidusage/tslint.json new file mode 100644 index 0000000000..e60c15844f --- /dev/null +++ b/types/pidusage/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} \ No newline at end of file From 8712d50b29abea34a4745bb897ac8416a4139767 Mon Sep 17 00:00:00 2001 From: Cyril Schumacher Date: Tue, 25 Apr 2017 19:29:25 +0200 Subject: [PATCH 019/321] Add definition for procfs-stats (#16127) * Add definition for "throng". * Add definition for procfs-stats. * Update definition header. * Fix mistake. --- types/procfs-stats/index.d.ts | 330 +++++++++++++++++++++++ types/procfs-stats/procfs-stats-tests.ts | 27 ++ types/procfs-stats/tsconfig.json | 22 ++ types/procfs-stats/tslint.json | 3 + 4 files changed, 382 insertions(+) create mode 100644 types/procfs-stats/index.d.ts create mode 100644 types/procfs-stats/procfs-stats-tests.ts create mode 100644 types/procfs-stats/tsconfig.json create mode 100644 types/procfs-stats/tslint.json diff --git a/types/procfs-stats/index.d.ts b/types/procfs-stats/index.d.ts new file mode 100644 index 0000000000..f0028fb236 --- /dev/null +++ b/types/procfs-stats/index.d.ts @@ -0,0 +1,330 @@ +// Type definitions for procfs-stats 1.0 +// Project: https://github.com/soldair/node-procfs-stats +// Definitions by: Cyril Schumacher +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare function procfs(pid: number): procfs.StatStatic; +declare namespace procfs { + type Callback = (error: any, value: Value) => void; + + interface Cpu { + cpu: CpuDetail; + intr: string; + ctxt: string; + btime: string; + processes: string; + procs_running: string; + procs_blocked: string; + softirq: string; + } + + interface CpuDetail { + user: string; + nice: string; + system: string; + idle: string; + iowait: string; + irq: string; + softirq: string; + steal: string; + guest: string; + guest_nice: string; + } + + interface DiskStat { + device_number: string; + device_number_minor: string; + device: string; + reads_completed: string; + reads_merged: string; + sectors_read: string; + ms_reading: string; + writes_completed: string; + writes_merged: string; + sectors_written: string; + ms_writing: string; + ios_pending: string; + ms_io: string; + ms_weighted_io: string; + } + + interface FileDescriptor { + fd?: string; + path: string; + info: FileDescriptorInfo; + stat: FileDescriptorStat | boolean; + } + + interface FileDescriptorInfo { + pos: string; + flags: string; + } + + interface FileDescriptorStat { + dev: number; + mode: number; + nlink: number; + uid: number; + gid: number; + rdev: number; + blksize: number; + ino: number; + size: number; + blocks: number; + atime: Date; + mtime: Date; + ctime: Date; + } + + interface MemoryInfo { + MemTotal: string; + MemFree: string; + MemAvailable: string; + Buffers: string; + Cached: string; + SwapCached: string; + Active: string; + Inactive: '136524'; + 'Active(anon)': string; + 'Inactive(anon)': string; + 'Active(file)': string; + 'Inactive(file)': string; + Unevictable: string; + Mlocked: string; + SwapTotal: string; + SwapFree: string; + Dirty: string; + Writeback: string; + AnonPages: string; + Mapped: string; + Shmem: string; + Slab: string; + SReclaimable: string; + SUnreclaim: string; + KernelStack: string; + PageTables: string; + NFS_Unstable: string; + Bounce: string; + WritebackTmp: string; + CommitLimit: string; + Committed_AS: string; + VmallocTotal: string; + VmallocUsed: string; + VmallocChunk: string; + AnonHugePages: string; + HugePages_Total: string; + HugePages_Free: string; + HugePages_Rsvd: string; + HugePages_Surp: string; + Hugepagesize: string; + DirectMap4k: string; + DirectMap2M: string; + } + + interface MemoryStat { + size: string; + resident: string; + share: string; + text: string; + lib: string; + data: string; + dt: string; + } + + interface Net { + Interface: string; + bytes: { Receive: string; Transmit: string; }; + packets: { Receive: string; Transmit: string; }; + errs: { Receive: string; Transmit: string; }; + drop: { Receive: string; Transmit: string; }; + fifo: { Receive: string; Transmit: string; }; + frame: { Receive: string; }; + compressed: { Receive: string; Transmit: string; }; + multicast: { Receive: string; }; + colls: { Transmit: string; }; + carrier: { Transmit: string; }; + } + + interface Io { + cancelled_write_bytes: string; + rchar: string; + read_bytes: string; + syscr: string; + syscw: string; + wchar: string; + write_bytes: string; + } + + interface Stat { + pid: string; + comm: string; + state: string; + ppid: string; + pgrp: string; + session: string; + tty_nr: string; + tpgid: string; + flags: string; + minflt: string; + cminflt: string; + majflt: string; + cmajflt: string; + utime: string; + stime: string; + cutime: string; + cstime: string; + priority: string; + nice: string; + num_threads: string; + itrealvalue: string; + starttime: string; + vsize: string; + rss: string; + rsslim: string; + startcode: string; + endcode: string; + startstack: string; + kstkesp: string; + kstkeip: string; + signal: string; + blocked: string; + sigignore: string; + sigcatch: string; + wchan: string; + nswap: string; + cnswap: string; + exit_signal: string; + processor: string; + rt_priority: string; + policy: string; + delayacct_blkio_ticks: string; + guest_time: string; + cguest_time: string; + } + + interface Status { + Name: string; + State: string; + Tgid: string; + Pid: string; + PPid: string; + TracerPid: string; + Uid: string; + Gid: string; + FDSize: string; + Groups: string; + VmPeak: string; + VmSize: string; + VmLck: string; + VmPin: string; + VmHWM: string; + VmRSS: string; + VmData: string; + VmStk: string; + VmExe: string; + VmLib: string; + VmPTE: string; + VmSwap: string; + Threads: string; + SigQ: string; + SigPnd: string; + ShdPnd: string; + SigBlk: string; + SigIgn: string; + SigCgt: string; + CapInh: string; + CapPrm: string; + CapEff: string; + CapBnd: string; + Cpus_allowed: string; + Cpus_allowed_list: string; + Mems_allowed: string; + Mems_allowed_list: string; + voluntary_ctxt_switches: string; + nonvoluntary_ctxt_switches: string; + } + + interface Tcp { + sl: string; + local_address: string; + rem_address: string; + st: string; + tx_queue: string; + rx_queue: string; + tr: string; + 'tm->when': string; + retrnsmt: string; + uid: string; + timeout: string; + inode: string; + _: { [key: string]: string; }; + } + + interface Udp { + sl: string; + local_address: string; + rem_address: string; + st: string; + tx_queue: string; + rx_queue: string; + tr: string; + 'tm->when': string; + retrnsmt: string; + uid: string; + timeout: string; + inode: string; + ref: string; + pointer: string; + drops: string; + } + + interface UnixSocket { + Num: string; + RefCount: string; + Protocol: string; + Flags: string; + Type: string; + St: string; + Inode: string; + Path: string; + } + + interface Wifi { + Interface: string; + status: string; + link: { Quality: string }; + level: { Quality: string }; + noise: { Quality: string }; + nwid: { 'Discarded packets': string }; + crypt: { 'Discarded packets': string }; + frag: { 'Discarded packets': string }; + retry: { 'Discarded packets': string }; + misc: { 'Discarded packets': string }; + beacon: { Missed: string }; + } + + class StatStatic { + argv(callback: Callback): never; + cpu(callback: Callback): never; + cwd(callback: Callback): never; + disk(callback: Callback): never; + env(callback: Callback): never; + fd(fdPath: string, callback: Callback): never; + fds(callback: Callback): never; + meminfo(callback: Callback): never; + net(callback: Callback): never; + io(callback: Callback): never; + stat(callback: Callback): never; + statm(callback: Callback): never; + status(callback: Callback): never; + tcp(callback: Callback): never; + thread(tid: number): Stat; + threads(callback: Callback): never; + udp(callback: Callback): never; + unix(callback: Callback): never; + wifi(callback: Callback): never; + works: boolean; + } +} + +export = procfs; diff --git a/types/procfs-stats/procfs-stats-tests.ts b/types/procfs-stats/procfs-stats-tests.ts new file mode 100644 index 0000000000..6f614bd00c --- /dev/null +++ b/types/procfs-stats/procfs-stats-tests.ts @@ -0,0 +1,27 @@ +import procfs = require("procfs-stats"); + +const ps = procfs(0); + +ps.io((error: Error, io: procfs.Io) => { }); +ps.stat((error: Error, stat: procfs.Stat) => { }); +ps.statm((error: any, statm: procfs.MemoryStat) => { }); +ps.status((error: Error, status: procfs.Status) => { }); +ps.env((error: Error, env: string[]) => { }); +ps.cwd((error: Error, cwd: string) => { }); +ps.argv((error: Error, argv: string[]) => { }); +ps.fds((error: Error, fds: string[]) => { }); +ps.threads((error: Error, threads: string[]) => { }); + +const stat = ps.thread(0); + +ps.cpu((error: Error, cpus: procfs.Cpu) => { }); +ps.meminfo((error: Error, meminfo: procfs.MemoryInfo) => { }); +ps.fd("path", (error: Error, fd: procfs.FileDescriptor) => { }); +ps.tcp((error: Error, tcp: procfs.Tcp[]) => { }); +ps.udp((error: Error, udp: procfs.Udp[]) => { }); +ps.unix((error: Error, unix: procfs.UnixSocket[]) => { }); +ps.net((error: Error, net: procfs.Net[]) => { }); +ps.disk((error: Error, disk: procfs.DiskStat[]) => { }); +ps.wifi((error: Error, wifi: procfs.Wifi[]) => { }); + +const works = ps.works; diff --git a/types/procfs-stats/tsconfig.json b/types/procfs-stats/tsconfig.json new file mode 100644 index 0000000000..b59378a269 --- /dev/null +++ b/types/procfs-stats/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "procfs-stats-tests.ts" + ] +} diff --git a/types/procfs-stats/tslint.json b/types/procfs-stats/tslint.json new file mode 100644 index 0000000000..e60c15844f --- /dev/null +++ b/types/procfs-stats/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} \ No newline at end of file From e4e4d4223f7fe00cd918aea397188da59ed8dab6 Mon Sep 17 00:00:00 2001 From: Denis Date: Tue, 25 Apr 2017 13:53:46 -0400 Subject: [PATCH 020/321] Publish kdbush definition (#16107) * Publish kdbush definition * Definition changes based on comments @andy-ms * Add semi-colon --- types/kdbush/index.d.ts | 26 ++++++++++++++++++++++++++ types/kdbush/kdbush-tests.ts | 35 +++++++++++++++++++++++++++++++++++ types/kdbush/tsconfig.json | 22 ++++++++++++++++++++++ types/kdbush/tslint.json | 1 + 4 files changed, 84 insertions(+) create mode 100644 types/kdbush/index.d.ts create mode 100644 types/kdbush/kdbush-tests.ts create mode 100644 types/kdbush/tsconfig.json create mode 100644 types/kdbush/tslint.json diff --git a/types/kdbush/index.d.ts b/types/kdbush/index.d.ts new file mode 100644 index 0000000000..fa1581d09c --- /dev/null +++ b/types/kdbush/index.d.ts @@ -0,0 +1,26 @@ +// Type definitions for kdbush 1.0 +// Project: https://github.com/mourner/kdbush +// Definitions by: DenisCarriere +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +type Points = number[][]; +type Get = (point: T) => number; +type ArrayType = typeof Int32Array | typeof Array; + +declare class KDBush { + ids: number[]; + coords: number[]; + nodeSize: number; + points: T[]; + range(minX: number, minY: number, maxX: number, maxY: number): number[]; + within(x: number, y: number, r: number): number[]; +} + +interface KDBushStatic { + (points: Points): KDBush; + (points: T[], getX: Get, getY: Get, nodeSize?: number, ArrayType?: ArrayType): KDBush; +} + +declare const kdbush: KDBushStatic; +declare namespace kdbush {} +export = kdbush; diff --git a/types/kdbush/kdbush-tests.ts b/types/kdbush/kdbush-tests.ts new file mode 100644 index 0000000000..c9fd8ae11f --- /dev/null +++ b/types/kdbush/kdbush-tests.ts @@ -0,0 +1,35 @@ +import * as kdbush from 'kdbush'; + +// API +const points = [[110, 60], [130, 40]]; +const index = kdbush(points); + +// properties +index.nodeSize; +index.points; +index.ids; +index.coords; + +// range +index.range(10, 10, 20, 20); +index.range(10, 10, 20, 20).map(id => points[id]); + +// within +index.within(10, 10, 5); +index.within(10, 10, 5).map(id => points[id]); + +// custom points (object) +const xy = [{x: 110, y: 60}, {x: 130, y: 40}]; +const index2 = kdbush(xy, p => p.x, p => p.y); +index2.points[0].x; +index2.points[0].y; +index2.points.map(p => [p.x, p.y]); + +// custom points (latlng) +const latlng = [[60, 110], [40, 130]]; +kdbush(latlng, p => p[1], p => p[0]); +kdbush(latlng, p => p[1], p => p[0], 64, Int32Array); + +// z coordinate (does not require Get callbacks) +const pointsZ = [[110, 60, 4000], [130, 40, 3000]]; +kdbush(pointsZ); diff --git a/types/kdbush/tsconfig.json b/types/kdbush/tsconfig.json new file mode 100644 index 0000000000..16814b627e --- /dev/null +++ b/types/kdbush/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "kdbush-tests.ts" + ] +} diff --git a/types/kdbush/tslint.json b/types/kdbush/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/kdbush/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From d07ac371fa5ca1999e6bf62f31b8c85753d48f22 Mon Sep 17 00:00:00 2001 From: Akshar Patel Date: Wed, 26 Apr 2017 01:26:18 +0530 Subject: [PATCH 021/321] node.js: Add type guards as return types of util methods (#16011) * node.js: Add type guards for return types of util methods * use object instead of Object in isObject typeguard * use es2016 as target for Node 7 types Node 7 supports almost 99% of ES2015 and 100% of ES2016. Hence, its safe to use the target of es2016 in tsconfig.json * remove typeguard from isObject function * rename Symbol to symbol * remove es2016 target in tsconfig.json --- types/node/index.d.ts | 24 ++++++++++++------------ types/node/tsconfig.json | 2 +- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/types/node/index.d.ts b/types/node/index.d.ts index 7805819383..0f2a6e663e 100644 --- a/types/node/index.d.ts +++ b/types/node/index.d.ts @@ -3650,23 +3650,23 @@ declare module "util" { export function log(string: string): void; export function inspect(object: any, showHidden?: boolean, depth?: number, color?: boolean): string; export function inspect(object: any, options: InspectOptions): string; - export function isArray(object: any): boolean; - export function isRegExp(object: any): boolean; - export function isDate(object: any): boolean; - export function isError(object: any): boolean; + export function isArray(object: any): object is any[]; + export function isRegExp(object: any): object is RegExp; + export function isDate(object: any): object is Date; + export function isError(object: any): object is Error; export function inherits(constructor: any, superConstructor: any): void; export function debuglog(key: string): (msg: string, ...param: any[]) => void; - export function isBoolean(object: any): boolean; - export function isBuffer(object: any): boolean; + export function isBoolean(object: any): object is boolean; + export function isBuffer(object: any): object is Buffer; export function isFunction(object: any): boolean; - export function isNull(object: any): boolean; - export function isNullOrUndefined(object: any): boolean; - export function isNumber(object: any): boolean; + export function isNull(object: any): object is null; + export function isNullOrUndefined(object: any): object is null | undefined; + export function isNumber(object: any): object is number; export function isObject(object: any): boolean; export function isPrimitive(object: any): boolean; - export function isString(object: any): boolean; - export function isSymbol(object: any): boolean; - export function isUndefined(object: any): boolean; + export function isString(object: any): object is string; + export function isSymbol(object: any): object is symbol; + export function isUndefined(object: any): object is undefined; export function deprecate(fn: Function, message: string): Function; } diff --git a/types/node/tsconfig.json b/types/node/tsconfig.json index 5914d22a4c..8cb1452030 100644 --- a/types/node/tsconfig.json +++ b/types/node/tsconfig.json @@ -20,4 +20,4 @@ "forceConsistentCasingInFileNames": true, "isolatedModules": true } -} \ No newline at end of file +} From 2b13252c870023c8e3b57814d20bd8b093527c3b Mon Sep 17 00:00:00 2001 From: Andy Date: Tue, 25 Apr 2017 15:10:13 -0700 Subject: [PATCH 022/321] auto-sni: Fix lint (#16132) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- types/auto-sni/index.d.ts | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/types/auto-sni/index.d.ts b/types/auto-sni/index.d.ts index 075f093f0b..bc252831ca 100644 --- a/types/auto-sni/index.d.ts +++ b/types/auto-sni/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for auto-sni v2.1.1 +// Type definitions for auto-sni 2.1 // Project: https://www.npmjs.com/package/auto-sni // Definitions by: Jan Wolf // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -8,18 +8,18 @@ import {Server} from "https"; declare namespace createServer { - + interface Options { + email: string; + agreeTos: boolean; + domains: Array; + ports?: { + http?: number, + https?: number + }; + debug?: boolean; + } } -declare function createServer(opts: { - email: string, - agreeTos: boolean, - domains: Array, - ports?: { - http?: number, - https?: number - }, - debug?: boolean -}, app?: any): Server; +declare function createServer(opts: createServer.Options, app?: any): Server; export = createServer; From 514f16f2a47817070321bd9167be50d8b9a309ad Mon Sep 17 00:00:00 2001 From: Louis Orleans Date: Tue, 25 Apr 2017 15:33:21 -0700 Subject: [PATCH 023/321] Fixing Blessed scroll typings (#15852) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 🎨 Removing trailing whitespace This was caused by my editor * 🐛 scroll getters return numbers, not void Box::getScroll returns a number according to the documentation Box::getScrollHeight returns a number according to the documentation Box::getScrollPerc returns a number according to the documentation --- types/blessed/index.d.ts | 884 +++++++++++++++++++-------------------- 1 file changed, 442 insertions(+), 442 deletions(-) diff --git a/types/blessed/index.d.ts b/types/blessed/index.d.ts index 24b6fddaf3..b08f77b3b1 100644 --- a/types/blessed/index.d.ts +++ b/types/blessed/index.d.ts @@ -44,7 +44,7 @@ declare namespace Blessed { track?: {bg?: string; fg?: string;}; scrollbar?: {bg?: string; fg?: string;}; } - + export type TBorder = { /** * Type of border (line or bg). bg by default. @@ -57,15 +57,15 @@ declare namespace Blessed { /** * Border foreground and background, must be numbers (-1 for default). */ - bg?: number; + bg?: number; fg?: number; /** * Border attributes. */ - bold?: string; + bold?: string; underline?: string; } - + export type TCursor = { /** * Have blessed draw a custom cursor and hide the terminal cursor (experimental). @@ -85,26 +85,26 @@ declare namespace Blessed { color: string; } - export type TAlign = "left" | "center" | "right"; + export type TAlign = "left" | "center" | "right"; - export type ListbarCommand = { - key: string; + export type ListbarCommand = { + key: string; callback: () => void; - }; + }; export type TImage = { /** * Pixel width. */ - width: number; + width: number; /** * Pixel height. */ height: number; /** * Image bitmap. - * */ - bmp: any; + * */ + bmp: any; /** * Image cellmap (bitmap scaled down to cell size). */ @@ -132,13 +132,13 @@ declare namespace Blessed { } export module Events { - + export interface IMouseEventArg { x: number; y: number; action: Types.TMouseAction; } - + export interface IKeyEventArg { full: string; name: string; @@ -148,7 +148,7 @@ declare namespace Blessed { sequence: string; } } - + export interface NodeChildProcessExecOptions { cwd?: string; stdio?: any; @@ -163,14 +163,14 @@ declare namespace Blessed { export interface IDestroyable { destroy(): void; } - + export interface IOptions { } - + export interface IHasOptions { options: T; } - + export interface TputsOptions extends IOptions { terminal?: string; extended?: boolean; @@ -201,7 +201,7 @@ declare namespace Blessed { termcapFile: string; error: Error; terminal: string; - + setup(): void; term(is: any): boolean; readTerminfo(term: string): string; @@ -233,11 +233,11 @@ declare namespace Blessed { strings: Object; }; } - + export interface IDestroyable { destroy(): void; } - + export interface INodeOptions extends IOptions { name?: string; screen?: Screen; @@ -245,7 +245,7 @@ declare namespace Blessed { children?: Node[]; focusable?: boolean; } - + export abstract class Node extends EventEmitter implements IHasOptions, IDestroyable { constructor(options: INodeOptions); @@ -257,7 +257,7 @@ declare namespace Blessed { * Original options object. */ options: INodeOptions; - + /** * An object for any miscellanous user data. */ @@ -290,7 +290,7 @@ declare namespace Blessed { * Array of node's children. */ children: Node[]; - + // ** methods ** // /** @@ -398,7 +398,7 @@ declare namespace Blessed { */ on(event: "detach", callback: (arg: Node) => void): this; } - + export class NodeWithEvents extends Node { // ** methods ** // @@ -417,7 +417,7 @@ declare namespace Blessed { removeKey(name: string, listener: Function): void; // ** events ** // - + on(event: string, listener: Function): this; /** * Received on screen resize. @@ -451,12 +451,12 @@ declare namespace Blessed { */ //on(event: "key", callback: (arg: BlessedScreen) => void): this; /** - * Received when the terminal window focuses/blurs. Requires a terminal supporting the + * Received when the terminal window focuses/blurs. Requires a terminal supporting the * focus protocol and focus needs to be passed to program.enableMouse(). */ on(event: "focus", callback: (arg: Screen) => void): this; /** - * Received when the terminal window focuses/blurs. Requires a terminal supporting the + * Received when the terminal window focuses/blurs. Requires a terminal supporting the * focus protocol and focus needs to be passed to program.enableMouse(). */ on(event: "blur", callback: (arg: Screen) => void): this; @@ -492,31 +492,31 @@ declare namespace Blessed { * Received when element becomes hidden. */ on(event: "hide", callback: () => void): this; - + on(event: "set content", callback: () => void): this; on(event: "parsed content", callback: () => void): this; } - + export interface IScreenOptions extends INodeOptions { /** * The blessed Program to be associated with. Will be automatically instantiated if none is provided. */ program?: BlessedProgram; /** - * Attempt to perform CSR optimization on all possible elements (not just full-width ones, elements with - * uniform cells to their sides). This is known to cause flickering with elements that are not full-width, + * Attempt to perform CSR optimization on all possible elements (not just full-width ones, elements with + * uniform cells to their sides). This is known to cause flickering with elements that are not full-width, * however, it is more optimal for terminal rendering. */ smartCSR?: boolean; /** - * Do CSR on any element within 20 cols of the screen edge on either side. Faster than smartCSR, + * Do CSR on any element within 20 cols of the screen edge on either side. Faster than smartCSR, * but may cause flickering depending on what is on each side of the element. */ fastCSR?: boolean; /** - * Attempt to perform back_color_erase optimizations for terminals that support it. It will also work - * with terminals that don't support it, but only on lines with the default background color. As it - * stands with the current implementation, it's uncertain how much terminal performance this adds at + * Attempt to perform back_color_erase optimizations for terminals that support it. It will also work + * with terminals that don't support it, but only on lines with the default background color. As it + * stands with the current implementation, it's uncertain how much terminal performance this adds at * the cost of overhead within node. */ useBCE?: boolean; @@ -529,13 +529,13 @@ declare namespace Blessed { */ tabSize?: number; /** - * Automatically position child elements with border and padding in mind (NOTE: this is a recommended + * Automatically position child elements with border and padding in mind (NOTE: this is a recommended * option. It may become default in the future). */ autoPadding?: boolean; - + cursor?: Types.TCursor; - + /** * Create a log file. See log method. */ @@ -545,31 +545,31 @@ declare namespace Blessed { */ dump?: string; /** - * Debug mode. Enables usage of the debug method. Also creates a debug console which will display when + * Debug mode. Enables usage of the debug method. Also creates a debug console which will display when * pressing F12. It will display all log and debug messages. */ debug?: (...msg: string[]) => void; /** - * Array of keys in their full format (e.g. C-c) to ignore when keys are locked or grabbed. Useful + * Array of keys in their full format (e.g. C-c) to ignore when keys are locked or grabbed. Useful * for creating a key that will always exit no matter whether the keys are locked. */ ignoreLocked?: boolean; /** - * Automatically "dock" borders with other elements instead of overlapping, depending on position + * Automatically "dock" borders with other elements instead of overlapping, depending on position * (experimental). For example: These border-overlapped elements: */ dockBorders?: boolean; /** - * Normally, dockable borders will not dock if the colors or attributes are different. This option + * Normally, dockable borders will not dock if the colors or attributes are different. This option * will allow them to dock regardless. It may produce some odd looking multi-colored borders though. */ ignoreDockContrast?: boolean; /** - * Allow for rendering of East Asian double-width characters, utf-16 surrogate pairs, and unicode - * combining characters. This allows you to display text above the basic multilingual plane. This - * is behind an option because it may affect performance slightly negatively. Without this option - * enabled, all double-width, surrogate pair, and combining characters will be replaced by '??', - * '?', '' respectively. (NOTE: iTerm2 cannot display combining characters properly. Blessed simply + * Allow for rendering of East Asian double-width characters, utf-16 surrogate pairs, and unicode + * combining characters. This allows you to display text above the basic multilingual plane. This + * is behind an option because it may affect performance slightly negatively. Without this option + * enabled, all double-width, surrogate pair, and combining characters will be replaced by '??', + * '?', '' respectively. (NOTE: iTerm2 cannot display combining characters properly. Blessed simply * removes them from an element's content if iTerm2 is detected). */ fullUnicode?: boolean; @@ -582,17 +582,17 @@ declare namespace Blessed { */ warnings?: boolean; /** - * Force blessed to use unicode even if it is not detected via terminfo, env variables, or windows code page. + * Force blessed to use unicode even if it is not detected via terminfo, env variables, or windows code page. * If value is true unicode is forced. If value is false non-unicode is forced (default: null). */ forceUnicode?: boolean; /** - * Input and output streams. process.stdin/process.stdout by default, however, it could be a + * Input and output streams. process.stdin/process.stdout by default, however, it could be a * net.Socket if you want to make a program that runs over telnet or something of that nature. * */ input?: stream.Writable; /** - * Input and output streams. process.stdin/process.stdout by default, however, it could be a + * Input and output streams. process.stdin/process.stdout by default, however, it could be a * net.Socket if you want to make a program that runs over telnet or something of that nature. * */ output?: stream.Readable; @@ -673,13 +673,13 @@ declare namespace Blessed { */ title?: string; } - + export class Screen extends NodeWithEvents implements IHasOptions { constructor(opts: IScreenOptions); // ** properties ** // cleanSides: any; - + /** * Original options object. */ @@ -690,20 +690,20 @@ declare namespace Blessed { */ program: BlessedProgram; /** - * Attempt to perform CSR optimization on all possible elements (not just full-width ones, elements with - * uniform cells to their sides). This is known to cause flickering with elements that are not full-width, + * Attempt to perform CSR optimization on all possible elements (not just full-width ones, elements with + * uniform cells to their sides). This is known to cause flickering with elements that are not full-width, * however, it is more optimal for terminal rendering. */ smartCSR: boolean; /** - * Do CSR on any element within 20 cols of the screen edge on either side. Faster than smartCSR, + * Do CSR on any element within 20 cols of the screen edge on either side. Faster than smartCSR, * but may cause flickering depending on what is on each side of the element. */ fastCSR: boolean; /** - * Attempt to perform back_color_erase optimizations for terminals that support it. It will also work - * with terminals that don't support it, but only on lines with the default background color. As it - * stands with the current implementation, it's uncertain how much terminal performance this adds at + * Attempt to perform back_color_erase optimizations for terminals that support it. It will also work + * with terminals that don't support it, but only on lines with the default background color. As it + * stands with the current implementation, it's uncertain how much terminal performance this adds at * the cost of overhead within node. */ useBCE: boolean; @@ -716,38 +716,38 @@ declare namespace Blessed { */ tabSize: number; /** - * Automatically position child elements with border and padding in mind (NOTE: this is a recommended + * Automatically position child elements with border and padding in mind (NOTE: this is a recommended * option. It may become default in the future). */ autoPadding: boolean; - + cursor: Types.TCursor; - + /** * Dump all output and input to desired file. Can be used together with log option if set as a boolean. */ dump: string; /** - * Array of keys in their full format (e.g. C-c) to ignore when keys are locked or grabbed. Useful + * Array of keys in their full format (e.g. C-c) to ignore when keys are locked or grabbed. Useful * for creating a key that will always exit no matter whether the keys are locked. */ ignoreLocked: boolean; /** - * Automatically "dock" borders with other elements instead of overlapping, depending on position + * Automatically "dock" borders with other elements instead of overlapping, depending on position * (experimental). For example: These border-overlapped elements: */ dockBorders: boolean; /** - * Normally, dockable borders will not dock if the colors or attributes are different. This option + * Normally, dockable borders will not dock if the colors or attributes are different. This option * will allow them to dock regardless. It may produce some odd looking multi-colored borders though. */ ignoreDockContrast: boolean; /** - * Allow for rendering of East Asian double-width characters, utf-16 surrogate pairs, and unicode - * combining characters. This allows you to display text above the basic multilingual plane. This - * is behind an option because it may affect performance slightly negatively. Without this option - * enabled, all double-width, surrogate pair, and combining characters will be replaced by '??', - * '?', '' respectively. (NOTE: iTerm2 cannot display combining characters properly. Blessed simply + * Allow for rendering of East Asian double-width characters, utf-16 surrogate pairs, and unicode + * combining characters. This allows you to display text above the basic multilingual plane. This + * is behind an option because it may affect performance slightly negatively. Without this option + * enabled, all double-width, surrogate pair, and combining characters will be replaced by '??', + * '?', '' respectively. (NOTE: iTerm2 cannot display combining characters properly. Blessed simply * removes them from an element's content if iTerm2 is detected). */ fullUnicode: boolean; @@ -760,17 +760,17 @@ declare namespace Blessed { */ warnings: boolean; /** - * Force blessed to use unicode even if it is not detected via terminfo, env variables, or windows code page. + * Force blessed to use unicode even if it is not detected via terminfo, env variables, or windows code page. * If value is true unicode is forced. If value is false non-unicode is forced (default: null). */ forceUnicode: boolean; /** - * Input and output streams. process.stdin/process.stdout by default, however, it could be a + * Input and output streams. process.stdin/process.stdout by default, however, it could be a * net.Socket if you want to make a program that runs over telnet or something of that nature. * */ input: stream.Writable; /** - * Input and output streams. process.stdin/process.stdout by default, however, it could be a + * Input and output streams. process.stdin/process.stdout by default, however, it could be a * net.Socket if you want to make a program that runs over telnet or something of that nature. * */ output: stream.Readable; @@ -850,9 +850,9 @@ declare namespace Blessed { * Set or get window title. */ title: string; - + // ** methods ** // - + /** * Write string to the log file if one was created. */ @@ -860,7 +860,7 @@ declare namespace Blessed { /** * Same as the log method, but only gets called if the debug option was set. */ - debug(...msg: string[]): void; + debug(...msg: string[]): void; /** * Allocate a new pending screen buffer and a new output screen buffer. */ @@ -959,13 +959,13 @@ declare namespace Blessed { */ deleteTop(top: number, bottom: number): void; /** - * Enable mouse events for the screen and optionally an element (automatically called when a form of + * Enable mouse events for the screen and optionally an element (automatically called when a form of * on('mouse') is bound). */ enableMouse(el: BlessedElement): void; enableMouse(): void; /** - * Enable keypress events for the screen and optionally an element (automatically called when a form of + * Enable keypress events for the screen and optionally an element (automatically called when a form of * on('keypress') is bound). */ enableKeys(el: BlessedElement): void; @@ -980,7 +980,7 @@ declare namespace Blessed { */ copyToClipboard(text: string): void; /** - * Attempt to change cursor shape. Will not work in all terminals (see artificial cursors for a solution + * Attempt to change cursor shape. Will not work in all terminals (see artificial cursors for a solution * to this). Returns true if successful. */ cursorShape(shape: boolean, blink: boolean): any; @@ -993,14 +993,14 @@ declare namespace Blessed { */ cursorReset(): void; /** - * Take an SGR screenshot of the screen within the region. Returns a string containing only + * Take an SGR screenshot of the screen within the region. Returns a string containing only * characters and SGR codes. Can be displayed by simply echoing it in a terminal. */ screenshot(xi: number, xl: number, yi: number, yl: number): string; screenshot(): void; /** - * Destroy the screen object and remove it from the global list. Also remove all global events relevant - * to the screen object. If all screen objects are destroyed, the node process is essentially reset + * Destroy the screen object and remove it from the global list. Also remove all global events relevant + * to the screen object. If all screen objects are destroyed, the node process is essentially reset * to its initial state. */ destroy(): void; @@ -1043,23 +1043,23 @@ declare namespace Blessed { /** * Border foreground and background, must be numbers (-1 for default). */ - bg?: number; + bg?: number; fg?: number; /** * Border attributes. */ - bold?: string; + bold?: string; underline?: string; } export interface ElementOptions extends INodeOptions { tags?: boolean; - - fg?: string; - bg?: string; - bold?: string; + + fg?: string; + bg?: string; + bold?: string; underline?: string; - + style?: any; /** * Border object, see below. @@ -1107,24 +1107,24 @@ declare namespace Blessed { */ shrink?: boolean; /** - * Amount of padding on the inside of the element. Can be a number or an object containing + * Amount of padding on the inside of the element. Can be a number or an object containing * the properties: left, right, top, and bottom. */ padding?: number | Padding; - + top?: Types.TTopLeft; left?: Types.TTopLeft; right?: Types.TPosition; bottom?: Types.TPosition; - + /** - * Width/height of the element, can be a number, percentage (0-100%), or keyword (half or shrink). + * Width/height of the element, can be a number, percentage (0-100%), or keyword (half or shrink). * Percentages can also have offsets (50%+1, 50%-1). */ width?: number | string; /** - * Offsets of the element relative to its parent. Can be a number, percentage (0-100%), or - * keyword (center). right and bottom do not accept keywords. Percentages can also have + * Offsets of the element relative to its parent. Can be a number, percentage (0-100%), or + * keyword (center). right and bottom do not accept keywords. Percentages can also have * offsets (50%+1, 50%-1). */ height?: number | string; @@ -1171,7 +1171,7 @@ declare namespace Blessed { // TODO: scrollable - Note: If the scrollable option is enabled, Element inherits all methods from ScrollableBox. export abstract class BlessedElement extends NodeWithEvents implements IHasOptions { constructor(opts: ElementOptions); - + // ** properties ** // /** @@ -1196,28 +1196,28 @@ declare namespace Blessed { /** * Border foreground and background, must be numbers (-1 for default). */ - bg: number; + bg: number; fg: number; /** * Border attributes. */ - bold: string; + bold: string; underline: string; /** * Calculated width. */ - width: number | string; + width: number | string; /** * Calculated height. */ height: number | string; /** - * Calculated relative top offset.*/ - top: Types.TTopLeft; + * Calculated relative top offset.*/ + top: Types.TTopLeft; /** * Calculated relative left offset. - */ - left: Types.TTopLeft; + */ + left: Types.TTopLeft; /** * Calculated relative right offset. */ @@ -1228,12 +1228,12 @@ declare namespace Blessed { bottom: Types.TPosition; /** * Calculated absolute top offset. - */ - atop: Types.TTopLeft; + */ + atop: Types.TTopLeft; /** * Calculated absolute left offset. - */ - aleft: Types.TTopLeft; + */ + aleft: Types.TTopLeft; /** * Calculated absolute right offset. */ @@ -1241,13 +1241,13 @@ declare namespace Blessed { /** * Calculated absolute bottom offset. */ - abottom: Types.TPosition; + abottom: Types.TPosition; /** * Whether the element is draggable. Set to true to allow dragging. */ - draggable: boolean; - + draggable: boolean; + itop: Types.TTopLeft; ileft: Types.TTopLeft; iheight: Types.TPosition; @@ -1255,115 +1255,115 @@ declare namespace Blessed { /** * Calculated relative top offset. - */ + */ rtop: Types.TTopLeft; /** * Calculated relative left offset. - */ + */ rleft: Types.TTopLeft; /** * Calculated relative right offset. - */ + */ rright: Types.TPosition; /** * Calculated relative bottom offset. - */ + */ rbottom: Types.TPosition; - + lpos: PositionCoords; - + // ** methods ** // - + /** * Write content and children to the screen buffer. */ render(): Coords; /** - * Hide element.*/ - hide(): void; + * Hide element.*/ + hide(): void; /** * Show element. */ - show(): void; + show(): void; /** * Toggle hidden/shown. */ toggle(): void; /** * Focus element. - */ - focus(): void; + */ + focus(): void; /** - * Same asel.on('screen', ...) except this will automatically keep track of which listeners + * Same asel.on('screen', ...) except this will automatically keep track of which listeners * are bound to the screen object. For use with removeScreenEvent(), free(), and destroy(). */ - onScreenEvent(type: string, handler: Function): void; + onScreenEvent(type: string, handler: Function): void; /** - * Same asel.removeListener('screen', ...) except this will automatically keep track of which + * Same asel.removeListener('screen', ...) except this will automatically keep track of which * listeners are bound to the screen object. For use with onScreenEvent(), free(), and destroy(). */ removeScreenEvent(type: string, handler: Function): void; /** - * Free up the element. Automatically unbind all events that may have been bound to the screen - * object. This prevents memory leaks. For use with onScreenEvent(), removeScreenEvent(), + * Free up the element. Automatically unbind all events that may have been bound to the screen + * object. This prevents memory leaks. For use with onScreenEvent(), removeScreenEvent(), * and destroy(). - */ - free(): void; + */ + free(): void; /** - * Same as the detach() method, except this will automatically call free() and unbind any screen + * Same as the detach() method, except this will automatically call free() and unbind any screen * events to prevent memory leaks. for use with onScreenEvent(), removeScreenEvent(), and free(). */ - destroy(): void; + destroy(): void; /** * Set the z-index of the element (changes rendering order). */ setIndex(z: number): void; /** - * Put the element in front of its siblings.*/ - setFront(): void; + * Put the element in front of its siblings.*/ + setFront(): void; /** * Put the element in back of its siblings. */ - setBack(): void; + setBack(): void; /** * text/options - Set the label text for the top-left corner. Example options: {text:'foo',side:'left'} */ setLabel(arg: string | LabelOptions): void; /** * Remove the label completely. - */ - removeLabel(): any; + */ + removeLabel(): any; /** - * text/options - Set a hover text box to follow the cursor. Similar to the "title" DOM attribute + * text/options - Set a hover text box to follow the cursor. Similar to the "title" DOM attribute * in the browser. Example options: {text:'foo'} */ setHover(arg: string | LabelOptions): void; /** * Remove the hover label completely. - */ - removeHover(): void; + */ + removeHover(): void; /** * Enable mouse events for the element (automatically called when a form of on('mouse') is bound). */ enableMouse(): void; /** * Enable keypress events for the element (automatically called when a form of on('keypress') is bound). - */ - enableKeys(): void; + */ + enableKeys(): void; /** * Enable key and mouse events. Calls bot enableMouse and enableKeys. */ enableInput(): void; /** * Enable dragging of the element. - */ - enableDrag(): void; + */ + enableDrag(): void; /** * Disable dragging of the element. */ - disableDrag(): void; + disableDrag(): void; /** - * Take an SGR screenshot of the screen within the region. Returns a string containing only + * Take an SGR screenshot of the screen within the region. Returns a string containing only * characters and SGR codes. Can be displayed by simply echoing it in a terminal. */ screenshot(xi: number, xl: number, yi: number, yl: number): string; @@ -1372,132 +1372,132 @@ declare namespace Blessed { /* Content Methods - Methods for dealing with text content, line by line. Useful for writing a text editor, + Methods for dealing with text content, line by line. Useful for writing a text editor, irc client, etc. - Note: All of these methods deal with pre-aligned, pre-wrapped text. If you use deleteTop() - on a box with a wrapped line at the top, it may remove 3-4 "real" lines (rows) depending + Note: All of these methods deal with pre-aligned, pre-wrapped text. If you use deleteTop() + on a box with a wrapped line at the top, it may remove 3-4 "real" lines (rows) depending on how long the original line was. - The lines parameter can be a string or an array of strings. The line parameter must + The lines parameter can be a string or an array of strings. The line parameter must be a string. */ /** - * Set the content. Note: When text is input, it will be stripped of all non-SGR - * escape codes, tabs will be replaced with 8 spaces, and tags will be replaced + * Set the content. Note: When text is input, it will be stripped of all non-SGR + * escape codes, tabs will be replaced with 8 spaces, and tags will be replaced * with SGR codes (if enabled). */ setContent(text: string): void; /** * Return content, slightly different from el.content. Assume the above formatting. - */ - getContent(): string; + */ + getContent(): string; /** * Similar to setContent, but ignore tags and remove escape codes. */ setText(text: string): void; /** * Similar to getContent, but return content with tags and escape codes removed. - */ - getText(): string; + */ + getText(): string; /** * Insert a line into the box's content. */ insertLine(i: number, lines: string | string[]): void; /** * Delete a line from the box's content. - */ - deleteLine(i: number): void; + */ + deleteLine(i: number): void; /** * Get a line from the box's content. */ - getLine(i: number): string; + getLine(i: number): string; /** * Get a line from the box's content from the visible top. */ - getBaseLine(i: number): string; + getBaseLine(i: number): string; /** * Set a line in the box's content. */ - setLine(i: number, line: string | string[]): void; + setLine(i: number, line: string | string[]): void; /** * Set a line in the box's content from the visible top. */ setBaseLine(i: number, line: string | string[]): void; /** * Clear a line from the box's content. - */ - clearLine(i: number): void; + */ + clearLine(i: number): void; /** * Clear a line from the box's content from the visible top. */ - clearBaseLine(i: number): void; + clearBaseLine(i: number): void; /** * Insert a line at the top of the box. */ - insertTop(lines: string | string[]): void; + insertTop(lines: string | string[]): void; /** * Insert a line at the bottom of the box. */ insertBottom(lines: string | string[]): void; /** * Delete a line at the top of the box. - */ - deleteTop(): void; + */ + deleteTop(): void; /** * Delete a line at the bottom of the box. */ - deleteBottom(): void; + deleteBottom(): void; /** * Unshift a line onto the top of the content. */ unshiftLine(lines: string | string[]): void; /** * Shift a line off the top of the content. - */ - shiftLine(i: number): void; + */ + shiftLine(i: number): void; /** * Push a line onto the bottom of the content. */ pushLine(lines: string | string[]): void; /** * Pop a line off the bottom of the content. - */ + */ popLine(i: number): string; /** * An array containing the content lines. - */ - getLines(): string[]; + */ + getLines(): string[]; /** * An array containing the lines as they are displayed on the screen. */ - getScreenLines(): string[]; + getScreenLines(): string[]; /** - * Get a string's displayed width, taking into account double-width, surrogate pairs, + * Get a string's displayed width, taking into account double-width, surrogate pairs, * combining characters, tags, and SGR escape codes. */ - strWidth(text: string): string; + strWidth(text: string): string; // ** events ** // } - + export interface ScrollableBoxOptions extends ElementOptions { /** * A limit to the childBase. Default is Infinity. */ - baseLimit?: number; + baseLimit?: number; /** - * A option which causes the ignoring of childOffset. This in turn causes the + * A option which causes the ignoring of childOffset. This in turn causes the * childBase to change every time the element is scrolled. */ - alwaysScroll?: boolean; + alwaysScroll?: boolean; /** * Object enabling a scrollbar. * Style of the scrollbar track if present (takes regular style options). */ scrollbar?: { style?: any; track?: any; ch?: string; } - } + } export interface ScrollableTextOptions extends ScrollableBoxOptions { /** @@ -1507,18 +1507,18 @@ declare namespace Blessed { mouse?: boolean | (() => void); /** * Use pre-defined keys (i or enter for insert, e for editor, C-e for editor while inserting). - */ - keys?: string | string[] | boolean; + */ + keys?: string | string[] | boolean; /** * Use vi keys with the keys option. */ vi?: boolean; } - + export interface BoxOptions extends ScrollableTextOptions { bindings?: any; } - + /** * DEPRECATED - Use Box with the scrollable option instead. A box with scrollable content. */ @@ -1526,60 +1526,60 @@ declare namespace Blessed { /** * The offset of the top of the scroll content. */ - childBase: number; + childBase: number; /** * The offset of the chosen item/line. */ childOffset: number; - + /** * Scroll the content by a relative offset. */ - scroll(offset: number, always?: boolean): void; + scroll(offset: number, always?: boolean): void; /** * Scroll the content to an absolute index. */ - scrollTo(index: number): void; + scrollTo(index: number): void; /** * Same as scrollTo. */ - setScroll(index: number): void; + setScroll(index: number): void; /** * Set the current scroll index in percentage (0-100). */ setScrollPerc(perc: number): void; /** * Get the current scroll index in lines. - */ - getScroll(): void; + */ + getScroll(): number; /** * Get the actual height of the scrolling area. */ - getScrollHeight(): void; + getScrollHeight(): number; /** * Get the current scroll index in percentage. - */ - getScrollPerc(): void; + */ + getScrollPerc(): number; /** * Reset the scroll index to its initial state. - */ - resetScroll(): void; - + */ + resetScroll(): void; + on(event: string, listener: Function): this; /** * Received when the element is scrolled. */ on(event: "scroll", callback: () => void): this; } - + /** * DEPRECATED - Use Box with the scrollable and alwaysScroll options instead. - * A scrollable text box which can display and scroll text, as well as handle + * A scrollable text box which can display and scroll text, as well as handle * pre-existing newlines and escape codes. */ export class ScrollableTextElement extends ScrollableBoxElement { } - + /** * A box element which draws a simple box containing content or other elements. */ @@ -1594,7 +1594,7 @@ declare namespace Blessed { export interface TextOptions extends ElementOptions { /** - * Fill the entire line with chosen bg until parent bg ends, even if there + * Fill the entire line with chosen bg until parent bg ends, even if there * is not enough text to fill the entire width. */ fill?: boolean; @@ -1609,13 +1609,13 @@ declare namespace Blessed { */ export class TextElement extends BlessedElement implements IHasOptions { constructor(opts: TextOptions); - + /** * Original options object. */ options: TextOptions; } - + /** * A simple line which can be line or bg styled. */ @@ -1632,51 +1632,51 @@ declare namespace Blessed { fg?: string; ch?: string; } - + /** * A simple line which can be line or bg styled. */ export class LineElement extends BoxElement implements IHasOptions { constructor(opts: LineOptions); - + /** * Original options object. */ options: LineOptions; } - + export interface BigTextOptions extends BoxOptions { /** * bdf->json font file to use (see ttystudio for instructions on compiling BDFs to JSON). */ - font?: string; + font?: string; /** * bdf->json bold font file to use (see ttystudio for instructions on compiling BDFs to JSON). */ fontBold?: string; /** * foreground character. (default: ' ') - */ + */ fch?: string; } - + /** * A box which can render content drawn as 8x14 cell characters using the terminus font. */ export class BigTextElement extends BoxElement implements IHasOptions { constructor(opts: BigTextOptions); - + /** * Original options object. */ options: BigTextOptions; } - + export interface ListElementStyle { selected?: any; item?: any; } - + export interface ListOptions extends BoxOptions { /** * Style for a selected item. Style for an unselected item. @@ -1687,9 +1687,9 @@ declare namespace Blessed { */ items?: string[]; /** - * A function that is called when vi mode is enabled and the key / is pressed. This function accepts a - * callback function which should be called with the search string. The search string is then used to - * jump to an item that is found in items. + * A function that is called when vi mode is enabled and the key / is pressed. This function accepts a + * callback function which should be called with the search string. The search string is then used to + * jump to an item that is found in items. */ search?: () => void; /** @@ -1701,10 +1701,10 @@ declare namespace Blessed { */ invertSelected?: boolean; } - + export class ListElement extends BoxElement implements IHasOptions> { constructor(opts: ListOptions); - + /** * Original options object. */ @@ -1712,11 +1712,11 @@ declare namespace Blessed { /** * Add an item based on a string. - */ + */ add(text: string): void; /** * Add an item based on a string. - */ + */ addItem(text: string): void; /** * Removes an item from the list. Child can be an element, index, or string. @@ -1724,75 +1724,75 @@ declare namespace Blessed { removeItem(child: BlessedElement): BlessedElement; /** * Push an item onto the list. - * */ + * */ pushItem(child: BlessedElement): number; /** * Pop an item off the list. - * */ - popItem(): BlessedElement; + * */ + popItem(): BlessedElement; /** * Unshift an item onto the list. */ unshiftItem(child: BlessedElement): number; /** * Shift an item off the list. - * */ - shiftItem(): BlessedElement; + * */ + shiftItem(): BlessedElement; /** * Inserts an item to the list. Child can be an element, index, or string. */ - insertItem(i: number, child: BlessedElement): void; + insertItem(i: number, child: BlessedElement): void; /** * Returns the item element. Child can be an element, index, or string. */ - getItem(child: BlessedElement): BlessedElement; + getItem(child: BlessedElement): BlessedElement; /** * Set item to content. */ setItem(child: BlessedElement, content: BlessedElement | string): void; /** * Remove and insert items to the list. - * */ + * */ spliceItem(i: number, n: number, ...items: BlessedElement[]): void; /** * Clears all items from the list. - * */ - clearItems(): void; + * */ + clearItems(): void; /** * Sets the list items to multiple strings. */ - setItems(items: BlessedElement[]): void; + setItems(items: BlessedElement[]): void; /** * Returns the item index from the list. Child can be an element, index, or string. */ getItemIndex(child: BlessedElement): number; /** * Select an index of an item. - * */ + * */ select(index: number): void; /** * Select item based on current offset. - * */ + * */ move(offset: number): void; /** * Select item above selected. - * */ - up(amount: number): void; + * */ + up(amount: number): void; /** * Select item below selected. */ - down(amount: number): void; + down(amount: number): void; /** * Show/focus list and pick an item. The callback is executed with the result. */ - pick(callback: () => void): void; + pick(callback: () => void): void; /** * Find an item based on its text content. */ - fuzzyFind(arg: string | RegExp | (() => void)): void; - + fuzzyFind(arg: string | RegExp | (() => void)): void; + // ** events ** // - + on(event: string, listener: Function): this; /** * Received when an item is selected. @@ -1806,7 +1806,7 @@ declare namespace Blessed { * Either a select or a cancel event was received. */ on(event: "action", callback: () => void): this; - + on(event: "create item", callback: () => void): this; on(event: "add item", callback: () => void): this; on(event: "remove item", callback: () => void): this; @@ -1814,17 +1814,17 @@ declare namespace Blessed { on(event: "set items", callback: () => void): this; on(event: "select item", callback: (item: BlessedElement, index: number) => void): this; } - + export interface FileManagerOptions extends ListOptions { /** * Current working directory. */ cwd?: string; } - + export class FileManagerElement extends ListElement implements IHasOptions { constructor(opts: FileManagerOptions); - + /** * Original options object. */ @@ -1833,7 +1833,7 @@ declare namespace Blessed { * Current working directory. */ cwd: string; - + /** * Refresh the file list (perform a readdir on cwd and update the list items). */ @@ -1851,9 +1851,9 @@ declare namespace Blessed { reset(cwd:string, callback: () => void): void; reset(callback: () => void): void; reset(): void; - + // ** events ** // - + on(event: string, listener: Function): this; /** * Received when an item is selected. @@ -1863,11 +1863,11 @@ declare namespace Blessed { * Received when an item is selected. */ on(event: "file", callback: (file: string) => void): this; - + on(event: "error", callback: (err: any, file: string) => void): this; on(event: "refresh", callback: () => void): this; } - + export interface StyleListTable extends ListElementStyle { /** * Header style. @@ -1878,7 +1878,7 @@ declare namespace Blessed { */ cell?: any; } - + export interface ListTableOptions extends ListOptions { /** * Array of array of strings representing rows. @@ -1886,7 +1886,7 @@ declare namespace Blessed { rows?: string[]; data?: string[][]; /** - * Spaces to attempt to pad on the sides of each cell. 2 by default: one space on each side + * Spaces to attempt to pad on the sides of each cell. 2 by default: one space on each side * (only useful if the width is shrunken). */ pad?: number; @@ -1894,22 +1894,22 @@ declare namespace Blessed { * Do not draw inner cells. */ noCellBorders?: boolean; - + style?: StyleListTable; } - + export class ListTableElement extends ListElement implements IHasOptions { constructor(opts: ListTableOptions); - + /** * Original options object. */ options: ListTableOptions; - + /** * Set rows in table. Array of arrays of strings. * @example: - * + * * table.setData([ [ 'Animals', 'Foods' ], [ 'Elephant', 'Apple' ], @@ -1920,7 +1920,7 @@ declare namespace Blessed { /** * Set rows in table. Array of arrays of strings. * @example: - * + * * table.setData([ [ 'Animals', 'Foods' ], [ 'Elephant', 'Apple' ], @@ -1929,11 +1929,11 @@ declare namespace Blessed { */ setData(rows: string[][]): void; } - + export interface ListbarOptions extends BoxOptions { style?: ListElementStyle; /** - * Set buttons using an object with keys as titles of buttons, containing of objects + * Set buttons using an object with keys as titles of buttons, containing of objects * containing keys of keys and callback. */ commands: Types.ListbarCommand[]; @@ -1943,15 +1943,15 @@ declare namespace Blessed { */ autoCommandKeys: boolean; } - + export class ListbarElement extends BoxElement implements IHasOptions { constructor(opts: ListbarOptions); - + /** * Original options object. */ options: ListbarOptions; - + /** * Set commands (see commands option above). */ @@ -1990,18 +1990,18 @@ declare namespace Blessed { moveRight(offset: number): void; /** * Select button and execute its callback. - */ + */ selectTab(index: number): void; - + // ** events ** // - + on(event: string, listener: Function): this; on(event: "set items", callback: () => void): this; on(event: "remove item", callback: () => void): this; on(event: "select tab", callback: () => void): this; } - + export interface FormOptions extends BoxOptions { /** * Allow default keys (tab, vi keys, enter). @@ -2015,7 +2015,7 @@ declare namespace Blessed { export class FormElement extends BoxElement implements IHasOptions { constructor(opts: FormOptions); - + /** * Original options object. */ @@ -2024,7 +2024,7 @@ declare namespace Blessed { * Last submitted data. */ submission: TFormData; - + /** * Focus next form element. */ @@ -2045,9 +2045,9 @@ declare namespace Blessed { * Clear the form. */ reset(): void; - + // ** events ** // - + on(event: string, listener: Function): this; /** * Form is submitted. Receives a data object. @@ -2062,7 +2062,7 @@ declare namespace Blessed { */ on(event: "reset", callback: () => void): this; } - + export interface InputOptions extends BoxOptions { } export abstract class InputElement extends BoxElement { @@ -2078,20 +2078,20 @@ declare namespace Blessed { */ inputOnFocus?: boolean; } - + export class TextareaElement extends InputElement implements IHasOptions { constructor(opts: TextareaOptions); - + /** * Original options object. */ options: TextareaOptions; - + /** * The input text. read-only. */ value: string; - + /** * Submit the textarea (emits submit). */ @@ -2101,32 +2101,32 @@ declare namespace Blessed { */ cancel(): void; /** - * Grab key events and start reading text from the keyboard. Takes a callback which receives + * Grab key events and start reading text from the keyboard. Takes a callback which receives * the final value. */ readInput(callback?: (err: any, value?: string) => void): void; /** - * Grab key events and start reading text from the keyboard. Takes a callback which receives + * Grab key events and start reading text from the keyboard. Takes a callback which receives * the final value. */ input(callback: (err: any, value?: string) => void): void; /** - * Grab key events and start reading text from the keyboard. Takes a callback which receives + * Grab key events and start reading text from the keyboard. Takes a callback which receives * the final value. */ setInput(callback: (err: any, value?: string) => void): void; /** - * Open text editor in $EDITOR, read the output from the resulting file. Takes a callback which + * Open text editor in $EDITOR, read the output from the resulting file. Takes a callback which * receives the final value. */ readEditor(callback: (err: any, value?: string) => void): void; /** - * Open text editor in $EDITOR, read the output from the resulting file. Takes a callback which + * Open text editor in $EDITOR, read the output from the resulting file. Takes a callback which * receives the final value. */ editor(callback: (err: any, value?: string) => void): void; /** - * Open text editor in $EDITOR, read the output from the resulting file. Takes a callback which + * Open text editor in $EDITOR, read the output from the resulting file. Takes a callback which * receives the final value. */ setEditor(callback: (err: any, value?: string) => void): void; @@ -2142,9 +2142,9 @@ declare namespace Blessed { * Set value. */ setValue(text: string): void; - + // ** events ** // - + on(event: string, listener: Function): this; on(event: "error", callback: (err: any) => void): this; @@ -2162,7 +2162,7 @@ declare namespace Blessed { */ on(event: "action", callback: (value: any) => void): this; } - + export interface TextboxOptions extends TextareaOptions { /** * Completely hide text. @@ -2173,10 +2173,10 @@ declare namespace Blessed { */ censor?: boolean; } - + export class TextboxElement extends TextareaElement implements IHasOptions { constructor(opts: TextboxOptions); - + /** * Original options object. */ @@ -2189,14 +2189,14 @@ declare namespace Blessed { /** * Replace text with asterisks (*). */ - censor: boolean; + censor: boolean; } - + export interface ButtonOptions extends BoxOptions { } export class ButtonElement extends InputElement implements IHasOptions { constructor(opts: ButtonOptions); - + /** * Original options object. */ @@ -2206,25 +2206,25 @@ declare namespace Blessed { * Press button. Emits press. */ press(): void; - + on(event: string, listener: Function): this; on(event: "press", callback: () => void): this; } - + export interface CheckboxOptions extends BoxOptions { - /** - * whether the element is checked or not. + /** + * whether the element is checked or not. * */ checked?: boolean; - /** - * enable mouse support. + /** + * enable mouse support. * */ mouse?: boolean; } - - /** - * A checkbox which can be used in a form element. + + /** + * A checkbox which can be used in a form element. * */ export class CheckboxElement extends InputElement implements IHasOptions { constructor(options?: CheckboxOptions); @@ -2234,39 +2234,39 @@ declare namespace Blessed { */ options: CheckboxOptions; - /** - * the text next to the checkbox (do not use setcontent, use `check.text = ''`). + /** + * the text next to the checkbox (do not use setcontent, use `check.text = ''`). * */ text: string; - /** - * whether the element is checked or not. + /** + * whether the element is checked or not. * */ checked: boolean; - /** - * same as `checked`. + /** + * same as `checked`. * */ value: boolean; - /** - * check the element. + /** + * check the element. * */ check(): void; - /** - * uncheck the element. + /** + * uncheck the element. * */ uncheck(): void; - /** - * toggle checked state. + /** + * toggle checked state. * */ toggle(): void; - } + } export interface RadioSetOptions extends BoxOptions { } /** - * An element wrapping RadioButtons. RadioButtons within this element will be mutually exclusive + * An element wrapping RadioButtons. RadioButtons within this element will be mutually exclusive * with each other. - * */ + * */ export abstract class RadioSetElement extends BoxElement { constructor(opts: RadioSetOptions); } @@ -2279,7 +2279,7 @@ declare namespace Blessed { export abstract class RadioButtonElement extends CheckboxElement { constructor(opts: RadioButtonOptions); } - + export interface PromptOptions extends BoxOptions { } /** @@ -2297,7 +2297,7 @@ declare namespace Blessed { setInput(text: string, value: string, callback: (err: any, value: string) => void): void; readInput(text: string, value: string, callback: (err: any, value: string) => void): void; } - + export interface QuestionOptions extends BoxOptions { } /** @@ -2307,13 +2307,13 @@ declare namespace Blessed { constructor(opts: QuestionOptions); options: QuestionOptions; - + /** * Ask a question. callback will yield the result. */ ask(question: string, callback: (err: any, value: string) => void): void; } - + export interface MessageOptions extends BoxOptions { } /** @@ -2331,14 +2331,14 @@ declare namespace Blessed { log(text: string, callback: (err: any) => void): void; display(text: string, time: number, callback: (err: any) => void): void; display(text: string, callback: (err: any) => void): void; - + /** * Display an error in the same way. */ error(text: string, time: number, callback: () => void): void; error(text: string, callback: () => void): void; } - + export interface LoadingOptions extends BoxOptions { } /** @@ -2360,32 +2360,32 @@ declare namespace Blessed { } export interface ProgressBarOptions extends BoxOptions { - /** - * can be `horizontal` or `vertical`. + /** + * can be `horizontal` or `vertical`. * */ orientation: string; - /** - * the character to fill the bar with (default is space). + /** + * the character to fill the bar with (default is space). * */ pch: string; - /** - * the amount filled (0 - 100). + /** + * the amount filled (0 - 100). * */ filled: number; - /** - * same as `filled`. + /** + * same as `filled`. * */ value: number; - /** - * enable key support. + /** + * enable key support. * */ keys: boolean; - /** - * enable mouse support. + /** + * enable mouse support. * */ mouse: boolean; } - + /** * A progress bar allowing various styles. This can also be used as a form input. */ @@ -2394,19 +2394,19 @@ declare namespace Blessed { options: ProgressBarOptions; - /** - * progress the bar by a fill amount. + /** + * progress the bar by a fill amount. * */ progress(amount:number): void; - /** - * set progress to specific amount. + /** + * set progress to specific amount. * */ setProgress(amount:number): void; - /** - * reset the bar. + /** + * reset the bar. * */ reset(): void; - + on(event: string, listener: Function): this; /** * Bar was reset. @@ -2419,104 +2419,104 @@ declare namespace Blessed { } export interface LogOptions extends ScrollableTextOptions { - /** - * amount of scrollback allowed. default: Infinity. + /** + * amount of scrollback allowed. default: Infinity. * */ scrollback?: number; - /** - * scroll to bottom on input even if the user has scrolled up. default: false. + /** + * scroll to bottom on input even if the user has scrolled up. default: false. * */ scrollOnInput?: boolean; } - - /** - * A log permanently scrolled to the bottom. + + /** + * A log permanently scrolled to the bottom. * */ export class Log extends ScrollableTextElement implements IHasOptions { constructor(options?: LogOptions); options: LogOptions; - /** - * amount of scrollback allowed. default: Infinity. + /** + * amount of scrollback allowed. default: Infinity. * */ scrollback: number; - /** - * scroll to bottom on input even if the user has scrolled up. default: false. + /** + * scroll to bottom on input even if the user has scrolled up. default: false. * */ scrollOnInput: boolean; - /** - * add a log line. + /** + * add a log line. * */ log(text:string): void; - /** - * add a log line. + /** + * add a log line. * */ add(text:string): void; } export interface TableOptions extends BoxOptions { - /** - * array of array of strings representing rows (same as `data`). + /** + * array of array of strings representing rows (same as `data`). * */ rows?: string[][]; - /** - * array of array of strings representing rows (same as `rows`). + /** + * array of array of strings representing rows (same as `rows`). * */ data?: string[][]; - /** - * spaces to attempt to pad on the sides of each cell. `2` by default: one space on each side (only useful if the width is shrunken). + /** + * spaces to attempt to pad on the sides of each cell. `2` by default: one space on each side (only useful if the width is shrunken). * */ pad?: number; - /** - * do not draw inner cells. + /** + * do not draw inner cells. * */ noCellBorders?: boolean; - /** - * fill cell borders with the adjacent background color. + /** + * fill cell borders with the adjacent background color. * */ fillCellBorders?: boolean; } - /** - * A stylized table of text elements. - * */ + /** + * A stylized table of text elements. + * */ export class TableElement extends BoxElement implements IHasOptions { constructor(opts: TableOptions); options: TableOptions; - /** - * set rows in table. array of arrays of strings. + /** + * set rows in table. array of arrays of strings. * */ setData(rows: string[][]): void; - /** - * set rows in table. array of arrays of strings. + /** + * set rows in table. array of arrays of strings. * */ setRows(rows: string[][]): void; } export interface TerminalOptions extends BoxOptions { - /** - * handler for input data. + /** + * handler for input data. * */ handler?: (userInput:Buffer) => void; - /** - * name of shell. $SHELL by default. + /** + * name of shell. $SHELL by default. * */ shell?:string; - /** - * args for shell. + /** + * args for shell. * */ args?:any; - /** - * can be line, underline, and block. + /** + * can be line, underline, and block. * */ cursor?: 'line'|'underline'|'block'; - + terminal?: string; - + /** * Object for process env. */ @@ -2528,39 +2528,39 @@ declare namespace Blessed { options: TerminalOptions; - /** + /** * reference to the headless term.js terminal. * */ term: any; - /** - * reference to the pty.js pseudo terminal. + /** + * reference to the pty.js pseudo terminal. * */ pty: any; - /** - * write data to the terminal. + /** + * write data to the terminal. * */ write(data:string): void; - /** - * nearly identical to `element.screenshot`, however, the specified region includes the terminal's _entire_ scrollback, rather than just what is visible on the screen. + /** + * nearly identical to `element.screenshot`, however, the specified region includes the terminal's _entire_ scrollback, rather than just what is visible on the screen. * */ screenshot(xi?:number, xl?:number, yi?:number, yl?:number): string; } export interface ImageOptions extends BoxOptions { - /** - * path to image. + /** + * path to image. * */ file: string; - /** - * path to w3mimgdisplay. if a proper w3mimgdisplay path is not given, blessed will search the entire disk for the binary. + /** + * path to w3mimgdisplay. if a proper w3mimgdisplay path is not given, blessed will search the entire disk for the binary. * */ type: "ansi" | "overlay" | "w3m"; } - - /** - * Display an image in the terminal (jpeg, png, gif) using w3mimgdisplay. Requires w3m to be installed. X11 required: works in xterm, urxvt, and possibly other terminals. + + /** + * Display an image in the terminal (jpeg, png, gif) using w3mimgdisplay. Requires w3m to be installed. X11 required: works in xterm, urxvt, and possibly other terminals. * */ export class ImageElement extends BoxElement implements IHasOptions { constructor(options?: ImageOptions); @@ -2569,44 +2569,44 @@ declare namespace Blessed { } export interface ANSIImageOptions extends BoxOptions { - /** - * URL or path to PNG/GIF file. Can also be a buffer. + /** + * URL or path to PNG/GIF file. Can also be a buffer. * */ file: string; - /** - * Scale cellmap down (0-1.0) from its original pixel width/height (Default: 1.0). + /** + * Scale cellmap down (0-1.0) from its original pixel width/height (Default: 1.0). * */ scale: number; /** * This differs from other element's width or height in that only one of them is needed: blessed will maintain the aspect ratio of the image as it scales down to the proper number of cells. NOTE: PNG/GIF's are always automatically shrunken to size (based on scale) if a width or height is not given. - * */ + * */ width: number | string; height: number | string; - + /** * Add various "density" ASCII characters over the rendering to give the image more detail, similar to libcaca/libcucul (the library mplayer uses to display videos in the terminal). */ ascii: string; - + /** * Whether to animate if the image is an APNG/animating GIF. If false, only display the first frame or IDAT (Default: true). */ animate: boolean; - + /** * Set the speed of animation. Slower: 0.0-1.0. Faster: 1-1000. It cannot go faster than 1 frame per millisecond, so 1000 is the fastest. (Default: 1.0) */ - speed: number; - + speed: number; + /** * mem or cpu. If optimizing for memory, animation frames will be rendered to bitmaps as the animation plays, using less memory. Optimizing for cpu will precompile all bitmaps beforehand, which may be faster, but might also OOM the process on large images. (Default: mem). */ optimization: "mem" | "cpu"; } - - /** - * Convert any .png file (or .gif, see below) to an ANSI image and display it as an element. + + /** + * Convert any .png file (or .gif, see below) to an ANSI image and display it as an element. * */ export class ANSIImageElement extends BoxElement implements IHasOptions { constructor(options?:ANSIImageOptions); @@ -2618,18 +2618,18 @@ declare namespace Blessed { */ img: Types.TImage; - /** - * set the image in the box to a new path. + /** + * set the image in the box to a new path. * */ setImage(img: string, callback: () => void): void; - /** - * clear the current image. + /** + * clear the current image. * */ clearImage(callback: () => void): void; /** * Play animation if it has been paused or stopped. */ - play(): void; + play(): void; /** * Pause animation. */ @@ -2644,7 +2644,7 @@ declare namespace Blessed { /** * Path to image. */ - file: string; + file: string; /** * Render the file as ANSI art instead of using w3m to overlay Internally uses the ANSIImage element. See the ANSIImage element for more information/options. (Default: true). */ @@ -2652,39 +2652,39 @@ declare namespace Blessed { /** * Path to w3mimgdisplay. If a proper w3mimgdisplay path is not given, blessed will search the entire disk for the binary. */ - w3m: string; + w3m: string; /** * Whether to search /usr, /bin, and /lib for w3mimgdisplay (Default: true). */ search: string; } - /** - * Convert any .png file (or .gif, see below) to an ANSI image and display it as an element. + /** + * Convert any .png file (or .gif, see below) to an ANSI image and display it as an element. * */ export class OverlayImageElement extends BoxElement implements IHasOptions { constructor(options?: OverlayImageOptions); - + options: OverlayImageOptions; - /** - * set the image in the box to a new path. + /** + * set the image in the box to a new path. * */ setImage(img: string, callback: () => void): void; - /** - * clear the current image. + /** + * clear the current image. * */ clearImage(callback: () => void): void; - /** - * get the size of an image file in pixels. + /** + * get the size of an image file in pixels. * */ imageSize(img:string, callback: () => void): void; - /** - * get the size of the terminal in pixels. + /** + * get the size of the terminal in pixels. * */ termSize(callback: () => void): void; - /** - * get the pixel to cell ratio for the terminal. + /** + * get the pixel to cell ratio for the terminal. * */ getPixelRatio(callback: () => void): void; } @@ -2697,30 +2697,30 @@ declare namespace Blessed { /** * Start time in seconds. */ - start: number; + start: number; } - + export class VideoElement extends BoxElement implements IHasOptions { constructor(options?: VideoOptions); options: VideoOptions; - + /** * The terminal element running mplayer or mpv. */ tty: any; } - + export interface LayoutOptions extends ElementOptions { /** - * A callback which is called right before the children are iterated over to be rendered. Should return an + * A callback which is called right before the children are iterated over to be rendered. Should return an * iterator callback which is called on each child element: iterator(el, i). */ renderer?: () => void; /** - * Using the default renderer, it provides two layouts: inline, and grid. inline is the default and will render - * akin to inline-block. grid will create an automatic grid based on element dimensions. The grid cells' + * Using the default renderer, it provides two layouts: inline, and grid. inline is the default and will render + * akin to inline-block. grid will create an automatic grid based on element dimensions. The grid cells' * width and height are always determined by the largest children in the layout. */ layout: "inline" | "inline-block" | "grid"; @@ -2732,25 +2732,25 @@ declare namespace Blessed { options: LayoutOptions; /** - * A callback which is called right before the children are iterated over to be rendered. Should return an + * A callback which is called right before the children are iterated over to be rendered. Should return an * iterator callback which is called on each child element: iterator(el, i). */ renderer(coords: PositionCoords): void; /** - * Check to see if a previous child element has been rendered and is visible on screen. This is only useful + * Check to see if a previous child element has been rendered and is visible on screen. This is only useful * for checking child elements that have already been attempted to be rendered! see the example below. */ isRendered(el: BlessedElement): boolean; /** - * Get the last rendered and visible child element based on an index. This is useful for basing the position + * Get the last rendered and visible child element based on an index. This is useful for basing the position * of the current child element on the position of the last child element. */ getLast(i: number): Element; /** - * Get the last rendered and visible child element coords based on an index. This is useful for basing the position + * Get the last rendered and visible child element coords based on an index. This is useful for basing the position * of the current child element on the position of the last child element. See the example below. */ - getLastCoords(i: number): PositionCoords; + getLastCoords(i: number): PositionCoords; } export class Program { @@ -2816,21 +2816,21 @@ declare namespace Blessed { export function radiobutton(options?: Widgets.RadioButtonOptions): Widgets.RadioButtonElement; export function table(options?: Widgets.TableOptions): Widgets.TableElement; - + export function prompt(options?: Widgets.PromptOptions): Widgets.PromptElement; export function question(options?: Widgets.QuestionOptions): Widgets.QuestionElement; export function message(options?: Widgets.MessageOptions): Widgets.MessageElement; export function loading(options?: Widgets.LoadingOptions): Widgets.LoadingElement; - + export function progressbar(options?: Widgets.ProgressBarOptions): Widgets.ProgressBarElement; export function terminal(options?: Widgets.TerminalOptions): Widgets.TerminalElement; export function layout(options?: Widgets.LayoutOptions): Widgets.LayoutElement; - + export function escape(item: any): any; export const colors: { match: (hexColor: string) => string } } -export = Blessed; \ No newline at end of file +export = Blessed; From d2f5ddec1e515b2624d8efb47ffb5afaa4432853 Mon Sep 17 00:00:00 2001 From: Dan Corder Date: Tue, 25 Apr 2017 23:50:17 +0100 Subject: [PATCH 024/321] Add missing props parameter to onSubmitFail and onSubmitSuccess in redux-form (#16108) * Add missing props parameter to onSubmitFail and onSubmitSuccess * Update comments --- types/redux-form/lib/reduxForm.d.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/types/redux-form/lib/reduxForm.d.ts b/types/redux-form/lib/reduxForm.d.ts index 0912233154..61fb88ac23 100644 --- a/types/redux-form/lib/reduxForm.d.ts +++ b/types/redux-form/lib/reduxForm.d.ts @@ -119,13 +119,18 @@ export interface Config { * @param dispatch The Redux `dispatch` function. * @param submitError The error object that caused the submission to fail. If `errors` is set this will be most * likely a `SubmissionError`, otherwise it can be any error or null. + * @param props The props passed into your decorated component. */ - onSubmitFail?(errors: FormErrors, dispatch: Dispatch, submitError: any): void; + onSubmitFail?(errors: FormErrors, dispatch: Dispatch, submitError: any, props: P): void; /** * A callback function that will be called when a submission succeeds. + * + * @param result Any result that onSubmit has returned + * @param dispatch The Redux dispatch function + * @param props The props passed into your decorated component */ - onSubmitSuccess?(result: any, dispatch: Dispatch): void; + onSubmitSuccess?(result: any, dispatch: Dispatch, props: P): void; /** * If specified, all the props normally passed into your decorated From fb21b2cc53eac8a899787b29e0a2748d68bd00c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Allienne?= Date: Wed, 26 Apr 2017 00:58:48 +0200 Subject: [PATCH 025/321] Button have a className property (#16098) According to material-ui documentation, buttons have className property For example : http://www.material-ui.com/#/components/flat-button --- types/material-ui/index.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/types/material-ui/index.d.ts b/types/material-ui/index.d.ts index b6919280d3..24ce477dbe 100644 --- a/types/material-ui/index.d.ts +++ b/types/material-ui/index.d.ts @@ -627,6 +627,7 @@ declare namespace __MaterialUI { // non generally overridden elements of EnhancedButton interface SharedEnhancedButtonProps { centerRipple?: boolean; + className?: string; disableFocusRipple?: boolean; disableKeyboardFocus?: boolean; disableTouchRipple?: boolean; From 2eae6bc17304c37d3ef0f5a2efb678a61bf7db28 Mon Sep 17 00:00:00 2001 From: Ivan Nikolaev Date: Wed, 26 Apr 2017 17:03:17 +0200 Subject: [PATCH 026/321] Fix Triangle.closestPointToPoint() prototype (#16141) --- types/three/three-core.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/three/three-core.d.ts b/types/three/three-core.d.ts index 56e9dc3aba..8f3cc5ce7f 100644 --- a/types/three/three-core.d.ts +++ b/types/three/three-core.d.ts @@ -3922,7 +3922,7 @@ export class Triangle { plane(optionalTarget?: Vector3): Plane; barycoordFromPoint(point: Vector3, optionalTarget?: Vector3): Vector3; containsPoint(point: Vector3): boolean; - closestPointToPoint(): Vector3; + closestPointToPoint(point: Vector3, optionalTarget?: Vector3): Vector3; equals(triangle: Triangle): boolean; static normal(a: Vector3, b: Vector3, c: Vector3, optionalTarget?: Vector3): Vector3; From bf2a72285c0d2e24b45e11bd1412b031e573b158 Mon Sep 17 00:00:00 2001 From: Diogo Franco Date: Thu, 27 Apr 2017 00:05:55 +0900 Subject: [PATCH 027/321] Add type definitions for react-loadable (#16118) * Add definitions for react-loadable * Add react-loadable/babel * Add explicit export --- types/react-loadable/babel.d.ts | 3 + types/react-loadable/index.d.ts | 117 ++++++++++++++++++ types/react-loadable/react-loadable-tests.tsx | 51 ++++++++ types/react-loadable/tsconfig.json | 24 ++++ types/react-loadable/tslint.json | 1 + 5 files changed, 196 insertions(+) create mode 100644 types/react-loadable/babel.d.ts create mode 100644 types/react-loadable/index.d.ts create mode 100644 types/react-loadable/react-loadable-tests.tsx create mode 100644 types/react-loadable/tsconfig.json create mode 100644 types/react-loadable/tslint.json diff --git a/types/react-loadable/babel.d.ts b/types/react-loadable/babel.d.ts new file mode 100644 index 0000000000..a9f18c2e00 --- /dev/null +++ b/types/react-loadable/babel.d.ts @@ -0,0 +1,3 @@ +import * as babel from 'babel-core'; + +export default function(context: Pick): { visitor: any }; diff --git a/types/react-loadable/index.d.ts b/types/react-loadable/index.d.ts new file mode 100644 index 0000000000..bbe7d1aac4 --- /dev/null +++ b/types/react-loadable/index.d.ts @@ -0,0 +1,117 @@ +// Type definitions for react-loadable 3.3 +// Project: https://github.com/thejameskyle/react-loadable#readme +// Definitions by: Diogo Franco +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 + +import * as React from 'react'; + +export type LoadedComponent = React.ComponentClass | React.SFC; + +export interface LoadingComponentProps { + isLoading: boolean; + pastDelay: boolean; + error: any; +} + +export type Options = OptionsWithoutResolve | OptionsWithResolve; + +export interface CommonOptions { + /** + * React component displayed after delay until loader() succeeds. Also responsible for displaying errors. + * + * If you don't want to render anything you can pass a function that returns null + * (this is considered a valid React component). + */ + // NOTE: () => null is only needed until React.SFC supports components returning null + LoadingComponent: React.ComponentClass | React.SFC | (() => null); + /** + * Defaults to 200, in milliseconds + * + * Only show the LoadingComponent if the loader() has taken this long to succeed or error. + */ + delay?: number; + /** + * When rendering server-side, require() this path to load the component instead, this way it happens + * synchronously. If you are rendering server-side you should use this option. + * + * If you are using Babel, you might want to use the Babel plugin to add this option automatically. + */ + serverSideRequirePath?: string; + /** + * In order for Loadable to require() a component synchronously (when possible) instead of waiting for + * the promise returned by import() to resolve. If you are using Webpack you should use this option. + * + * ```ts + * Loadable({ + * // ... + * webpackRequireWeakId: () => require.resolveWeak('./MyComponent') + * }); + * ``` + * + * If you are using Babel, you might want to use the Babel plugin to add this option automatically. + */ + webpackRequireWeakId?(): number|string; +} + +export interface OptionsWithoutResolve extends CommonOptions { + /** + * Function returning promise returning a React component displayed on success. + * + * Resulting React component receives all the props passed to the generated component. + */ + loader(): Promise | { default: LoadedComponent }>; +} + +export interface OptionsWithResolve extends CommonOptions { + /** + * Function returning promise returning a React component displayed on success. + * + * Resulting React component receives all the props passed to the generated component. + */ + loader(): Promise; + /** + * If the component that you want to load is not the default exported from a module you can use this + * function to resolve it. + * + * ```ts + * Loadable({ + * // ... + * resolveModule: module => module.MyComponent + * }); + * ``` + */ + resolveModule(obj: T): LoadedComponent; +} + +export interface LoadableComponent { + /** + * The generated component has a static method preload() for calling the loader function ahead of time. + * This is useful for scenarios where you think the user might do something next and want to load the + * next component eagerly. + * + * Note: preload() intentionally does not return a promise. You should not be depending on the timing of + * preload(). It's meant as a performance optimization, not for creating UI logic. + */ + preload(): void; +} + +export default function Loadable(options: Options): LoadedComponent & LoadableComponent; + +/** + * In case you are rendering server-side and want to find out after a render cycle which + * serverSideRequirePath's and webpackRequireWeakId's were actually rendered, you can use + * flushServerSideRequirePaths or flushWebpackRequireWeakIds to get an array of them. + * + * Note: These are flushed individually, one does not affect the other. + */ +export function flushServerSideRequirePaths(): string[]; + +/** + * In case you are rendering server-side and want to find out after a render cycle which + * serverSideRequirePath's and webpackRequireWeakId's were actually rendered, you can use + * flushServerSideRequirePaths or flushWebpackRequireWeakIds to get an array of them. + * + * Note: These are flushed individually, one does not affect the other. + */ +export function flushWebpackRequireWeakIds(): string[]|number[]; diff --git a/types/react-loadable/react-loadable-tests.tsx b/types/react-loadable/react-loadable-tests.tsx new file mode 100644 index 0000000000..3455a7b23a --- /dev/null +++ b/types/react-loadable/react-loadable-tests.tsx @@ -0,0 +1,51 @@ +import * as React from 'react'; +import Loadable, { LoadingComponentProps } from 'react-loadable'; + +class LoadingComponent extends React.Component { + render() { + return
{this.props.isLoading}
; + } +} + +interface ComponentProps { + text: string; +} + +const Component: React.SFC = ({ text }) =>
{text}
; + +const Loadable100 = Loadable({ + // a module shape with 'export = Component' / 'module.exports = Component' + loader: () => Promise.resolve(Component), + LoadingComponent, + delay: 100 +}); + +const Loadable200 = Loadable({ + // a module shape with 'export default Component' + loader: () => Promise.resolve({ default: Component }), + LoadingComponent, + delay: 200 +}); + +const Loadable300 = Loadable({ + // a module shape with 'export { Component }' + loader: () => Promise.resolve({ Component }), + LoadingComponent, + delay: 300, + resolveModule: shape => shape.Component +}); + +const Loadable400 = Loadable({ + // a module shape with both 'export default Component' and 'export { Component }' + loader: () => Promise.resolve({ default: Component, Component }), + LoadingComponent: () => null, + delay: 300, + resolveModule: shape => shape.Component +}); + +const used100 = ; +const used200 = ; +const used300 = ; +const used400 = ; + +Loadable100.preload(); diff --git a/types/react-loadable/tsconfig.json b/types/react-loadable/tsconfig.json new file mode 100644 index 0000000000..bf26cfdbc5 --- /dev/null +++ b/types/react-loadable/tsconfig.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "jsx": "react", + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "babel.d.ts", + "react-loadable-tests.tsx" + ] +} diff --git a/types/react-loadable/tslint.json b/types/react-loadable/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/react-loadable/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From fc7212862d74f9b2822c67556fbd1bf9306e7522 Mon Sep 17 00:00:00 2001 From: Jakub Sedlacek Date: Wed, 26 Apr 2017 19:03:41 +0200 Subject: [PATCH 028/321] mongodb: add partialFilterExpression to indexOptions (#16109) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- types/mongodb/index.d.ts | 10 ++++++---- types/mongodb/mongodb-tests.ts | 2 ++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/types/mongodb/index.d.ts b/types/mongodb/index.d.ts index 6f4f5624e1..859dc87b26 100644 --- a/types/mongodb/index.d.ts +++ b/types/mongodb/index.d.ts @@ -1,9 +1,9 @@ -// Type definitions for MongoDB v2.1 -// Project: https://github.com/mongodb/node-mongodb-native/tree/2.1 +// Type definitions for MongoDB v2.2 +// Project: https://github.com/mongodb/node-mongodb-native/tree/2.2 // Definitions by: Federico Caselli // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -// Documentation : http://mongodb.github.io/node-mongodb-native/2.1/api/ +// Documentation : http://mongodb.github.io/node-mongodb-native/2.2/api/ /// /// @@ -303,7 +303,7 @@ export interface DbCollectionOptions { readConcern?: { level: Object }; } -//http://mongodb.github.io/node-mongodb-native/2.1/api/Db.html#createIndex +//http://mongodb.github.io/node-mongodb-native/2.2/api/Db.html#createIndex export interface IndexOptions { // The write concern. w?: number | string; @@ -331,6 +331,8 @@ export interface IndexOptions { expireAfterSeconds?: number; // Override the auto generated index name (useful if the resulting name is larger than 128 bytes) name?: string; + // Creates a partial index based on the given filter object (MongoDB 3.2 or higher) + partialFilterExpression?: any; } // http://mongodb.github.io/node-mongodb-native/2.1/api/Admin.html diff --git a/types/mongodb/mongodb-tests.ts b/types/mongodb/mongodb-tests.ts index cba7f9a212..bf3f3e653f 100644 --- a/types/mongodb/mongodb-tests.ts +++ b/types/mongodb/mongodb-tests.ts @@ -24,6 +24,8 @@ MongoClient.connect('mongodb://127.0.0.1:27017/test', function(err: mongodb.Mong collection.stats(function(err: mongodb.MongoError, stats: any) { console.log(stats.count + " documents"); }); + + collection.createIndex({}, {partialFilterExpression: {rating: {$exists: 1}}}) }); { From 99d153dd1b0e48c0888b4f1971a646e98c67e132 Mon Sep 17 00:00:00 2001 From: Lionel Date: Wed, 26 Apr 2017 19:04:04 +0200 Subject: [PATCH 029/321] screenfull: update type definitions for v3.2 (#16097) --- types/screenfull/index.d.ts | 6 ++++-- types/screenfull/screenfull-tests.ts | 23 +++++++++++++++++++++-- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/types/screenfull/index.d.ts b/types/screenfull/index.d.ts index 80d13aa54a..ad5c76037b 100644 --- a/types/screenfull/index.d.ts +++ b/types/screenfull/index.d.ts @@ -1,6 +1,6 @@ -// Type definitions for screenfull.js 3.0.0 +// Type definitions for screenfull.js 3.2.0 // Project: https://github.com/sindresorhus/screenfull.js -// Definitions by: Ilia Choly +// Definitions by: Ilia Choly , lionelb // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -23,6 +23,8 @@ interface IScreenfull { request(elem?: Element): void; toggle(elem?: Element): void; exit(): void; + onchange(handler: () => void): void; + onerror(handler: (event: Event) => void): void; } export = screenfull; diff --git a/types/screenfull/screenfull-tests.ts b/types/screenfull/screenfull-tests.ts index f2fcc2773a..e5efa0bcc0 100644 --- a/types/screenfull/screenfull-tests.ts +++ b/types/screenfull/screenfull-tests.ts @@ -31,7 +31,7 @@ function test_exit() { }) } -function test_detect_change() { +function test_raw_detect_change() { if (screenfull.enabled) { document.addEventListener(screenfull.raw.fullscreenchange, function () { if (screenfull.isFullscreen) { @@ -43,13 +43,32 @@ function test_detect_change() { } } -function test_detect_error() { +function test_raw_error() { if (screenfull.enabled) { document.addEventListener(screenfull.raw.fullscreenerror, function (event) { console.error('Failed to enable fullscreen', event); }); } } +function test_detect_change() { + if (screenfull.enabled) { + screenfull.onchange(function () { + if (screenfull.isFullscreen) { + console.log('fullscreen'); + } else { + console.log('not fullscreen'); + } + }); + } +} + +function test_detect_error() { + if (screenfull.enabled) { + screenfull.onerror(function (event) { + console.error('Failed to enable fullscreen', event); + }); + } +} function test_access_element() { var elem = document.getElementById('target'); From 0baf4fe3f11ed33d2cb8830adb5aa48e1a115f03 Mon Sep 17 00:00:00 2001 From: Krzysztof Rzymkowski Date: Wed, 26 Apr 2017 19:04:54 +0200 Subject: [PATCH 030/321] [openlayers] ol.interaction.Draw.createBox() (#16130) --- types/openlayers/index.d.ts | 9 +++++++++ types/openlayers/openlayers-tests.ts | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/types/openlayers/index.d.ts b/types/openlayers/index.d.ts index 2b721ab7ca..e863a28ad3 100644 --- a/types/openlayers/index.d.ts +++ b/types/openlayers/index.d.ts @@ -5255,6 +5255,15 @@ declare module ol { */ extend(feature: ol.Feature): void; + /** + * Create a `geometryFunction` that will create a box-shaped polygon (aligned + * with the coordinate system axes). Use this with the draw interaction and + * `type: 'Circle'` to return a box instead of a circle geometry. + * @return {ol.DrawGeometryFunctionType} Function that draws a box-shaped polygon. + * @api + */ + static createBox(): ol.DrawGeometryFunctionType; + /** * Create a `geometryFunction` for `mode: 'Circle'` that will create a regular * polygon with a user specified number of sides and start angle instead of an diff --git a/types/openlayers/openlayers-tests.ts b/types/openlayers/openlayers-tests.ts index ca74a6bbc2..01d12bf1b6 100644 --- a/types/openlayers/openlayers-tests.ts +++ b/types/openlayers/openlayers-tests.ts @@ -662,6 +662,12 @@ draw = new ol.interaction.Draw({ type: "Point", style: styleFunctionAsStyle }); +ol.interaction.Draw.createBox(); +ol.interaction.Draw.createRegularPolygon(); +ol.interaction.Draw.createRegularPolygon(4); +ol.interaction.Draw.createRegularPolygon(4,0); + + let styleFunctionAsArray = function(feature: ol.Feature, resolution: number): ol.style.Style[] { return styleArray; } draw = new ol.interaction.Draw({ type: "Point", From b2db59fb24ab7b5535d7f2d38066109312d656a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Allienne?= Date: Wed, 26 Apr 2017 19:27:42 +0200 Subject: [PATCH 031/321] Move className from SharedEnhancedButtonProps to FlatButtonProps and increase minor version (#16142) --- types/material-ui/index.d.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/types/material-ui/index.d.ts b/types/material-ui/index.d.ts index 24ce477dbe..727fc433c8 100644 --- a/types/material-ui/index.d.ts +++ b/types/material-ui/index.d.ts @@ -1,6 +1,6 @@ -// Type definitions for material-ui v0.17.4 +// Type definitions for material-ui v0.17.5 // Project: https://github.com/callemall/material-ui -// Definitions by: Nathan Brown , Igor Belagorudsky , Ali Taheri Moghaddar , Oliver Herrmann , Daniel Roth +// Definitions by: Nathan Brown , Igor Belagorudsky , Ali Taheri Moghaddar , Oliver Herrmann , Daniel Roth , Aurelién Allienne // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.2 @@ -627,7 +627,6 @@ declare namespace __MaterialUI { // non generally overridden elements of EnhancedButton interface SharedEnhancedButtonProps { centerRipple?: boolean; - className?: string; disableFocusRipple?: boolean; disableKeyboardFocus?: boolean; disableTouchRipple?: boolean; @@ -662,6 +661,7 @@ declare namespace __MaterialUI { interface FlatButtonProps extends React.DOMAttributes<{}>, SharedEnhancedButtonProps { // is the element that get the 'other' properties backgroundColor?: string; + className?: string; disabled?: boolean; fullWidth?: boolean; hoverColor?: string; From 737835c162b35598ae38d4ef9c976e8f52f54113 Mon Sep 17 00:00:00 2001 From: Christian Date: Wed, 26 Apr 2017 19:28:20 +0200 Subject: [PATCH 032/321] [react-svg-pan-zoom] fix background type https://github.com/chrvadala/react-svg-pan-zoom/issues/35 (#16143) --- types/react-svg-pan-zoom/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/react-svg-pan-zoom/index.d.ts b/types/react-svg-pan-zoom/index.d.ts index 31559cc4a8..08b0db82b6 100644 --- a/types/react-svg-pan-zoom/index.d.ts +++ b/types/react-svg-pan-zoom/index.d.ts @@ -51,7 +51,7 @@ export type ToolbarPosition = typeof POSITION_NONE | typeof POSITION_TOP | typeo export interface OptionalProps { // background of the viewer - background: React.CSSProperties; + background: string; // background of the svg SVGBackground: string; From a834a66304f97b02fd9a3554640dd70936cb4d40 Mon Sep 17 00:00:00 2001 From: infernaldawn Date: Wed, 26 Apr 2017 19:29:41 +0200 Subject: [PATCH 033/321] Use union types instead of overloads (#16144) --- types/memcached/index.d.ts | 69 ++++++++++++++++--------------------- types/memcached/tslint.json | 5 +-- 2 files changed, 31 insertions(+), 43 deletions(-) diff --git a/types/memcached/index.d.ts b/types/memcached/index.d.ts index 24aa6beb3e..3c46efe396 100644 --- a/types/memcached/index.d.ts +++ b/types/memcached/index.d.ts @@ -13,25 +13,11 @@ declare class Memcached extends events.EventEmitter { static config: Memcached.options; /** - * Connect to a single server. - * @param location Server location e.g. "127.0.0.1:11211" + * Connect to a single Memcached server or cluster + * @param location Server locations * @param options options */ - constructor(location: string, options?: Memcached.options); - - /** - * Connect to a cluster of Memcached servers. - * @param location Server locations e.g. ["127.0.0.1:11211","127.0.0.1:11212"] - * @param options options - */ - constructor(location: string[], options?: Memcached.options); - - /** - * Connect to servers with weight. - * @param location Server locations e.g. {"127.0.0.1:11211": 1,"127.0.0.1:11212": 2} - * @param options options - */ - constructor(location: {[server: string]: number}, options ?: Memcached.options); + constructor(location: Memcached.Location, options?: Memcached.options); /** * Touches the given key. @@ -185,29 +171,9 @@ declare class Memcached extends events.EventEmitter { flush(cb: (this: undefined, err: any, results: boolean[]) => void): void; /** - * a issue occurred on one a server, we are going to attempt a retry next. + * Register event listener */ - on(event: "issue", cb: (err: Memcached.IssueData) => void): this; - - /** - * a server has been marked as failure or dead. - */ - on(event: "failure", cb: (err: Memcached.IssueData) => void): this; - - /** - * we are going to attempt to reconnect the to the failed server. - */ - on(event: "reconnecting", cb: (err: Memcached.IssueData) => void): this; - - /** - * successfully reconnected to the memcached server. - */ - on(event: "reconnect", cb: (err: Memcached.IssueData) => void): this; - - /** - * removing the server from our consistent hashing. - */ - on( event: "remove", cb: (err: Memcached.IssueData) => void): this; + on(event: Memcached.EventNames, cb: (err: Memcached.IssueData) => void): this; /** * Closes all active memcached connections. @@ -260,6 +226,31 @@ declare namespace Memcached { s: number; } + /** + *
    + *
  • issue a issue occurred on a server, we are going to attempt a retry next.
  • + *
  • failure a server has been marked as failure or dead.
  • + *
  • reconnecting we are going to attempt to reconnect the to the failed server.
  • + *
  • reconnect successfully reconnected to the memcached server.
  • + *
  • remove removing the server from our consistent hashing.
  • + *
+ */ + type EventNames = "issue" | "failure" | "reconnecting" | "reconnect" | "remove"; + + /** + * Declaration for single server or Memcached cluster location + * + * to connect to a single server use + * "127.0.0.1:11211" + * + * to connect to a cluster of Memcached servers use + * ["127.0.0.1:11211","127.0.0.1:11212"] + * + * to connect to servers with weight use + * {"127.0.0.1:11211": 1,"127.0.0.1:11212": 2} + */ + type Location = string | string[] | {[server: string]: number}; + interface options { /** * 250, the maximum key size allowed. diff --git a/types/memcached/tslint.json b/types/memcached/tslint.json index 08b1465cd6..f93cf8562a 100644 --- a/types/memcached/tslint.json +++ b/types/memcached/tslint.json @@ -1,6 +1,3 @@ { - "extends": "dtslint/dt.json", - "rules": { - "unified-signatures": false - } + "extends": "dtslint/dt.json" } From 00ac5257cb11f401c00c3689de5651b686734127 Mon Sep 17 00:00:00 2001 From: Tim Brust Date: Wed, 26 Apr 2017 19:50:51 +0200 Subject: [PATCH 034/321] feat(webdriverio): add toggleTouchIdEnrollment function (#16147) style(webdriverio): add linting and correct reported issues test(webdriverio): update GitHub test case --- types/webdriverio/index.d.ts | 289 +++++++++++++------------ types/webdriverio/tsconfig.json | 9 +- types/webdriverio/tslint.json | 7 + types/webdriverio/webdriverio-tests.ts | 67 +++--- 4 files changed, 186 insertions(+), 186 deletions(-) create mode 100644 types/webdriverio/tslint.json diff --git a/types/webdriverio/index.d.ts b/types/webdriverio/index.d.ts index e74b4712a5..5c856575b2 100644 --- a/types/webdriverio/index.d.ts +++ b/types/webdriverio/index.d.ts @@ -1,14 +1,14 @@ -// Type definitions for webdriverio 4.6 +// Type definitions for WebdriverIO 4.7 // Project: http://www.webdriver.io/ -// Definitions by: Nick Malaguti +// Definitions by: Nick Malaguti , Tim Brust // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// declare namespace WebdriverIO { - export type Method = 'POST' | 'GET' | 'DELETE'; + type Method = 'POST' | 'GET' | 'DELETE'; - export interface RawResult { + interface RawResult { sessionId: string; value: T; state: 'failure' | 'success'; @@ -19,19 +19,19 @@ declare namespace WebdriverIO { error?: string; } - export type ElementId = string; + type ElementId = string; - export interface Element { + interface Element { ELEMENT: ElementId; } - export interface CssProperty { + interface CssProperty { property: string; value: string; parsed: ParsedCssProperty; } - export interface ParsedCssProperty { + interface ParsedCssProperty { type: string; string: string; quote: string; @@ -39,24 +39,24 @@ declare namespace WebdriverIO { value: string | number | string[] | number[]; } - export interface Size { + interface Size { width: number; height: number; } - export interface Position { + interface Position { x: number; y: number; } - export interface DOMRect { + interface DOMRect { width: number; height: number; x: number; y: number; } - export enum ApplicationCacheStatus { + enum ApplicationCacheStatus { UNCACHED = 0, IDLE = 1, CHECKING = 2, @@ -65,13 +65,13 @@ declare namespace WebdriverIO { OBSOLETE = 5 } - export enum Button { + enum Button { left = 0, middle = 1, right = 2 } - export interface Status { + interface Status { build?: { version: string; revision?: string; @@ -89,50 +89,50 @@ declare namespace WebdriverIO { }; } - export interface StorageItem { + interface StorageItem { key: string; value: any; } - export interface StorageItems { + interface StorageItems { [key: string]: any; } - export interface GeoLocation { + interface GeoLocation { latitude: number; longitude: number; altitude: number; } - export interface CommandHistoryEntry { + interface CommandHistoryEntry { command: string; args: any[]; } - export type Axis = 'x' | 'y'; + type Axis = 'x' | 'y'; - export type Timeouts = 'script' | 'pageLoad' | 'implicit'; + type Timeouts = 'script' | 'pageLoad' | 'implicit'; - export type PageLoadingStrategy = 'none' | 'eager' | 'normal'; + type PageLoadingStrategy = 'none' | 'eager' | 'normal'; - export type LocatorStrategy = 'css selector' - | 'link text' - | 'partial link text' - | 'tag name' - | 'xpath'; + type LocatorStrategy = 'css selector' + | 'link text' + | 'partial link text' + | 'tag name' + | 'xpath'; - export interface LogEntry { + interface LogEntry { timestamp: number; level: string; message: string; } - export type LoggingPreferenceType = - 'OFF' | 'SEVERE' | 'WARNING' | - 'INFO' | 'CONFIG' | 'FINE' | + type LoggingPreferenceType = + 'OFF' | 'SEVERE' | 'WARNING' | + 'INFO' | 'CONFIG' | 'FINE' | 'FINER' | 'FINEST' | 'ALL'; - export interface LoggingPreferences { + interface LoggingPreferences { browser?: LoggingPreferenceType; driver?: LoggingPreferenceType; server?: LoggingPreferenceType; @@ -155,12 +155,12 @@ declare namespace WebdriverIO { socksPassword?: string; } - export interface Session { + interface Session { id: string; capabilities: DesiredCapabilities; } - export interface Capabilities { + interface Capabilities { browserName: string; acceptInsecureCerts?: boolean; browserVersion?: string; @@ -172,7 +172,7 @@ declare namespace WebdriverIO { unhandledPromptBehavior?: string; } - export interface DesiredCapabilities extends Capabilities { + interface DesiredCapabilities extends Capabilities { // Read-only capabilities cssSelectorsEnabled?: boolean; handlesAlerts?: boolean; @@ -302,7 +302,7 @@ declare namespace WebdriverIO { ensureCleanSession?: boolean; } - export interface Cookie extends RawResult { + interface Cookie extends RawResult { name: string; value: string; path?: string; @@ -311,7 +311,7 @@ declare namespace WebdriverIO { secure: boolean; } - export interface Suite { + interface Suite { file: string; parent: string; pending: boolean; @@ -319,13 +319,13 @@ declare namespace WebdriverIO { type: string; } - export interface Test extends Suite { + interface Test extends Suite { currentTest: string; passed: boolean; duration: any; } - export interface Hooks { + interface Hooks { onError(error: Error): Promise & undefined; onPrepare( @@ -387,7 +387,7 @@ declare namespace WebdriverIO { afterFeature(feature: string): Promise & undefined; } - export interface Options { + interface Options { baseUrl?: string; bail?: number; coloredLogs?: boolean; @@ -426,43 +426,43 @@ declare namespace WebdriverIO { key?: string; } - export interface UnknownOptions { - [name: string]: any; - } + interface UnknownOptions { + [name: string]: any; + } - export interface MultiRemoteOptions { + interface MultiRemoteOptions { [name: string]: Options; } - export interface Config extends Options, Hooks {} + interface Config extends Options, Hooks { } - export interface Client { + interface Client { desiredCapabilities: DesiredCapabilities; } - export interface Client { + interface Client { sessionId: string; } // Options - export interface Client { + interface Client { options: Options; } - export class Launcher { + class Launcher { constructor(file: string, data: Options); run(): Promise; } - export class ErrorHandler { + class ErrorHandler { constructor(type: string, msg: string | number); } - export function multiremote(options: MultiRemoteOptions): Client; - export function remote(options?: Options, modifier?: (...args: any[]) => any): Client; + function multiremote(options: MultiRemoteOptions): Client; + function remote(options?: Options, modifier?: (...args: any[]) => any): Client; // EventEmitter - export interface Client { + interface Client { addListener( event: string, listener: (...args: any[]) => void @@ -470,7 +470,7 @@ declare namespace WebdriverIO { on( event: string, - listener: (...args: any[]) => void + listener: (...args: any[]) => void ): Client; once( @@ -488,12 +488,12 @@ declare namespace WebdriverIO { listeners(event: string): Client; emit( event: string, - ...args: any[] + ...args: any[] ): Client; } // Promise - export interface Client { + interface Client { finally(callback: (...args: any[]) => void): Client; then

( @@ -512,7 +512,7 @@ declare namespace WebdriverIO { }; } - export interface Client { + interface Client { addValue( selector: string, value: string | number @@ -758,7 +758,7 @@ declare namespace WebdriverIO { } // Cookie - export interface Client { + interface Client { deleteCookie(name?: string): Client> & RawResult; deleteCookie

(name?: string): Client

; @@ -771,7 +771,7 @@ declare namespace WebdriverIO { } // Grid - export interface Client { + interface Client { getGridNodeDetails(): Client & UnknownOptions; getGridNodeDetails

(): Client

; @@ -783,7 +783,7 @@ declare namespace WebdriverIO { } // Mobile - export interface Client { + interface Client { background(seconds: number): Client; closeApp(): Client; context(id?: string): Client; @@ -848,6 +848,7 @@ declare namespace WebdriverIO { toggleAirplaneMode(): Client; toggleData(): Client; toggleLocationServices(): Client; + toggleTouchIdEnrollment(match: boolean): Client; toggleWiFi(): Client; touch(selector: string, longClick: boolean): Client; touchAction(selector: string, action: 'tap' | 'press'): Client; @@ -858,7 +859,7 @@ declare namespace WebdriverIO { } // Property - export interface Client { + interface Client { getAttribute( selector: string, attributeName: string @@ -987,7 +988,7 @@ declare namespace WebdriverIO { } // Protocol - export interface Client { + interface Client { alertAccept(): Client>; alertAccept

(): Client

; @@ -1105,8 +1106,8 @@ declare namespace WebdriverIO { /** @deprecated in favour of elementIdRect */ elementIdLocationInView(id: ElementId): Client> & RawResult & never; - /** @deprecated in favour of elementIdRect */ - elementIdLocationInView

(id: ElementId): Client

; + /** @deprecated in favour of elementIdRect */ + elementIdLocationInView

(id: ElementId): Client

; elementIdName(id: ElementId): Client> & RawResult; elementIdName

(id: ElementId): Client

; @@ -1117,10 +1118,10 @@ declare namespace WebdriverIO { elementIdSelected(id: ElementId): Client> & RawResult; elementIdSelected

(id: ElementId): Client

; - /** @deprecated in favour of elementIdRect */ + /** @deprecated in favour of elementIdRect */ elementIdSize(id: ElementId): Client> & RawResult & never; - /** @deprecated in favour of elementIdRect */ + /** @deprecated in favour of elementIdRect */ elementIdSize

(id: ElementId): Client

; elementIdText(id: ElementId): Client> & RawResult; @@ -1149,10 +1150,10 @@ declare namespace WebdriverIO { ...args: any[] ): Client> & RawResult; - /** @deprecated */ + /** @deprecated */ file(date: string): Client> & never; - /** @deprecated */ + /** @deprecated */ file

(date: string): Client

& never; forward(): Client> & RawResult; @@ -1164,110 +1165,110 @@ declare namespace WebdriverIO { frameParent(): Client> & RawResult; frameParent

(): Client

; - /** @deprecated */ + /** @deprecated */ imeActivate(engine: string): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ imeActivate

(engine: string): Client

& never; - /** @deprecated */ + /** @deprecated */ imeActivated(): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ imeActivated

(): Client

; - /** @deprecated */ + /** @deprecated */ imeActiveEngine(): Client> & string & never; - /** @deprecated */ + /** @deprecated */ imeActiveEngine

(): Client

; - /** @deprecated */ + /** @deprecated */ imeAvailableEngines(): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ imeAvailableEngines

(): Client

; - /** @deprecated */ + /** @deprecated */ imeDeactivated(): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ imeDeactivated

(): Client

; init(capabilities?: DesiredCapabilities): Client> & RawResult; init

(capabilities?: DesiredCapabilities): Client

; - /** @deprecated in favour of Actions.keyDown */ + /** @deprecated in favour of Actions.keyDown */ keys(value: string | string[]): Client> & RawResult & never; - /** @deprecated in favour of Actions.keyDown */ + /** @deprecated in favour of Actions.keyDown */ keys

(value: string | string[]): Client

; - /** @deprecated */ + /** @deprecated */ localStorage(): Client> & RawResult; - /** @deprecated */ + /** @deprecated */ localStorage

(): Client

; - /** @deprecated */ + /** @deprecated */ localStorage( method: Method, key?: string ): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ localStorage( method: Method, key?: string ): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ localStorage

( method: Method, key?: string | StorageItems ): Client

; - /** @deprecated */ + /** @deprecated */ localStorageSize(): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ localStorageSize

(): Client

; - /** @deprecated in favour of elementIdRect */ + /** @deprecated in favour of elementIdRect */ location(type: GeoLocation): Client> & RawResult & never; - /** @deprecated in favour of elementIdRect */ + /** @deprecated in favour of elementIdRect */ location

(type: GeoLocation): Client

; - /** @deprecated */ + /** @deprecated */ log(type: LoggingPreferences): Client> & never; - /** @deprecated */ + /** @deprecated */ log

(type: LoggingPreferences): Client

; - /** @deprecated */ + /** @deprecated */ logTypes(): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ logTypes

(): Client

; - /** @deprecated in favour of Actions.pointerMove */ + /** @deprecated in favour of Actions.pointerMove */ moveTo( id: ElementId, xoffset: number, yoffset: number ): Client> & RawResult & never; - /** @deprecated in favour of Actions.pointerMove */ + /** @deprecated in favour of Actions.pointerMove */ moveTo( xoffset: number, yoffset: number ): Client> & RawResult & never; - /** @deprecated in favour of Actions.pointerMove */ + /** @deprecated in favour of Actions.pointerMove */ moveTo

(id: ElementId): Client

; - /** @deprecated in favour of Actions.pointerMove */ + /** @deprecated in favour of Actions.pointerMove */ moveTo

( id: ElementId, xoffset: number, @@ -1293,61 +1294,61 @@ declare namespace WebdriverIO { sessionId?: string ): Client

& null; - /** @deprecated */ + /** @deprecated */ sessions(): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ sessions

(): Client

; - /** @deprecated */ + /** @deprecated */ sessionStorage(): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ sessionStorage

(): Client

; - /** @deprecated */ + /** @deprecated */ sessionStorage(method: Method): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ sessionStorage(method: Method): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ sessionStorage

(method: Method): Client

; - /** @deprecated */ + /** @deprecated */ sessionStorage( method: Method, key: string ): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ sessionStorage( method: Method, key: string ): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ sessionStorage

( method: Method, key: string ): Client

; - /** @deprecated */ + /** @deprecated */ sessionStorage( method: Method, key: StorageItems ): Client> & RawResult; - /** @deprecated */ + /** @deprecated */ sessionStorage

( method: Method, key: StorageItems ): Client

; - /** @deprecated */ + /** @deprecated */ sessionStorageSize(): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ sessionStorageSize

(): Client

; source(): Client> & RawResult; @@ -1356,24 +1357,24 @@ declare namespace WebdriverIO { status(): Client> & RawResult; status(): Client; - /** @deprecated */ + /** @deprecated */ submit(id: ElementId): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ submit

(id: ElementId): Client

; timeouts

(type: Timeouts, ms: number): Client> & RawResult; - /** @deprecated in favour of timeouts */ + /** @deprecated in favour of timeouts */ timeoutsAsyncScript(ms: number): Client> & RawResult & never; - /** @deprecated in favour of timeouts */ + /** @deprecated in favour of timeouts */ timeoutsAsyncScript

(ms: number): Client

; - /** @deprecated in favour of timeouts */ + /** @deprecated in favour of timeouts */ timeoutsImplicitWait(ms: number): Client> & RawResult & never; - /** @deprecated in favour of timeouts */ + /** @deprecated in favour of timeouts */ timeoutsImplicitWait

(ms: number): Client

; url(): Client> & RawResult; @@ -1383,25 +1384,25 @@ declare namespace WebdriverIO { title(): Client> & RawResult; title

(): Client

; - /** @deprecated in favour of Actions.pointerDown */ + /** @deprecated in favour of Actions.pointerDown */ touchClick(id: ElementId): Client> & RawResult & never; - /** @deprecated in favour of Actions.pointerDown */ + /** @deprecated in favour of Actions.pointerDown */ touchClick

(id: ElementId): Client

; - /** @deprecated in favour of Actions.pointerDown */ + /** @deprecated in favour of Actions.pointerDown */ touchDown( xoffset: number, yoffset: number ): Client> & RawResult & never; - /** @deprecated in favour of Actions.pointerDown */ + /** @deprecated in favour of Actions.pointerDown */ touchDown

( xoffset: number, yoffset: number ): Client

; - /** @deprecated in favour of Actions.perform */ + /** @deprecated in favour of Actions.perform */ touchFlick( id: ElementId, xoffset: number, @@ -1409,7 +1410,7 @@ declare namespace WebdriverIO { speed: number ): Client> & RawResult & never; - /** @deprecated in favour of Actions.perform */ + /** @deprecated in favour of Actions.perform */ touchFlick

( id: ElementId, xoffset: number, @@ -1417,45 +1418,45 @@ declare namespace WebdriverIO { speed: number ): Client

; - /** @deprecated in favour of Actions.perform */ + /** @deprecated in favour of Actions.perform */ touchLongClick(id: ElementId): Client> & RawResult & never; - /** @deprecated in favour of Actions.perform */ + /** @deprecated in favour of Actions.perform */ touchLongClick

(id: ElementId): Client

; - /** @deprecated in favour of Actions.pointerMove */ + /** @deprecated in favour of Actions.pointerMove */ touchMove( xoffset: number, yoffset: number ): Client> & RawResult & never; - /** @deprecated in favour of Actions.pointerMove */ + /** @deprecated in favour of Actions.pointerMove */ touchMove

( xoffset: number, yoffset: number ): Client

; - /** @deprecated in favour of Actions.perform */ + /** @deprecated in favour of Actions.perform */ touchScroll( id: ElementId, xoffset: number, yoffset: number, ): Client> & RawResult & never; - /** @deprecated in favour of Actions.perform */ + /** @deprecated in favour of Actions.perform */ touchScroll

( id: ElementId, xoffset: number, yoffset: number, ): Client

; - /** @deprecated in favour of Actions.pointerUp */ + /** @deprecated in favour of Actions.pointerUp */ touchUp( xoffset: number, yoffset: number, ): Client> & RawResult & never; - /** @deprecated in favour of Actions.pointerUp */ + /** @deprecated in favour of Actions.pointerUp */ touchUp

( xoffset: number, yoffset: number, @@ -1473,59 +1474,59 @@ declare namespace WebdriverIO { windowHandleMaximize(): Client> & RawResult; windowHandleMaximize

(): Client

; - /** @deprecated in favour of /session/{session id}/window/rect */ + /** @deprecated in favour of /session/{session id}/window/rect */ windowHandlePosition( windowHandle?: string, position?: Position ): Client> & RawResult & never; - /** @deprecated in favour of /session/{session id}/window/rect */ + /** @deprecated in favour of /session/{session id}/window/rect */ windowHandlePosition( position: Position ): Client> & RawResult & never; - /** @deprecated in favour of /session/{session id}/window/rect */ + /** @deprecated in favour of /session/{session id}/window/rect */ windowHandlePosition

( windowHandle?: string, position?: Position ): Client

; - /** @deprecated in favour of /session/{session id}/window/rect */ + /** @deprecated in favour of /session/{session id}/window/rect */ windowHandlePosition

( position: Position ): Client

; - /** @deprecated in favour of /session/{session id}/window/rect */ + /** @deprecated in favour of /session/{session id}/window/rect */ windowHandleSize( windowHandle?: string, dimension?: Size ): Client> & RawResult & never; - /** @deprecated in favour of /session/{session id}/window/rect */ + /** @deprecated in favour of /session/{session id}/window/rect */ windowHandleSize( dimension: Size ): Client> & RawResult & never; - /** @deprecated in favour of /session/{session id}/window/rect */ + /** @deprecated in favour of /session/{session id}/window/rect */ windowHandleSize

( windowHandle?: string, dimension?: Size ): Client

; - /** @deprecated in favour of /session/{session id}/window/rect */ + /** @deprecated in favour of /session/{session id}/window/rect */ windowHandleSize

( dimension?: Size ): Client

; - /** @deprecated */ + /** @deprecated */ windowHandles(): Client> & RawResult & never; - /** @deprecated */ + /** @deprecated */ windowHandles

(): Client

& never; } // State - export interface Client { + interface Client { hasFocus(selector?: string): Client & boolean; hasFocus

(selector?: string): Client

; @@ -1546,7 +1547,7 @@ declare namespace WebdriverIO { } // Utility - export interface Client { + interface Client { $(selector: string): Client> & RawResult; $

(selector: string): Client

; @@ -1833,7 +1834,7 @@ declare namespace WebdriverIO { } // Window - export interface Client { + interface Client { close(windowHandle?: string): Client> & RawResult; close

(windowHandle?: string): Client

; @@ -1873,7 +1874,7 @@ declare namespace WebdriverIO { switchTab

(windowHandle?: string): Client

; } - export var VERSION: string; + const VERSION: string; } declare var browser: WebdriverIO.Client; diff --git a/types/webdriverio/tsconfig.json b/types/webdriverio/tsconfig.json index 1d911f125a..53b3c26236 100644 --- a/types/webdriverio/tsconfig.json +++ b/types/webdriverio/tsconfig.json @@ -6,18 +6,19 @@ "dom" ], "noImplicitAny": true, - "noImplicitThis": false, - "strictNullChecks": false, + "noImplicitThis": true, + "strictNullChecks": true, "baseUrl": "../", "typeRoots": [ "../" ], "types": [], "noEmit": true, - "forceConsistentCasingInFileNames": true + "forceConsistentCasingInFileNames": true, + "target": "es2015" }, "files": [ "index.d.ts", "webdriverio-tests.ts" ] -} \ No newline at end of file +} diff --git a/types/webdriverio/tslint.json b/types/webdriverio/tslint.json new file mode 100644 index 0000000000..a0c383f962 --- /dev/null +++ b/types/webdriverio/tslint.json @@ -0,0 +1,7 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + "no-single-declare-module": false, + "unified-signatures": false + } +} diff --git a/types/webdriverio/webdriverio-tests.ts b/types/webdriverio/webdriverio-tests.ts index 826e2f1811..b914cb50cb 100644 --- a/types/webdriverio/webdriverio-tests.ts +++ b/types/webdriverio/webdriverio-tests.ts @@ -1,69 +1,60 @@ - /// -import {assert} from "chai"; +import * as webdriverio from "webdriverio"; +import { assert } from "chai"; -describe("webdriver.io page", function() { - - it("should have the right title - the good old callback way", function() { +describe("webdriver.io page", () => { + it("should have the right title - the good old callback way", () => { assert.equal( browser .url("/") .getTitle(), "WebdriverIO - Selenium 2.0 javascript bindings for nodejs" ); - }); - it("should have the right title - the promise way", function() { - + it("should have the right title - the promise way", () => { return browser .url("/") - .getTitle().then(function(title) { + .getTitle().then((title) => { assert.equal(title, "WebdriverIO - Selenium 2.0 javascript bindings for nodejs"); }); - }); }); -import * as webdriverio from "webdriverio"; +describe.only("my webdriverio tests", () => { + let client: webdriverio.Client; -describe("my webdriverio tests", function(){ - - this.timeout(99999999); - var client: webdriverio.Client; - - before(function() { + before(async () => { client = webdriverio.remote({ desiredCapabilities: { browserName: "phantomjs" } }); - client.init(); + await client.init(); }); - it("Github test", function() { - client.url("https://github.com/"); + it("Github test", async () => { + await client.url("https://github.com/"); + await client.waitForVisible('.header-logo-invertocat'); - var elementSize = client.getElementSize(".header-logo-wordmark"); - - var foo = client.getElementSize('div'); + const elementSize = await client.getElementSize(".header-logo-invertocat"); assert.isNumber(elementSize.height); assert.isNumber(elementSize.width); - assert.strictEqual(elementSize.height, 26); - assert.strictEqual(elementSize.width, 89); + assert.strictEqual(elementSize.height, 32); + assert.strictEqual(elementSize.width, 32); - var title = client.getTitle(); + const title = await client.getTitle(); assert.isString(title); - assert.strictEqual(title, "GitHub · Where software is built"); + assert.strictEqual(title, "The world's leading software development platform · GitHub"); - var cssProperty = client.getCssProperty("a[href='/plans']", "color"); - assert.strictEqual(cssProperty.value, "rgba(64,120,192,1)"); + const cssProperty = await client.getCssProperty("a[href='/pricing']", "color"); + assert.strictEqual(cssProperty.value, "rgba(255,255,255,1)"); }); - after(function() { - client.end(); + after(async () => { + await client.end(); }); }); -var matrix = webdriverio.multiremote({ +const matrix = webdriverio.multiremote({ browserA: { desiredCapabilities: { browserName: "chrome", @@ -88,7 +79,7 @@ var matrix = webdriverio.multiremote({ } }); -var channel = Math.round(Math.random() * 100000000000); +const channel = Math.round(Math.random() * 100000000000); matrix .init() @@ -97,7 +88,7 @@ matrix .pause(5000) .end(); -var options = { +const options = { desiredCapabilities: { browserName: "chrome" } @@ -107,10 +98,10 @@ webdriverio .remote(options) .init() .url("https://news.ycombinator.com/") - .selectorExecute("//div", function(inputs: HTMLElement[], message: string) { + .selectorExecute("//div", (inputs: HTMLElement[], message: string) => { return inputs.length + " " + message; }, "divs on the page") - .then(function(res: string) { + .then((res: string) => { console.log(res); }) .end(); @@ -120,7 +111,7 @@ webdriverio .init() .url("http://www.google.com/") .waitForVisible("//input[@type='submit']", 5000) - .then(function(visible){ - console.log(visible); //Should return true + .then((visible) => { + console.log(visible); // Should return true }) .end(); From 9667b739e2137c08121c5e78dd7ee3fa7c1180e4 Mon Sep 17 00:00:00 2001 From: Michael Strobel Date: Thu, 27 Apr 2017 02:11:08 +0800 Subject: [PATCH 035/321] [dotenv] Add types for v4.0.0 (#16087) --- types/dotenv/dotenv-tests.ts | 12 ++-------- types/dotenv/index.d.ts | 24 +++++++++++-------- types/dotenv/v2/dotenv-tests.ts | 26 ++++++++++++++++++++ types/dotenv/v2/index.d.ts | 42 +++++++++++++++++++++++++++++++++ types/dotenv/v2/tsconfig.json | 25 ++++++++++++++++++++ types/dotenv/v2/tslint.json | 1 + 6 files changed, 110 insertions(+), 20 deletions(-) create mode 100644 types/dotenv/v2/dotenv-tests.ts create mode 100644 types/dotenv/v2/index.d.ts create mode 100644 types/dotenv/v2/tsconfig.json create mode 100644 types/dotenv/v2/tslint.json diff --git a/types/dotenv/dotenv-tests.ts b/types/dotenv/dotenv-tests.ts index f609dd4745..df05475c17 100644 --- a/types/dotenv/dotenv-tests.ts +++ b/types/dotenv/dotenv-tests.ts @@ -1,15 +1,7 @@ import dotenv = require('dotenv'); -// typically, result will be an Object -const env = dotenv.config({ - silent: true -}); -const dbUrl: string | null = !env ? null : env['DATABASE_URL']; - -// ... but it might also be `false` -const result = dotenv.config({ - path: '.non-existing-env' -}); +const env = dotenv.config(); +const dbUrl: string | null = env.error || !env.parsed ? null : env.parsed['DATABASE_URL']; dotenv.config({ path: '.env' diff --git a/types/dotenv/index.d.ts b/types/dotenv/index.d.ts index 7e015ca8cd..92e15c1637 100644 --- a/types/dotenv/index.d.ts +++ b/types/dotenv/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for dotenv 2.0 +// Type definitions for dotenv 4.0 // Project: https://github.com/motdotla/dotenv // Definitions by: Jussi Kinnula , Borek Bernard , Eric Naeseth // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -14,18 +14,15 @@ export function parse(src: string | Buffer): {[name: string]: string}; * Loads `.env` into `process.env`. * * @param options - * @return Object Object with the parsed keys and values, e.g., 'KEY=value' becomes { KEY: 'value' } + * @return Object Object with either + * - "parsed" containing the parsed keys and values or + * - "error" containing an Error object + * + * Example: 'KEY=value' becomes { parsed: { KEY: 'value' } } */ -export function config(options?: DotenvOptions): {[name: string]: string} | false; +export function config(options?: DotenvOptions): DotenvResult; 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. * @@ -40,3 +37,10 @@ export interface DotenvOptions { */ encoding?: string; } + +export interface DotenvResult { + error?: Error; + parsed?: { + [name: string]: string; + }; +} diff --git a/types/dotenv/v2/dotenv-tests.ts b/types/dotenv/v2/dotenv-tests.ts new file mode 100644 index 0000000000..f609dd4745 --- /dev/null +++ b/types/dotenv/v2/dotenv-tests.ts @@ -0,0 +1,26 @@ +import dotenv = require('dotenv'); + +// typically, result will be an Object +const env = dotenv.config({ + silent: true +}); +const dbUrl: string | null = !env ? null : env['DATABASE_URL']; + +// ... but it might also be `false` +const result = dotenv.config({ + path: '.non-existing-env' +}); + +dotenv.config({ + path: '.env' +}); + +dotenv.config({ + encoding: 'utf8' +}); + +const parsed = dotenv.parse("ENVIRONMENT=production\nDEBUG=no\n"); +const debug: string = parsed['DEBUG']; + +const parsedFromBuffer = dotenv.parse(new Buffer("JUSTICE=league\n")); +const justice: string = parsedFromBuffer['JUSTICE']; diff --git a/types/dotenv/v2/index.d.ts b/types/dotenv/v2/index.d.ts new file mode 100644 index 0000000000..7e015ca8cd --- /dev/null +++ b/types/dotenv/v2/index.d.ts @@ -0,0 +1,42 @@ +// Type definitions for dotenv 2.0 +// Project: https://github.com/motdotla/dotenv +// Definitions by: Jussi Kinnula , Borek Bernard , Eric Naeseth +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/// + +/** + * Parses a string or buffer in the .env file format into an object. + */ +export function parse(src: string | Buffer): {[name: string]: string}; + +/** + * 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): {[name: string]: string} | false; + +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/types/dotenv/v2/tsconfig.json b/types/dotenv/v2/tsconfig.json new file mode 100644 index 0000000000..efaf5860d4 --- /dev/null +++ b/types/dotenv/v2/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../../", + "typeRoots": [ + "../../" + ], + "paths": { + "dotenv": [ "dotenv/v2" ] + }, + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "dotenv-tests.ts" + ] +} diff --git a/types/dotenv/v2/tslint.json b/types/dotenv/v2/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/dotenv/v2/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From 238ce6d05ddf307278e9df912cadea48715c953e Mon Sep 17 00:00:00 2001 From: Gaspar Zaragoza Date: Thu, 27 Apr 2017 06:12:18 +1200 Subject: [PATCH 036/321] Add missing typing (#16085) freehand option was missing from DrawOptions. Source: https://openlayers.org/en/latest/apidoc/ol.interaction.Draw.html --- types/openlayers/index.d.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/types/openlayers/index.d.ts b/types/openlayers/index.d.ts index e863a28ad3..b9d2c55ef6 100644 --- a/types/openlayers/index.d.ts +++ b/types/openlayers/index.d.ts @@ -12470,6 +12470,7 @@ declare module olx { * geometryName: (string|undefined), * condition: (ol.EventsConditionType|undefined), * freehandCondition: (ol.EventsConditionType|undefined), + * freehand: (boolean|undefined) * wrapX: (boolean|undefined)}} */ interface DrawOptions { @@ -12486,6 +12487,7 @@ declare module olx { geometryName?: string; condition?: ol.EventsConditionType; freehandCondition?: ol.EventsConditionType; + freehand?:boolean; wrapX?: boolean; } From 1ed019e8ad8d5ef7fa787391b694f282d585e7e4 Mon Sep 17 00:00:00 2001 From: Hari Juturu Date: Wed, 26 Apr 2017 11:16:48 -0700 Subject: [PATCH 037/321] Updating keytar typings for v4.0.2 (#16082) * Updating keytar typings for v4.0.2 * Updating the return types * Adding null return for get/find password --- types/keytar/index.d.ts | 34 ++++++++++------------------------ types/keytar/keytar-tests.ts | 8 ++++---- 2 files changed, 14 insertions(+), 28 deletions(-) diff --git a/types/keytar/index.d.ts b/types/keytar/index.d.ts index 5a27c0c984..f807b19a9f 100644 --- a/types/keytar/index.d.ts +++ b/types/keytar/index.d.ts @@ -1,6 +1,6 @@ -// Type definitions for keytar 3.0.2 +// Type definitions for keytar 4.0.2 // Project: http://atom.github.io/node-keytar/ -// Definitions by: Milan Burda , Brendan Forster +// Definitions by: Milan Burda , Brendan Forster , Hari Juturu // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -10,9 +10,9 @@ * @param service The string service name. * @param account The string account name. * - * @returns the string password or null on failures. + * @returns A promise for the password string. */ -export declare function getPassword(service: string, account: string): string | null; +export declare function getPassword(service: string, account: string): Promise; /** * Add the password for the service and account to the keychain. @@ -21,9 +21,9 @@ export declare function getPassword(service: string, account: string): string | * @param account The string account name. * @param password The string password. * - * @returns true on success, false on failure. + * @returns A promise for the set password completion. */ -export declare function addPassword(service: string, account: string, password: string): boolean; +export declare function setPassword(service: string, account: string, password: string): Promise; /** * Delete the stored password for the service and account. @@ -31,29 +31,15 @@ export declare function addPassword(service: string, account: string, password: * @param service The string service name. * @param account The string account name. * - * @returns true on success, false on failure + * @returns A promise for the deletion status. True on success. */ -export declare function deletePassword(service: string, account: string): boolean; - -/** - * Replace the password for the service and account in the keychain. - * - * This is a simple convenience function that internally calls deletePassword(service, account) - * followed by addPassword(service, account, password). - * - * @param service The string service name. - * @param account The string account name. - * @param password The string password. - * - * @returns true on success, false on failure. - */ -export declare function replacePassword(service: string, account: string, password: string): boolean; +export declare function deletePassword(service: string, account: string): Promise; /** * Find a password for the service in the keychain. * * @param service The string service name. * - * @returns the string password or null on failures. + * @returns A promise for the password string. */ -export declare function findPassword(service: string): string | null; +export declare function findPassword(service: string): Promise; diff --git a/types/keytar/keytar-tests.ts b/types/keytar/keytar-tests.ts index d523050650..f6873838c2 100644 --- a/types/keytar/keytar-tests.ts +++ b/types/keytar/keytar-tests.ts @@ -1,13 +1,13 @@ import keytar = require('keytar'); -let success: boolean = false; +let setResult: Promise; +setResult = keytar.setPassword('keytar-tests', 'username', 'password'); -success = keytar.addPassword('keytar-tests', 'username', 'password'); +let success: Promise; success = keytar.deletePassword('keytar-tests', 'username'); -success = keytar.replacePassword('keytar-tests', 'username', 'password'); -let password: string = ''; +let password: Promise; password = keytar.findPassword('keytar-tests'); password = keytar.getPassword('keytar-tests', 'username'); From 0cc7d8bb6217ade475b9af3ce026d687c6979079 Mon Sep 17 00:00:00 2001 From: Eward Song Date: Thu, 27 Apr 2017 02:18:50 +0800 Subject: [PATCH 038/321] chore(egg): change interface name (#16076) --- types/egg/egg-tests.ts | 4 ++-- types/egg/index.d.ts | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/types/egg/egg-tests.ts b/types/egg/egg-tests.ts index 921ad35dd7..8caf5f0ac5 100644 --- a/types/egg/egg-tests.ts +++ b/types/egg/egg-tests.ts @@ -9,10 +9,10 @@ class FooController extends Controller { // add user controller and service declare module 'egg' { - interface Controllers { + interface IController { // tslint:disable-line foo: FooController; } - interface Services { + interface IService { // tslint:disable-line foo: FooService; } } diff --git a/types/egg/index.d.ts b/types/egg/index.d.ts index 065c4ee92f..b7746bca0b 100644 --- a/types/egg/index.d.ts +++ b/types/egg/index.d.ts @@ -32,7 +32,7 @@ declare class BaseContextClass { // tslint:disable-line /** * service */ - service: Services; + service: IService; constructor(ctx: Context); } @@ -528,7 +528,7 @@ export interface Application extends EggApplication { redirect(path: string, redirectPath: string): void; - controller: Controllers; + controller: IController; Controller: Controller; } @@ -540,7 +540,7 @@ interface FileStream extends Readable { // tslint:disable-line export interface Context extends KoaApplication.Context { app: Application; - service: Services; + service: IService; request: Request; @@ -762,7 +762,7 @@ export class Controller extends BaseContextClass { } export class Service extends BaseContextClass { } /** - * The empty interface `Services` is an placehoder, for egg + * The empty interface `IService` is an placehoder, for egg * to auto injection service to ctx.service * * @example @@ -773,13 +773,13 @@ export class Service extends BaseContextClass { } * } * * declare module 'egg' { - * export interface service { + * export interface IService { * foo: FooService; * } * } * * Now I can get ctx.service.foo at controller and other service file. */ -export interface Services { }// tslint:disable-line +export interface IService { }// tslint:disable-line -export interface Controllers { } // tslint:disable-line +export interface IController { } // tslint:disable-line From 53ada7c0c25ea9b8a5641db88a6ded8afc3b52fe Mon Sep 17 00:00:00 2001 From: Mykhailo96 Date: Wed, 26 Apr 2017 21:34:36 +0300 Subject: [PATCH 039/321] reloadAuthResponse for gapi.auth2 (#16061) --- types/gapi.auth2/gapi.auth2-tests.ts | 20 ++++++++++++++------ types/gapi.auth2/index.d.ts | 5 +++++ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/types/gapi.auth2/gapi.auth2-tests.ts b/types/gapi.auth2/gapi.auth2-tests.ts index 1d389d59e9..0766f3b914 100644 --- a/types/gapi.auth2/gapi.auth2-tests.ts +++ b/types/gapi.auth2/gapi.auth2-tests.ts @@ -41,6 +41,14 @@ function test_getAuthResponse() { var authResponseWithAuth = user.getAuthResponse(true); } +function test_reloadAuthResponse() { + gapi.auth2.getAuthInstance().currentUser.get().reloadAuthResponse() + .then(response => { + let token = response.access_token; + let expires_in = response.expires_in + }) +} + function test_render() { var success = (googleUser: gapi.auth2.GoogleUser): void => { console.log(googleUser); @@ -103,10 +111,10 @@ function handleClientLoad() { } function initClient() { gapi.client.init({ - apiKey: apiKey, - discoveryDocs: discoveryDocs, - clientId: clientId, - scope: scopes + apiKey: apiKey, + discoveryDocs: discoveryDocs, + clientId: clientId, + scope: scopes }).then(function () { // Listen for sign-in state changes. gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus); @@ -136,10 +144,10 @@ function handleSignoutClick(event: MouseEvent) { function makeApiCall() { gapi.client.people.people.get({ resourceName: 'people/me' - }).then(function(resp) { + }).then(function (resp) { var p = document.createElement('p'); var name = resp.result.names[0].givenName; - p.appendChild(document.createTextNode('Hello, '+name+'!')); + p.appendChild(document.createTextNode('Hello, ' + name + '!')); document.getElementById('content').appendChild(p); }); } diff --git a/types/gapi.auth2/index.d.ts b/types/gapi.auth2/index.d.ts index ee727ed27a..de75d26ca2 100644 --- a/types/gapi.auth2/index.d.ts +++ b/types/gapi.auth2/index.d.ts @@ -170,6 +170,11 @@ declare namespace gapi.auth2 { */ getAuthResponse(includeAuthorizationData?: boolean): AuthResponse; + /** + * Forces a refresh of the access token, and then returns a Promise for the new AuthResponse. + */ + reloadAuthResponse(): Promise; + /** * Returns true if the user granted the specified scopes. */ From 2971c4624aec5ff76558435aebf4cc71c42a56d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rados=C5=82aw=20Krzepkowski?= Date: Wed, 26 Apr 2017 20:43:12 +0200 Subject: [PATCH 040/321] [angular-local-storage] updates definition to reflect latest changes (#16047) * updates definition to reflect latest changes In latest versions of angular-local-storage library it is possible now to pass type of storage to some methods e.g. https://github.com/grevory/angular-local-storage/blob/master/src/angular-local-storage.js#L147 * improves formatting --- types/angular-local-storage/index.d.ts | 39 +++++++++++++------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/types/angular-local-storage/index.d.ts b/types/angular-local-storage/index.d.ts index a3bd35d048..f403126d7a 100644 --- a/types/angular-local-storage/index.d.ts +++ b/types/angular-local-storage/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for angular-local-storage v0.1.5 +// Type definitions for angular-local-storage v0.1.6 // Project: https://github.com/grevory/angular-local-storage // Definitions by: Ken Fukuyama // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -60,19 +60,19 @@ declare module 'angular' { */ set(key: string, val: string): boolean; /** - * Directly adds a value to cookies with an expiration. - * Note: Typically used as a fallback if local storage is not supported. - * Returns: Boolean - * @param key - * @param val - * @param daysToExpiry - */ + * Directly adds a value to cookies with an expiration. + * Note: Typically used as a fallback if local storage is not supported. + * Returns: Boolean + * @param key + * @param val + * @param daysToExpiry + */ set(key: string, val: string, daysToExpiry: number): boolean; /** - * Directly get a value from a cookie. - * Returns: value from local storage - * @param key - */ + * Directly get a value from a cookie. + * Returns: value from local storage + * @param key + */ get(key: string): string; /** * Remove directly value from a cookie. @@ -84,8 +84,9 @@ declare module 'angular' { * Remove all data for this app from cookie. */ clearAll(): any; - } + + type StorageType = 'localStorage' | 'sessionStorage'; interface ILocalStorageService { /** @@ -104,19 +105,19 @@ declare module 'angular' { * @param key * @param value */ - set(key: string, value: T): boolean; + set(key: string, value: T, storageType?: StorageType): boolean; /** * Directly get a value from local storage. * If local storage is not supported, use cookies instead. * Returns: value from local storage * @param key */ - get(key: string): T; + get(key: string, storageType?: StorageType): T; /** * Return array of keys for local storage, ignore keys that not owned. * Returns: value from local storage */ - keys(): string[]; + keys(storageType?: StorageType): string[]; /** * Remove an item from local storage by key. * If local storage is not supported, use cookies instead. @@ -131,7 +132,7 @@ declare module 'angular' { * Returns: Boolean * @param regularExpression */ - clearAll(regularExpression?: RegExp): boolean; + clearAll(regularExpression?: RegExp, storageType?: StorageType): boolean; /** * Bind $scope key to localStorageService. * Usage: localStorageService.bind(scope, property, value[optional], key[optional]) @@ -141,7 +142,7 @@ declare module 'angular' { * @param value optional * @param key The corresponding key used in local storage */ - bind(scope: angular.IScope, property: string, value?: any, key?: string): Function; + bind(scope: angular.IScope, property: string, value?: any, key?: string, storageType?: StorageType): Function; /** * Return the derive key * Returns String @@ -152,7 +153,7 @@ declare module 'angular' { * Return localStorageService.length, ignore keys that not owned. * Returns Number */ - length(): number; + length(storageType?: StorageType): number; /** * Deal with browser's cookies directly. */ From ecd2bdb3041c8c432f609d460801d5fd159e38e1 Mon Sep 17 00:00:00 2001 From: DaIgeb Date: Wed, 26 Apr 2017 20:43:48 +0200 Subject: [PATCH 041/321] file-saver: Allow saving files directly (#16045) As documented on https://github.com/eligrey/FileSaver.js/ saving a file without using the Blob object should be possible --- types/file-saver/file-saver-tests.ts | 9 +++++++++ types/file-saver/index.d.ts | 10 +++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/types/file-saver/file-saver-tests.ts b/types/file-saver/file-saver-tests.ts index aefc9dca7f..c76815a6fb 100644 --- a/types/file-saver/file-saver-tests.ts +++ b/types/file-saver/file-saver-tests.ts @@ -19,3 +19,12 @@ function testSaveAs() { saveAs(data, filename, disableAutoBOM); } + +/** + * @summary Test for "saveAs" function. + */ +function testSaveAsFile() { + const data = new File(["Hello, world!"], "hello world.txt" ,{type: "text/plain;charset=utf-8"}); + + saveAs(data); +} diff --git a/types/file-saver/index.d.ts b/types/file-saver/index.d.ts index 31188a0c7a..8d78e10682 100644 --- a/types/file-saver/index.d.ts +++ b/types/file-saver/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for FileSaver.js // Project: https://github.com/eligrey/FileSaver.js/ -// Definitions by: Cyril Schumacher +// Definitions by: Cyril Schumacher , Daniel Roth // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /** @@ -28,6 +28,14 @@ interface FileSaver { */ disableAutoBOM?: boolean ): void + + ( + /** + * @summary File. + * @type {File} + */ + data: File + ): void } declare var saveAs: FileSaver; From d5240b6d9cc209a7ae89d955dde6fb7024751b3d Mon Sep 17 00:00:00 2001 From: Mateusz Date: Wed, 26 Apr 2017 20:47:36 +0200 Subject: [PATCH 042/321] Re-add generic Function type to IInjector.invoke() sygnature. (#16042) Looks like it is used in some projects. 'Function' should be treated as a function with '(..args: any[]) => any' signature. --- types/angular/angular-tests.ts | 9 ++++++++- types/angular/index.d.ts | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/types/angular/angular-tests.ts b/types/angular/angular-tests.ts index e6be93a6af..d01dbd25b8 100644 --- a/types/angular/angular-tests.ts +++ b/types/angular/angular-tests.ts @@ -484,7 +484,14 @@ namespace TestInjector { function foobar(v: boolean): number { return 7; } - let result: number = $injector.invoke(foobar); + let result = $injector.invoke(foobar); + if (!(typeof result === 'number')) { + // This fails to compile if 'result' is not exactly a number. + let expectNever: never = result; + } + + let anyFunction: Function = foobar; + let anyResult: string = $injector.invoke(anyFunction); } } diff --git a/types/angular/index.d.ts b/types/angular/index.d.ts index 194ccf8205..1d59854d9d 100644 --- a/types/angular/index.d.ts +++ b/types/angular/index.d.ts @@ -1981,6 +1981,7 @@ declare namespace angular { instantiate(typeConstructor: {new(...args: any[]): T}, locals?: any): T; invoke(inlineAnnotatedFunction: any[]): any; invoke(func: (...args: any[]) => T, context?: any, locals?: any): T; + invoke(func: Function, context?: any, locals?: any): any; strictDi: boolean; } From f9bf70b08f2946120d22eb2586110dbeb20eab05 Mon Sep 17 00:00:00 2001 From: Troy McKinnon Date: Wed, 26 Apr 2017 13:49:22 -0500 Subject: [PATCH 043/321] Angular-toastr: expand function types (#16034) --- types/angular-toastr/index.d.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/types/angular-toastr/index.d.ts b/types/angular-toastr/index.d.ts index 7a10587e9b..83c42045d1 100644 --- a/types/angular-toastr/index.d.ts +++ b/types/angular-toastr/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for Angular Toastr v1.6.0 // Project: https://github.com/Foxandxss/angular-toastr -// Definitions by: Niko Kovačič +// Definitions by: Niko Kovačič , Troy McKinnon // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// @@ -15,9 +15,9 @@ declare module 'angular' { closeHtml?: string; extendedTimeOut?: number; messageClass?: string; - onHidden?: Function; - onShown?: Function; - onTap?: Function; + onHidden?: (wasClicked: boolean, toast: angular.toastr.IToast) => void; + onShown?: (toast: angular.toastr.IToast) => void; + onTap?: (toast: angular.toastr.IToast) => void; progressBar?: boolean; tapToDismiss?: boolean; templates?: { From 10a204d02dc18a557e6e1b198a278d0ced5fab21 Mon Sep 17 00:00:00 2001 From: Thomas Hasner Date: Wed, 26 Apr 2017 14:52:32 -0400 Subject: [PATCH 044/321] Add overloads to account for `mergeProps` (#16024) * Add overloads to account for `mergeProps` This also provides better typings for users of `strictNullChecks` * more overloads and tests * accept `null | undefined` * allow placeholder typings * tests * one `ComponentDecorator` * tests * no keyword --- types/react-redux/index.d.ts | 81 ++++++++++++++++++++++--- types/react-redux/react-redux-tests.tsx | 71 +++++++++++++++++++--- 2 files changed, 136 insertions(+), 16 deletions(-) diff --git a/types/react-redux/index.d.ts b/types/react-redux/index.d.ts index dc85bc86eb..42d84b4a0d 100644 --- a/types/react-redux/index.d.ts +++ b/types/react-redux/index.d.ts @@ -15,8 +15,8 @@ type Store = Redux.Store; type Dispatch = Redux.Dispatch; type ActionCreator = Redux.ActionCreator; -interface ComponentDecorator { - (component: Component): ComponentClass; +interface ComponentDecorator { + (component: Component): ComponentClass; } /** @@ -49,12 +49,71 @@ export interface InferableComponentDecorator { */ export declare function connect(): InferableComponentDecorator; +export declare function connect( + mapStateToProps: MapStateToPropsParam +): ComponentDecorator; + +export declare function connect( + mapStateToProps: null | undefined, + mapDispatchToProps: MapDispatchToPropsParam +): ComponentDecorator; + export declare function connect( - mapStateToProps?: MapStateToProps | MapStateToPropsFactory, - mapDispatchToProps?: MapDispatchToProps | MapDispatchToPropsFactory, - mergeProps?: MergeProps, - options?: Options -): ComponentDecorator; + mapStateToProps: MapStateToPropsParam, + mapDispatchToProps: MapDispatchToPropsParam +): ComponentDecorator; + +export declare function connect( + mapStateToProps: MapStateToPropsParam, + mapDispatchToProps: null | undefined, + mergeProps: MergeProps, +): ComponentDecorator; + +export declare function connect( + mapStateToProps: null | undefined, + mapDispatchToProps: MapDispatchToPropsParam, + mergeProps: MergeProps, +): ComponentDecorator; + +export declare function connect( + mapStateToProps: null | undefined, + mapDispatchToProps: null | undefined, + mergeProps: MergeProps, +): ComponentDecorator; + +export declare function connect( + mapStateToProps: MapStateToPropsParam, + mapDispatchToProps: MapDispatchToPropsParam, + mergeProps: MergeProps, +): ComponentDecorator; + +export declare function connect( + mapStateToProps: MapStateToPropsParam, + mapDispatchToProps: null | undefined, + mergeProps: null | undefined, + options: Options +): ComponentDecorator; + +export declare function connect( + mapStateToProps: null | undefined, + mapDispatchToProps: MapDispatchToPropsParam, + mergeProps: null | undefined, + options: Options +): ComponentDecorator; + +export declare function connect( + mapStateToProps: MapStateToPropsParam, + mapDispatchToProps: MapDispatchToPropsParam, + mergeProps: null | undefined, + options: Options +): ComponentDecorator; + +export declare function connect( + mapStateToProps: MapStateToPropsParam, + mapDispatchToProps: MapDispatchToPropsParam, + mergeProps: MergeProps, + options: Options +): ComponentDecorator; interface MapStateToProps { (state: any, ownProps?: TOwnProps): TStateProps; @@ -64,6 +123,8 @@ interface MapStateToPropsFactory { (initialState: any, ownProps?: TOwnProps): MapStateToProps; } +type MapStateToPropsParam = MapStateToProps | MapStateToPropsFactory; + interface MapDispatchToPropsFunction { (dispatch: Dispatch, ownProps?: TOwnProps): TDispatchProps; } @@ -79,8 +140,10 @@ interface MapDispatchToPropsFactory { (dispatch: Dispatch, ownProps?: TOwnProps): MapDispatchToProps; } -interface MergeProps { - (stateProps: TStateProps, dispatchProps: TDispatchProps, ownProps: TOwnProps): TStateProps & TDispatchProps; +type MapDispatchToPropsParam = MapDispatchToProps | MapDispatchToPropsFactory; + +interface MergeProps { + (stateProps: TStateProps, dispatchProps: TDispatchProps, ownProps: TOwnProps): TMergedProps; } interface Options { diff --git a/types/react-redux/react-redux-tests.tsx b/types/react-redux/react-redux-tests.tsx index 6afbe466c5..e8de2b1291 100644 --- a/types/react-redux/react-redux-tests.tsx +++ b/types/react-redux/react-redux-tests.tsx @@ -76,7 +76,7 @@ connect( () => mapDispatchToProps )(Counter); // with extra arguments -connect( +connect( () => mapStateToProps, () => mapDispatchToProps, (s: ICounterStateProps, d: ICounterDispatchProps) => @@ -129,10 +129,10 @@ declare var todoActionCreators: { [type: string]: (...args: any[]) => any; }; declare var counterActionCreators: { [type: string]: (...args: any[]) => any; }; ReactDOM.render( - - {() => } - , - document.body + + {() => } + , + document.body ); //TODO: for React Router 0.13 @@ -368,11 +368,68 @@ namespace TestTOwnPropsInference { React.createElement(ConnectedWithOwnProps, { own: 'string' }); // This should not compile, which is good. - // React.createElement(ConnectedWithOwnProps, { missingOwn: true }); + // React.createElement(ConnectedWithOwnProps, { anything: 'goes!' }); // This compiles, as expected. React.createElement(ConnectedWithTypeHint, { own: 'string' }); // This should not compile, which is good. - // React.createElement(ConnectedWithTypeHint, { missingOwn: true }); + // React.createElement(ConnectedWithTypeHint, { anything: 'goes!' }); +} + +// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/16021 +namespace TestMergedPropsInference { + interface StateProps { + state: string; + } + + interface DispatchProps { + dispatch: string; + } + + interface OwnProps { + own: string; + } + + interface MergedProps { + merged: string; + } + + class MergedPropsComponent extends React.Component { + render() { + return

; + } + } + + function mapStateToProps(state: any): StateProps { + return { state: 'string' }; + } + + function mapDispatchToProps(dispatch: Dispatch): DispatchProps { + return { dispatch: 'string' }; + } + + const ConnectedWithOwnAndState: React.ComponentClass = connect( + mapStateToProps, + undefined, + (stateProps: StateProps) => ({ + merged: "merged", + }), + )(MergedPropsComponent); + + const ConnectedWithOwnAndDispatch: React.ComponentClass = connect( + undefined, + mapDispatchToProps, + (stateProps: undefined, dispatchProps: DispatchProps) => ({ + merged: "merged", + }), + )(MergedPropsComponent); + + const ConnectedWithOwn: React.ComponentClass = connect( + undefined, + undefined, + () => ({ + merged: "merged", + }), + )(MergedPropsComponent); } From 141f50ad4594d7d0a37c6711c1f2e4e93fdc255f Mon Sep 17 00:00:00 2001 From: Jordan Farrer Date: Wed, 26 Apr 2017 13:04:14 -0600 Subject: [PATCH 045/321] mailgen: Add missing members to ContentBody and Product, fix type of several existing members (#16000) --- types/mailgen/index.d.ts | 33 ++++++++++++++++++++++++++++----- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/types/mailgen/index.d.ts b/types/mailgen/index.d.ts index 1db097ffad..40eca3e1fd 100644 --- a/types/mailgen/index.d.ts +++ b/types/mailgen/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for mailgen 2.0 // Project: https://github.com/eladnava/mailgen#readme -// Definitions by: Kiet Thanh Vo +// Definitions by: Kiet Thanh Vo , Jordan Farrer // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped import Option = Mailgen.Option; import Content = Mailgen.Content; @@ -29,6 +29,7 @@ declare namespace Mailgen { name: string; link: string; logo?: string; + copyright?: string; } interface Content { @@ -36,10 +37,32 @@ declare namespace Mailgen { } interface ContentBody { - name: string; - intro: string; - action?: Action; - outro: string; + name?: string; + greeting?: string; + signature?: string; + title?: string; + intro?: string | string[]; + action?: Action | Action[]; + table?: Table; + dictionary?: any; + goToAction?: GoToAction; + outro?: string | string[]; + } + + interface Table { + data: any[]; + columns?: ColumnOptions[]; + } + + interface ColumnOptions { + customWidth: any; + customAlignment: any; + } + + interface GoToAction { + text: string; + link: string; + description: string; } interface Action { From ef5ec2e2739ae6cab0bd6c119f3609a246fcbc07 Mon Sep 17 00:00:00 2001 From: Gustav Bylund Date: Wed, 26 Apr 2017 21:05:22 +0200 Subject: [PATCH 046/321] Set optional parameters for paypal.tokenize (#15999) As described in https://braintree.github.io/braintree-web/current/PayPal.html#tokenize --- types/braintree-web/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/braintree-web/index.d.ts b/types/braintree-web/index.d.ts index a30a880684..46f16e072b 100644 --- a/types/braintree-web/index.d.ts +++ b/types/braintree-web/index.d.ts @@ -1087,7 +1087,7 @@ declare namespace braintree { * }); * @returns {PayPal~tokenizeReturn} A handle to close the PayPal checkout frame. */ - tokenize(options: { flow: string, intent: string, offerCredit: boolean, useraction: string, amount: (string | number), currency: string, displayName: string, locale: string, enableShippingAddress: boolean, shippingAddressOverride: PayPalShippingAddress, shippingAddressEditable: boolean, billingAgreementDescription: string }, callback: callback): PayPalTokenizeReturn; + tokenize(options: { flow: string, intent?: string, offerCredit?: boolean, useraction?: string, amount?: (string | number), currency?: string, displayName?: string, locale?: string, enableShippingAddress?: boolean, shippingAddressOverride?: PayPalShippingAddress, shippingAddressEditable?: boolean, billingAgreementDescription?: string }, callback: callback): PayPalTokenizeReturn; /** * Cleanly tear down anything set up by {@link module:braintree-web/paypal.create|create}. From 1b390ec9a28904031131a73c69d49db43afd49b3 Mon Sep 17 00:00:00 2001 From: Danny Arnold Date: Wed, 26 Apr 2017 21:10:29 +0200 Subject: [PATCH 047/321] make types compliant with strictNullChecks (#15975) --- types/azure/index.d.ts | 2 +- types/azure/tsconfig.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/types/azure/index.d.ts b/types/azure/index.d.ts index 59d1b9d114..8e7a321713 100644 --- a/types/azure/index.d.ts +++ b/types/azure/index.d.ts @@ -1627,7 +1627,7 @@ export interface Entity { RowKey: string; Timestamp?: Date; etag?: string; - [property: string]: string | number | boolean | Date; + [property: string]: string | number | boolean | Date | undefined; } //#endregion //#region BlobService Interfaces diff --git a/types/azure/tsconfig.json b/types/azure/tsconfig.json index 5f058966d7..15e71337b2 100644 --- a/types/azure/tsconfig.json +++ b/types/azure/tsconfig.json @@ -6,7 +6,7 @@ ], "noImplicitAny": true, "noImplicitThis": true, - "strictNullChecks": false, + "strictNullChecks": true, "baseUrl": "../", "typeRoots": [ "../" From d286c0ac79400cf9187fadba10d0d7b0daa9d1ab Mon Sep 17 00:00:00 2001 From: Ben Robinson Date: Wed, 26 Apr 2017 15:13:07 -0400 Subject: [PATCH 048/321] adding OAuth2 options to AuthOptions interface (#16149) --- types/nodemailer-smtp-transport/index.d.ts | 24 +++++++++++++++++++ .../nodemailer-smtp-transport-tests.ts | 16 ++++++++++++- 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/types/nodemailer-smtp-transport/index.d.ts b/types/nodemailer-smtp-transport/index.d.ts index da3bd13f31..7f0f8d7cca 100644 --- a/types/nodemailer-smtp-transport/index.d.ts +++ b/types/nodemailer-smtp-transport/index.d.ts @@ -18,6 +18,30 @@ declare namespace smtpTransport { /** indicates the authetication type, defaults to ‘login’, other option is ‘oauth2’ */ type?: any; + + /** is the registered client id of the application */ + clientId?: string; + + /** is the registered client secret of the application */ + clientSecret?: string; + + /** is an optional refresh token. If it is provided then Nodemailer tries to generate a new access token if existing one expires or fails */ + refreshToken?: string; + + /** is the access token for the user. Required only if refreshToken is not available and there is no token refresh callback specified */ + accessToken?: string; + + /** is an optional expiration time for the current accessToken */ + expires?: number; + + /** is an optional HTTP endpoint for requesting new access tokens. This value defaults to Gmail */ + accessUrl?: string; + + /** service client id, you can find it from the “client_id” field in the service key file */ + serviceClient?: string; + + /** is the private key contents, you can find it from the “private_key” field in the service key file */ + privateKey?: string; } export interface SmtpOptions { diff --git a/types/nodemailer-smtp-transport/nodemailer-smtp-transport-tests.ts b/types/nodemailer-smtp-transport/nodemailer-smtp-transport-tests.ts index 45b8a3a24d..ccbffcef5a 100644 --- a/types/nodemailer-smtp-transport/nodemailer-smtp-transport-tests.ts +++ b/types/nodemailer-smtp-transport/nodemailer-smtp-transport-tests.ts @@ -4,7 +4,21 @@ import nodemailer = require('nodemailer'); var opts: smtpTransport.SmtpOptions = { host: "localhost", - port: 25 + port: 25, + auth: { + type: 'OAuth2', + user: 'user@example.com', + // 3LO auth + clientId: '000000000000-xxx0.apps.googleusercontent.com', + clientSecret: 'XxxxxXXxX0xxxxxxxx0XXxX0', + refreshToken: '1/XXxXxsss-xxxXXXXXxXxx0XXXxxXXx0x00xxx', + accessToken: 'ya29.Xx_XX0xxxxx-xX0X0XxXXxXxXXXxX0x', + expires: 1484314697598, + // 2LO auth (test only, dont mix with 3LO) + serviceClient: '113600000000000000000', + privateKey: '-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBg...', + }, + service: 'Gmail' }; var transport: nodemailer.Transport = smtpTransport(opts); From 94f553150d85dc54c34ce280cec58f7bb209ffaa Mon Sep 17 00:00:00 2001 From: Giedrius Grabauskas Date: Wed, 26 Apr 2017 22:13:40 +0300 Subject: [PATCH 049/321] Types for undertaker-registry@1.0 (#16146) * undertaker-registry initial commit. * Created index.d.ts for undertaker-registry * Created tslint.json for undertaker-registry * Created tests for undertaker-registry. --- types/undertaker-registry/index.d.ts | 43 +++++++++++++++++++ types/undertaker-registry/tsconfig.json | 22 ++++++++++ types/undertaker-registry/tslint.json | 1 + .../undertaker-registry-tests.ts | 37 ++++++++++++++++ 4 files changed, 103 insertions(+) create mode 100644 types/undertaker-registry/index.d.ts create mode 100644 types/undertaker-registry/tsconfig.json create mode 100644 types/undertaker-registry/tslint.json create mode 100644 types/undertaker-registry/undertaker-registry-tests.ts diff --git a/types/undertaker-registry/index.d.ts b/types/undertaker-registry/index.d.ts new file mode 100644 index 0000000000..02bff9fab3 --- /dev/null +++ b/types/undertaker-registry/index.d.ts @@ -0,0 +1,43 @@ +// Type definitions for undertaker-registry 1.0 +// Project: https://github.com/gulpjs/undertaker-registry +// Definitions by: Giedrius Grabauskas +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare class UndertakerRegistry { + /** + * Returns the task with that name or undefined if no task is registered with that name. + * Useful for custom task storage. + * Custom registries can override this method when inheriting from this default registry. + * @param taskName {string} - Name of task. + */ + get(taskName: string): TTaskFunction; + + /** + * No-op method that receives the undertaker instance. + * Useful to set pre-defined tasks using the undertaker.task(taskName, fn) method. + * Custom registries can override this method when inheriting from this default registry. + * @param taker {any} - Instance of undertaker. + */ + init(taker: any): void; + + /** + * Adds a task to the registry. + * If set modifies a task, it should return the new task so Undertaker can properly maintain metadata for the task. + * Useful for adding custom behavior to every task as it is registered in the system. + * Custom registries can override this method when inheriting from this default registry. + * @param taskName {string} - Name of task. + * @param fn {UndertakerRegistry.TaskFunction} - Task function. + */ + set(taskName: string, fn: TTaskFunction): TTaskFunction; + + /** + * Returns an object listing all tasks in the registry. + * Necessary to override if the get method is overridden for custom task storage. + * Custom registries can override this when when inheriting from this default registry. + */ + tasks(): { [taskName: string]: (...args: any[]) => any }; +} + +declare namespace UndertakerRegistry { } + +export = UndertakerRegistry; diff --git a/types/undertaker-registry/tsconfig.json b/types/undertaker-registry/tsconfig.json new file mode 100644 index 0000000000..f3fbd2389f --- /dev/null +++ b/types/undertaker-registry/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "undertaker-registry-tests.ts" + ] +} diff --git a/types/undertaker-registry/tslint.json b/types/undertaker-registry/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/undertaker-registry/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/undertaker-registry/undertaker-registry-tests.ts b/types/undertaker-registry/undertaker-registry-tests.ts new file mode 100644 index 0000000000..4a6201c14f --- /dev/null +++ b/types/undertaker-registry/undertaker-registry-tests.ts @@ -0,0 +1,37 @@ +import * as UndertakerRegistry from "undertaker-registry"; + +const ArgTask = (firstArg: string, secondArg: number) => { + // Task +}; + +const NoArgTask = () => { + // Task without arguments +}; + +const registryInstance = new UndertakerRegistry(); + +const setTask = registryInstance.set("task", ArgTask); +setTask("string", 123); + +const getTask = registryInstance.get("taskName"); +getTask("string", 123); + +const tasks = registryInstance.tasks(); +const taskFromTasks = tasks["task"] as typeof ArgTask; +taskFromTasks("string", 123); + +class MyRegistry extends UndertakerRegistry { } + +registryInstance.init(MyRegistry); + +const myRegistryInstance = new MyRegistry(); + +const setTask2 = registryInstance.set("task", NoArgTask); +setTask2(); + +const getTask2 = registryInstance.get("taskName"); +getTask2(); + +const tasks2 = registryInstance.tasks(); +const taskFromTasks2 = tasks["task"] as typeof NoArgTask; +taskFromTasks2(); From c4077c19e47d0cd277c7aa271afd026d0e36e51c Mon Sep 17 00:00:00 2001 From: arlecchino Date: Wed, 26 Apr 2017 23:35:30 +0200 Subject: [PATCH 050/321] @types/bluebird: Make AggregateError ArrayLike (#16148) * Make AggregateError ArrayLike For simplification extend AggregateError from Array * Make AggregateError implementing ArrayLike AggregateError should be an Error and also an ArrayLike of Errors with a bunch of Array-methods. --- types/bluebird/index.d.ts | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/types/bluebird/index.d.ts b/types/bluebird/index.d.ts index e9a79d8834..cceb0ebc54 100644 --- a/types/bluebird/index.d.ts +++ b/types/bluebird/index.d.ts @@ -726,7 +726,28 @@ declare namespace Bluebird { * * `Promise.some` and `Promise.any` use `AggregateError` as rejection reason when they fail. */ - export class AggregateError extends Error {} + export class AggregateError extends Error implements ArrayLike { + length: number; + [index: number]: Error; + join(separator?: string): string; + pop(): Error; + push(...errors: Error[]): number; + shift(): Error; + unshift(...errors: Error[]): number; + slice(begin?: number, end?: number): AggregateError; + filter(callback: (element: Error, index: number, array: AggregateError) => boolean, thisArg?: any): AggregateError; + forEach(callback: (element: Error, index: number, array: AggregateError) => void, thisArg?: any): undefined; + some(callback: (element: Error, index: number, array: AggregateError) => boolean, thisArg?: any): boolean; + every(callback: (element: Error, index: number, array: AggregateError) => boolean, thisArg?: any): boolean; + map(callback: (element: Error, index: number, array: AggregateError) => boolean, thisArg?: any): AggregateError; + indexOf(searchElement: Error, fromIndex?: number): number; + lastIndexOf(searchElement: Error, fromIndex?: number): number; + reduce(callback: (accumulator: any, element: Error, index: number, array: AggregateError) => any, initialValue?: any): any; + reduceRight(callback: (previousValue: any, element: Error, index: number, array: AggregateError) => any, initialValue?: any): any; + sort(compareFunction?: (errLeft: Error, errRight: Error) => number): AggregateError; + reverse(): AggregateError; + } + /** * returned by `Bluebird.disposer()`. From 8e246946208180a7e91c4e37f70894e807c39e8c Mon Sep 17 00:00:00 2001 From: Jan Klimke Date: Wed, 26 Apr 2017 23:35:57 +0200 Subject: [PATCH 051/321] Updated 18next exists method and added ability to use string interpolation arguments (#16124) * Updated i18next extists function definition and allow for additional interpolation options to be passed as TranslationOptions * Updated 18next test * i18next fixed typing of exists key parameter * i18next Fixed test typo --- types/i18next/i18next-tests.ts | 14 ++++++++++++-- types/i18next/index.d.ts | 4 +++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/types/i18next/i18next-tests.ts b/types/i18next/i18next-tests.ts index 23c67cc742..e51f2f495c 100644 --- a/types/i18next/i18next-tests.ts +++ b/types/i18next/i18next-tests.ts @@ -10,12 +10,14 @@ i18n.init({ resources: { en: { translation: { - helloWorld: 'Hello, world!' + helloWorld: 'Hello, world!', + helloWorldInterpolated: 'Hello, {{name}}!' } }, ru: { translation: { - helloWorld: 'Привет, мир!' + helloWorld: 'Привет, мир!', + helloWorldInterpolated: 'Привет, {{name}}!' } } }, @@ -61,6 +63,14 @@ i18n.t('helloWorld', { count: 10 }); +i18n.t('helloWorldInterpolated', { + defaultValue: 'default', + count: 10, + name: "world" +}); + +i18n.exists("helloWorld"); + const options:i18n.Options = i18n.options; const currentLanguage:string = i18n.language; const userLanguageCodes:string[] = i18n.languages; diff --git a/types/i18next/index.d.ts b/types/i18next/index.d.ts index 958bff12a6..ee06d8d18c 100644 --- a/types/i18next/index.d.ts +++ b/types/i18next/index.d.ts @@ -49,6 +49,8 @@ declare namespace i18n { joinArrays?: string; postProcess?: string | any[]; interpolation?: InterpolationOptions; + //add an indexer to assure that interpolation arguments can be passed + [x: string]: any; } interface Options { @@ -106,7 +108,7 @@ declare namespace i18n { t(key: string, options?: TranslationOptions): string | any | Array; - exists(): boolean; + exists(key: string, options?: TranslationOptions): boolean; setDefaultNamespace(ns: string): void; From b86db170281cae1fdba08e9f6d51b1248bc54405 Mon Sep 17 00:00:00 2001 From: troywweber7 Date: Wed, 26 Apr 2017 14:37:53 -0700 Subject: [PATCH 052/321] mistake, can't use ts enums because objects don't exist (#16153) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- types/firmata/index.d.ts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/types/firmata/index.d.ts b/types/firmata/index.d.ts index f18294d110..8f0457d46e 100644 --- a/types/firmata/index.d.ts +++ b/types/firmata/index.d.ts @@ -259,7 +259,7 @@ declare namespace Board { } // https://github.com/firmata/firmata.js/blob/v0.15.0/lib/firmata.js#L449-L464 - enum PIN_MODE { + const enum PIN_MODE { INPUT = 0x00, OUTPUT = 0x01, ANALOG = 0x02, @@ -276,30 +276,30 @@ declare namespace Board { UNKNOWN = 0x10, } - enum PIN_STATE { + const enum PIN_STATE { LOW = 0, HIGH = 1 } - enum REPORTING { + const enum REPORTING { ON = 1, OFF = 0, } - enum PULLUP_STATE { + const enum PULLUP_STATE { ENABLED = 1, DISABLED = 0, } // https://github.com/firmata/firmata.js/blob/v0.15.0/lib/firmata.js#L474-L478 - enum STEPPER_TYPE { + const enum STEPPER_TYPE { DRIVER = 1, TWO_WIRE = 2, FOUR_WIRE = 4, } // https://github.com/firmata/firmata.js/blob/v0.15.0/lib/firmata.js#L479-L484 - enum STEPPER_RUN_STATE { + const enum STEPPER_RUN_STATE { STOP = 0, ACCEL = 1, DECEL = 2, @@ -307,13 +307,13 @@ declare namespace Board { } // https://github.com/firmata/firmata.js/blob/v0.15.0/lib/firmata.js#L485-L488 - enum STEPPER_DIRECTION { + const enum STEPPER_DIRECTION { CCW = 0, CW = 1, } // https://github.com/firmata/firmata.js/blob/v0.15.0/lib/firmata.js#L466-L471 - enum I2C_MODE { + const enum I2C_MODE { WRITE = 0, READ = 1, CONTINUOUS_READ = 2, @@ -321,13 +321,13 @@ declare namespace Board { } // https://github.com/firmata/firmata.js/blob/v0.15.0/lib/firmata.js#L491-L494 - enum SERIAL_MODE { + const enum SERIAL_MODE { CONTINUOUS_READ = 0x00, STOP_READING = 0x01, } // https://github.com/firmata/firmata.js/blob/v0.15.0/lib/firmata.js#L497-L512 - enum SERIAL_PORT_ID { + const enum SERIAL_PORT_ID { HW_SERIAL0 = 0x00, HW_SERIAL1 = 0x01, HW_SERIAL2 = 0x02, @@ -340,7 +340,7 @@ declare namespace Board { } // https://github.com/firmata/firmata.js/blob/v0.15.0/lib/firmata.js#L515-L524 - enum SERIAL_PIN_TYPE { + const enum SERIAL_PIN_TYPE { RES_RX0 = 0x00, RES_TX0 = 0x01, RES_RX1 = 0x02, From 2a78cc163a687f44b25870e4e8dafbba7279b02e Mon Sep 17 00:00:00 2001 From: Frederick Fogerty Date: Thu, 27 Apr 2017 09:47:50 +1200 Subject: [PATCH 053/321] Add types for capitalize (#16156) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- types/capitalize/capitalize-tests.ts | 12 ++++++++++++ types/capitalize/index.d.ts | 19 +++++++++++++++++++ types/capitalize/tsconfig.json | 22 ++++++++++++++++++++++ types/capitalize/tslint.json | 1 + 4 files changed, 54 insertions(+) create mode 100644 types/capitalize/capitalize-tests.ts create mode 100644 types/capitalize/index.d.ts create mode 100644 types/capitalize/tsconfig.json create mode 100644 types/capitalize/tslint.json diff --git a/types/capitalize/capitalize-tests.ts b/types/capitalize/capitalize-tests.ts new file mode 100644 index 0000000000..5e74a594d0 --- /dev/null +++ b/types/capitalize/capitalize-tests.ts @@ -0,0 +1,12 @@ +import * as capitalize from "capitalize"; +import { words } from "capitalize"; + +capitalize("united states"); + +capitalize.words("united states"); + +capitalize.words('hello-cañapolísas'); + +capitalize.words("it's a nice day"); + +words("united states"); diff --git a/types/capitalize/index.d.ts b/types/capitalize/index.d.ts new file mode 100644 index 0000000000..b844784757 --- /dev/null +++ b/types/capitalize/index.d.ts @@ -0,0 +1,19 @@ +// Type definitions for capitalize 1.0 +// Project: https://github.com/grncdr/js-capitalize +// Definitions by: Frederick Fogerty +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 + +/** + * Capitalize the first letter of a string + * @param input the string to capitalize + */ +declare function capitalize(input: string): string; +declare namespace capitalize { + /** + * Capitalize each word in a string + * @param input the string to capitalize + */ + function words(input: string): string; +} +export = capitalize; diff --git a/types/capitalize/tsconfig.json b/types/capitalize/tsconfig.json new file mode 100644 index 0000000000..d196ac1315 --- /dev/null +++ b/types/capitalize/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "capitalize-tests.ts" + ] +} \ No newline at end of file diff --git a/types/capitalize/tslint.json b/types/capitalize/tslint.json new file mode 100644 index 0000000000..2750cc0197 --- /dev/null +++ b/types/capitalize/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } \ No newline at end of file From fac0ab9e379ddb97e9de5097645babe0e96bbd22 Mon Sep 17 00:00:00 2001 From: ghybs Date: Thu, 27 Apr 2017 01:55:47 +0400 Subject: [PATCH 054/321] Fix(moment-duration-format): trim "right" (#15970) is a valid value for `DurationFormatSettings.trim` option. See https://github.com/jsmreese/moment-duration-format#trim, `trim` can be a `boolean` or the `"right"` string value. --- types/moment-duration-format/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/moment-duration-format/index.d.ts b/types/moment-duration-format/index.d.ts index 41b36bc34d..76eb839cbd 100644 --- a/types/moment-duration-format/index.d.ts +++ b/types/moment-duration-format/index.d.ts @@ -15,7 +15,7 @@ declare module "moment" { interface DurationFormatSettings { template?: string; precision?: number; - trim?: boolean; + trim?: boolean | "right"; forceLength?: boolean; } } From 86d6ae08baa3f72397cfc503fb184c252ba04ca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martynas=20Kunig=C4=97lis?= Date: Thu, 27 Apr 2017 00:57:43 +0300 Subject: [PATCH 055/321] knex: added declarations for with(), withRaw() and withWrapped() (#15966) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- types/knex/index.d.ts | 17 +++++++++++++++++ types/knex/knex-tests.ts | 23 +++++++++++++++++++++++ 2 files changed, 40 insertions(+) diff --git a/types/knex/index.d.ts b/types/knex/index.d.ts index 5e926679b1..0b107481f7 100644 --- a/types/knex/index.d.ts +++ b/types/knex/index.d.ts @@ -64,6 +64,11 @@ declare namespace Knex { fullOuterJoin: Join; crossJoin: Join; + // Withs + with: With; + withRaw: WithRaw; + withWrapped: WithWrapped; + // Wheres where: Where; andWhere: Where; @@ -203,6 +208,18 @@ declare namespace Knex { (tableName: string, binding?: Value): QueryBuilder; } + interface With extends WithRaw, WithWrapped { + } + + interface WithRaw { + (alias: string, raw: Raw): QueryBuilder; + (alias: string, sql: string, bindings?: Value[] | Object): QueryBuilder; + } + + interface WithWrapped { + (alias: string, callback: (queryBuilder: QueryBuilder) => any): QueryBuilder; + } + interface Where extends WhereRaw, WhereWrapped, WhereNull { (raw: Raw): QueryBuilder; (callback: (queryBuilder: QueryBuilder) => any): QueryBuilder; diff --git a/types/knex/knex-tests.ts b/types/knex/knex-tests.ts index 67b07f263b..1c2d5c4b4a 100644 --- a/types/knex/knex-tests.ts +++ b/types/knex/knex-tests.ts @@ -315,6 +315,29 @@ knex('accounts').where('activated', false).delete(); knex('accounts').where('activated', false).delete('id'); knex('accounts').where('activated', false).delete(['id', 'title']); +knex.with('old_books', function(qb) { + qb.select('*').from('books').where('published_date', '<', 1970); +}).select('*').from('old_books'); + +knex.with('new_books', knex.raw('select * from books where published_date >= 2016')) + .select('*').from('new_books'); + +knex.with('new_books', 'select * from books where published_date >= :year', { year: 2016 }) + .select('*').from('new_books'); + +knex.with('new_books', 'select * from books where published_date >= ?', [2016]) + .select('*').from('new_books'); + +knex.withRaw('recent_books', 'select * from books where published_date >= :year', { year: 2013 }) + .select('*').from('recent_books'); + +knex.withRaw('recent_books', knex.raw('select * from books where published_date >= ?', [2013])) + .select('*').from('recent_books'); + +knex.withWrapped("antique_books", function (qb) { + qb.select('*').from('books').where('published_date', '<', 1899); +}).select('*').from('antique_books'); + var someExternalMethod: Function; knex.transaction(function(trx) { From ea0a353f21ab09fe70b683b8fc9589e2ce0495ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Nov=C3=A1k?= Date: Thu, 27 Apr 2017 00:02:03 +0200 Subject: [PATCH 056/321] React-data-grid: adding Data and DraggableHeader (#15941) * added Data + DraggableHeader in react-data-grid-addons types * React-data-grid: adding Data and DraggableHeader * edit test + more specific Selectors * change Object to object --- types/react-data-grid/index.d.ts | 21 ++++++++++++++++--- .../react-data-grid/react-data-grid-tests.tsx | 9 +++++++- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/types/react-data-grid/index.d.ts b/types/react-data-grid/index.d.ts index 3db701477b..e22d8743a3 100644 --- a/types/react-data-grid/index.d.ts +++ b/types/react-data-grid/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for react-data-grid 2.0 // Project: https://github.com/adazzle/react-data-grid.git -// Definitions by: Simon Gellis , Kieran Peat +// Definitions by: Simon Gellis , Kieran Peat , Martin Novak // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.2 @@ -464,6 +464,15 @@ declare namespace AdazzleReactDataGridPlugins { export class DropDownFormatter extends React.Component { } } export class Toolbar extends React.Component {} + export namespace DraggableHeader { + export class DraggableContainer extends React.Component{ } + } + export namespace Data { + export const Selectors: { + getRows: (state: object) => object[]; + getSelectedRowsByKey: (state: object) => object[]; + } + } // TODO: re-export the react-contextmenu typings once those exist // https://github.com/vkbansal/react-contextmenu/issues/10 export namespace Menu { @@ -497,13 +506,17 @@ declare module "react-data-grid-addons" { import Formatters = Plugins.Formatters; import Toolbar = Plugins.Toolbar; import Menu = Plugins.Menu; + import Data = Plugins.Data; + import DraggableHeader = Plugins.DraggableHeader; // ES6 named exports export { Editors, Formatters, Toolbar, - Menu + Menu, + Data, + DraggableHeader } // attach to window @@ -513,7 +526,9 @@ declare module "react-data-grid-addons" { Editors: typeof Editors Formatters: typeof Formatters Toolbar: typeof Toolbar - Menu: typeof Menu + Menu: typeof Menu, + Data: typeof Data, + DraggableHeader: typeof DraggableHeader } } } diff --git a/types/react-data-grid/react-data-grid-tests.tsx b/types/react-data-grid/react-data-grid-tests.tsx index 287a74c449..6d5ff3b4da 100644 --- a/types/react-data-grid/react-data-grid-tests.tsx +++ b/types/react-data-grid/react-data-grid-tests.tsx @@ -7,7 +7,7 @@ var Editors = ReactDataGridPlugins.Editors; var Toolbar = ReactDataGridPlugins.Toolbar; var AutoCompleteEditor = Editors.AutoComplete; var DropDownEditor = Editors.DropDownEditor; - +var { Selectors } = ReactDataGridPlugins.Data; class CustomFilterHeaderCell extends React.Component { constructor(props: any, context: any) { @@ -253,6 +253,12 @@ class Example extends React.Component { // Do nothing, just test that it accepts an event } + getRows() { + const rows = Selectors.getRows(this.state); + console.log(rows); + return rows; + } + handleAddRow(e:any) { var newRow = { value: e.newRowIndex, @@ -266,6 +272,7 @@ class Example extends React.Component { } getRowAt(index:number) { + this.getRows(); if (index < 0 || index > this.getSize()) { return undefined; } From 73a64f4abac50fb07a41f1613cc10fdb1a197ade Mon Sep 17 00:00:00 2001 From: Travis Sturzl Date: Wed, 26 Apr 2017 16:09:45 -0600 Subject: [PATCH 057/321] [hashids] Use class instead of interface (#15920) * Use class instead of interface Allows hashids to be used as a type in a property `public hasher: Hashids;` and as a class `this.hasher = new Hashids()`; * modify tests * No need for module declaration * modify tests --- types/hashids/hashids-tests.ts | 2 +- types/hashids/index.d.ts | 46 +++++++++++++++------------------- 2 files changed, 21 insertions(+), 27 deletions(-) diff --git a/types/hashids/hashids-tests.ts b/types/hashids/hashids-tests.ts index e1a6c094ec..e08465d01e 100644 --- a/types/hashids/hashids-tests.ts +++ b/types/hashids/hashids-tests.ts @@ -1,7 +1,7 @@ /* require hashids */ -import Hashids = require("hashids"); +import Hashids from 'hashids'; /* creating class object */ var hashids = new Hashids("this is my salt"); diff --git a/types/hashids/index.d.ts b/types/hashids/index.d.ts index d7c5ec56b7..8a3456a1f8 100644 --- a/types/hashids/index.d.ts +++ b/types/hashids/index.d.ts @@ -5,30 +5,24 @@ /// -declare namespace Hashids { - - export interface IHashids { - new(salt: string, minHashLength?: number, alphabet?: string): IHashids; - version: string; - minAlphabetLength: number; - sepDiv: number; - guardDiv: number; - errorAlphabetLength: string; - errorAlphabetSpace: string; - alphabet: string[]; - seps: string; - minHashLength: number; - salt: string; - decode(hash: string): number[]; - encode(arg: number): string; - encode(arg: number[]): string; - encode(...args: number[]): string; - encodeHex(str: string): string; - decodeHex(hash: string): string; - hash(input: number, alphabet: string): string; - unhash(input: string[], alphabet: string): number; - } +export default class Hashids { + private version: string; + private minAlphabetLength: number; + private sepDiv: number; + private guardDiv: number; + private errorAlphabetLength: string; + private errorAlphabetSpace: string; + private alphabet: string[]; + private seps: string; + private minHashLength: number; + private salt: string; + constructor(salt: string, minHashLength?: number, alphabet?: string); + public decode(hash: string): number[]; + public encode(arg: number): string; + public encode(arg: number[]): string; + public encode(...args: number[]): string; + public encodeHex(str: string): string; + public decodeHex(hash: string): string; + public hash(input: number, alphabet: string): string; + public unhash(input: string[], alphabet: string): number; } - -declare var hashids: Hashids.IHashids; -export = hashids; From 250b32ce860509c14dd1be7cf02468495fb1b305 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ciar=C3=A1n=20Curley?= Date: Wed, 26 Apr 2017 23:10:05 +0100 Subject: [PATCH 058/321] radium: Add radiumConfig prop to StyleRoot (#15916) * Add radiumConfig to StyleRoot * Made prop optional * Add tests --- types/radium/index.d.ts | 1 + types/radium/radium-tests.tsx | 55 ++++++++++++++++++++++++++++------- 2 files changed, 45 insertions(+), 11 deletions(-) diff --git a/types/radium/index.d.ts b/types/radium/index.d.ts index 8345b9516f..58f9045923 100644 --- a/types/radium/index.d.ts +++ b/types/radium/index.d.ts @@ -44,6 +44,7 @@ declare namespace Radium { * StyleRoot component properties */ export interface StyleRootProps extends React.HTMLProps { + radiumConfig?: RadiumConfig } /** * diff --git a/types/radium/radium-tests.tsx b/types/radium/radium-tests.tsx index 45d670a98b..7fffa1b187 100644 --- a/types/radium/radium-tests.tsx +++ b/types/radium/radium-tests.tsx @@ -5,19 +5,19 @@ import * as Radium from 'radium'; @Radium class TestComponent extends React.Component<{ a: number }, any> { - render() { - return ( -
- Test with Radium + render() { + return ( +
+ Test with Radium
- ); - } + ); + } } -let TestStatelessComponent = (props: { a: number }) =>
; +let TestStatelessComponent = (props: { a: number }) =>
; TestStatelessComponent = Radium(TestStatelessComponent); - + @Radium({ @@ -38,19 +38,52 @@ class TestComponentWithConfig extends React.Component<{ a?: number }, {}> { textAlign: "center" } }} - > + >
) } } - + + +class TestComponentWithConfigInStyleRoot + extends React.Component<{ a?: number }, {}> { + render() { + return ( +
+ + + + +
+ ) + } +} + Radium.TestMode.enable(); From 898f68df32d0f50c654e03a15b163e8469994b7d Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Thu, 27 Apr 2017 00:10:29 +0200 Subject: [PATCH 059/321] fix(fs-extra-promise): add missing version (#15915) --- types/fs-extra-promise/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/fs-extra-promise/index.d.ts b/types/fs-extra-promise/index.d.ts index a4d34126ea..a03512a577 100644 --- a/types/fs-extra-promise/index.d.ts +++ b/types/fs-extra-promise/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for fs-extra-promise +// Type definitions for fs-extra-promise 1.0 // Project: https://github.com/overlookmotel/fs-extra-promise // Definitions by: midknight41 , Jason Swearingen // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped From 908dc2e25977e920a1643f70ef5d6c9a35b84f65 Mon Sep 17 00:00:00 2001 From: iislucas Date: Wed, 26 Apr 2017 18:11:38 -0400 Subject: [PATCH 060/321] Added missing url/metadata objects for photos. (#15903) --- types/gapi.people/index.d.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/types/gapi.people/index.d.ts b/types/gapi.people/index.d.ts index 86bf930beb..894dd8a0d1 100644 --- a/types/gapi.people/index.d.ts +++ b/types/gapi.people/index.d.ts @@ -117,11 +117,15 @@ declare namespace gapi.client.people { value: string; type: NicknameType; } - + interface CoverPhoto { + metadata: FieldMetadata; + url: string; } interface Photo { + metadata: FieldMetadata; + url: string; } interface Gender { From 692a3c7637995a305b8a0e5f8089711ff2037cfb Mon Sep 17 00:00:00 2001 From: Jeff Kenney Date: Wed, 26 Apr 2017 15:18:33 -0700 Subject: [PATCH 061/321] hapi: set IServerInjectResponse.result to any type since it is a pre-serialization response (#15794) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- types/hapi/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/hapi/index.d.ts b/types/hapi/index.d.ts index 3715fef37c..d4c8861a78 100644 --- a/types/hapi/index.d.ts +++ b/types/hapi/index.d.ts @@ -1008,7 +1008,7 @@ export interface IServerInjectResponse { req: http.IncomingMessage; res: http.ServerResponse }; - result: string; + result: any; request: Request; } From c340b2e633af705e01a6837324879ee0dea8be2f Mon Sep 17 00:00:00 2001 From: Nicholas Simmons Date: Wed, 26 Apr 2017 18:21:38 -0400 Subject: [PATCH 062/321] Add koa-generic-session types (#16155) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- types/koa-generic-session/index.d.ts | 54 +++++++++++++++++++ .../koa-generic-session-tests.ts | 35 ++++++++++++ types/koa-generic-session/tsconfig.json | 22 ++++++++ types/koa-generic-session/tslint.json | 1 + 4 files changed, 112 insertions(+) create mode 100644 types/koa-generic-session/index.d.ts create mode 100644 types/koa-generic-session/koa-generic-session-tests.ts create mode 100644 types/koa-generic-session/tsconfig.json create mode 100644 types/koa-generic-session/tslint.json diff --git a/types/koa-generic-session/index.d.ts b/types/koa-generic-session/index.d.ts new file mode 100644 index 0000000000..f3a84e7b20 --- /dev/null +++ b/types/koa-generic-session/index.d.ts @@ -0,0 +1,54 @@ +// Type definitions for koa-generic-session 1.x +// Project: https://github.com/koajs/generic-session +// Definitions by: Nick Simmons +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import * as Koa from "koa"; + +declare namespace koaSession { + interface Session { + cookie: any; + } + + interface SessionIdStore { + get(): any; + set(sid: string, session: Session): void; + reset(): void; + } + + interface SessionStore { + (): SessionStore; + get(sid: string): any; + set(sid: string, session: Session, ttl: number): void; + destroy(sid: string): void; + } + + interface SessionOptions { + key?: string; + store?: SessionStore; + ttl?: number; + prefix?: string; + cookie?: { + path?: string; + rewrite?: boolean; + signed?: boolean; + maxAge?: number; + secure?: boolean; + httpOnly?: boolean; + }; + allowEmpty?: boolean; + defer?: boolean; + reconnectTimeout?: number; + rolling?: boolean; + sessionIdStore?: SessionIdStore; + genSid?(length: number): string; + errorHandler?(error: Error, type: string, ctx: Koa.Context): void; + valid?(ctx: Koa.Context, session: Session): boolean; + beforeSave?(ctx: Koa.Context, session: Session): void; + } + + const MemoryStore: SessionStore; +} + +declare function koaSession(options: koaSession.SessionOptions): Koa.Middleware; +export = koaSession; diff --git a/types/koa-generic-session/koa-generic-session-tests.ts b/types/koa-generic-session/koa-generic-session-tests.ts new file mode 100644 index 0000000000..fb8d69b0e0 --- /dev/null +++ b/types/koa-generic-session/koa-generic-session-tests.ts @@ -0,0 +1,35 @@ +import * as Koa from "koa"; +import {MemoryStore, Session} from "koa-generic-session"; +import session = require("koa-generic-session"); + +const app = new Koa(); + +app.use(session({ + key: 'sessionKey', + store: MemoryStore(), + ttl: 60 * 60, + prefix: 'a-prefix', + cookie: { + path: '/test', + rewrite: false, + signed: false, + maxAge: 60 * 60, + secure: true, + httpOnly: true, + }, + allowEmpty: false, + defer: false, + reconnectTimeout: 100, + rolling: false, + sessionIdStore: { + get: () => 'something', + set: (sid: string, session: Session) => {}, + reset: () => {} + }, + genSid: (length: number) => 'aSid', + errorHandler: (error: Error, type: string, ctx: Koa.Context) => {}, + valid: (ctx: Koa.Context, session: Session) => true, + beforeSave: (ctx: Koa.Context, session: Session) => {} +})); + +app.listen(80); diff --git a/types/koa-generic-session/tsconfig.json b/types/koa-generic-session/tsconfig.json new file mode 100644 index 0000000000..b4cf43dab8 --- /dev/null +++ b/types/koa-generic-session/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "koa-generic-session-tests.ts" + ] +} \ No newline at end of file diff --git a/types/koa-generic-session/tslint.json b/types/koa-generic-session/tslint.json new file mode 100644 index 0000000000..2750cc0197 --- /dev/null +++ b/types/koa-generic-session/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } \ No newline at end of file From 05efee5a4ec955309880139795de2e2b583b469c Mon Sep 17 00:00:00 2001 From: Karol Janyst Date: Thu, 27 Apr 2017 23:16:54 +0900 Subject: [PATCH 063/321] Add definitions for react-transition-group (#16117) * Add definitions for react-transition-group * Change authors in header --- .../CSSTransitionGroup.d.ts | 27 +++++++ .../TransitionGroup.d.ts | 19 +++++ types/react-transition-group/index.d.ts | 29 ++++++++ .../react-transition-group-tests.tsx | 73 +++++++++++++++++++ types/react-transition-group/tsconfig.json | 25 +++++++ types/react-transition-group/tslint.json | 1 + 6 files changed, 174 insertions(+) create mode 100644 types/react-transition-group/CSSTransitionGroup.d.ts create mode 100644 types/react-transition-group/TransitionGroup.d.ts create mode 100644 types/react-transition-group/index.d.ts create mode 100644 types/react-transition-group/react-transition-group-tests.tsx create mode 100644 types/react-transition-group/tsconfig.json create mode 100644 types/react-transition-group/tslint.json diff --git a/types/react-transition-group/CSSTransitionGroup.d.ts b/types/react-transition-group/CSSTransitionGroup.d.ts new file mode 100644 index 0000000000..0069962eb9 --- /dev/null +++ b/types/react-transition-group/CSSTransitionGroup.d.ts @@ -0,0 +1,27 @@ +import { Component } from "react"; +import { HTMLTransitionGroupProps } from "./index"; + +declare namespace CSSTransitionGroup { + interface CSSTransitionGroupTransitionName { + enter: string; + enterActive?: string; + leave: string; + leaveActive?: string; + appear?: string; + appearActive?: string; + } + + interface CSSTransitionGroupProps extends HTMLTransitionGroupProps { + transitionName: string | CSSTransitionGroupTransitionName; + transitionAppear?: boolean; + transitionAppearTimeout?: number; + transitionEnter?: boolean; + transitionEnterTimeout?: number; + transitionLeave?: boolean; + transitionLeaveTimeout?: number; + } +} + +declare class CSSTransitionGroup extends Component {} + +export = CSSTransitionGroup; diff --git a/types/react-transition-group/TransitionGroup.d.ts b/types/react-transition-group/TransitionGroup.d.ts new file mode 100644 index 0000000000..04d218399c --- /dev/null +++ b/types/react-transition-group/TransitionGroup.d.ts @@ -0,0 +1,19 @@ +import { Component, HTMLAttributes, ReactElement, ReactType } from "react"; +import { HTMLTransitionGroupProps } from "./index"; + +declare namespace TransitionGroup { + interface TransitionGroupChildLifecycle { + componentWillAppear?(callback: () => void): void; + componentDidAppear?(): void; + componentWillEnter?(callback: () => void): void; + componentDidEnter?(): void; + componentWillLeave?(callback: () => void): void; + componentDidLeave?(): void; + } + + type TransitionGroupProps = HTMLTransitionGroupProps; +} + +declare class TransitionGroup extends Component {} + +export = TransitionGroup; diff --git a/types/react-transition-group/index.d.ts b/types/react-transition-group/index.d.ts new file mode 100644 index 0000000000..5faf397a34 --- /dev/null +++ b/types/react-transition-group/index.d.ts @@ -0,0 +1,29 @@ +// Type definitions for react-transition-group 1.1 +// Project: https://github.com/reactjs/react-transition-group +// Definitions by: Karol Janyst +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.1 + +import { HTMLAttributes, ReactElement, ReactType } from "react"; + +export interface HTMLTransitionGroupProps extends HTMLAttributes { + component?: ReactType; + childFactory?(child: ReactElement): ReactElement; +} + +import * as TransitionGroup from "./TransitionGroup"; +export { + TransitionGroupProps, + TransitionGroupChildLifecycle +} from "./TransitionGroup"; + +import * as CSSTransitionGroup from "./CSSTransitionGroup"; +export { + CSSTransitionGroupProps, + CSSTransitionGroupTransitionName +} from "./CSSTransitionGroup"; + +export { + TransitionGroup, + CSSTransitionGroup +}; diff --git a/types/react-transition-group/react-transition-group-tests.tsx b/types/react-transition-group/react-transition-group-tests.tsx new file mode 100644 index 0000000000..4046adafdd --- /dev/null +++ b/types/react-transition-group/react-transition-group-tests.tsx @@ -0,0 +1,73 @@ +import * as React from "react"; +import * as TransitionGroup from "react-transition-group/TransitionGroup"; +import * as CSSTransitionGroup from "react-transition-group/CSSTransitionGroup"; +import { CSSTransitionGroupProps, TransitionGroupProps, TransitionGroupChildLifecycle } from "react-transition-group"; + +class TestChild extends React.Component implements TransitionGroupChildLifecycle { + componentWillAppear(callback: () => void) { + callback(); + } + + componentDidAppear() {} + + componentWillEnter(callback: () => void) { + callback(); + } + + componentDidEnter() {} + + componentWillLeave(callback: () => void) { + callback(); + } + + componentDidLeave() {} + + render() { + return (
  • { "Test" }
  • ); + } +} + +const Test: React.StatelessComponent = () => { + return ( +
    + + + + + +
    { "test" }
    +
    + + +
    { "test" }
    +
    + + +
    { "test" }
    +
    +
    + ); +}; diff --git a/types/react-transition-group/tsconfig.json b/types/react-transition-group/tsconfig.json new file mode 100644 index 0000000000..1fbbc5df49 --- /dev/null +++ b/types/react-transition-group/tsconfig.json @@ -0,0 +1,25 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "jsx": "react", + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "CSSTransitionGroup.d.ts", + "TransitionGroup.d.ts", + "react-transition-group-tests.tsx" + ] +} diff --git a/types/react-transition-group/tslint.json b/types/react-transition-group/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/react-transition-group/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From cff3ba94792716263ce058aceb2f16bafca28310 Mon Sep 17 00:00:00 2001 From: John Reilly Date: Thu, 27 Apr 2017 15:26:51 +0100 Subject: [PATCH 064/321] [React] Moved shallowRenderer into react-test-renderer as per https://facebook.github.io/react/blog/2017/04/07/react-v15.5.0.html#react-test-utils --- types/react-test-renderer/index.d.ts | 4 ++-- .../react-test-renderer-tests.ts | 8 +++++++ types/react-test-renderer/shallow/index.d.ts | 22 +++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 types/react-test-renderer/shallow/index.d.ts diff --git a/types/react-test-renderer/index.d.ts b/types/react-test-renderer/index.d.ts index f87254fe23..e967fde49c 100644 --- a/types/react-test-renderer/index.d.ts +++ b/types/react-test-renderer/index.d.ts @@ -1,6 +1,6 @@ -// Type definitions for react-test-renderer 15.4 +// Type definitions for react-test-renderer 15.5 // Project: https://facebook.github.io/react/ -// Definitions by: Arvitaly , Lochbrunner +// Definitions by: Arvitaly , Lochbrunner , Lochbrunner , John Reilly // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.1 diff --git a/types/react-test-renderer/react-test-renderer-tests.ts b/types/react-test-renderer/react-test-renderer-tests.ts index 790d0b0d92..a59dbc158a 100644 --- a/types/react-test-renderer/react-test-renderer-tests.ts +++ b/types/react-test-renderer/react-test-renderer-tests.ts @@ -1,5 +1,6 @@ import React = require("react"); import { create } from "react-test-renderer"; +import * as ReactTestUtils from './shallow'; const tree = create(React.createElement("div"), { createNodeMock: (el: React.ReactElement) => { @@ -13,3 +14,10 @@ tree.props = { }; tree.children = [tree]; tree.$$typeof = "t"; + +class TestComponent extends React.Component<{}, {}> { } + +const component = React.createElement(TestComponent); +const shallowRenderer = ReactTestUtils.createRenderer(); +shallowRenderer.render(component); +shallowRenderer.getRenderOutput(); diff --git a/types/react-test-renderer/shallow/index.d.ts b/types/react-test-renderer/shallow/index.d.ts new file mode 100644 index 0000000000..493ad4a777 --- /dev/null +++ b/types/react-test-renderer/shallow/index.d.ts @@ -0,0 +1,22 @@ +import { ReactElement } from 'react'; + +export interface ShallowRenderer { + /** + * After `shallowRenderer.render()` has been called, returns shallowly rendered output. + */ + getRenderOutput>(): E; + /** + * After `shallowRenderer.render()` has been called, returns shallowly rendered output. + */ + getRenderOutput(): ReactElement; + /** + * Similar to `ReactDOM.render` but it doesn't require DOM and only renders a single level deep. + */ + render(element: ReactElement, context?: any): void; + unmount(): void; +} + +/** + * Call this in your tests to create a shallow renderer. + */ +export function createRenderer(): ShallowRenderer; From 395180292667ff17a97daae3f1eac588e8096a9d Mon Sep 17 00:00:00 2001 From: John Reilly Date: Thu, 27 Apr 2017 15:39:05 +0100 Subject: [PATCH 065/321] change reference --- types/react-test-renderer/react-test-renderer-tests.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/types/react-test-renderer/react-test-renderer-tests.ts b/types/react-test-renderer/react-test-renderer-tests.ts index a59dbc158a..c93b27e0b2 100644 --- a/types/react-test-renderer/react-test-renderer-tests.ts +++ b/types/react-test-renderer/react-test-renderer-tests.ts @@ -1,6 +1,6 @@ import React = require("react"); import { create } from "react-test-renderer"; -import * as ReactTestUtils from './shallow'; +import { createRenderer } from 'react-test-renderer/shallow'; const tree = create(React.createElement("div"), { createNodeMock: (el: React.ReactElement) => { @@ -18,6 +18,6 @@ tree.$$typeof = "t"; class TestComponent extends React.Component<{}, {}> { } const component = React.createElement(TestComponent); -const shallowRenderer = ReactTestUtils.createRenderer(); +const shallowRenderer = createRenderer(); shallowRenderer.render(component); shallowRenderer.getRenderOutput(); From ca84513e8400c390e1d1ca713edab3cef8f43060 Mon Sep 17 00:00:00 2001 From: John Reilly Date: Thu, 27 Apr 2017 15:46:14 +0100 Subject: [PATCH 066/321] include missing file --- types/react-test-renderer/tsconfig.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/types/react-test-renderer/tsconfig.json b/types/react-test-renderer/tsconfig.json index 0bff5e3068..568caa6698 100644 --- a/types/react-test-renderer/tsconfig.json +++ b/types/react-test-renderer/tsconfig.json @@ -18,6 +18,7 @@ }, "files": [ "index.d.ts", + "shallow/index.d.ts", "react-test-renderer-tests.ts" ] -} \ No newline at end of file +} From e44c291ab7398c46efd9b1e884fd993ad9ecee53 Mon Sep 17 00:00:00 2001 From: Mark Crawshaw Date: Fri, 28 Apr 2017 02:50:26 +1000 Subject: [PATCH 067/321] Allow 'styleName' for SVG elements via react module augment (#16004) --- types/react-css-modules/index.d.ts | 5 ++++- .../react-css-modules-tests.tsx | 20 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/types/react-css-modules/index.d.ts b/types/react-css-modules/index.d.ts index d569850f99..32835f0c1d 100644 --- a/types/react-css-modules/index.d.ts +++ b/types/react-css-modules/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for react-css-modules 3.7.9 +// Type definitions for react-css-modules 4.2.0 // Project: https://github.com/gajus/react-css-modules // Definitions by: Kostya Esmukov , Tadas Dailyda // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -33,4 +33,7 @@ declare module 'react' { interface HTMLAttributes { styleName?: string; } + interface SVGAttributes { + styleName?: string; + } } diff --git a/types/react-css-modules/react-css-modules-tests.tsx b/types/react-css-modules/react-css-modules-tests.tsx index 62a3470dcb..18f4cd04e3 100644 --- a/types/react-css-modules/react-css-modules-tests.tsx +++ b/types/react-css-modules/react-css-modules-tests.tsx @@ -41,3 +41,23 @@ class TableDecorated extends React.Component {
    ; } } + + +interface TableProps extends CSSModules.InjectedCSSModuleProps { + +} + +class Svg extends React.Component { + render () { + const { styles } = this.props; + + return + + + + + ; + } +} + +const SvgHOC = CSSModules(Svg, styles); From 2c5a92b5e284e2e42c24a266e0f0cf459994ef98 Mon Sep 17 00:00:00 2001 From: Katsuya Hino Date: Fri, 28 Apr 2017 01:51:24 +0900 Subject: [PATCH 068/321] Add missing "multiple" prop to SelectField of material-ui (#15935) * Add missing "multiple" prop to SelectField * Add "selectionRenderer" prop to SelectField --- types/material-ui/index.d.ts | 2 + types/material-ui/material-ui-tests.tsx | 109 ++++++++++++++++++++++++ 2 files changed, 111 insertions(+) diff --git a/types/material-ui/index.d.ts b/types/material-ui/index.d.ts index 727fc433c8..9c815ada38 100644 --- a/types/material-ui/index.d.ts +++ b/types/material-ui/index.d.ts @@ -1343,10 +1343,12 @@ declare namespace __MaterialUI { iconStyle?: React.CSSProperties; id?: string; labelStyle?: React.CSSProperties; + multiple?: boolean; onBlur?: React.FocusEventHandler<{}>; onChange?: (e: TouchTapEvent, index: number, menuItemValue: any) => void; onFocus?: React.FocusEventHandler<{}>; selectFieldRoot?: React.CSSProperties; + selectionRenderer?: (value: any) => React.ReactNode; style?: React.CSSProperties; underlineDisabledStyle?: React.CSSProperties; underlineFocusStyle?: React.CSSProperties; diff --git a/types/material-ui/material-ui-tests.tsx b/types/material-ui/material-ui-tests.tsx index d1a6397f42..87908cd6ec 100644 --- a/types/material-ui/material-ui-tests.tsx +++ b/types/material-ui/material-ui-tests.tsx @@ -3453,6 +3453,115 @@ class SelectFieldExampleError extends React.Component<{}, {value?: number}> { } } +const names = [ + 'Oliver Hansen', + 'Van Henry', + 'April Tucker', + 'Ralph Hubbard', + 'Omar Alexander', + 'Carlos Abbott', + 'Miriam Wagner', + 'Bradley Wilkerson', + 'Virginia Andrews', + 'Kelly Snyder', +]; + +class SelectFieldExampleMultiSelect extends React.Component<{}, {values?: string[]}> { + + constructor(props) { + super(props); + this.state = {values: []}; + } + + handleChange = (event, index, values) => this.setState({values}); + + menuItems(values) { + return names.map((name) => ( + + )); + } + + render() { + const {values} = this.state; + return ( + + {this.menuItems(values)} + + ); + } +} + +const persons = [ + {value: 0, name: 'Oliver Hansen'}, + {value: 1, name: 'Van Henry'}, + {value: 2, name: 'April Tucker'}, + {value: 3, name: 'Ralph Hubbard'}, + {value: 4, name: 'Omar Alexander'}, + {value: 5, name: 'Carlos Abbott'}, + {value: 6, name: 'Miriam Wagner'}, + {value: 7, name: 'Bradley Wilkerson'}, + {value: 8, name: 'Virginia Andrews'}, + {value: 9, name: 'Kelly Snyder'}, +]; + +class SelectFieldExampleSelectionRenderer extends React.Component<{}, {values?: string[]}> { + + constructor(props) { + super(props); + this.state = {values: []}; + } + + handleChange = (event, index, values) => this.setState({values}); + + selectionRenderer = (values) => { + switch (values.length) { + case 0: + return ''; + case 1: + return persons[values[0]].name; + default: + return `${values.length} names selected`; + } + } + + menuItems(persons) { + return persons.map((person) => ( + = 0} + value={person.value} + primaryText={person.name} + /> + )); + } + + render() { + return ( + + {this.menuItems(persons)} + + ); + } +} + // "http://www.material-ui.com/#/components/slider" const SliderExampleSimple = () => ( From 54017f4f76d69e2b360443f523f2d072f44c2417 Mon Sep 17 00:00:00 2001 From: Nicholas Simmons Date: Thu, 27 Apr 2017 12:52:24 -0400 Subject: [PATCH 069/321] Add referrerPolicy to helmet type definition (#16134) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- types/helmet/helmet-tests.ts | 7 +++++++ types/helmet/index.d.ts | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/types/helmet/helmet-tests.ts b/types/helmet/helmet-tests.ts index 1968c8f848..38fa53828f 100644 --- a/types/helmet/helmet-tests.ts +++ b/types/helmet/helmet-tests.ts @@ -190,6 +190,13 @@ function noSniffTest() { app.use(helmet.noSniff()); } +/** + * @summary Test for {@see helmet#referrerPolicy} function. + */ +function referrerPolicyTest() { + app.use(helmet.referrerPolicy({ policy: 'same-origin' })) +} + /** * @summary Test for {@see helmet#xssFilter} function. */ diff --git a/types/helmet/index.d.ts b/types/helmet/index.d.ts index 1dc8882608..ee37b7d298 100644 --- a/types/helmet/index.d.ts +++ b/types/helmet/index.d.ts @@ -88,6 +88,10 @@ declare namespace helmet { force?: boolean; } + export interface IHelmetReferrerPolicyConfiguration { + policy?: string; + } + export interface IHelmetXssFilterConfiguration { setOnOldIE?: boolean; } @@ -163,6 +167,12 @@ declare namespace helmet { */ noSniff(): express.RequestHandler; + /** + * @summary Adds the "Referrer-Policy" header. + * @return {RequestHandler} The Request handler. + */ + referrerPolicy(options?: IHelmetReferrerPolicyConfiguration): express.RequestHandler; + /** * @summary Mitigate cross-site scripting attacks with the "X-XSS-Protection" header. * @param {IHelmetXssFilterConfiguration} options The options From fc63d5f5cc81ab2370b7bc243bfd2960ea45cc7b Mon Sep 17 00:00:00 2001 From: Anthony Rosequist Date: Thu, 27 Apr 2017 11:53:33 -0500 Subject: [PATCH 070/321] Added Question.pageSize and enhancing Question.validate in Inquirer (#16160) * Added pageSize to the Question interface in Inquirer * Added answers to Question.validate() in Inquirer --- types/inquirer/index.d.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/types/inquirer/index.d.ts b/types/inquirer/index.d.ts index 1909781f88..dd2f4ad3c7 100644 --- a/types/inquirer/index.d.ts +++ b/types/inquirer/index.d.ts @@ -94,7 +94,7 @@ declare namespace inquirer { * Receive the user input and should return true if the value is valid, and an error message (String) * otherwise. If false is returned, a default error message is provided. */ - validate?(input: string): boolean | string; + validate?(input: string, answers?: Answers): boolean | string; /** * Receive the user input and return the filtered value to be used inside the program. * The value returned will be added to the Answers hash. @@ -106,6 +106,10 @@ declare namespace inquirer { */ when?: boolean | ((answers: Answers) => boolean); paginated?: boolean; + /** + * Change the number of lines that will be rendered when using list, rawList, expand or checkbox. + */ + pageSize?: number; } /** From 7b2edf2aacdaa985c03f7ebfe2f9c9add063815c Mon Sep 17 00:00:00 2001 From: Frederick Fogerty Date: Fri, 28 Apr 2017 05:04:15 +1200 Subject: [PATCH 071/321] Add types for number-to-words (#16162) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- types/number-to-words/index.d.ts | 17 ++++++++++++++ .../number-to-words/number-to-words-tests.ts | 7 ++++++ types/number-to-words/tsconfig.json | 22 +++++++++++++++++++ types/number-to-words/tslint.json | 1 + 4 files changed, 47 insertions(+) create mode 100644 types/number-to-words/index.d.ts create mode 100644 types/number-to-words/number-to-words-tests.ts create mode 100644 types/number-to-words/tsconfig.json create mode 100644 types/number-to-words/tslint.json diff --git a/types/number-to-words/index.d.ts b/types/number-to-words/index.d.ts new file mode 100644 index 0000000000..1d1caeb398 --- /dev/null +++ b/types/number-to-words/index.d.ts @@ -0,0 +1,17 @@ +// Type definitions for number-to-words 1.2 +// Project: https://github.com/marlun78/number-to-words +// Definitions by: Frederick Fogerty +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/** + * Converts an integer into a string with an ordinal postfix. If number is decimal, the decimals will be removed. + */ +export function toOrdinal(number: number): string; +/** + * Converts an integer into words. If number is decimal, the decimals will be removed. + */ +export function toWords(number: number): string; +/** + * Converts a number into ordinal words. If number is decimal, the decimals will be removed. + */ +export function toWordsOrdinal(number: number): string; diff --git a/types/number-to-words/number-to-words-tests.ts b/types/number-to-words/number-to-words-tests.ts new file mode 100644 index 0000000000..1c45936a78 --- /dev/null +++ b/types/number-to-words/number-to-words-tests.ts @@ -0,0 +1,7 @@ +import * as converter from 'number-to-words'; + +converter.toOrdinal(21); + +converter.toWords(13); + +converter.toWordsOrdinal(21); diff --git a/types/number-to-words/tsconfig.json b/types/number-to-words/tsconfig.json new file mode 100644 index 0000000000..c7d9661c4d --- /dev/null +++ b/types/number-to-words/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "number-to-words-tests.ts" + ] +} diff --git a/types/number-to-words/tslint.json b/types/number-to-words/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/number-to-words/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From 0e13b978200815e0f2d35193323ed7df5fb0d692 Mon Sep 17 00:00:00 2001 From: David Fox Date: Thu, 27 Apr 2017 12:43:54 -0500 Subject: [PATCH 072/321] Use correct response typings in request-promise-native (#16114) * Use correct response typings Use `request.RequestResponse` instead of `any` * Export an alias for request.RequestReponse --- types/request-promise-native/index.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/types/request-promise-native/index.d.ts b/types/request-promise-native/index.d.ts index 7eadce54aa..05eedaab72 100644 --- a/types/request-promise-native/index.d.ts +++ b/types/request-promise-native/index.d.ts @@ -22,6 +22,7 @@ declare namespace requestPromise { resolveWithFullResponse?: boolean; } + export type FullResponse = request.RequestResponse; export type OptionsWithUri = request.UriOptions & RequestPromiseOptions; export type OptionsWithUrl = request.UrlOptions & RequestPromiseOptions; export type Options = OptionsWithUri | OptionsWithUrl; From 2ca253abd446f3c259f23d5b7e538019910aed4b Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Thu, 27 Apr 2017 19:57:18 +0200 Subject: [PATCH 073/321] Updated type definitions to yFiles for HTML 2.0.1 (#15944) --- types/yfiles/index.d.ts | 69082 ++++++++++++++++----------------- types/yfiles/yfiles-tests.ts | 1 + 2 files changed, 34345 insertions(+), 34738 deletions(-) diff --git a/types/yfiles/index.d.ts b/types/yfiles/index.d.ts index 32f42f12ab..a2b21ef530 100644 --- a/types/yfiles/index.d.ts +++ b/types/yfiles/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for yFiles for HTML 2.0.0.1 +// Type definitions for yFiles for HTML 2.0.1 // Project: http://www.yworks.com/products/yfiles-for-html // Definitions by: yWorks GmbH HTML Team // Definitions: https://github.com/yWorks/DefinitelyTyped @@ -9,7 +9,7 @@ ** ** yWorks proprietary/confidential. Use is subject to license terms. ** - ** Copyright (c) 2015 by yWorks GmbH, Vor dem Kreuzberg 28, + ** Copyright (c) 2017 by yWorks GmbH, Vor dem Kreuzberg 28, ** 72070 Tuebingen, Germany. All rights reserved. ** ***************************************************************************/ @@ -23,8 +23,7 @@ declare namespace yfiles{ } } -declare namespace system{ -}declare namespace yfiles{ +declare namespace yfiles{ export namespace lang{ /** * The root of the class hierarchy of the yFiles for HTML class framework. @@ -38,27 +37,27 @@ declare namespace system{ *

    * The other methods are part of the {@link yfiles.lang.Object_Interface} type, only. *

    - * @class yfiles.lang.Object_Interface + * @class */ export interface Object_Interface extends Object{} export class Object_Interface { /** * Tests whether this object and the other object are equal. - * @param {Object} other The tested object. - * @returns {boolean} true, if the objects are equal; false otherwise. + * @param other The tested object. + * @returns true, if the objects are equal; false otherwise. */ equals(other:Object):boolean; /** * Tests if two objects are equal. - * @param {Object} a One of the objects. Can be null or of any type. - * @param {Object} b One of the objects. Can be null or of any type. - * @returns {boolean} true, if the objects are equal; false otherwise. + * @param a One of the objects. Can be null or of any type. + * @param b One of the objects. Can be null or of any type. + * @returns true, if the objects are equal; false otherwise. * @static */ static equals(a:Object,b:Object):boolean; /** * Returns the type of this object. - * @returns {yfiles.lang.Class} The type of this object. + * @returns The type of this object. */ getClass():yfiles.lang.Class; /** @@ -66,16 +65,16 @@ declare namespace system{ *

    * The requested name must be a property (with getter and/or setter). *

    - * @param {string} name The name of the property. - * @param {boolean} bound If true, then the get/set methods of the returned object will be bound to this instance. - * @returns {Object} An object with a get and/or set method that reads/writes to the specified field. + * @param name The name of the property. + * @param bound If true, then the get/set methods of the returned object will be bound to this instance. + * @returns An object with a get and/or set method that reads/writes to the specified field. */ getOwnProperty(name:string,bound:boolean):Object; /** * Returns the most recently defined property descriptor in the prototype chain of the given object. - * @param {Object} o The object that the property belongs to - * @param {string} name The name of the property. - * @returns {Object} The most recently defined property descriptor in the prototype chain of the given object. + * @param o The object that the property belongs to + * @param name The name of the property. + * @returns The most recently defined property descriptor in the prototype chain of the given object. * @static */ static getPropertyDescriptor(o:Object,name:string):Object; @@ -84,7 +83,7 @@ declare namespace system{ *

    * If two objects are {@link yfiles.lang.Object_Interface#equals equal}, then they must have the same hash code. *

    - * @returns {number} The hash code of this object. + * @returns The hash code of this object. */ hashCode():number; /** @@ -92,34 +91,34 @@ declare namespace system{ *

    * It will also clone any value types. *

    - * @returns {Object} A cloned instance of the same type. + * @returns A cloned instance of the same type. */ memberwiseClone():Object; /** * Tests if two objects are identical. - * @param {Object} a One of the objects. - * @param {Object} b One of the objects. - * @returns {boolean} true, if the objects are the identical; false otherwise. + * @param a One of the objects. + * @param b One of the objects. + * @returns true, if the objects are the identical; false otherwise. * @static */ static referenceEquals(a:Object,b:Object):boolean; /** * Displays the textual representation of the object. - * @returns {string} The textual representation of this object. + * @returns The textual representation of this object. */ toString():string; static $class:yfiles.lang.Class; } /** * This type represents an abstract value, that is a function that is not implemented. - * @class yfiles.lang.Abstract + * @class */ export interface Abstract extends Object{} export class Abstract { /** * Tests whether the given object or property descriptor is a representation of an abstract value. - * @param {Object} o The object to test. - * @returns {boolean} true, if the object is abstract; false otherwise. + * @param o The object to test. + * @returns true, if the object is abstract; false otherwise. * @static */ static isAbstract(o:Object):boolean; @@ -220,36 +219,36 @@ declare namespace system{ *
  • $class: a reference to the {@link yfiles.lang.Class} instance that provides reflective information about this type.
  • *
  • $super: the parent class.
  • * - * @class yfiles.lang.Class + * @class */ export interface Class extends Object{} export class Class { /** * Returns the class object for the given name, or null if no such class exists. - * @param {string} name The name of the requested class. - * @returns {yfiles.lang.Class} The class object or null, if no such class exists. + * @param name The name of the requested class. + * @returns The class object or null, if no such class exists. * @static */ static forName(name:string):yfiles.lang.Class; /** * Returns all attributes that belong to this type. - * @param {boolean} [inherited=true] If true, then the attributes of the parent types are also added to the list. Default value is false. - * @returns {Array.} An array of attributes that belong to this type. + * @param [inherited=true] If true, then the attributes of the parent types are also added to the list. Default value is false. + * @returns An array of attributes that belong to this type. */ getAttributes(inherited?:boolean):yfiles.lang.Attribute[]; /** * Returns an array of all properties of the type. - * @param {boolean} [inherited=true] - * @param {boolean} [staticProperties=false] - * @returns {Array.} An array of properties. + * @param [inherited=true] + * @param [staticProperties=false] + * @returns An array of properties. */ getProperties(inherited?:boolean,staticProperties?:boolean):yfiles.lang.PropertyInfo[]; /** * Returns an array of all properties of the type. * @param {Object} options The parameters to pass. - * @param {boolean} [options.inherited=true] - * @param {boolean} [options.staticProperties=false] - * @returns {Array.} An array of properties. + * @param [options.inherited=true] + * @param [options.staticProperties=false] + * @returns An array of properties. */ getProperties(options:{inherited?:boolean,staticProperties?:boolean}):yfiles.lang.PropertyInfo[]; /** @@ -314,8 +313,8 @@ declare namespace system{ * graphEditorInputMode.clickInputMode.validClickHitTestable = myHitTestable; * * - * @param {Object} obj The object to modify. - * @param {...Object} traits Array or variable number of {@link yfiles.lang.Trait}s, {@link yfiles.lang.Class} objects of traits or fully qualified string names of + * @param obj The object to modify. + * @param traits Array or variable number of {@link }s, {@link } objects of traits or fully qualified string names of * traits. * @static */ @@ -325,13 +324,13 @@ declare namespace system{ *

    * This is the only way to test if an object implements a {@link yfiles.lang.Trait}. *

    - * @param {Object} o The object that may be an instance of this type. - * @returns {boolean} true, if the object is an instance of this type; false otherwise. + * @param o The object that may be an instance of this type. + * @returns true, if the object is an instance of this type; false otherwise. */ isInstance(o:Object):boolean; /** * Creates a new instance of this type using its default constructor. - * @returns {Object} A new instance of this type using its default constructor. + * @returns A new instance of this type using its default constructor. */ newInstance():Object; /** @@ -369,45 +368,45 @@ declare namespace system{ } /** * Wrapper class for the JavaScript number primitive type. - * @class yfiles.lang.Number + * @class * @implements {yfiles.lang.IComparable} */ export interface Number extends Object,yfiles.lang.IComparable{} export class Number { /** * Compares this number with another one. - * @param {Object} obj The other number to compare with. - * @returns {number} 0 if both numbers are equal, -1 if this number is smaller than the other one, 1 otherwise. + * @param obj The other number to compare with. + * @returns 0 if both numbers are equal, -1 if this number is smaller than the other one, 1 otherwise. */ compareTo(obj:Object):number; static $class:yfiles.lang.Class; } /** * Wrapper class for the JavaScript string primitive type. - * @class yfiles.lang.String + * @class * @implements {yfiles.lang.IComparable} */ export interface String extends Object,yfiles.lang.IComparable{} export class String { /** * Compares this string with another one. - * @param {Object} obj The other string to compare with. - * @returns {number} 0 if both strings are equal, -1 if this string comes before the other one in lexicographic sort order, 1 otherwise. + * @param obj The other string to compare with. + * @returns 0 if both strings are equal, -1 if this string comes before the other one in lexicographic sort order, 1 otherwise. */ compareTo(obj:Object):number; static $class:yfiles.lang.Class; } /** * Wrapper class for the JavaScript boolean primitive type. - * @class yfiles.lang.Boolean + * @class * @implements {yfiles.lang.IComparable} */ export interface Boolean extends Object,yfiles.lang.IComparable{} export class Boolean { /** * Compares this boolean with another one. - * @param {Object} obj The other boolean to compare with. - * @returns {number} 0 if both booleans are equal, -1 if this boolean is false and the other is true, 1 otherwise. + * @param obj The other boolean to compare with. + * @returns 0 if both booleans are equal, -1 if this boolean is false and the other is true, 1 otherwise. */ compareTo(obj:Object):number; static $class:yfiles.lang.Class; @@ -424,14 +423,14 @@ declare namespace system{ * with a instanceof A and A.$class.isInstance(a). *

    * @see yfiles.lang.Struct#createDefault - * @class yfiles.lang.Struct + * @class */ export interface Struct extends Object{} export class Struct { /** * This methods creates an instance of the struct in which all of its values are set to their default values without using * any of its constructors. - * @returns {Object} + * @returns * @static */ static createDefault():Object; @@ -441,13 +440,13 @@ declare namespace system{ * As opposed to the implementation of * {@link yfiles.lang.Object_Interface#equals}, this implementation tests the members of both objects to determine equality. *

    - * @param {Object} other The other struct. - * @returns {boolean} true, if both objects are equal; false otherwise. + * @param other The other struct. + * @returns true, if both objects are equal; false otherwise. */ equals(other:Object):boolean; /** * Calculates the hash code of this struct based on its members. - * @returns {number} The hash code. + * @returns The hash code. */ hashCode():number; static $class:yfiles.lang.Class; @@ -470,38 +469,38 @@ declare namespace system{ * if(state === RequestState.FAILED) { ... } * * - * @class yfiles.lang.Enum + * @class */ export interface Enum extends Object{} export class Enum { /** * Returns the name of an enum value. - * @param {yfiles.lang.Class} type The type of the enum. - * @param {yfiles.lang.Enum} value The value of the field. - * @returns {string} The name of the field. + * @param type The type of the enum. + * @param value The value of the field. + * @returns The name of the field. * @static */ static getName(type:yfiles.lang.Class,value:yfiles.lang.Enum):string; /** * Returns a list of all field names that represent an enum value. - * @param {yfiles.lang.Class} type The type of the enum. - * @returns {yfiles.collections.IEnumerable.} A list of all field names that represent an enum value. + * @param type The type of the enum. + * @returns A list of all field names that represent an enum value. * @static */ static getValueNames(type:yfiles.lang.Class):yfiles.collections.IEnumerable; /** * Returns a list of all numeric values. - * @param {yfiles.lang.Class} type The type of the enum. - * @returns {yfiles.collections.IEnumerable.} A list of all numeric values. + * @param type The type of the enum. + * @returns A list of all numeric values. * @static */ static getValues(type:yfiles.lang.Class):yfiles.collections.IEnumerable; /** * Returns the value of the field with the given ID. - * @param {yfiles.lang.Class} type The type of the enum. - * @param {string} id The name of the field. - * @param {boolean} ignoreCase If true, then the case of the field will be ignored and the search is case-insensitive. - * @returns {yfiles.lang.Enum} The value of the field with the given ID. + * @param type The type of the enum. + * @param id The name of the field. + * @param ignoreCase If true, then the case of the field will be ignored and the search is case-insensitive. + * @returns The value of the field with the given ID. * @static */ static parse(type:yfiles.lang.Class,id:string,ignoreCase:boolean):yfiles.lang.Enum; @@ -516,15 +515,15 @@ declare namespace system{ *
  • delegates can be bound to a different target, which acts as this in the delegate function body,
  • *
  • multiple delegates can be combined into a single delegate instance, which provides multicast functionality.
  • * - * @class yfiles.lang.delegate + * @class */ export interface delegate extends Object{} export class delegate { /** * Combines two delegates into a single one. - * @param {yfiles.lang.delegate} d1 One of the delegates to combine. - * @param {yfiles.lang.delegate} d2 One of the delegates to combine. - * @returns {yfiles.lang.delegate} A delegate that combines both original delegates. + * @param d1 One of the delegates to combine. + * @param d2 One of the delegates to combine. + * @returns A delegate that combines both original delegates. * @static */ static combine(d1:Function,d2:Function):Function; @@ -534,40 +533,40 @@ declare namespace system{ * When the delegate is executed, the functions will be applied on * target, independent from the current closure. If multiple functions are specified, they will all be applied in order. *

    - * @param {Array.} functions The functions from which the delegate should be created. - * @param {Object} target The target object on which the functions should be applied. - * @returns {yfiles.lang.delegate} A new delegate. + * @param functions The functions from which the delegate should be created. + * @param target The target object on which the functions should be applied. + * @returns A new delegate. * @static */ static createDelegate(functions:Function[],target:Object):Function; /** * Apply function in the current execution context. - * @param {yfiles.lang.delegate} function2 The function to execute. - * @param {...Object} args Optional function arguments. - * @returns {Object} The result from invoking function. + * @param function2 The function to execute. + * @param args Optional function arguments. + * @returns The result from invoking function. * @static */ static dynamicInvoke(function2:Function,...args:Object[]):Object; /** * Return a list of all delegates that are combined into del. - * @param {yfiles.lang.delegate} del The delegate to test. - * @returns {Array.} A list of all delegates that are combined into del. + * @param del The delegate to test. + * @returns A list of all delegates that are combined into del. * @static */ static getInvocationList(del:Function):Function[]; /** * Removes the first occurrence of d2 from the {@link yfiles.lang.delegate#getInvocationList invocation list} of d1. - * @param {yfiles.lang.delegate} d1 The delegate that should be modified. - * @param {yfiles.lang.delegate} d2 The delegate that should be removed. - * @returns {yfiles.lang.delegate} The modified delegate d1. + * @param d1 The delegate that should be modified. + * @param d2 The delegate that should be removed. + * @returns The modified delegate d1. * @static */ static remove(d1:Function,d2:Function):Function; /** * Removes all occurrences of d2 from the {@link yfiles.lang.delegate#getInvocationList invocation list} of d1. - * @param {yfiles.lang.delegate} d1 The delegate that should be modified. - * @param {yfiles.lang.delegate} d2 The delegate that should be removed. - * @returns {yfiles.lang.delegate} The modified delegate d1. + * @param d1 The delegate that should be modified. + * @param d2 The delegate that should be removed. + * @returns The modified delegate d1. * @static */ static removeAll(d1:Function,d2:Function):Function; @@ -597,7 +596,7 @@ declare namespace system{ * All trait types have a $class property, which contains their {@link yfiles.lang.Class type}, and a static {@link yfiles.lang.Trait#isTrait} method that * can be used to test whether an object implements the trait. *

    - * @class yfiles.lang.Trait + * @class */ export interface Trait extends Object{} export class Trait { @@ -606,8 +605,8 @@ declare namespace system{ *

    * This method is equivalent to using obj.$class.isTrait but safe in case the object does not have a $class property. *

    - * @param {Object} o The trait candidate. - * @returns {boolean} true, if the object is a trait; false otherwise. + * @param o The trait candidate. + * @returns true, if the object is a trait; false otherwise. * @static */ static isTrait(o:Object):boolean; @@ -647,7 +646,7 @@ declare namespace system{ *

    * Note: Attribute constructors are always called without the new keyword. *

    - * @class yfiles.lang.Attribute + * @class */ export interface Attribute extends Object{} export class Attribute { @@ -655,70 +654,65 @@ declare namespace system{ } /** * A lazy class type which delays the creation of the class until it is used. - * @class yfiles.lang.ClassDefinition + * @class */ export interface ClassDefinition extends Object{} export class ClassDefinition { /** * A lazy class type which delays the creation of the class until it is used. - * @param {function(): Object} callback Returns the class definition as required by {@link yfiles.lang.Class}. - * @constructor + * @param callback Returns the class definition as required by {@link }. */ constructor(callback:()=>Object); static $class:yfiles.lang.Class; } /** * A lazy interface type which delays the creation of the interface until it is used. - * @class yfiles.lang.InterfaceDefinition + * @class */ export interface InterfaceDefinition extends Object{} export class InterfaceDefinition { /** * A lazy interface type which delays the creation of the interface until it is used. - * @param {function(): Object} callback Returns the interface definition as required by {@link yfiles.lang.Trait}. - * @constructor + * @param callback Returns the interface definition as required by {@link }. */ constructor(callback:()=>Object); static $class:yfiles.lang.Class; } /** * A lazy struct type which delays the creation of the struct until it is used. - * @class yfiles.lang.StructDefinition + * @class */ export interface StructDefinition extends Object{} export class StructDefinition { /** * A lazy struct type which delays the creation of the struct until it is used. - * @param {function(): Object} callback Returns the struct definition as required by {@link yfiles.lang.Struct}. - * @constructor + * @param callback Returns the struct definition as required by {@link }. */ constructor(callback:()=>Object); static $class:yfiles.lang.Class; } /** * A lazy enum type which delays the creation of the enum until it is used. - * @class yfiles.lang.EnumDefinition + * @class */ export interface EnumDefinition extends Object{} export class EnumDefinition { /** * A lazy enum type which delays the creation of the enum until it is used. - * @param {function(): Object} callback Returns the enum definition as required by {@link yfiles.lang.Enum}. - * @constructor + * @param callback Returns the enum definition as required by {@link }. */ constructor(callback:()=>Object); static $class:yfiles.lang.Class; } /** * A lazy attribute definition which delays the creation of the attribute until it is used. - * @class yfiles.lang.AttributeDefinition + * @class */ export interface AttributeDefinition extends Object{} export class AttributeDefinition { /** * A lazy attribute definition which delays the creation of the attribute until it is used. - * @param {function(): Object} callback Returns the attribute definition as required by {@link yfiles.lang.Attribute}. - * @constructor + * @param callback Returns the attribute definition as required by {@link }. */ constructor(callback:()=>Object); static $class:yfiles.lang.Class; @@ -726,7 +720,7 @@ declare namespace system{ /** * Subclasses of {@link yfiles.lang.EventArgs} are passed to event handlers to provide the information they need to handle an * event. - * @class yfiles.lang.EventArgs + * @class */ export interface EventArgs extends Object{} export class EventArgs { @@ -742,15 +736,14 @@ declare namespace system{ /** * Event arguments which contain information for a {@link yfiles.lang.IPropertyObservable#addPropertyChangedListener PropertyChanged} * event. - * @class yfiles.lang.PropertyChangedEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface PropertyChangedEventArgs extends yfiles.lang.EventArgs{} export class PropertyChangedEventArgs { /** * Creates a new instance. - * @param {string} propertyName The name of the changed property. - * @constructor + * @param propertyName The name of the changed property. */ constructor(propertyName:string); /** @@ -767,14 +760,14 @@ declare namespace system{ export interface IPropertyObservable extends Object{ /** * Adds the given listener for the PropertyChanged event that occurs when a property changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.lang.IPropertyObservable#removePropertyChangedListener * @abstract */ addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the PropertyChanged event that occurs when a property changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.lang.IPropertyObservable#addPropertyChangedListener * @abstract */ @@ -786,27 +779,27 @@ declare namespace system{ }; /** * Contains information about a property. - * @class yfiles.lang.PropertyInfo + * @class * @final */ export interface PropertyInfo extends Object{} export class PropertyInfo { /** * Gets the attributes associated with this property. - * @param {boolean} [inherit=true] if set to true inherited attributes will also be returned. - * @returns {Array.} The attributes or an empty array. + * @param [inherit=true] if set to true inherited attributes will also be returned. + * @returns The attributes or an empty array. */ getAttributes(inherit?:boolean):yfiles.lang.Attribute[]; /** * Gets the value of the property from the given object. - * @param {Object} obj The object which has the property, null for static properties. - * @returns {Object} The value of the property from the given object. + * @param obj The object which has the property, null for static properties. + * @returns The value of the property from the given object. */ getValue(obj:Object):Object; /** * Sets the value of the property on the given object. - * @param {Object} obj The object whose property should be written, null for static properties. - * @param {Object} value + * @param obj The object whose property should be written, null for static properties. + * @param value */ setValue(obj:Object,value:Object):void; /** @@ -848,8 +841,8 @@ declare namespace system{ export interface IComparable extends Object{ /** * Compares this object to the given object of the same type. - * @param {Object} obj The object to compare this to. - * @returns {number} + * @param obj The object to compare this to. + * @returns *
      *
    • -1: this is less than obj
    • *
    • 0: this is equal to obj
    • @@ -870,7 +863,7 @@ declare namespace system{ export interface ICloneable extends Object{ /** * Create a clone of this object. - * @returns {Object} A clone of this object. + * @returns A clone of this object. * @abstract */ clone():Object; @@ -881,7 +874,7 @@ declare namespace system{ }; /** * A structure which represents a time span. - * @class yfiles.lang.TimeSpan + * @class * @implements {yfiles.lang.IComparable} * @final */ @@ -889,44 +882,42 @@ declare namespace system{ export class TimeSpan { /** * Creates a new time span with a given length. - * @param {number} days The days part of the time span. - * @param {number} hours The hour part of the time span. - * @param {number} minutes The minute part of the time span. - * @param {number} seconds The seconds part of the time span. - * @param {number} millis The milliseconds part of the time span. - * @constructor + * @param days The days part of the time span. + * @param hours The hour part of the time span. + * @param minutes The minute part of the time span. + * @param seconds The seconds part of the time span. + * @param millis The milliseconds part of the time span. */ constructor(days:number,hours:number,minutes:number,seconds:number,millis:number); /** * Creates a new time span which is ticks milliseconds long. - * @param {number} ticks The length of the time span in milliseconds. - * @constructor + * @param ticks The length of the time span in milliseconds. */ constructor(ticks:number); /** * - * @param {Object} obj - * @returns {number} + * @param obj + * @returns */ compareTo(obj:Object):number; /** * Creates a new time span with the given length in milliseconds. - * @param {number} milliseconds The length of the time span in milliseconds. - * @returns {yfiles.lang.TimeSpan} A newly created time span. + * @param milliseconds The length of the time span in milliseconds. + * @returns A newly created time span. * @static */ static fromMilliseconds(milliseconds:number):yfiles.lang.TimeSpan; /** * Creates a new time span with the given length in minutes. - * @param {number} minutes The length of the time span in minutes. - * @returns {yfiles.lang.TimeSpan} A newly created time span. + * @param minutes The length of the time span in minutes. + * @returns A newly created time span. * @static */ static fromMinutes(minutes:number):yfiles.lang.TimeSpan; /** * Creates a new time span with the given length in seconds. - * @param {number} seconds The length of the time span in seconds. - * @returns {yfiles.lang.TimeSpan} A newly created time span. + * @param seconds The length of the time span in seconds. + * @returns A newly created time span. * @static */ static fromSeconds(seconds:number):yfiles.lang.TimeSpan; @@ -983,35 +974,35 @@ declare namespace system{ * function, which calls the {@link yfiles.lang.Exception#handler} function, if it has been set. Note that for some browsers/plugins, try/catch blocks prevent * error debugging functionality. Hence, {@link yfiles.lang.Exception#catchErrors} should be turned off while debugging. *

      - * @class yfiles.lang.Exception + * @class * @extends {Error} */ export interface Exception extends Error{} export class Exception { /** * Creates a new exception with the given {@link yfiles.lang.Exception#message} and an optional error {@link yfiles.lang.Exception#name}. - * @param {string} [message=null] The exception message. - * @param {string} [name=null] The exception name. This name can be used in try...catch statements to distinguish between different types of errors. + * @param [message=null] The exception message. + * @param [name=null] The exception name. This name can be used in try...catch statements to distinguish between different types of errors. + * @param [innerException=null] The inner exception, if another exception was wrapped. * @see yfiles.lang.Exception#message - * @constructor */ - constructor(message?:string,name?:string); + constructor(message?:string,name?:string,innerException?:yfiles.lang.Exception); /** * Creates a new exception with the given {@link yfiles.lang.Exception#message} and an optional error {@link yfiles.lang.Exception#name}. * @param {Object} options The parameters to pass. - * @param {string} [options.message=null] The exception message. - * @param {string} [options.name=null] The exception name. This name can be used in try...catch statements to distinguish between different types of errors. + * @param [options.message=null] The exception message. + * @param [options.name=null] The exception name. This name can be used in try...catch statements to distinguish between different types of errors. + * @param [options.innerException=null] The inner exception, if another exception was wrapped. * @see yfiles.lang.Exception#message - * @constructor */ - constructor(options:{message?:string,name?:string}); + constructor(options:{message?:string,name?:string,innerException?:yfiles.lang.Exception}); /** * This function is called in catch blocks in the library if {@link yfiles.lang.Exception#catchErrors} is enabled. *

      * If a {@link yfiles.lang.Exception#handler} is registered, the error is passed to the error handler, otherwise if {@link yfiles.lang.Exception#catchErrors} is set to true the error is logged to the * console using console.warn if available. *

      - * @param {Object} error The error object that has been caught + * @param error The error object that has been caught * @static */ static handleError(error:Object):void; @@ -1025,6 +1016,11 @@ declare namespace system{ * @type {string} */ name:string; + /** + * The inner exception, if another exception was wrapped. + * @type {yfiles.lang.Exception} + */ + innerException:yfiles.lang.Exception; /** * Whether to use try/catch blocks when invoking event handlers. *

      @@ -1047,31 +1043,1238 @@ declare namespace system{ static handler:(obj:Object)=>void; static $class:yfiles.lang.Class; } - }export namespace graphml{ - export enum GraphMLMemberVisibility{ + }export namespace collections{ + /** + * The default implementation for {@link yfiles.collections.IMap.}. + * Type parameter TKey: The type of the key elements of this dictionary. + * Type parameter TValue: The type of the value elements of this dictionary. + * @class + * @implements {yfiles.collections.IMap.} + * @implements {yfiles.collections.ICollection.>} + * @implements {yfiles.collections.IEnumerable.>} + * @template TKey,TValue + */ + export interface Map extends Object,yfiles.collections.IMap,yfiles.collections.ICollection>,yfiles.collections.IEnumerable>{} + export class Map { /** - * The member is ignored by GraphML. + * Creates a new instance. + * @param {Object} [options=null] The parameters to pass. + * @param options.entries An array of items which are added to this map. Each item will be added via the {@link #add} method. */ - HIDDEN, + constructor(options?:{entries?:Array}); /** - * The member is treated according to the normal XAML serialization rules + * + * @param item */ - VISIBLE, + add(item:yfiles.collections.MapEntry):void; /** - * Only the content of a member value is read or written, without an enclosing excplicit container object. + * + */ + clear():void; + /** + * Whether this dictionary contains the given value. + * @param value The value to search for. + * @returns true if this dictionary contains the given value. + */ + containsValue(value:TValue):boolean; + /** + * + * @param array + * @param arrayIndex + */ + copyTo(array:yfiles.collections.MapEntry[],arrayIndex:number):void; + /** + * + * @param key + * @returns + */ + delete(key:TKey):boolean; + /** + * + * @param key + * @returns + */ + get(key:TKey):TValue; + /** + * + * @returns + */ + getEnumerator():yfiles.collections.IEnumerator>; + /** + * + * @param key + * @returns + */ + has(key:TKey):boolean; + /** + * + * @param item + * @returns + */ + includes(item:yfiles.collections.MapEntry):boolean; + /** + * + * @param item + * @returns + */ + remove(item:yfiles.collections.MapEntry):boolean; + /** + * + * @param key + * @param value + */ + set(key:TKey,value:TValue):void; + /** + * + * @type {number} + */ + size:number; + /** + * + * @type {boolean} + */ + isReadOnly:boolean; + /** + * + * @type {yfiles.collections.ICollection.} + */ + keys:yfiles.collections.ICollection; + /** + * + * @type {yfiles.collections.ICollection.} + */ + values:yfiles.collections.ICollection; + static $class:yfiles.lang.Class; + } + /** + * Defines methods to manipulate a collection of objects with the same type. + * Type parameter T: The type of the elements in the collection. + * @interface + * @implements {yfiles.collections.IEnumerable.} + * @template T + */ + export interface ICollection extends Object,yfiles.collections.IEnumerable{ + /** + * Adds the given item to the collection. + * @param item + * @abstract + */ + add(item:T):void; + /** + * Removes all items from this collection. + * @abstract + */ + clear():void; + /** + * Copies all elements of this collection into the given array. + * @param array The array to copy the elements to. + * @param arrayIndex The index in the given array where the first element should be copied to. + * @abstract + */ + copyTo(array:T[],arrayIndex:number):void; + /** + * Whether the given item is contained in this collection. + * @param item The item to search for. + * @returns true if the given item is contained in this collection. + * @abstract + */ + includes(item:T):boolean; + /** + * Removes the given item from this collection. + * @param item The item to remove. + * @returns Whether the item was removed from the collection. + * @abstract + */ + remove(item:T):boolean; + /** + * The number of elements in this collection. + * @abstract + * @type {number} + */ + size:number; + /** + * Whether this collection is read-only. + * @abstract + * @type {boolean} + */ + isReadOnly:boolean; + } + var ICollection:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A collection of value objects which are mapped to key objects and can be queried using their keys. + *

      + * The keys must have a well defined hashCode method that must not change between registering a value for the key and + * retrieving a value using the key. Thus it is advisable to use stable, i.e. immutable, objects as the key. + *

      + * Type parameter TKey: The type of the keys. + * Type parameter TValue: The type of the values. + * @interface + * @implements {yfiles.collections.ICollection.>} + * @template TKey,TValue + */ + export interface IMap extends Object,yfiles.collections.ICollection>{ + /** + * Removes the key/value pair which is represented by the given key. + * @param key The key of the key/value pair to remove. + * @returns true if a key/value pair with the given key was removed from this collection. + * @abstract + */ + delete(key:TKey):boolean; + /** + * Gets the value of the key/value pair with the given key. *

      - * This only makes a difference when the member value is a container object, such as a collection or map. + * Setter: if there is already a key/value pair with the given key in the dictionary its value will be overridden. If not a + * new key/value pair will be added. + *
      + * Getter: if there is no key/value pair with the given key in this dictionary null will be returned. + *

      + * @param key + * @returns + * @see yfiles.collections.IMap.#set + * @abstract + */ + get(key:TKey):TValue; + /** + * Whether this dictionary's key collection contains the given key. + * @param key The key to search for. + * @returns true if this dictionary contains the given key. + * @abstract + */ + has(key:TKey):boolean; + /** + * Sets the value of the key/value pair with the given key. + *

      + * Setter: if there is already a key/value pair with the given key in the dictionary its value will be overridden. If not a + * new key/value pair will be added. + *
      + * Getter: if there is no key/value pair with the given key in this dictionary null will be returned. + *

      + * @param key + * @param value + * @see yfiles.collections.IMap.#get + * @abstract + */ + set(key:TKey,value:TValue):void; + /** + * A {@link yfiles.collections.ICollection.} of the keys of this dictionary. + * @abstract + * @type {yfiles.collections.ICollection.} + */ + keys:yfiles.collections.ICollection; + /** + * A {@link yfiles.collections.ICollection.} of the values of this dictionary. + * @abstract + * @type {yfiles.collections.ICollection.} + */ + values:yfiles.collections.ICollection; + } + var IMap:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Defines ways to iterate over the items contained in this type by providing a method to get an {@link yfiles.collections.IEnumerator.}. + * Type parameter T: The type of the enumerable objects. + * @interface + * @template T + */ + export interface IEnumerable extends Object{ + /** + * + * @param enumerable + * @returns + */ + concat?(enumerable:yfiles.collections.IEnumerable):yfiles.collections.IEnumerable; + /** + * Returns the element at the given index in the enumerable. + * @param index The index of the element to return. + * @returns The element at the given index. + * @throws {Stubs.Exceptions.ArgumentError} If the index is not within the enumerable's range. + */ + elementAt?(index:number):T; + /** + * Whether all elements of the enumerable match the given predicate. + * @param predicate A function with the signature function(element):boolean which returns true if the element matches a condition. + * @param [thisArg=null] + * @returns Whether all elements of the enumerable match the given predicate. + * @throws {Stubs.Exceptions.ArgumentError} e is null. + * @throws {Stubs.Exceptions.ArgumentError} predicate is null. + */ + every?(predicate:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):boolean; + /** + * Returns an enumerable which only contains elements of the source enumerable which match a given predicate. + * @param predicate A function with the signature function(element):boolean which returns true if the given element should be included in + * the resulting enumerable. + * @param [thisArg=null] + * @returns An enumerable which contains the elements of the source enumeration which match the given predicate. + */ + filter?(predicate:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):yfiles.collections.IEnumerable; + /** + * Returns the first element of the enumerable which matches a given filter. + * @param [predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned + * @param [thisArg=null] + * @returns The first matching element of the enumerable. + * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. + * @throws {Stubs.Exceptions.InvalidOperationError} If the enumerable does not contain a matching element. + */ + first?(predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):T; + /** + * Returns the first element of the enumerable which matches a given filter. + * @param {Object} options The parameters to pass. + * @param [options.predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned + * @param [options.thisArg=null] + * @returns The first matching element of the enumerable. + * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. + * @throws {Stubs.Exceptions.InvalidOperationError} If the enumerable does not contain a matching element. + */ + first?(options:{predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object}):T; + /** + * Returns the first element of the enumerable, the first element of the enumerable which matches a given filter if + * sepcified, or null if there is no such element. + * @param [predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned + * @param [thisArg=null] + * @returns The first element of the enumerable or null. + * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. + */ + firstOrDefault?(predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):T; + /** + * Returns the first element of the enumerable, the first element of the enumerable which matches a given filter if + * sepcified, or null if there is no such element. + * @param {Object} options The parameters to pass. + * @param [options.predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned + * @param [options.thisArg=null] + * @returns The first element of the enumerable or null. + * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. + */ + firstOrDefault?(options:{predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object}):T; + /** + * Iterates over the enumerable and invokes the action for each element passing the value and index as arguments. + * @param action The delegate to call. + * @param [thisArg=null] + */ + forEach?(action:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>void,thisArg?:Object):void; + /** + * Gets an {@link yfiles.collections.IEnumerator.} which can be used to iterate over the items in this instance + * @returns The {@link } which can be used to iterate over the items in this instance + * @abstract + */ + getEnumerator():yfiles.collections.IEnumerator; + /** + * Whether the given value is contained in the enumerable. + * @param value The value to search for. + * @returns true if the enumerable contains the given value. + */ + includes?(value:T):boolean; + /** + * Returns the last element of the enumerable. + * @returns The last element of the enumerable. + * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. + * @throws {Stubs.Exceptions.InvalidOperationError} If the enumerable is empty. + */ + last?():T; + /** + * Returns the last element of the enumerable or null if the enumerable is empty. + * @returns The last element of the enumerable or null. + * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. + */ + lastOrDefault?():T; + /** + * Maps each element of the enumerable into a new element in a new enumerable. + * Type parameter TResult: The type of the mapped elements. + * @param selector A function with the signature function(element, index):TResult which converts each element into a new element of the + * type TResult depending on the element's index. + * @param [thisArg=null] The optional value to use as this when executing the selector. + * @returns A projection of the original enumerable. + * @template TResult + */ + map?(selector:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>TResult,thisArg?:Object):yfiles.collections.IEnumerable; + /** + * Converts a untyped enumerable into an enumerable with the given type. + *

      + * The source enumerable may contain elements which are not of the given type. Those elements will not be contained in the + * returned enumerable. + *

      + * Type parameter TResult. + * @returns A typed enumerable. + * @template TResult + */ + ofType?(resultType:yfiles.lang.Class):yfiles.collections.IEnumerable; + /** + * Applies an func function over the enumerable's elements. + * Type parameter TAccumulate: The type of the accumulated value. + * @param seed The start value for the accumulator. + * @param func A function with the signature function(seed,element):TAccumulate which "adds" (accumulates) a value depending on the + * element to the seed value and returns the result. + * @returns The final value of the accumulator. + * @template TAccumulate + */ + reduce?(seed:TAccumulate,func:(arg1:TAccumulate,arg2:T,arg3:number,arg4:yfiles.collections.IEnumerable)=>TAccumulate):TAccumulate; + /** + * Creates a flattened view of a given enumerable using the given selector function which returns an enumerable for each + * element of the source enumerable. + * Type parameter TResult. + * @param selector A function with the signature function(element):IEnumerable which returns an enumerable for each element of the source + * enumerable. + * @param [thisArg=null] + * @returns A flattened view of the given enumerable. The enumerables which are returned by the selector method for each element are + * concatenated in the result. + * @template TResult + */ + selectMany?(selector:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>yfiles.collections.IEnumerable,thisArg?:Object):yfiles.collections.IEnumerable; + /** + * Whether the enumerable contains any elements matching the given predicate. + * @param [predicate=null] A function with the signature function(element):boolean which returns true if the element matches a condition. + * @param [thisArg=null] + * @returns Whether the enumerable contains any elements matching the given predicate. + * @throws {Stubs.Exceptions.ArgumentError} e is null. + */ + some?(predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):boolean; + /** + * Whether the enumerable contains any elements matching the given predicate. + * @param {Object} options The parameters to pass. + * @param [options.predicate=null] A function with the signature function(element):boolean which returns true if the element matches a condition. + * @param [options.thisArg=null] + * @returns Whether the enumerable contains any elements matching the given predicate. + * @throws {Stubs.Exceptions.ArgumentError} e is null. + */ + some?(options:{predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object}):boolean; + /** + * Calculates the sum of the elements of the enumerable. + * @param selector A function with the signature function(element):Number which returns a numeric value for the given element. + * @param [thisArg=null] + * @returns The sum of the elements of the enumerable. + */ + sum?(selector:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>number,thisArg?:Object):number; + /** + * Returns elements from an enumerable as long as the given predicate is true. + * @param predicate A function with the signature function(element):boolean which returns true as long as the elements should be added to + * the returned enumerable. + * @param [thisArg=null] + * @returns A subset of the original enumerable. + */ + takeWhile?(predicate:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):yfiles.collections.IEnumerable; + /** + * Creates an array with the values of the enumerable. + * @returns An array with the enumerable's elements. + */ + toArray?():T[]; + /** + * Creates a {@link yfiles.collections.List.} with the values of the enumerable. + * @returns An {@link } with the enumerable's elements. + */ + toList?():yfiles.collections.List; + /** + * Returns an enumerable which contains the elements of the original enumerable in reverse order. + * @returns An enumerable which contains the elements of the original enumerable in reverse order. + */ + toReversed?():yfiles.collections.IEnumerable; + /** + * Returns the number of elements contained in the enumerable. + * @type {number} + */ + size?:number; + } + var IEnumerable:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Provides methods to iterate over a collection or list of elements of the same type. + *
      +     * var e = someList.getEnumerator();
      +     * // always move before you access
      +     * while(e.moveNext()) {
      +     *   // get the current element
      +     *   var current = e.current;
      +     * }
      +     * 
      + * + * Type parameter T. + * @interface + * @template T + */ + export interface IEnumerator extends Object{ + /** + * Moves this enumerator to the next element. + *

      + * A newly created enumerator's {@link yfiles.collections.IEnumerator.#current current position} is before the first element. Thus, this method must be called before first + * access to the {@link yfiles.collections.IEnumerator.#current} property. The same applies to the state after calling {@link yfiles.collections.IEnumerator.#reset}. + *

      + * @returns true if the enumerator was moved to a valid position + * @abstract + */ + moveNext():boolean; + /** + * Resets the enumerator to its starting state. + *

      + * In other words: sets the current position before the first element. + *

      + * @abstract + */ + reset():void; + /** + * Gets the element at the enumerator's current position. + *

      + * This value is undefined if the enumerator is in initial state (after creation or + * {@link yfiles.collections.IEnumerator.#reset}) or has been moved past the end of the represented collection. + *

      + * @abstract + * @type {T} + */ + current:T; + } + var IEnumerator:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A read-write collection of objects of the same type. + * Type parameter T: The type of objects in the list. + * @interface + * @implements {yfiles.collections.ICollection.} + * @template T + */ + export interface IList extends Object,yfiles.collections.ICollection{ + /** + * Gets the item at the given index. + * @param index The index of the item to access. + * @returns The item at the given index. + * @see yfiles.collections.IList.#set + * @abstract + */ + get(index:number):T; + /** + * The index of the given item in the list. + * @param item The item to search for. + * @returns The index of the given item in the list. -1 if the item is not in the list. + * @abstract + */ + indexOf(item:T):number; + /** + * Inserts the given item at the given index. + * @param index The index to insert the item at. + * @param item The item to insert. + * @abstract + */ + insert(index:number,item:T):void; + /** + * Removes the item at the given index from the list. + * @param index The index of the item to remove. + * @abstract + */ + removeAt(index:number):void; + /** + * Sets the item at the given index. + * @param index The index of the item to access. + * @param value The item at the given index. + * @see yfiles.collections.IList.#get + * @abstract + */ + set(index:number,value:T):void; + } + var IList:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * The key/value pair of a {@link yfiles.collections.IMap.}. + * Type parameter TKey: The type of the key element. + * Type parameter TValue: The type of the value element. + * @class + * @template TKey,TValue + * @final + */ + export interface MapEntry extends Object{} + export class MapEntry { + /** + * Creates a new instance with the given key and value. + * @param key The key for this pair. + * @param value The value for this pair. + */ + constructor(key:TKey,value:TValue); + /** + * The key for this key/value pair. + * @type {TKey} + */ + key:TKey; + /** + * The value for this key/value pair. + * @type {TValue} + */ + value:TValue; + static $class:yfiles.lang.Class; + } + /** + * Default implementation of {@link yfiles.collections.IList.}. + *

      + * This implementation provides fast random indexed access. However, removing or adding elements from the beginning or in + * the middle of the list will slower. + *

      + * Type parameter T: The type of the list's elements. + * @class + * @implements {yfiles.collections.IList.} + * @template T + */ + export interface List extends Object,yfiles.collections.IList{} + export class List { + /** + * Creates a new instance and fills it with the elements of the given enumerable. + * @param enumerable The enumerable to fill the list with. + */ + constructor(enumerable:yfiles.collections.IEnumerable); + /** + * Creates a new instance. + * @param {Object} [options=null] The parameters to pass. + * @param options.items An array of items which are added to this list. Each item will be added via the {@link #add} method. + */ + constructor(options?:{items?:Array}); + /** + * + * @param item + */ + add(item:T):void; + /** + * Adds the elements of the given collection to this list. + * @param enumerable The collection to add. + */ + addRange(enumerable:yfiles.collections.IEnumerable):void; + /** + * Searches the (sorted) list for the given item. + *

      + * This search is done as a binary search, therefore the list must be sorted. The given comparer is used to compare the + * elements to each other. + *

      + * @param item The item to search for. + * @param comparer The comparer to use for comparing the elements. + * @returns The index of the item in the list. -1 if the item is not found. + */ + binarySearch(item:T,comparer:yfiles.collections.IComparer):number; + /** + * + */ + clear():void; + /** + * + * @param array + * @param arrayIndex + */ + copyTo(array:T[],arrayIndex:number):void; + /** + * Searches the list for the first element for which match returns true. + * @param match A predicate function with the signature function(o:Object):boolean which returns true if o matches the conditions of the + * element to search for. + * @returns The first element for which match returns true or null is no such element in the list. + */ + find(match:(obj:T)=>boolean):T; + /** + * Searches the list for the first element for which match returns true and returns its index. + * @param match A predicate function with the signature function(o:Object):boolean which returns true if o matches the conditions of the + * element to search for. + * @returns The index of the first element for which match returns true or -1 if there is no such element in the list. + */ + findIndex(match:(obj:T)=>boolean):number; + /** + * Creates a new list with the given array used as the live backing store. + *

      + * Modifying the list or the array will modify both instances. + *

      + * @param array The array to create a list view over from. + * @returns A list backed by the given array. + * @static + */ + static fromArray(array:T[]):yfiles.collections.List; + /** + * + * @param index + * @returns + */ + get(index:number):T; + /** + * + * @returns + */ + getEnumerator():yfiles.collections.IEnumerator; + /** + * + * @param item + * @returns + */ + includes(item:T):boolean; + /** + * + * @param item + * @returns + */ + indexOf(item:T):number; + /** + * + * @param index + * @param item + */ + insert(index:number,item:T):void; + /** + * + * @param item + * @returns + */ + remove(item:T):boolean; + /** + * Removes all elements for which match returns true. + * @param match A predicate function with the signature function(o:Object):boolean which returns true if o matches the conditions of the + * element to search for. + * @returns The number of elements which were removed. + */ + removeAll(match:(obj:T)=>boolean):number; + /** + * + * @param index + */ + removeAt(index:number):void; + /** + * Removes a given count of elements starting from the given index. + * @param index The index of the first element to remove. + * @param count The number of elements to remove. + */ + removeRange(index:number,count:number):void; + /** + * Reverses the order of the elements in the list. + */ + reverse():void; + /** + * + * @param index + * @param value + */ + set(index:number,value:T):void; + /** + * Sorts all elements in the list using the given comparison function. + * @param comparison The comparison function to use. + */ + sort(comparison:(arg1:Object,arg2:Object)=>number):void; + /** + * Sorts all elements in the list using the given comparer. + * @param comparer The comparer to use. + */ + sort(comparer:yfiles.collections.IComparer):void; + /** + * Sorts all elements in list using the default comparer. + */ + sort():void; + /** + * Copies the elements of this list into an array. + * @returns An array containing the elements of this list. + */ + toArray():T[]; + /** + * + * @type {number} + */ + size:number; + /** + * + * @type {boolean} + */ + isReadOnly:boolean; + capacity:number; + static $class:yfiles.lang.Class; + } + /** + * Provides a method to compare two objects of the same type. + * Type parameter T: The type of the objects to compare. + * @interface + * @template T + */ + export interface IComparer extends Object{ + /** + * Compares two objects of type T. + * @param x The first object. + * @param y The second object. + * @returns + *
        + *
      • -1: x is less than y
      • + *
      • 0: x is equal to y
      • + *
      • 1: x is greater than y
      • + *
      + * @abstract + */ + compare(x:T,y:T):number; + } + var IComparer:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A simple default implementation of an {@link yfiles.collections.IObservableCollection.} that is backed by an ordinary {@link yfiles.collections.ICollection.} + * Type parameter T: The type of the elements contained in this collection. + * @class + * @implements {yfiles.collections.IObservableCollection.} + * @template T + */ + export interface ObservableCollection extends Object,yfiles.collections.IObservableCollection{} + export class ObservableCollection { + /** + * Creates a new instance using a provided collection as the backing store. + * @param [items=null] The collection to use as the backing store. If no collection is provided a {@link } will be used. + */ + constructor(items?:yfiles.collections.ICollection); + /** + * Adds the item the the collection and triggers the {@link yfiles.collections.ObservableCollection.#addItemAddedListener ItemAdded} event. + *

      + * This implementation calls the {@link yfiles.collections.ObservableCollection.#onItemAdded} method. + *

      + * @param item The item to add to the collection. + */ + add(item:T):void; + /** + * Clears this collection, triggering an {@link yfiles.collections.ObservableCollection.#addItemRemovedListener ItemRemoved} event for each element removed. + * @see yfiles.collections.ObservableCollection.#onItemRemoved + */ + clear():void; + /** + * Copies the items to the given array. + * @param array + * @param arrayIndex + */ + copyTo(array:T[],arrayIndex:number):void; + /** + * Returns an enumerator over the elements in this collection. + * @returns + */ + getEnumerator():yfiles.collections.IEnumerator; + /** + * Checks for containment of the item in this collection. + * @param item The item to check. + * @returns Whether the item is contained in this collection. + */ + includes(item:T):boolean; + /** + * Callback method that will trigger the {@link yfiles.collections.ObservableCollection.#addItemAddedListener ItemAdded} event. + * @param item The item that has just been added to the collection. + * @protected + */ + onItemAdded(item:T):void; + /** + * Callback method that will trigger the {@link yfiles.collections.ObservableCollection.#addItemChangedListener ItemChanged} event. + * @param item The item that has changed. + * @protected + */ + onItemChanged(item:T):void; + /** + * Callback method that will trigger the {@link yfiles.collections.ObservableCollection.#addItemRemovedListener ItemRemoved} event. + * @param item The item that has just been removed from the collection. + * @protected + */ + onItemRemoved(item:T):void; + /** + * Method that may be called by client code to trigger an {@link yfiles.collections.ObservableCollection.#addItemChangedListener ItemChanged} event. + * @param item The item to trigger the change event for. + * @see yfiles.collections.ObservableCollection.#onItemChanged + */ + publishItemChanged(item:T):void; + /** + * Tries to remove the item from the collection and triggers the {@link yfiles.collections.ObservableCollection.#addItemRemovedListener ItemRemoved} event. + * @param item The item to remove. + * @returns Whether the item has been removed. + * @see yfiles.collections.ObservableCollection.#onItemRemoved + */ + remove(item:T):boolean; + /** + * Returns the number of elements in this collection. + * @type {number} + */ + size:number; + /** + * Checks whether this collection is read only. + * @type {boolean} + */ + isReadOnly:boolean; + /** + * Gets the collection used internally as the backing store. + *

      + * Normally code should not use this method to gain access to the collection in order to modify it. + *

      + * @returns The backing store of this observable collection. + * @type {yfiles.collections.ICollection.} + */ + items:yfiles.collections.ICollection; + /** + * Adds the given listener for the ItemAdded event that occurs when an item has been added to this collection. + * @param listener The listener to add. + * @see yfiles.collections.ObservableCollection.#removeItemAddedListener + */ + addItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the ItemAdded event that occurs when an item has been added to this collection. + * @param listener The listener to remove. + * @see yfiles.collections.ObservableCollection.#addItemAddedListener + */ + removeItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. + * @param listener The listener to add. + * @see yfiles.collections.ObservableCollection.#removeItemRemovedListener + */ + addItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. + * @param listener The listener to remove. + * @see yfiles.collections.ObservableCollection.#addItemRemovedListener + */ + removeItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the ItemChanged event that occurs when an item has been changed inside this collection. + * @param listener The listener to add. + * @see yfiles.collections.ObservableCollection.#removeItemChangedListener + */ + addItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the ItemChanged event that occurs when an item has been changed inside this collection. + * @param listener The listener to remove. + * @see yfiles.collections.ObservableCollection.#addItemChangedListener + */ + removeItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + static $class:yfiles.lang.Class; + } + /** + * An {@link yfiles.collections.IMapper.} implementation backed by a {@link yfiles.collections.IMap.}. + *

      + * A {@link yfiles.collections.Mapper.#defaultValue} can be set that is returned for keys that don't have an explicit value set. + *

      + *

      + * It is legal to use null as key, which can be assigned a value just like other keys. + *

      + * Type parameter K. + * Type parameter V. + * @class + * @implements {yfiles.collections.IMapper.} + * @template K,V + * @final + */ + export interface Mapper extends Object,yfiles.collections.IMapper{} + export class Mapper { + /** + * Creates an instance using the provided {@link yfiles.collections.Map.} as the backing store. + *

      + * The value for the null item is stored separately. + *

      + * @param dictionary + */ + constructor(dictionary:yfiles.collections.IMap); + /** + * Creates an instance using the provided {@link yfiles.collections.Map.} as the backing store. + *

      + * The value for the null item is stored separately. + *

      + * @param {Object} options The parameters to pass. + * @param options.dictionary + * @param {V} options.defaultValue The default value to return if no specific value has been set for a given key. + *

      + * This option sets the {@link yfiles.collections.Mapper.#defaultValue} property on the created object. *

      */ - CONTENT + constructor(options:{dictionary:yfiles.collections.IMap,defaultValue?:V}); + /** + * Creates an instance using a {@link yfiles.collections.Map.} as the backing store. + *

      + * The value for the null item is stored separately. + *

      + * @param {Object} [options=null] The parameters to pass. + * @param {V} options.defaultValue The default value to return if no specific value has been set for a given key. + *

      + * This option sets the {@link yfiles.collections.Mapper.#defaultValue} property on the created object. + *

      + */ + constructor(options?:{defaultValue?:V}); + /** + * Calls {@link yfiles.collections.Map.#clear} on the backing implementation. + */ + clear():void; + /** + * + * @param key + */ + delete(key:K):void; + /** + * + * @param key + * @returns + */ + get(key:K):V; + /** + * + * @param key + * @param value + */ + set(key:K,value:V):void; + /** + * Gets an enumerable over all entries in this (dictionary based) mapper. + * @type {yfiles.collections.IEnumerable.>} + */ + entries:yfiles.collections.IEnumerable>; + /** + * Gets or sets the default value to return if no specific value has been set for a given key. + * @type {V} + */ + defaultValue:V; + static $class:yfiles.lang.Class; } + /** + * The interface for a collection that will notify registered event handlers of changes to its contents. + * Type parameter T: The type of the items in the collection. + * @see yfiles.collections.ObservableCollection. + * @interface + * @implements {yfiles.collections.ICollection.} + * @template T + */ + export interface IObservableCollection extends Object,yfiles.collections.ICollection{ + /** + * Adds the given listener for the ItemAdded event that occurs when an item has been added to this collection. + * @param listener The listener to add. + * @see yfiles.collections.IObservableCollection.#removeItemAddedListener + * @abstract + */ + addItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the ItemAdded event that occurs when an item has been added to this collection. + * @param listener The listener to remove. + * @see yfiles.collections.IObservableCollection.#addItemAddedListener + * @abstract + */ + removeItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. + * @param listener The listener to add. + * @see yfiles.collections.IObservableCollection.#removeItemRemovedListener + * @abstract + */ + addItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. + * @param listener The listener to remove. + * @see yfiles.collections.IObservableCollection.#addItemRemovedListener + * @abstract + */ + removeItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the ItemChanged event that occurs when an item in this collection has changed + * significantly. + *

      + * It is up to the implementation whether and when to trigger this event. + *

      + * @param listener The listener to add. + * @see yfiles.collections.IObservableCollection.#removeItemChangedListener + * @abstract + */ + addItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the ItemChanged event that occurs when an item in this collection has changed + * significantly. + *

      + * It is up to the implementation whether and when to trigger this event. + *

      + * @param listener The listener to remove. + * @see yfiles.collections.IObservableCollection.#addItemChangedListener + * @abstract + */ + removeItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + } + var IObservableCollection:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An extension to the {@link yfiles.collections.IEnumerable.} interface that allows for indexed access and retrieval of the element count. + *

      + * This interface is like a rudimentary read-only {@link yfiles.collections.IList.} + *

      + * Type parameter T: The type of the contained elements. + * @interface + * @implements {yfiles.collections.IEnumerable.} + * @template T + */ + export interface IListEnumerable extends Object,yfiles.collections.IEnumerable{ + /** + * Gets the i-th element in the collection. + * @param i the zero-based index of the item in this collection + * @returns the item for the given index + * @throws {Stubs.Exceptions.ArgumentError} i is not a valid index in the {@link yfiles.collections.IListEnumerable.}. + * @abstract + */ + get(i:number):T; + /** + * Gets the number of elements in this collection. + * @abstract + * @type {number} + */ + size:number; + } + var IListEnumerable:{ + /** + * An empty, immutable instance of {@link yfiles.collections.IListEnumerable.}. + * @const + * @static + * @type {yfiles.collections.IListEnumerable.} + */ + EMPTY?:yfiles.collections.IListEnumerable; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Wraps a simple {@link yfiles.collections.IEnumerable.} into a {@link yfiles.collections.IListEnumerable.}. + *

      + * This implementation is optimized for {@link yfiles.collections.IList.} and {@link yfiles.collections.ICollection.}, as well as {@link Object} {@link yfiles.collections.IEnumerable.}s. + *

      + * Type parameter T: The type of the enumerable. + * @class + * @implements {yfiles.collections.IListEnumerable.} + * @template T + * @final + */ + export interface ListEnumerable extends Object,yfiles.collections.IListEnumerable{} + export class ListEnumerable { + /** + * Creates a new instance using the given backing enumerable. + * @param backingEnumerable The enumerable to back this instance. + */ + constructor(backingEnumerable:yfiles.collections.IEnumerable); + /** + * Creates a new instance with a backing {@link yfiles.collections.List.} as the backing store. + */ + constructor(); + /** + * + * @param i + * @returns + */ + get(i:number):T; + /** + * + * @returns + */ + getEnumerator():yfiles.collections.IEnumerator; + /** + * Gets the backing enumerable. + * @type {yfiles.collections.IEnumerable.} + */ + backingEnumerable:yfiles.collections.IEnumerable; + /** + * + * @type {number} + */ + size:number; + static $class:yfiles.lang.Class; + } + /** + * Event argument class used by {@link yfiles.collections.IObservableCollection.} and similar that holds a specific item that is related to the event. + * Type parameter T: The type of the item contained in the event. + * @class + * @extends {yfiles.lang.EventArgs} + * @template T + */ + export interface ItemEventArgs extends yfiles.lang.EventArgs{} + export class ItemEventArgs { + /** + * Creates a new event argument for the given item. + * @param item The item which is the subject of the event. + */ + constructor(item:T); + /** + * Gets the item that is the subject of the event. + * @type {T} + */ + item:T; + static $class:yfiles.lang.Class; + } + /** + * An interface for simple typed dictionary-like implementations. + *

      + * {@link yfiles.collections.IMapper.}s are most prominently used when interfacing with {@link yfiles.layout.ILayoutAlgorithm layout algorithms} and {@link yfiles.graphml.GraphMLIOHandler GraphML}. {@link yfiles.graph.IGraph} also provides the {@link yfiles.graph.IGraph#mapperRegistry} + * to add additional information to a graph. + *

      + * Type parameter K: The type of element this interface accepts as keys for the mapping. + * Type parameter V: The type of element this interface accepts as values for the mapping. + *

      + * Using {@link yfiles.collections.IMapper.} is described in the section {@link @DGUIDE_PREFIX@/customizing_graph-binding_data.html Associating Data with Graph Elements}. + *

      + *

      Related demos:

      + *
        + *
      • Demo: DragAndDropForm, demo.yfiles.input.draganddrop
      • + *
      + * @see yfiles.collections.Mapper. + * @interface + * @template K,V + */ + export interface IMapper extends Object{ + /** + * Gets the value for a given key in the mapping. + *

      + * Setting a value for an already existing key overwrites the previous value. + *

      + *

      + * It depends on the specific implementation of the mapper whether a mapping can be removed. If an implementation provides + * a way to remove a mapping, that should be preferred over setting a null value. For example, {@link yfiles.collections.Mapper.} provides the {@link yfiles.collections.Mapper.#delete} + * method. + *

      + * @param key The key of the mapping. + * @returns The value. + * @see yfiles.collections.IMapper.#set + * @abstract + */ + get(key:K):V; + /** + * Sets the value for a given key in the mapping. + *

      + * Setting a value for an already existing key overwrites the previous value. + *

      + *

      + * It depends on the specific implementation of the mapper whether a mapping can be removed. If an implementation provides + * a way to remove a mapping, that should be preferred over setting a null value. For example, {@link yfiles.collections.Mapper.} provides the {@link yfiles.collections.Mapper.#delete} + * method. + *

      + * @param key The key of the mapping. + * @param value The value. + * @see yfiles.collections.IMapper.#get + * @abstract + */ + set(key:K,value:V):void; + } + var IMapper:{ + /** + * Creates a constant mapper that will always return the constant. + * Type parameter K: The type of the key to use. + * Type parameter V: The type of the value to use. + * @param constant The constant to return in {@link #get} + * @returns A new instance that will always return the same constant. + * @template K,V + * @static + */ + fromConstant?(constant:V):yfiles.collections.IMapper; + /** + * Create an implementation of {@link yfiles.collections.IMapper.} that delegates {@link yfiles.collections.IMapper.#get} getter calls to the provided handler. + *

      + * The implementation returned silently ignores calls to the {@link yfiles.collections.IMapper.#get} setter. + *

      + * Type parameter K: The type of the key to use. + * Type parameter V: The type of the value to use. + * @param getter The delegate to delegate {@link #get} getter calls to. + * @returns An implementation that delegates to getter. + * @template K,V + * @static + */ + fromDelegate?(getter:(key:K)=>V):yfiles.collections.IMapper; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + }export namespace graphml{ export interface XmlName extends Object{} export class XmlName { /** * Initializes a new instance of the {@link yfiles.graphml.XmlName} class. - * @param {string} localName The local name of the element. - * @param {string} ns The namespace it belongs to. - * @constructor + * @param localName The local name of the element. + * @param ns The namespace it belongs to. */ constructor(localName:string,ns:string); /** @@ -1081,8 +2284,8 @@ declare namespace system{ * it will be split at the "}" character and the first part will be used as the namespace URI, the second part as the local * name. If no "}" character is used in the input then it will be assumed that the input consists of the local name only. *

      - * @param {string} expandedName Name of the expanded. - * @returns {yfiles.graphml.XmlName} The result of the conversion. + * @param expandedName Name of the expanded. + * @returns The result of the conversion. * @static */ static convertFrom(expandedName:string):yfiles.graphml.XmlName; @@ -1101,7 +2304,7 @@ declare namespace system{ export enum XamlAttributeWritePolicy{ /** * Specifies that the write mode of a member should be determined automatically according to the current property value and - * the presence of {@link yfiles.support.TypeConverter}s, {@link yfiles.graphml.ValueSerializer}s and the like. + * the presence of {@link yfiles.graphml.ValueSerializer}s or implementations of {@link yfiles.graphml.IMarkupExtensionConverter}s. *

      * Usually, an implementation would write the member as attribute if the content can somehow be (directly or indirectly) * converted to a valid XML attribute content (i.e. a simple string) @@ -1138,6 +2341,20 @@ declare namespace system{ */ ALWAYS } + export enum GraphMLMemberVisibility{ + /** + * The member is treated according to the normal XAML serialization rules. + */ + VISIBLE, + /** + * Only the content of a member value is read or written, without an enclosing explicit container object. + */ + CONTENT, + /** + * The member is ignored by GraphML. + */ + HIDDEN + } export enum UndefinedHandling{ /** * Explicitly read and write undefined values. @@ -1167,7 +2384,7 @@ declare namespace system{ * handle legacy serialization. *

      * @see yfiles.graphml.XamlSerializer - * @class yfiles.graphml.GraphMLAttribute + * @class * @extends {yfiles.lang.Attribute} */ export interface GraphMLAttribute extends yfiles.lang.Attribute{} @@ -1264,14 +2481,16 @@ declare namespace system{ */ contentProperty:string; /** - * Gets or sets the type of the value serializer implementation. + * Gets or sets the type of the {@link yfiles.graphml.GraphMLAttribute#valueSerializer} implementation. * @type {yfiles.lang.Class} */ valueSerializer:yfiles.lang.Class; /** * Gets or sets a custom {@link yfiles.graphml.IMarkupExtensionConverter} for attribute serialization. *

      - * The specified type must implement {@link yfiles.graphml.IMarkupExtensionConverter}. + * The specialized {@link yfiles.graphml.XamlSerializer} will evaluate this attribute to override its built in mechanism to lookup + * an {@link yfiles.graphml.IMarkupExtensionConverter} for an object. The specified type must implement + * {@link yfiles.graphml.IMarkupExtensionConverter}. *

      * @see yfiles.graphml.XamlSerializer * @see yfiles.graphml.IMarkupExtensionConverter @@ -1281,8 +2500,20 @@ declare namespace system{ /** * Types that should be searched for static field or property members of the annotated type. *

      - * This property is ignored if the attribute targets a member declaration. + * When a type is annotated with this attribute, all types in the {@link yfiles.graphml.GraphMLAttribute#singletonContainers} array are searched for public static fields or + * properties that have the annotated type. The GraphML writer will write these members as StaticExtensions instead of the + * usual serialization. This property is ignored if the attribute targets a member declaration. *

      + *

      + * Using the following annotation + *

      + *

      + * has the effect that all references to field ContainedTypeSingleton will be written as static extensions, e.g. + *

      + *
      +       * {x:Static myNSDeclarationPrefix:ContainingType.ContainedTypeSingleton}
      +       * 
      + * * @type {Array.} */ singletonContainers:yfiles.lang.Class[]; @@ -1296,175 +2527,6 @@ declare namespace system{ defaultValue:Object; static $class:yfiles.lang.Class; } - /** - * A helper holder class that can contain a {@link yfiles.graphml.Future.#value} of a specific type. - *

      - * Typically {@link yfiles.graphml.Future.#hasValue} will be false until at a later point in time {@link yfiles.graphml.Future.#onValueDetermined} is called and the {@link yfiles.graphml.Future.#value} and {@link yfiles.graphml.Future.#hasValue} properties are being - * updated and the {@link yfiles.graphml.Future.#addPropertyChangedListener PropertyChanged} event is triggered. - *

      - * Type parameter T: The type of the {@link yfiles.graphml.Future.#value} - * @class yfiles.graphml.Future. - * @implements {yfiles.lang.IPropertyObservable} - * @template T - * @final - */ - export interface Future extends Object,yfiles.lang.IPropertyObservable{} - export class Future { - /** - * Called when the {@link yfiles.graphml.Future.#value} property of this future has been determined. - *

      - * This will set the {@link yfiles.graphml.Future.#hasValue} property to true and assign the {@link yfiles.graphml.Future.#value} property. Also the corresponding {@link yfiles.graphml.Future.#addPropertyChangedListener PropertyChanged} events - * will be triggered if necessary. - *

      - * @param {T} value The value. - */ - onValueDetermined(value:T):void; - /** - * The value of this future, which may only be queried if {@link yfiles.graphml.Future.#hasValue} yields true. - * @throws {Stubs.Exceptions.InvalidOperationError} If this property is queried although {@link yfiles.graphml.Future.#hasValue} returns false. - * @type {T} - */ - value:T; - /** - * Gets a value indicating whether this instance has been {@link yfiles.graphml.Future.#onValueDetermined assigned} a {@link yfiles.graphml.Future.#value}. - * @type {boolean} - */ - hasValue:boolean; - /** - * Adds the given listener for the PropertyChanged event that occurs when a property value changes. - *

      - * This event will be triggered for {@link yfiles.graphml.Future.#hasValue} changes and changes of the {@link yfiles.graphml.Future.#value} property. Note that if the determined future value is the - * same as the default, the event will only be triggered for the {@link yfiles.graphml.Future.#hasValue} property. - *

      - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. - * @see yfiles.graphml.Future.#removePropertyChangedListener - */ - addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Removes the given listener for the PropertyChanged event that occurs when a property value changes. - *

      - * This event will be triggered for {@link yfiles.graphml.Future.#hasValue} changes and changes of the {@link yfiles.graphml.Future.#value} property. Note that if the determined future value is the - * same as the default, the event will only be triggered for the {@link yfiles.graphml.Future.#hasValue} property. - *

      - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. - * @see yfiles.graphml.Future.#addPropertyChangedListener - */ - removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - static $class:yfiles.lang.Class; - } - /** - * Support interface used by {@link yfiles.graphml.ValueSerializer}. - * @interface - * @implements {yfiles.graph.ILookup} - */ - export interface IValueSerializerContext extends Object,yfiles.graph.ILookup{ - /** - * Gets the value serializer for a specific {@link yfiles.graphml.Property}. - * @param {yfiles.graphml.Property} property The descriptor of the property. - * @returns {yfiles.graphml.ValueSerializer} A serializer or null. - * @abstract - */ - getValueSerializerFor(property:yfiles.graphml.Property):yfiles.graphml.ValueSerializer; - /** - * Gets the value serializer for a specific type. - * @param {yfiles.lang.Class} type The type to obtain a serializer for. - * @returns {yfiles.graphml.ValueSerializer} A serializer or null. - * @abstract - */ - getValueSerializerFor(type:yfiles.lang.Class):yfiles.graphml.ValueSerializer; - } - var IValueSerializerContext:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Provides a base class for all XAML markup extensions. - *

      - * Markup extensions return objects based on string attribute values or markup elements in XAML and/or can be used to - * serialize classes that do not fulfil XAML serialization constraints. - *

      - * @class yfiles.graphml.MarkupExtension - */ - export interface MarkupExtension extends Object{} - export class MarkupExtension { - /** - * Returns an object that is set as the value of the target property for this markup extension. - * @param {yfiles.graph.ILookup} serviceProvider Object that can provide services for the markup extension. - * @returns {Object} The object value to set on the property where the extension is applied. - * @abstract - */ - provideValue(serviceProvider:yfiles.graph.ILookup):Object; - static $class:yfiles.lang.Class; - } - /** - * Helper classes used during the XAML serialization of instances. - *

      - * Using this class instances can be written in xml attributes as strings. - *

      - * @class yfiles.graphml.ValueSerializer - */ - export interface ValueSerializer extends Object{} - export class ValueSerializer { - /** - * Determines whether this instance can convert the specified value from the given string. - * @param {string} value The string value to convert. - * @param {yfiles.graphml.IValueSerializerContext} context The context. - * @returns {boolean} true if this instance can convert the specified value from the string; otherwise, false. - */ - canConvertFromString(value:string,context:yfiles.graphml.IValueSerializerContext):boolean; - /** - * Determines whether this instance can convert the specified value to a string. - * @param {Object} value The value. - * @param {yfiles.graphml.IValueSerializerContext} context The context. - * @returns {boolean} true if this instance can convert the specified value to a string; otherwise, false. - */ - canConvertToString(value:Object,context:yfiles.graphml.IValueSerializerContext):boolean; - /** - * Converts the string to an appropriate instance. - * @param {string} value The value to convert to an object. - * @param {yfiles.graphml.IValueSerializerContext} context The context. - * @returns {Object} The converted object - */ - convertFromString(value:string,context:yfiles.graphml.IValueSerializerContext):Object; - /** - * Converts the given value to string. - * @param {Object} o The value. - * @param {yfiles.graphml.IValueSerializerContext} context The context. - * @returns {string} The value as string representation. - */ - convertToString(o:Object,context:yfiles.graphml.IValueSerializerContext):string; - /** - * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given type. - * @param {yfiles.lang.Class} type The type. - * @param {yfiles.graphml.IValueSerializerContext} context The context. - * @returns {yfiles.graphml.ValueSerializer} The serializer to use for the type. - * @static - */ - static getSerializerFor(type:yfiles.lang.Class,context:yfiles.graphml.IValueSerializerContext):yfiles.graphml.ValueSerializer; - /** - * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given descriptor. - * @param {yfiles.graphml.Property} property The descriptor. - * @param {yfiles.graphml.IValueSerializerContext} context The context. - * @returns {yfiles.graphml.ValueSerializer} The serializer to use for the descriptor. - * @static - */ - static getSerializerFor(property:yfiles.graphml.Property,context:yfiles.graphml.IValueSerializerContext):yfiles.graphml.ValueSerializer; - /** - * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given descriptor. - * @param {yfiles.graphml.Property} property The descriptor. - * @returns {yfiles.graphml.ValueSerializer} The serializer to use for the type. - * @static - */ - static getSerializerFor(property:yfiles.graphml.Property):yfiles.graphml.ValueSerializer; - /** - * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given type. - * @param {yfiles.lang.Class} type The type. - * @returns {yfiles.graphml.ValueSerializer} The serializer to use for the type. - * @static - */ - static getSerializerFor(type:yfiles.lang.Class):yfiles.graphml.ValueSerializer; - static $class:yfiles.lang.Class; - } export enum KeyType{ /** * Identifier for attribute of type int. @@ -1539,9 +2601,9 @@ declare namespace system{ * virtually all cases. *

      * Type parameter T: The desired target type. - * @param {yfiles.lang.Class} targetType The desired target type. - * @param {Node} targetNode The XML node that should be deserialized. - * @returns {T} an instance of T or null. + * @param targetType The desired target type. + * @param targetNode The XML node that should be deserialized. + * @returns an instance of T or null. * @throws {yfiles.graphml.DeserializationNotSupportedError} * @see yfiles.graphml.IParseContext#deserializeCore * @template T @@ -1554,11 +2616,10 @@ declare namespace system{ * correct context instance is used. *

      * Type parameter T: The expected return type. - * @param {yfiles.lang.Class} targetType The expected return type. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {Node} targetNode The XML node that should be deserialized. - * @returns {T} The deserialized object from targetNode or an {@link yfiles.graphml.DeserializationNotSupportedError} if targetNode could not be - * deserialized. + * @param targetType The expected return type. + * @param context The current parse context. + * @param targetNode The XML node that should be deserialized. + * @returns The deserialized object from targetNode or an {@link } if targetNode could not be deserialized. * @see yfiles.graphml.IParseContext#deserialize * @template T * @abstract @@ -1568,16 +2629,16 @@ declare namespace system{ * Returns the most current (the last element) within the container hierarchy as it is returned by {@link yfiles.graphml.IParseContext#objectStack} or default(T) if the * most current element is not of the desired target type. * Type parameter T: The desired target type. - * @param {yfiles.lang.Class} itemType The desired target type. - * @returns {T} the most current element within the container hierarchy or default(T). + * @param itemType The desired target type. + * @returns the most current element within the container hierarchy or default(T). * @template T * @abstract */ getCurrent(itemType:yfiles.lang.Class):T; /** * Get a property value that specifies information about how to handle specific cases. - * @param {string} key The identifier for the property - * @returns {Object} The property value, or null if no such property exists. + * @param key The identifier for the property + * @returns The property value, or null if no such property exists. * @abstract */ getDeserializationProperty(key:string):Object; @@ -1624,7 +2685,7 @@ declare namespace system{ *

      * This event is triggered when the document element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeDocumentParsingListener * @abstract */ @@ -1634,7 +2695,7 @@ declare namespace system{ *

      * This event is triggered when the document element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addDocumentParsingListener * @abstract */ @@ -1644,7 +2705,7 @@ declare namespace system{ *

      * This event is triggered when the document has been fully parsed. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeDocumentParsedListener * @abstract */ @@ -1654,7 +2715,7 @@ declare namespace system{ *

      * This event is triggered when the document has been fully parsed. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addDocumentParsedListener * @abstract */ @@ -1664,7 +2725,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'node' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeNodeParsingListener * @abstract */ @@ -1674,7 +2735,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'node' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addNodeParsingListener * @abstract */ @@ -1684,7 +2745,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'node' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeNodeParsedListener * @abstract */ @@ -1694,7 +2755,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'node' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addNodeParsedListener * @abstract */ @@ -1704,7 +2765,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'edge' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeEdgeParsingListener * @abstract */ @@ -1714,7 +2775,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'edge' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addEdgeParsingListener * @abstract */ @@ -1724,7 +2785,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'edge' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeEdgeParsedListener * @abstract */ @@ -1734,7 +2795,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'edge' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addEdgeParsedListener * @abstract */ @@ -1744,7 +2805,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'port' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removePortParsingListener * @abstract */ @@ -1754,7 +2815,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'port' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addPortParsingListener * @abstract */ @@ -1764,7 +2825,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'port' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removePortParsedListener * @abstract */ @@ -1774,7 +2835,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'port' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addPortParsedListener * @abstract */ @@ -1784,7 +2845,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graph' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeGraphParsingListener * @abstract */ @@ -1794,7 +2855,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graph' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addGraphParsingListener * @abstract */ @@ -1804,7 +2865,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graph' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeGraphParsedListener * @abstract */ @@ -1814,7 +2875,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graph' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addGraphParsedListener * @abstract */ @@ -1824,7 +2885,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graphml' root-element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeGraphMLParsingListener * @abstract */ @@ -1834,7 +2895,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graphml' root-element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addGraphMLParsingListener * @abstract */ @@ -1844,7 +2905,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graphml' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeGraphMLParsedListener * @abstract */ @@ -1854,7 +2915,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'graphml' closing tag has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addGraphMLParsedListener * @abstract */ @@ -1864,7 +2925,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'data' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeDataParsingListener * @abstract */ @@ -1874,7 +2935,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'data' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addDataParsingListener * @abstract */ @@ -1884,7 +2945,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'data' element has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeDataParsedListener * @abstract */ @@ -1894,7 +2955,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'data' element has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addDataParsedListener * @abstract */ @@ -1904,7 +2965,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'key' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeKeyParsingListener * @abstract */ @@ -1914,7 +2975,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'key' element has been encountered. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addKeyParsingListener * @abstract */ @@ -1924,7 +2985,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'key' element has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IParseEvents#removeKeyParsedListener * @abstract */ @@ -1934,7 +2995,7 @@ declare namespace system{ *

      * This event is triggered when a GraphML 'key' element has been handled. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IParseEvents#addKeyParsedListener * @abstract */ @@ -1950,16 +3011,15 @@ declare namespace system{ *

      * This class holds a reference to the {@link yfiles.graphml.ParseEventArgs#context parse context} and the {@link yfiles.graphml.ParseEventArgs#element} that is currently being parsed. *

      - * @class yfiles.graphml.ParseEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface ParseEventArgs extends yfiles.lang.EventArgs{} export class ParseEventArgs { /** * Initializes a new instance of the {@link yfiles.graphml.ParseEventArgs} class. - * @param {yfiles.graphml.IParseContext} context The context to assign to {@link yfiles.graphml.ParseEventArgs#context}. - * @param {Element} element The XML element to assign to {@link yfiles.graphml.ParseEventArgs#element}. - * @constructor + * @param context The context to assign to {@link #context}. + * @param element The XML element to assign to {@link #element}. */ constructor(context:yfiles.graphml.IParseContext,element:Element); /** @@ -1976,15 +3036,14 @@ declare namespace system{ } /** * A data holder for use in the {@link yfiles.graphml.IOutputHandler} interface that encapsulates an XML attribute. - * @class yfiles.graphml.GraphMLXmlAttribute + * @class */ export interface GraphMLXmlAttribute extends Object{} export class GraphMLXmlAttribute { /** * Initializes a new instance of the {@link yfiles.graphml.GraphMLXmlAttribute} class. - * @param {yfiles.graphml.XmlName} name The attribute name. - * @param {string} value The value. - * @constructor + * @param name The attribute name. + * @param value The value. */ constructor(name:yfiles.graphml.XmlName,value:string); /** @@ -2007,8 +3066,8 @@ declare namespace system{ /** * Determines whether in the current context, the value is the default value and therefore no data element needs to be * written. - * @param {yfiles.graphml.IWriteContext} context The context. - * @returns {boolean} true if for the current context the default value applies and therefore no data element needs to be written. + * @param context The context. + * @returns true if for the current context the default value applies and therefore no data element needs to be written. * @abstract */ isDefaultValue(context:yfiles.graphml.IWriteContext):boolean; @@ -2018,7 +3077,7 @@ declare namespace system{ * At the time this method is called, the surrounding 'key' element has already been written. However no 'default' element * is written by the framework. *

      - * @param {yfiles.graphml.IWriteContext} context The context. + * @param context The context. * @abstract */ writeKeyDefinitionContent(context:yfiles.graphml.IWriteContext):void; @@ -2027,7 +3086,7 @@ declare namespace system{ *

      * At the time this method is called, the surrounding 'data' element has already been written. *

      - * @param {yfiles.graphml.IWriteContext} context The context. + * @param context The context. * @abstract */ writeValue(context:yfiles.graphml.IWriteContext):void; @@ -2087,16 +3146,16 @@ declare namespace system{ * Returns the most current (the last element) within the container hierarchy as it is returned by {@link yfiles.graphml.IWriteContext#objectStack} or default(T) if the * most current element is not of the desired target type. * Type parameter T: The desired target type. - * @param {yfiles.lang.Class} itemType The desired target type. - * @returns {T} the most current element within the container hierarchy or default(T). + * @param itemType The desired target type. + * @returns the most current element within the container hierarchy or default(T). * @template T * @abstract */ getCurrent(itemType:yfiles.lang.Class):T; /** * Get a property value that specifies information about how to handle specific cases - * @param {string} key The identifier for the property - * @returns {Object} The property value, or null if no such property exists + * @param key The identifier for the property + * @returns The property value, or null if no such property exists * @abstract */ getSerializationProperty(key:string):Object; @@ -2106,8 +3165,8 @@ declare namespace system{ * item should be assignable to type t. This method simply delegates to * {@link yfiles.graphml.IWriteContext#serializeCore}, using the correct type parameter. *

      - * @param {Object} item The item to serialize. - * @param {yfiles.lang.Class} t The type the item is known to be of at deserialization time. + * @param item The item to serialize. + * @param t The type the item is known to be of at deserialization time. */ serialize?(item:Object,t:yfiles.lang.Class):void; /** @@ -2117,8 +3176,8 @@ declare namespace system{ * virtually all cases. *

      * Type parameter T: The type of the object that is serialized. - * @param {yfiles.lang.Class} targetType The type of the object that is serialized. - * @param {T} item The object that should be serialized. + * @param targetType The type of the object that is serialized. + * @param item The object that should be serialized. * @throws {yfiles.graphml.SerializationNotSupportedError} * @see yfiles.graphml.IWriteContext#serializeCore * @template T @@ -2131,9 +3190,9 @@ declare namespace system{ * correct context instance is used. *

      * Type parameter T: The type of the object that is serialized. - * @param {yfiles.lang.Class} targetType The type of the object that is serialized. - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @param {T} item The object that should be serialized. + * @param targetType The type of the object that is serialized. + * @param context The current write context. + * @param item The object that should be serialized. * @throws {yfiles.graphml.SerializationNotSupportedError} * @see yfiles.graphml.IWriteContext#serialize * @template T @@ -2147,8 +3206,8 @@ declare namespace system{ * or similar replacement mechanisms. *

      * Type parameter T: The type of the object that is serialized. - * @param {Object} originalItem The original object that should be serialized. - * @param {T} replacement The replacement object that will actually be serialized instead. + * @param originalItem The original object that should be serialized. + * @param replacement The replacement object that will actually be serialized instead. * @throws {yfiles.graphml.SerializationNotSupportedError} * @see yfiles.graphml.IWriteContext#serializeCore * @template T @@ -2200,7 +3259,7 @@ declare namespace system{ /** * Adds the given listener for the DocumentWriting event that occurs just after the {@link yfiles.graphml.IXmlWriter#writeStartDocument} * has been called. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeDocumentWritingListener * @abstract */ @@ -2208,7 +3267,7 @@ declare namespace system{ /** * Removes the given listener for the DocumentWriting event that occurs just after the {@link yfiles.graphml.IXmlWriter#writeStartDocument} * has been called. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addDocumentWritingListener * @abstract */ @@ -2216,7 +3275,7 @@ declare namespace system{ /** * Adds the given listener for the DocumentWritten event that occurs just before the {@link yfiles.graphml.IXmlWriter#writeEndDocument} * will be called. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeDocumentWrittenListener * @abstract */ @@ -2224,7 +3283,7 @@ declare namespace system{ /** * Removes the given listener for the DocumentWritten event that occurs just before the {@link yfiles.graphml.IXmlWriter#writeEndDocument} * will be called. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addDocumentWrittenListener * @abstract */ @@ -2236,7 +3295,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeNodeWritingListener * @abstract */ @@ -2248,7 +3307,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addNodeWritingListener * @abstract */ @@ -2259,7 +3318,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the node element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeNodeWrittenListener * @abstract */ @@ -2270,7 +3329,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the node element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addNodeWrittenListener * @abstract */ @@ -2282,7 +3341,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeEdgeWritingListener * @abstract */ @@ -2294,7 +3353,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addEdgeWritingListener * @abstract */ @@ -2305,7 +3364,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the edge element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeEdgeWrittenListener * @abstract */ @@ -2316,7 +3375,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the edge element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addEdgeWrittenListener * @abstract */ @@ -2328,7 +3387,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removePortWritingListener * @abstract */ @@ -2340,7 +3399,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addPortWritingListener * @abstract */ @@ -2351,7 +3410,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the port element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removePortWrittenListener * @abstract */ @@ -2362,7 +3421,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the port element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addPortWrittenListener * @abstract */ @@ -2374,7 +3433,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeGraphWritingListener * @abstract */ @@ -2386,7 +3445,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addGraphWritingListener * @abstract */ @@ -2397,7 +3456,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the graph element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeGraphWrittenListener * @abstract */ @@ -2408,7 +3467,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the graph element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addGraphWrittenListener * @abstract */ @@ -2420,7 +3479,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeGraphMLWritingListener * @abstract */ @@ -2432,7 +3491,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addGraphMLWritingListener * @abstract */ @@ -2443,7 +3502,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the graphml element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeGraphMLWrittenListener * @abstract */ @@ -2454,7 +3513,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the graphml element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addGraphMLWrittenListener * @abstract */ @@ -2466,7 +3525,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeDataWritingListener * @abstract */ @@ -2478,7 +3537,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addDataWritingListener * @abstract */ @@ -2489,7 +3548,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the data element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeDataWrittenListener * @abstract */ @@ -2500,7 +3559,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the data element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addDataWrittenListener * @abstract */ @@ -2512,7 +3571,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeKeyWritingListener * @abstract */ @@ -2524,7 +3583,7 @@ declare namespace system{ * At that state, callees can use the {@link yfiles.graphml.IXmlWriter#writeAttributeNS} methods to add custom attributes to the * XML element or write a first custom inner element using {@link yfiles.graphml.IXmlWriter#writeStartElement} *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addKeyWritingListener * @abstract */ @@ -2535,7 +3594,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the key element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.IWriteEvents#removeKeyWrittenListener * @abstract */ @@ -2546,7 +3605,7 @@ declare namespace system{ *

      * This can be used to append more custom elements to the key element. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.IWriteEvents#addKeyWrittenListener * @abstract */ @@ -2571,7 +3630,7 @@ declare namespace system{ flushDocument():void; /** * Gets a text representation of all content that has been written so far. - * @returns {string} + * @returns * @abstract */ getXmlString():string; @@ -2580,9 +3639,9 @@ declare namespace system{ *

      * The attribute is not bound to a XML namespace. *

      - * @param {string} localName The name of the attribute. - * @param {string} value The value of the attribute. - * @returns {yfiles.graphml.IXmlWriter} The writer instance writer for writer chaining. + * @param localName The name of the attribute. + * @param value The value of the attribute. + * @returns The writer instance writer for writer chaining. */ writeAttribute?(localName:string,value:string):yfiles.graphml.IXmlWriter; /** @@ -2592,32 +3651,32 @@ declare namespace system{ * or {@link yfiles.graphml.IXmlWriter#writeStartElement}. Note that namespace declarations should not be written directly as * attributes. Instead the {@link yfiles.graphml.IXmlWriter#namespaceManager} should be used. *

      - * @param {string} prefix The namespace prefix of the attribute - * @param {string} localName The local name of the attribute - * @param {string} ns The namespace URI of this attribute - * @param {string} value The value of this attribute - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param prefix The namespace prefix of the attribute + * @param localName The local name of the attribute + * @param ns The namespace URI of this attribute + * @param value The value of this attribute + * @returns The writer instance for further chaining * @abstract */ writeAttributeNS(prefix:string,localName:string,ns:string,value:string):yfiles.graphml.IXmlWriter; /** * Write a CDATA section. - * @param {string} content The content of the CDATA section - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param content The content of the CDATA section + * @returns The writer instance for further chaining * @abstract */ writeCData(content:string):yfiles.graphml.IXmlWriter; /** * Write a XML comment node - * @param {string} comment The content of the comment - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param comment The content of the comment + * @returns The writer instance for further chaining * @abstract */ writeComment(comment:string):yfiles.graphml.IXmlWriter; /** * Write a document fragment - * @param {Document} fragment - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param fragment + * @returns The writer instance for further chaining * @abstract */ writeDocumentFragment(fragment:Document):yfiles.graphml.IXmlWriter; @@ -2632,27 +3691,27 @@ declare namespace system{ /** * Close a XML element previously opened with {@link yfiles.graphml.IXmlWriter#writeStartElement} or * {@link yfiles.graphml.IXmlWriter#writeStartElement}. - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @returns The writer instance for further chaining * @abstract */ writeEndElement():yfiles.graphml.IXmlWriter; /** * Write an XML attribute from the given attribute struct. - * @param {yfiles.graphml.GraphMLXmlAttribute} attribute Encapsulates the current attribute values. - * @returns {yfiles.graphml.IXmlWriter} The writer instance writer for writer chaining. + * @param attribute Encapsulates the current attribute values. + * @returns The writer instance writer for writer chaining. */ writeGraphMLXmlAttribute?(attribute:yfiles.graphml.GraphMLXmlAttribute):yfiles.graphml.IXmlWriter; /** * Write a xml processing instruction. - * @param {string} target The target of the PI - * @param {string} data The data of the PI - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param target The target of the PI + * @param data The data of the PI + * @returns The writer instance for further chaining * @abstract */ writeProcessingInstruction(target:string,data:string):yfiles.graphml.IXmlWriter; /** * Begin the output process - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @returns The writer instance for further chaining * @abstract */ writeStartDocument():yfiles.graphml.IXmlWriter; @@ -2662,10 +3721,10 @@ declare namespace system{ * All subsequent output is attached to this element until {@link yfiles.graphml.IXmlWriter#writeEndElement} has been called or a * new element has been started. *

      - * @param {string} prefix The namespace prefix to use for this element - * @param {string} localName The local name of this element - * @param {string} ns The namespace of this element - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param prefix The namespace prefix to use for this element + * @param localName The local name of this element + * @param ns The namespace of this element + * @returns The writer instance for further chaining * @abstract */ writeStartElement(prefix:string,localName:string,ns:string):yfiles.graphml.IXmlWriter; @@ -2678,9 +3737,9 @@ declare namespace system{ *

      * This acts like {@link yfiles.graphml.IXmlWriter#writeStartElement}, but uses the default prefix for the namespace *

      - * @param {string} localName The local name of this element - * @param {string} ns The namespace of this element - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param localName The local name of this element + * @param ns The namespace of this element + * @returns The writer instance for further chaining * @abstract */ writeStartElement(localName:string,ns:string):yfiles.graphml.IXmlWriter; @@ -2689,8 +3748,8 @@ declare namespace system{ *

      * The string value of s will be correctly escaped *

      - * @param {string} s The string that gets written as XML text - * @returns {yfiles.graphml.IXmlWriter} The writer instance for further chaining + * @param s The string that gets written as XML text + * @returns The writer instance for further chaining * @abstract */ writeString(s:string):yfiles.graphml.IXmlWriter; @@ -2712,8 +3771,8 @@ declare namespace system{ export interface IXmlNamespaceManager extends Object{ /** * Returns a unique namespace prefix, or creates and registeres one. - * @param {string} ns The namespace URI for which a prefix is searched. - * @returns {string} a unique namespace prefix for ns. + * @param ns The namespace URI for which a prefix is searched. + * @returns a unique namespace prefix for ns. * @abstract */ getOrCreateUniqueMapping(ns:string):string; @@ -2729,9 +3788,9 @@ declare namespace system{ pushScope():void; /** * Register a local namespace/prefix mapping - * @param {string} nsUri The namespace URI - * @param {string} prefix The preferred namespace prefix or null if any prefix may be used. - * @returns {string} The prefix that finally has been used for the namespace URI. + * @param nsUri The namespace URI + * @param prefix The preferred namespace prefix or null if any prefix may be used. + * @returns The prefix that finally has been used for the namespace URI. * @abstract */ registerLocalMapping(nsUri:string,prefix:string):string; @@ -2757,7 +3816,7 @@ declare namespace system{ /** * Constant class for common serialization properties. * @see yfiles.graphml.IWriteContext#getSerializationProperty - * @class yfiles.graphml.SerializationProperties + * @class * @static */ export interface SerializationProperties extends Object{} @@ -2884,7 +3943,12 @@ declare namespace system{ */ static DISABLE_GRAPH_SETTINGS:string; /** - * Property key for case-insensitive parsing of property names during XAML deserialization. + * Property key for alllowing to parse member names (properties and enum values) case-insensitively during XAML + * deserialization. + *

      + * This will convert property and member names to lower-case and remove underscores to be able to compare things like SOME_CONSTANT_NAME + * and SomeConstantName as well as somePropertyName and SomePropertyName, respectively. + *

      *

      * This property has a boolean value. *

      @@ -3092,16 +4156,15 @@ declare namespace system{ *

      * This class holds a reference to the {@link yfiles.graphml.WriteEventArgs#context write context} and the {@link yfiles.graphml.WriteEventArgs#item} that is currently being written. *

      - * @class yfiles.graphml.WriteEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface WriteEventArgs extends yfiles.lang.EventArgs{} export class WriteEventArgs { /** * Initializes a new instance of the {@link yfiles.graphml.WriteEventArgs} class. - * @param {yfiles.graphml.IWriteContext} context The context to assign to {@link yfiles.graphml.WriteEventArgs#context}. - * @param {Object} item The item to assign to {@link yfiles.graphml.WriteEventArgs#item}. - * @constructor + * @param context The context to assign to {@link #context}. + * @param item The item to assign to {@link #item}. */ constructor(context:yfiles.graphml.IWriteContext,item:Object); /** @@ -3126,17 +4189,17 @@ declare namespace system{ export interface IMarkupExtensionConverter extends Object{ /** * Returns if the converter can convert the value to a {@link yfiles.graphml.MarkupExtension} in the current write context. - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @param {Object} value The object to convert. - * @returns {boolean} Whether the converter can convert the passed value. + * @param context The current write context. + * @param value The object to convert. + * @returns Whether the converter can convert the passed value. * @abstract */ canConvert(context:yfiles.graphml.IWriteContext,value:Object):boolean; /** * Converts the value to a {@link yfiles.graphml.MarkupExtension} using the current write context. - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @param {Object} value The object to convert. - * @returns {yfiles.graphml.MarkupExtension} The {@link yfiles.graphml.MarkupExtension} the value was converted to. + * @param context The current write context. + * @param value The object to convert. + * @returns The {@link } the value was converted to. * @abstract */ convert(context:yfiles.graphml.IWriteContext,value:Object):yfiles.graphml.MarkupExtension; @@ -3156,17 +4219,17 @@ declare namespace system{ *

      * fqTagName must follow the usual XAML naming rules. *

      - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {yfiles.graphml.XmlName} fqTagName The fully qualified XML element name that must describe a valid type in this CLR namespace. - * @returns {yfiles.lang.Class} The first matching type, if any. + * @param context The current parse context. + * @param fqTagName The fully qualified XML element name that must describe a valid type in this CLR namespace. + * @returns The first matching type, if any. * @abstract */ getClassForName(context:yfiles.graphml.IParseContext,fqTagName:yfiles.graphml.XmlName):yfiles.lang.Class; /** * Returns the XML tag name that belongs to type type - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @param {yfiles.lang.Class} type The type for which an XML namespace mapping is searched. - * @returns {yfiles.graphml.XmlName} the XML tag name that belongs to type type + * @param context The current write context. + * @param type The type for which an XML namespace mapping is searched. + * @returns the XML tag name that belongs to type type * @abstract */ getNameForClass(context:yfiles.graphml.IWriteContext,type:yfiles.lang.Class):yfiles.graphml.XmlName; @@ -3177,10 +4240,22 @@ declare namespace system{ }; /** * Wraps a property together with default values and meta data. - * @class yfiles.graphml.Property + * @class */ export interface Property extends Object{} export class Property { + /** + * Gets the value the wrapped property has on the given instance. + * @param ownerInstance The instance to get the property value from. + * @returns The value the wrapped property has on the given instance. + */ + getValue(ownerInstance:Object):Object; + /** + * Sets the value to the wrapped property on the given instance. + * @param ownerInstance The instance to set the property value on. + * @param value The value to set. + */ + setValue(ownerInstance:Object,value:Object):void; /** * Returns true iff the property has a public getter. * @type {boolean} @@ -3225,17 +4300,12 @@ declare namespace system{ * Gets the type of the property. * @type {yfiles.lang.Class} */ - propertyType:yfiles.lang.Class; + type:yfiles.lang.Class; /** * Gets the type of the owner. * @type {yfiles.lang.Class} */ ownerType:yfiles.lang.Class; - /** - * Gets the owner instance. - * @type {Object} - */ - ownerInstance:Object; /** * Gets the default value. * @type {Object} @@ -3246,11 +4316,6 @@ declare namespace system{ * @type {boolean} */ hasDefaultValue:boolean; - /** - * Gets or sets the value. - * @type {Object} - */ - value:Object; /** * Gets the name of the property, as it will appear in GraphML. * @type {string} @@ -3280,18 +4345,186 @@ declare namespace system{ */ CENTER } + /** + * Support interface used by {@link yfiles.graphml.ValueSerializer}. + * @interface + * @implements {yfiles.graph.ILookup} + */ + export interface IValueSerializerContext extends Object,yfiles.graph.ILookup{ + /** + * Gets the value serializer for a specific {@link yfiles.graphml.Property}. + * @param property The descriptor of the property. + * @returns A serializer or null. + * @abstract + */ + getValueSerializerFor(property:yfiles.graphml.Property):yfiles.graphml.ValueSerializer; + /** + * Gets the value serializer for a specific type. + * @param type The type to obtain a serializer for. + * @returns A serializer or null. + * @abstract + */ + getValueSerializerFor(type:yfiles.lang.Class):yfiles.graphml.ValueSerializer; + } + var IValueSerializerContext:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Provides a base class for all XAML markup extensions. + *

      + * Markup extensions return objects based on string attribute values or markup elements in XAML and/or can be used to + * serialize classes that do not fulfil XAML serialization constraints. + *

      + * @class + */ + export interface MarkupExtension extends Object{} + export class MarkupExtension { + /** + * Returns an object that is set as the value of the target property for this markup extension. + * @param serviceProvider Object that can provide services for the markup extension. + * @returns The object value to set on the property where the extension is applied. + * @abstract + */ + provideValue(serviceProvider:yfiles.graph.ILookup):Object; + static $class:yfiles.lang.Class; + } + /** + * Helper classes used during the XAML serialization of instances. + *

      + * Using this class instances can be written in xml attributes as strings. + *

      + * @class + */ + export interface ValueSerializer extends Object{} + export class ValueSerializer { + /** + * Determines whether this instance can convert the specified value from the given string. + * @param value The string value to convert. + * @param context The context. + * @returns true if this instance can convert the specified value from the string; otherwise, false. + */ + canConvertFromString(value:string,context:yfiles.graphml.IValueSerializerContext):boolean; + /** + * Determines whether this instance can convert the specified value to a string. + * @param value The value. + * @param context The context. + * @returns true if this instance can convert the specified value to a string; otherwise, false. + */ + canConvertToString(value:Object,context:yfiles.graphml.IValueSerializerContext):boolean; + /** + * Converts the string to an appropriate instance. + * @param value The value to convert to an object. + * @param context The context. + * @returns The converted object + */ + convertFromString(value:string,context:yfiles.graphml.IValueSerializerContext):Object; + /** + * Converts the given value to string. + * @param o The value. + * @param context The context. + * @returns The value as string representation. + */ + convertToString(o:Object,context:yfiles.graphml.IValueSerializerContext):string; + /** + * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given type. + * @param type The type. + * @param context The context. + * @returns The serializer to use for the type. + * @static + */ + static getSerializerFor(type:yfiles.lang.Class,context:yfiles.graphml.IValueSerializerContext):yfiles.graphml.ValueSerializer; + /** + * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given descriptor. + * @param property The descriptor. + * @param context The context. + * @returns The serializer to use for the descriptor. + * @static + */ + static getSerializerFor(property:yfiles.graphml.Property,context:yfiles.graphml.IValueSerializerContext):yfiles.graphml.ValueSerializer; + /** + * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given descriptor. + * @param property The descriptor. + * @returns The serializer to use for the type. + * @static + */ + static getSerializerFor(property:yfiles.graphml.Property):yfiles.graphml.ValueSerializer; + /** + * Gets the {@link yfiles.graphml.ValueSerializer} implementation for the given type. + * @param type The type. + * @returns The serializer to use for the type. + * @static + */ + static getSerializerFor(type:yfiles.lang.Class):yfiles.graphml.ValueSerializer; + static $class:yfiles.lang.Class; + } + /** + * A helper holder class that can contain a {@link yfiles.graphml.Future.#value} of a specific type. + *

      + * Typically {@link yfiles.graphml.Future.#hasValue} will be false until at a later point in time {@link yfiles.graphml.Future.#onValueDetermined} is called and the {@link yfiles.graphml.Future.#value} and {@link yfiles.graphml.Future.#hasValue} properties are being + * updated and the {@link yfiles.graphml.Future.#addPropertyChangedListener PropertyChanged} event is triggered. + *

      + * Type parameter T: The type of the {@link yfiles.graphml.Future.#value} + * @class + * @implements {yfiles.lang.IPropertyObservable} + * @template T + * @final + */ + export interface Future extends Object,yfiles.lang.IPropertyObservable{} + export class Future { + /** + * Called when the {@link yfiles.graphml.Future.#value} property of this future has been determined. + *

      + * This will set the {@link yfiles.graphml.Future.#hasValue} property to true and assign the {@link yfiles.graphml.Future.#value} property. Also the corresponding {@link yfiles.graphml.Future.#addPropertyChangedListener PropertyChanged} events + * will be triggered if necessary. + *

      + * @param value The value. + */ + onValueDetermined(value:T):void; + /** + * The value of this future, which may only be queried if {@link yfiles.graphml.Future.#hasValue} yields true. + * @throws {Stubs.Exceptions.InvalidOperationError} If this property is queried although {@link yfiles.graphml.Future.#hasValue} returns false. + * @type {T} + */ + value:T; + /** + * Gets a value indicating whether this instance has been {@link yfiles.graphml.Future.#onValueDetermined assigned} a {@link yfiles.graphml.Future.#value}. + * @type {boolean} + */ + hasValue:boolean; + /** + * Adds the given listener for the PropertyChanged event that occurs when a property value changes. + *

      + * This event will be triggered for {@link yfiles.graphml.Future.#hasValue} changes and changes of the {@link yfiles.graphml.Future.#value} property. Note that if the determined future value is the + * same as the default, the event will only be triggered for the {@link yfiles.graphml.Future.#hasValue} property. + *

      + * @param listener The listener to add. + * @see yfiles.graphml.Future.#removePropertyChangedListener + */ + addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Removes the given listener for the PropertyChanged event that occurs when a property value changes. + *

      + * This event will be triggered for {@link yfiles.graphml.Future.#hasValue} changes and changes of the {@link yfiles.graphml.Future.#value} property. Note that if the determined future value is the + * same as the default, the event will only be triggered for the {@link yfiles.graphml.Future.#hasValue} property. + *

      + * @param listener The listener to remove. + * @see yfiles.graphml.Future.#addPropertyChangedListener + */ + removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + static $class:yfiles.lang.Class; + } /** * Class for reading/writing graphs from/to GraphML format. *

      * For more information about the GraphML file format please refer to the GraphML Primer. *

      - * @class yfiles.graphml.GraphMLIOHandler + * @class */ export interface GraphMLIOHandler extends Object{} export class GraphMLIOHandler { /** * Creates a new instance of {@link yfiles.graphml.GraphMLIOHandler}. - * @constructor */ constructor(); /** @@ -3300,9 +4533,9 @@ declare namespace system{ * The return value will only contain a value if a matching GraphML attribute has been read, which can be queried with {@link yfiles.graphml.Future.#hasValue}. * The validity is determined by keyDefinitionPredicate. This methods creates and configures the necessary handler itself. *

      - * @param {function(Element): boolean} keyDefinitionPredicate The predicate that matches the key definition. - * @param {yfiles.graphml.IGenericInputHandlerFactory} factory A factory to create {@link yfiles.graphml.IInputHandler} instances. - * @returns {yfiles.graphml.Future.} A {@link yfiles.graphml.Future.} instance that wraps an {@link yfiles.graphml.IInputHandler} that actually parses the data. + * @param keyDefinitionPredicate The predicate that matches the key definition. + * @param factory A factory to create {@link } instances. + * @returns A {@link } instance that wraps an {@link } that actually parses the data. */ addInputHandlerFactory(keyDefinitionPredicate:(obj:Element)=>boolean,factory:yfiles.graphml.IGenericInputHandlerFactory):yfiles.graphml.Future; /** @@ -3315,12 +4548,12 @@ declare namespace system{ *

      * Type parameter TKey: The type of the mapper keys * Type parameter TData: The type of the mapper values - * @param {yfiles.lang.Class} dataType The type of the mapper values - * @param {yfiles.lang.Class} keyType The type of the mapper keys - * @param {function(Element): boolean} keyDefinitionPredicate The predicate function that will determine whether to create an {@link yfiles.graphml.IInputHandler} for the given key + * @param dataType The type of the mapper values + * @param keyType The type of the mapper keys + * @param keyDefinitionPredicate The predicate function that will determine whether to create an {@link } for the given key * definition. - * @param {yfiles.collections.IMapper.} mapper the mapper that serves as data source - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} deserializationCallback custom deserialization callback. + * @param mapper the mapper that serves as data source + * @param deserializationCallback custom deserialization callback. * @template TKey,TData */ addInputMapper(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,keyDefinitionPredicate:(obj:Element)=>boolean,mapper:yfiles.collections.IMapper,deserializationCallback:(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs)=>void):void; @@ -3331,10 +4564,10 @@ declare namespace system{ *

      * Type parameter TKey: The type of the mapper keys * Type parameter TData: The type of the mapper values - * @param {yfiles.lang.Class} dataType The type of the mapper values - * @param {yfiles.lang.Class} keyType The type of the mapper keys - * @param {string} name The name of the attribute - * @param {yfiles.collections.IMapper.} mapper the mapper that serves as data source + * @param dataType The type of the mapper values + * @param keyType The type of the mapper keys + * @param name The name of the attribute + * @param mapper the mapper that serves as data source * @template TKey,TData */ addInputMapper(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,name:string,mapper:yfiles.collections.IMapper):void; @@ -3346,12 +4579,12 @@ declare namespace system{ *

      * Type parameter TKey: The type of the mapper keys * Type parameter TData: The type of the mapper values - * @param {yfiles.lang.Class} dataType The type of the mapper values - * @param {yfiles.lang.Class} keyType The type of the mapper keys - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} deserializationCallback custom deserialization callback. - * @param {function(Element): boolean} keyDefinitionPredicate The predicate function that will determine whether to create an {@link yfiles.graphml.IInputHandler} for the given key + * @param dataType The type of the mapper values + * @param keyType The type of the mapper keys + * @param deserializationCallback custom deserialization callback. + * @param keyDefinitionPredicate The predicate function that will determine whether to create an {@link } for the given key * definition. - * @returns {yfiles.graphml.Future.>} A {@link yfiles.graphml.Future.} instance that wraps an {@link yfiles.collections.IMapper.} that actually holds the data. + * @returns A {@link } instance that wraps an {@link } that actually holds the data. * @template TKey,TData */ addInputMapperFuture(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,keyDefinitionPredicate:(obj:Element)=>boolean,deserializationCallback:(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs)=>void):yfiles.graphml.Future>; @@ -3363,17 +4596,17 @@ declare namespace system{ *

      * Type parameter TKey: The type of the mapper keys * Type parameter TData: The type of the mapper values - * @param {yfiles.lang.Class} dataType The type of the mapper values - * @param {yfiles.lang.Class} keyType The type of the mapper keys - * @param {string} name The name of the attribute - * @returns {yfiles.graphml.Future.>} A {@link yfiles.graphml.Future.} instance that wraps an {@link yfiles.collections.IMapper.} that actually holds the data. + * @param dataType The type of the mapper values + * @param keyType The type of the mapper keys + * @param name The name of the attribute + * @returns A {@link } instance that wraps an {@link } that actually holds the data. * @template TKey,TData */ addInputMapperFuture(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,name:string):yfiles.graphml.Future>; /** * Adds a namespace to the header of a GraphML file. - * @param {string} namespaceURI The namespace URI - * @param {string} shortName The namespace prefix + * @param namespaceURI The namespace URI + * @param shortName The namespace prefix */ addNamespace(namespaceURI:string,shortName:string):void; /** @@ -3386,13 +4619,13 @@ declare namespace system{ *

      * Type parameter TModelItem: The type of the mapper keys * Type parameter TValue: The type of the mapper values - * @param {yfiles.lang.Class} dataType The type of the mapper values - * @param {yfiles.lang.Class} modelItemType The type of the mapper keys - * @param {string} name The name of the attribute - * @param {string} uri The URI to add to the key definition to disambiguate keys. - * @param {yfiles.collections.IMapper.} mapper the mapper that serves as data source - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} serializationCallback custom serialization callback. - * @param {yfiles.graphml.KeyType} declaredKeyType The key type to write in the declaration. + * @param dataType The type of the mapper values + * @param modelItemType The type of the mapper keys + * @param name The name of the attribute + * @param uri The URI to add to the key definition to disambiguate keys. + * @param mapper the mapper that serves as data source + * @param serializationCallback custom serialization callback. + * @param declaredKeyType The key type to write in the declaration. * @template TModelItem,TValue */ addOutputMapper(modelItemType:yfiles.lang.Class,dataType:yfiles.lang.Class,name:string,uri:string,mapper:yfiles.collections.IMapper,serializationCallback:(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs)=>void,declaredKeyType:yfiles.graphml.KeyType):void; @@ -3403,10 +4636,10 @@ declare namespace system{ *

      * Type parameter TModelItem: The type of the mapper keys * Type parameter TValue: The type of the mapper values - * @param {yfiles.lang.Class} dataType The type of the mapper values - * @param {yfiles.lang.Class} modelItemType The type of the mapper keys - * @param {string} name The name of the attribute - * @param {yfiles.collections.IMapper.} mapper the mapper that serves as data source + * @param dataType The type of the mapper values + * @param modelItemType The type of the mapper keys + * @param name The name of the attribute + * @param mapper the mapper that serves as data source * @template TModelItem,TValue */ addOutputMapper(modelItemType:yfiles.lang.Class,dataType:yfiles.lang.Class,name:string,mapper:yfiles.collections.IMapper):void; @@ -3420,12 +4653,12 @@ declare namespace system{ *

      * Type parameter TKey. * Type parameter TData. - * @param {yfiles.lang.Class} dataType - * @param {yfiles.lang.Class} keyType - * @param {Object} tag The name of the key in the {@link yfiles.graph.IMapperRegistry}. - * @param {function(Element): boolean} keyDefinitionPredicate A predicate to determine whether the key definition is valid. - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} deserializationCallback The custom deserialization callback, can be null which will result in default deserialization. - * @returns {yfiles.graphml.Future.>} A {@link yfiles.graphml.Future.} instance that wraps an {@link yfiles.collections.IMapper.} that actually holds the data. + * @param dataType + * @param keyType + * @param tag The name of the key in the {@link }. + * @param keyDefinitionPredicate A predicate to determine whether the key definition is valid. + * @param deserializationCallback The custom deserialization callback, can be null which will result in default deserialization. + * @returns A {@link } instance that wraps an {@link } that actually holds the data. * @template TKey,TData */ addRegistryInputMapper(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,tag:Object,keyDefinitionPredicate:(obj:Element)=>boolean,deserializationCallback:(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs)=>void):yfiles.graphml.Future>; @@ -3439,10 +4672,10 @@ declare namespace system{ *

      * Type parameter TKey. * Type parameter TData. - * @param {yfiles.lang.Class} dataType - * @param {yfiles.lang.Class} keyType - * @param {string} name The name of the GraphML attribute and the key in the {@link yfiles.graph.IMapperRegistry}. - * @returns {yfiles.graphml.Future.>} A {@link yfiles.graphml.Future.} instance that wraps an {@link yfiles.collections.IMapper.} that actually holds the data. + * @param dataType + * @param keyType + * @param name The name of the GraphML attribute and the key in the {@link }. + * @returns A {@link } instance that wraps an {@link } that actually holds the data. * @template TKey,TData */ addRegistryInputMapper(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,name:string):yfiles.graphml.Future>; @@ -3450,13 +4683,13 @@ declare namespace system{ * Use a registered {@link yfiles.collections.IMapper.} instance as source for the given GraphML attribute. * Type parameter TModelItem. * Type parameter TValue. - * @param {yfiles.lang.Class} valueType - * @param {yfiles.lang.Class} modelItemType - * @param {string} name The GraphML name of the attribute - * @param {string} uri The URI to add to the key definition to disambiguate keys. - * @param {Object} tag The tag name of the mapper in the {@link yfiles.graph.IMapperRegistry} - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} serializationCallback custom serialization callback. - * @param {yfiles.graphml.KeyType} declaredKeyType The key type to write in the declaration. + * @param valueType + * @param modelItemType + * @param name The GraphML name of the attribute + * @param uri The URI to add to the key definition to disambiguate keys. + * @param tag The tag name of the mapper in the {@link } + * @param serializationCallback custom serialization callback. + * @param declaredKeyType The key type to write in the declaration. * @template TModelItem,TValue */ addRegistryOutputMapper(modelItemType:yfiles.lang.Class,valueType:yfiles.lang.Class,name:string,uri:string,tag:Object,serializationCallback:(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs)=>void,declaredKeyType:yfiles.graphml.KeyType):void; @@ -3464,10 +4697,10 @@ declare namespace system{ * Use a registered {@link yfiles.collections.IMapper.} instance as source for the given GraphML attribute. * Type parameter TModelItem. * Type parameter TValue. - * @param {yfiles.lang.Class} valueType - * @param {yfiles.lang.Class} modelItemType - * @param {string} name The GraphML name of the attribute - * @param {Object} tag The tag name of the mapper in the {@link yfiles.graph.IMapperRegistry} + * @param valueType + * @param modelItemType + * @param name The GraphML name of the attribute + * @param tag The tag name of the mapper in the {@link } * @template TModelItem,TValue */ addRegistryOutputMapper(modelItemType:yfiles.lang.Class,valueType:yfiles.lang.Class,name:string,tag:Object):void; @@ -3476,10 +4709,10 @@ declare namespace system{ *

      * The type arguments of the mapper are determined automatically. *

      - * @param {string} name The GraphML name of the attribute - * @param {string} uri The optional URI of the attribute - * @param {Object} tag The tag name of the mapper in the {@link yfiles.graph.IMapperRegistry} - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} serializationCallback An optional serialization handler + * @param name The GraphML name of the attribute + * @param uri The optional URI of the attribute + * @param tag The tag name of the mapper in the {@link } + * @param serializationCallback An optional serialization handler */ addRegistryOutputMapper(name:string,uri:string,tag:Object,serializationCallback:(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs)=>void):void; /** @@ -3487,18 +4720,18 @@ declare namespace system{ *

      * The type arguments of the mapper are determined automatically. *

      - * @param {string} name The GraphML name of the attribute - * @param {Object} tag The tag name of the mapper in the {@link yfiles.graph.IMapperRegistry} + * @param name The GraphML name of the attribute + * @param tag The tag name of the mapper in the {@link } */ addRegistryOutputMapper(name:string,tag:Object):void; /** * Adds a schema location to the header of a GraphML file. - * @param {string} schemaNamespace The namespace URI for this schema location - * @param {string} schemaLocation The schema location + * @param schemaNamespace The namespace URI for this schema location + * @param schemaLocation The schema location */ addSchemaLocation(schemaNamespace:string,schemaLocation:string):void; /** - * Add a namespace mapping between a fully qualified xml name (consisting of xmlNamespace and tagName and a type. + * Add a namespace mapping between a fully qualified XML name (consisting of xmlNamespace and tagName and a type. *

      * Either of xmlNamespace or tagName may be null, meaning that the default rules for determining the namespace and/or tag * name of type are used. @@ -3506,22 +4739,22 @@ declare namespace system{ *

      * This is used both for writing and parsing objects. *

      - * @param {string} xmlNamespace The XML namespace that corresponds to type. If null, the namespace will be determined based on the JavaScript module + * @param xmlNamespace The XML namespace that corresponds to type. If null, the namespace will be determined based on the JavaScript module * that contains type - * @param {string} tagName The XML tag name that corresponds to type. If null, the name will be determined from the type name automatically. - * @param {yfiles.lang.Class} type The type that is mapped to the fully qualified XML name. + * @param tagName The XML tag name that corresponds to type. If null, the name will be determined from the type name automatically. + * @param type The type that is mapped to the fully qualified XML name. * @see yfiles.graphml.IXamlNameMapper * @see yfiles.graphml.GraphMLIOHandler#createXamlNameMapper * @see yfiles.graphml.GraphMLIOHandler#addXamlNamespaceMapping */ addXamlNamespaceMapping(xmlNamespace:string,tagName:string,type:yfiles.lang.Class):void; /** - * Add a namespace mapping between a xml namespace and a JavaScript module. + * Add a namespace mapping between an XML namespace and a JavaScript module. *

      * This is used both for writing and parsing objects. *

      - * @param {string} xmlNamespace The XML namespace that corresponds to module. - * @param {Object} module The module that is mapped to the namespace. + * @param xmlNamespace The XML namespace that corresponds to module. + * @param module The module that is mapped to the namespace. * @see yfiles.graphml.IXamlNameMapper * @see yfiles.graphml.GraphMLIOHandler#createXamlNameMapper * @see yfiles.graphml.GraphMLIOHandler#addXamlNamespaceMapping @@ -3537,8 +4770,8 @@ declare namespace system{ *

      * This method is called for each parse process. *

      - * @param {yfiles.graph.IGraph} graph The graph that will be parsed. - * @param {yfiles.graphml.GraphMLParser} parser The parser to configure. + * @param graph The graph that will be parsed. + * @param parser The parser to configure. * @see yfiles.graphml.GraphMLIOHandler#handlePrimitivesDeserialization * @see yfiles.graphml.GraphMLIOHandler#handleXamlDeserialization * @see yfiles.graphml.GraphMLIOHandler#handleTextNodeDeserialization @@ -3550,7 +4783,7 @@ declare namespace system{ *

      * This method is called for each parse process. *

      - * @param {yfiles.graphml.GraphMLParser} parser The parser to set the deserialization properties. + * @param parser The parser to set the deserialization properties. * @protected */ configureDeserializationPropertyOverrides(parser:yfiles.graphml.GraphMLParser):void; @@ -3559,8 +4792,8 @@ declare namespace system{ *

      * This method is called by {@link yfiles.graphml.GraphMLIOHandler#createGraphMLParser}. *

      - * @param {yfiles.graphml.GraphMLParser} parser The parser to configure - * @param {yfiles.graph.IGraph} graph The graph that should be filled by the parser + * @param parser The parser to configure + * @param graph The graph that should be filled by the parser * @protected */ configureGraphMLParser(parser:yfiles.graphml.GraphMLParser,graph:yfiles.graph.IGraph):void; @@ -3569,8 +4802,8 @@ declare namespace system{ *

      * This method is called by {@link yfiles.graphml.GraphMLIOHandler#createGraphMLWriter}. *

      - * @param {yfiles.graphml.GraphMLWriter} writer The writer to configure - * @param {yfiles.graph.IGraph} graph The graph that will be written. + * @param writer The writer to configure + * @param graph The graph that will be written. * @protected */ configureGraphMLWriter(writer:yfiles.graphml.GraphMLWriter,graph:yfiles.graph.IGraph):void; @@ -3584,7 +4817,7 @@ declare namespace system{ *

      * This method is called for each parse process. *

      - * @param {yfiles.graphml.GraphMLParser} parser The parser that should be configured. + * @param parser The parser that should be configured. * @protected */ configureInputHandlers(parser:yfiles.graphml.GraphMLParser):void; @@ -3597,7 +4830,7 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @param {yfiles.graphml.GraphMLWriter} writer The writer to configure. + * @param writer The writer to configure. * @protected */ configureNamespaces(writer:yfiles.graphml.GraphMLWriter):void; @@ -3611,8 +4844,8 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @param {yfiles.graph.IGraph} graph The graph that will be written. - * @param {yfiles.graphml.GraphMLWriter} writer The writer that should be configured. + * @param graph The graph that will be written. + * @param writer The writer that should be configured. * @protected */ configureOutputHandlers(graph:yfiles.graph.IGraph,writer:yfiles.graphml.GraphMLWriter):void; @@ -3621,7 +4854,7 @@ declare namespace system{ *

      * This method is called for each parse process. *

      - * @param {yfiles.graphml.GraphMLParser} parser The parser to configure. + * @param parser The parser to configure. * @protected */ configureParserLookup(parser:yfiles.graphml.GraphMLParser):void; @@ -3630,7 +4863,7 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @param {yfiles.graphml.GraphMLWriter} writer The writer to configure. + * @param writer The writer to configure. * @protected */ configureSchemaLocations(writer:yfiles.graphml.GraphMLWriter):void; @@ -3640,8 +4873,8 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @param {yfiles.graph.IGraph} graph The graph that will be written. - * @param {yfiles.graphml.GraphMLWriter} writer The writer to configure. + * @param graph The graph that will be written. + * @param writer The writer to configure. * @protected */ configureSerializationHandlers(graph:yfiles.graph.IGraph,writer:yfiles.graphml.GraphMLWriter):void; @@ -3650,8 +4883,8 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @param {yfiles.graph.IGraph} graph The graph to write. - * @param {yfiles.graphml.GraphMLWriter} writer The writer to configure. + * @param graph The graph to write. + * @param writer The writer to configure. * @see yfiles.graphml.GraphMLWriter#setSerializationProperty * @protected */ @@ -3661,7 +4894,7 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @param {yfiles.graphml.GraphMLWriter} writer The writer to set the serialization properties. + * @param writer The writer to set the serialization properties. * @protected */ configureSerializationPropertyOverrides(writer:yfiles.graphml.GraphMLWriter):void; @@ -3670,8 +4903,8 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @param {yfiles.graph.IGraph} graph The graph that will be written. - * @param {yfiles.graphml.GraphMLWriter} writer The writer to configure. + * @param graph The graph that will be written. + * @param writer The writer to configure. * @see yfiles.graphml.GraphMLWriter#setLookup * @protected */ @@ -3684,17 +4917,16 @@ declare namespace system{ *

      * This implementation does nothing. *

      - * @param {yfiles.graphml.IXmlWriter} writer The writer to configure. + * @param writer The writer to configure. * @protected */ configureXMLWriter(writer:yfiles.graphml.IXmlWriter):void; /** * Creates the default value serializer context and returns it. *

      - * This factory method can be used to provide custom {@link yfiles.graphml.ValueSerializer}s in cases where no {@link yfiles.graphml.GraphMLAttribute} - * can be used. + * This factory method can be used to provide custom {@link yfiles.graphml.ValueSerializer}s in cases where no {@link yfiles.graphml.GraphMLAttribute#valueSerializer} can be used. *

      - * @returns {yfiles.graphml.IValueSerializerContext} An implementation of the {@link yfiles.graphml.IValueSerializerContext} interface. + * @returns An implementation of the {@link } interface. */ createDefaultValueSerializerContext():yfiles.graphml.IValueSerializerContext; /** @@ -3702,9 +4934,9 @@ declare namespace system{ *

      * This method is called for each parse process. *

      - * @param {yfiles.graphml.GraphMLParser} parser The parser to use. - * @param {yfiles.graph.IGraph} graph The graph that is populated. - * @returns {yfiles.graphml.IGraphElementFactory} An {@link yfiles.graphml.IGraphElementFactory} instance that is configured for the given parameters. + * @param parser The parser to use. + * @param graph The graph that is populated. + * @returns An {@link } instance that is configured for the given parameters. * @protected */ createGraphElementFactory(parser:yfiles.graphml.GraphMLParser,graph:yfiles.graph.IGraph):yfiles.graphml.IGraphElementFactory; @@ -3716,8 +4948,8 @@ declare namespace system{ *

      * It delegates the configuration of the parser to {@link yfiles.graphml.GraphMLIOHandler#configureGraphMLParser}. *

      - * @param {yfiles.graph.IGraph} graph The graph that should be filled by this instance - * @returns {yfiles.graphml.GraphMLParser} a suitable instance of {@link yfiles.graphml.GraphMLParser} that can handle the given graph + * @param graph The graph that should be filled by this instance + * @returns a suitable instance of {@link } that can handle the given graph * @protected */ createGraphMLParser(graph:yfiles.graph.IGraph):yfiles.graphml.GraphMLParser; @@ -3727,8 +4959,8 @@ declare namespace system{ * This method is called for each write process. It delegates the configuration of the writer to * {@link yfiles.graphml.GraphMLIOHandler#configureGraphMLWriter}. *

      - * @param {yfiles.graph.IGraph} graph The graph that will be written. - * @returns {yfiles.graphml.GraphMLWriter} A new {@link yfiles.graphml.GraphMLWriter} instance that is configured for graph. + * @param graph The graph that will be written. + * @returns A new {@link } instance that is configured for graph. * @protected */ createGraphMLWriter(graph:yfiles.graph.IGraph):yfiles.graphml.GraphMLWriter; @@ -3742,11 +4974,11 @@ declare namespace system{ *

      * Type parameter TKey: The type of the keys. * Type parameter TData: The type of the data. - * @param {yfiles.lang.Class} dataType The type of the data. - * @param {yfiles.lang.Class} keyType The type of the keys. - * @param {yfiles.graphml.IParseContext} context - * @param {Object} registryTag The tag for the mapper in the registry. - * @returns {yfiles.collections.IMapper.} The mapper instance to use. + * @param dataType The type of the data. + * @param keyType The type of the keys. + * @param context + * @param registryTag The tag for the mapper in the registry. + * @returns The mapper instance to use. * @protected * @template TKey,TData */ @@ -3756,11 +4988,11 @@ declare namespace system{ * implementations that match the provided TKey and TData. * Type parameter TKey: The type of the mapper keys * Type parameter TData: The type of the mapper entries - * @param {yfiles.lang.Class} dataType The type of the mapper entries - * @param {yfiles.lang.Class} modelItemType The type of the mapper keys - * @param {yfiles.collections.IMapper.} mapper The mapper to use. - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} deserializationCallback Optional deserialization callback for complex data. - * @returns {yfiles.graphml.MapperInputHandler.} A suitable {@link yfiles.graphml.MapperInputHandler.} implementation + * @param dataType The type of the mapper entries + * @param modelItemType The type of the mapper keys + * @param mapper The mapper to use. + * @param deserializationCallback Optional deserialization callback for complex data. + * @returns A suitable {@link } implementation * @template TKey,TData * @static */ @@ -3770,12 +5002,12 @@ declare namespace system{ * implementations that match the provided TKey and TData. * Type parameter TKey: The type of the mapper keys * Type parameter TData: The type of the mapper entries - * @param {yfiles.lang.Class} dataType The type of the mapper entries - * @param {yfiles.lang.Class} modelItemType The type of the mapper keys - * @param {string} name The name of the graphml attribute - * @param {yfiles.collections.IMapper.} mapper The mapper to use. - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} serializationCallback Optional serialization callback for complex data. - * @returns {yfiles.graphml.MapperOutputHandler.} A suitable {@link yfiles.graphml.MapperOutputHandler.} implementation + * @param dataType The type of the mapper entries + * @param modelItemType The type of the mapper keys + * @param name The name of the graphml attribute + * @param mapper The mapper to use. + * @param serializationCallback Optional serialization callback for complex data. + * @returns A suitable {@link } implementation * @template TKey,TData * @static */ @@ -3789,7 +5021,7 @@ declare namespace system{ *

      * This method is called for each read or write process. *

      - * @returns {yfiles.graphml.IXamlNameMapper} + * @returns * @protected */ createXamlNameMapper():yfiles.graphml.IXamlNameMapper; @@ -3798,7 +5030,7 @@ declare namespace system{ *

      * This method is called for each write process. *

      - * @returns {yfiles.graphml.IXamlPrefixMapper} + * @returns * @protected */ createXamlPrefixMapper():yfiles.graphml.IXamlPrefixMapper; @@ -3808,7 +5040,7 @@ declare namespace system{ * This method is called for each write process. The {@link yfiles.graphml.IXmlWriter} implementation is used by default for all * low-level write operations. *

      - * @returns {yfiles.graphml.IXmlWriter} A suitable {@link yfiles.graphml.IXmlWriter} instance for the serialization + * @returns A suitable {@link } instance for the serialization * @see yfiles.graphml.IWriteContext#writer * @protected */ @@ -3818,22 +5050,22 @@ declare namespace system{ *

      * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is an array. This handler is registered by default. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleArraySerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; /** - * Handle the serialization of wrapped enums. - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * Handle the serialization for enums. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleEnumSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; /** * Handle the serialization of types that extend FrameworkTemplate. - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleDeserializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleJSONDeserialization(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs):void; @@ -3843,8 +5075,8 @@ declare namespace system{ * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} can be converted to JSON data. This serializer is only called from element property syntax and * is registered by default. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleJSONSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -3853,8 +5085,8 @@ declare namespace system{ *

      * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is an IEnumerable instance. This handler is registered by default. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleListSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -3864,8 +5096,8 @@ declare namespace system{ * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} can be converted to a {@link yfiles.graphml.MarkupExtension} instance. This handler is registered by * default. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleMarkupExtensionBasedSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -3875,22 +5107,22 @@ declare namespace system{ * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is a null reference. This handler is registered by default and is only used to write null * references in XML element syntax. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleNullSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; /** * Handle the serialization of primitive types, enums and strings. - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleDeserializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handlePrimitivesDeserialization(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs):void; /** * Handle the serialization of primitive types, enums and strings. - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handlePrimitivesSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -3900,8 +5132,8 @@ declare namespace system{ * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is a {@link yfiles.graphml.IReferenceHandle} instance. This handler is registered by default and should * not be removed if {@link yfiles.graphml.GraphMLIOHandler#writeSharedReferences} is enabled. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleReferenceHandleSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -3912,15 +5144,15 @@ declare namespace system{ * {@link yfiles.graphml.ValueSerializer}. This serializer is only called from element property syntax and is registered by * default. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleTextConvertibleSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; /** * Callback for the {@link yfiles.graphml.GraphMLParser#addHandleDeserializationListener HandleDeserialization} event. - * @param {Object} source The source of the event. - * @param {yfiles.graphml.HandleDeserializationEventArgs} evt The event arguments. + * @param source The source of the event. + * @param evt The event arguments. * @see yfiles.graphml.HandleDeserializationEventArgs * @protected */ @@ -3930,8 +5162,8 @@ declare namespace system{ *

      * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is an array. This handler is registered by default. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleTypeExtensionSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -3940,8 +5172,8 @@ declare namespace system{ *

      * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is an array. This handler is registered by default. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleTypeSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -3951,15 +5183,15 @@ declare namespace system{ * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is an undefined reference. This handler is registered by default and is only used to write undefined * references in XML element syntax. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleUndefinedSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; /** * Callback for the {@link yfiles.graphml.GraphMLParser#addHandleDeserializationListener HandleDeserialization} event. - * @param {Object} source The source of the event. - * @param {yfiles.graphml.HandleDeserializationEventArgs} evt The event arguments. + * @param source The source of the event. + * @param evt The event arguments. * @see yfiles.graphml.HandleDeserializationEventArgs * @protected */ @@ -3970,40 +5202,40 @@ declare namespace system{ * This sets {@link yfiles.graphml.HandleSerializationEventArgs#handled} to true iff {@link yfiles.graphml.HandleSerializationEventArgs#item} is not a null reference. This handler is registered by default and uses {@link yfiles.graphml.XamlSerializer} * to create XAML output. *

      - * @param {Object} sender The origin of the event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The event handler arguments. + * @param sender The origin of the event. + * @param evt The event handler arguments. * @protected */ handleXamlSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; /** * Checks whether the name attribute in definition matches name - * @param {Element} definition The key definition to check - * @param {string} name The name that should be matched - * @returns {boolean} true if the name attribute in definition matches name + * @param definition The key definition to check + * @param name The name that should be matched + * @returns true if the name attribute in definition matches name * @static */ static matchesName(definition:Element,name:string):boolean; /** * Checks whether the scope attribute in definition matches scope - * @param {Element} definition The key definition to check - * @param {yfiles.graphml.KeyScope} scope The scope that should be matched - * @returns {boolean} true if the scope attribute in definition matches scope + * @param definition The key definition to check + * @param scope The scope that should be matched + * @returns true if the scope attribute in definition matches scope * @static */ static matchesScope(definition:Element,scope:yfiles.graphml.KeyScope):boolean; /** * Checks whether the type attribute in definition matches type - * @param {Element} definition The key definition to check - * @param {yfiles.graphml.KeyType} type The type that should be matched - * @returns {boolean} true if the type attribute in definition matches type + * @param definition The key definition to check + * @param type The type that should be matched + * @returns true if the type attribute in definition matches type * @static */ static matchesType(definition:Element,type:yfiles.graphml.KeyType):boolean; /** * Checks whether the uri attribute in definition matches uri - * @param {Element} definition The key definition to check - * @param {string} uri The uri that should be matched - * @returns {boolean} true if the uri attribute in definition matches uri + * @param definition The key definition to check + * @param uri The uri that should be matched + * @returns true if the uri attribute in definition matches uri * @static */ static matchesUri(definition:Element,uri:string):boolean; @@ -4016,8 +5248,8 @@ declare namespace system{ * just calls {@link yfiles.graphml.GraphMLIOHandler#onHandleDeserialization}, which in turn raises the {@link yfiles.graphml.GraphMLIOHandler#addHandleDeserializationListener HandleDeserialization} * event. *

      - * @param {Object} sender - * @param {yfiles.graphml.HandleDeserializationEventArgs} evt + * @param sender + * @param evt * @protected */ onGraphMLParserHandleDeserialization(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs):void; @@ -4029,8 +5261,8 @@ declare namespace system{ * This implementation just calls {@link yfiles.graphml.GraphMLIOHandler#onQueryInputHandlers}, which in turn raises the {@link yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener QueryInputHandlers} * event. *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ onGraphMLParserQueryInputHandlers(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4042,8 +5274,8 @@ declare namespace system{ * This implementation just calls {@link yfiles.graphml.GraphMLIOHandler#onHandleSerialization}, which in turn raises the {@link yfiles.graphml.GraphMLIOHandler#addHandleSerializationListener HandleSerialization} * event. *

      - * @param {Object} sender - * @param {yfiles.graphml.HandleSerializationEventArgs} evt + * @param sender + * @param evt * @protected */ onGraphMLWriterHandleSerialization(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs):void; @@ -4055,28 +5287,28 @@ declare namespace system{ * This implementation just calls {@link yfiles.graphml.GraphMLIOHandler#onQueryOutputHandlers}, which in turn raises the {@link yfiles.graphml.GraphMLIOHandler#addQueryOutputHandlersListener QueryOutputHandlers} * event. *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ onGraphMLWriterQueryOutputHandlers(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; /** * Raises the {@link yfiles.graphml.GraphMLIOHandler#addHandleDeserializationListener HandleDeserialization} event. - * @param {yfiles.graphml.HandleDeserializationEventArgs} evt The arguments for the {@link yfiles.graphml.GraphMLIOHandler#addHandleDeserializationListener HandleDeserialization} + * @param evt The arguments for the {@link #addHandleDeserializationListener HandleDeserialization} * event. * @protected */ onHandleDeserialization(evt:yfiles.graphml.HandleDeserializationEventArgs):void; /** * Raises the {@link yfiles.graphml.GraphMLIOHandler#addHandleSerializationListener HandleSerialization} event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The arguments for the {@link yfiles.graphml.GraphMLIOHandler#addHandleSerializationListener HandleSerialization} + * @param evt The arguments for the {@link #addHandleSerializationListener HandleSerialization} * event. * @protected */ onHandleSerialization(evt:yfiles.graphml.HandleSerializationEventArgs):void; /** * Fires the {@link yfiles.graphml.GraphMLIOHandler#addOverrideResolveReferenceListener OverrideResolveReference} event. - * @param {yfiles.graphml.ResolveReferenceEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLIOHandler#addOverrideResolveReferenceListener OverrideResolveReference} + * @param evt The arguments that get passed to the {@link #addOverrideResolveReferenceListener OverrideResolveReference} * event. * @protected */ @@ -4087,7 +5319,7 @@ declare namespace system{ * This method is called when the document has been parsed and after {@link yfiles.graphml.IParseEvents#addDocumentParsedListener DocumentParsed} * is called. *

      - * @param {yfiles.graphml.ParseEventArgs} evt The {@link yfiles.graphml.ParseEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLIOHandler#addParsedListener * @protected */ @@ -4098,28 +5330,28 @@ declare namespace system{ * This method is called just before the parsing starts and before {@link yfiles.graphml.IParseEvents#addDocumentParsingListener DocumentParsing} * is called. *

      - * @param {yfiles.graphml.ParseEventArgs} evt The {@link yfiles.graphml.ParseEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLIOHandler#addParsingListener * @protected */ onParsing(evt:yfiles.graphml.ParseEventArgs):void; /** * Raises the {@link yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener QueryInputHandlers} event. - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt The arguments for the {@link yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener QueryInputHandlers} + * @param evt The arguments for the {@link #addQueryInputHandlersListener QueryInputHandlers} * event. * @protected */ onQueryInputHandlers(evt:yfiles.graphml.QueryInputHandlersEventArgs):void; /** * Raises the {@link yfiles.graphml.GraphMLIOHandler#addQueryOutputHandlersListener QueryOutputHandlers} event. - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt The arguments for the {@link yfiles.graphml.GraphMLIOHandler#addQueryOutputHandlersListener QueryOutputHandlers} + * @param evt The arguments for the {@link #addQueryOutputHandlersListener QueryOutputHandlers} * event. * @protected */ onQueryOutputHandlers(evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; /** * Fires the {@link yfiles.graphml.GraphMLIOHandler#addQueryReferenceIdListener QueryReferenceId} event. - * @param {yfiles.graphml.QueryReferenceIdEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLIOHandler#addQueryReferenceIdListener QueryReferenceId} + * @param evt The arguments that get passed to the {@link #addQueryReferenceIdListener QueryReferenceId} * event. * @throws {Stubs.Exceptions.ArgumentError} args is null. * @see yfiles.graphml.GraphMLWriter#onQueryReferenceId @@ -4128,7 +5360,7 @@ declare namespace system{ onQueryReferenceId(evt:yfiles.graphml.QueryReferenceIdEventArgs):void; /** * Fires the {@link yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener ResolveReference} event. - * @param {yfiles.graphml.ResolveReferenceEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener ResolveReference} + * @param evt The arguments that get passed to the {@link #addResolveReferenceListener ResolveReference} * event. * @protected */ @@ -4139,7 +5371,7 @@ declare namespace system{ * This method is called just before the writing starts and before {@link yfiles.graphml.IWriteEvents#addDocumentWritingListener DocumentWriting} * is called. *

      - * @param {yfiles.graphml.WriteEventArgs} evt The {@link yfiles.graphml.WriteEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLIOHandler#addWritingListener * @protected */ @@ -4150,27 +5382,27 @@ declare namespace system{ * This method is called just after the writing finishes and after {@link yfiles.graphml.IWriteEvents#addDocumentWrittenListener DocumentWritten} * is called. *

      - * @param {yfiles.graphml.WriteEventArgs} evt The {@link yfiles.graphml.WriteEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLIOHandler#addWrittenListener * @protected */ onWritten(evt:yfiles.graphml.WriteEventArgs):void; /** * Read GraphML from an existing XML document. - * @param {yfiles.graph.IGraph} graph The Graph object that is to be populated with nodes and edges as read from the document. - * @param {Document} document The XML document. Note: If you are using Internet Explorer 9 and {@link XMLHttpRequest}s to retrieve the document, you may not use - * the value from the {@link XMLHttpRequest#responseXML} property. Please parse {@link XMLHttpRequest#responseText} instead and use the + * @param graph The Graph object that is to be populated with nodes and edges as read from the document. + * @param document The XML document. Note: If you are using Internet Explorer 9 and {@link }s to retrieve the document, you may not use + * the value from the {@link #responseXML} property. Please parse {@link #responseText} instead and use the * result. For further reference see {@link http://msdn.microsoft.com/en-us/library/ie/hh180177.aspx}. - * @returns {Promise.} + * @returns * @throws {Stubs.Exceptions.ArgumentError} document is null. * @throws {Stubs.Exceptions.ArgumentError} graph is null. */ readFromDocument(graph:yfiles.graph.IGraph,document:Document):Promise; /** * Convenience method that imports the graph from an XML data provided in a string data. - * @param {yfiles.graph.IGraph} graph The Graph object that is to be populated with nodes and edges as read from the GraphML data. - * @param {string} data A string that contains GraphML data. - * @returns {Promise.} + * @param graph The Graph object that is to be populated with nodes and edges as read from the GraphML data. + * @param data A string that contains GraphML data. + * @returns */ readFromGraphMLText(graph:yfiles.graph.IGraph,data:string):Promise; /** @@ -4179,9 +5411,9 @@ declare namespace system{ * Note that this is an asynchronous method that returns immediately. Use the returned Promise to get notified when the * actual parsing has completed. *

      - * @param {yfiles.graph.IGraph} graph The Graph object that is to be populated with nodes and edges as read from the GraphML file. - * @param {string} url The url of the file to be read. - * @returns {Promise.} + * @param graph The Graph object that is to be populated with nodes and edges as read from the GraphML file. + * @param url The url of the file to be read. + * @returns * @throws {Stubs.Exceptions.ArgumentError} url is null. * @throws {Stubs.Exceptions.ArgumentError} graph is null. */ @@ -4192,8 +5424,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerEdgeBendsInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4203,8 +5435,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerEdgeBendsOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4214,8 +5446,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerEdgeLabelsInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4225,8 +5457,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerEdgeLabelsOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4236,8 +5468,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerEdgeStyleInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4247,8 +5479,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerEdgeStyleOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4258,8 +5490,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerGraphSettingsInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4269,8 +5501,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event. *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @see yfiles.graphml.SerializationProperties#DISABLE_GRAPH_SETTINGS * @protected */ @@ -4281,8 +5513,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerNodeLabelsInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4292,8 +5524,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerNodeLabelsOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4303,8 +5535,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerNodeLayoutInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4314,8 +5546,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerNodeLayoutOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4325,8 +5557,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerNodeStyleInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4336,8 +5568,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerNodeStyleOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4347,8 +5579,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerPortLocationInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4358,8 +5590,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerPortLocationOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4369,8 +5601,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerPortStyleInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4380,8 +5612,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerPortStyleOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; @@ -4391,8 +5623,8 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerTagInputHandler(sender:Object,evt:yfiles.graphml.QueryInputHandlersEventArgs):void; @@ -4402,15 +5634,15 @@ declare namespace system{ * This handler is by default registered for the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event *

      - * @param {Object} sender - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt + * @param sender + * @param evt * @protected */ registerTagOutputHandler(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; /** * Writes the given graph object to a GraphML file with a given filename. - * @param {yfiles.graph.IGraph} graph The Graph object that is to be written to a GraphML file. - * @returns {Promise.} A string containing the GraphML data. + * @param graph The Graph object that is to be written to a GraphML file. + * @returns A string containing the GraphML data. */ write(graph:yfiles.graph.IGraph):Promise; /** @@ -4446,7 +5678,7 @@ declare namespace system{ * Subscribe to this event to customize resolving of GraphML object references. This event is fired before the framework * tries to resolve internal references and can therefore be used to override internal references, for example. *

      - * @param {function(Object, yfiles.graphml.ResolveReferenceEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener * @see yfiles.graphml.GraphMLIOHandler#removeOverrideResolveReferenceListener */ @@ -4457,7 +5689,7 @@ declare namespace system{ * Subscribe to this event to customize resolving of GraphML object references. This event is fired before the framework * tries to resolve internal references and can therefore be used to override internal references, for example. *

      - * @param {function(Object, yfiles.graphml.ResolveReferenceEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener * @see yfiles.graphml.GraphMLIOHandler#addOverrideResolveReferenceListener */ @@ -4468,7 +5700,7 @@ declare namespace system{ * Subscribe to this event to customize resolving of GraphML object references. This event is fired when the framework * could not resolve an object reference by an internal one. *

      - * @param {function(Object, yfiles.graphml.ResolveReferenceEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#addOverrideResolveReferenceListener * @see yfiles.graphml.GraphMLIOHandler#removeResolveReferenceListener */ @@ -4479,7 +5711,7 @@ declare namespace system{ * Subscribe to this event to customize resolving of GraphML object references. This event is fired when the framework * could not resolve an object reference by an internal one. *

      - * @param {function(Object, yfiles.graphml.ResolveReferenceEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addOverrideResolveReferenceListener * @see yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener */ @@ -4494,7 +5726,7 @@ declare namespace system{ * {@link yfiles.graphml.GraphMLReferenceType#EXTERNAL}. To resolve these references when parsing, you typically have to subscribe * to the {@link yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener ResolveReference} event. *

      - * @param {function(Object, yfiles.graphml.QueryReferenceIdEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.QueryReferenceIdEventArgs#referenceId * @see yfiles.graphml.QueryReferenceIdEventArgs#referenceType * @see yfiles.graphml.GraphMLIOHandler#removeQueryReferenceIdListener @@ -4510,7 +5742,7 @@ declare namespace system{ * {@link yfiles.graphml.GraphMLReferenceType#EXTERNAL}. To resolve these references when parsing, you typically have to subscribe * to the {@link yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener ResolveReference} event. *

      - * @param {function(Object, yfiles.graphml.QueryReferenceIdEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.QueryReferenceIdEventArgs#referenceId * @see yfiles.graphml.QueryReferenceIdEventArgs#referenceType * @see yfiles.graphml.GraphMLIOHandler#addQueryReferenceIdListener @@ -4518,7 +5750,7 @@ declare namespace system{ removeQueryReferenceIdListener(listener:(sender:Object,evt:yfiles.graphml.QueryReferenceIdEventArgs)=>void):void; /** * Adds the given listener for the Written event that occurs when the writing of a document has been finished. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#onWritten * @see yfiles.graphml.GraphMLWriter#addWrittenListener * @see yfiles.graphml.GraphMLIOHandler#removeWrittenListener @@ -4526,7 +5758,7 @@ declare namespace system{ addWrittenListener(listener:(sender:Object,evt:yfiles.graphml.WriteEventArgs)=>void):void; /** * Removes the given listener for the Written event that occurs when the writing of a document has been finished. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#onWritten * @see yfiles.graphml.GraphMLWriter#addWrittenListener * @see yfiles.graphml.GraphMLIOHandler#addWrittenListener @@ -4538,7 +5770,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.WriteEventArgs#context}'s {@link yfiles.graphml.IWriteContext#writeEvents} and to configure the writing process * on a per write case. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#onWriting * @see yfiles.graphml.GraphMLWriter#addWritingListener * @see yfiles.graphml.GraphMLIOHandler#removeWritingListener @@ -4550,7 +5782,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.WriteEventArgs#context}'s {@link yfiles.graphml.IWriteContext#writeEvents} and to configure the writing process * on a per write case. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#onWriting * @see yfiles.graphml.GraphMLWriter#addWritingListener * @see yfiles.graphml.GraphMLIOHandler#addWritingListener @@ -4579,7 +5811,7 @@ declare namespace system{ *

      * This event can be used to override type resolution for XML names in XAML. *

      - * @param {function(Object, yfiles.graphml.QueryTypeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.QueryTypeEventArgs * @see yfiles.graphml.GraphMLIOHandler#removeQueryTypeListener */ @@ -4589,7 +5821,7 @@ declare namespace system{ *

      * This event can be used to override type resolution for XML names in XAML. *

      - * @param {function(Object, yfiles.graphml.QueryTypeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.QueryTypeEventArgs * @see yfiles.graphml.GraphMLIOHandler#addQueryTypeListener */ @@ -4607,7 +5839,7 @@ declare namespace system{ * It is valid to provide only part of the XML name by setting the other part to null. In that case, the default name * determination rules are used for that part. *

      - * @param {function(Object, yfiles.graphml.QueryNameEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#removeQueryNameListener */ addQueryNameListener(listener:(sender:Object,evt:yfiles.graphml.QueryNameEventArgs)=>void):void; @@ -4624,7 +5856,7 @@ declare namespace system{ * It is valid to provide only part of the XML name by setting the other part to null. In that case, the default name * determination rules are used for that part. *

      - * @param {function(Object, yfiles.graphml.QueryNameEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addQueryNameListener */ removeQueryNameListener(listener:(sender:Object,evt:yfiles.graphml.QueryNameEventArgs)=>void):void; @@ -4640,7 +5872,7 @@ declare namespace system{ *

      * The current item is provided by {@link yfiles.graphml.HandleSerializationEventArgs#item}. *

      - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#removeHandleSerializationListener */ addHandleSerializationListener(listener:(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs)=>void):void; @@ -4656,7 +5888,7 @@ declare namespace system{ *

      * The current item is provided by {@link yfiles.graphml.HandleSerializationEventArgs#item}. *

      - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addHandleSerializationListener */ removeHandleSerializationListener(listener:(sender:Object,evt:yfiles.graphml.HandleSerializationEventArgs)=>void):void; @@ -4674,7 +5906,7 @@ declare namespace system{ * If you want to register an {@link yfiles.graphml.IOutputHandler} for this GraphML attribute, you can add the handler with * {@link yfiles.graphml.QueryOutputHandlersEventArgs#addOutputHandler}. *

      - * @param {function(Object, yfiles.graphml.QueryOutputHandlersEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#removeQueryOutputHandlersListener */ addQueryOutputHandlersListener(listener:(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs)=>void):void; @@ -4693,13 +5925,13 @@ declare namespace system{ * If you want to register an {@link yfiles.graphml.IOutputHandler} for this GraphML attribute, you can add the handler with * {@link yfiles.graphml.QueryOutputHandlersEventArgs#addOutputHandler}. *

      - * @param {function(Object, yfiles.graphml.QueryOutputHandlersEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addQueryOutputHandlersListener */ removeQueryOutputHandlersListener(listener:(sender:Object,evt:yfiles.graphml.QueryOutputHandlersEventArgs)=>void):void; /** * Adds the given listener for the Parsed event that occurs when the the document has been parsed. - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#onParsed * @see yfiles.graphml.GraphMLParser#addParsedListener * @see yfiles.graphml.GraphMLIOHandler#removeParsedListener @@ -4707,7 +5939,7 @@ declare namespace system{ addParsedListener(listener:(sender:Object,evt:yfiles.graphml.ParseEventArgs)=>void):void; /** * Removes the given listener for the Parsed event that occurs when the the document has been parsed. - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#onParsed * @see yfiles.graphml.GraphMLParser#addParsedListener * @see yfiles.graphml.GraphMLIOHandler#addParsedListener @@ -4719,7 +5951,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.ParseEventArgs#context}'s {@link yfiles.graphml.IParseContext#parseEvents} and to configure the parsing process * on a per parse case. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#onParsing * @see yfiles.graphml.GraphMLParser#addParsingListener * @see yfiles.graphml.GraphMLIOHandler#removeParsingListener @@ -4731,7 +5963,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.ParseEventArgs#context}'s {@link yfiles.graphml.IParseContext#parseEvents} and to configure the parsing process * on a per parse case. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#onParsing * @see yfiles.graphml.GraphMLParser#addParsingListener * @see yfiles.graphml.GraphMLIOHandler#addParsingListener @@ -4748,7 +5980,7 @@ declare namespace system{ * attribute, you can add the handler with {@link yfiles.graphml.QueryInputHandlersEventArgs#addInputHandler} method. * Implementations should also consider the {@link yfiles.graphml.QueryInputHandlersEventArgs#handled} property. *

      - * @param {function(Object, yfiles.graphml.QueryInputHandlersEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLParser#addQueryInputHandlersListener * @see yfiles.graphml.GraphMLIOHandler#removeQueryInputHandlersListener */ @@ -4764,7 +5996,7 @@ declare namespace system{ * attribute, you can add the handler with {@link yfiles.graphml.QueryInputHandlersEventArgs#addInputHandler} method. * Implementations should also consider the {@link yfiles.graphml.QueryInputHandlersEventArgs#handled} property. *

      - * @param {function(Object, yfiles.graphml.QueryInputHandlersEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLParser#addQueryInputHandlersListener * @see yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener */ @@ -4781,7 +6013,7 @@ declare namespace system{ *

      * The current XML content is provided by {@link yfiles.graphml.HandleDeserializationEventArgs#xmlNode}. If you want to return deserialized content, set the value of the {@link yfiles.graphml.HandleDeserializationEventArgs#result} property. *

      - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLParser#addHandleDeserializationListener * @see yfiles.graphml.GraphMLIOHandler#removeHandleDeserializationListener */ @@ -4799,7 +6031,7 @@ declare namespace system{ *

      * The current XML content is provided by {@link yfiles.graphml.HandleDeserializationEventArgs#xmlNode}. If you want to return deserialized content, set the value of the {@link yfiles.graphml.HandleDeserializationEventArgs#result} property. *

      - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLParser#addHandleDeserializationListener * @see yfiles.graphml.GraphMLIOHandler#addHandleDeserializationListener */ @@ -4813,11 +6045,11 @@ declare namespace system{ export interface IGenericInputHandlerFactory extends Object{ /** * Create an {@link yfiles.graphml.IInputHandler} instance based on the given args. - * @param {yfiles.lang.Class} keyType The key type as inferred by the caller from the GraphML contents. - * @param {yfiles.lang.Class} valueType The type of the value as inferred by the caller from the GraphML contents. - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt The event argument that is used like in - * {@link yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener QueryInputHandlers} - * @returns {yfiles.graphml.IInputHandler} The specific input handler to use. + * @param keyType The key type as inferred by the caller from the GraphML contents. + * @param valueType The type of the value as inferred by the caller from the GraphML contents. + * @param evt The event argument that is used like in + * {@link #addQueryInputHandlersListener QueryInputHandlers} + * @returns The specific input handler to use. * @abstract */ createInputHandler(keyType:yfiles.lang.Class,valueType:yfiles.lang.Class,evt:yfiles.graphml.QueryInputHandlersEventArgs):yfiles.graphml.IInputHandler; @@ -4828,7 +6060,7 @@ declare namespace system{ }; /** * - * @class yfiles.graphml.GraphMLSupport + * @class */ export interface GraphMLSupport extends Object{} export class GraphMLSupport { @@ -4837,9 +6069,8 @@ declare namespace system{ *

      * Optionally calls {@link yfiles.graphml.GraphMLSupport#registerCommands}, if graphControl is given. *

      - * @param {yfiles.view.GraphComponent} [graphComponent=null] The {@link yfiles.view.GraphComponent} that the {@link yfiles.input.ICommand#OPEN} and {@link yfiles.input.ICommand#SAVE} commands are + * @param [graphComponent=null] The {@link } that the {@link #OPEN} and {@link #SAVE} commands are * registered on. - * @constructor */ constructor(graphComponent?:yfiles.view.GraphComponent); /** @@ -4848,7 +6079,7 @@ declare namespace system{ * Optionally calls {@link yfiles.graphml.GraphMLSupport#registerCommands}, if graphControl is given. *

      * @param {Object} options The parameters to pass. - * @param {yfiles.view.GraphComponent} [options.graphComponent=null] The {@link yfiles.view.GraphComponent} that the {@link yfiles.input.ICommand#OPEN} and {@link yfiles.input.ICommand#SAVE} commands are + * @param [options.graphComponent=null] The {@link } that the {@link #OPEN} and {@link #SAVE} commands are * registered on. * @param {yfiles.graphml.StorageLocation} options.storageLocation A value indicating the type of storage used by the commands Open/Save/Save As. *

      @@ -4858,7 +6089,6 @@ declare namespace system{ *

      * This option sets the {@link yfiles.graphml.GraphMLSupport#graphMLIOHandler} property on the created object. *

      - * @constructor */ constructor(options:{graphComponent?:yfiles.view.GraphComponent,storageLocation?:yfiles.graphml.StorageLocation,graphMLIOHandler?:yfiles.graphml.GraphMLIOHandler}); /** @@ -4868,7 +6098,7 @@ declare namespace system{ * The open command that is enabled if {@link yfiles.graphml.GraphMLSupport#storageLocation} is set to a value different from {@link yfiles.graphml.StorageLocation#NONE} will use this * method to create the input element for opening the files. *

      - * @returns {HTMLInputElement} The preconfigured element to use. + * @returns The preconfigured element to use. * @protected */ createOpenFileInputElement():HTMLInputElement; @@ -4879,7 +6109,7 @@ declare namespace system{ * If {@link yfiles.graphml.GraphMLSupport#storageLocation} is set to {@link yfiles.graphml.StorageLocation#FILE_SYSTEM} but saving to a file is not supported by the user's browser, * this method is called to create the element to which the GraphML content is appended. *

      - * @returns {HTMLElement} The preconfigured element to use. Null if element creation failed. + * @returns The preconfigured element to use. Null if element creation failed. * @protected */ createSaveFileTextElement():HTMLElement; @@ -4888,8 +6118,8 @@ declare namespace system{ *

      * This method will first query the {@link yfiles.graph.ILookup#lookup} of the graph, *

      - * @param {yfiles.graph.IGraph} graph - * @returns {yfiles.graphml.GraphMLIOHandler} The instance to use for IO. + * @param graph + * @returns The instance to use for IO. * @protected */ getGraphMLIOHandler(graph:yfiles.graph.IGraph):yfiles.graphml.GraphMLIOHandler; @@ -4902,9 +6132,9 @@ declare namespace system{ *

      * Any exception thrown during loading of the GraphML file will reject the promise. *

      - * @param {yfiles.view.GraphComponent} graphComponent - * @param {yfiles.graphml.StorageLocation} [storageLocation=null] - * @returns {Promise.} A promise that will resolve to the loaded graph instance or reject upon exceptions during loading. Note that if the file + * @param graphComponent + * @param [storageLocation=null] + * @returns A promise that will resolve to the loaded graph instance or reject upon exceptions during loading. Note that if the file * open dialog is cancelled by the user, the promise will stay unresolved because there is no API available that can be * used to determine whether the user has pressed cancel. Depending on the UA implementation it may be possible to listen * to focus or other input device events on the page to detect when the user has closed the file open dialog. @@ -4922,9 +6152,9 @@ declare namespace system{ * Any exception thrown during loading of the GraphML file will be caught and an error message displayed to the user. For * more control over error behaviour it is recommended to use {@link yfiles.graphml.GraphMLSupport#graphMLIOHandler} directly, e.g. from a custom command handler. *

      - * @param {yfiles.graph.IGraph} graph - * @param {yfiles.graphml.StorageLocation} [storageLocation=null] - * @returns {Promise.} A promise that will resolve to the loaded graph instance or reject upon exceptions during loading. Note that if the file + * @param graph + * @param [storageLocation=null] + * @returns A promise that will resolve to the loaded graph instance or reject upon exceptions during loading. Note that if the file * open dialog is cancelled by the user, the promise will stay unresolved because there is no API available that can be * used to determine whether the user has pressed cancel. Depending on the UA implementation it may be possible to listen * to focus or other input device events on the page to detect when the user has closed the file open dialog. @@ -4934,7 +6164,7 @@ declare namespace system{ openFile(graph:yfiles.graph.IGraph,storageLocation?:yfiles.graphml.StorageLocation):Promise; /** * Registers bindings for {@link yfiles.input.ICommand#OPEN} and {@link yfiles.input.ICommand#SAVE} on the given graphControl. - * @param {yfiles.view.GraphComponent} graphComponent The {@link yfiles.view.GraphComponent} to register the command bindings on. + * @param graphComponent The {@link } to register the command bindings on. */ registerCommands(graphComponent:yfiles.view.GraphComponent):void; /** @@ -4947,9 +6177,9 @@ declare namespace system{ * Any exception thrown during loading of the GraphML file will be caught and an error message displayed to the user. For * more control over error behaviour it is recommended to use {@link yfiles.graphml.GraphMLSupport#graphMLIOHandler} directly, e.g. from a custom command handler. *

      - * @param {yfiles.graph.IGraph} graph - * @param {yfiles.graphml.StorageLocation} [storageLocation=null] - * @returns {Promise.} A promise that will resolve to the saved string representation of the graph or reject upon exceptions during the save + * @param graph + * @param [storageLocation=null] + * @returns A promise that will resolve to the saved string representation of the graph or reject upon exceptions during the save * operation. * @see yfiles.graphml.GraphMLSupport#storageLocation * @see yfiles.graphml.GraphMLSupport#saveFile @@ -5023,7 +6253,7 @@ declare namespace system{ *

      * @see yfiles.graphml.ChildParseContext#setDeserializationProperty * @see yfiles.graphml.ChildParseContext#setLookup - * @class yfiles.graphml.ChildParseContext + * @class * @implements {yfiles.graphml.IParseContext} */ export interface ChildParseContext extends Object,yfiles.graphml.IParseContext{} @@ -5031,70 +6261,68 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.graphml.ChildParseContext} class that delegates to the provided context and adds * the currentObject to the {@link yfiles.graphml.ChildParseContext#objectStack}. - * @param {yfiles.graphml.IParseContext} parentContext The parent context. - * @param {Object} currentObject The current object to add to the {@link yfiles.graphml.ChildParseContext#objectStack} and return in {@link yfiles.graphml.ChildParseContext#getCurrent}. - * @constructor + * @param parentContext The parent context. + * @param currentObject The current object to add to the {@link #objectStack} and return in {@link #getCurrent}. */ constructor(parentContext:yfiles.graphml.IParseContext,currentObject:Object); /** * Initializes a new instance of the {@link yfiles.graphml.ChildParseContext} class that delegates to the provided context. - * @param {yfiles.graphml.IParseContext} parentContext The parent context. - * @constructor + * @param parentContext The parent context. */ constructor(parentContext:yfiles.graphml.IParseContext); /** * * Type parameter T. - * @param {yfiles.lang.Class} targetType - * @param {yfiles.graphml.IParseContext} context - * @param {Node} targetNode - * @returns {T} + * @param targetType + * @param context + * @param targetNode + * @returns * @template T */ deserializeCore(targetType:yfiles.lang.Class,context:yfiles.graphml.IParseContext,targetNode:Node):T; /** * * Type parameter T. - * @param {yfiles.lang.Class} itemType - * @returns {T} + * @param itemType + * @returns * @template T */ getCurrent(itemType:yfiles.lang.Class):T; /** * - * @param {string} key - * @returns {Object} + * @param key + * @returns */ getDeserializationProperty(key:string):Object; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * Removes a previously locally {@link yfiles.graphml.ChildParseContext#setDeserializationProperty set} deserialization property. - * @param {string} key The key for which the local property override should be removed. + * @param key The key for which the local property override should be removed. */ removeDeserializationProperty(key:string):void; /** * Removes a local lookup override that has been added using {@link yfiles.graphml.ChildParseContext#setLookup} * Type parameter T: The type key to remove. - * @param {yfiles.lang.Class} tType The type key to remove. + * @param tType The type key to remove. * @template T */ removeLookup(tType:yfiles.lang.Class):void; /** * Sets the local deserialization property for the given key to the value. - * @param {string} key The key to override. - * @param {Object} value The value. + * @param key The key to override. + * @param value The value. */ setDeserializationProperty(key:string,value:Object):void; /** * Adds another lookup result to the local lookup override. * Type parameter T: The type to use as a key for the lookup. - * @param {yfiles.lang.Class} tType The type to use as a key for the lookup. - * @param {T} value The value to provide for queries to T. + * @param tType The type to use as a key for the lookup. + * @param value The value to provide for queries to T. * @see yfiles.graphml.ChildParseContext#removeLookup * @template T */ @@ -5131,7 +6359,7 @@ declare namespace system{ *

      * @see yfiles.graphml.IGraphElementFactory * @see yfiles.graphml.GraphMLParser - * @class yfiles.graphml.CreationProperties + * @class * @implements {yfiles.collections.IMapper.} */ export interface CreationProperties extends Object,yfiles.collections.IMapper{} @@ -5143,19 +6371,19 @@ declare namespace system{ clear():void; /** * Gets the value associated with the specified key. - * @param {Object} key The key. - * @returns {Object} The value stored for the key. + * @param key The key. + * @returns The value stored for the key. * @see yfiles.graphml.CreationProperties#set */ get(key:Object):Object; /** * Removes the associated entry for the given key - * @param {Object} key The entry key to remove. + * @param key The entry key to remove. */ removeValue(key:Object):void; /** * Sets the value associated with the specified key. - * @param {Object} key The key. + * @param key The key. * @param value The value stored for the key. * @see yfiles.graphml.CreationProperties#get */ @@ -5252,15 +6480,15 @@ declare namespace system{ * variants. It should rarely be necessary to use this class directly. *

      * @see yfiles.graphml.GraphMLIOHandler - * @class yfiles.graphml.GraphMLParser + * @class */ export interface GraphMLParser extends Object{} export class GraphMLParser { constructor(); /** * Create the initial {@link yfiles.graphml.IParseContext} instance. - * @param {yfiles.graph.IGraph} graph The graph that is parsed. - * @returns {yfiles.graphml.IParseContext} An {@link yfiles.graphml.IParseContext} instance that is suitable for graph. + * @param graph The graph that is parsed. + * @returns An {@link } instance that is suitable for graph. * @protected */ createParseContext(graph:yfiles.graph.IGraph):yfiles.graphml.IParseContext; @@ -5272,10 +6500,10 @@ declare namespace system{ * event. *

      * Type parameter T: The desired type of the result. - * @param {yfiles.lang.Class} targetType The desired type of the result. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {Node} element The XML content that should be deserialized. - * @returns {T} An instance of T that is represented by element. + * @param targetType The desired type of the result. + * @param context The current parse context. + * @param element The XML content that should be deserialized. + * @returns An instance of T that is represented by element. * @see yfiles.graphml.IParseContext#deserializeCore * @see yfiles.graphml.GraphMLParser#addHandleDeserializationListener * @template T @@ -5283,8 +6511,8 @@ declare namespace system{ deserialize(targetType:yfiles.lang.Class,context:yfiles.graphml.IParseContext,element:Node):T; /** * Retrieve a deserialization property that has been set by {@link yfiles.graphml.GraphMLParser#setDeserializationProperty}. - * @param {string} key The key for the property. - * @returns {Object} + * @param key The key for the property. + * @returns * @see yfiles.graphml.IParseContext#getDeserializationProperty */ getDeserializationProperty(key:string):Object; @@ -5296,20 +6524,20 @@ declare namespace system{ * {@link yfiles.graphml.GraphMLParser#onQueryInputHandlers}, which in turn raises the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} * event. *

      - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {Element} keyDefinition The key definition element of the GraphML attribute. - * @returns {yfiles.collections.IList.} A list of {@link yfiles.graphml.IInputHandler IInputHandlers} that claim to be responsible for handling the given GraphML attribute. + * @param context The current parse context. + * @param keyDefinition The key definition element of the GraphML attribute. + * @returns A list of {@link IInputHandlers} that claim to be responsible for handling the given GraphML attribute. */ getInputHandlers(context:yfiles.graphml.IParseContext,keyDefinition:Element):yfiles.collections.IList; /** * Dynamically retrieve an instance of type. - * @param {yfiles.lang.Class} type The type for which an implementation is needed. - * @returns {Object} An implementation of type, or null. + * @param type The type for which an implementation is needed. + * @returns An implementation of type, or null. */ lookup(type:yfiles.lang.Class):Object; /** * Fires the {@link yfiles.graphml.GraphMLParser#addHandleDeserializationListener HandleDeserialization} event. - * @param {yfiles.graphml.HandleDeserializationEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLParser#addHandleDeserializationListener HandleDeserialization} + * @param evt The arguments that get passed to the {@link #addHandleDeserializationListener HandleDeserialization} * event. * @see yfiles.graphml.GraphMLIOHandler#onHandleDeserialization * @protected @@ -5321,7 +6549,7 @@ declare namespace system{ * This method is called when the document has been parsed and after {@link yfiles.graphml.IParseEvents#addDocumentParsedListener DocumentParsed} * is called. *

      - * @param {yfiles.graphml.ParseEventArgs} evt The {@link yfiles.graphml.ParseEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLParser#addParsedListener * @protected */ @@ -5332,14 +6560,14 @@ declare namespace system{ * This method is called just before the parsing starts and before {@link yfiles.graphml.IParseEvents#addDocumentParsingListener DocumentParsing} * is called. *

      - * @param {yfiles.graphml.ParseEventArgs} evt The {@link yfiles.graphml.ParseEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLParser#addParsingListener * @protected */ onParsing(evt:yfiles.graphml.ParseEventArgs):void; /** * Fires the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} event. - * @param {yfiles.graphml.QueryInputHandlersEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLParser#addQueryInputHandlersListener QueryInputHandlers} + * @param evt The arguments that get passed to the {@link #addQueryInputHandlersListener QueryInputHandlers} * event. * @see yfiles.graphml.GraphMLIOHandler#onQueryInputHandlers * @protected @@ -5350,12 +6578,12 @@ declare namespace system{ *

      * Typically, this method is called indirectly from {@link yfiles.graphml.GraphMLIOHandler#readFromDocument}. *

      - * @param {Document} document The XML document instance to parse. Note: If you are using Internet Explorer 9 and {@link XMLHttpRequest}s to retrieve the document, - * you may not use the value from the {@link XMLHttpRequest#responseXML} property. Please parse {@link XMLHttpRequest#responseText} instead + * @param document The XML document instance to parse. Note: If you are using Internet Explorer 9 and {@link }s to retrieve the document, + * you may not use the value from the {@link #responseXML} property. Please parse {@link #responseText} instead * and use the result. For further reference see {@link http://msdn.microsoft.com/en-us/library/ie/hh180177.aspx}. - * @param {yfiles.graph.IGraph} graph The graph instance that is populated. - * @param {yfiles.graphml.IGraphElementFactory} elementFactory The {@link yfiles.graphml.IGraphElementFactory} instance that is used to create the elements. - * @returns {Promise.} + * @param graph The graph instance that is populated. + * @param elementFactory The {@link } instance that is used to create the elements. + * @returns * @see yfiles.graphml.GraphMLIOHandler#readFromDocument */ parseFromDocument(graph:yfiles.graph.IGraph,document:Document,elementFactory:yfiles.graphml.IGraphElementFactory):Promise; @@ -5364,38 +6592,38 @@ declare namespace system{ *

      * Typically, this method is called indirectly from {@link yfiles.graphml.GraphMLIOHandler#readFromURL}. *

      - * @param {string} url The URL to the input to parse. - * @param {yfiles.graph.IGraph} graph The graph instance that is populated. - * @param {yfiles.graphml.IGraphElementFactory} elementFactory The {@link yfiles.graphml.IGraphElementFactory} instance that is used to create the elements. - * @returns {Promise.} + * @param url The URL to the input to parse. + * @param graph The graph instance that is populated. + * @param elementFactory The {@link } instance that is used to create the elements. + * @returns * @see yfiles.graphml.GraphMLIOHandler#readFromGraphMLText */ parseFromURL(graph:yfiles.graph.IGraph,url:string,elementFactory:yfiles.graphml.IGraphElementFactory):Promise; /** * Remove a deserialization property that has been set by {@link yfiles.graphml.GraphMLParser#setDeserializationProperty}. - * @param {string} key The key for the property. + * @param key The key for the property. * @see yfiles.graphml.IParseContext#getDeserializationProperty */ removeDeserializationProperty(key:string):void; /** * Remove an implementation of T that has been set with {@link yfiles.graphml.GraphMLParser#setLookup}. * Type parameter T. - * @param {yfiles.lang.Class} tType + * @param tType * @template T */ removeLookup(tType:yfiles.lang.Class):void; /** * Set a deserialization property that allows to fine tune the parsing process. - * @param {string} key The key for the property. - * @param {Object} value The property value. + * @param key The key for the property. + * @param value The property value. * @see yfiles.graphml.IParseContext#getDeserializationProperty */ setDeserializationProperty(key:string,value:Object):void; /** * Register an implementation of T for use with {@link yfiles.graphml.GraphMLParser#lookup}. * Type parameter T: The type of instance. - * @param {yfiles.lang.Class} tType The type of instance. - * @param {T} instance The implementation of T for lookup retrieval. + * @param tType The type of instance. + * @param instance The implementation of T for lookup retrieval. * @template T */ setLookup(tType:yfiles.lang.Class,instance:T):void; @@ -5409,7 +6637,7 @@ declare namespace system{ * The current key definition is provided by {@link yfiles.graphml.QueryInputHandlersEventArgs#keyDefinition}. If you want to register an {@link yfiles.graphml.IInputHandler} for this GraphML * attribute, you can add the handler with {@link yfiles.graphml.QueryInputHandlersEventArgs#addInputHandler}. *

      - * @param {function(Object, yfiles.graphml.QueryInputHandlersEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener * @see yfiles.graphml.GraphMLParser#removeQueryInputHandlersListener */ @@ -5424,7 +6652,7 @@ declare namespace system{ * The current key definition is provided by {@link yfiles.graphml.QueryInputHandlersEventArgs#keyDefinition}. If you want to register an {@link yfiles.graphml.IInputHandler} for this GraphML * attribute, you can add the handler with {@link yfiles.graphml.QueryInputHandlersEventArgs#addInputHandler}. *

      - * @param {function(Object, yfiles.graphml.QueryInputHandlersEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener * @see yfiles.graphml.GraphMLParser#addQueryInputHandlersListener */ @@ -5441,7 +6669,7 @@ declare namespace system{ *

      * The current XML content is provided by {@link yfiles.graphml.HandleDeserializationEventArgs#xmlNode}. If you want to return deserialized content, set the value of the {@link yfiles.graphml.HandleDeserializationEventArgs#result} property. *

      - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#addHandleDeserializationListener * @see yfiles.graphml.GraphMLParser#removeHandleDeserializationListener */ @@ -5459,21 +6687,21 @@ declare namespace system{ *

      * The current XML content is provided by {@link yfiles.graphml.HandleDeserializationEventArgs#xmlNode}. If you want to return deserialized content, set the value of the {@link yfiles.graphml.HandleDeserializationEventArgs#result} property. *

      - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addHandleDeserializationListener * @see yfiles.graphml.GraphMLParser#addHandleDeserializationListener */ removeHandleDeserializationListener(listener:(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs)=>void):void; /** * Adds the given listener for the Parsed event that occurs when the the document has been parsed. - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLParser#onParsed * @see yfiles.graphml.GraphMLParser#removeParsedListener */ addParsedListener(listener:(sender:Object,evt:yfiles.graphml.ParseEventArgs)=>void):void; /** * Removes the given listener for the Parsed event that occurs when the the document has been parsed. - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLParser#onParsed * @see yfiles.graphml.GraphMLParser#addParsedListener */ @@ -5484,7 +6712,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.ParseEventArgs#context}'s {@link yfiles.graphml.IParseContext#parseEvents} and the configure the parsing process * on a per parse case. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLParser#onParsing * @see yfiles.graphml.GraphMLParser#removeParsingListener */ @@ -5495,7 +6723,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.ParseEventArgs#context}'s {@link yfiles.graphml.IParseContext#parseEvents} and the configure the parsing process * on a per parse case. *

      - * @param {function(Object, yfiles.graphml.ParseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLParser#onParsing * @see yfiles.graphml.GraphMLParser#addParsingListener */ @@ -5510,7 +6738,7 @@ declare namespace system{ * If the event handler determines that it can deserialize the {@link yfiles.graphml.HandleDeserializationEventArgs#xmlNode}, it should place the result into the {@link yfiles.graphml.HandleDeserializationEventArgs#result} property and thus * mark the event as {@link yfiles.graphml.HandleDeserializationEventArgs#handled}. *

      - * @class yfiles.graphml.HandleDeserializationEventArgs + * @class * @extends {yfiles.lang.EventArgs} * @final */ @@ -5518,10 +6746,9 @@ declare namespace system{ export class HandleDeserializationEventArgs { /** * Initializes a new instance of the {@link yfiles.graphml.HandleDeserializationEventArgs} class. - * @param {yfiles.graphml.IParseContext} context The context in which serialization should take place. - * @param {Node} xmlNode The XML element that contains the data to deserialize. - * @param {yfiles.lang.Class} targetType The required {@link yfiles.graphml.HandleDeserializationEventArgs#targetType target type} of the {@link yfiles.graphml.HandleDeserializationEventArgs#result}. - * @constructor + * @param context The context in which serialization should take place. + * @param xmlNode The XML element that contains the data to deserialize. + * @param targetType The required {@link #targetType target type} of the {@link #result}. */ constructor(context:yfiles.graphml.IParseContext,xmlNode:Node,targetType:yfiles.lang.Class); /** @@ -5570,27 +6797,27 @@ declare namespace system{ export interface IGraphElementFactory extends Object{ /** * Adds a new port to the given {@link yfiles.graph.IPortOwner}. - * @param {yfiles.graphml.IParseContext} context The context from which the graph, the {@link yfiles.graphml.CreationProperties}, and the {@link yfiles.graphml.IParseContext#objectStack} can be queried. - * @param {yfiles.graph.IPortOwner} owner The owner of the port. - * @returns {yfiles.graph.IPort} A newly created port. + * @param context The context from which the graph, the {@link }, and the {@link #objectStack} can be queried. + * @param owner The owner of the port. + * @returns A newly created port. * @abstract */ addPort(context:yfiles.graphml.IParseContext,owner:yfiles.graph.IPortOwner):yfiles.graph.IPort; /** * Creates an edge for the given context and the provided source and target nodes or ports. - * @param {yfiles.graphml.IParseContext} context The context from which the graph, the {@link yfiles.graphml.CreationProperties}, and the {@link yfiles.graphml.IParseContext#objectStack} can be queried. - * @param {yfiles.graph.INode} sourceNode The source node for the edge. - * @param {yfiles.graph.IPort} sourcePort The source port for the edge, if specified, otherwise null. - * @param {yfiles.graph.INode} targetNode The target node for the edge. - * @param {yfiles.graph.IPort} targetPort The target port for the edge, if specified, otherwise null. - * @returns {yfiles.graph.IEdge} A newly created edge. + * @param context The context from which the graph, the {@link }, and the {@link #objectStack} can be queried. + * @param sourceNode The source node for the edge. + * @param sourcePort The source port for the edge, if specified, otherwise null. + * @param targetNode The target node for the edge. + * @param targetPort The target port for the edge, if specified, otherwise null. + * @returns A newly created edge. * @abstract */ createEdge(context:yfiles.graphml.IParseContext,sourceNode:yfiles.graph.INode,sourcePort:yfiles.graph.IPort,targetNode:yfiles.graph.INode,targetPort:yfiles.graph.IPort):yfiles.graph.IEdge; /** * Creates a node for the given context. - * @param {yfiles.graphml.IParseContext} context The context from which the graph, the {@link yfiles.graphml.CreationProperties}, and the {@link yfiles.graphml.IParseContext#objectStack} can be queried. - * @returns {yfiles.graph.INode} A newly created node + * @param context The context from which the graph, the {@link }, and the {@link #objectStack} can be queried. + * @returns A newly created node * @abstract */ createNode(context:yfiles.graphml.IParseContext):yfiles.graph.INode; @@ -5606,33 +6833,33 @@ declare namespace system{ export interface IGraphElementIdAcceptor extends Object{ /** * Store the value of the id attribute for the given edge. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {yfiles.graph.IEdge} edge The current edge element - * @param {string} id The id of the edge's XML representation + * @param context The current parse context. + * @param edge The current edge element + * @param id The id of the edge's XML representation * @abstract */ storeEdgeId(context:yfiles.graphml.IParseContext,edge:yfiles.graph.IEdge,id:string):void; /** * Store the value of the id attribute for the given graph. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {yfiles.graph.IGraph} graph The current graph element - * @param {string} id The id of the graph's XML representation + * @param context The current parse context. + * @param graph The current graph element + * @param id The id of the graph's XML representation * @abstract */ storeGraphId(context:yfiles.graphml.IParseContext,graph:yfiles.graph.IGraph,id:string):void; /** * Store the value of the id attribute for the given node. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {yfiles.graph.INode} node The current node element - * @param {string} id The id of the node's XML representation + * @param context The current parse context. + * @param node The current node element + * @param id The id of the node's XML representation * @abstract */ storeNodeId(context:yfiles.graphml.IParseContext,node:yfiles.graph.INode,id:string):void; /** * Store the value of the id attribute for the given port. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {yfiles.graph.IPort} port The current port element - * @param {string} id The id of the port's XML representation + * @param context The current parse context. + * @param port The current port element + * @param id The id of the port's XML representation * @abstract */ storePortId(context:yfiles.graphml.IParseContext,port:yfiles.graph.IPort,id:string):void; @@ -5644,7 +6871,7 @@ declare namespace system{ /** * Simple implementation of {@link yfiles.graphml.IGraphElementIdAcceptor} and {@link yfiles.graphml.IGraphElementIdProvider} that stores * all ids in {@link yfiles.collections.IMapper.} instances. - * @class yfiles.graphml.GraphElementIdAcceptor + * @class * @implements {yfiles.graphml.IGraphElementIdAcceptor} * @implements {yfiles.graphml.IGraphElementResolver} */ @@ -5654,65 +6881,65 @@ declare namespace system{ /** * Factory method to create a default implementation of {@link yfiles.graphml.IGraphElementIdProvider} that delegates to fallback * and uses the values stored by this {@link yfiles.graphml.GraphElementIdAcceptor} instance, if possible. - * @param {yfiles.graphml.IGraphElementIdProvider} fallback The fallback. - * @returns {yfiles.graphml.IGraphElementIdProvider} + * @param fallback The fallback. + * @returns */ createIdProvider(fallback:yfiles.graphml.IGraphElementIdProvider):yfiles.graphml.IGraphElementIdProvider; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {string} id - * @returns {yfiles.graph.IEdge} + * @param context + * @param id + * @returns */ resolveEdge(context:yfiles.graphml.IParseContext,id:string):yfiles.graph.IEdge; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {string} id - * @returns {yfiles.graph.IGraph} + * @param context + * @param id + * @returns */ resolveGraph(context:yfiles.graphml.IParseContext,id:string):yfiles.graph.IGraph; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {string} id - * @returns {yfiles.graph.INode} + * @param context + * @param id + * @returns */ resolveNode(context:yfiles.graphml.IParseContext,id:string):yfiles.graph.INode; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {string} ownerId - * @param {string} id - * @returns {yfiles.graph.IPort} + * @param context + * @param ownerId + * @param id + * @returns */ resolvePort(context:yfiles.graphml.IParseContext,ownerId:string,id:string):yfiles.graph.IPort; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {yfiles.graph.IEdge} edge - * @param {string} id + * @param context + * @param edge + * @param id */ storeEdgeId(context:yfiles.graphml.IParseContext,edge:yfiles.graph.IEdge,id:string):void; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {yfiles.graph.IGraph} graph - * @param {string} id + * @param context + * @param graph + * @param id */ storeGraphId(context:yfiles.graphml.IParseContext,graph:yfiles.graph.IGraph,id:string):void; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {yfiles.graph.INode} node - * @param {string} id + * @param context + * @param node + * @param id */ storeNodeId(context:yfiles.graphml.IParseContext,node:yfiles.graph.INode,id:string):void; /** * - * @param {yfiles.graphml.IParseContext} context - * @param {yfiles.graph.IPort} port - * @param {string} id + * @param context + * @param port + * @param id */ storePortId(context:yfiles.graphml.IParseContext,port:yfiles.graph.IPort,id:string):void; /** @@ -5744,25 +6971,25 @@ declare namespace system{ export interface IGraphElementResolver extends Object{ /** * Resolve the GraphML id to an {@link yfiles.graph.IEdge} instance. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {string} id The id that should be resolved. - * @returns {yfiles.graph.IEdge} The {@link yfiles.graph.IEdge} that is defined by this GraphML id, or null if no such edge exists yet. + * @param context The current parse context. + * @param id The id that should be resolved. + * @returns The {@link } that is defined by this GraphML id, or null if no such edge exists yet. * @abstract */ resolveEdge(context:yfiles.graphml.IParseContext,id:string):yfiles.graph.IEdge; /** * Resolve the GraphML id to an {@link yfiles.graph.IGraph} instance. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {string} id The id that should be resolved. - * @returns {yfiles.graph.IGraph} The {@link yfiles.graph.IGraph} that is defined by this GraphML id, or null if no such graph exists yet. + * @param context The current parse context. + * @param id The id that should be resolved. + * @returns The {@link } that is defined by this GraphML id, or null if no such graph exists yet. * @abstract */ resolveGraph(context:yfiles.graphml.IParseContext,id:string):yfiles.graph.IGraph; /** * Resolve the GraphML id to an {@link yfiles.graph.INode} instance. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {string} id The id that should be resolved. - * @returns {yfiles.graph.INode} The {@link yfiles.graph.INode} that is defined by this GraphML id, or null if no such node exists yet. + * @param context The current parse context. + * @param id The id that should be resolved. + * @returns The {@link } that is defined by this GraphML id, or null if no such node exists yet. * @abstract */ resolveNode(context:yfiles.graphml.IParseContext,id:string):yfiles.graph.INode; @@ -5771,10 +6998,10 @@ declare namespace system{ *

      * The port owner is specified by the ownerId attribute. *

      - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {string} ownerId The GraphML id of the port owner. - * @param {string} id The id that should be resolved. - * @returns {yfiles.graph.IPort} The {@link yfiles.graph.IPort} that is defined by the GraphML ids, or null if no such port exists yet. + * @param context The current parse context. + * @param ownerId The GraphML id of the port owner. + * @param id The id that should be resolved. + * @returns The {@link } that is defined by the GraphML ids, or null if no such port exists yet. * @abstract */ resolvePort(context:yfiles.graphml.IParseContext,ownerId:string,id:string):yfiles.graph.IPort; @@ -5790,14 +7017,14 @@ declare namespace system{ export interface IInputHandler extends Object{ /** * This method is invoked when no data tag is defined, and the default value should be applied. - * @param {yfiles.graphml.IParseContext} context the current parse context. + * @param context the current parse context. * @abstract */ applyDefault(context:yfiles.graphml.IParseContext):void; /** * This method is invoked each time a data element with matching key is processed. - * @param {yfiles.graphml.IParseContext} context the current parse context. - * @param {Node} node the DOM node representing the data element. + * @param context the current parse context. + * @param node the DOM node representing the data element. * @abstract */ parseData(context:yfiles.graphml.IParseContext,node:Node):void; @@ -5846,7 +7073,7 @@ declare namespace system{ * An abstract convenience implementation of the {@link yfiles.graphml.IInputHandler} interface. * Type parameter TKey: The type of the key, i.e. the items that are associated with the data in the GraphML. * Type parameter TData: The type of the data that is associated with the keys. - * @class yfiles.graphml.InputHandlerBase. + * @class * @implements {yfiles.graphml.IInputHandler} * @template TKey,TData */ @@ -5857,30 +7084,28 @@ declare namespace system{ *

      * The {@link yfiles.graphml.InputHandlerBase.#precedence} gets the initial value assigned to precedence *

      - * @param {yfiles.lang.Class} keyType1 The type of the key, i.e. the items that are associated with the data in the GraphML. - * @param {yfiles.lang.Class} dataType The type of the data that is associated with the keys. - * @param {yfiles.graphml.ParsePrecedence} precedence The precedence to assign to the {@link yfiles.graphml.InputHandlerBase.#precedence} property. + * @param keyType The type of the key, i.e. the items that are associated with the data in the GraphML. + * @param dataType The type of the data that is associated with the keys. + * @param precedence The precedence to assign to the {@link #precedence} property. * @protected - * @constructor */ - constructor(keyType1:yfiles.lang.Class,dataType:yfiles.lang.Class,precedence:yfiles.graphml.ParsePrecedence); + constructor(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,precedence:yfiles.graphml.ParsePrecedence); /** * Initializes a new instance of the {@link yfiles.graphml.InputHandlerBase.} class. *

      * The {@link yfiles.graphml.InputHandlerBase.#precedence} has an initial value of {@link yfiles.graphml.ParsePrecedence#DEFAULT}. *

      - * @param {yfiles.lang.Class} keyType1 The type of the key, i.e. the items that are associated with the data in the GraphML. - * @param {yfiles.lang.Class} dataType The type of the data that is associated with the keys. + * @param keyType The type of the key, i.e. the items that are associated with the data in the GraphML. + * @param dataType The type of the data that is associated with the keys. * @protected - * @constructor */ - constructor(keyType1:yfiles.lang.Class,dataType:yfiles.lang.Class); + constructor(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class); /** * This method is invoked when no data tag is defined, and the default value should be applied. *

      * This implementation delegates to {@link yfiles.graphml.InputHandlerBase.#setValue} if {@link yfiles.graphml.InputHandlerBase.#defaultExists a default exists} using the {@link yfiles.graphml.InputHandlerBase.#defaultValue}. *

      - * @param {yfiles.graphml.IParseContext} context the current parse context. + * @param context the current parse context. */ applyDefault(context:yfiles.graphml.IParseContext):void; /** @@ -5889,8 +7114,8 @@ declare namespace system{ * This implementation looks for the GraphML default element and delegates to {@link yfiles.graphml.InputHandlerBase.#parseDataCore} if a default is found to store * the {@link yfiles.graphml.InputHandlerBase.#defaultValue}. *

      - * @param {yfiles.graphml.IParseContext} context The context. - * @param {Element} definition The definition. + * @param context The context. + * @param definition The definition. */ initializeFromKeyDefinition(context:yfiles.graphml.IParseContext,definition:Element):void; /** @@ -5899,24 +7124,24 @@ declare namespace system{ * If the {@link yfiles.graphml.IParseContext#getCurrent current element} is of the same type as this TKey, this method delegates the actual parsing to {@link yfiles.graphml.InputHandlerBase.#parseDataCore} and * {@link yfiles.graphml.InputHandlerBase.#setValue} *

      - * @param {yfiles.graphml.IParseContext} context the current parse context. - * @param {Node} node the DOM node representing the data element. + * @param context the current parse context. + * @param node the DOM node representing the data element. */ parseData(context:yfiles.graphml.IParseContext,node:Node):void; /** * Abstract method callback that actually parses the data. - * @param {yfiles.graphml.IParseContext} context The context. - * @param {Node} node The node that contains the data. This is either the GraphML 'data' element or the 'default' element. - * @returns {TData} The parsed data. + * @param context The context. + * @param node The node that contains the data. This is either the GraphML 'data' element or the 'default' element. + * @returns The parsed data. * @protected * @abstract */ parseDataCore(context:yfiles.graphml.IParseContext,node:Node):TData; /** * Abstract method callback that actually stores the value with the keys. - * @param {yfiles.graphml.IParseContext} context The context. - * @param {TKey} key The key. - * @param {TData} data The data. + * @param context The context. + * @param key The key. + * @param data The data. * @protected * @abstract */ @@ -5963,7 +7188,7 @@ declare namespace system{ *

      * Type parameter TKey: The type of the key. * Type parameter TData: The type of the value. - * @class yfiles.graphml.MapperInputHandler. + * @class * @extends {yfiles.graphml.InputHandlerBase.} * @template TKey,TData */ @@ -5972,25 +7197,23 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.graphml.MapperInputHandler.} class that uses the event handler for deserialization and suggests the provided * target type for the deserializer. - * @param {yfiles.lang.Class} keyType2 The type of the key. - * @param {yfiles.lang.Class} dataType1 The type of the value. - * @param {function(Object, yfiles.graphml.HandleDeserializationEventArgs): void} deserializer - * @param {yfiles.lang.Class} [deserializerTargetType=null] + * @param keyType The type of the key. + * @param dataType The type of the value. + * @param deserializer + * @param [deserializerTargetType=null] * @see yfiles.graphml.MapperInputHandler.#deserializerTargetType * @see yfiles.graphml.MapperInputHandler.#deserializer - * @constructor */ - constructor(keyType2:yfiles.lang.Class,dataType1:yfiles.lang.Class,deserializer:(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs)=>void,deserializerTargetType?:yfiles.lang.Class); + constructor(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,deserializer:(sender:Object,evt:yfiles.graphml.HandleDeserializationEventArgs)=>void,deserializerTargetType?:yfiles.lang.Class); /** * Initializes a new instance of the {@link yfiles.graphml.MapperInputHandler.} class that uses the {@link yfiles.graphml.IParseContext} for deserialization. *

      * The {@link yfiles.graphml.IInputHandler#precedence} has an initial value of {@link yfiles.graphml.ParsePrecedence#DEFAULT}. *

      - * @param {yfiles.lang.Class} keyType2 The type of the key. - * @param {yfiles.lang.Class} dataType1 The type of the value. - * @constructor + * @param keyType The type of the key. + * @param dataType The type of the value. */ - constructor(keyType2:yfiles.lang.Class,dataType1:yfiles.lang.Class); + constructor(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class); /** * Gets the node to pass to {@link yfiles.graphml.MapperInputHandler.#deserializer} or {@link yfiles.graphml.IParseContext#deserializeCore IParseContext.Deserialize} respectively, given the 'data' or 'default' element from the * GraphML. @@ -6001,9 +7224,9 @@ declare namespace system{ * This implementation returns node iff {@link yfiles.graphml.MapperInputHandler.#useParentElementForDeserialization} is true (i.e. the 'data' or 'default' node itself), otherwise the first child of * the node that is not a comment or processing instruction. *

      - * @param {yfiles.graphml.IParseContext} context The context within which the node is parsed. - * @param {Node} node The 'data' or 'default' node. - * @returns {Node} The node that should be deserialized. + * @param context The context within which the node is parsed. + * @param node The 'data' or 'default' node. + * @returns The node that should be deserialized. * @see yfiles.graphml.MapperInputHandler.#useParentElementForDeserialization * @protected */ @@ -6046,7 +7269,7 @@ declare namespace system{ * Specialized {@link yfiles.lang.EventArgs} that are used for dynamic {@link yfiles.graphml.IInputHandler} registration. * @see yfiles.graphml.GraphMLIOHandler#addQueryInputHandlersListener * @see yfiles.graphml.GraphMLParser#addQueryInputHandlersListener - * @class yfiles.graphml.QueryInputHandlersEventArgs + * @class * @extends {yfiles.lang.EventArgs} * @final */ @@ -6054,10 +7277,9 @@ declare namespace system{ export class QueryInputHandlersEventArgs { /** * Create a new instance. - * @param {yfiles.graphml.IParseContext} context The current parse context. - * @param {Element} keyDefinition The current key definition - * @param {yfiles.collections.IList.} handlers Stores the registered {@link yfiles.graphml.IInputHandler} instances. - * @constructor + * @param context The current parse context. + * @param keyDefinition The current key definition + * @param handlers Stores the registered {@link } instances. */ constructor(context:yfiles.graphml.IParseContext,keyDefinition:Element,handlers:yfiles.collections.IList); /** @@ -6065,7 +7287,7 @@ declare namespace system{ *

      * Calling this method automatically sets {@link yfiles.graphml.QueryInputHandlersEventArgs#handled} to true. *

      - * @param {yfiles.graphml.IInputHandler} handler + * @param handler */ addInputHandler(handler:yfiles.graphml.IInputHandler):void; /** @@ -6106,7 +7328,7 @@ declare namespace system{ * Whenever it is necessary to locally modify some context properties, a new instance of this class should be created that * wraps an existing one. *

      - * @class yfiles.graphml.ChildWriteContext + * @class * @implements {yfiles.graphml.IWriteContext} */ export interface ChildWriteContext extends Object,yfiles.graphml.IWriteContext{} @@ -6114,71 +7336,69 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.graphml.ChildWriteContext} class that delegates to the provided context and * returns the given value in {@link yfiles.graphml.ChildWriteContext#getCurrent}. - * @param {yfiles.graphml.IWriteContext} parentContext The parent context to delegate calls to. - * @param {Object} currentObject The current object to return in {@link yfiles.graphml.ChildWriteContext#getCurrent}. - * @constructor + * @param parentContext The parent context to delegate calls to. + * @param currentObject The current object to return in {@link #getCurrent}. */ constructor(parentContext:yfiles.graphml.IWriteContext,currentObject:Object); /** * Initializes a new instance of the {@link yfiles.graphml.ChildWriteContext} class that delegates to the given parent context. - * @param {yfiles.graphml.IWriteContext} parentContext The parent context. - * @constructor + * @param parentContext The parent context. */ constructor(parentContext:yfiles.graphml.IWriteContext); /** * * Type parameter T. - * @param {yfiles.lang.Class} itemType - * @returns {T} + * @param itemType + * @returns * @template T */ getCurrent(itemType:yfiles.lang.Class):T; /** * - * @param {string} key - * @returns {Object} + * @param key + * @returns */ getSerializationProperty(key:string):Object; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * Removes a local lookup override that has been added using {@link yfiles.graphml.ChildWriteContext#setLookup} * Type parameter T: The type key to remove. - * @param {yfiles.lang.Class} tType The type key to remove. + * @param tType The type key to remove. * @template T */ removeLookup(tType:yfiles.lang.Class):void; /** * Removes a previously locally {@link yfiles.graphml.ChildWriteContext#setSerializationProperty set} serialization property. - * @param {string} key The key for which the local property override should be removed. + * @param key The key for which the local property override should be removed. */ removeSerializationProperty(key:string):void; /** * * Type parameter T. - * @param {yfiles.lang.Class} targetType - * @param {yfiles.graphml.IWriteContext} context - * @param {T} item + * @param targetType + * @param context + * @param item * @template T */ serializeCore(targetType:yfiles.lang.Class,context:yfiles.graphml.IWriteContext,item:T):void; /** * Adds another lookup result to the local lookup override. * Type parameter T: The type to use as a key for the lookup. - * @param {yfiles.lang.Class} tType The type to use as a key for the lookup. - * @param {T} value The value to provide for queries to T. + * @param tType The type to use as a key for the lookup. + * @param value The value to provide for queries to T. * @see yfiles.graphml.ChildWriteContext#removeLookup * @template T */ setLookup(tType:yfiles.lang.Class,value:T):void; /** * Sets the local serialization property for the given key to the value. - * @param {string} key The key to override. - * @param {Object} value The value. + * @param key The key to override. + * @param value The value. */ setSerializationProperty(key:string,value:Object):void; /** @@ -6219,16 +7439,16 @@ declare namespace system{ * GraphMLWriter.write. It should rarely be necessary to use this class directly. *

      * @see yfiles.graphml.GraphMLIOHandler - * @class yfiles.graphml.GraphMLWriter + * @class */ export interface GraphMLWriter extends Object{} export class GraphMLWriter { constructor(); /** * Create the initial {@link yfiles.graphml.IWriteContext} instance. - * @param {yfiles.graph.IGraph} graph The graph that is written. - * @param {yfiles.graphml.IXmlWriter} writer The core {@link yfiles.graphml.IXmlWriter} instance that does the actual writing of XML content. - * @returns {yfiles.graphml.IWriteContext} An {@link yfiles.graphml.IWriteContext} instance that is suitable for graph. + * @param graph The graph that is written. + * @param writer The core {@link } instance that does the actual writing of XML content. + * @returns An {@link } instance that is suitable for graph. * @protected */ createWriteContext(graph:yfiles.graph.IGraph,writer:yfiles.graphml.IXmlWriter):yfiles.graphml.IWriteContext; @@ -6239,28 +7459,28 @@ declare namespace system{ * {@link yfiles.graphml.GraphMLWriter#onQueryOutputHandlers}, which in turn raises the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} * event. *

      - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @param {yfiles.graphml.KeyScope} scope The scope to get output handlers for. - * @returns {yfiles.collections.IEnumerable.} A dictionary from handler definition ids to {@link yfiles.graphml.IOutputHandler IOutputHandlers}. + * @param context The current write context. + * @param scope The scope to get output handlers for. + * @returns A dictionary from handler definition ids to {@link IOutputHandlers}. */ getOutputHandlers(context:yfiles.graphml.IWriteContext,scope:yfiles.graphml.KeyScope):yfiles.collections.IEnumerable; /** * Retrieve a serialization property that has been set by {@link yfiles.graphml.GraphMLWriter#setSerializationProperty}. - * @param {string} key The key for the property. - * @returns {Object} + * @param key The key for the property. + * @returns * @see yfiles.graphml.IWriteContext#getSerializationProperty */ getSerializationProperty(key:string):Object; /** * Dynamically retrieve an instance of type. - * @param {yfiles.lang.Class} type The type for which an implementation is needed. - * @returns {Object} An implementation of type, or null. + * @param type The type for which an implementation is needed. + * @returns An implementation of type, or null. * @protected */ lookup(type:yfiles.lang.Class):Object; /** * Fires the {@link yfiles.graphml.GraphMLWriter#addHandleSerializationListener HandleSerialization} event. - * @param {yfiles.graphml.HandleSerializationEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLWriter#addHandleSerializationListener HandleSerialization} + * @param evt The arguments that get passed to the {@link #addHandleSerializationListener HandleSerialization} * event. * @see yfiles.graphml.GraphMLIOHandler#onHandleSerialization * @protected @@ -6268,7 +7488,7 @@ declare namespace system{ onHandleSerialization(evt:yfiles.graphml.HandleSerializationEventArgs):void; /** * Fires the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} event. - * @param {yfiles.graphml.QueryOutputHandlersEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener QueryOutputHandlers} + * @param evt The arguments that get passed to the {@link #addQueryOutputHandlersListener QueryOutputHandlers} * event. * @see yfiles.graphml.GraphMLIOHandler#onQueryOutputHandlers * @protected @@ -6276,7 +7496,7 @@ declare namespace system{ onQueryOutputHandlers(evt:yfiles.graphml.QueryOutputHandlersEventArgs):void; /** * Fires the {@link yfiles.graphml.GraphMLWriter#addQueryReferenceIdListener QueryReferenceId} event. - * @param {yfiles.graphml.QueryReferenceIdEventArgs} evt The arguments that get passed to the {@link yfiles.graphml.GraphMLWriter#addQueryReferenceIdListener QueryReferenceId} + * @param evt The arguments that get passed to the {@link #addQueryReferenceIdListener QueryReferenceId} * event. * @see yfiles.graphml.GraphMLIOHandler#onQueryReferenceId * @protected @@ -6288,7 +7508,7 @@ declare namespace system{ * This method is called just before the writing starts and before {@link yfiles.graphml.IWriteEvents#addDocumentWritingListener DocumentWriting} * is called for the first time. *

      - * @param {yfiles.graphml.WriteEventArgs} evt The {@link yfiles.graphml.WriteEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLWriter#addWritingListener * @protected */ @@ -6299,7 +7519,7 @@ declare namespace system{ * This method is called just before the writing has been finished and after {@link yfiles.graphml.IWriteEvents#addDocumentWrittenListener DocumentWritten} * is called for the last time. *

      - * @param {yfiles.graphml.WriteEventArgs} evt The {@link yfiles.graphml.WriteEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.graphml.GraphMLWriter#addWrittenListener * @protected */ @@ -6307,13 +7527,13 @@ declare namespace system{ /** * Remove an implementation of T that has been set with {@link yfiles.graphml.GraphMLWriter#setLookup}. * Type parameter T. - * @param {yfiles.lang.Class} tType + * @param tType * @template T */ removeLookup(tType:yfiles.lang.Class):void; /** * Remove a serialization property that has been set by {@link yfiles.graphml.GraphMLWriter#setSerializationProperty}. - * @param {string} key The key for the property. + * @param key The key for the property. * @see yfiles.graphml.IWriteContext#getSerializationProperty */ removeSerializationProperty(key:string):void; @@ -6325,9 +7545,9 @@ declare namespace system{ * event. *

      * Type parameter T: The desired type of the result. - * @param {yfiles.lang.Class} targetType The desired type of the result. - * @param {yfiles.graphml.IWriteContext} context The current parse context. - * @param {T} item The object that should be serialized. + * @param targetType The desired type of the result. + * @param context The current parse context. + * @param item The object that should be serialized. * @throws {yfiles.graphml.SerializationNotSupportedError} SerializationNotSupportedException if item cannot be serialized. * @see yfiles.graphml.IWriteContext#serializeCore * @see yfiles.graphml.GraphMLWriter#addHandleSerializationListener @@ -6338,15 +7558,15 @@ declare namespace system{ /** * Register an implementation of T for use with {@link yfiles.graphml.GraphMLWriter#lookup}. * Type parameter T: The type of instance. - * @param {yfiles.lang.Class} tType The type of instance. - * @param {T} instance The implementation of T for lookup retrieval. + * @param tType The type of instance. + * @param instance The implementation of T for lookup retrieval. * @template T */ setLookup(tType:yfiles.lang.Class,instance:T):void; /** * Set a serialization property that allows to fine tune the write process. - * @param {string} key The key for the property. - * @param {Object} value The property value. + * @param key The key for the property. + * @param value The property value. * @see yfiles.graphml.IWriteContext#getSerializationProperty */ setSerializationProperty(key:string,value:Object):void; @@ -6355,8 +7575,8 @@ declare namespace system{ *

      * Typically, this method is called indirectly from {@link yfiles.graphml.GraphMLIOHandler#write}. *

      - * @param {yfiles.graph.IGraph} graph The graph instance that is populated. - * @param {yfiles.graphml.IXmlWriter} writer The writer that actually writes the XML content. + * @param graph The graph instance that is populated. + * @param writer The writer that actually writes the XML content. * @see yfiles.graphml.GraphMLIOHandler#write */ write(graph:yfiles.graph.IGraph,writer:yfiles.graphml.IXmlWriter):void; @@ -6372,7 +7592,7 @@ declare namespace system{ *

      * The current item is provided by {@link yfiles.graphml.HandleSerializationEventArgs#item}. *

      - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#addHandleSerializationListener * @see yfiles.graphml.GraphMLWriter#removeHandleSerializationListener */ @@ -6389,7 +7609,7 @@ declare namespace system{ *

      * The current item is provided by {@link yfiles.graphml.HandleSerializationEventArgs#item}. *

      - * @param {function(Object, yfiles.graphml.HandleSerializationEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addHandleSerializationListener * @see yfiles.graphml.GraphMLWriter#addHandleSerializationListener */ @@ -6408,7 +7628,7 @@ declare namespace system{ * If you want to register an {@link yfiles.graphml.IOutputHandler} for this GraphML attribute, you can add the handler with * {@link yfiles.graphml.QueryOutputHandlersEventArgs#addOutputHandler}. *

      - * @param {function(Object, yfiles.graphml.QueryOutputHandlersEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#addQueryOutputHandlersListener * @see yfiles.graphml.GraphMLWriter#removeQueryOutputHandlersListener */ @@ -6428,7 +7648,7 @@ declare namespace system{ * If you want to register an {@link yfiles.graphml.IOutputHandler} for this GraphML attribute, you can add the handler with * {@link yfiles.graphml.QueryOutputHandlersEventArgs#addOutputHandler}. *

      - * @param {function(Object, yfiles.graphml.QueryOutputHandlersEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addQueryOutputHandlersListener * @see yfiles.graphml.GraphMLWriter#addQueryOutputHandlersListener */ @@ -6441,7 +7661,7 @@ declare namespace system{ *

      * These reference targets are not serialized to the GraphML file. *

      - * @param {function(Object, yfiles.graphml.QueryReferenceIdEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLIOHandler#addQueryReferenceIdListener * @see yfiles.graphml.GraphMLWriter#removeQueryReferenceIdListener */ @@ -6454,7 +7674,7 @@ declare namespace system{ *

      * These reference targets are not serialized to the GraphML file. *

      - * @param {function(Object, yfiles.graphml.QueryReferenceIdEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLIOHandler#addQueryReferenceIdListener * @see yfiles.graphml.GraphMLWriter#addQueryReferenceIdListener */ @@ -6470,14 +7690,14 @@ declare namespace system{ writeEvents:yfiles.graphml.IWriteEvents; /** * Adds the given listener for the Written event that occurs when the writing of a document has just been finished. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLWriter#onWritten * @see yfiles.graphml.GraphMLWriter#removeWrittenListener */ addWrittenListener(listener:(sender:Object,evt:yfiles.graphml.WriteEventArgs)=>void):void; /** * Removes the given listener for the Written event that occurs when the writing of a document has just been finished. - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLWriter#onWritten * @see yfiles.graphml.GraphMLWriter#addWrittenListener */ @@ -6488,7 +7708,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.WriteEventArgs#context}'s {@link yfiles.graphml.IWriteContext#writeEvents} and to configure the writing process * on a per write case. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graphml.GraphMLWriter#onWriting * @see yfiles.graphml.GraphMLWriter#removeWritingListener */ @@ -6499,7 +7719,7 @@ declare namespace system{ * This event can be used to register to the fine-grained events available in the {@link yfiles.graphml.WriteEventArgs#context}'s {@link yfiles.graphml.IWriteContext#writeEvents} and to configure the writing process * on a per write case. *

      - * @param {function(Object, yfiles.graphml.WriteEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graphml.GraphMLWriter#onWriting * @see yfiles.graphml.GraphMLWriter#addWritingListener */ @@ -6514,7 +7734,7 @@ declare namespace system{ * If the event handler determines that it can serialize the {@link yfiles.graphml.HandleSerializationEventArgs#item}, it should use the {@link yfiles.graphml.HandleSerializationEventArgs#writer} for output and mark the event as {@link yfiles.graphml.HandleSerializationEventArgs#handled} so that * other code will not perform serialization, too. *

      - * @class yfiles.graphml.HandleSerializationEventArgs + * @class * @extends {yfiles.lang.EventArgs} * @final */ @@ -6523,10 +7743,9 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.graphml.HandleSerializationEventArgs} class using the provided context to write * the item using the given type for serialization. - * @param {yfiles.graphml.IWriteContext} context The context to use for writing. - * @param {Object} item The item to to serialize. - * @param {yfiles.lang.Class} [serializationType=null] The type that should be used for serialization, which needs to be a super type or interface of the item or null. - * @constructor + * @param context The context to use for writing. + * @param item The item to to serialize. + * @param [serializationType=null] The type that should be used for serialization, which needs to be a super type or interface of the item or null. */ constructor(context:yfiles.graphml.IWriteContext,item:Object,serializationType?:yfiles.lang.Class); /** @@ -6535,8 +7754,8 @@ declare namespace system{ * This method can be used to replace the {@link yfiles.graphml.HandleSerializationEventArgs#item} and {@link yfiles.graphml.HandleSerializationEventArgs#sourceType} property so that the serialization chain can be traversed with a * substituted item. If this method has been called the {@link yfiles.graphml.HandleSerializationEventArgs#handled} property should not be set to true. *

      - * @param {Object} item The substitute to assign to the {@link yfiles.graphml.HandleSerializationEventArgs#item} property. - * @param {yfiles.lang.Class} serializationType The serialization type to assign to the {@link yfiles.graphml.HandleSerializationEventArgs#sourceType} property. + * @param item The substitute to assign to the {@link #item} property. + * @param serializationType The serialization type to assign to the {@link #sourceType} property. */ replaceItem(item:Object,serializationType:yfiles.lang.Class):void; /** @@ -6577,33 +7796,33 @@ declare namespace system{ export interface IGraphElementIdProvider extends Object{ /** * Get an ID for the specified edge object - * @param {yfiles.graphml.IWriteContext} context The current write context, for further information to the provider - * @param {yfiles.graph.IEdge} edge The current graph object - * @returns {string} an ID for the specified edge object + * @param context The current write context, for further information to the provider + * @param edge The current graph object + * @returns an ID for the specified edge object * @abstract */ getEdgeId(context:yfiles.graphml.IWriteContext,edge:yfiles.graph.IEdge):string; /** * Get an ID for the specified graph object - * @param {yfiles.graphml.IWriteContext} context The current write context, for further information to the provider - * @param {yfiles.graph.IGraph} graph The current graph object - * @returns {string} an ID for the specified graph object + * @param context The current write context, for further information to the provider + * @param graph The current graph object + * @returns an ID for the specified graph object * @abstract */ getGraphId(context:yfiles.graphml.IWriteContext,graph:yfiles.graph.IGraph):string; /** * Get an ID for the specified node object - * @param {yfiles.graphml.IWriteContext} context The current write context, for further information to the provider - * @param {yfiles.graph.INode} node The current graph object - * @returns {string} an ID for the specified graph object + * @param context The current write context, for further information to the provider + * @param node The current graph object + * @returns an ID for the specified graph object * @abstract */ getNodeId(context:yfiles.graphml.IWriteContext,node:yfiles.graph.INode):string; /** * Get an ID for the specified port object - * @param {yfiles.graphml.IWriteContext} context The current write context, for further information to the provider - * @param {yfiles.graph.IPort} port The current port object - * @returns {string} an ID for the specified port object + * @param context The current write context, for further information to the provider + * @param port The current port object + * @returns an ID for the specified port object * @abstract */ getPortId(context:yfiles.graphml.IWriteContext,port:yfiles.graph.IPort):string; @@ -6617,7 +7836,7 @@ declare namespace system{ * serialization or delegates to the {@link yfiles.graphml.IWriteContext#serializeCore} callback. * Type parameter TKey: The type of the keys. * Type parameter TData: The type of the data. - * @class yfiles.graphml.MapperOutputHandler. + * @class * @extends {yfiles.graphml.OutputHandlerBase.} * @template TKey,TData */ @@ -6625,12 +7844,11 @@ declare namespace system{ export class MapperOutputHandler { /** * Initializes a new instance of the {@link yfiles.graphml.MapperOutputHandler.} class using the provided key scope, the name, and the key type. - * @param {yfiles.lang.Class} keyType The type of the keys. - * @param {yfiles.lang.Class} dataType The type of the data. - * @param {yfiles.graphml.KeyScope} scope The scope for the key definition attributes. - * @param {string} name The name for the key definition attributes. - * @param {yfiles.graphml.KeyType} type The type for the key definition attributes. - * @constructor + * @param keyType The type of the keys. + * @param dataType The type of the data. + * @param scope The scope for the key definition attributes. + * @param name The name for the key definition attributes. + * @param type The type for the key definition attributes. */ constructor(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,scope:yfiles.graphml.KeyScope,name:string,type:yfiles.graphml.KeyType); /** @@ -6665,7 +7883,7 @@ declare namespace system{ * Convenience abstract base implementation of the {@link yfiles.graphml.IOutputHandler} interface. * Type parameter TKey: The type of the keys. * Type parameter TData: The type of the data. - * @class yfiles.graphml.OutputHandlerBase. + * @class * @implements {yfiles.graphml.IOutputHandler} * @template TKey,TData */ @@ -6673,21 +7891,20 @@ declare namespace system{ export class OutputHandlerBase { /** * Initializes a new instance of the {@link yfiles.graphml.OutputHandlerBase.} class using the provided scope, name, and type for the key definition. - * @param {yfiles.lang.Class} keyType1 The type of the keys. - * @param {yfiles.lang.Class} dataType1 The type of the data. - * @param {yfiles.graphml.KeyScope} scope The scope. - * @param {string} name The name to use for the key definition. - * @param {yfiles.graphml.KeyType} type The type to use for the key definition. + * @param keyType The type of the keys. + * @param dataType The type of the data. + * @param scope The scope. + * @param name The name to use for the key definition. + * @param type The type to use for the key definition. * @see yfiles.graphml.OutputHandlerBase.#setKeyDefinitionUri * @protected - * @constructor */ - constructor(keyType1:yfiles.lang.Class,dataType1:yfiles.lang.Class,scope:yfiles.graphml.KeyScope,name:string,type:yfiles.graphml.KeyType); + constructor(keyType:yfiles.lang.Class,dataType:yfiles.lang.Class,scope:yfiles.graphml.KeyScope,name:string,type:yfiles.graphml.KeyType); /** * Callback method that obtains the data for the given key. - * @param {yfiles.graphml.IWriteContext} context The context. - * @param {TKey} key The key. - * @returns {TData} The data that is associated with the key. + * @param context The context. + * @param key The key. + * @returns The data that is associated with the key. * @protected * @abstract */ @@ -6699,13 +7916,13 @@ declare namespace system{ * This implementation will return false if no {@link yfiles.graphml.OutputHandlerBase.#defaultExists default has been set}. Otherwise it will use {@link yfiles.graphml.OutputHandlerBase.#getValue} and compare the result * with the {@link yfiles.graphml.OutputHandlerBase.#defaultValue} to determine whether they are equal and therefore no data needs to be written. *

      - * @param {yfiles.graphml.IWriteContext} context The context. - * @returns {boolean} true if for the current context the default value applies and therefore no data element needs to be written. + * @param context The context. + * @returns true if for the current context the default value applies and therefore no data element needs to be written. */ isDefaultValue(context:yfiles.graphml.IWriteContext):boolean; /** * Sets the name for the key definition. - * @param {string} name The name of the key element. + * @param name The name of the key element. */ setKeyDefinitionName(name:string):void; /** @@ -6714,12 +7931,12 @@ declare namespace system{ * Note that the official GraphML schema does not support the {@link yfiles.graphml.KeyScope#GRAPHML} so this implementation will * silently ignore this which will result in {@link yfiles.graphml.KeyScope#ALL} implicitly being defined. *

      - * @param {yfiles.graphml.KeyScope} scope The scope of the key element. + * @param scope The scope of the key element. */ setKeyDefinitionScope(scope:yfiles.graphml.KeyScope):void; /** * Sets the key type for the key definition. - * @param {yfiles.graphml.KeyType} type The type of the key element. + * @param type The type of the key element. */ setKeyDefinitionType(type:yfiles.graphml.KeyType):void; /** @@ -6727,7 +7944,7 @@ declare namespace system{ *

      * By default, no URI is set. *

      - * @param {string} uri The URI of the key element. + * @param uri The URI of the key element. */ setKeyDefinitionUri(uri:string):void; /** @@ -6736,7 +7953,7 @@ declare namespace system{ * Depending on whether {@link yfiles.graphml.OutputHandlerBase.#writeKeyDefault} is enabled and {@link yfiles.graphml.OutputHandlerBase.#defaultExists} is true, this method will write the GraphML 'default' element and use {@link yfiles.graphml.OutputHandlerBase.#writeValueCore} * to serialize the {@link yfiles.graphml.OutputHandlerBase.#defaultValue}. *

      - * @param {yfiles.graphml.IWriteContext} context The context. + * @param context The context. */ writeKeyDefinitionContent(context:yfiles.graphml.IWriteContext):void; /** @@ -6744,13 +7961,13 @@ declare namespace system{ *

      * This method will use {@link yfiles.graphml.OutputHandlerBase.#getValue} to obtain the data and delegate to {@link yfiles.graphml.OutputHandlerBase.#writeValueCore} to perform the actual serialization. *

      - * @param {yfiles.graphml.IWriteContext} context The context. + * @param context The context. */ writeValue(context:yfiles.graphml.IWriteContext):void; /** * Callback method that performs the actual writing of the data. - * @param {yfiles.graphml.IWriteContext} context The context. - * @param {TData} data The data. + * @param context The context. + * @param data The data. * @protected * @abstract */ @@ -6799,7 +8016,7 @@ declare namespace system{ * dynamically at the time of writing, by adding them to the {@link yfiles.graphml.QueryOutputHandlersEventArgs#handlers} collection. *

      * @see yfiles.graphml.GraphMLIOHandler - * @class yfiles.graphml.QueryOutputHandlersEventArgs + * @class * @extends {yfiles.lang.EventArgs} * @final */ @@ -6807,14 +8024,13 @@ declare namespace system{ export class QueryOutputHandlersEventArgs { /** * Initializes a new instance of the {@link yfiles.graphml.QueryOutputHandlersEventArgs} class. - * @param {yfiles.graphml.IWriteContext} context The context to assign to the {@link yfiles.graphml.QueryOutputHandlersEventArgs#context} property. - * @param {yfiles.graphml.KeyScope} scope The scope where the handlers should be added. - * @constructor + * @param context The context to assign to the {@link #context} property. + * @param scope The scope where the handlers should be added. */ constructor(context:yfiles.graphml.IWriteContext,scope:yfiles.graphml.KeyScope); /** * Adds the given output handler to the set of registered output handlers for the given scope. - * @param {yfiles.graphml.IOutputHandler} handler The handler to add. + * @param handler The handler to add. */ addOutputHandler(handler:yfiles.graphml.IOutputHandler):void; /** @@ -6839,25 +8055,24 @@ declare namespace system{ *

      * This writer does not support random access on the output document. *

      - * @class yfiles.graphml.XmlWriter + * @class * @implements {yfiles.graphml.IXmlWriter} */ export interface XmlWriter extends Object,yfiles.graphml.IXmlWriter{} export class XmlWriter { /** - * Create a new instance that writes on a {@link Root.OB} - * @constructor + * Create a new instance with enabled {@link yfiles.graphml.XmlWriter#indent}. */ constructor(); /** * - * @param {boolean} addEndTag + * @param addEndTag * @protected */ closeCurrentElement(addEndTag:boolean):void; /** * Factory method that creates the namespace manager for this instance. - * @returns {yfiles.graphml.IXmlNamespaceManager} A new manager instance. + * @returns A new manager instance. * @protected */ createNamespaceManager():yfiles.graphml.IXmlNamespaceManager; @@ -6867,34 +8082,34 @@ declare namespace system{ flushDocument():void; /** * - * @returns {string} + * @returns */ getXmlString():string; /** * - * @param {string} prefix - * @param {string} localName - * @param {string} ns - * @param {string} value - * @returns {yfiles.graphml.IXmlWriter} + * @param prefix + * @param localName + * @param ns + * @param value + * @returns */ writeAttributeNS(prefix:string,localName:string,ns:string,value:string):yfiles.graphml.IXmlWriter; /** * - * @param {string} content - * @returns {yfiles.graphml.IXmlWriter} + * @param content + * @returns */ writeCData(content:string):yfiles.graphml.IXmlWriter; /** * - * @param {string} comment - * @returns {yfiles.graphml.IXmlWriter} + * @param comment + * @returns */ writeComment(comment:string):yfiles.graphml.IXmlWriter; /** * - * @param {Document} fragment - * @returns {yfiles.graphml.IXmlWriter} + * @param fragment + * @returns */ writeDocumentFragment(fragment:Document):yfiles.graphml.IXmlWriter; /** @@ -6903,40 +8118,40 @@ declare namespace system{ writeEndDocument():void; /** * - * @returns {yfiles.graphml.IXmlWriter} + * @returns */ writeEndElement():yfiles.graphml.IXmlWriter; /** * - * @param {string} target - * @param {string} data - * @returns {yfiles.graphml.IXmlWriter} + * @param target + * @param data + * @returns */ writeProcessingInstruction(target:string,data:string):yfiles.graphml.IXmlWriter; /** * - * @returns {yfiles.graphml.IXmlWriter} + * @returns */ writeStartDocument():yfiles.graphml.IXmlWriter; /** * - * @param {string} prefix - * @param {string} localName - * @param {string} ns - * @returns {yfiles.graphml.IXmlWriter} + * @param prefix + * @param localName + * @param ns + * @returns */ writeStartElement(prefix:string,localName:string,ns:string):yfiles.graphml.IXmlWriter; /** * - * @param {string} localName - * @param {string} ns - * @returns {yfiles.graphml.IXmlWriter} + * @param localName + * @param ns + * @returns */ writeStartElement(localName:string,ns:string):yfiles.graphml.IXmlWriter; /** * - * @param {string} s - * @returns {yfiles.graphml.IXmlWriter} + * @param s + * @returns */ writeString(s:string):yfiles.graphml.IXmlWriter; /** @@ -7010,9 +8225,9 @@ declare namespace system{ export interface IReferenceHandler extends Object{ /** * Gets the reference handle for a given subject. - * @param {Object} subject The subject. - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @returns {yfiles.graphml.IReferenceHandle} A handle for the resource subject, or null if the resource is not registered. + * @param subject The subject. + * @param context The current write context. + * @returns A handle for the resource subject, or null if the resource is not registered. * @see yfiles.graphml.IReferenceHandle * @see yfiles.graphml.IReferenceHandle#subject * @abstract @@ -7026,8 +8241,8 @@ declare namespace system{ * addition, subsequent calls to {@link yfiles.graphml.IReferenceHandler#registerResource} for the same reference won't mark the * resource as shared again. *

      - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @param {Object} subject The resource to register. + * @param context The current write context. + * @param subject The resource to register. * @see yfiles.graphml.IReferenceHandler#registerResource * @see yfiles.graphml.GraphMLAttribute#shareable * @abstract @@ -7035,9 +8250,9 @@ declare namespace system{ markAsUnshared(context:yfiles.graphml.IWriteContext,subject:Object):void; /** * Register a shared resource. - * @param {yfiles.graphml.IWriteContext} context The current write context. - * @param {Object} subject The resource to register. - * @returns {yfiles.graphml.SharingState} true iff the resource needs to be serialized; otherwise the resource is either a duplicate resource or is declared + * @param context The current write context. + * @param subject The resource to register. + * @returns true iff the resource needs to be serialized; otherwise the resource is either a duplicate resource or is declared * externally and does not need any additional handling. * @abstract */ @@ -7070,7 +8285,7 @@ declare namespace system{ * and {@link yfiles.graphml.GraphMLIOHandler#addOverrideResolveReferenceListener OverrideResolveReference} events. * @see yfiles.graphml.GraphMLIOHandler#addResolveReferenceListener * @see yfiles.graphml.GraphMLIOHandler#addOverrideResolveReferenceListener - * @class yfiles.graphml.ResolveReferenceEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface ResolveReferenceEventArgs extends yfiles.lang.EventArgs{} @@ -7080,9 +8295,8 @@ declare namespace system{ *

      * The {@link yfiles.graphml.ResolveReferenceEventArgs#handled} property is set to false, the {@link yfiles.graphml.ResolveReferenceEventArgs#value} property is set to null *

      - * @param {yfiles.graphml.IParseContext} context The current parse context that can be used by the event handler for additional information. - * @param {string} referenceId The reference id that should evaluated by the event handler. - * @constructor + * @param context The current parse context that can be used by the event handler for additional information. + * @param referenceId The reference id that should evaluated by the event handler. */ constructor(context:yfiles.graphml.IParseContext,referenceId:string); /** @@ -7124,7 +8338,7 @@ declare namespace system{ *

      * @see yfiles.graphml.GraphMLIOHandler#addQueryReferenceIdListener * @see yfiles.graphml.GraphMLWriter#addQueryReferenceIdListener - * @class yfiles.graphml.QueryReferenceIdEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface QueryReferenceIdEventArgs extends yfiles.lang.EventArgs{} @@ -7134,9 +8348,8 @@ declare namespace system{ *

      * The {@link yfiles.graphml.QueryReferenceIdEventArgs#handled} property is set to false, the {@link yfiles.graphml.QueryReferenceIdEventArgs#referenceId} is set to null. *

      - * @param {yfiles.graphml.IWriteContext} context The current write context that can be used by the event handler for additional information. - * @param {Object} value The referenced object instance. - * @constructor + * @param context The current write context that can be used by the event handler for additional information. + * @param value The referenced object instance. */ constructor(context:yfiles.graphml.IWriteContext,value:Object); /** @@ -7158,7 +8371,7 @@ declare namespace system{ *

      * @see yfiles.graphml.QueryReferenceIdEventArgs#referenceId * @see yfiles.graphml.QueryReferenceIdEventArgs#handled - * @default 1 + * @default yfiles.graphml.GraphMLReferenceType.EXTERNAL * @type {yfiles.graphml.GraphMLReferenceType} */ referenceType:yfiles.graphml.GraphMLReferenceType; @@ -7185,33 +8398,32 @@ declare namespace system{ } /** * Special implementation of {@link yfiles.graphml.IValueSerializerContext} that should be used in a GraphML parse context. - * @class yfiles.graphml.GraphMLParseValueSerializerContext + * @class * @implements {yfiles.graphml.IValueSerializerContext} */ export interface GraphMLParseValueSerializerContext extends Object,yfiles.graphml.IValueSerializerContext{} export class GraphMLParseValueSerializerContext { /** * Creates a new instance that wraps context - * @param {yfiles.graphml.IParseContext} context The current write context - * @constructor + * @param context The current write context */ constructor(context:yfiles.graphml.IParseContext); /** * - * @param {yfiles.graphml.Property} property - * @returns {yfiles.graphml.ValueSerializer} + * @param property + * @returns */ getValueSerializerFor(property:yfiles.graphml.Property):yfiles.graphml.ValueSerializer; /** * - * @param {yfiles.lang.Class} type - * @returns {yfiles.graphml.ValueSerializer} + * @param type + * @returns */ getValueSerializerFor(type:yfiles.lang.Class):yfiles.graphml.ValueSerializer; /** * Returns the wrapped {@link yfiles.graphml.IParseContext} for this serviceType, otherwise null - * @param {yfiles.lang.Class} serviceType The serviceType - * @returns {Object} the wrapped {@link yfiles.graphml.IParseContext} for this serviceType, otherwise null + * @param serviceType The serviceType + * @returns the wrapped {@link } for this serviceType, otherwise null */ lookup(serviceType:yfiles.lang.Class):Object; /** @@ -7223,33 +8435,32 @@ declare namespace system{ } /** * Special implementation of {@link yfiles.graphml.IValueSerializerContext} that should be used in a GraphML write context. - * @class yfiles.graphml.GraphMLWriteValueSerializerContext + * @class * @implements {yfiles.graphml.IValueSerializerContext} */ export interface GraphMLWriteValueSerializerContext extends Object,yfiles.graphml.IValueSerializerContext{} export class GraphMLWriteValueSerializerContext { /** * Creates a new instance that wraps context - * @param {yfiles.graphml.IWriteContext} context The current write context - * @constructor + * @param context The current write context */ constructor(context:yfiles.graphml.IWriteContext); /** * - * @param {yfiles.graphml.Property} property - * @returns {yfiles.graphml.ValueSerializer} + * @param property + * @returns */ getValueSerializerFor(property:yfiles.graphml.Property):yfiles.graphml.ValueSerializer; /** * - * @param {yfiles.lang.Class} type - * @returns {yfiles.graphml.ValueSerializer} + * @param type + * @returns */ getValueSerializerFor(type:yfiles.lang.Class):yfiles.graphml.ValueSerializer; /** * Returns the wrapped {@link yfiles.graphml.IWriteContext} for this serviceType, otherwise null - * @param {yfiles.lang.Class} serviceType The serviceType - * @returns {Object} the wrapped {@link yfiles.graphml.IWriteContext} for this serviceType, otherwise null + * @param serviceType The serviceType + * @returns the wrapped {@link } for this serviceType, otherwise null */ lookup(serviceType:yfiles.lang.Class):Object; /** @@ -7270,16 +8481,15 @@ declare namespace system{ * It is valid to provide only part of the XML name by setting the other part to null. In that case, the default name * determination rules are used for that part. *

      - * @class yfiles.graphml.QueryNameEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface QueryNameEventArgs extends yfiles.lang.EventArgs{} export class QueryNameEventArgs { /** * Initializes a new instance of the {@link yfiles.graphml.QueryNameEventArgs} class. - * @param {yfiles.graphml.IWriteContext} context The context in which the lookup shall take place. - * @param {yfiles.lang.Class} type The type that should be mapped. - * @constructor + * @param context The context in which the lookup shall take place. + * @param type The type that should be mapped. */ constructor(context:yfiles.graphml.IWriteContext,type:yfiles.lang.Class); /** @@ -7305,7 +8515,7 @@ declare namespace system{ */ handled:boolean; /** - * The fully qualified xml name that should be resolved to a type. + * The type for which the {@link yfiles.graphml.QueryNameEventArgs#result XML name} is queried. * @type {yfiles.lang.Class} */ type:yfiles.lang.Class; @@ -7323,16 +8533,15 @@ declare namespace system{ * If the event handler determines that it can resolve {@link yfiles.graphml.QueryTypeEventArgs#xmlName} to a type, it should place the result into the {@link yfiles.graphml.QueryTypeEventArgs#result} property and thus * mark the event as {@link yfiles.graphml.QueryTypeEventArgs#handled}. *

      - * @class yfiles.graphml.QueryTypeEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface QueryTypeEventArgs extends yfiles.lang.EventArgs{} export class QueryTypeEventArgs { /** * Initializes a new instance of the {@link yfiles.graphml.QueryTypeEventArgs} class. - * @param {yfiles.graphml.IParseContext} context The context in the lookup should take place. - * @param {yfiles.graphml.XmlName} xName The type that should be mapped. - * @constructor + * @param context The context in the lookup should take place. + * @param xName The type that should be mapped. */ constructor(context:yfiles.graphml.IParseContext,xName:yfiles.graphml.XmlName); /** @@ -7366,16 +8575,16 @@ declare namespace system{ } /** * An implementation that can read (a subset of) XAML formatted XML content. - * @class yfiles.graphml.XamlReader + * @class * @final */ export interface XamlReader extends Object{} export class XamlReader { /** * Deserializes the specified element node in the context to an instance. - * @param {yfiles.graphml.IParseContext} context The context. - * @param {Element} element The XML element node. - * @returns {Object} The instance that is described in the XML. + * @param context The context. + * @param element The XML element node. + * @returns The instance that is described in the XML. */ deserialize(context:yfiles.graphml.IParseContext,element:Element):Object; /** @@ -7400,15 +8609,15 @@ declare namespace system{ export interface IXamlPrefixMapper extends Object{ /** * Gets the namespace for the given prefix. - * @param {string} prefix The prefix. - * @returns {string} The namespace. + * @param prefix The prefix. + * @returns The namespace. * @abstract */ getNamespaceOfPrefix(prefix:string):string; /** * Gets the prefix of namespace. - * @param {string} ns The namespace. - * @returns {string} The prefix to use. + * @param ns The namespace. + * @returns The prefix to use. * @abstract */ getPrefixOfNamespace(ns:string):string; @@ -7428,7 +8637,7 @@ declare namespace system{ * {@link yfiles.graphml.GraphMLAttribute#name}. The same holds for specific members. *

      * @see yfiles.graphml.GraphMLAttribute - * @class yfiles.graphml.XamlSerializer + * @class * @final */ export interface XamlSerializer extends Object{} @@ -7438,8 +8647,8 @@ declare namespace system{ *

      * This implementation already provides the toplevel XML element with an appropriate tag name. *

      - * @param {yfiles.graphml.IWriteContext} context The current write context - * @param {Object} subject The actual object + * @param context The current write context + * @param subject The actual object */ serialize(context:yfiles.graphml.IWriteContext,subject:Object):void; /** @@ -7451,1248 +8660,452 @@ declare namespace system{ static INSTANCE:yfiles.graphml.XamlSerializer; static $class:yfiles.lang.Class; } - }export namespace collections{ - /** - * The default implementation for {@link yfiles.collections.IMap.}. - * Type parameter TKey: The type of the key elements of this dictionary. - * Type parameter TValue: The type of the value elements of this dictionary. - * @class yfiles.collections.Map. - * @implements {yfiles.collections.IMap.} - * @implements {yfiles.collections.ICollection.>} - * @implements {yfiles.collections.IEnumerable.>} - * @template TKey,TValue - */ - export interface Map extends Object,yfiles.collections.IMap,yfiles.collections.ICollection>,yfiles.collections.IEnumerable>{} - export class Map { - /** - * Creates a new instance. - * @param {Object} [options=null] The parameters to pass. - * @param options.entries An array of items which are added to this map. Each item will be added via the {@link yfiles.collections.Map.#add} method. - * @constructor - */ - constructor(options?:{entries?:Array}); - /** - * - * @param {yfiles.collections.MapEntry.} item - */ - add(item:yfiles.collections.MapEntry):void; - /** - * - */ - clear():void; - /** - * Whether this dictionary contains the given value. - * @param {TValue} value The value to search for. - * @returns {boolean} true if this dictionary contains the given value. - */ - containsValue(value:TValue):boolean; - /** - * - * @param {Array.>} array - * @param {number} arrayIndex - */ - copyTo(array:yfiles.collections.MapEntry[],arrayIndex:number):void; - /** - * - * @param {TKey} key - * @returns {boolean} - */ - delete(key:TKey):boolean; - /** - * - * @param {TKey} key - * @returns {TValue} - */ - get(key:TKey):TValue; - /** - * - * @returns {yfiles.collections.IEnumerator.>} - */ - getEnumerator():yfiles.collections.IEnumerator>; - /** - * - * @param {TKey} key - * @returns {boolean} - */ - has(key:TKey):boolean; - /** - * - * @param {yfiles.collections.MapEntry.} item - * @returns {boolean} - */ - includes(item:yfiles.collections.MapEntry):boolean; - /** - * - * @param {yfiles.collections.MapEntry.} item - * @returns {boolean} - */ - remove(item:yfiles.collections.MapEntry):boolean; - /** - * - * @param {TKey} key - * @param {TValue} value - */ - set(key:TKey,value:TValue):void; - /** - * - * @type {number} - */ - size:number; - /** - * - * @type {boolean} - */ - isReadOnly:boolean; - /** - * - * @type {yfiles.collections.ICollection.} - */ - keys:yfiles.collections.ICollection; - /** - * - * @type {yfiles.collections.ICollection.} - */ - values:yfiles.collections.ICollection; - static $class:yfiles.lang.Class; - } - /** - * Defines methods to manipulate a collection of objects with the same type. - * Type parameter T: The type of the elements in the collection. - * @interface - * @implements {yfiles.collections.IEnumerable.} - * @template T - */ - export interface ICollection extends Object,yfiles.collections.IEnumerable{ - /** - * Adds the given item to the collection. - * @param {T} item - * @abstract - */ - add(item:T):void; - /** - * Removes all items from this collection. - * @abstract - */ - clear():void; - /** - * Copies all elements of this collection into the given array. - * @param {Array.} array The array to copy the elements to. - * @param {number} arrayIndex The index in the given array where the first element should be copied to. - * @abstract - */ - copyTo(array:T[],arrayIndex:number):void; - /** - * Whether the given item is contained in this collection. - * @param {T} item The item to search for. - * @returns {boolean} true if the given item is contained in this collection. - * @abstract - */ - includes(item:T):boolean; - /** - * Removes the given item from this collection. - * @param {T} item The item to remove. - * @returns {boolean} Whether the item was removed from the collection. - * @abstract - */ - remove(item:T):boolean; - /** - * The number of elements in this collection. - * @abstract - * @type {number} - */ - size:number; - /** - * Whether this collection is read-only. - * @abstract - * @type {boolean} - */ - isReadOnly:boolean; - } - var ICollection:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A collection of value objects which are mapped to key objects and can be queried using their keys. - *

      - * The keys must have a well defined hashCode method that must not change between registering a value for the key and - * retrieving a value using the key. Thus it is advisable to use stable, i.e. immutable, objects as the key. - *

      - * Type parameter TKey: The type of the keys. - * Type parameter TValue: The type of the values. - * @interface - * @implements {yfiles.collections.ICollection.>} - * @template TKey,TValue - */ - export interface IMap extends Object,yfiles.collections.ICollection>{ - /** - * Removes the key/value pair which is represented by the given key. - * @param {TKey} key The key of the key/value pair to remove. - * @returns {boolean} true if a key/value pair with the given key was removed from this collection. - * @abstract - */ - delete(key:TKey):boolean; - /** - * Gets the value of the key/value pair with the given key. - *

      - * Setter: if there is already a key/value pair with the given key in the dictionary its value will be overridden. If not a - * new key/value pair will be added. - *
      - * Getter: if there is no key/value pair with the given key in this dictionary null will be returned. - *

      - * @param {TKey} key - * @returns {TValue} - * @see yfiles.collections.IMap.#set - * @abstract - */ - get(key:TKey):TValue; - /** - * Whether this dictionary's key collection contains the given key. - * @param {TKey} key The key to search for. - * @returns {boolean} true if this dictionary contains the given key. - * @abstract - */ - has(key:TKey):boolean; - /** - * Sets the value of the key/value pair with the given key. - *

      - * Setter: if there is already a key/value pair with the given key in the dictionary its value will be overridden. If not a - * new key/value pair will be added. - *
      - * Getter: if there is no key/value pair with the given key in this dictionary null will be returned. - *

      - * @param {TKey} key - * @param value - * @see yfiles.collections.IMap.#get - * @abstract - */ - set(key:TKey,value:TValue):void; - /** - * A {@link yfiles.collections.ICollection.} of the keys of this dictionary. - * @abstract - * @type {yfiles.collections.ICollection.} - */ - keys:yfiles.collections.ICollection; - /** - * A {@link yfiles.collections.ICollection.} of the values of this dictionary. - * @abstract - * @type {yfiles.collections.ICollection.} - */ - values:yfiles.collections.ICollection; - } - var IMap:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Defines ways to iterate over the items contained in this type by providing a method to get an {@link yfiles.collections.IEnumerator.}. - * Type parameter T: The type of the enumerable objects. - * @interface - * @template T - */ - export interface IEnumerable extends Object{ - /** - * - * @param {yfiles.collections.IEnumerable.} enumerable - * @returns {yfiles.collections.IEnumerable.} - */ - concat?(enumerable:yfiles.collections.IEnumerable):yfiles.collections.IEnumerable; - /** - * Returns the element at the given index in the enumerable. - * @param {number} index The index of the element to return. - * @returns {T} The element at the given index. - * @throws {Stubs.Exceptions.ArgumentError} If the index is not within the enumerable's range. - */ - elementAt?(index:number):T; - /** - * Whether all elements of the enumerable match the given predicate. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} predicate A function with the signature function(element):boolean which returns true if the element matches a condition. - * @param {Object} [thisArg=null] - * @returns {boolean} Whether all elements of the enumerable match the given predicate. - * @throws {Stubs.Exceptions.ArgumentError} e is null. - * @throws {Stubs.Exceptions.ArgumentError} predicate is null. - */ - every?(predicate:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):boolean; - /** - * Returns an enumerable which only contains elements of the source enumerable which match a given predicate. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} predicate A function with the signature function(element):boolean which returns true if the given element should be included in - * the resulting enumerable. - * @param {Object} [thisArg=null] - * @returns {yfiles.collections.IEnumerable.} An enumerable which contains the elements of the source enumeration which match the given predicate. - */ - filter?(predicate:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):yfiles.collections.IEnumerable; - /** - * Returns the first element of the enumerable which matches a given filter. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} [predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned - * @param {Object} [thisArg=null] - * @returns {T} The first matching element of the enumerable. - * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. - * @throws {Stubs.Exceptions.InvalidOperationError} If the enumerable does not contain a matching element. - */ - first?(predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):T; - /** - * Returns the first element of the enumerable which matches a given filter. - * @param {Object} options The parameters to pass. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} [options.predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned - * @param {Object} [options.thisArg=null] - * @returns {T} The first matching element of the enumerable. - * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. - * @throws {Stubs.Exceptions.InvalidOperationError} If the enumerable does not contain a matching element. - */ - first?(options:{predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object}):T; - /** - * Returns the first element of the enumerable, the first element of the enumerable which matches a given filter if - * sepcified, or null if there is no such element. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} [predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned - * @param {Object} [thisArg=null] - * @returns {T} The first element of the enumerable or null. - * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. - */ - firstOrDefault?(predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):T; - /** - * Returns the first element of the enumerable, the first element of the enumerable which matches a given filter if - * sepcified, or null if there is no such element. - * @param {Object} options The parameters to pass. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} [options.predicate=null] A function with the signature function(element):boolean which returns true if the given element should be returned - * @param {Object} [options.thisArg=null] - * @returns {T} The first element of the enumerable or null. - * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. - */ - firstOrDefault?(options:{predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object}):T; - /** - * Iterates over the enumerable and invokes the action for each element passing the value and index as arguments. - * @param {function(T, number, yfiles.collections.IEnumerable.): void} action The delegate to call. - * @param {Object} [thisArg=null] - */ - forEach?(action:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>void,thisArg?:Object):void; - /** - * Gets an {@link yfiles.collections.IEnumerator.} which can be used to iterate over the items in this instance - * @returns {yfiles.collections.IEnumerator.} The {@link yfiles.collections.IEnumerator.} which can be used to iterate over the items in this instance - * @abstract - */ - getEnumerator():yfiles.collections.IEnumerator; - /** - * Whether the given value is contained in the enumerable. - *

      - * The {@link Root.U.#$p default equality comparer} is used to compare the enumerable's contents with the given value. - *

      - * @param {T} value The value to search for. - * @returns {boolean} true if the enumerable contains the given value. - */ - includes?(value:T):boolean; - /** - * Returns the last element of the enumerable. - * @returns {T} The last element of the enumerable. - * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. - * @throws {Stubs.Exceptions.InvalidOperationError} If the enumerable is empty. - */ - last?():T; - /** - * Returns the last element of the enumerable or null if the enumerable is empty. - * @returns {T} The last element of the enumerable or null. - * @throws {Stubs.Exceptions.ArgumentError} If the given enumerable is null. - */ - lastOrDefault?():T; - /** - * Maps each element of the enumerable into a new element in a new enumerable. - * Type parameter TResult: The type of the mapped elements. - * @param {function(T, number, yfiles.collections.IEnumerable.): TResult} selector A function with the signature function(element, index):TResult which converts each element into a new element of the - * type TResult depending on the element's index. - * @param {Object} [thisArg=null] The optional value to use as this when executing the selector. - * @returns {yfiles.collections.IEnumerable.} A projection of the original enumerable. - * @template TResult - */ - map?(selector:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>TResult,thisArg?:Object):yfiles.collections.IEnumerable; - /** - * Converts a untyped enumerable into an enumerable with the given type. - *

      - * The source enumerable may contain elements which are not of the given type. Those elements will not be contained in the - * returned enumerable. - *

      - * Type parameter TResult. - * @returns {yfiles.collections.IEnumerable.} A typed enumerable. - * @template TResult - */ - ofType?(resultType:yfiles.lang.Class):yfiles.collections.IEnumerable; - /** - * Applies an func function over the enumerable's elements. - * Type parameter TAccumulate: The type of the accumulated value. - * @param {TAccumulate} seed The start value for the accumulator. - * @param {function(TAccumulate, T, number, yfiles.collections.IEnumerable.): TAccumulate} func A function with the signature function(seed,element):TAccumulate which "adds" (accumulates) a value depending on the - * element to the seed value and returns the result. - * @returns {TAccumulate} The final value of the accumulator. - * @template TAccumulate - */ - reduce?(seed:TAccumulate,func:(arg1:TAccumulate,arg2:T,arg3:number,arg4:yfiles.collections.IEnumerable)=>TAccumulate):TAccumulate; - /** - * Creates a flattened view of a given enumerable using the given selector function which returns an enumerable for each - * element of the source enumerable. - * Type parameter TResult. - * @param {function(T, number, yfiles.collections.IEnumerable.): yfiles.collections.IEnumerable.} selector A function with the signature function(element):IEnumerable which returns an enumerable for each element of the source - * enumerable. - * @param {Object} [thisArg=null] - * @returns {yfiles.collections.IEnumerable.} A flattened view of the given enumerable. The enumerables which are returned by the selector method for each element are - * concatenated in the result. - * @template TResult - */ - selectMany?(selector:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>yfiles.collections.IEnumerable,thisArg?:Object):yfiles.collections.IEnumerable; - /** - * Whether the enumerable contains any elements matching the given predicate. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} [predicate=null] A function with the signature function(element):boolean which returns true if the element matches a condition. - * @param {Object} [thisArg=null] - * @returns {boolean} Whether the enumerable contains any elements matching the given predicate. - * @throws {Stubs.Exceptions.ArgumentError} e is null. - */ - some?(predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):boolean; - /** - * Whether the enumerable contains any elements matching the given predicate. - * @param {Object} options The parameters to pass. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} [options.predicate=null] A function with the signature function(element):boolean which returns true if the element matches a condition. - * @param {Object} [options.thisArg=null] - * @returns {boolean} Whether the enumerable contains any elements matching the given predicate. - * @throws {Stubs.Exceptions.ArgumentError} e is null. - */ - some?(options:{predicate?:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object}):boolean; - /** - * Calculates the sum of the elements of the enumerable. - * @param {function(T, number, yfiles.collections.IEnumerable.): number} selector A function with the signature function(element):Number which returns a numeric value for the given element. - * @param {Object} [thisArg=null] - * @returns {number} The sum of the elements of the enumerable. - */ - sum?(selector:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>number,thisArg?:Object):number; - /** - * Returns elements from an enumerable as long as the given predicate is true. - * @param {function(T, number, yfiles.collections.IEnumerable.): boolean} predicate A function with the signature function(element):boolean which returns true as long as the elements should be added to - * the returned enumerable. - * @param {Object} [thisArg=null] - * @returns {yfiles.collections.IEnumerable.} A subset of the original enumerable. - */ - takeWhile?(predicate:(arg1:T,arg2:number,arg3:yfiles.collections.IEnumerable)=>boolean,thisArg?:Object):yfiles.collections.IEnumerable; - /** - * Creates an array with the values of the enumerable. - * @returns {Array.} An array with the enumerable's elements. - */ - toArray?():T[]; - /** - * Creates a {@link yfiles.collections.List.} with the values of the enumerable. - * @returns {yfiles.collections.List.} An {@link yfiles.collections.List.} with the enumerable's elements. - */ - toList?():yfiles.collections.List; - /** - * Returns an enumerable which contains the elements of the original enumerable in reverse order. - * @returns {yfiles.collections.IEnumerable.} An enumerable which contains the elements of the original enumerable in reverse order. - */ - toReversed?():yfiles.collections.IEnumerable; - /** - * Returns the number of elements contained in the enumerable. - * @returns The number of elements contained in the enumerable. - * @type {number} - */ - size?:number; - } - var IEnumerable:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Provides methods to iterate over a collection or list of elements of the same type. - *
      -     * var e = someList.getEnumerator();
      -     * // always move before you access
      -     * while(e.moveNext()) {
      -     *   // get the current element
      -     *   var current = e.current;
      -     * }
      -     * 
      - * - * Type parameter T. - * @interface - * @template T - */ - export interface IEnumerator extends Object{ - /** - * Moves this enumerator to the next element. - *

      - * A newly created enumerator's {@link yfiles.collections.IEnumerator.#current current position} is before the first element. Thus, this method must be called before first - * access to the {@link yfiles.collections.IEnumerator.#current} property. The same applies to the state after calling {@link yfiles.collections.IEnumerator.#reset}. - *

      - * @returns {boolean} true if the enumerator was moved to a valid position - * @abstract - */ - moveNext():boolean; - /** - * Resets the enumerator to its starting state. - *

      - * In other words: sets the current position before the first element. - *

      - * @abstract - */ - reset():void; - /** - * Gets the element at the enumerator's current position. - *

      - * This value is undefined if the enumerator is in initial state (after creation or - * {@link yfiles.collections.IEnumerator.#reset}) or has been moved past the end of the represented collection. - *

      - * @abstract - * @type {T} - */ - current:T; - } - var IEnumerator:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A read-write collection of objects of the same type. - * Type parameter T: The type of objects in the list. - * @interface - * @implements {yfiles.collections.ICollection.} - * @template T - */ - export interface IList extends Object,yfiles.collections.ICollection{ - /** - * Gets the item at the given index. - * @param {number} index The index of the item to access. - * @returns {T} The item at the given index. - * @see yfiles.collections.IList.#set - * @abstract - */ - get(index:number):T; - /** - * The index of the given item in the list. - * @param {T} item The item to search for. - * @returns {number} The index of the given item in the list. -1 if the item is not in the list. - * @abstract - */ - indexOf(item:T):number; - /** - * Inserts the given item at the given index. - * @param {number} index The index to insert the item at. - * @param {T} item The item to insert. - * @abstract - */ - insert(index:number,item:T):void; - /** - * Removes the item at the given index from the list. - * @param {number} index The index of the item to remove. - * @abstract - */ - removeAt(index:number):void; - /** - * Sets the item at the given index. - * @param {number} index The index of the item to access. - * @param value The item at the given index. - * @see yfiles.collections.IList.#get - * @abstract - */ - set(index:number,value:T):void; - } - var IList:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * The key/value pair of a {@link yfiles.collections.IMap.}. - * Type parameter TKey: The type of the key element. - * Type parameter TValue: The type of the value element. - * @class yfiles.collections.MapEntry. - * @template TKey,TValue - * @final - */ - export interface MapEntry extends Object{} - export class MapEntry { - /** - * Creates a new instance with the given key and value. - * @param {TKey} key The key for this pair. - * @param {TValue} value The value for this pair. - * @constructor - */ - constructor(key:TKey,value:TValue); - /** - * The key for this key/value pair. - * @type {TKey} - */ - key:TKey; - /** - * The value for this key/value pair. - * @type {TValue} - */ - value:TValue; - static $class:yfiles.lang.Class; - } - /** - * Default implementation of {@link yfiles.collections.IList.}. - *

      - * This implementation provides fast random indexed access. However, removing or adding elements from the beginning or in - * the middle of the list will slower. - *

      - * Type parameter T: The type of the list's elements. - * @class yfiles.collections.List. - * @implements {yfiles.collections.IList.} - * @template T - */ - export interface List extends Object,yfiles.collections.IList{} - export class List { - /** - * Creates a new instance and fills it with the elements of the given enumerable. - * @param {yfiles.collections.IEnumerable.} enumerable The enumerable to fill the list with. - * @constructor - */ - constructor(enumerable:yfiles.collections.IEnumerable); - /** - * Creates a new instance. - * @param {Object} [options=null] The parameters to pass. - * @param options.items An array of items which are added to this list. Each item will be added via the {@link yfiles.collections.List.#add} method. - * @constructor - */ - constructor(options?:{items?:Array}); - /** - * - * @param {T} item - */ - add(item:T):void; - /** - * Adds the elements of the given collection to this list. - * @param {yfiles.collections.IEnumerable.} enumerable The collection to add. - */ - addRange(enumerable:yfiles.collections.IEnumerable):void; - /** - * Searches the (sorted) list for the given item. - *

      - * This search is done as a binary search, therefore the list must be sorted. The given comparer is used to compare the - * elements to each other. - *

      - * @param {T} item The item to search for. - * @param {yfiles.collections.IComparer.} comparer The comparer to use for comparing the elements. - * @returns {number} The index of the item in the list. -1 if the item is not found. - */ - binarySearch(item:T,comparer:yfiles.collections.IComparer):number; - /** - * - */ - clear():void; - /** - * - * @param {Array.} array - * @param {number} arrayIndex - */ - copyTo(array:T[],arrayIndex:number):void; - /** - * Searches the list for the first element for which match returns true. - * @param {function(T): boolean} match A predicate function with the signature function(o:Object):boolean which returns true if o matches the conditions of the - * element to search for. - * @returns {T} The first element for which match returns true or null is no such element in the list. - */ - find(match:(obj:T)=>boolean):T; - /** - * Searches the list for the first element for which match returns true and returns its index. - * @param {function(T): boolean} match A predicate function with the signature function(o:Object):boolean which returns true if o matches the conditions of the - * element to search for. - * @returns {number} The index of the first element for which match returns true or -1 if there is no such element in the list. - */ - findIndex(match:(obj:T)=>boolean):number; - /** - * Creates a new list with the given array used as the live backing store. - *

      - * Modifying the list or the array will modify both instances. - *

      - * @param {Array.} array The array to create a list view over from. - * @returns {yfiles.collections.List.} A list backed by the given array. - * @static - */ - static fromArray(array:T[]):yfiles.collections.List; - /** - * - * @param {number} index - * @returns {T} - */ - get(index:number):T; - /** - * - * @returns {yfiles.collections.IEnumerator.} - */ - getEnumerator():yfiles.collections.IEnumerator; - /** - * - * @param {T} item - * @returns {boolean} - */ - includes(item:T):boolean; - /** - * - * @param {T} item - * @returns {number} - */ - indexOf(item:T):number; - /** - * - * @param {number} index - * @param {T} item - */ - insert(index:number,item:T):void; - /** - * - * @param {T} item - * @returns {boolean} - */ - remove(item:T):boolean; - /** - * Removes all elements for which match returns true. - * @param {function(T): boolean} match A predicate function with the signature function(o:Object):boolean which returns true if o matches the conditions of the - * element to search for. - * @returns {number} The number of elements which were removed. - */ - removeAll(match:(obj:T)=>boolean):number; - /** - * - * @param {number} index - */ - removeAt(index:number):void; - /** - * Removes a given count of elements starting from the given index. - * @param {number} index The index of the first element to remove. - * @param {number} count The number of elements to remove. - */ - removeRange(index:number,count:number):void; - /** - * Reverses the order of the elements in the list. - */ - reverse():void; - /** - * - * @param {number} index - * @param {T} value - */ - set(index:number,value:T):void; - /** - * Sorts all elements in the list using the given comparison function. - * @param {function(Object, Object): number} comparison The comparison function to use. - */ - sort(comparison:(arg1:Object,arg2:Object)=>number):void; - /** - * Sorts all elements in the list using the given comparer. - * @param {yfiles.collections.IComparer.} comparer The comparer to use. - */ - sort(comparer:yfiles.collections.IComparer):void; - /** - * Sorts all elements in list using the default comparer. - */ - sort():void; - /** - * Copies the elements of this list into an array. - * @returns {Array.} An array containing the elements of this list. - */ - toArray():T[]; - /** - * - * @type {number} - */ - size:number; - /** - * - * @type {boolean} - */ - isReadOnly:boolean; - capacity:number; - static $class:yfiles.lang.Class; - } - /** - * Provides a method to compare two objects of the same type. - * Type parameter T: The type of the objects to compare. - * @interface - * @template T - */ - export interface IComparer extends Object{ - /** - * Compares two objects of type T. - * @param {T} x The first object. - * @param {T} y The second object. - * @returns {number} - *
        - *
      • -1: x is less than y
      • - *
      • 0: x is equal to y
      • - *
      • 1: x is greater than y
      • - *
      - * @abstract - */ - compare(x:T,y:T):number; - } - var IComparer:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A simple default implementation of an {@link yfiles.collections.IObservableCollection.} that is backed by an ordinary {@link yfiles.collections.ICollection.} - * Type parameter T: The type of the elements contained in this collection. - * @class yfiles.collections.ObservableCollection. - * @implements {yfiles.collections.IObservableCollection.} - * @template T - */ - export interface ObservableCollection extends Object,yfiles.collections.IObservableCollection{} - export class ObservableCollection { - /** - * Creates a new instance using a provided collection as the backing store. - * @param {yfiles.collections.ICollection.} [items=null] The collection to use as the backing store. If no collection is provided a {@link yfiles.collections.List.} will be used. - * @constructor - */ - constructor(items?:yfiles.collections.ICollection); - /** - * Adds the item the the collection and triggers the {@link yfiles.collections.ObservableCollection.#addItemAddedListener ItemAdded} event. - *

      - * This implementation calls the {@link yfiles.collections.ObservableCollection.#onItemAdded} method. - *

      - * @param {T} item The item to add to the collection. - */ - add(item:T):void; - /** - * Clears this collection, triggering an {@link yfiles.collections.ObservableCollection.#addItemRemovedListener ItemRemoved} event for each element removed. - * @see yfiles.collections.ObservableCollection.#onItemRemoved - */ - clear():void; - /** - * Copies the items to the given array. - * @param {Array.} array - * @param {number} arrayIndex - */ - copyTo(array:T[],arrayIndex:number):void; - /** - * Returns an enumerator over the elements in this collection. - * @returns {yfiles.collections.IEnumerator.} - */ - getEnumerator():yfiles.collections.IEnumerator; - /** - * Checks for containment of the item in this collection. - * @param {T} item The item to check. - * @returns {boolean} Whether the item is contained in this collection. - */ - includes(item:T):boolean; - /** - * Callback method that will trigger the {@link yfiles.collections.ObservableCollection.#addItemAddedListener ItemAdded} event. - * @param {T} item The item that has just been added to the collection. - * @protected - */ - onItemAdded(item:T):void; - /** - * Callback method that will trigger the {@link yfiles.collections.ObservableCollection.#addItemChangedListener ItemChanged} event. - * @param {T} item The item that has changed. - * @protected - */ - onItemChanged(item:T):void; - /** - * Callback method that will trigger the {@link yfiles.collections.ObservableCollection.#addItemRemovedListener ItemRemoved} event. - * @param {T} item The item that has just been removed from the collection. - * @protected - */ - onItemRemoved(item:T):void; - /** - * Method that may be called by client code to trigger an {@link yfiles.collections.ObservableCollection.#addItemChangedListener ItemChanged} event. - * @param {T} item The item to trigger the change event for. - * @see yfiles.collections.ObservableCollection.#onItemChanged - */ - publishItemChanged(item:T):void; - /** - * Tries to remove the item from the collection and triggers the {@link yfiles.collections.ObservableCollection.#addItemRemovedListener ItemRemoved} event. - * @param {T} item The item to remove. - * @returns {boolean} Whether the item has been removed. - * @see yfiles.collections.ObservableCollection.#onItemRemoved - */ - remove(item:T):boolean; - /** - * Returns the number of elements in this collection. - * @type {number} - */ - size:number; - /** - * Checks whether this collection is read only. - * @type {boolean} - */ - isReadOnly:boolean; - /** - * Gets the collection used internally as the backing store. - *

      - * Normally code should not use this method to gain access to the collection in order to modify it. - *

      - * @returns The backing store of this observable collection. - * @type {yfiles.collections.ICollection.} - */ - items:yfiles.collections.ICollection; - /** - * Adds the given listener for the ItemAdded event that occurs when an item has been added to this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.collections.ObservableCollection.#removeItemAddedListener - */ - addItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the ItemAdded event that occurs when an item has been added to this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.collections.ObservableCollection.#addItemAddedListener - */ - removeItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.collections.ObservableCollection.#removeItemRemovedListener - */ - addItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.collections.ObservableCollection.#addItemRemovedListener - */ - removeItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the ItemChanged event that occurs when an item has been changed inside this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.collections.ObservableCollection.#removeItemChangedListener - */ - addItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the ItemChanged event that occurs when an item has been changed inside this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.collections.ObservableCollection.#addItemChangedListener - */ - removeItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - static $class:yfiles.lang.Class; - } - /** - * An {@link yfiles.collections.IMapper.} implementation backed by a {@link yfiles.collections.IMap.}. - *

      - * A {@link yfiles.collections.Mapper.#defaultValue} can be set that is returned for keys that don't have an explicit value set. - *

      - *

      - * It is legal to use null as key, which can be assigned a value just like other keys. - *

      - * Type parameter K. - * Type parameter V. - * @class yfiles.collections.Mapper. - * @implements {yfiles.collections.IMapper.} - * @template K,V - * @final - */ - export interface Mapper extends Object,yfiles.collections.IMapper{} - export class Mapper { - /** - * Creates an instance using the provided {@link yfiles.collections.Map.} as the backing store. - *

      - * The value for the null item is stored separately. - *

      - * @param {yfiles.collections.IMap.} dictionary - * @constructor - */ - constructor(dictionary:yfiles.collections.IMap); - /** - * Creates an instance using the provided {@link yfiles.collections.Map.} as the backing store. - *

      - * The value for the null item is stored separately. - *

      - * @param {Object} options The parameters to pass. - * @param {yfiles.collections.IMap.} options.dictionary - * @param {V} options.defaultValue The default value to return if no specific value has been set for a given key. - *

      - * This option sets the {@link yfiles.collections.Mapper.#defaultValue} property on the created object. - *

      - * @constructor - */ - constructor(options:{dictionary:yfiles.collections.IMap,defaultValue?:V}); - /** - * Creates an instance using a {@link yfiles.collections.Map.} as the backing store. - *

      - * The value for the null item is stored separately. - *

      - * @param {Object} [options=null] The parameters to pass. - * @param {V} options.defaultValue The default value to return if no specific value has been set for a given key. - *

      - * This option sets the {@link yfiles.collections.Mapper.#defaultValue} property on the created object. - *

      - * @constructor - */ - constructor(options?:{defaultValue?:V}); - /** - * Calls {@link yfiles.collections.Map.#clear} on the backing implementation. - */ - clear():void; - /** - * - * @param {K} key - */ - delete(key:K):void; - /** - * - * @param {K} key - * @returns {V} - */ - get(key:K):V; - /** - * - * @param {K} key - * @param {V} value - */ - set(key:K,value:V):void; - /** - * Gets an enumerable over all entries in this (dictionary based) mapper. - * @type {yfiles.collections.IEnumerable.>} - */ - entries:yfiles.collections.IEnumerable>; - /** - * Gets or sets the default value to return if no specific value has been set for a given key. - * @type {V} - */ - defaultValue:V; - static $class:yfiles.lang.Class; - } - /** - * The interface for a collection that will notify registered event handlers of changes to its contents. - * Type parameter T: The type of the items in the collection. - * @see yfiles.collections.ObservableCollection. - * @interface - * @implements {yfiles.collections.ICollection.} - * @template T - */ - export interface IObservableCollection extends Object,yfiles.collections.ICollection{ - /** - * Adds the given listener for the ItemAdded event that occurs when an item has been added to this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.collections.IObservableCollection.#removeItemAddedListener - * @abstract - */ - addItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the ItemAdded event that occurs when an item has been added to this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.collections.IObservableCollection.#addItemAddedListener - * @abstract - */ - removeItemAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.collections.IObservableCollection.#removeItemRemovedListener - * @abstract - */ - addItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the ItemRemoved event that occurs when an item has been removed from this collection. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.collections.IObservableCollection.#addItemRemovedListener - * @abstract - */ - removeItemRemovedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the ItemChanged event that occurs when an item in this collection has changed - * significantly. - *

      - * It is up to the implementation whether and when to trigger this event. - *

      - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.collections.IObservableCollection.#removeItemChangedListener - * @abstract - */ - addItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the ItemChanged event that occurs when an item in this collection has changed - * significantly. - *

      - * It is up to the implementation whether and when to trigger this event. - *

      - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.collections.IObservableCollection.#addItemChangedListener - * @abstract - */ - removeItemChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - } - var IObservableCollection:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * An extension to the {@link yfiles.collections.IEnumerable.} interface that allows for indexed access and retrieval of the element count. - *

      - * This interface is like a rudimentary read-only {@link yfiles.collections.IList.} - *

      - * Type parameter T: The type of the contained elements. - * @interface - * @implements {yfiles.collections.IEnumerable.} - * @template T - */ - export interface IListEnumerable extends Object,yfiles.collections.IEnumerable{ - /** - * Gets the i-th element in the collection. - * @param {number} i the zero-based index of the item in this collection - * @returns {T} the item for the given index - * @throws {Stubs.Exceptions.ArgumentError} i is not a valid index in the {@link yfiles.collections.IListEnumerable.}. - * @abstract - */ - get(i:number):T; - /** - * Gets the number of elements in this collection. - * @abstract - * @type {number} - */ - size:number; - } - var IListEnumerable:{ - /** - * An empty, immutable instance of {@link yfiles.collections.IListEnumerable.}. - * @const - * @static - * @type {yfiles.collections.IListEnumerable.} - */ - EMPTY?:yfiles.collections.IListEnumerable; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Wraps a simple {@link yfiles.collections.IEnumerable.} into a {@link yfiles.collections.IListEnumerable.}. - *

      - * This implementation is optimized for {@link yfiles.collections.IList.} and {@link yfiles.collections.ICollection.}, as well as {@link Object} {@link yfiles.collections.IEnumerable.}s. - *

      - * Type parameter T: The type of the enumerable. - * @class yfiles.collections.ListEnumerable. - * @implements {yfiles.collections.IListEnumerable.} - * @template T - * @final - */ - export interface ListEnumerable extends Object,yfiles.collections.IListEnumerable{} - export class ListEnumerable { - /** - * Creates a new instance using the given backing enumerable. - * @param {yfiles.collections.IEnumerable.} backingEnumerable The enumerable to back this instance. - * @constructor - */ - constructor(backingEnumerable:yfiles.collections.IEnumerable); - /** - * Creates a new instance with a backing {@link yfiles.collections.List.} as the backing store. - * @constructor - */ - constructor(); - /** - * - * @param {number} i - * @returns {T} - */ - get(i:number):T; - /** - * - * @returns {yfiles.collections.IEnumerator.} - */ - getEnumerator():yfiles.collections.IEnumerator; - /** - * Gets the backing enumerable. - * @type {yfiles.collections.IEnumerable.} - */ - backingEnumerable:yfiles.collections.IEnumerable; - /** - * - * @type {number} - */ - size:number; - static $class:yfiles.lang.Class; - } - /** - * Event argument class used by {@link yfiles.collections.IObservableCollection.} and similar that holds a specific item that is related to the event. - * Type parameter T: The type of the item contained in the event. - * @class yfiles.collections.ItemEventArgs. - * @extends {yfiles.lang.EventArgs} - * @template T - */ - export interface ItemEventArgs extends yfiles.lang.EventArgs{} - export class ItemEventArgs { - /** - * Creates a new event argument for the given item. - * @param {T} item The item which is the subject of the event. - * @constructor - */ - constructor(item:T); - /** - * Gets the item that is the subject of the event. - * @type {T} - */ - item:T; - static $class:yfiles.lang.Class; - } - /** - * An interface for simple typed dictionary-like implementations. - *

      - * {@link yfiles.collections.IMapper.}s are most prominently used when interfacing with {@link yfiles.layout.ILayoutAlgorithm layout algorithms} and {@link yfiles.graphml.GraphMLIOHandler GraphML}. {@link yfiles.graph.IGraph} also provides the {@link yfiles.graph.IGraph#mapperRegistry} - * to add additional information to a graph. - *

      - * Type parameter K: The type of element this interface accepts as keys for the mapping. - * Type parameter V: The type of element this interface accepts as values for the mapping. - *

      - * Using {@link yfiles.collections.IMapper.} is described in the section {@link @DGUIDE_PREFIX@/customizing_graph-binding_data.html Associating Data with Graph Elements}. - *

      - *

      Related demos:

      - *
        - *
      • Demo: DragAndDropForm, demo.yfiles.input.draganddrop
      • - *
      - * @see yfiles.collections.Mapper. - * @interface - * @template K,V - */ - export interface IMapper extends Object{ - /** - * Gets the value for a given key in the mapping. - *

      - * Setting a value for an already existing key overwrites the previous value. - *

      - *

      - * It depends on the specific implementation of the mapper whether a mapping can be removed. If an implementation provides - * a way to remove a mapping, that should be preferred over setting a null value. For example, {@link yfiles.collections.Mapper.} provides the {@link yfiles.collections.Mapper.#delete} - * method. - *

      - * @param {K} key The key of the mapping. - * @returns {V} The value. - * @see yfiles.collections.IMapper.#set - * @abstract - */ - get(key:K):V; - /** - * Sets the value for a given key in the mapping. - *

      - * Setting a value for an already existing key overwrites the previous value. - *

      - *

      - * It depends on the specific implementation of the mapper whether a mapping can be removed. If an implementation provides - * a way to remove a mapping, that should be preferred over setting a null value. For example, {@link yfiles.collections.Mapper.} provides the {@link yfiles.collections.Mapper.#delete} - * method. - *

      - * @param {K} key The key of the mapping. - * @param value The value. - * @see yfiles.collections.IMapper.#get - * @abstract - */ - set(key:K,value:V):void; - } - var IMapper:{ - /** - * Creates a constant mapper that will always return the constant. - * Type parameter K: The type of the key to use. - * Type parameter V: The type of the value to use. - * @param {V} constant The constant to return in {@link yfiles.collections.IMapper.#get} - * @returns {yfiles.collections.IMapper.} A new instance that will always return the same constant. - * @template K,V - * @static - */ - fromConstant?(constant:V):yfiles.collections.IMapper; - /** - * Create an implementation of {@link yfiles.collections.IMapper.} that delegates {@link yfiles.collections.IMapper.#get} getter calls to the provided handler. - *

      - * The implementation returned silently ignores calls to the {@link yfiles.collections.IMapper.#get} setter. - *

      - * Type parameter K: The type of the key to use. - * Type parameter V: The type of the value to use. - * @param {function(K): V} getter The delegate to delegate {@link yfiles.collections.IMapper.#get} getter calls to. - * @returns {yfiles.collections.IMapper.} An implementation that delegates to getter. - * @template K,V - * @static - */ - fromDelegate?(getter:(key:K)=>V):yfiles.collections.IMapper; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - }export namespace system{ }export namespace view{ + /** + * Runs {@link yfiles.view.IAnimation animations} in a {@link yfiles.view.CanvasComponent}. + *

      + * For running {@link yfiles.view.IAnimation} instances the method {@link yfiles.view.Animator#animate} can be used. For simpler cases of + * custom animations there are also overloads that take an animation callback. + *

      + * @see yfiles.view.IAnimation + * @class + */ + export interface Animator extends Object{} + export class Animator { + /** + * Initializes a new instance of the {@link yfiles.view.Animator} class for the given {@link yfiles.view.CanvasComponent}. + *

      + * Using this constructor this instance will query an instance of {@link yfiles.input.WaitInputMode} from the {@link yfiles.view.CanvasComponent#lookup canvas's context} to + * automatically set the {@link yfiles.input.WaitInputMode#waiting} property during animations if {@link yfiles.view.Animator#allowUserInteraction} is set to false. The animation is not started until {@link yfiles.view.Animator#animate} + * or {@link yfiles.view.Animator#animate} is called. + *

      + * @param canvas The canvas control. + */ + constructor(canvas:yfiles.view.CanvasComponent); + /** + * Initializes a new instance of the {@link yfiles.view.Animator} class for the given {@link yfiles.view.CanvasComponent}. + *

      + * Using this constructor this instance will query an instance of {@link yfiles.input.WaitInputMode} from the {@link yfiles.view.CanvasComponent#lookup canvas's context} to + * automatically set the {@link yfiles.input.WaitInputMode#waiting} property during animations if {@link yfiles.view.Animator#allowUserInteraction} is set to false. The animation is not started until {@link yfiles.view.Animator#animate} + * or {@link yfiles.view.Animator#animate} is called. + *

      + * @param {Object} options The parameters to pass. + * @param options.canvas The canvas control. + * @param {boolean} options.allowUserInteraction Determines whether user interaction should be allowed during the animation. + *

      + * This option sets the {@link yfiles.view.Animator#allowUserInteraction} property on the created object. + *

      + * @param {boolean} options.autoInvalidation A value indicating whether to automatically {@link yfiles.view.Animator#invalidateComponent invalidate the control} this instance has been created for. + *

      + * This option sets the {@link yfiles.view.Animator#autoInvalidation} property on the created object. + *

      + */ + constructor(options:{canvas:yfiles.view.CanvasComponent,allowUserInteraction?:boolean,autoInvalidation?:boolean}); + /** + * Animates the given animation instance and triggers the callback upon completion. + * @param animation The animation to perform. + * @returns + */ + animate(animation:yfiles.view.IAnimation):Promise; + /** + * Starts animating the given animation for the specified duration. + * @param callback The callback to use for the animation. + * @param duration The duration in milliseconds that the animation should last. + * @returns + */ + animate(callback:(time:number)=>void,duration:yfiles.lang.TimeSpan):Promise; + /** + * Stops all running animations. + */ + destroy():void; + /** + * Invalidates the control if {@link yfiles.view.Animator#autoInvalidation} is set to true. + *

      + * This implementation calls {@link yfiles.view.CanvasComponent#updateVisual }. + *

      + * @param canvas The control. + * @protected + */ + invalidateComponent(canvas:yfiles.view.CanvasComponent):void; + /** + * Determines whether user interaction should be allowed during the animation. + *

      + * If false, the {@link yfiles.input.WaitInputMode} is queried from the {@link yfiles.view.CanvasComponent} and {@link yfiles.input.WaitInputMode#waiting} is enabled during the + * animation. The default is false. + *

      + * @type {boolean} + */ + allowUserInteraction:boolean; + /** + * The control the animations are run on. + * @type {yfiles.view.CanvasComponent} + */ + canvasComponent:yfiles.view.CanvasComponent; + /** + * Gets or sets a value indicating whether to automatically {@link yfiles.view.Animator#invalidateComponent invalidate the control} this instance has been created for. + *

      + * The default is true. + *

      + * @type {boolean} + */ + autoInvalidation:boolean; + static $class:yfiles.lang.Class; + } + /** + * An interface for animations that can be run by {@link yfiles.view.Animator}. + *

      + * Instances of classes implementing this interface change their state according to a relative animation time. The + * animation time is a double between 0 for the start of the animation and 1 for the end of the animation. + *

      + *
        + *
      • An animated object is first created using the constructor of a subclass.
      • + *
      • Immediately before the animation a client calls {@link yfiles.view.IAnimation#initialize}.
      • + *
      • + * To change the state of the animated object a client does a series of calls to + * {@link yfiles.view.IAnimation#animate}, usually with an increasing relative time parameter. + *
      • + *
      • If the animation is done, the client calls {@link yfiles.view.IAnimation#cleanup} once.
      • + *
      • + * While {@link yfiles.view.IAnimation#animate} uses a relative time scheme, there might be an absolute time value for the + * preferred duration of the whole sequence of animation steps. Since an IAnimation instance has no control on the number + * of {@link yfiles.view.IAnimation#animate} calls or the intervals between them, the preferred duration is only a hint on how long + * the animation should take. Clients can ask for that hint using {@link yfiles.view.IAnimation#preferredDuration} and try to find a suitable sequence of {@link yfiles.view.IAnimation#animate} + * calls in order to fulfill the preference. + *
      • + *
      + * @interface + */ + export interface IAnimation extends Object{ + /** + * Does the animation according to the relative animation time. + *

      + * The animation starts with the time 0 and ends with time 1. + *

      + * @param time the animation time [0,1] + * @abstract + */ + animate(time:number):void; + /** + * Cleans up after an animation has finished. + * @abstract + */ + cleanup():void; + /** + * Creates an eased animation for the given base animation. + *

      + * The animation speed linearly increases upto a easeIn and linearly decreases from + * easeOut. Between those two points, the animation speed is constant. + *

      + *

      + * The duration of the ease in and ease out is determined by a mapping [0,1] → [0,1]. The mapping has to be increasing to + * preserve the order of the frames in the decorated animation. In general, we consider continuously differentiable + * functions f where integral of f′ equals 1 a suitable choice for the mapping. + *

      + * @param [easeIn=0.5] The ratio for the ease-in time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. + * @param [easeOut=0.5] The ratio for the ease-out time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. + * @returns + */ + createEasedAnimation?(easeIn?:number,easeOut?:number):yfiles.view.IAnimation; + /** + * Creates an eased animation for the given base animation. + *

      + * The animation speed linearly increases upto a easeIn and linearly decreases from + * easeOut. Between those two points, the animation speed is constant. + *

      + *

      + * The duration of the ease in and ease out is determined by a mapping [0,1] → [0,1]. The mapping has to be increasing to + * preserve the order of the frames in the decorated animation. In general, we consider continuously differentiable + * functions f where integral of f′ equals 1 a suitable choice for the mapping. + *

      + * @param {Object} options The parameters to pass. + * @param [options.easeIn=0.5] The ratio for the ease-in time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. + * @param [options.easeOut=0.5] The ratio for the ease-out time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. + * @returns + */ + createEasedAnimation?(options:{easeIn?:number,easeOut?:number}):yfiles.view.IAnimation; + /** + * Initializes the animation. + *

      + * Call this method once before subsequent calls to {@link yfiles.view.IAnimation#animate}. + *

      + * @abstract + */ + initialize():void; + /** + * Gets the preferred duration of the animation. + * @abstract + * @type {yfiles.lang.TimeSpan} + */ + preferredDuration:yfiles.lang.TimeSpan; + } + var IAnimation:{ + /** + * Creates a new {@link yfiles.view.IAnimation} that animates the given edge's bends from its current shape linearly to the shape + * given by the endBends and final port locations. + *

      + * The bends of the edge layout are animated from their current location to their target locations. It is assumed that the + * edge style is a polyline style and the control points are the bends accordingly. The animation works for other styles + * too, but the effect might not be as expected. The number of bends in endBends can be different to the current number of + * bends. This will result in the animation automatically removing bends at the end of the animation or inserting new bends + * accordingly at the beginning of the animation. + *

      + *

      + * The source and target points are also animated to new locations. However, the ports will not be moved by this animation. + * Instead a separate {@link yfiles.view.IAnimation#createPortAnimation animation for the ports} is needed to actually move + * {@link yfiles.graph.IPort}s at the ends of the edge if desired. + *

      + * @param graph The graph the animated edge belongs to. + * @param edge The edge layout to animate. + * @param endBends The bend positions after the animation. + * @param endSourceLocation The absolute position of the source port after the animation. + * @param endTargetLocation The absolute position of the target port after the animation. + * @param preferredDuration The preferred duration of the animation in milliseconds. + * @returns + * @static + */ + createEdgeSegmentAnimation?(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,endBends:yfiles.geometry.IPoint[],endSourceLocation:yfiles.geometry.Point,endTargetLocation:yfiles.geometry.Point,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; + /** + * Creates a new {@link yfiles.view.IAnimation} that animates the given layout of all types of graph items. + * @param graph The graph for which the layout should be animated. + * @param targetNodeLayouts The node layouts after the animation. + * @param targetBendLocations The bend locations after the animation, for each edge the points are interpreted as the position of the bends along the + * edge in the given order. + * @param targetLayoutParameters The label model parameters for each label after the animation. + * @param targetPortLocations The {@link }s for each {@link } in the graph that will be morphed. + * @param preferredDuration The preferred duration of the animation in milliseconds. + * @returns + * @static + */ + createGraphAnimation?(graph:yfiles.graph.IGraph,targetNodeLayouts:yfiles.collections.IMapper,targetBendLocations:yfiles.collections.IMapper,targetPortLocations:yfiles.collections.IMapper,targetLayoutParameters:yfiles.collections.IMapper,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; + /** + * Creates a new {@link yfiles.view.IAnimation} that animates the given label from its current layout linearly to the layout given + * by the targetLayoutParameter. + *

      + * This animation will as a side effect assign the targetLayoutParameter to the label at the {@link Root.IG#cleanup end of the animation}. + *

      + * @param graph The graph that contains the labels. + * @param label The label to animate the parameter of. + * @param targetLayoutParameter The target parameter of the label. + * @param preferredDuration The preferred duration of the animation. + * @returns A new instance of {@link }. + * @static + */ + createLabelAnimation?(graph:yfiles.graph.IGraph,label:yfiles.graph.ILabel,targetLayoutParameter:yfiles.graph.ILabelModelParameter,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; + /** + * Creates a new {@link yfiles.view.IAnimation} instance that animates the current graph to the layout given by a {@link yfiles.layout.CopiedLayoutGraph} + * instance. + *

      + * The returned instance is suitable for morphing an {@link yfiles.graph.IGraph} to a layout computed by one of the layout + * algorithms. + *

      + *

      + * While it is usually recommended to use {@link yfiles.layout.LayoutExecutor} to handle layout calculation and subsequent + * animation, the {@link yfiles.view.IAnimation} produced by this method can be used manually, as well: + *

      + * @param graph the graph for which the layout should be animated + * @param layoutGraph the {@link } that contains all target layout information + * @param preferredDuration the preferred duration of the animation + * @returns + * @static + */ + createLayoutAnimation?(graph:yfiles.graph.IGraph,layoutGraph:yfiles.layout.CopiedLayoutGraph,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; + /** + * Creates a new {@link yfiles.view.IAnimation} that animates the given node from its current layout to the new given + * targetLayout. + * @param graph The graph the animated node belongs to. + * @param node The node whose {@link #layout} to animate. + * @param targetLayout The expected node layout after the animation. + * @param preferredDuration The preferred duration of the animation. + * @returns A new instance of {@link }. + * @static + */ + createNodeAnimation?(graph:yfiles.graph.IGraph,node:yfiles.graph.INode,targetLayout:yfiles.geometry.IRectangle,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; + /** + * Creates an {@link yfiles.view.IAnimation} according to the composite design pattern that animates multiple animations in + * parallel. + *

      + * The animations can be synchronized to the longest running animation. + *

      + * @param animations The animations to run in parallel. + * @param [synchronized=true] Whether all child animations should be adjusted to have the same (maximum) {@link #preferredDuration}. By default this is enabled. + * @returns A new instance that is the composite of the given animations. + * @static + */ + createParallelAnimation?(animations:yfiles.collections.IEnumerable,synchronized?:boolean):yfiles.view.IAnimation; + /** + * Creates a new instance of an {@link yfiles.view.IAnimation} that animates the given {@link yfiles.geometry.IMutablePoint} along a path. + * @param path The path to animate the point along. + * @param animationPoint The mutable point instance that will be manipulated by the animation. + * @param preferredDuration The preferred duration of the animation. + * @returns + * @static + */ + createPathAnimation?(path:yfiles.geometry.GeneralPath,animationPoint:yfiles.geometry.IMutablePoint,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; + /** + * Creates a new {@link yfiles.view.IAnimation} that animates the given port from its current location to the new location given by + * the targetLocationParameter. + *

      + * This animation will as a side effect assign the targetLocationParameter to the port at the {@link Root.IG#cleanup end of the animation}. + *

      + * @param graph The graph that contains the port. + * @param port The port to animate. + * @param targetLocationParameter The parameter to linearly interpolate to. + * @param preferredDuration The {@link #preferredDuration preferred duration} of this animation. + * @returns A new instance of {@link }. + * @static + */ + createPortAnimation?(graph:yfiles.graph.IGraph,port:yfiles.graph.IPort,targetLocationParameter:yfiles.graph.IPortLocationModelParameter,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; + /** + * Creates a new {@link yfiles.view.IAnimation} for the given table that animates the table and its {@link yfiles.graph.IStripe stripes}. + *

      + * Note that only the sizes of + * leaf stripes, i.e. those without child stripes, are considered. The sizes of a stripe with children is implicitly determined by its + * contents. + *

      + *

      + * For more control of the animation, implement a custom {@link yfiles.view.TableAnimation} and override method + * {@link yfiles.view.TableAnimation#createStripeAnimation}. + *

      + * @param table The table to animate. + * @param columnLayout The sizes of the leaf columns, in natural order. + * @param rowLayout The sizes of the leaf rows, in natural order. + * @returns + * @static + */ + createTableAnimation?(table:yfiles.graph.ITable,columnLayout:number[],rowLayout:number[]):yfiles.view.IAnimation; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Animates changing the viewport bounds and the zoom factor for a {@link yfiles.view.CanvasComponent}. + * @class + * @implements {yfiles.view.IAnimation} + */ + export interface ViewportAnimation extends Object,yfiles.view.IAnimation{} + export class ViewportAnimation { + /** + * Creates a new instance of {@link yfiles.view.ViewportAnimation}. + * @param canvas The canvas control. + * @param targetBounds The target world bounds for the animation. + * @param [preferredDuration=null] The preferred duration. 1 second if omitted. + */ + constructor(canvas:yfiles.view.CanvasComponent,targetBounds:yfiles.geometry.Rect,preferredDuration?:yfiles.lang.TimeSpan); + /** + * Creates a new instance of {@link yfiles.view.ViewportAnimation}. + * @param {Object} options The parameters to pass. + * @param options.canvas The canvas control. + * @param options.targetBounds The target world bounds for the animation. + * @param [options.preferredDuration=null] The preferred duration. 1 second if omitted. + * @param {boolean} options.considerViewportLimiter Whether to respect the {@link yfiles.view.CanvasComponent#viewportLimiter} of the {@link yfiles.view.CanvasComponent} whose {@link yfiles.view.CanvasComponent#viewport} is animated. + *

      + * This option sets the {@link yfiles.view.ViewportAnimation#considerViewportLimiter} property on the created object. + *

      + * @param {number} options.maximumTargetZoom The maximum zoom level to use after the animation. + *

      + * This option sets the {@link yfiles.view.ViewportAnimation#maximumTargetZoom} property on the created object. + *

      + */ + constructor(options:{canvas:yfiles.view.CanvasComponent,targetBounds:yfiles.geometry.Rect,preferredDuration?:yfiles.lang.TimeSpan,considerViewportLimiter?:boolean,maximumTargetZoom?:number}); + /** + * + * @param time + */ + animate(time:number):void; + /** + * Effectively applies the center point value. + * @param focus + * @protected + */ + applyCenterPoint(focus:yfiles.geometry.Point):void; + /** + * Effectively applies the view point value. + * @param focus + * @protected + */ + applyViewPoint(focus:yfiles.geometry.Point):void; + /** + * Effectively applies the zoom value. + * @param value + * @protected + */ + applyZoom(value:number):void; + /** + * Cancels this viewport animation so that subsequent calls to {@link yfiles.view.ViewportAnimation#animate} or {@link yfiles.view.ViewportAnimation#cleanup} + * won't affect the viewport anymore. + */ + cancel():void; + /** + * Cleans up after the animation. + */ + cleanup():void; + /** + * Initializes this animation. + *

      + * This has to be called once before any calls to {@link yfiles.view.ViewportAnimation#animate}. An instance of {@link yfiles.view.ViewportAnimation} + * can be reused after an animation by setting new {@link yfiles.view.ViewportAnimation#targetBounds} or a new {@link yfiles.view.ViewportAnimation#preferredDuration} and calling Initialize() again. + *

      + */ + initialize():void; + /** + * Gets or sets the target world bounds. + * @type {yfiles.geometry.Rect} + */ + targetBounds:yfiles.geometry.Rect; + /** + * Whether to respect the {@link yfiles.view.CanvasComponent#viewportLimiter} of the {@link yfiles.view.CanvasComponent} whose {@link yfiles.view.CanvasComponent#viewport} is animated. + *

      + * Default is false. + *

      + * @type {boolean} + */ + considerViewportLimiter:boolean; + /** + * Gets or sets the preferred duration of the animation. + * @type {yfiles.lang.TimeSpan} + */ + preferredDuration:yfiles.lang.TimeSpan; + /** + * Gets or sets the maximum zoom level to use after the animation. + *

      + * The default is {@link number#POSITIVE_INFINITY}. + *

      + * @type {number} + */ + maximumTargetZoom:number; + /** + * Gets or sets the scroll bar visibility that will be used during the animation. + * @default yfiles.view.ScrollBarVisibility.NEVER + * @type {yfiles.view.ScrollBarVisibility} + */ + scrollBarVisibility:yfiles.view.ScrollBarVisibility; + /** + * Gets or sets the margins in view coordinate dimensions to use at the target zoom level. + * @default '0' + * @type {yfiles.geometry.Insets} + */ + targetViewMargins:yfiles.geometry.Insets; + static $class:yfiles.lang.Class; + } + export enum ScrollBarVisibility{ + /** + * Never display the scroll bar, even if not all of the content is visible. + */ + NEVER, + /** + * Display the scroll bar when needed. + *

      + * This is the default behavior in most applications. + *

      + */ + AS_NEEDED, + /** + * Always display the scroll bar. + *

      + * If it is not needed, i.e. if all content is already displaying, the scroll bar will remain visible but cannot be moved. + *

      + */ + ALWAYS + } export enum MouseButtons{ /** * No mouse button. @@ -8719,26 +9132,6 @@ declare namespace system{ */ X2 } - export enum ScrollBarVisibility{ - /** - * Never display the scroll bar, even if not all of the content is visible. - */ - NEVER, - /** - * Display the scroll bar when needed. - *

      - * This is the default behavior in most applications. - *

      - */ - AS_NEEDED, - /** - * Always display the scroll bar. - *

      - * If it is not needed, i.e. if all content is already displaying, the scroll bar will remain visible but cannot be moved. - *

      - */ - ALWAYS - } export enum MouseWheelBehaviors{ /** * The mouse wheel has no effect. @@ -8765,15 +9158,14 @@ declare namespace system{ * {@link yfiles.view.CanvasComponent#invalidate} *

      * @see yfiles.view.CanvasComponent#addPrepareRenderContextListener - * @class yfiles.view.PrepareRenderContextEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface PrepareRenderContextEventArgs extends yfiles.lang.EventArgs{} export class PrepareRenderContextEventArgs { /** * Initializes a new instance of the {@link yfiles.view.PrepareRenderContextEventArgs} class. - * @param {yfiles.view.IRenderContext} context The initial context which can be modified by the event handlers using the {@link yfiles.view.PrepareRenderContextEventArgs#context} property. - * @constructor + * @param context The initial context which can be modified by the event handlers using the {@link #context} property. */ constructor(context:yfiles.view.IRenderContext); /** @@ -8816,7 +9208,7 @@ declare namespace system{ } /** * This event occurs when the size of a control is changed. - * @class yfiles.view.SizeChangedEventArgs + * @class * @extends {yfiles.lang.EventArgs} * @final */ @@ -8839,12 +9231,12 @@ declare namespace system{ *

      * The control supports high performance zooming and panning of visual content and provides a high level view of the visual * tree. The control uses double precision world-coordinates to render items that are composed using a visual tree. In its - * most simple form the scene graph is a tree like structure of elements that will be rendered in depth-first-search + * most simple form the scene graph is a tree-like structure of elements that will be rendered in depth-first-search * order. *

      *

      * The scene graph tree is made up of {@link yfiles.view.ICanvasObject} elements. Multiple elements are grouped in {@link yfiles.view.ICanvasObjectGroup} - * elements. An {@link yfiles.view.ICanvasObject} consists of a {@link yfiles.view.ICanvasObject#userObject user-object} and an {@link yfiles.view.ICanvasObjectDescriptor} that is used + * elements. An {@link yfiles.view.ICanvasObject} consists of a {@link yfiles.view.ICanvasObject#userObject user object} and an {@link yfiles.view.ICanvasObjectDescriptor} that is used * by the rendering engine to query interfaces that perform the actual creation of the * {@link yfiles.view.Visual}s, hit testing, and bounds calculation. *

      @@ -8855,11 +9247,11 @@ declare namespace system{ *
    • {@link yfiles.input.ICommand#INCREASE_ZOOM}
    • *
    • {@link yfiles.input.ICommand#DECREASE_ZOOM}
    • *
    • {@link yfiles.input.ICommand#ZOOM}
    • + *
    • {@link yfiles.input.ICommand#FIT_CONTENT}
    • *
    • {@link yfiles.input.ICommand#SCROLL_PAGE_DOWN}
    • *
    • {@link yfiles.input.ICommand#SCROLL_PAGE_UP}
    • *
    • {@link yfiles.input.ICommand#SCROLL_PAGE_LEFT}
    • *
    • {@link yfiles.input.ICommand#SCROLL_PAGE_RIGHT}
    • - *
    • {@link yfiles.input.ICommand#FIT_CONTENT}
    • *
    *

    * The handlers for {@link yfiles.input.ICommand#INCREASE_ZOOM} and {@link yfiles.input.ICommand#DECREASE_ZOOM} use the specified command @@ -8878,7 +9270,7 @@ declare namespace system{ * @see yfiles.view.IVisualCreator * @see yfiles.input.IHitTestable * @see yfiles.view.IVisibilityTestable - * @class yfiles.view.CanvasComponent + * @class * @implements {yfiles.graph.ILookup} */ export interface CanvasComponent extends Object,yfiles.graph.ILookup{} @@ -8888,8 +9280,7 @@ declare namespace system{ *

    * The canvas will be empty with no associated InputModes. *

    - * @param {string} selector The CSS selector or id for an existing div element - * @constructor + * @param selector The CSS selector or id for an existing div element */ constructor(selector:string); /** @@ -8897,8 +9288,7 @@ declare namespace system{ *

    * The canvas will be empty with no associated {@link yfiles.view.CanvasComponent#inputMode}s. *

    - * @param {HTMLDivElement} div The existing div element to use for rendering the canvas into. - * @constructor + * @param div The existing div element to use for rendering the canvas into. */ constructor(div:HTMLDivElement); /** @@ -8907,13 +9297,12 @@ declare namespace system{ * The canvas will be empty with no associated InputModes. This constructor creates a new {@link yfiles.view.CanvasComponent#div} element that needs to be added * to the DOM manually. *

    - * @constructor */ constructor(); /** * Scrolls to the provided view point and zoom level in an animated fashion. - * @param {yfiles.geometry.Point} viewPoint The new {@link yfiles.view.CanvasComponent#viewPoint} - * @param {number} zoom The new zoom level. + * @param viewPoint The new {@link #viewPoint} + * @param zoom The new zoom level. */ animateScrollTo(viewPoint:yfiles.geometry.Point,zoom:number):void; /** @@ -8933,9 +9322,9 @@ declare namespace system{ *

    * The comparison will yield values greater than zero if and only if the second object is rendered after the first one. *

    - * @param {yfiles.view.ICanvasObject} canvasObject1 the first object to compare - * @param {yfiles.view.ICanvasObject} canvasObject2 the second object to compare - * @returns {number} 0 if canvasObject1 == + * @param canvasObject1 the first object to compare + * @param canvasObject2 the second object to compare + * @returns 0 if canvasObject1 == * canvasObject2 *
    * >0 if canvasObject1 is painted before canvasObject2 <0 if canvasObject1 is painted after canvasObject2 @@ -8946,7 +9335,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.view.CanvasComponent#backgroundGroup} property. *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new instance of ICanvasObjectGroup + * @returns a new instance of ICanvasObjectGroup * @protected */ createBackgroundGroup():yfiles.view.ICanvasObjectGroup; @@ -8955,7 +9344,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.view.CanvasComponent#contentGroup} property. *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new instance of ICanvasObjectGroup + * @returns a new instance of ICanvasObjectGroup * @protected */ createContentGroup():yfiles.view.ICanvasObjectGroup; @@ -8964,7 +9353,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.view.CanvasComponent#focusGroup} property. *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new instance of ICanvasObjectGroup + * @returns a new instance of ICanvasObjectGroup * @protected */ createFocusGroup():yfiles.view.ICanvasObjectGroup; @@ -8973,7 +9362,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.view.CanvasComponent#highlightGroup} property. *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new instance of ICanvasObjectGroup + * @returns a new instance of ICanvasObjectGroup * @protected */ createHighlightGroup():yfiles.view.ICanvasObjectGroup; @@ -8982,7 +9371,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.view.CanvasComponent#inputModeContext} property. *

    - * @returns {yfiles.input.IInputModeContext} a new instance of {@link yfiles.view.CanvasComponent#inputModeContext} that has this instance set as it's {@link yfiles.view.ICanvasContext#canvasComponent} and uses this instance's {@link yfiles.view.CanvasComponent#inputModeContextLookup} + * @returns a new instance of {@link #inputModeContext} that has this instance set as it's {@link #canvasComponent} and uses this instance's {@link #inputModeContextLookup} * callback to satisfy requests. * @protected */ @@ -8992,7 +9381,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.view.CanvasComponent#inputModeGroup} property. *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new instance of ICanvasObjectGroup + * @returns a new instance of ICanvasObjectGroup * @protected */ createInputModeGroup():yfiles.view.ICanvasObjectGroup; @@ -9003,7 +9392,7 @@ declare namespace system{ * This method is a convenience method to obtain a context for special visual creator implementations and normally needs * not be used by application developers. *

    - * @returns {yfiles.view.IRenderContext} A new context instance that is bound to this instance. + * @returns A new context instance that is bound to this instance. */ createRenderContext():yfiles.view.IRenderContext; /** @@ -9011,13 +9400,13 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.view.CanvasComponent#selectionGroup} property. *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new instance of ICanvasObjectGroup + * @returns a new instance of ICanvasObjectGroup * @protected */ createSelectionGroup():yfiles.view.ICanvasObjectGroup; /** * Ensures that the provided bounds are visible in this control by adjusting the viewport correspondingly. - * @param {yfiles.geometry.Rect} bounds The bounds to make visible. + * @param bounds The bounds to make visible. */ ensureVisible(bounds:yfiles.geometry.Rect):void; /** @@ -9025,13 +9414,13 @@ declare namespace system{ *

    * This method will create the visual content using the world coordinate system. *

    - * @param {yfiles.view.IRenderContext} context The context to use. - * @returns {Element} A composite Visual that represents the contents of this control. + * @param context The context to use. + * @returns A composite Visual that represents the contents of this control. */ exportContent(context:yfiles.view.IRenderContext):Element; /** * Fires the size changed event. - * @param {yfiles.geometry.Size} oldSize + * @param oldSize */ fireSizeChanged(oldSize:yfiles.geometry.Size):void; /** @@ -9040,6 +9429,7 @@ declare namespace system{ * The zoom level will not be greater than 1.0d. If the view port is limited by the {@link yfiles.view.CanvasComponent#viewportLimiter} the zoom level might be greater than 1.0d * to respect the limits. *

    + * @see yfiles.view.CanvasComponent#updateContentRect * @see yfiles.view.CanvasComponent#zoom * @see yfiles.view.CanvasComponent#zoomTo */ @@ -9053,8 +9443,8 @@ declare namespace system{ *

    * This method queries the descriptor for the {@link yfiles.view.IBoundsProvider} for the user object and returns the result. *

    - * @param {yfiles.view.ICanvasObject} canvasObject the canvas object to query the bounds from - * @returns {yfiles.geometry.Rect} the non-null bounds + * @param canvasObject the canvas object to query the bounds from + * @returns the non-null bounds */ getBounds(canvasObject:yfiles.view.ICanvasObject):yfiles.geometry.Rect; /** @@ -9062,14 +9452,14 @@ declare namespace system{ *

    * This will return the canvas object that is painted last at the given position. *

    - * @param {yfiles.geometry.Point} location the coordinates of the query in the world coordinate system - * @returns {yfiles.view.ICanvasObject} + * @param location the coordinates of the query in the world coordinate system + * @returns */ getCanvasObject(location:yfiles.geometry.Point):yfiles.view.ICanvasObject; /** * Enumerates over all possible {@link yfiles.view.ICanvasObject} instances in the tree below the given group. - * @param {yfiles.view.ICanvasObjectGroup} group - * @returns {yfiles.collections.IEnumerable.} An enumerable for all {@link yfiles.view.ICanvasObject}s in the tree below the given group. + * @param group + * @returns An enumerable for all {@link }s in the tree below the given group. */ getCanvasObjects(group:yfiles.view.ICanvasObjectGroup):yfiles.collections.IEnumerable; /** @@ -9078,19 +9468,19 @@ declare namespace system{ * The order of the elements in the list is the natural hit test order, i.e. elements painted on top of others will be * reported first in the list. *

    - * @param {yfiles.geometry.Point} location the coordinates of the query in the world coordinate system - * @returns {yfiles.collections.IEnumerable.} an enumerable of canvas object that are hit in reverse painting order + * @param location the coordinates of the query in the world coordinate system + * @returns an enumerable of canvas object that are hit in reverse painting order */ getCanvasObjects(location:yfiles.geometry.Point):yfiles.collections.IEnumerable; /** * Enumerates over all possible {@link yfiles.view.ICanvasObject} instances in the tree. - * @returns {yfiles.collections.IEnumerable.} An enumerable for all {@link yfiles.view.ICanvasObject}s in the tree. + * @returns An enumerable for all {@link }s in the tree. */ getCanvasObjects():yfiles.collections.IEnumerable; /** * Gets the {@link yfiles.view.CanvasComponent} instance that is associated with the given DOM element, or null. - * @param {Element} element - * @returns {yfiles.view.CanvasComponent} + * @param element + * @returns * @static */ static getComponent(element:Element):yfiles.view.CanvasComponent; @@ -9103,22 +9493,22 @@ declare namespace system{ * corresponding {@link yfiles.view.IVisualCreator} that created the visual in the first place. This method rather serves as a * utility method for UI testing frameworks and similar use cases. *

    - * @param {yfiles.view.ICanvasObject} canvasObject The canvas object. - * @returns {yfiles.view.Visual} The {@link yfiles.view.Visual} that is currently used by the canvasObject. + * @param canvasObject The canvas object. + * @returns The {@link } that is currently used by the canvasObject. */ getVisual(canvasObject:yfiles.view.ICanvasObject):yfiles.view.Visual; /** * Convenience method that retrieves the {@link yfiles.view.IVisualCreator} for a given {@link yfiles.view.ICanvasObject}. - * @param {yfiles.view.ICanvasObject} canvasObject the canvas object to query the visual creator implementation from - * @returns {yfiles.view.IVisualCreator} an instance of the visual creator interface + * @param canvasObject the canvas object to query the visual creator implementation from + * @returns an instance of the visual creator interface * @see yfiles.view.ICanvasObjectDescriptor#getVisualCreator * @see yfiles.view.VoidVisualCreator#INSTANCE */ getVisualCreator(canvasObject:yfiles.view.ICanvasObject):yfiles.view.IVisualCreator; /** * Converts view coordinates from the document's coordinate system to the control's coordinate system. - * @param {yfiles.geometry.Point} localPoint The coordinates to convert. - * @returns {yfiles.geometry.Point} The coordinates in the control's coordinate system. + * @param localPoint The coordinates to convert. + * @returns The coordinates in the control's coordinate system. */ globalToLocal(localPoint:yfiles.geometry.Point):yfiles.geometry.Point; /** @@ -9126,7 +9516,7 @@ declare namespace system{ *

    * Note that this will not change the view port, it will only change the scroll bars if necessary. *

    - * @param {yfiles.geometry.Rect} rectangle the rectangle that should be included in the content rectangle + * @param rectangle the rectangle that should be included in the content rectangle */ growContentRect(rectangle:yfiles.geometry.Rect):void; /** @@ -9136,11 +9526,11 @@ declare namespace system{ * Hit testing is performed using the {@link yfiles.view.ICanvasObjectDescriptor#getHitTestable} instance returned for each visible * {@link yfiles.view.ICanvasObject} in the current scene graph. The enumeration is performed lazily. *

    - * @param {yfiles.input.IInputModeContext} context The context instance to pass to {@link yfiles.input.IHitTestable#isHit}. - * @param {yfiles.geometry.Point} location the coordinates to perform the hit test at - * @param {yfiles.view.ICanvasObjectGroup} [root=null] the root of the scene graph to use - * @param {function(yfiles.view.ICanvasObject): boolean} [filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. - * @returns {yfiles.collections.IEnumerable.} a live enumeration of the elements that are hit + * @param context The context instance to pass to {@link #isHit}. + * @param location the coordinates to perform the hit test at + * @param [root=null] the root of the scene graph to use + * @param [filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. + * @returns a live enumeration of the elements that are hit * @see yfiles.input.IHitTestable */ hitElementsAt(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,root?:yfiles.view.ICanvasObjectGroup,filter?:(obj:yfiles.view.ICanvasObject)=>boolean):yfiles.collections.IEnumerable; @@ -9152,11 +9542,11 @@ declare namespace system{ * {@link yfiles.view.ICanvasObject} in the current scene graph. The enumeration is performed lazily. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.input.IInputModeContext} options.context The context instance to pass to {@link yfiles.input.IHitTestable#isHit}. - * @param {yfiles.geometry.Point} options.location the coordinates to perform the hit test at - * @param {yfiles.view.ICanvasObjectGroup} [options.root=null] the root of the scene graph to use - * @param {function(yfiles.view.ICanvasObject): boolean} [options.filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. - * @returns {yfiles.collections.IEnumerable.} a live enumeration of the elements that are hit + * @param options.context The context instance to pass to {@link #isHit}. + * @param options.location the coordinates to perform the hit test at + * @param [options.root=null] the root of the scene graph to use + * @param [options.filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. + * @returns a live enumeration of the elements that are hit * @see yfiles.input.IHitTestable */ hitElementsAt(options:{context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,root?:yfiles.view.ICanvasObjectGroup,filter?:(obj:yfiles.view.ICanvasObject)=>boolean}):yfiles.collections.IEnumerable; @@ -9166,10 +9556,10 @@ declare namespace system{ * Hit testing is performed using the {@link yfiles.view.ICanvasObjectDescriptor#getHitTestable} instance returned for each visible * {@link yfiles.view.ICanvasObject} in the current scene graph. The enumeration is performed lazily. *

    - * @param {yfiles.geometry.Point} location the coordinates to perform the hit test at - * @param {yfiles.view.ICanvasObjectGroup} [root=null] the root of the scene graph to use - * @param {function(yfiles.view.ICanvasObject): boolean} [filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. - * @returns {yfiles.collections.IEnumerable.} a live enumeration of the elements that are hit + * @param location the coordinates to perform the hit test at + * @param [root=null] the root of the scene graph to use + * @param [filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. + * @returns a live enumeration of the elements that are hit * @see yfiles.input.IHitTestable * @see yfiles.view.CanvasComponent#hitTestRadius */ @@ -9181,18 +9571,18 @@ declare namespace system{ * {@link yfiles.view.ICanvasObject} in the current scene graph. The enumeration is performed lazily. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.Point} options.location the coordinates to perform the hit test at - * @param {yfiles.view.ICanvasObjectGroup} [options.root=null] the root of the scene graph to use - * @param {function(yfiles.view.ICanvasObject): boolean} [options.filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. - * @returns {yfiles.collections.IEnumerable.} a live enumeration of the elements that are hit + * @param options.location the coordinates to perform the hit test at + * @param [options.root=null] the root of the scene graph to use + * @param [options.filter=null] The predicate that decides whether a given canvas object should be considered for testing at all or null. + * @returns a live enumeration of the elements that are hit * @see yfiles.input.IHitTestable * @see yfiles.view.CanvasComponent#hitTestRadius */ hitElementsAt(options:{location:yfiles.geometry.Point,root?:yfiles.view.ICanvasObjectGroup,filter?:(obj:yfiles.view.ICanvasObject)=>boolean}):yfiles.collections.IEnumerable; /** * Callback that is used by the default implementation of {@link yfiles.view.CanvasComponent#inputModeContext} to resolve {@link yfiles.graph.ILookup#lookup} calls. - * @param {yfiles.lang.Class} type The Type to query - * @returns {Object} The result of the query. + * @param type The Type to query + * @returns The result of the query. * @see yfiles.input.IInputModeContext * @protected */ @@ -9210,21 +9600,21 @@ declare namespace system{ * This method queries the descriptor for the {@link yfiles.input.IHitTestable} for the user object and returns the result of the * hit test query. If there is no IHitTestable returned by the descriptor this method returns false. *

    - * @param {yfiles.view.ICanvasObject} canvasObject the canvas object to query the bounds from - * @param {yfiles.geometry.Point} location the coordinates of the query in the world coordinate system - * @returns {boolean} whether the canvas object is hit at the given coordinates + * @param canvasObject the canvas object to query the bounds from + * @param location the coordinates of the query in the world coordinate system + * @returns whether the canvas object is hit at the given coordinates */ isHit(canvasObject:yfiles.view.ICanvasObject,location:yfiles.geometry.Point):boolean; /** * Converts view coordinates from the control's coordinate system to the document's coordinate system. - * @param {yfiles.geometry.Point} localPoint The coordinates to convert. - * @returns {yfiles.geometry.Point} The coordinates in the document's coordinate system. + * @param localPoint The coordinates to convert. + * @returns The coordinates in the document's coordinate system. */ localToGlobal(localPoint:yfiles.geometry.Point):yfiles.geometry.Point; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -9234,7 +9624,7 @@ declare namespace system{ * This method will scroll the view in vertical direction. If the Shift key modifier has been pressed this method will * scroll in horizontal direction. *

    - * @param {yfiles.view.MouseEventArgs} evt the event describing the action + * @param evt the event describing the action * @see yfiles.view.CanvasComponent#mouseWheelBehavior * @see yfiles.view.CanvasComponent#mouseWheelScrollFactor * @protected @@ -9247,14 +9637,14 @@ declare namespace system{ * This method will adjust the current zoom level. If the Control key modifier has been pressed this method will keep the * world coordinates at the current mouse position, i.e. the zoom will not necessarily be into the center of the canvas. *

    - * @param {yfiles.view.MouseEventArgs} evt the event describing the action + * @param evt the event describing the action * @see yfiles.view.CanvasComponent#mouseWheelBehavior * @protected */ mouseWheelZoom(evt:yfiles.view.MouseEventArgs):void; /** * Raises the {@link yfiles.view.CanvasComponent#addPrepareRenderContextListener PrepareRenderContext}. - * @param {yfiles.view.PrepareRenderContextEventArgs} evt The event arguments to raise. + * @param evt The event arguments to raise. * @see yfiles.view.CanvasComponent#addPrepareRenderContextListener * @protected */ @@ -9277,8 +9667,8 @@ declare namespace system{ * Therefore, the given callback will be executed in sequence with previously added actions, e.g. the * {@link yfiles.view.CanvasComponent}'s invalidation. *

    - * @param {Function} callback The function that should be executed. - * @param {...Object} args The arguments with which the function should be called. + * @param callback The function that should be executed. + * @param args The arguments with which the function should be called. */ schedule(callback:Function,...args:Object[]):void; /** @@ -9288,10 +9678,10 @@ declare namespace system{ * area currently visible in the control does not encompass the content rect, the scrollbars will be made visible, unless * they are disabled. *

    - * @param {number} x - * @param {number} y - * @param {number} w - * @param {number} h + * @param x + * @param y + * @param w + * @param h * @see yfiles.view.CanvasComponent#contentRect * @see yfiles.view.CanvasComponent#horizontalScrollBarPolicy * @see yfiles.view.CanvasComponent#verticalScrollBarPolicy @@ -9308,14 +9698,14 @@ declare namespace system{ stopMouseCapture():void; /** * Converts world coordinates to view coordinates expressed in the control's coordinate system. - * @param {yfiles.geometry.Point} worldPoint the coordinates in the world coordinate system - * @returns {yfiles.geometry.Point} returns the coordinates in pixels relative to the controls upper left corner + * @param worldPoint the coordinates in the world coordinate system + * @returns returns the coordinates in pixels relative to the controls upper left corner */ toViewCoordinates(worldPoint:yfiles.geometry.Point):yfiles.geometry.Point; /** * Converts view coordinates (expressed in the control's coordinate system) to world coordinates. - * @param {yfiles.geometry.Point} viewPoint the coordinates in pixels relative to the controls upper left corner - * @returns {yfiles.geometry.Point} returns the coordinates in the world coordinate system + * @param viewPoint the coordinates in pixels relative to the controls upper left corner + * @returns returns the coordinates in the world coordinate system */ toWorldCoordinates(viewPoint:yfiles.geometry.Point):yfiles.geometry.Point; /** @@ -9324,8 +9714,8 @@ declare namespace system{ * This method will traverse all {@link yfiles.view.ICanvasObject#visible visible} elements in the scene graph and query their {@link yfiles.view.ICanvasObjectDescriptor#getBoundsProvider bounds} The resulting bounds will be * set to the content rectangle plus the provided margins. *

    - * @param {yfiles.geometry.Insets} [margins=null] - * @param {yfiles.view.ICanvasObjectGroup} [group=null] + * @param [margins=null] + * @param [group=null] * @see yfiles.view.IBoundsProvider * @see yfiles.view.CanvasComponent#contentRect */ @@ -9337,8 +9727,8 @@ declare namespace system{ * set to the content rectangle plus the provided margins. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.Insets} [options.margins=null] - * @param {yfiles.view.ICanvasObjectGroup} [options.group=null] + * @param [options.margins=null] + * @param [options.group=null] * @see yfiles.view.IBoundsProvider * @see yfiles.view.CanvasComponent#contentRect */ @@ -9361,13 +9751,13 @@ declare namespace system{ updateVisual():void; /** * Sets the zoom level and view port center to the given values. - * @param {yfiles.geometry.Point} center the new center of the view port in world coordinates - * @param {number} zoom the new zoom level + * @param center the new center of the view port in world coordinates + * @param zoom the new zoom level */ zoomTo(center:yfiles.geometry.Point,zoom:number):void; /** * Sets the zoom level and view port center so that the given rectangle in world coordinates fits the viewport. - * @param {yfiles.geometry.Rect} bounds The coordinates of the rectangle to zoom to. + * @param bounds The coordinates of the rectangle to zoom to. */ zoomTo(bounds:yfiles.geometry.Rect):void; /** @@ -9409,11 +9799,6 @@ declare namespace system{ * @type {boolean} */ focused:boolean; - /** - * Gets or sets a value indicating whether this {@link yfiles.view.CanvasComponent} is enabled. - * @type {boolean} - */ - enabled:boolean; /** * Gets a value indicating whether the UI is right to left. * @type {boolean} @@ -9460,10 +9845,13 @@ declare namespace system{ */ editable:boolean; /** - * Determines the behavior of the mouse wheel. The behavior can be switched between {@link yfiles.view.MouseWheelBehaviors#ZOOM}, {@link yfiles.view.MouseWheelBehaviors#SCROLL} - * and {@link yfiles.view.MouseWheelBehaviors#NONE}. Additionally, this property can be configured to perform the action + * Determines the behavior of the mouse wheel. + *

    + * The behavior can be switched between {@link yfiles.view.MouseWheelBehaviors#ZOOM}, {@link yfiles.view.MouseWheelBehaviors#SCROLL} and + * {@link yfiles.view.MouseWheelBehaviors#NONE}. Additionally, this property can be configured to perform the action * {@link yfiles.view.MouseWheelBehaviors#ONLY_WHEN_FOCUSED only when the control is focused}. - * @default 1 + *

    + * @default yfiles.view.MouseWheelBehaviors.ZOOM * @type {yfiles.view.MouseWheelBehaviors} */ mouseWheelBehavior:yfiles.view.MouseWheelBehaviors; @@ -9476,16 +9864,6 @@ declare namespace system{ * @type {function(Object, yfiles.lang.EventArgs): boolean} */ centerZoomEventRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * Determines whether the mouse wheel should be used for zooming. - *

    - * If set to false this task can be performed by custom {@link yfiles.input.IInputMode} implementations using the {@link yfiles.view.CanvasComponent#addMouseWheelListener MouseWheel} - * event. - *

    - * @default true - * @type {boolean} - */ - autoMouseWheelZoom:boolean; /** * Specifies the visibility policy for the vertical scrollbar. *

    @@ -9494,7 +9872,7 @@ declare namespace system{ *

    * @see yfiles.input.MoveViewportInputMode * @see yfiles.view.CanvasComponent#horizontalScrollBarPolicy - * @default 1 + * @default yfiles.view.ScrollBarVisibility.AS_NEEDED * @type {yfiles.view.ScrollBarVisibility} */ verticalScrollBarPolicy:yfiles.view.ScrollBarVisibility; @@ -9506,7 +9884,7 @@ declare namespace system{ *

    * @see yfiles.input.MoveViewportInputMode * @see yfiles.view.CanvasComponent#verticalScrollBarPolicy - * @default 1 + * @default yfiles.view.ScrollBarVisibility.AS_NEEDED * @type {yfiles.view.ScrollBarVisibility} */ horizontalScrollBarPolicy:yfiles.view.ScrollBarVisibility; @@ -9531,13 +9909,13 @@ declare namespace system{ contentRect:yfiles.geometry.Rect; /** * Adds the given listener for the ContentRectChanged event that occurs when the {@link yfiles.view.CanvasComponent#contentRect content rectangle} has been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeContentRectChangedListener */ addContentRectChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the ContentRectChanged event that occurs when the {@link yfiles.view.CanvasComponent#contentRect content rectangle} has been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addContentRectChangedListener */ removeContentRectChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -9558,14 +9936,14 @@ declare namespace system{ /** * Adds the given listener for the FitContentViewMarginsChanged event that occurs when the {@link yfiles.view.CanvasComponent#fitContentViewMargins margins for the fit content operation} * have been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeFitContentViewMarginsChangedListener */ addFitContentViewMarginsChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the FitContentViewMarginsChanged event that occurs when the {@link yfiles.view.CanvasComponent#fitContentViewMargins margins for the fit content operation} * have been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addFitContentViewMarginsChangedListener */ removeFitContentViewMarginsChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -9578,7 +9956,7 @@ declare namespace system{ * If the mouse leaves this canvas control with the mouse button pressed, this event is deferred until the mouse button is * released. Thus, this event will not interfere with the typical mouse button event cycle. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseLeaveListener */ addMouseLeaveListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9591,7 +9969,7 @@ declare namespace system{ * If the mouse leaves this canvas control with the mouse button pressed, this event is deferred until the mouse button is * released. Thus, this event will not interfere with the typical mouse button event cycle. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseLeaveListener */ removeMouseLeaveListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9605,7 +9983,7 @@ declare namespace system{ * button state reported by the {@link yfiles.view.MouseEventArgs} does not include this button unless the browser supports the * property MouseEvent.buttons. See the Known Issues for more details. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseEnterListener */ addMouseEnterListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9619,7 +9997,7 @@ declare namespace system{ * button state reported by the {@link yfiles.view.MouseEventArgs} does not include this button unless the browser supports the * property MouseEvent.buttons. See the Known Issues for more details. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseEnterListener */ removeMouseEnterListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9633,7 +10011,7 @@ declare namespace system{ * the world coordinates to which the current mouse position maps change. E.g. this will happen if the zoom level or the * view point is changed. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseMoveListener */ addMouseMoveListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9647,7 +10025,7 @@ declare namespace system{ * the world coordinates to which the current mouse position maps change. E.g. this will happen if the zoom level or the * view point is changed. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseMoveListener */ removeMouseMoveListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9656,7 +10034,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseDownListener */ addMouseDownListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9665,7 +10043,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseDownListener */ removeMouseDownListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9675,7 +10053,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseDragListener */ addMouseDragListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9685,7 +10063,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseDragListener */ removeMouseDragListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9694,7 +10072,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseUpListener */ addMouseUpListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9703,7 +10081,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseUpListener */ removeMouseUpListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9712,7 +10090,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseLostCaptureListener */ addMouseLostCaptureListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9721,7 +10099,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseLostCaptureListener */ removeMouseLostCaptureListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9730,7 +10108,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseWheelListener */ addMouseWheelListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9739,7 +10117,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.MouseEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseWheelListener */ removeMouseWheelListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9751,7 +10129,7 @@ declare namespace system{ *

    * This happens if press and release happens at the same position. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseClickListener */ addMouseClickListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9763,7 +10141,7 @@ declare namespace system{ *

    * This happens if press and release happens at the same position. *

    - * @param {function(Object, yfiles.view.MouseEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseClickListener */ removeMouseClickListener(listener:(sender:Object,evt:yfiles.view.MouseEventArgs)=>void):void; @@ -9772,7 +10150,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.KeyEventArgs}. *

    - * @param {function(Object, yfiles.view.KeyEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeKeyDownListener */ addKeyDownListener(listener:(sender:Object,evt:yfiles.view.KeyEventArgs)=>void):void; @@ -9781,7 +10159,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.KeyEventArgs}. *

    - * @param {function(Object, yfiles.view.KeyEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addKeyDownListener */ removeKeyDownListener(listener:(sender:Object,evt:yfiles.view.KeyEventArgs)=>void):void; @@ -9790,7 +10168,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.KeyEventArgs}. *

    - * @param {function(Object, yfiles.view.KeyEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeKeyPressedListener */ addKeyPressedListener(listener:(sender:Object,evt:yfiles.view.KeyEventArgs)=>void):void; @@ -9799,7 +10177,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.KeyEventArgs}. *

    - * @param {function(Object, yfiles.view.KeyEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addKeyPressedListener */ removeKeyPressedListener(listener:(sender:Object,evt:yfiles.view.KeyEventArgs)=>void):void; @@ -9808,7 +10186,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.KeyEventArgs}. *

    - * @param {function(Object, yfiles.view.KeyEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeKeyUpListener */ addKeyUpListener(listener:(sender:Object,evt:yfiles.view.KeyEventArgs)=>void):void; @@ -9817,31 +10195,31 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.KeyEventArgs}. *

    - * @param {function(Object, yfiles.view.KeyEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addKeyUpListener */ removeKeyUpListener(listener:(sender:Object,evt:yfiles.view.KeyEventArgs)=>void):void; /** * Adds the given listener for the EditableChanged event that occurs when the {@link yfiles.view.CanvasComponent#editable} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeEditableChangedListener */ addEditableChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the EditableChanged event that occurs when the {@link yfiles.view.CanvasComponent#editable} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addEditableChangedListener */ removeEditableChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Adds the given listener for the ViewportChanged event that occurs when the {@link yfiles.view.CanvasComponent#viewport} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeViewportChangedListener */ addViewportChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the ViewportChanged event that occurs when the {@link yfiles.view.CanvasComponent#viewport} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addViewportChangedListener */ removeViewportChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -9850,7 +10228,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchDownListener */ addTouchDownListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9859,7 +10237,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchDownListener */ removeTouchDownListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9868,7 +10246,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchUpListener */ addTouchUpListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9877,7 +10255,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchUpListener */ removeTouchUpListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9886,7 +10264,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchMoveListener */ addTouchMoveListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9895,7 +10273,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchMoveListener */ removeTouchMoveListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9904,7 +10282,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchEnterListener */ addTouchEnterListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9914,7 +10292,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchEnterListener */ removeTouchEnterListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9923,7 +10301,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchLeaveListener */ addTouchLeaveListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9933,7 +10311,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchLeaveListener */ removeTouchLeaveListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9942,7 +10320,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchLostCaptureListener */ addTouchLostCaptureListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9951,7 +10329,7 @@ declare namespace system{ *

    * This event delivers {@link yfiles.view.TouchEventArgs} in world coordinates using double precision floating points. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchLostCaptureListener */ removeTouchLostCaptureListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9965,7 +10343,7 @@ declare namespace system{ *

    * This happens if down and up happens at the same position. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchClickListener */ addTouchClickListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9979,7 +10357,7 @@ declare namespace system{ *

    * This happens if down and up happens at the same position. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchClickListener */ removeTouchClickListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -9993,7 +10371,7 @@ declare namespace system{ * This happens if the finger is held in the same position for the duration specified in {@link yfiles.view.CanvasComponent#longPressTime} after a * {@link yfiles.view.CanvasComponent#addTouchDownListener TouchDown}. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeTouchLongPressListener */ addTouchLongPressListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -10007,7 +10385,7 @@ declare namespace system{ * This happens if the finger is held in the same position for the duration specified in {@link yfiles.view.CanvasComponent#longPressTime} after a * {@link yfiles.view.CanvasComponent#addTouchDownListener TouchDown}. *

    - * @param {function(Object, yfiles.view.TouchEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addTouchLongPressListener */ removeTouchLongPressListener(listener:(sender:Object,evt:yfiles.view.TouchEventArgs)=>void):void; @@ -10021,6 +10399,7 @@ declare namespace system{ currentTouchDevices:yfiles.collections.IListEnumerable; /** * Gets a value indicating whether at least one finger is on the touch screen. + * @returns true if there is at least one {@link touch device} that is down on the screen. * @type {boolean} */ isTouchDeviceDown:boolean; @@ -10046,14 +10425,14 @@ declare namespace system{ lastEventLocation:yfiles.geometry.Point; /** * Adds the given listener for the InputModeChanged event that occurs when the {@link yfiles.view.CanvasComponent#inputMode} property is changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#inputMode * @see yfiles.view.CanvasComponent#removeInputModeChangedListener */ addInputModeChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the InputModeChanged event that occurs when the {@link yfiles.view.CanvasComponent#inputMode} property is changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#inputMode * @see yfiles.view.CanvasComponent#addInputModeChangedListener */ @@ -10077,13 +10456,13 @@ declare namespace system{ hitTestRadius:number; /** * Adds the given listener for the HitTestRadiusChanged event that occurs when the {@link yfiles.view.CanvasComponent#hitTestRadius} property changes. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeHitTestRadiusChangedListener */ addHitTestRadiusChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the HitTestRadiusChanged event that occurs when the {@link yfiles.view.CanvasComponent#hitTestRadius} property changes. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addHitTestRadiusChangedListener */ removeHitTestRadiusChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10107,13 +10486,13 @@ declare namespace system{ zoom:number; /** * Adds the given listener for the ZoomChanged event that occurs when the value of the {@link yfiles.view.CanvasComponent#zoom} property has been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeZoomChangedListener */ addZoomChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the ZoomChanged event that occurs when the value of the {@link yfiles.view.CanvasComponent#zoom} property has been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addZoomChangedListener */ removeZoomChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10121,21 +10500,21 @@ declare namespace system{ * Gets or sets the minimum zoom factor for this {@link yfiles.view.CanvasComponent}. *

    * This property sets a lower bound for the allowed values of the {@link yfiles.view.CanvasComponent#zoom} property. If this property is written, the canvas will - * zoom to the new value while keeping the center of view at the same world coordinates. The default is 0.01d but values as - * small as 0.0000001d are possible. + * zoom to the new value while keeping the center of view at the same world coordinates. The default is 0.0001 but values + * as small as 0.0000001d are possible. *

    * @see yfiles.view.CanvasComponent#zoom * @see yfiles.view.CanvasComponent#maximumZoom - * @default 0.01 + * @default 0.0001 * @type {number} */ minimumZoom:number; /** - * Get or set the maximum zoom level that is valid for {@link yfiles.view.CanvasComponent#zoom}. + * Gets or sets the maximum zoom value. *

    - * Default value is 1000d + * Default value is 100000 *

    - * @default 1000.0 + * @default 100000.0 * @type {number} */ maximumZoom:number; @@ -10152,6 +10531,14 @@ declare namespace system{ viewPoint:yfiles.geometry.Point; /** * Returns the size of the usable area in which the graph will be displayed. + *

    + * This value excludes the scroll bars. + *

    + * @type {yfiles.geometry.Size} + */ + innerSize:yfiles.geometry.Size; + /** + * Returns the size of the HTML element. * @type {yfiles.geometry.Size} */ size:yfiles.geometry.Size; @@ -10162,35 +10549,27 @@ declare namespace system{ * @type {yfiles.geometry.Rect} */ viewport:yfiles.geometry.Rect; - /** - * Yields the size of the content of this control. - *

    - * This size corresponds to the size of the control without the scroll bars. - *

    - * @type {yfiles.geometry.Size} - */ - innerSize:yfiles.geometry.Size; /** * Adds the given listener for the GotFocus event that occurs when the Control got the focus. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeGotFocusListener */ addGotFocusListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the GotFocus event that occurs when the Control got the focus. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addGotFocusListener */ removeGotFocusListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Adds the given listener for the LostFocus event that occurs when the Control lost the focus. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeLostFocusListener */ addLostFocusListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the LostFocus event that occurs when the Control lost the focus. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addLostFocusListener */ removeLostFocusListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10223,13 +10602,13 @@ declare namespace system{ autoDrag:boolean; /** * Adds the given listener for the AutoDragChanged event that occurs when the {@link yfiles.view.CanvasComponent#autoDrag} property is changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeAutoDragChangedListener */ addAutoDragChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the AutoDragChanged event that occurs when the {@link yfiles.view.CanvasComponent#autoDrag} property is changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addAutoDragChangedListener */ removeAutoDragChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10248,13 +10627,13 @@ declare namespace system{ visualCaching:yfiles.view.VisualCachingPolicy; /** * Adds the given listener for the UpdatedVisual event that occurs after the {@link yfiles.view.CanvasComponent#updateVisual visual tree has been updated}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeUpdatedVisualListener */ addUpdatedVisualListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the UpdatedVisual event that occurs after the {@link yfiles.view.CanvasComponent#updateVisual visual tree has been updated}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addUpdatedVisualListener */ removeUpdatedVisualListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10262,7 +10641,7 @@ declare namespace system{ * Adds the given listener for the UpdatingVisual event. *
    * Event that will be triggered before the {@link yfiles.view.CanvasComponent#updateVisual visual tree is updated}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeUpdatingVisualListener */ addUpdatingVisualListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10270,7 +10649,7 @@ declare namespace system{ * Removes the given listener for the UpdatingVisual event. *
    * Event that will be triggered before the {@link yfiles.view.CanvasComponent#updateVisual visual tree is updated}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addUpdatingVisualListener */ removeUpdatingVisualListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10298,13 +10677,13 @@ declare namespace system{ contentGroup:yfiles.view.ICanvasObjectGroup; /** * Adds the given listener for the ContentGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#contentGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeContentGroupChangedListener */ addContentGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the ContentGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#contentGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addContentGroupChangedListener */ removeContentGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -10330,25 +10709,25 @@ declare namespace system{ focusGroup:yfiles.view.ICanvasObjectGroup; /** * Adds the given listener for the FocusGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#focusGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeFocusGroupChangedListener */ addFocusGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the FocusGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#focusGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addFocusGroupChangedListener */ removeFocusGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Adds the given listener for the HighlightGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#highlightGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeHighlightGroupChangedListener */ addHighlightGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the HighlightGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#highlightGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addHighlightGroupChangedListener */ removeHighlightGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -10368,13 +10747,13 @@ declare namespace system{ selectionGroup:yfiles.view.ICanvasObjectGroup; /** * Adds the given listener for the SelectionGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#selectionGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeSelectionGroupChangedListener */ addSelectionGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the SelectionGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#selectionGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addSelectionGroupChangedListener */ removeSelectionGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -10396,13 +10775,13 @@ declare namespace system{ inputModeGroup:yfiles.view.ICanvasObjectGroup; /** * Adds the given listener for the InputModeGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#inputModeGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeInputModeGroupChangedListener */ addInputModeGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the InputModeGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#inputModeGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addInputModeGroupChangedListener */ removeInputModeGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -10423,13 +10802,13 @@ declare namespace system{ backgroundGroup:yfiles.view.ICanvasObjectGroup; /** * Adds the given listener for the BackgroundGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#backgroundGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeBackgroundGroupChangedListener */ addBackgroundGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the BackgroundGroupChanged event that occurs when the {@link yfiles.view.CanvasComponent#backgroundGroup} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addBackgroundGroupChangedListener */ removeBackgroundGroupChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -10510,9 +10889,9 @@ declare namespace system{ */ longPressTime:yfiles.lang.TimeSpan; /** - * Gets or sets the area in view coordinates the mouse may stay in before a movement is considered a drag. If the mouse is - * moved within this area longer than {@link yfiles.view.CanvasComponent#dragTime} milliseconds, the movement will be considered a drag, nevertheless. + * Gets or sets the area in view coordinates the mouse may stay in before a movement is considered a drag. *

    + * If the mouse is moved within this area longer than {@link yfiles.view.CanvasComponent#dragTime} milliseconds, the movement will be considered a drag, nevertheless. * The larger the area the later a mouse movement will be recognized as a drag. This influences the click-sensitivity, * since a mouse button release is only considered a click if there was no drag since the last mouse button press. The * default value is (5, 5). @@ -10556,14 +10935,14 @@ declare namespace system{ /** * Adds the given listener for the MouseWheelZoomFactorChanged event that occurs when the value of the {@link yfiles.view.CanvasComponent#mouseWheelZoomFactor} property has been * changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseWheelZoomFactorChangedListener */ addMouseWheelZoomFactorChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the MouseWheelZoomFactorChanged event that occurs when the value of the {@link yfiles.view.CanvasComponent#mouseWheelZoomFactor} property has * been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseWheelZoomFactorChangedListener */ removeMouseWheelZoomFactorChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10588,14 +10967,14 @@ declare namespace system{ /** * Adds the given listener for the MouseWheelScrollFactorChanged event that occurs when the value of the {@link yfiles.view.CanvasComponent#mouseWheelScrollFactor} property has been * changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeMouseWheelScrollFactorChangedListener */ addMouseWheelScrollFactorChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the MouseWheelScrollFactorChanged event that occurs when the value of the {@link yfiles.view.CanvasComponent#mouseWheelScrollFactor} property has * been changed. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addMouseWheelScrollFactorChangedListener */ removeMouseWheelScrollFactorChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -10614,7 +10993,7 @@ declare namespace system{ * Adds the given listener for the PrepareRenderContext event. *
    * Event that will be triggered before the visual tree is painted to prepare the {@link yfiles.view.IRenderContext}. - * @param {function(Object, yfiles.view.PrepareRenderContextEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removePrepareRenderContextListener */ addPrepareRenderContextListener(listener:(sender:Object,evt:yfiles.view.PrepareRenderContextEventArgs)=>void):void; @@ -10622,7 +11001,7 @@ declare namespace system{ * Removes the given listener for the PrepareRenderContext event. *
    * Event that will be triggered before the visual tree is painted to prepare the {@link yfiles.view.IRenderContext}. - * @param {function(Object, yfiles.view.PrepareRenderContextEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addPrepareRenderContextListener */ removePrepareRenderContextListener(listener:(sender:Object,evt:yfiles.view.PrepareRenderContextEventArgs)=>void):void; @@ -10640,13 +11019,13 @@ declare namespace system{ inputModeContext:yfiles.input.IInputModeContext; /** * Adds the given listener for the InputModeContextChanged event that occurs when the {@link yfiles.view.CanvasComponent#inputModeContext} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#removeInputModeContextChangedListener */ addInputModeContextChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the InputModeContextChanged event that occurs when the {@link yfiles.view.CanvasComponent#inputModeContext} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#addInputModeContextChangedListener */ removeInputModeContextChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -10690,7 +11069,7 @@ declare namespace system{ static sizeChangedTimerInterval:number; /** * Adds the given listener for the SizeChanged event that occurs when the size of this Control is changed. - * @param {function(Object, yfiles.view.SizeChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.CanvasComponent#sizeChangedDetection * @see yfiles.view.SizeChangedDetectionMode * @see yfiles.view.CanvasComponent#removeSizeChangedListener @@ -10698,7 +11077,7 @@ declare namespace system{ addSizeChangedListener(listener:(sender:Object,evt:yfiles.view.SizeChangedEventArgs)=>void):void; /** * Removes the given listener for the SizeChanged event that occurs when the size of this Control is changed. - * @param {function(Object, yfiles.view.SizeChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.CanvasComponent#sizeChangedDetection * @see yfiles.view.SizeChangedDetectionMode * @see yfiles.view.CanvasComponent#addSizeChangedListener @@ -10738,40 +11117,39 @@ declare namespace system{ * calculated using {@link yfiles.view.SvgExport#calculateScaleForWidth} and {@link yfiles.view.SvgExport#calculateScaleForHeight}. * * - * @class yfiles.view.SvgExport + * @class */ export interface SvgExport extends Object{} export class SvgExport { /** * Creates a new {@link yfiles.view.SvgExport} instance for the given world bounds and scale. - * @param {yfiles.geometry.Rect} worldBounds the bounds of the content to export, see {@link yfiles.view.SvgExport#worldBounds} - * @param {number} [scale=1.0] the scale, see {@link yfiles.view.SvgExport#scale} - * @constructor + * @param worldBounds the bounds of the content to export, see {@link #worldBounds} + * @param [scale=1.0] the scale, see {@link #scale} */ constructor(worldBounds:yfiles.geometry.Rect,scale?:number); /** - * Calculates the {@link yfiles.view.SvgExport#scale} value to apply in order to achieve the given target height (without {@link yfiles.view.SvgExport#margin}). + * Calculates the value to set the {@link yfiles.view.SvgExport#scale} to in order to achieve the given target height (without {@link yfiles.view.SvgExport#margins}). *

    * This method returns 1.0 if the {@link yfiles.view.SvgExport#worldBounds} height is zero or negative. *

    - * @param {number} height the height of the target image - * @returns {number} the scale value to use + * @param height the height of the target image + * @returns the scale value to use */ calculateScaleForHeight(height:number):number; /** - * Calculates the {@link yfiles.view.SvgExport#scale} value to apply in order to achieve the given target width (without {@link yfiles.view.SvgExport#margin}). + * Calculates the value to set the {@link yfiles.view.SvgExport#scale} to in order to achieve the given target width (without {@link yfiles.view.SvgExport#margins}). *

    * This method returns 1.0 if the {@link yfiles.view.SvgExport#worldBounds} width is zero or negative. *

    - * @param {number} width the width of the target image - * @returns {number} the scale value to use + * @param width the width of the target image + * @returns the scale value to use */ calculateScaleForWidth(width:number):number; /** * Returns an initialized {@link yfiles.view.IRenderContext} and changes the given transform and the clip bounds such that a part * of the given {@link yfiles.view.CanvasComponent} instance can be exported to an image. - * @param {yfiles.view.CanvasComponent} canvas The {@link yfiles.view.CanvasComponent} instance to export. - * @returns {yfiles.view.IRenderContext} An {@link yfiles.view.IRenderContext} to use. + * @param canvas The {@link } instance to export. + * @returns An {@link } to use. */ createRenderContext(canvas:yfiles.view.CanvasComponent):yfiles.view.IRenderContext; /** @@ -10779,8 +11157,8 @@ declare namespace system{ *

    * This method escapes non-Latin1 characters, does a base64 encoding, and returns the result as data URI. *

    - * @param {string} svgXml A string containing the SVG document. - * @returns {string} A data URI of the SVG document. + * @param svgXml A string containing the SVG document. + * @returns A data URI of the SVG document. * @static */ static encodeSvgDataUrl(svgXml:string):string; @@ -10790,8 +11168,8 @@ declare namespace system{ * The asynchronous version of this method, * {@link yfiles.view.SvgExport#exportSvgAsync}, is capable of encoding and inlining images that are embedded in the SVG. *

    - * @param {yfiles.view.CanvasComponent} canvas The canvas to be exported. - * @returns {Element} An SVG element with the canvas contents. + * @param canvas The canvas to be exported. + * @returns An SVG element with the canvas contents. */ exportSvg(canvas:yfiles.view.CanvasComponent):Element; /** @@ -10804,8 +11182,8 @@ declare namespace system{ * SVG image elements are replaced with a copy of the referenced SVG element if {@link yfiles.view.SvgExport#inlineSvgImages} is set to true. Image encoding can be * controlled for each image individually by overwriting the predicate method {@link yfiles.view.SvgExport#shouldInlineSvgImage}. *

    - * @param {yfiles.view.CanvasComponent} canvas The canvas to be exported. - * @returns {Promise.} + * @param canvas The canvas to be exported. + * @returns */ exportSvgAsync(canvas:yfiles.view.CanvasComponent):Promise; /** @@ -10813,14 +11191,14 @@ declare namespace system{ *

    * This method adds SVG namespace and xlink namespace declarations and replaces href with xlink:href. *

    - * @param {Element} svg The SVG element to export. - * @returns {string} A string representation of the SVG. + * @param svg The SVG element to export. + * @returns A string representation of the SVG. * @static */ static exportSvgString(svg:Element):string; /** * Returns a suitable clip to use for the visual for this exporter. - * @returns {yfiles.geometry.Rect} The clip. + * @returns The clip. */ getClip():yfiles.geometry.Rect; /** @@ -10830,9 +11208,9 @@ declare namespace system{ * the x, y, width, height and preserveAspectRatio attributes from the original image element to the imported SVG element. * In addition, the SVG is wrapped in a g element to support the transform of the original image. *

    - * @param {Element} importedSvg The root element of the SVG file that's referenced by the original image element. - * @param {SVGImageElement} originalImage The original image element that will be replaced. - * @returns {Element} The element that's actually placed in the DOM as a replacement of the originalImage. + * @param importedSvg The root element of the SVG file that's referenced by the original image element. + * @param originalImage The original image element that will be replaced. + * @returns The element that's actually placed in the DOM as a replacement of the originalImage. * @see yfiles.view.SvgExport#inlineSvgImages * @see yfiles.view.SvgExport#exportSvgAsync * @see yfiles.view.SvgExport#shouldInlineSvgImage @@ -10844,8 +11222,8 @@ declare namespace system{ *

    * This implementation returns the value of {@link yfiles.view.SvgExport#encodeImagesBase64} for all values of image. *

    - * @param {SVGImageElement} image The image to be encoded. - * @returns {boolean} Whether the given image should be encoded. + * @param image The image to be encoded. + * @returns Whether the given image should be encoded. * @protected */ shouldEncodeImageBase64(image:SVGImageElement):boolean; @@ -10854,8 +11232,8 @@ declare namespace system{ *

    * This implementation returns the value of {@link yfiles.view.SvgExport#inlineSvgImages} for all values of image. *

    - * @param {SVGImageElement} image The image to be inlined. - * @returns {boolean} Whether the given image should be inlined. + * @param image The image to be inlined. + * @returns Whether the given image should be inlined. * @protected */ shouldInlineSvgImage(image:SVGImageElement):boolean; @@ -10897,14 +11275,14 @@ declare namespace system{ *

    * @type {yfiles.geometry.Insets} */ - margin:yfiles.geometry.Insets; + margins:yfiles.geometry.Insets; /** - * Gets the resulting width of the target image with respect to {@link yfiles.view.SvgExport#worldBounds}, {@link yfiles.view.SvgExport#scale} and {@link yfiles.view.SvgExport#margin}. + * Gets the resulting width of the target image with respect to {@link yfiles.view.SvgExport#worldBounds}, {@link yfiles.view.SvgExport#scale} and {@link yfiles.view.SvgExport#margins}. * @type {number} */ viewWidth:number; /** - * Gets the resulting height of the target image with respect to {@link yfiles.view.SvgExport#worldBounds}, {@link yfiles.view.SvgExport#scale} and {@link yfiles.view.SvgExport#margin}. + * Gets the resulting height of the target image with respect to {@link yfiles.view.SvgExport#worldBounds}, {@link yfiles.view.SvgExport#scale} and {@link yfiles.view.SvgExport#margins}. * @type {number} */ viewHeight:number; @@ -10942,27 +11320,26 @@ declare namespace system{ * This class is used internally by {@link yfiles.view.CanvasComponent} and operates on instances of {@link yfiles.view.ISvgDefsCreator}. *

    * @see yfiles.view.CanvasComponent#svgDefsManager - * @class yfiles.view.SvgDefsManager + * @class */ export interface SvgDefsManager extends Object{} export class SvgDefsManager { /** * Initializes a new instance of the {@link yfiles.view.SvgDefsManager} class. - * @param {SVGDefsElement} defsElement The defs element of the svg document that will be managed by this instance. - * @constructor + * @param defsElement The defs element of the svg document that will be managed by this instance. */ constructor(defsElement:SVGDefsElement); /** * Triggers the clean up for svg defs on the provided control. - * @param {yfiles.view.CanvasComponent} canvas + * @param canvas */ cleanupDefs(canvas:yfiles.view.CanvasComponent):void; /** - * Generates an id that is globally unique among all {@link yfiles.view.SvgDefsManager} instances. + * Generates an ID that is globally unique among all {@link yfiles.view.SvgDefsManager} instances. *

    - * This id should be used for the "id" attribute of DOM nodes. + * This ID should be used for the "id" attribute of DOM nodes. *

    - * @returns {string} A globally unique id. + * @returns A globally unique ID. */ generateUniqueDefsId():string; /** @@ -10974,7 +11351,7 @@ declare namespace system{ */ cleanupTimerInterval:yfiles.lang.TimeSpan; /** - * Gets or sets the prefix to use for the {@link yfiles.view.SvgDefsManager#generateUniqueDefsId unique ids}. + * Gets or sets the prefix to use for the {@link yfiles.view.SvgDefsManager#generateUniqueDefsId unique IDs}. *

    * By default this is ygc<number> *

    @@ -10988,6 +11365,468 @@ declare namespace system{ defs:SVGDefsElement; static $class:yfiles.lang.Class; } + /** + * A component for displaying and editing an {@link yfiles.graph.IGraph}. + *

    + * This is a specialized {@link yfiles.view.CanvasComponent} that can hold, display, and edit an {@link yfiles.graph.IGraph} instance. It + * provides access to the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphComponent#selection} instances. + *

    + *

    + * This class has bindings for the following {@link yfiles.input.ICommand}s. + *

    + *
      + *
    • {@link yfiles.input.ICommand#FIT_GRAPH_BOUNDS} that invokes {@link yfiles.view.GraphComponent#fitGraphBounds}
    • + *
    • {@link yfiles.input.ICommand#SET_CURRENT_ITEM} for setting the {@link yfiles.view.GraphComponent#currentItem}
    • + *
    • {@link yfiles.input.ICommand#ZOOM_TO_CURRENT_ITEM} for adjusting the {@link yfiles.view.CanvasComponent#viewport} to the {@link yfiles.view.GraphComponent#currentItem}
    • + *
    + *

    + * The {@link yfiles.input.ICommand#ZOOM_TO_CURRENT_ITEM} is enabled, if {@link yfiles.view.CanvasComponent#navigationCommandsEnabled} is true. + *

    + *

    + * The components that can be used to display and edit a model are discussed in the section + * {@link @DGUIDE_PREFIX@/view_graphcontrol.html The Component for Displaying Graphs}. + *

    + *

    Related demos:

    + *
      + *
    • Demo: GraphViewer, Demo.yFiles.Graph.Viewer
    • + *
    • Demo: SimpleEditorForm, Demo.yFiles.Graph.SimpleEditor
    • + *
    + * @class + * @extends {yfiles.view.CanvasComponent} + */ + export interface GraphComponent extends yfiles.view.CanvasComponent{} + export class GraphComponent { + /** + * Creates a new instance of {@link yfiles.view.GraphComponent} using the div element that is specified by the selector. + *

    + * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default + * values upon first access. Thus this instance can be used right away without any further initialization. + *

    + * @param selector The CSS selector or id for an existing div element + */ + constructor(selector:string); + /** + * Creates a new instance of {@link yfiles.view.GraphComponent} using the div element that is specified by the selector. + *

    + * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default + * values upon first access. Thus this instance can be used right away without any further initialization. + *

    + * @param {Object} options The parameters to pass. + * @param options.selector The CSS selector or id for an existing div element + * @param {yfiles.input.IInputMode} options.inputMode The single {@link yfiles.input.IInputMode} instance that shall be installed for this canvas. + *

    + * This option sets the {@link yfiles.view.CanvasComponent#inputMode} property on the created object. + *

    + * @param {yfiles.graph.IGraph} options.graph The graph that is displayed in this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#graph} property on the created object. + *

    + * @param {yfiles.graph.GraphClipboard} options.clipboard The {@link yfiles.graph.GraphClipboard} associated with this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#clipboard} property on the created object. + *

    + * @param {yfiles.view.IGraphSelection} options.selection The selection model that is used for this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#selection} property on the created object. + *

    + */ + constructor(options:{selector:string,inputMode?:yfiles.input.IInputMode,graph?:yfiles.graph.IGraph,clipboard?:yfiles.graph.GraphClipboard,selection?:yfiles.view.IGraphSelection}); + /** + * Creates a new instance of the {@link yfiles.view.GraphComponent} in the given div element. + *

    + * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default + * values upon first access. Thus this instance can be used right away without any further initialization. + *

    + * @param div The existing div element to use for rendering the canvas into. + */ + constructor(div:HTMLDivElement); + /** + * Creates a new instance of the {@link yfiles.view.GraphComponent} in the given div element. + *

    + * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default + * values upon first access. Thus this instance can be used right away without any further initialization. + *

    + * @param {Object} options The parameters to pass. + * @param options.div The existing div element to use for rendering the canvas into. + * @param {yfiles.input.IInputMode} options.inputMode The single {@link yfiles.input.IInputMode} instance that shall be installed for this canvas. + *

    + * This option sets the {@link yfiles.view.CanvasComponent#inputMode} property on the created object. + *

    + * @param {yfiles.graph.IGraph} options.graph The graph that is displayed in this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#graph} property on the created object. + *

    + * @param {yfiles.graph.GraphClipboard} options.clipboard The {@link yfiles.graph.GraphClipboard} associated with this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#clipboard} property on the created object. + *

    + * @param {yfiles.view.IGraphSelection} options.selection The selection model that is used for this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#selection} property on the created object. + *

    + */ + constructor(options:{div:HTMLDivElement,inputMode?:yfiles.input.IInputMode,graph?:yfiles.graph.IGraph,clipboard?:yfiles.graph.GraphClipboard,selection?:yfiles.view.IGraphSelection}); + /** + * Creates a new instance of the {@link yfiles.view.GraphComponent}. + *

    + * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default + * values upon first access. Thus this instance can be used right away without any further initialization. This constructor + * creates a new div element that needs to be manually added to the DOM. + *

    + * @param {Object} [options=null] The parameters to pass. + * @param {yfiles.input.IInputMode} options.inputMode The single {@link yfiles.input.IInputMode} instance that shall be installed for this canvas. + *

    + * This option sets the {@link yfiles.view.CanvasComponent#inputMode} property on the created object. + *

    + * @param {yfiles.graph.IGraph} options.graph The graph that is displayed in this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#graph} property on the created object. + *

    + * @param {yfiles.graph.GraphClipboard} options.clipboard The {@link yfiles.graph.GraphClipboard} associated with this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#clipboard} property on the created object. + *

    + * @param {yfiles.view.IGraphSelection} options.selection The selection model that is used for this control. + *

    + * This option sets the {@link yfiles.view.GraphComponent#selection} property on the created object. + *

    + */ + constructor(options?:{inputMode?:yfiles.input.IInputMode,graph?:yfiles.graph.IGraph,clipboard?:yfiles.graph.GraphClipboard,selection?:yfiles.view.IGraphSelection}); + /** + * Factory method for the {@link yfiles.view.GraphComponent#focusIndicatorManager} property. + *

    + * This method will be called upon first access to the {@link yfiles.view.GraphComponent#focusIndicatorManager} property. + *

    + * @returns a new instance of {@link }. + * @protected + */ + createFocusIndicatorManager():yfiles.view.FocusIndicatorManager; + /** + * Factory method for the Graph property. + *

    + * This method will be called upon first access to the {@link yfiles.view.GraphComponent#graph} property. + *

    + * @returns a new instance of {@link } + * @protected + */ + createGraph():yfiles.graph.IGraph; + /** + * Creates the default instance to use if no custom instance has been set. + * @returns A default {@link } instance. + * @protected + */ + createGraphClipboard():yfiles.graph.GraphClipboard; + /** + * Factory method for the {@link yfiles.view.GraphComponent#graphModelManager} property. + *

    + * This method will be called upon first access to the {@link yfiles.view.GraphComponent#graphModelManager} property. + *

    + * @returns a new instance of {@link }. + * @protected + */ + createGraphModelManager():yfiles.view.GraphModelManager; + /** + * Factory method for the {@link yfiles.view.GraphComponent#highlightIndicatorManager} property. + *

    + * This method will be called upon first access to the {@link yfiles.view.GraphComponent#highlightIndicatorManager} property. + *

    + * @returns a new instance of {@link #highlightIndicatorManager}. + * @protected + */ + createHighlightIndicatorManager():yfiles.view.HighlightIndicatorManager; + /** + * Factory method for the Selection property. + *

    + * This method will be called upon first access to the {@link yfiles.view.GraphComponent#selection} property. + *

    + * @returns a new instance of {@link } + * @protected + */ + createSelection():yfiles.view.IGraphSelection; + /** + * Factory method for the {@link yfiles.view.GraphComponent#selectionIndicatorManager} property. + *

    + * This method will be called upon first access to the {@link yfiles.view.GraphComponent#selectionIndicatorManager} property. + *

    + * @returns a new instance of {@link } + * @protected + */ + createSelectionIndicatorManager():yfiles.view.SelectionIndicatorManager; + /** + * {@link yfiles.view.CanvasComponent#updateContentRect Updates the content rectangle} for the {@link yfiles.view.CanvasComponent#contentGroup} considering the provided insets and + * {@link yfiles.view.CanvasComponent#fitContent adjusts the viewport to encompass the contents}. + * @param [insets=null] + */ + fitGraphBounds(insets?:yfiles.geometry.Insets):void; + /** + * Convenience method that runs a layouter on the graph of a given graph control and animates the transition. + *

    + * An event is called once the animation has finished. + *

    + *

    + * The implementation simply delegates to a properly configured instance of {@link yfiles.layout.LayoutExecutor}. In addition to + * the default configuration, it enables {@link yfiles.layout.LayoutExecutor#animateViewport}, {@link yfiles.layout.LayoutExecutor#easedAnimation}, and {@link yfiles.layout.LayoutExecutor#updateContentRect}. For more fine-grained control of the animation, use {@link yfiles.layout.LayoutExecutor} + * directly. + *

    + * @param layout + * @param [morphDuration=null] + * @param [layoutData=null] + * @returns + */ + morphLayout(layout:yfiles.layout.ILayoutAlgorithm,morphDuration?:yfiles.lang.TimeSpan,layoutData?:yfiles.layout.LayoutData):Promise; + /** + * Convenience method that runs a layouter on the graph of a given graph control and animates the transition. + *

    + * An event is called once the animation has finished. + *

    + *

    + * The implementation simply delegates to a properly configured instance of {@link yfiles.layout.LayoutExecutor}. In addition to + * the default configuration, it enables {@link yfiles.layout.LayoutExecutor#animateViewport}, {@link yfiles.layout.LayoutExecutor#easedAnimation}, and {@link yfiles.layout.LayoutExecutor#updateContentRect}. For more fine-grained control of the animation, use {@link yfiles.layout.LayoutExecutor} + * directly. + *

    + * @param {Object} options The parameters to pass. + * @param options.layout + * @param [options.morphDuration=null] + * @param [options.layoutData=null] + * @returns + */ + morphLayout(options:{layout:yfiles.layout.ILayoutAlgorithm,morphDuration?:yfiles.lang.TimeSpan,layoutData?:yfiles.layout.LayoutData}):Promise; + /** + * Gets or sets the 'current' item. + * @default null + * @type {yfiles.graph.IModelItem} + */ + currentItem:yfiles.graph.IModelItem; + /** + * Adds the given listener for the CurrentItemChanged event that occurs when the {@link yfiles.view.GraphComponent#currentItem} property has changed its value. + * @param listener The listener to add. + * @see yfiles.view.GraphComponent#removeCurrentItemChangedListener + */ + addCurrentItemChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Removes the given listener for the CurrentItemChanged event that occurs when the {@link yfiles.view.GraphComponent#currentItem} property has changed its value. + * @param listener The listener to remove. + * @see yfiles.view.GraphComponent#addCurrentItemChangedListener + */ + removeCurrentItemChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Gets or sets the {@link yfiles.view.GraphComponent#selectionIndicatorManager} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createSelectionIndicatorManager} + * will be called. + *

    + * @type {yfiles.view.SelectionIndicatorManager.} + */ + selectionIndicatorManager:yfiles.view.SelectionIndicatorManager; + /** + * Gets or sets the {@link yfiles.view.GraphComponent#highlightIndicatorManager} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createHighlightIndicatorManager} + * will be called. + *

    + * @type {yfiles.view.HighlightIndicatorManager.} + */ + highlightIndicatorManager:yfiles.view.HighlightIndicatorManager; + /** + * Gets or sets the {@link yfiles.view.GraphComponent#focusIndicatorManager} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createFocusIndicatorManager} + * will be called. + *

    + * @type {yfiles.view.FocusIndicatorManager.} + */ + focusIndicatorManager:yfiles.view.FocusIndicatorManager; + /** + * Gets or sets the {@link yfiles.view.GraphComponent#graphModelManager} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createGraphModelManager} + * will be called. + *

    + * @type {yfiles.view.GraphModelManager} + */ + graphModelManager:yfiles.view.GraphModelManager; + /** + * Gets or sets the graph that is displayed in this control. + *

    + * Normally the {@link yfiles.view.GraphSelection} property must be adjusted accordingly if the graph instance is replaced. Also + * depending on the {@link yfiles.input.IInputMode} implementation the instances used in this component might need to be replaced + * or adjusted, too. If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createGraph} + * will be called. + *

    + * @type {yfiles.graph.IGraph} + */ + graph:yfiles.graph.IGraph; + /** + * Adds the given listener for the GraphChanged event that occurs when the {@link yfiles.view.GraphComponent#graph} property has been changed. + * @param listener The listener to add. + * @see yfiles.view.GraphComponent#removeGraphChangedListener + */ + addGraphChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GraphChanged event that occurs when the {@link yfiles.view.GraphComponent#graph} property has been changed. + * @param listener The listener to remove. + * @see yfiles.view.GraphComponent#addGraphChangedListener + */ + removeGraphChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Gets or sets the selection model that is used for this control. + *

    + * The selection model instance needs to be adjusted, normally if the {@link yfiles.view.GraphComponent#graph} instance is changed. If the field has not yet been + * initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createSelection} will be called. + *

    + * @type {yfiles.view.IGraphSelection} + */ + selection:yfiles.view.IGraphSelection; + /** + * Gets or sets the {@link yfiles.graph.GraphClipboard} associated with this control. + *

    + * If no instance has been configured with this control, a default implementation will be used. + *

    + * @type {yfiles.graph.GraphClipboard} + */ + clipboard:yfiles.graph.GraphClipboard; + static $class:yfiles.lang.Class; + } + /** + * Convenience component implementation that shows an overview of an {@link yfiles.graph.IGraph} contained in another {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + * This component uses a {@link yfiles.view.GraphOverviewComponent#graphVisualCreator} to display the graph in a preview mode and an {@link yfiles.view.GraphOverviewComponent#overviewInputMode} to allow for easily navigating in the {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + *

    Related demos:

    + *
      + *
    • Demo: SimpleEditorForm, Demo.yFiles.Graph.SimpleEditor
    • + *
    + * @class + * @extends {yfiles.view.CanvasComponent} + */ + export interface GraphOverviewComponent extends yfiles.view.CanvasComponent{} + export class GraphOverviewComponent { + /** + * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is specified by the selector and + * that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + *

    + * @param [graphComponent=null] The {@link #graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. + * @param selector The CSS selector or id for an existing div element + */ + constructor(selector:string,graphComponent?:yfiles.view.GraphComponent); + /** + * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is specified by the selector and + * that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + *

    + * @param {Object} options The parameters to pass. + * @param [options.graphComponent=null] The {@link #graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. + * @param options.selector The CSS selector or id for an existing div element + * @param {boolean} options.svgRendering A value indicating whether the graph is rendered using SVG rendering. + *

    + * This option sets the {@link yfiles.view.GraphOverviewComponent#svgRendering} property on the created object. + *

    + */ + constructor(options:{selector:string,graphComponent?:yfiles.view.GraphComponent,svgRendering?:boolean}); + /** + * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is optionally bound to the + * provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + *

    + * @param div The div element to use for holding the canvas. + * @param [graphComponent=null] The optional graph control to {@link #graphComponent bind} this instance to. If omitted, the property needs to be set to initialize the + * component. + */ + constructor(div:HTMLDivElement,graphComponent?:yfiles.view.GraphComponent); + /** + * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is optionally bound to the + * provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + *

    + * @param {Object} options The parameters to pass. + * @param options.div The div element to use for holding the canvas. + * @param [options.graphComponent=null] The optional graph control to {@link #graphComponent bind} this instance to. If omitted, the property needs to be set to initialize the + * component. + * @param {boolean} options.svgRendering A value indicating whether the graph is rendered using SVG rendering. + *

    + * This option sets the {@link yfiles.view.GraphOverviewComponent#svgRendering} property on the created object. + *

    + */ + constructor(options:{div:HTMLDivElement,graphComponent?:yfiles.view.GraphComponent,svgRendering?:boolean}); + /** + * Creates a new instance that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + * This constructor creates a new {@link yfiles.view.CanvasComponent#div} element that needs to be added to the DOM manually. If no graphControl is provided, in + * order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + *

    + * @param [graphComponent=null] The {@link #graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. + */ + constructor(graphComponent?:yfiles.view.GraphComponent); + /** + * Creates a new instance that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + *

    + * This constructor creates a new {@link yfiles.view.CanvasComponent#div} element that needs to be added to the DOM manually. If no graphControl is provided, in + * order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + *

    + * @param {Object} options The parameters to pass. + * @param [options.graphComponent=null] The {@link #graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. + * @param {boolean} options.svgRendering A value indicating whether the graph is rendered using SVG rendering. + *

    + * This option sets the {@link yfiles.view.GraphOverviewComponent#svgRendering} property on the created object. + *

    + */ + constructor(options:{graphComponent?:yfiles.view.GraphComponent,svgRendering?:boolean}); + /** + * Factory method that creates the {@link yfiles.view.IVisualCreator} that renders the preview of the graph in a HTML canvas + * element. + * @param graph The graph to draw. + * @returns An {@link } that creates HTML canvas rendering. + * @protected + */ + createCanvasVisualCreator(graph:yfiles.graph.IGraph):yfiles.view.IVisualCreator; + /** + * Factory method that creates the {@link yfiles.view.IVisualCreator} that renders the preview of the graph in SVG. + * @param graph The graph to draw. + * @returns An {@link } that creates SVG. + * @protected + */ + createSvgVisualCreator(graph:yfiles.graph.IGraph):yfiles.view.IVisualCreator; + /** + * Gets or sets a value indicating whether the graph is rendered using SVG rendering. + * @default false + * @type {boolean} + */ + svgRendering:boolean; + /** + * Gets the {@link yfiles.styles.GraphOverviewSvgVisualCreator} that is used to render the over view graph. + * @type {yfiles.view.IVisualCreator} + */ + graphVisualCreator:yfiles.view.IVisualCreator; + /** + * Gets or sets the {@link yfiles.input.OverviewInputMode} that is used to navigate the client control. + *

    + * Setting this property will automatically update the {@link yfiles.input.OverviewInputMode#canvasComponent} property of the new {@link yfiles.input.OverviewInputMode}. + *

    + *

    + * This property is merely a convenience alias for the {@link yfiles.view.CanvasComponent#inputMode} property. Setting either this property or the {@link yfiles.view.CanvasComponent#inputMode} property has the + * same effect if the input mode is an {@link yfiles.input.OverviewInputMode}. On the other hand, if an input mode is set that is + * not an {@link yfiles.input.OverviewInputMode}, then the value of this property is null + *

    + * @type {yfiles.input.OverviewInputMode} + */ + overviewInputMode:yfiles.input.OverviewInputMode; + /** + * Gets or sets the graph that is rendered in the overview. + * @type {yfiles.graph.IGraph} + */ + graph:yfiles.graph.IGraph; + /** + * Gets or sets the client component, that will be used to retrieve the graph from and that will be used for navigating. + * @type {yfiles.view.GraphComponent} + */ + graphComponent:yfiles.view.GraphComponent; + static $class:yfiles.lang.Class; + } /** * This class describes a grid by providing the grid's origin as well as the horizontal and vertical spacing between the * grid points. @@ -10995,22 +11834,20 @@ declare namespace system{ * It is used by the {@link yfiles.input.IGridConstraintProvider.} as well as by the GridSnapResultVisualCreator<T> *

    * @see yfiles.input.IGridConstraintProvider. - * @class yfiles.view.GridInfo + * @class */ export interface GridInfo extends Object{} export class GridInfo { /** * Creates a new instance using the given horizontal and vertical grid spacing as well as the given origin. - * @param {number} horizontalSpacing The horizontal spacing between the grid points. - * @param {number} verticalSpacing The vertical spacing between the grid points. - * @param {yfiles.geometry.Point} origin The canonic origin of the grid. - * @constructor + * @param horizontalSpacing The horizontal spacing between the grid points. + * @param verticalSpacing The vertical spacing between the grid points. + * @param origin The canonic origin of the grid. */ constructor(horizontalSpacing:number,verticalSpacing:number,origin:yfiles.geometry.Point); /** * Creates a new instance using "25" as the grid spacing. - * @param {number} [spacing=25] The horizontal and vertical spacing between the grid points. - * @constructor + * @param [spacing=25] The horizontal and vertical spacing between the grid points. */ constructor(spacing?:number); /** @@ -11044,8 +11881,8 @@ declare namespace system{ export interface ICanvasContext extends Object,yfiles.graph.ILookup{ /** * Adds an element to the defs section of the document, if it has not been added yet. - * @param {yfiles.view.ISvgDefsCreator} defsSupport The instance that is used to create and update the element and to query if the element is still referenced - * @returns {string} The id of the element with which it can be referenced using an url reference. + * @param defsSupport The instance that is used to create and update the element and to query if the element is still referenced + * @returns The id of the element with which it can be referenced using an url reference. * @abstract */ getDefsId(defsSupport:yfiles.view.ISvgDefsCreator):string; @@ -11080,10 +11917,10 @@ declare namespace system{ *

    * If the values for zoom or hitTestRadius are not specified, the values will be obtained from the given canvas. *

    - * @param {yfiles.view.CanvasComponent} canvas the canvas - * @param {number} [zoom=0] the zoom level - * @param {number} [hitTestRadius=-1] the hit test radius - * @returns {yfiles.view.ICanvasContext} + * @param canvas the canvas + * @param [zoom=0] the zoom level + * @param [hitTestRadius=-1] the hit test radius + * @returns * @static */ createCanvasContext?(canvas:yfiles.view.CanvasComponent,zoom?:number,hitTestRadius?:number):yfiles.view.ICanvasContext; @@ -11093,10 +11930,10 @@ declare namespace system{ * If the values for zoom or hitTestRadius are not specified, the values will be obtained from the given canvas. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.view.CanvasComponent} options.canvas the canvas - * @param {number} [options.zoom=0] the zoom level - * @param {number} [options.hitTestRadius=-1] the hit test radius - * @returns {yfiles.view.ICanvasContext} + * @param options.canvas the canvas + * @param [options.zoom=0] the zoom level + * @param [options.hitTestRadius=-1] the hit test radius + * @returns * @static */ createCanvasContext?(options:{canvas:yfiles.view.CanvasComponent,zoom?:number,hitTestRadius?:number}):yfiles.view.ICanvasContext; @@ -11128,8 +11965,8 @@ declare namespace system{ *

    * Observe that this instance will move into the referenced item's group if needed. *

    - * @param {yfiles.view.ICanvasObject} reference - * @returns {yfiles.view.ICanvasObject} this so that calls can be chained. + * @param reference + * @returns this so that calls can be chained. * @abstract */ above(reference:yfiles.view.ICanvasObject):yfiles.view.ICanvasObject; @@ -11142,8 +11979,8 @@ declare namespace system{ *

    * Observe that this instance will move into the referenced item's group if needed. *

    - * @param {yfiles.view.ICanvasObject} reference - * @returns {yfiles.view.ICanvasObject} this so that calls can be chained. + * @param reference + * @returns this so that calls can be chained. * @abstract */ below(reference:yfiles.view.ICanvasObject):yfiles.view.ICanvasObject; @@ -11154,7 +11991,7 @@ declare namespace system{ * As a convenience, this method returns the current instance so that calls can be conveniently chained, e.g. * object.Lower().Lower() *

    - * @returns {yfiles.view.ICanvasObject} this so that calls can be chained. + * @returns this so that calls can be chained. * @abstract */ lower():yfiles.view.ICanvasObject; @@ -11165,7 +12002,7 @@ declare namespace system{ * As a convenience, this method returns the current instance so that calls can be conveniently chained, e.g. * object.Raise().Raise().Raise() *

    - * @returns {yfiles.view.ICanvasObject} this so that calls can be chained. + * @returns this so that calls can be chained. * @abstract */ raise():yfiles.view.ICanvasObject; @@ -11181,7 +12018,7 @@ declare namespace system{ * As a convenience, this method returns the current instance so that calls can be conveniently chained, e.g. * object.ToBack().Raise().Raise() *

    - * @returns {yfiles.view.ICanvasObject} this so that calls can be chained. + * @returns this so that calls can be chained. * @abstract */ toBack():yfiles.view.ICanvasObject; @@ -11192,7 +12029,7 @@ declare namespace system{ * As a convenience, this method returns the current instance so that calls can be conveniently chained, e.g. * object.ToFront().Lower() *

    - * @returns {yfiles.view.ICanvasObject} this so that calls can be chained. + * @returns this so that calls can be chained. * @abstract */ toFront():yfiles.view.ICanvasObject; @@ -11284,8 +12121,8 @@ declare namespace system{ * design pattern. Implementations of this class can always return the same instance and reconfigure this instance upon * each call to this method. *

    - * @param {Object} forUserObject the user object to query the bounds for - * @returns {yfiles.view.IBoundsProvider} an implementation or null if the bounds are not known, in which case the bounds are treated as infinite + * @param forUserObject the user object to query the bounds for + * @returns an implementation or null if the bounds are not known, in which case the bounds are treated as infinite * @abstract */ getBoundsProvider(forUserObject:Object):yfiles.view.IBoundsProvider; @@ -11298,8 +12135,8 @@ declare namespace system{ * design pattern. Implementations of this class can always return the same instance and reconfigure this instance upon * each call to this method. *

    - * @param {Object} forUserObject the user object to do the hit testing for - * @returns {yfiles.input.IHitTestable} an implementation or null if the rendering cannot be hit tested + * @param forUserObject the user object to do the hit testing for + * @returns an implementation or null if the rendering cannot be hit tested * @abstract */ getHitTestable(forUserObject:Object):yfiles.input.IHitTestable; @@ -11312,8 +12149,8 @@ declare namespace system{ * design pattern. Implementations of this class can always return the same instance and reconfigure this instance upon * each call to this method. *

    - * @param {Object} forUserObject the user object to query the bounds for - * @returns {yfiles.view.IVisibilityTestable} an implementation or null if the bounds are not known, in which case the bounds are treated as infinite + * @param forUserObject the user object to query the bounds for + * @returns an implementation or null if the bounds are not known, in which case the bounds are treated as infinite * @abstract */ getVisibilityTestable(forUserObject:Object):yfiles.view.IVisibilityTestable; @@ -11326,16 +12163,16 @@ declare namespace system{ * design pattern. Implementations of this class can always return the same instance and reconfigure this instance upon * each call to this method. *

    - * @param {Object} forUserObject the user object to create a Visual for - * @returns {yfiles.view.IVisualCreator} an implementation or null if nothing shall be rendered + * @param forUserObject the user object to create a Visual for + * @returns an implementation or null if nothing shall be rendered * @abstract */ getVisualCreator(forUserObject:Object):yfiles.view.IVisualCreator; /** * Determines whether the given canvas object is deemed dirty and needs updating. - * @param {yfiles.view.ICanvasContext} context The context that will be used for the update. - * @param {yfiles.view.ICanvasObject} canvasObject The object to check. - * @returns {boolean} Whether an update is needed. + * @param context The context that will be used for the update. + * @param canvasObject The object to check. + * @returns Whether an update is needed. * @abstract */ isDirty(context:yfiles.view.ICanvasContext,canvasObject:yfiles.view.ICanvasObject):boolean; @@ -11349,9 +12186,16 @@ declare namespace system{ */ VOID?:yfiles.view.ICanvasObjectDescriptor; /** - * An implementation that tries to cast the user object to the required interface. + * An implementation that treats {@link yfiles.view.ICanvasObject#userObject} as an instance of {@link yfiles.view.IVisualCreator} and considers the {@link yfiles.view.ICanvasObject#dirty} flag. *

    - * This implementation will respect the {@link yfiles.view.ICanvasObject#dirty} flag. + * This descriptor tries to cast the {@link yfiles.view.ICanvasObject#userObject} to {@link yfiles.view.IVisualCreator} and use this instance to handle the visual + * representation of the {@link yfiles.view.ICanvasObject}. + *

    + *

    + * If the {@link yfiles.view.ICanvasObject#userObject} does not implement {@link yfiles.view.IVisualCreator} nothing will be displayed. + *

    + *

    + * This descriptor will respect the {@link yfiles.view.ICanvasObject#dirty} flag. *

    * @const * @static @@ -11359,9 +12203,16 @@ declare namespace system{ */ DYNAMIC_DIRTY_INSTANCE?:yfiles.view.ICanvasObjectDescriptor; /** - * An implementation that tries to cast the user object to the required interface. + * A descriptor that treats {@link yfiles.view.ICanvasObject#userObject} as an instance of {@link yfiles.view.IVisualCreator} and ignores the {@link yfiles.view.ICanvasObject#dirty} flag. *

    - * This implementation will treat always {@link yfiles.view.IVisualCreator#updateVisual update the Visual} and will effectively ignore the {@link yfiles.view.ICanvasObject#dirty} flag. + * This descriptor tries to cast the {@link yfiles.view.ICanvasObject#userObject} to {@link yfiles.view.IVisualCreator} and use this instance to handle the visual + * representation of the {@link yfiles.view.ICanvasObject}. + *

    + *

    + * If the {@link yfiles.view.ICanvasObject#userObject} does not implement {@link yfiles.view.IVisualCreator} nothing will be displayed. + *

    + *

    + * This descriptor will always {@link yfiles.view.IVisualCreator#updateVisual update the visual} and thus ignore the {@link yfiles.view.ICanvasObject#dirty} flag. *

    * @const * @static @@ -11369,9 +12220,17 @@ declare namespace system{ */ ALWAYS_DIRTY_INSTANCE?:yfiles.view.ICanvasObjectDescriptor; /** - * An implementation that tries to lookup the instance from the user object if it is an {@link yfiles.graph.ILookup}. + * A descriptor that treats {@link yfiles.view.ICanvasObject#userObject} as an instance of {@link yfiles.graph.ILookup} to obtain suitable interface implementations and + * considers the {@link yfiles.view.ICanvasObject#dirty} flag. *

    - * This implementation will respect the {@link yfiles.view.ICanvasObject#dirty} flag. + * This descriptor tries to cast the {@link yfiles.view.ICanvasObject#userObject} to {@link yfiles.graph.ILookup} and obtain the appropriate interface implementations for its + * methods from it. + *

    + *

    + * If the {@link yfiles.view.ICanvasObject#userObject} does not implement {@link yfiles.graph.ILookup} nothing will be displayed. + *

    + *

    + * This descriptor will respect the {@link yfiles.view.ICanvasObject#dirty} flag. *

    * @const * @static @@ -11379,9 +12238,17 @@ declare namespace system{ */ DYNAMIC_DIRTY_LOOKUP?:yfiles.view.ICanvasObjectDescriptor; /** - * An implementation that tries to lookup the instance from the user object if it is an {@link yfiles.graph.ILookup}. + * A descriptor that treats {@link yfiles.view.ICanvasObject#userObject} as an instance of {@link yfiles.graph.ILookup} to obtain suitable interface implementations and + * ignores the {@link yfiles.view.ICanvasObject#dirty} flag. *

    - * This implementation will treat always {@link yfiles.view.IVisualCreator#updateVisual update the Visual} and will effectively ignore the {@link yfiles.view.ICanvasObject#dirty} flag. + * This descriptor tries to cast the {@link yfiles.view.ICanvasObject#userObject} to {@link yfiles.graph.ILookup} and obtain the appropriate interface implementations for its + * methods from it. + *

    + *

    + * If the {@link yfiles.view.ICanvasObject#userObject} does not implement {@link yfiles.graph.ILookup} nothing will be displayed. + *

    + *

    + * This descriptor will always {@link yfiles.view.IVisualCreator#updateVisual update the Visual} and thus ignore the {@link yfiles.view.ICanvasObject#dirty} flag. *

    * @const * @static @@ -11389,8 +12256,13 @@ declare namespace system{ */ ALWAYS_DIRTY_LOOKUP?:yfiles.view.ICanvasObjectDescriptor; /** - * An implementation that will cast the {@link yfiles.view.ICanvasObject#userObject} to {@link yfiles.view.ICanvasObjectDescriptor#VISUAL} and use that to insert into the - * scene graph. + * A descriptor that treats {@link yfiles.view.ICanvasObject#userObject} as Visual to use directly. + *

    + * If the {@link yfiles.view.ICanvasObject#userObject} is not a Visual nothing will be displayed. + *

    + *

    + * This descriptor ignores the {@link yfiles.view.ICanvasObject#dirty} flag. + *

    * @const * @static * @type {yfiles.view.ICanvasObjectDescriptor} @@ -11418,10 +12290,10 @@ declare namespace system{ * The descriptor will be queried for the various rendering related implementations for the given userObject at rendering * time. *

    - * @param {Object} userObject The user object to associate with this child element. This object will be passed to the descriptor's methods. - * @param {yfiles.view.ICanvasObjectDescriptor} descriptor An implementation of the {@link yfiles.view.ICanvasObjectDescriptor} interface that will be passed the userObject to provide the + * @param userObject The user object to associate with this child element. This object will be passed to the descriptor's methods. + * @param descriptor An implementation of the {@link } interface that will be passed the userObject to provide the * various implementations that are used during rendering. - * @returns {yfiles.view.ICanvasObject} A handle that can be used to control the rendering order and to later {@link yfiles.view.ICanvasObject#remove remove} the element from the scene graph, again. + * @returns A handle that can be used to control the rendering order and to later {@link #remove remove} the element from the scene graph, again. * @see yfiles.view.ICanvasObjectDescriptor * @see yfiles.view.ICanvasObjectDescriptor#DYNAMIC_DIRTY_INSTANCE * @abstract @@ -11433,7 +12305,7 @@ declare namespace system{ * This can be used to build groups of {@link yfiles.view.ICanvasObject} instances that can be moved within the scene graph or * whose {@link yfiles.view.ICanvasObject#visible visibility} can be controlled easily. The group will have a null {@link yfiles.view.ICanvasObject#userObject}. *

    - * @returns {yfiles.view.ICanvasObjectGroup} A handle to the newly created group that can be used to control the rendering order and to later {@link yfiles.view.ICanvasObject#remove remove} the group from + * @returns A handle to the newly created group that can be used to control the rendering order and to later {@link #remove remove} the group from * the scene graph, again. * @abstract */ @@ -11465,524 +12337,6 @@ declare namespace system{ $class:yfiles.lang.Class; isInstance(o:Object):boolean; }; - /** - * A container that can hold a number of {@link yfiles.view.SvgVisual}s. - *

    - * Use this class in a {@link yfiles.view.IVisualCreator} implementation to group several {@link yfiles.view.SvgVisual}s. - *

    - *

    - * The class cannot be used to group {@link yfiles.view.HtmlCanvasVisual}s. - *

    - * @class yfiles.view.SvgVisualGroup - * @extends {yfiles.view.SvgVisual} - */ - export interface SvgVisualGroup extends yfiles.view.SvgVisual{} - export class SvgVisualGroup { - /** - * Initializes a new instance of the {@link yfiles.view.SvgVisualGroup} class. - * @constructor - */ - constructor(); - /** - * Adds another {@link yfiles.view.SvgVisual} to the children collection of this instance. - * @param {yfiles.view.SvgVisual} child The child to add. - */ - add(child:yfiles.view.SvgVisual):void; - /** - * Removes a previously added {@link yfiles.view.SvgVisual} from the children collection of this instance. - * @param {yfiles.view.SvgVisual} child The child to remove. - */ - remove(child:yfiles.view.SvgVisual):void; - /** - * Gets or sets a transform that is applied to the children of the container. - * @type {yfiles.geometry.Matrix} - */ - transform:yfiles.geometry.Matrix; - /** - * Provides read and write access to the list of children. - * @type {yfiles.collections.IList.} - */ - children:yfiles.collections.IList; - static $class:yfiles.lang.Class; - } - /** - * Helper class used by {@link yfiles.view.CanvasComponent} to limit the interactive movement of the viewport. - *

    - * The {@link yfiles.view.CanvasComponent#viewportLimiter} instance should be consulted whenever the user tries to change the viewport. Using method {@link yfiles.view.ViewportLimiter#limitViewport} - * the desired viewport can be validated by the implementation. Note that setting the {@link yfiles.view.CanvasComponent#zoom} property or {@link yfiles.view.CanvasComponent#viewPoint} property will not be - * influenced by implementations of this class. It is up to the caller to perform verification. - *

    - * @see yfiles.view.ViewportLimiter#bounds - * @class yfiles.view.ViewportLimiter - */ - export interface ViewportLimiter extends Object{} - export class ViewportLimiter { - /** - * Initializes a new instance of the {@link yfiles.view.ViewportLimiter} class. - * @constructor - */ - constructor(); - /** - * Gets the to bounds that should be honored for the upcoming call. - *

    - * This method is used as callback by {@link yfiles.view.ViewportLimiter#limitViewport} for each request. The default - * implementation just yields {@link yfiles.view.ViewportLimiter#bounds}. - *

    - * @param {yfiles.view.CanvasComponent} canvas The canvas control. - * @param {yfiles.geometry.Rect} suggestedViewport The suggested viewport. - * @returns {yfiles.geometry.Rect} The bounds to honor or null. - * @protected - */ - getCurrentBounds(canvas:yfiles.view.CanvasComponent,suggestedViewport:yfiles.geometry.Rect):yfiles.geometry.Rect; - /** - * Inspects the desired or suggested new viewport for the given control and returns a valid viewport to use. - * @param {yfiles.view.CanvasComponent} canvas The canvas control on which the viewport should be applied. - * @param {yfiles.geometry.Rect} suggestedViewport The suggested viewport. - * @returns {yfiles.geometry.Rect} The viewport that should be used. - */ - limitViewport(canvas:yfiles.view.CanvasComponent,suggestedViewport:yfiles.geometry.Rect):yfiles.geometry.Rect; - /** - * Gets or sets a value indicating whether both dimensions of {@link yfiles.view.ViewportLimiter#bounds} need to be honored. - * @default true - * @type {boolean} - */ - honorBothDimensions:boolean; - /** - * Gets or sets the maximal allowed navigable bounds for the viewport. - * @type {yfiles.geometry.Rect} - */ - bounds:yfiles.geometry.Rect; - static $class:yfiles.lang.Class; - } - /** - * Runs {@link yfiles.view.IAnimation animations} in a {@link yfiles.view.CanvasComponent}. - *

    - * For running {@link yfiles.view.IAnimation} instances the method {@link yfiles.view.Animator#animate} can be used. For simpler cases of - * custom animations there are also overloads that take an animation callback. - *

    - * @see yfiles.view.IAnimation - * @class yfiles.view.Animator - */ - export interface Animator extends Object{} - export class Animator { - /** - * Initializes a new instance of the {@link yfiles.view.Animator} class for the given {@link yfiles.view.CanvasComponent}. - *

    - * Using this constructor this instance will query an instance of {@link yfiles.input.WaitInputMode} from the {@link yfiles.view.CanvasComponent#lookup canvas's context} to - * automatically set the {@link yfiles.input.WaitInputMode#waiting} property during animations if {@link yfiles.view.Animator#allowUserInteraction} is set to false. The animation is not started until {@link yfiles.view.Animator#animate} - * or {@link yfiles.view.Animator#animate} is called. - *

    - * @param {yfiles.view.CanvasComponent} canvas The canvas control. - * @constructor - */ - constructor(canvas:yfiles.view.CanvasComponent); - /** - * Initializes a new instance of the {@link yfiles.view.Animator} class for the given {@link yfiles.view.CanvasComponent}. - *

    - * Using this constructor this instance will query an instance of {@link yfiles.input.WaitInputMode} from the {@link yfiles.view.CanvasComponent#lookup canvas's context} to - * automatically set the {@link yfiles.input.WaitInputMode#waiting} property during animations if {@link yfiles.view.Animator#allowUserInteraction} is set to false. The animation is not started until {@link yfiles.view.Animator#animate} - * or {@link yfiles.view.Animator#animate} is called. - *

    - * @param {Object} options The parameters to pass. - * @param {yfiles.view.CanvasComponent} options.canvas The canvas control. - * @param {boolean} options.allowUserInteraction Determines whether user interaction should be allowed during the animation. - *

    - * This option sets the {@link yfiles.view.Animator#allowUserInteraction} property on the created object. - *

    - * @param {boolean} options.autoInvalidation A value indicating whether to automatically {@link yfiles.view.Animator#invalidateComponent invalidate the control} this instance has been created for. - *

    - * This option sets the {@link yfiles.view.Animator#autoInvalidation} property on the created object. - *

    - * @constructor - */ - constructor(options:{canvas:yfiles.view.CanvasComponent,allowUserInteraction?:boolean,autoInvalidation?:boolean}); - /** - * Animates the given animation instance and triggers the callback upon completion. - * @param {yfiles.view.IAnimation} animation The animation to perform. - * @returns {Promise.} - */ - animate(animation:yfiles.view.IAnimation):Promise; - /** - * Starts animating the given animation for the specified duration. - * @param {function(number): void} callback The callback to use for the animation. - * @param {yfiles.lang.TimeSpan} duration The duration in milliseconds that the animation should last. - * @returns {Promise.} - */ - animate(callback:(time:number)=>void,duration:yfiles.lang.TimeSpan):Promise; - /** - * Stops all running animations. - */ - destroy():void; - /** - * Invalidates the control if {@link yfiles.view.Animator#autoInvalidation} is set to true. - *

    - * This implementation calls {@link yfiles.view.CanvasComponent#updateVisual }. - *

    - * @param {yfiles.view.CanvasComponent} canvas The control. - * @protected - */ - invalidateComponent(canvas:yfiles.view.CanvasComponent):void; - /** - * Determines whether user interaction should be allowed during the animation. - *

    - * If false, the {@link yfiles.input.WaitInputMode} is queried from the {@link yfiles.view.CanvasComponent} and {@link yfiles.input.WaitInputMode#waiting} is enabled during the - * animation. The default is false. - *

    - * @type {boolean} - */ - allowUserInteraction:boolean; - /** - * The control the animations are run on. - * @type {yfiles.view.CanvasComponent} - */ - canvasComponent:yfiles.view.CanvasComponent; - /** - * Gets or sets a value indicating whether to automatically {@link yfiles.view.Animator#invalidateComponent invalidate the control} this instance has been created for. - *

    - * The default is true. - *

    - * @type {boolean} - */ - autoInvalidation:boolean; - static $class:yfiles.lang.Class; - } - /** - * An interface for animations that can be run by {@link yfiles.view.Animator}. - *

    - * Instances of classes implementing this interface change their state according to a relative animation time. The - * animation time is a double between 0 for the start of the animation and 1 for the end of the animation. - *

    - *
      - *
    • An animated object is first created using the constructor of a subclass.
    • - *
    • Immediately before the animation a client calls {@link yfiles.view.IAnimation#initialize}.
    • - *
    • - * To change the state of the animated object a client does a series of calls to - * {@link yfiles.view.IAnimation#animate}, usually with an increasing relative time parameter. - *
    • - *
    • If the animation is done, the client calls {@link yfiles.view.IAnimation#cleanup} once.
    • - *
    • - * While {@link yfiles.view.IAnimation#animate} uses a relative time scheme, there might be an absolute time value for the - * preferred duration of the whole sequence of animation steps. Since an IAnimation instance has no control on the number - * of {@link yfiles.view.IAnimation#animate} calls or the intervals between them, the preferred duration is only a hint on how long - * the animation should take. Clients can ask for that hint using {@link yfiles.view.IAnimation#preferredDuration} and try to find a suitable sequence of {@link yfiles.view.IAnimation#animate} - * calls in order to fulfill the preference. - *
    • - *
    - * @interface - */ - export interface IAnimation extends Object{ - /** - * Does the animation according to the relative animation time. - *

    - * The animation starts with the time 0 and ends with time 1. - *

    - * @param {number} time the animation time [0,1] - * @abstract - */ - animate(time:number):void; - /** - * Cleans up after an animation has finished. - * @abstract - */ - cleanup():void; - /** - * Creates an eased animation for the given base animation. - *

    - * The animation speed linearly increases upto a easeIn and linearly decreases from - * easeOut. Between those two points, the animation speed is constant. - *

    - *

    - * The duration of the ease in and ease out is determined by a mapping [0,1] → [0,1]. The mapping has to be increasing to - * preserve the order of the frames in the decorated animation. In general, we consider continuously differentiable - * functions f where integral of f′ equals 1 a suitable choice for the mapping. - *

    - * @param {number} [easeIn=0.5] The ratio for the ease-in time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. - * @param {number} [easeOut=0.5] The ratio for the ease-out time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. - * @returns {yfiles.view.IAnimation} - */ - createEasedAnimation?(easeIn?:number,easeOut?:number):yfiles.view.IAnimation; - /** - * Creates an eased animation for the given base animation. - *

    - * The animation speed linearly increases upto a easeIn and linearly decreases from - * easeOut. Between those two points, the animation speed is constant. - *

    - *

    - * The duration of the ease in and ease out is determined by a mapping [0,1] → [0,1]. The mapping has to be increasing to - * preserve the order of the frames in the decorated animation. In general, we consider continuously differentiable - * functions f where integral of f′ equals 1 a suitable choice for the mapping. - *

    - * @param {Object} options The parameters to pass. - * @param {number} [options.easeIn=0.5] The ratio for the ease-in time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. - * @param {number} [options.easeOut=0.5] The ratio for the ease-out time [0,1] where 0 is the start of the animation and 1 the end. 0.5 is the default value. - * @returns {yfiles.view.IAnimation} - */ - createEasedAnimation?(options:{easeIn?:number,easeOut?:number}):yfiles.view.IAnimation; - /** - * Initializes the animation. - *

    - * Call this method once before subsequent calls to {@link yfiles.view.IAnimation#animate}. - *

    - * @abstract - */ - initialize():void; - /** - * Gets the preferred duration of the animation. - * @abstract - * @type {yfiles.lang.TimeSpan} - */ - preferredDuration:yfiles.lang.TimeSpan; - } - var IAnimation:{ - /** - * Creates a new {@link yfiles.view.IAnimation} that animates the given edge's bends from its current shape linearly to the shape - * given by the endBends and final port locations. - *

    - * The bends of the edge layout are animated from their current location to their target locations. It is assumed that the - * edge style is a polyline style and the control points are the bends accordingly. The animation works for other styles - * too, but the effect might not be as expected. The number of bends in endBends can be different to the current number of - * bends. This will result in the animation automatically removing bends at the end of the animation or inserting new bends - * accordingly at the beginning of the animation. - *

    - *

    - * The source and target points are also animated to new locations. However, the ports will not be moved by this animation. - * Instead a separate {@link yfiles.view.IAnimation#createPortAnimation animation for the ports} is needed to actually move - * {@link yfiles.graph.IPort}s at the ends of the edge if desired. - *

    - * @param {yfiles.graph.IGraph} graph The graph the animated edge belongs to. - * @param {yfiles.graph.IEdge} edge The edge layout to animate. - * @param {Array.} endBends The bend positions after the animation. - * @param {yfiles.geometry.Point} endSourceLocation The absolute position of the source port after the animation. - * @param {yfiles.geometry.Point} endTargetLocation The absolute position of the target port after the animation. - * @param {yfiles.lang.TimeSpan} preferredDuration The preferred duration of the animation in milliseconds. - * @returns {yfiles.view.IAnimation} - * @static - */ - createEdgeSegmentAnimation?(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,endBends:yfiles.geometry.IPoint[],endSourceLocation:yfiles.geometry.Point,endTargetLocation:yfiles.geometry.Point,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; - /** - * Creates a new {@link yfiles.view.IAnimation} that animates the given layout of all types of graph items. - * @param {yfiles.graph.IGraph} graph The graph for which the layout should be animated. - * @param {yfiles.collections.IMapper.} targetNodeLayouts The node layouts after the animation. - * @param {yfiles.collections.IMapper.>} targetBendLocations The bend locations after the animation, for each edge the points are interpreted as the position of the bends along the - * edge in the given order. - * @param {yfiles.collections.IMapper.} targetLayoutParameters The label model parameters for each label after the animation. - * @param {yfiles.collections.IMapper.} targetPortLocations The {@link yfiles.graph.IPortLocationModelParameter}s for each {@link yfiles.graph.IPort} in the graph that will be morphed. - * @param {yfiles.lang.TimeSpan} preferredDuration The preferred duration of the animation in milliseconds. - * @returns {yfiles.view.IAnimation} - * @static - */ - createGraphAnimation?(graph:yfiles.graph.IGraph,targetNodeLayouts:yfiles.collections.IMapper,targetBendLocations:yfiles.collections.IMapper,targetPortLocations:yfiles.collections.IMapper,targetLayoutParameters:yfiles.collections.IMapper,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; - /** - * Creates a new {@link yfiles.view.IAnimation} that animates the given label from its current layout linearly to the layout given - * by the targetLayoutParameter. - *

    - * This animation will as a side effect assign the targetLayoutParameter to the label at the {@link Root.UI#cleanup end of the animation}. - *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the labels. - * @param {yfiles.graph.ILabel} label The label to animate the parameter of. - * @param {yfiles.graph.ILabelModelParameter} targetLayoutParameter The target parameter of the label. - * @param {yfiles.lang.TimeSpan} preferredDuration The preferred duration of the animation. - * @returns {yfiles.view.IAnimation} A new instance of {@link yfiles.view.IAnimation}. - * @static - */ - createLabelAnimation?(graph:yfiles.graph.IGraph,label:yfiles.graph.ILabel,targetLayoutParameter:yfiles.graph.ILabelModelParameter,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; - /** - * Creates a new {@link yfiles.view.IAnimation} instance that animates the current graph to the layout given by a {@link yfiles.layout.CopiedLayoutGraph} - * instance. - *

    - * The returned instance is suitable for morphing an {@link yfiles.graph.IGraph} to a layout computed by one of the layout - * algorithms. - *

    - *

    - * While it is usually recommended to use {@link yfiles.layout.LayoutExecutor} to handle layout calculation and subsequent - * animation, the {@link yfiles.view.IAnimation} produced by this method can be used manually, as well: - *

    - * @param {yfiles.graph.IGraph} graph the graph for which the layout should be animated - * @param {yfiles.layout.CopiedLayoutGraph} layoutGraph the {@link yfiles.layout.CopiedLayoutGraph} that contains all target layout information - * @param {yfiles.lang.TimeSpan} preferredDuration the preferred duration of the animation - * @returns {yfiles.view.IAnimation} - * @static - */ - createLayoutAnimation?(graph:yfiles.graph.IGraph,layoutGraph:yfiles.layout.CopiedLayoutGraph,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; - /** - * Creates a new {@link yfiles.view.IAnimation} that animates the given node from its current layout to the new given - * targetLayout. - * @param {yfiles.graph.IGraph} graph The graph the animated node belongs to. - * @param {yfiles.graph.INode} node The node whose {@link yfiles.graph.INode#layout} to animate. - * @param {yfiles.geometry.IRectangle} targetLayout The expected node layout after the animation. - * @param {yfiles.lang.TimeSpan} preferredDuration The preferred duration of the animation. - * @returns {yfiles.view.IAnimation} A new instance of {@link yfiles.view.IAnimation}. - * @static - */ - createNodeAnimation?(graph:yfiles.graph.IGraph,node:yfiles.graph.INode,targetLayout:yfiles.geometry.IRectangle,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; - /** - * Creates an {@link yfiles.view.IAnimation} according to the composite design pattern that animates multiple animations in - * parallel. - *

    - * The animations can be synchronized to the longest running animation. - *

    - * @param {yfiles.collections.IEnumerable.} animations The animations to run in parallel. - * @param {boolean} [synchronized=true] Whether all child animations should be adjusted to have the same (maximum) {@link yfiles.view.IAnimation#preferredDuration}. By default this is enabled. - * @returns {yfiles.view.IAnimation} A new instance that is the composite of the given animations. - * @static - */ - createParallelAnimation?(animations:yfiles.collections.IEnumerable,synchronized?:boolean):yfiles.view.IAnimation; - /** - * Creates a new instance of an {@link yfiles.view.IAnimation} that animates the given {@link yfiles.geometry.IMutablePoint} along a path. - * @param {yfiles.geometry.GeneralPath} path The path to animate the point along. - * @param {yfiles.geometry.IMutablePoint} animationPoint The mutable point instance that will be manipulated by the animation. - * @param {yfiles.lang.TimeSpan} preferredDuration The preferred duration of the animation. - * @returns {yfiles.view.IAnimation} - * @static - */ - createPathAnimation?(path:yfiles.geometry.GeneralPath,animationPoint:yfiles.geometry.IMutablePoint,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; - /** - * Creates a new {@link yfiles.view.IAnimation} that animates the given port from its current location to the new location given by - * the targetLocationParameter. - *

    - * This animation will as a side effect assign the targetLocationParameter to the port at the {@link Root.UI#cleanup end of the animation}. - *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the port. - * @param {yfiles.graph.IPort} port The port to animate. - * @param {yfiles.graph.IPortLocationModelParameter} targetLocationParameter The parameter to linearly interpolate to. - * @param {yfiles.lang.TimeSpan} preferredDuration The {@link Root.UI#preferredDuration preferred duration} of this animation. - * @returns {yfiles.view.IAnimation} A new instance of {@link yfiles.view.IAnimation}. - * @static - */ - createPortAnimation?(graph:yfiles.graph.IGraph,port:yfiles.graph.IPort,targetLocationParameter:yfiles.graph.IPortLocationModelParameter,preferredDuration:yfiles.lang.TimeSpan):yfiles.view.IAnimation; - /** - * Creates a new {@link yfiles.view.IAnimation} for the given table that animates the table and its {@link yfiles.graph.IStripe stripes}. - *

    - * Note that only the sizes of - * leaf stripes, i.e. those without child stripes, are considered. The sizes of a stripe with children is implicitly determined by its - * contents. - *

    - *

    - * For more control of the animation, implement a custom {@link yfiles.view.TableAnimation} and override method - * {@link yfiles.view.TableAnimation#createStripeAnimation}. - *

    - * @param {yfiles.graph.ITable} table The table to animate. - * @param {Array.} columnLayout The sizes of the leaf columns, in natural order. - * @param {Array.} rowLayout The sizes of the leaf rows, in natural order. - * @returns {yfiles.view.IAnimation} - * @static - */ - createTableAnimation?(table:yfiles.graph.ITable,columnLayout:number[],rowLayout:number[]):yfiles.view.IAnimation; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Animates changing the viewport bounds and the zoom factor for a {@link yfiles.view.CanvasComponent}. - * @class yfiles.view.ViewportAnimation - * @implements {yfiles.view.IAnimation} - */ - export interface ViewportAnimation extends Object,yfiles.view.IAnimation{} - export class ViewportAnimation { - /** - * Creates a new instance of {@link yfiles.view.ViewportAnimation}. - * @param {yfiles.view.CanvasComponent} canvas The canvas control. - * @param {yfiles.geometry.Rect} targetBounds The target world bounds for the animation. - * @param {yfiles.lang.TimeSpan} [preferredDuration=null] The preferred duration. 1 second if omitted. - * @constructor - */ - constructor(canvas:yfiles.view.CanvasComponent,targetBounds:yfiles.geometry.Rect,preferredDuration?:yfiles.lang.TimeSpan); - /** - * Creates a new instance of {@link yfiles.view.ViewportAnimation}. - * @param {Object} options The parameters to pass. - * @param {yfiles.view.CanvasComponent} options.canvas The canvas control. - * @param {yfiles.geometry.Rect} options.targetBounds The target world bounds for the animation. - * @param {yfiles.lang.TimeSpan} [options.preferredDuration=null] The preferred duration. 1 second if omitted. - * @param {boolean} options.considerViewportLimiter Whether to respect the {@link yfiles.view.CanvasComponent#viewportLimiter} of the {@link yfiles.view.CanvasComponent} whose {@link yfiles.view.CanvasComponent#viewport} is animated. - *

    - * This option sets the {@link yfiles.view.ViewportAnimation#considerViewportLimiter} property on the created object. - *

    - * @param {number} options.maximumTargetZoom The maximum zoom level to use after the animation. - *

    - * This option sets the {@link yfiles.view.ViewportAnimation#maximumTargetZoom} property on the created object. - *

    - * @constructor - */ - constructor(options:{canvas:yfiles.view.CanvasComponent,targetBounds:yfiles.geometry.Rect,preferredDuration?:yfiles.lang.TimeSpan,considerViewportLimiter?:boolean,maximumTargetZoom?:number}); - /** - * - * @param {number} time - */ - animate(time:number):void; - /** - * Effectively applies the center point value. - * @param {yfiles.geometry.Point} focus - * @protected - */ - applyCenterPoint(focus:yfiles.geometry.Point):void; - /** - * Effectively applies the view point value. - * @param {yfiles.geometry.Point} focus - * @protected - */ - applyViewPoint(focus:yfiles.geometry.Point):void; - /** - * Effectively applies the zoom value. - * @param {number} value - * @protected - */ - applyZoom(value:number):void; - /** - * Cancels this viewport animation so that subsequent calls to {@link yfiles.view.ViewportAnimation#animate} or {@link yfiles.view.ViewportAnimation#cleanup} - * won't affect the viewport anymore. - */ - cancel():void; - /** - * Cleans up after the animation. - */ - cleanup():void; - /** - * Initializes this animation. - *

    - * This has to be called once before any calls to {@link yfiles.view.ViewportAnimation#animate}. An instance of {@link yfiles.view.ViewportAnimation} - * can be reused after an animation by setting new {@link yfiles.view.ViewportAnimation#targetBounds} or a new {@link yfiles.view.ViewportAnimation#preferredDuration} and calling Initialize() again. - *

    - */ - initialize():void; - /** - * Gets or sets the target world bounds. - * @type {yfiles.geometry.Rect} - */ - targetBounds:yfiles.geometry.Rect; - /** - * Whether to respect the {@link yfiles.view.CanvasComponent#viewportLimiter} of the {@link yfiles.view.CanvasComponent} whose {@link yfiles.view.CanvasComponent#viewport} is animated. - *

    - * Default is false. - *

    - * @type {boolean} - */ - considerViewportLimiter:boolean; - /** - * Gets or sets the preferred duration of the animation. - * @type {yfiles.lang.TimeSpan} - */ - preferredDuration:yfiles.lang.TimeSpan; - /** - * Gets or sets the maximum zoom level to use after the animation. - *

    - * The default is {@link number#POSITIVE_INFINITY}. - *

    - * @type {number} - */ - maximumTargetZoom:number; - /** - * Gets or sets the scroll bar visibility that will be used during the animation. - * @default 0 - * @type {yfiles.view.ScrollBarVisibility} - */ - scrollBarVisibility:yfiles.view.ScrollBarVisibility; - /** - * Gets or sets the margins in view coordinate dimensions to use at the target zoom level. - * @default '0' - * @type {yfiles.geometry.Insets} - */ - targetViewMargins:yfiles.geometry.Insets; - static $class:yfiles.lang.Class; - } /** * An interface for objects that can install a visual representation of a highlight decoration of an item in the model * displayed in a canvas. @@ -12153,7 +12507,7 @@ declare namespace system{ *
      *
    • Demo: Bridges, Demo.yFiles.Graph.Bridges
    • *
    - * @class yfiles.view.BridgeManager + * @class */ export interface BridgeManager extends Object{} export class BridgeManager { @@ -12163,7 +12517,6 @@ declare namespace system{ * Initially the {@link yfiles.view.BridgeManager#defaultBridgeCreator} will be set to an instance that will delegate to the set of Default properties in this class and the {@link yfiles.view.BridgeManager#insertDefaultCustomBridge} * method respectively. *

    - * @constructor */ constructor(); /** @@ -12173,10 +12526,10 @@ declare namespace system{ * This method may return path itself if no crossings have been determined. Otherwise it will return a new path instance * that has the bridges added at the corresponding places. *

    - * @param {yfiles.view.IRenderContext} context The context to use. - * @param {yfiles.geometry.GeneralPath} path The path to calculate the bridged variant for. - * @param {yfiles.view.IBridgeCreator} callback The callback or null that determines the appearance of the bridges. - * @returns {yfiles.geometry.GeneralPath} The path that might have been augmented by the bridges. + * @param context The context to use. + * @param path The path to calculate the bridged variant for. + * @param callback The callback or null that determines the appearance of the bridges. + * @returns The path that might have been augmented by the bridges. */ addBridges(context:yfiles.view.IRenderContext,path:yfiles.geometry.GeneralPath,callback:yfiles.view.IBridgeCreator):yfiles.geometry.GeneralPath; /** @@ -12184,7 +12537,7 @@ declare namespace system{ *

    * The {@link yfiles.view.IObstacleProvider#getObstacles} method will be invoked during construction of the obstacles. *

    - * @param {yfiles.view.IObstacleProvider} provider The provider instance to use for later queries. + * @param provider The provider instance to use for later queries. * @see yfiles.view.BridgeManager#registerObstacles * @see yfiles.view.BridgeManager#removeObstacleProvider */ @@ -12201,8 +12554,8 @@ declare namespace system{ * This is helpful, e.g. in implementations of {@link yfiles.styles.IEdgeStyle} that support bridges to not recreate the edge path * (including bridges) in {@link yfiles.view.IVisualCreator#updateVisual} if no obstacles changed. *

    - * @param {yfiles.view.IRenderContext} context The context to inspect. - * @returns {number} A hash of the state of the obstacles. + * @param context The context to inspect. + * @returns A hash of the state of the obstacles. */ getObstacleHash(context:yfiles.view.IRenderContext):number; /** @@ -12211,17 +12564,17 @@ declare namespace system{ *

    * This implementation will insert a gap style bridge by first creating a {@link yfiles.geometry.GeneralPath#lineTo line} to start and then {@link yfiles.geometry.GeneralPath#moveTo moving} to end. *

    - * @param {yfiles.view.IRenderContext} context The context for the call. - * @param {yfiles.geometry.GeneralPath} path The path to append the next segment to. - * @param {yfiles.geometry.Point} start The coordinates of the starting point of the bridge. - * @param {yfiles.geometry.Point} end The coordinates of the ending point of the bridge. - * @param {number} gapLength The distance between the starting point and the end point. + * @param context The context for the call. + * @param path The path to append the next segment to. + * @param start The coordinates of the starting point of the bridge. + * @param end The coordinates of the ending point of the bridge. + * @param gapLength The distance between the starting point and the end point. * @see yfiles.view.IBridgeCreator#createCustomBridge */ insertDefaultCustomBridge(context:yfiles.view.IRenderContext,path:yfiles.geometry.GeneralPath,start:yfiles.geometry.Point,end:yfiles.geometry.Point,gapLength:number):void; /** * Installs this manager for the specified {@link yfiles.view.BridgeManager#canvasComponent}. - * @param {yfiles.view.CanvasComponent} canvas The {@link yfiles.view.BridgeManager#canvasComponent}. + * @param canvas The {@link #canvasComponent}. * @protected */ install(canvas:yfiles.view.CanvasComponent):void; @@ -12232,8 +12585,8 @@ declare namespace system{ * {@link yfiles.view.BridgeManager#registerObstacles}. This method can be called during the rendering phase to register additional * obstacles at a later point in time. *

    - * @param {yfiles.view.IRenderContext} context The context to register the obstacles with. - * @param {yfiles.geometry.GeneralPath} path The path that describes the obstacles. + * @param context The context to register the obstacles with. + * @param path The path that describes the obstacles. * @see yfiles.view.BridgeManager#registerObstacleLine */ registerObstacle(context:yfiles.view.IRenderContext,path:yfiles.geometry.GeneralPath):void; @@ -12245,11 +12598,11 @@ declare namespace system{ * {@link yfiles.view.BridgeManager#registerObstacles}. This method can be called during the rendering phase to register additional * obstacles at a later point in time. *

    - * @param {yfiles.view.IRenderContext} context The context to register the obstacles with. - * @param {yfiles.geometry.Point} p1 The coordinates of the starting point of the line. - * @param {yfiles.geometry.Point} cp1 The coordinates of the first control point of the curve. - * @param {yfiles.geometry.Point} cp2 The coordinates of the second control point of the curve. - * @param {yfiles.geometry.Point} p2 The coordinates of the ending point of the line. + * @param context The context to register the obstacles with. + * @param p1 The coordinates of the starting point of the line. + * @param cp1 The coordinates of the first control point of the curve. + * @param cp2 The coordinates of the second control point of the curve. + * @param p2 The coordinates of the ending point of the line. * @see yfiles.view.BridgeManager#registerObstacleLine */ registerObstacleCubicCurve(context:yfiles.view.IRenderContext,p1:yfiles.geometry.Point,cp1:yfiles.geometry.Point,cp2:yfiles.geometry.Point,p2:yfiles.geometry.Point):void; @@ -12261,9 +12614,9 @@ declare namespace system{ * {@link yfiles.view.BridgeManager#registerObstacles}. This method can be called during the rendering phase to register additional * obstacles at a later point in time. *

    - * @param {yfiles.view.IRenderContext} context The context to register the obstacles with. - * @param {yfiles.geometry.Point} p1 The coordinates of the first point of the line. - * @param {yfiles.geometry.Point} p2 The coordinates of the second point of the line. + * @param context The context to register the obstacles with. + * @param p1 The coordinates of the first point of the line. + * @param p2 The coordinates of the second point of the line. * @see yfiles.view.BridgeManager#registerObstacleLine */ registerObstacleLine(context:yfiles.view.IRenderContext,p1:yfiles.geometry.Point,p2:yfiles.geometry.Point):void; @@ -12275,16 +12628,16 @@ declare namespace system{ * {@link yfiles.view.BridgeManager#registerObstacles}. This method can be called during the rendering phase to register additional * obstacles at a later point in time. *

    - * @param {yfiles.view.IRenderContext} context The context to register the obstacles with. - * @param {yfiles.geometry.Point} p1 The coordinates of the starting point of the line. - * @param {yfiles.geometry.Point} cp The coordinates of the control point of the curve. - * @param {yfiles.geometry.Point} p2 The coordinates of the ending point of the line. + * @param context The context to register the obstacles with. + * @param p1 The coordinates of the starting point of the line. + * @param cp The coordinates of the control point of the curve. + * @param p2 The coordinates of the ending point of the line. * @see yfiles.view.BridgeManager#registerObstacleLine */ registerObstacleQuadCurve(context:yfiles.view.IRenderContext,p1:yfiles.geometry.Point,cp:yfiles.geometry.Point,p2:yfiles.geometry.Point):void; /** * Called to initialize the context with the obstacles. - * @param {yfiles.view.IRenderContext} context The context that will be used to store the obstacles with. + * @param context The context that will be used to store the obstacles with. * @see yfiles.view.BridgeManager#registerObstacle * @see yfiles.view.BridgeManager#registerObstacleLine * @protected @@ -12292,13 +12645,13 @@ declare namespace system{ registerObstacles(context:yfiles.view.IRenderContext):void; /** * Removes a previously {@link yfiles.view.BridgeManager#addObstacleProvider added} {@link yfiles.view.IObstacleProvider} from the list of registered providers. - * @param {yfiles.view.IObstacleProvider} provider The provider instance to remove from this instance. + * @param provider The provider instance to remove from this instance. * @see yfiles.view.BridgeManager#addObstacleProvider */ removeObstacleProvider(provider:yfiles.view.IObstacleProvider):void; /** * Reverts the {@link yfiles.view.BridgeManager#install} method. - * @param {yfiles.view.CanvasComponent} canvas The {@link yfiles.view.BridgeManager#canvasComponent}. + * @param canvas The {@link #canvasComponent}. * @protected */ uninstall(canvas:yfiles.view.CanvasComponent):void; @@ -12425,11 +12778,11 @@ declare namespace system{ * implementation should make sure that the GeneralPath's end is at end. The gapLength is provided for convenience so that * the distance between startPoint and endPoint does not need to be calculated if it is needed for the drawing. *

    - * @param {yfiles.view.IRenderContext} context The context for the call. - * @param {yfiles.geometry.GeneralPath} path The path to append the bridge segment to. - * @param {yfiles.geometry.Point} start The coordinates of the starting point of the bridge. - * @param {yfiles.geometry.Point} end The coordinates of the ending point of the bridge. - * @param {number} gapLength The distance between the starting point and the end point. + * @param context The context for the call. + * @param path The path to append the bridge segment to. + * @param start The coordinates of the starting point of the bridge. + * @param end The coordinates of the ending point of the bridge. + * @param gapLength The distance between the starting point and the end point. * @abstract */ createCustomBridge(context:yfiles.view.IRenderContext,path:yfiles.geometry.GeneralPath,start:yfiles.geometry.Point,end:yfiles.geometry.Point,gapLength:number):void; @@ -12438,8 +12791,8 @@ declare namespace system{ *

    * The height is the default height that will be used for drawing the non-{@link yfiles.view.BridgeCrossingStyle#CUSTOM custom} {@link yfiles.view.BridgeCrossingStyle}s. *

    - * @param {yfiles.view.IRenderContext} context The context where the bridge will be created for. - * @returns {number} The non-negative preferred basic unscaled height of the bridge. + * @param context The context where the bridge will be created for. + * @returns The non-negative preferred basic unscaled height of the bridge. * @abstract */ getBridgeHeight(context:yfiles.view.IRenderContext):number; @@ -12451,24 +12804,24 @@ declare namespace system{ * automatically made smaller if it happens to be near the end of a segment and would otherwise extend beyond the end of * the segment. *

    - * @param {yfiles.view.IRenderContext} context The context where the bridge will be created for. - * @returns {number} The positive preferred width of the bridge. + * @param context The context where the bridge will be created for. + * @returns The positive preferred width of the bridge. * @abstract */ getBridgeWidth(context:yfiles.view.IRenderContext):number; /** * Gets the {@link yfiles.view.BridgeCrossingStyle} to use in the given {@link yfiles.view.IRenderContext}. - * @param {yfiles.view.IRenderContext} context The context in which the crossing will be used. - * @returns {yfiles.view.BridgeCrossingStyle} The style to use, or {@link yfiles.view.BridgeCrossingStyle#CUSTOM} in order to let {@link yfiles.view.BridgeManager} call - * {@link yfiles.view.IBridgeCreator#createCustomBridge}. + * @param context The context in which the crossing will be used. + * @returns The style to use, or {@link #CUSTOM} in order to let {@link } call + * {@link #createCustomBridge}. * @abstract */ getCrossingStyle(context:yfiles.view.IRenderContext):yfiles.view.BridgeCrossingStyle; /** * Gets the {@link yfiles.view.BridgeOrientationStyle} to use in the given {@link yfiles.view.IRenderContext}. - * @param {yfiles.view.IRenderContext} context The context in which the style will be used.. - * @returns {yfiles.view.BridgeOrientationStyle} The style to use. Any value can be returned and will be ignored if the {@link yfiles.view.IBridgeCreator#getCrossingStyle crossing style} is set to - * {@link yfiles.view.BridgeCrossingStyle#CUSTOM}. + * @param context The context in which the style will be used.. + * @returns The style to use. Any value can be returned and will be ignored if the {@link #getCrossingStyle crossing style} is set to + * {@link #CUSTOM}. * @abstract */ getOrientationStyle(context:yfiles.view.IRenderContext):yfiles.view.BridgeOrientationStyle; @@ -12491,8 +12844,8 @@ declare namespace system{ * For performance reasons the implementation should only return a non-null {@link yfiles.geometry.GeneralPath} if it might be {@link yfiles.view.IVisibilityTestable#isVisible visible} * in the provided {@link yfiles.view.IRenderContext#clip}. *

    - * @param {yfiles.view.IRenderContext} context The context for which the obstacles are queried. - * @returns {yfiles.geometry.GeneralPath} A path that describes the obstacles or null if there are no obstacles for the given context. + * @param context The context for which the obstacles are queried. + * @returns A path that describes the obstacles or null if there are no obstacles for the given context. * @abstract */ getObstacles(context:yfiles.view.IRenderContext):yfiles.geometry.GeneralPath; @@ -12504,7 +12857,7 @@ declare namespace system{ /** * An {@link yfiles.view.ItemModelManager.} that automatically installs and removes visual representations of items in a {@link yfiles.collections.IObservableCollection.} into or from the canvas. * Type parameter T: The type of items in the observable collection. - * @class yfiles.view.CollectionModelManager. + * @class * @extends {yfiles.view.ItemModelManager.} * @template T */ @@ -12512,16 +12865,14 @@ declare namespace system{ export class CollectionModelManager { /** * Creates a new instance using the given model. - * @param {yfiles.lang.Class} itemType The type of items in the observable collection. - * @param {yfiles.collections.IObservableCollection.} model The model to manage. - * @constructor + * @param itemType The type of items in the observable collection. + * @param model The model to manage. */ constructor(itemType:yfiles.lang.Class,model:yfiles.collections.IObservableCollection); /** * Creates a new instance. - * @param {yfiles.lang.Class} itemType The type of items in the observable collection. + * @param itemType The type of items in the observable collection. * @see yfiles.view.CollectionModelManager.#model - * @constructor */ constructor(itemType:yfiles.lang.Class); /** @@ -12557,19 +12908,19 @@ declare namespace system{ /** * Installs and removes visual representations of items into or from the canvas. * Type parameter T: The type of managed items. - * @class yfiles.view.ItemModelManager. + * @class * @template T */ export interface ItemModelManager extends Object{} export class ItemModelManager { /** * - * @param {yfiles.lang.Class} itemType1 The type of managed items. + * @param itemType The type of managed items. */ - constructor(itemType1:yfiles.lang.Class); + constructor(itemType:yfiles.lang.Class); /** * Registers and {@link yfiles.view.ItemModelManager.#install installs} the given item into the canvas. - * @param {T} item The item to install. + * @param item The item to install. */ addItem(item:T):void; /** @@ -12577,13 +12928,13 @@ declare namespace system{ *

    * This is useful to initialize this manager with an existing collection of items. *

    - * @param {yfiles.collections.IEnumerable.} items The items to add. + * @param items The items to add. */ addItems(items:yfiles.collections.IEnumerable):void; /** * Retrieves the canvas object that has been registered for the given item or null. - * @param {T} item The item to retrieve the canvas object for. - * @returns {yfiles.view.ICanvasObject} A canvas object instance or null. + * @param item The item to retrieve the canvas object for. + * @returns A canvas object instance or null. * @see yfiles.view.ItemModelManager.#install */ getCanvasObject(item:T):yfiles.view.ICanvasObject; @@ -12592,8 +12943,8 @@ declare namespace system{ *

    * The default implementation simply returns the value of {@link yfiles.view.ItemModelManager.#canvasObjectGroup}. *

    - * @param {T} item The item to get the group for. - * @returns {yfiles.view.ICanvasObjectGroup} The {@link yfiles.view.ICanvasObjectGroup} used to {@link yfiles.view.ItemModelManager.#install} an item in the canvas. + * @param item The item to get the group for. + * @returns The {@link } used to {@link #install} an item in the canvas. * @protected */ getCanvasObjectGroup(item:T):yfiles.view.ICanvasObjectGroup; @@ -12602,21 +12953,21 @@ declare namespace system{ *

    * The default implementation simply returns the value of {@link yfiles.view.ItemModelManager.#descriptor}. *

    - * @param {T} item The item to get the descriptor for. - * @returns {yfiles.view.ICanvasObjectDescriptor} The {@link yfiles.view.ICanvasObjectDescriptor} used to {@link yfiles.view.ItemModelManager.#install} an item in the canvas. + * @param item The item to get the descriptor for. + * @returns The {@link } used to {@link #install} an item in the canvas. * @protected */ getDescriptor(item:T):yfiles.view.ICanvasObjectDescriptor; /** * Tries to find the item managed by this instance that is associated with the given canvas object. - * @param {yfiles.view.ICanvasObject} canvasObject The canvas object to query the corresponding model item for. - * @returns {T} The item or null if no such item could be found. + * @param canvasObject The canvas object to query the corresponding model item for. + * @returns The item or null if no such item could be found. */ getItem(canvasObject:yfiles.view.ICanvasObject):T; /** * Installs a member of the collection into the canvas using the {@link yfiles.view.ItemModelManager.#descriptor}. - * @param {T} item The member to install. - * @returns {yfiles.view.ICanvasObject} The canvas object that has been returned by the installer. + * @param item The member to install. + * @returns The canvas object that has been returned by the installer. * @protected */ install(item:T):yfiles.view.ICanvasObject; @@ -12628,8 +12979,8 @@ declare namespace system{ *

    * This method calls {@link yfiles.view.ItemModelManager.#addItem} with {@link yfiles.collections.ItemEventArgs.#item}. *

    - * @param {Object} source The instance that raised the event. - * @param {yfiles.collections.ItemEventArgs.} evt The event arguments. + * @param source The instance that raised the event. + * @param evt The event arguments. */ itemAddedHandler(source:Object,evt:yfiles.collections.ItemEventArgs):void; /** @@ -12641,8 +12992,8 @@ declare namespace system{ * This is necessary if the group the canvas object should be added to might change after the item change. This might * happen, e.g. after changing an edge's port in a grouped graph. *

    - * @param {Object} source The event source. - * @param {yfiles.collections.ItemEventArgs.} evt The item event args which indicate the change. + * @param source The event source. + * @param evt The item event args which indicate the change. */ itemChangedHandler(source:Object,evt:yfiles.collections.ItemEventArgs):void; /** @@ -12653,13 +13004,13 @@ declare namespace system{ *

    * This method calls {@link yfiles.view.ItemModelManager.#removeItem} with {@link yfiles.collections.ItemEventArgs.#item}. *

    - * @param {Object} source The instance that raised the event. - * @param {yfiles.collections.ItemEventArgs.} evt The event arguments. + * @param source The instance that raised the event. + * @param evt The event arguments. */ itemRemovedHandler(source:Object,evt:yfiles.collections.ItemEventArgs):void; /** * Deregisters and uninstalls the given item from the canvas. - * @param {T} item The item to uninstall. + * @param item The item to uninstall. */ removeItem(item:T):void; /** @@ -12667,7 +13018,7 @@ declare namespace system{ *

    * This method can be used to clean up this manager before disposing it. *

    - * @param {yfiles.collections.IEnumerable.} items The items to remove. + * @param items The items to remove. */ removeItems(items:yfiles.collections.IEnumerable):void; /** @@ -12675,11 +13026,11 @@ declare namespace system{ *

    * If no visual representation is registered, yet, {@link yfiles.view.ItemModelManager.#install} will be called. *

    - * @param {T} item The item to update. + * @param item The item to update. */ update(item:T):void; /** - * Gets or sets a comparer that compares the items so that they are put into the correct order in the canvas tree. + * Gets or sets an {@link yfiles.collections.IComparer.} that compares the items so that they are put into the correct order in the canvas tree. *

    * If this instance is set to null this feature is effectively turned off. *

    @@ -12712,7 +13063,7 @@ declare namespace system{ * ensure that items that have been removed are deselected as well. A {@link yfiles.view.DefaultSelectionModel.#itemRemovedFromDomainHandler convenience event handler} exists for that purpose. *

    * Type parameter T: The type of the items to be selected. - * @class yfiles.view.DefaultSelectionModel. + * @class * @implements {yfiles.view.ISelectionModel.} * @template T */ @@ -12720,7 +13071,6 @@ declare namespace system{ export class DefaultSelectionModel { /** * Creates a default selection model implementation that uses a {@link yfiles.collections.ObservableCollection.} to hold the selection. - * @constructor */ constructor(); /** @@ -12729,13 +13079,13 @@ declare namespace system{ clear():void; /** * - * @returns {yfiles.collections.IEnumerator.} + * @returns */ getEnumerator():yfiles.collections.IEnumerator; /** * Determines whether an item is selected by checking for the containment in the {@link yfiles.view.DefaultSelectionModel.#selection}. - * @param {T} item The item to check - * @returns {boolean} Whether the item is selected. + * @param item The item to check + * @returns Whether the item is selected. */ isSelected(item:T):boolean; /** @@ -12746,8 +13096,8 @@ declare namespace system{ *

    * This method calls {@link yfiles.view.DefaultSelectionModel.#removeDomainItem} with {@link yfiles.collections.ItemEventArgs.#item}. *

    - * @param {Object} source The instance that raised the event. - * @param {yfiles.collections.ItemEventArgs.} evt The event arguments. + * @param source The instance that raised the event. + * @param evt The event arguments. */ itemRemovedFromDomainHandler(source:Object,evt:yfiles.collections.ItemEventArgs):void; /** @@ -12755,20 +13105,20 @@ declare namespace system{ *

    * Triggers the {@link yfiles.view.DefaultSelectionModel.#addItemSelectionChangedListener ItemSelectionChanged} event. *

    - * @param {T} o The item. - * @param {boolean} selected Whether or not the item is selected after the change. + * @param o The item. + * @param selected Whether or not the item is selected after the change. * @protected */ onItemSelectionChanged(o:T,selected:boolean):void; /** * Removes the given item from the selection in response to the item being removed from the domain. - * @param {T} item The item to remove from the considered items. + * @param item The item to remove from the considered items. */ removeDomainItem(item:T):void; /** * Sets the selection state of the item. - * @param {T} item - * @param {boolean} selected + * @param item + * @param selected */ setSelected(item:T,selected:boolean):void; /** @@ -12788,12 +13138,12 @@ declare namespace system{ size:number; /** * - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener + * @param listener */ addItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener + * @param listener */ removeItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; static $class:yfiles.lang.Class; @@ -12815,7 +13165,7 @@ declare namespace system{ * implementation which will do the actual installation of the decoration in the canvas. *

    * Type parameter T: The type of the items. - * @class yfiles.view.FocusIndicatorManager. + * @class * @extends {yfiles.view.ModelManager.} * @implements {yfiles.lang.IPropertyObservable} * @template T @@ -12824,8 +13174,7 @@ declare namespace system{ export class FocusIndicatorManager { /** * Creates an instance that for all focused items in the model dynamically installs a decoration. - * @param {yfiles.view.CanvasComponent} canvas The canvas to add the focus marks to. - * @constructor + * @param canvas The canvas to add the focus marks to. */ constructor(canvas:yfiles.view.CanvasComponent); /** @@ -12840,7 +13189,7 @@ declare namespace system{ * This method raises the {@link yfiles.view.FocusIndicatorManager.#addPropertyChangedListener PropertyChanged} event. Subclasses overriding this method should make sure to invoke * the super class implementation. *

    - * @param {yfiles.lang.PropertyChangedEventArgs} evt a description of the event + * @param evt a description of the event * @see yfiles.view.FocusIndicatorManager.#focusedItem * @see yfiles.view.FocusIndicatorManager.#addPropertyChangedListener * @protected @@ -12848,13 +13197,13 @@ declare namespace system{ onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; /** * Adds the given listener for the PropertyChanged event that occurs when the {@link yfiles.view.FocusIndicatorManager.#focusedItem} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.FocusIndicatorManager.#removePropertyChangedListener */ addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the PropertyChanged event that occurs when the {@link yfiles.view.FocusIndicatorManager.#focusedItem} property has been changed. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.FocusIndicatorManager.#addPropertyChangedListener */ removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -12868,7 +13217,7 @@ declare namespace system{ *

    * The default is {@link yfiles.view.ShowFocusPolicy#WHEN_FOCUSED}. *

    - * @default 1 + * @default yfiles.view.ShowFocusPolicy.WHEN_FOCUSED * @type {yfiles.view.ShowFocusPolicy} */ showFocusPolicy:yfiles.view.ShowFocusPolicy; @@ -12886,7 +13235,7 @@ declare namespace system{ * implementation which will do the actual installation of the decoration in the canvas. *

    * Type parameter T: The type of the items. - * @class yfiles.view.HighlightIndicatorManager. + * @class * @extends {yfiles.view.ModelManager.} * @template T */ @@ -12894,14 +13243,13 @@ declare namespace system{ export class HighlightIndicatorManager { /** * Creates an instance that for all selected items in the model dynamically installs a highlight decoration. - * @param {yfiles.view.CanvasComponent} canvas The canvas to add the selection marks to. - * @param {yfiles.view.ISelectionModel.} [selectionModel=null] The model that determines which items are highlighted. - * @constructor + * @param canvas The canvas to add the selection marks to. + * @param [selectionModel=null] The model that determines which items are highlighted. */ constructor(canvas:yfiles.view.CanvasComponent,selectionModel?:yfiles.view.ISelectionModel); /** * Adds another highlight. - * @param {T} item The item to highlight. + * @param item The item to highlight. */ addHighlight(item:T):void; /** @@ -12910,7 +13258,7 @@ declare namespace system{ clearHighlights():void; /** * Removes an item from the current highlight selection. - * @param {T} item The item whose highlight decorator will be removed. + * @param item The item whose highlight decorator will be removed. */ removeHighlight(item:T):void; /** @@ -12934,10 +13282,10 @@ declare namespace system{ /** * This the main method of the interface that performs the installation of an item's visual representation in the {@link yfiles.view.CanvasComponent canvas} by * adding {@link yfiles.view.ICanvasObject}s. - * @param {yfiles.view.ICanvasContext} context The context that contains the information required to install the visual representation. - * @param {yfiles.view.ICanvasObjectGroup} group The canvas object group to add the newly generated {@link yfiles.view.ICanvasObject} to. - * @param {Object} item The item to install. - * @returns {yfiles.view.ICanvasObject} The newly generated {@link yfiles.view.ICanvasObject} for the item's visual representation. null if nothing was installed. + * @param context The context that contains the information required to install the visual representation. + * @param group The canvas object group to add the newly generated {@link } to. + * @param item The item to install. + * @returns The newly generated {@link } for the item's visual representation. null if nothing was installed. * @abstract */ addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; @@ -12987,8 +13335,8 @@ declare namespace system{ clear():void; /** * Determines whether an item is currently selected. - * @param {T} item The item to check. - * @returns {boolean} Whether it is currently selected. + * @param item The item to check. + * @returns Whether it is currently selected. * @abstract */ isSelected(item:T):boolean; @@ -12997,8 +13345,8 @@ declare namespace system{ *

    * If the state changes, this will trigger the {@link yfiles.view.ISelectionModel.#addItemSelectionChangedListener ItemSelectionChanged} event. *

    - * @param {T} item The item to set the selection state for. - * @param {boolean} selected Whether to select the object. + * @param item The item to set the selection state for. + * @param selected Whether to select the object. * @abstract */ setSelected(item:T,selected:boolean):void; @@ -13011,7 +13359,7 @@ declare namespace system{ /** * Adds the given listener for the ItemSelectionChanged event that occurs when an item changed its selection state from * selected to unselected or vice versa. - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.view.ISelectionModel.#setSelected * @see yfiles.view.ISelectionModel.#removeItemSelectionChangedListener * @abstract @@ -13020,7 +13368,7 @@ declare namespace system{ /** * Removes the given listener for the ItemSelectionChanged event that occurs when an item changed its selection state from * selected to unselected or vice versa. - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.view.ISelectionModel.#setSelected * @see yfiles.view.ISelectionModel.#addItemSelectionChangedListener * @abstract @@ -13034,7 +13382,7 @@ declare namespace system{ /** * Provides data for the {@link yfiles.view.ISelectionModel.#addItemSelectionChangedListener ItemSelectionChanged} event. * Type parameter T. - * @class yfiles.view.ItemSelectionChangedEventArgs. + * @class * @extends {yfiles.collections.ItemEventArgs.} * @template T * @final @@ -13043,9 +13391,8 @@ declare namespace system{ export class ItemSelectionChangedEventArgs { /** * Initializes a new event argument instance for the given item and its selection state. - * @param {T} item The item whose {@link yfiles.view.ISelectionModel.#isSelected selection state} has changed. - * @param {boolean} selected The value indicating whether the item is selected after the change. - * @constructor + * @param item The item whose {@link #isSelected selection state} has changed. + * @param selected The value indicating whether the item is selected after the change. */ constructor(item:T,selected:boolean); /** @@ -13058,16 +13405,15 @@ declare namespace system{ /** * Manages the visual representations of items in a {@link yfiles.view.CanvasComponent}. * Type parameter T: The type of items this instance deals with. - * @class yfiles.view.ModelManager. + * @class * @template T */ export interface ModelManager extends Object{} export class ModelManager { /** * Creates a new instance that will manage the items for the given canvas. - * @param {yfiles.view.CanvasComponent} canvas The canvas to manage. + * @param canvas The canvas to manage. * @protected - * @constructor */ constructor(canvas:yfiles.view.CanvasComponent); /** @@ -13075,8 +13421,8 @@ declare namespace system{ *

    * If {@link yfiles.view.ModelManager.#enabled} is set to false the item will not be installed. *

    - * @param {T} item The item to add. - * @returns {yfiles.view.ICanvasObject} The newly created canvas object or null if nothing was installed. + * @param item The item to add. + * @returns The newly created canvas object or null if nothing was installed. * @protected */ add(item:T):yfiles.view.ICanvasObject; @@ -13085,8 +13431,8 @@ declare namespace system{ *

    * Returning null will cause {@link yfiles.view.ModelManager.#install} not to install anything. *

    - * @param {T} item The item to find a canvas object group for. - * @returns {yfiles.view.ICanvasObjectGroup} An {@link yfiles.view.ICanvasObjectGroup} or null + * @param item The item to find a canvas object group for. + * @returns An {@link } or null * @protected * @abstract */ @@ -13099,8 +13445,8 @@ declare namespace system{ *

    * Returning null will cause {@link yfiles.view.ModelManager.#install} not to install anything. *

    - * @param {T} item The item to find an installer for. - * @returns {yfiles.view.ICanvasObjectInstaller} An installer or null + * @param item The item to find an installer for. + * @returns An installer or null * @protected * @abstract */ @@ -13108,8 +13454,8 @@ declare namespace system{ /** * Installs a member of the collection into the canvas using the {@link yfiles.view.ICanvasObjectDescriptor} which is returned by * {@link yfiles.view.ModelManager.#getInstaller}. - * @param {T} item The member to install. - * @returns {yfiles.view.ICanvasObject} The canvas object that has been returned by the installer. + * @param item The member to install. + * @returns The canvas object that has been returned by the installer. * @protected */ install(item:T):yfiles.view.ICanvasObject; @@ -13127,13 +13473,13 @@ declare namespace system{ onEnabled():void; /** * Uninstalls the provided item and removes it from this managers set of managed items. - * @param {T} item The item to remove. + * @param item The item to remove. * @protected */ remove(item:T):void; /** * Simple implementation that removes the given {@link yfiles.view.ICanvasObject}. - * @param {yfiles.view.ICanvasObject} canvasObject The canvas objects that have been associated with the descriptor. + * @param canvasObject The canvas objects that have been associated with the descriptor. * @see yfiles.view.ICanvasObject#remove * @protected */ @@ -13165,7 +13511,7 @@ declare namespace system{ * decoration in the canvas. *

    * Type parameter T: The type of the items in the collection and selection model. - * @class yfiles.view.SelectionIndicatorManager. + * @class * @extends {yfiles.view.ModelManager.} * @template T */ @@ -13173,21 +13519,20 @@ declare namespace system{ export class SelectionIndicatorManager { /** * Creates an instance that for all selected items in the model dynamically installs a selection render decoration. - * @param {yfiles.view.CanvasComponent} canvas The canvas to add the selection marks to. - * @param {yfiles.collections.IObservableCollection.} model The model that holds the domain. - * @param {yfiles.view.ISelectionModel.} selectionModel The model that determines which items are selected. - * @constructor + * @param canvas The canvas to add the selection marks to. + * @param model The model that holds the domain. + * @param selectionModel The model that determines which items are selected. */ constructor(canvas:yfiles.view.CanvasComponent,model:yfiles.collections.IObservableCollection,selectionModel:yfiles.view.ISelectionModel); /** * Adds an item to the current selection. - * @param {T} item The item whose selection decorator will added. - * @returns {yfiles.view.ICanvasObject} + * @param item The item whose selection decorator will added. + * @returns */ addSelection(item:T):yfiles.view.ICanvasObject; /** * Removes an item from the current selection. - * @param {T} item The item whose selection decorator will be removed. + * @param item The item whose selection decorator will be removed. */ removeSelection(item:T):void; /** @@ -13208,19 +13553,57 @@ declare namespace system{ model:yfiles.collections.IObservableCollection; static $class:yfiles.lang.Class; } + /** + * A container that can hold a number of {@link yfiles.view.SvgVisual}s. + *

    + * Use this class in a {@link yfiles.view.IVisualCreator} implementation to group several {@link yfiles.view.SvgVisual}s. + *

    + *

    + * The class cannot be used to group {@link yfiles.view.HtmlCanvasVisual}s. + *

    + * @class + * @extends {yfiles.view.SvgVisual} + */ + export interface SvgVisualGroup extends yfiles.view.SvgVisual{} + export class SvgVisualGroup { + /** + * Initializes a new instance of the {@link yfiles.view.SvgVisualGroup} class. + */ + constructor(); + /** + * Adds another {@link yfiles.view.SvgVisual} to the children collection of this instance. + * @param child The child to add. + */ + add(child:yfiles.view.SvgVisual):void; + /** + * Removes a previously added {@link yfiles.view.SvgVisual} from the children collection of this instance. + * @param child The child to remove. + */ + remove(child:yfiles.view.SvgVisual):void; + /** + * Gets or sets a transform that is applied to the children of the container. + * @type {yfiles.geometry.Matrix} + */ + transform:yfiles.geometry.Matrix; + /** + * Provides read and write access to the list of children. + * @type {yfiles.collections.IList.} + */ + children:yfiles.collections.IList; + static $class:yfiles.lang.Class; + } /** * Renders a grid using various different {@link yfiles.view.GridVisualCreator#gridStyle styles}. * @see yfiles.view.GridInfo * @see yfiles.view.GridVisualCreator#gridStyle - * @class yfiles.view.GridVisualCreator + * @class * @implements {yfiles.view.IVisualCreator} */ export interface GridVisualCreator extends Object,yfiles.view.IVisualCreator{} export class GridVisualCreator { /** * Initializes a new instance of the {@link yfiles.view.GridVisualCreator} class. - * @param {yfiles.view.GridInfo} gridInfo The grid info. - * @constructor + * @param gridInfo The grid info. */ constructor(gridInfo:yfiles.view.GridInfo); /** @@ -13228,9 +13611,8 @@ declare namespace system{ *

    * This initializes the {@link yfiles.view.GridVisualCreator#gridInfo} field using the given values. *

    - * @param {number} horizontalSpacing The x spacing. - * @param {number} verticalSpacing The y spacing. - * @constructor + * @param horizontalSpacing The x spacing. + * @param verticalSpacing The y spacing. */ constructor(horizontalSpacing:number,verticalSpacing:number); /** @@ -13238,25 +13620,24 @@ declare namespace system{ *

    * The spacing is initialized to 25 units. *

    - * @constructor */ constructor(); /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** * Gets or sets the grid style that this implementation uses. - * @default 0 + * @default yfiles.view.GridStyle.DOTS * @type {yfiles.view.GridStyle} */ gridStyle:yfiles.view.GridStyle; @@ -13325,8 +13706,8 @@ declare namespace system{ * {@link yfiles.geometry.Rect#INFINITE}. If nothing is rendered, this method should return an empty rectangle, where either or * both the width and height is non-positive or {@link yfiles.geometry.Rect#EMPTY}. *

    - * @param {yfiles.view.ICanvasContext} context the context to calculate the bounds for - * @returns {yfiles.geometry.Rect} the bounds or {@link yfiles.geometry.Rect#EMPTY} to indicate an unbound area + * @param context the context to calculate the bounds for + * @returns the bounds or {@link #EMPTY} to indicate an unbound area * @abstract */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; @@ -13334,8 +13715,8 @@ declare namespace system{ var IBoundsProvider:{ /** * Creates an instance that returns the given model as the bounds. - * @param {yfiles.geometry.IRectangle} bounds the rectangle - * @returns {yfiles.view.IBoundsProvider} + * @param bounds the rectangle + * @returns * @static */ fromRectangle?(bounds:yfiles.geometry.IRectangle):yfiles.view.IBoundsProvider; @@ -13375,9 +13756,9 @@ declare namespace system{ *

    * Conservative implementations can always return true. *

    - * @param {yfiles.view.ICanvasContext} context The context to determine the visibility for. - * @param {yfiles.geometry.Rect} rectangle The visible region clip. - * @returns {boolean} false if and only if it is safe not to paint the element because it would not affect the given clipping region. + * @param context The context to determine the visibility for. + * @param rectangle The visible region clip. + * @returns false if and only if it is safe not to paint the element because it would not affect the given clipping region. * @abstract */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; @@ -13405,17 +13786,13 @@ declare namespace system{ * Disables caching of {@link yfiles.view.Visual}s completely. */ NEVER, - /** - * {@link yfiles.view.Visual}s will be cached using a weak reference, which means they might be removed by the Garbage Collection. - */ - WEAK, /** * {@link yfiles.view.Visual}s will always be cached. *

    * The cached reference will be kept until the corresponding {@link yfiles.view.ICanvasObject} is removed. *

    */ - STRONG + ALWAYS } /** * An interface that describes the current context for rendering routines. @@ -13435,7 +13812,7 @@ declare namespace system{ *

    * If the visual has not been registered previously this method will do nothing. *

    - * @param {yfiles.view.Visual} visual The visual which has been removed. + * @param visual The visual which has been removed. * @see yfiles.view.IRenderContext#setDisposeCallback * @see yfiles.view.IVisualCreator * @see yfiles.view.IVisualCreator#updateVisual @@ -13454,9 +13831,9 @@ declare namespace system{ *

    * The registered callback has to call {@link yfiles.view.IRenderContext#childVisualRemoved} on all child visuals of the visual. *

    - * @param {yfiles.view.Visual} visual The visual to be registered. This is the visual which is returned by the {@link yfiles.view.IVisualCreator#createVisual} or {@link yfiles.view.IVisualCreator#updateVisual} + * @param visual The visual to be registered. This is the visual which is returned by the {@link #createVisual} or {@link #updateVisual} * method which calls this method. - * @param {function(yfiles.view.IRenderContext, yfiles.view.Visual, boolean): yfiles.view.Visual} callback A dispose visual callback which calls {@link yfiles.view.IRenderContext#childVisualRemoved} on all child visuals of the + * @param callback A dispose visual callback which calls {@link #childVisualRemoved} on all child visuals of the * registered visual. */ registerForChildrenIfNecessary?(visual:yfiles.view.Visual,callback:(context:yfiles.view.IRenderContext,removedVisual:yfiles.view.Visual,dispose:boolean)=>yfiles.view.Visual):void; @@ -13471,16 +13848,16 @@ declare namespace system{ *

    * The callback can also be used to support caching for temporarily removed visuals. See dispose visual callback. *

    - * @param {yfiles.view.Visual} visual The visual which needs to be disposed after removal. - * @param {function(yfiles.view.IRenderContext, yfiles.view.Visual, boolean): yfiles.view.Visual} callback A callback which will dispose the visual. + * @param visual The visual which needs to be disposed after removal. + * @param callback A callback which will dispose the visual. * @see yfiles.view.IVisualCreator * @see yfiles.view.IVisualCreator#createVisual */ setDisposeCallback?(visual:yfiles.view.Visual,callback:(context:yfiles.view.IRenderContext,removedVisual:yfiles.view.Visual,dispose:boolean)=>yfiles.view.Visual):void; /** * Converts the given set of world coordinates to a coordinate pair that can be used to render within the {@link yfiles.view.IRenderContext#viewTransform}. - * @param {yfiles.geometry.Point} worldPoint The coordinates in the world coordinate system. - * @returns {yfiles.geometry.Point} The coordinates in the view coordinate system. + * @param worldPoint The coordinates in the world coordinate system. + * @returns The coordinates in the view coordinate system. * @see yfiles.view.IRenderContext#viewTransform * @abstract */ @@ -13540,8 +13917,8 @@ declare namespace system{ * {@link yfiles.view.CanvasComponent} uses this interface through the {@link yfiles.view.ICanvasObjectDescriptor} to populate the visual * canvas object tree. *

    - * @param {yfiles.view.IRenderContext} context The context that describes where the visual will be used. - * @returns {yfiles.view.Visual} The visual to include in the canvas object visual tree. This may be null. + * @param context The context that describes where the visual will be used. + * @returns The visual to include in the canvas object visual tree. This may be null. * @see yfiles.view.IVisualCreator#updateVisual * @abstract */ @@ -13554,10 +13931,10 @@ declare namespace system{ * previously been created by the same instance during a call to {@link yfiles.view.IVisualCreator#createVisual}. Implementation * may update the oldVisual and return that same reference, or create a new visual and return the new instance or null. *

    - * @param {yfiles.view.IRenderContext} context The context that describes where the visual will be used in. - * @param {yfiles.view.Visual} oldVisual The visual instance that had been returned the last time the {@link yfiles.view.IVisualCreator#createVisual} method was called + * @param context The context that describes where the visual will be used in. + * @param oldVisual The visual instance that had been returned the last time the {@link #createVisual} method was called * on this instance. - * @returns {yfiles.view.Visual} oldVisual, if this instance modified the visual, or a new visual that should replace the existing one in the canvas + * @returns oldVisual, if this instance modified the visual, or a new visual that should replace the existing one in the canvas * object visual tree. * @see yfiles.view.IVisualCreator#createVisual * @see yfiles.view.ICanvasObjectDescriptor @@ -13576,7 +13953,7 @@ declare namespace system{ * Use {@link yfiles.view.VoidVisualCreator#INSTANCE} for methods that require non-null {@link yfiles.view.IVisualCreator} implementations * if you want to have no visualization. *

    - * @class yfiles.view.VoidVisualCreator + * @class * @implements {yfiles.view.IVisualCreator} * @final */ @@ -13584,15 +13961,15 @@ declare namespace system{ export class VoidVisualCreator { /** * Returns null. - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * Returns null. - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -13612,7 +13989,7 @@ declare namespace system{ * instance that is passed in the constructor as a parameter or the return value of the method {@link yfiles.view.OrientedRectangleIndicatorInstaller#getRectangle} * if the former does not exist (i.e. the parameterless constructor was used to instantiate this class). *

    - * @class yfiles.view.OrientedRectangleIndicatorInstaller + * @class * @implements {yfiles.view.ISelectionIndicatorInstaller} * @implements {yfiles.view.IHighlightIndicatorInstaller} * @implements {yfiles.view.IFocusIndicatorInstaller} @@ -13629,9 +14006,8 @@ declare namespace system{ * If the {@link yfiles.view.OrientedRectangleIndicatorInstaller#template} property is not set, the templateKey is used to lookup a {@link yfiles.view.IVisualTemplate} in the resources of the * {@link yfiles.view.CanvasComponent}. If there is none, a default templated is used. *

    - * @param {yfiles.geometry.IOrientedRectangle} fixedBounds - * @param {string} [templateKey=null] - * @constructor + * @param fixedBounds + * @param [templateKey=null] */ constructor(fixedBounds:yfiles.geometry.IOrientedRectangle,templateKey?:string); /** @@ -13640,15 +14016,14 @@ declare namespace system{ * The object that is created through this constructor relies on the value returned by the {@link yfiles.view.OrientedRectangleIndicatorInstaller#getRectangle} * method to {@link yfiles.view.ICanvasObjectGroup#addChild add} to the {@link yfiles.view.ICanvasObjectGroup} in the {@link yfiles.view.ICanvasObjectInstaller#addCanvasObject} method. *

    - * @constructor */ constructor(); /** * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.view.ICanvasObjectGroup} group - * @param {Object} item - * @returns {yfiles.view.ICanvasObject} + * @param context + * @param group + * @param item + * @returns */ addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; /** @@ -13661,8 +14036,8 @@ declare namespace system{ *

    * This implementation returns null for every given object. *

    - * @param {Object} item - * @returns {yfiles.geometry.IOrientedRectangle} An {@link yfiles.geometry.IOrientedRectangle} for the given item that is {@link yfiles.view.ICanvasObjectGroup#addChild added} to the {@link yfiles.view.ICanvasObjectGroup}. + * @param item + * @returns An {@link } for the given item that is {@link #addChild added} to the {@link }. * @protected */ getRectangle(item:Object):yfiles.geometry.IOrientedRectangle; @@ -13701,23 +14076,22 @@ declare namespace system{ /** * A simple {@link yfiles.view.ISelectionIndicatorInstaller} implementation that draws an ellipse centered at a given point in * world coordinate space. - * @class yfiles.view.PointSelectionIndicatorInstaller + * @class * @implements {yfiles.view.ISelectionIndicatorInstaller} */ export interface PointSelectionIndicatorInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller{} export class PointSelectionIndicatorInstaller { /** * Creates a new instance that indicates a point. - * @param {yfiles.geometry.IPoint} point The point to use for the center of the painting. - * @constructor + * @param point The point to use for the center of the painting. */ constructor(point:yfiles.geometry.IPoint); /** * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.view.ICanvasObjectGroup} group - * @param {Object} item - * @returns {yfiles.view.ICanvasObject} + * @param context + * @param group + * @param item + * @returns */ addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; /** @@ -13725,18 +14099,18 @@ declare namespace system{ *

    * This implementation simply returns the value provided to the constructor. *

    - * @param {Object} userObject - * @returns {yfiles.geometry.IPoint} + * @param userObject + * @returns * @protected */ getCenterPoint(userObject:Object):yfiles.geometry.IPoint; /** - * Gets or sets the {@link yfiles.view.PointSelectionIndicatorInstaller#stroke} to use for drawing the point in the view coordinate system. + * Gets or sets the {@link yfiles.view.Stroke} to use for drawing the point in the view coordinate system. * @type {yfiles.view.Stroke} */ stroke:yfiles.view.Stroke; /** - * Gets or sets the brush to use for filling the point's ellipse in the view coordinate system. + * Gets or sets the {@link yfiles.view.Fill} to use for filling the point's ellipse in the view coordinate system. * @type {yfiles.view.Fill} */ fill:yfiles.view.Fill; @@ -13750,7 +14124,7 @@ declare namespace system{ * instance that is passed in the constructor as a parameter or the return value of the method {@link yfiles.view.RectangleIndicatorInstaller#getRectangle} * if the former does not exist (i.e. the parameterless constructor was used to instantiate this class). *

    - * @class yfiles.view.RectangleIndicatorInstaller + * @class * @implements {yfiles.view.ISelectionIndicatorInstaller} * @implements {yfiles.view.IHighlightIndicatorInstaller} * @implements {yfiles.view.IFocusIndicatorInstaller} @@ -13767,9 +14141,8 @@ declare namespace system{ * If the {@link yfiles.view.RectangleIndicatorInstaller#template} property is not set, the resourceKey is used to lookup a {@link yfiles.view.IVisualTemplate} in the resources of the * {@link yfiles.view.CanvasComponent}. If there is none, a default templated is used. *

    - * @param {yfiles.geometry.IRectangle} fixedBounds - * @param {string} [resourceKey=null] - * @constructor + * @param fixedBounds + * @param [resourceKey=null] */ constructor(fixedBounds:yfiles.geometry.IRectangle,resourceKey?:string); /** @@ -13778,15 +14151,14 @@ declare namespace system{ * The object that is created through this constructor relies on the value returned by the {@link yfiles.view.RectangleIndicatorInstaller#getRectangle} * method to {@link yfiles.view.ICanvasObjectGroup#addChild add} to the {@link yfiles.view.ICanvasObjectGroup} in the {@link yfiles.view.ICanvasObjectInstaller#addCanvasObject} method. *

    - * @constructor */ constructor(); /** * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.view.ICanvasObjectGroup} group - * @param {Object} item - * @returns {yfiles.view.ICanvasObject} + * @param context + * @param group + * @param item + * @returns */ addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; /** @@ -13799,8 +14171,8 @@ declare namespace system{ *

    * This implementation returns null for every given object. *

    - * @param {Object} userObject - * @returns {yfiles.geometry.IRectangle} An {@link yfiles.geometry.IRectangle} for the given item that is {@link yfiles.view.ICanvasObjectGroup#addChild added} to the {@link yfiles.view.ICanvasObjectGroup}. + * @param userObject + * @returns An {@link } for the given item that is {@link #addChild added} to the {@link }. * @protected */ getRectangle(userObject:Object):yfiles.geometry.IRectangle; @@ -13836,1573 +14208,1231 @@ declare namespace system{ template:yfiles.view.IVisualTemplate; static $class:yfiles.lang.Class; } - export enum MouseEventTypes{ - /** - * Not a mouse event. - */ - NONE, - /** - * The mouse has been moved. - */ - MOVE, - /** - * The mouse has been dragged, which means that it has been moved while at least one button has been pressed. - */ - DRAG, - /** - * A button has been pressed. - */ - DOWN, - /** - * A button has been released. - *

    - * If there was no drag event since the last press event, this will result in a click. - *

    - */ - UP, - /** - * The mouse has entered the control's bounds. - */ - ENTER, - /** - * The mouse has exited the control's bounds. - */ - LEAVE, - /** - * The mouse wheel has been turned. - */ - WHEEL, - /** - * A mouse click has been recognized. - *

    - * This is the case if a press has directly been followed by a release. - *

    - */ - CLICK, - /** - * Mouse input capture has been lost. - *

    - * This can happen during mouse drags, if any button is pressed and the focus is taken from the application or transferred - * to another component by other means then moving the mouse. - *

    - */ - LOST_CAPTURE - } /** - * Complex event arguments that is used by the {@link yfiles.view.CanvasComponent} to indicate mouse events in world coordinates. - * @class yfiles.view.MouseEventArgs - * @extends {yfiles.lang.EventArgs} - */ - export interface MouseEventArgs extends yfiles.lang.EventArgs{} - export class MouseEventArgs { - /** - * Constructs a new mouse event argument. - * @param {yfiles.view.MouseEventTypes} eventType The type of the event - * @param {yfiles.geometry.Point} location the position of the mouse in world coordinates at the time of the event - * @param {yfiles.view.MouseButtons} [changedButtons=yfiles.view.MouseButtons.NONE] the mouse buttons that have changed state if the type of event is {@link yfiles.view.MouseEventTypes#DOWN} or - * {@link yfiles.view.MouseEventTypes#UP} - * @param {yfiles.view.ModifierKeys} [changedModifiers=yfiles.view.ModifierKeys.NONE] the modifier Keys that have been changed - * @param {yfiles.view.MouseButtons} [buttons=yfiles.view.MouseButtons.NONE] the current state of the MouseButtons - * @param {yfiles.view.ModifierKeys} [modifiers=yfiles.view.ModifierKeys.NONE] the current state of the modifier Keys - * @param {number} [clickCount=0] the number of clicks this event represents, 2 for a double click - * @param {number} [mouseWheelDelta=0] the signed number of mouse wheel turn units - * @param {number} [scrollAmount=0] The number of lines to scroll, if scrollType is {@link yfiles.view.MouseWheelDeltaMode#LINES}. - * @param {yfiles.view.MouseWheelDeltaMode} [scrollType=yfiles.view.MouseWheelDeltaMode.LINES] The type of scrolling performed. - * @param {Event} originalEvent - * @constructor - */ - constructor(originalEvent:Event,eventType:yfiles.view.MouseEventTypes,location:yfiles.geometry.Point,changedButtons?:yfiles.view.MouseButtons,changedModifiers?:yfiles.view.ModifierKeys,buttons?:yfiles.view.MouseButtons,modifiers?:yfiles.view.ModifierKeys,clickCount?:number,mouseWheelDelta?:number,scrollAmount?:number,scrollType?:yfiles.view.MouseWheelDeltaMode); - /** - * Constructs a new mouse event argument. - * @param {Object} options The parameters to pass. - * @param {yfiles.view.MouseEventTypes} options.eventType The type of the event - * @param {yfiles.geometry.Point} options.location the position of the mouse in world coordinates at the time of the event - * @param {yfiles.view.MouseButtons} [options.changedButtons=yfiles.view.MouseButtons.NONE] the mouse buttons that have changed state if the type of event is {@link yfiles.view.MouseEventTypes#DOWN} or - * {@link yfiles.view.MouseEventTypes#UP} - * @param {yfiles.view.ModifierKeys} [options.changedModifiers=yfiles.view.ModifierKeys.NONE] the modifier Keys that have been changed - * @param {yfiles.view.MouseButtons} [options.buttons=yfiles.view.MouseButtons.NONE] the current state of the MouseButtons - * @param {yfiles.view.ModifierKeys} [options.modifiers=yfiles.view.ModifierKeys.NONE] the current state of the modifier Keys - * @param {number} [options.clickCount=0] the number of clicks this event represents, 2 for a double click - * @param {number} [options.mouseWheelDelta=0] the signed number of mouse wheel turn units - * @param {number} [options.scrollAmount=0] The number of lines to scroll, if scrollType is {@link yfiles.view.MouseWheelDeltaMode#LINES}. - * @param {yfiles.view.MouseWheelDeltaMode} [options.scrollType=yfiles.view.MouseWheelDeltaMode.LINES] The type of scrolling performed. - * @param {Event} options.originalEvent - * @constructor - */ - constructor(options:{originalEvent:Event,eventType:yfiles.view.MouseEventTypes,location:yfiles.geometry.Point,changedButtons?:yfiles.view.MouseButtons,changedModifiers?:yfiles.view.ModifierKeys,buttons?:yfiles.view.MouseButtons,modifiers?:yfiles.view.ModifierKeys,clickCount?:number,mouseWheelDelta?:number,scrollAmount?:number,scrollType?:yfiles.view.MouseWheelDeltaMode}); - /** - * Sets this event's {@link yfiles.view.MouseEventArgs#defaultPrevented} property to true signalling that the event has been properly handled and any default behaviors should - * be prevented. - *

    - * This will call the corresponding method on the {@link yfiles.view.MouseEventArgs#originalEvent original native event}. - *

    - * @see yfiles.view.MouseEventArgs#defaultPrevented - */ - preventDefault():void; - /** - * Gets the type of this event. - * @type {yfiles.view.MouseEventTypes} - */ - eventType:yfiles.view.MouseEventTypes; - /** - * Returns the coordinates in the world coordinate space associated with this event. - * @type {yfiles.geometry.Point} - */ - location:yfiles.geometry.Point; - /** - * Returns the number of clicks the current event represents if it is of type {@link yfiles.view.MouseEventTypes#CLICK}. - * @type {number} - */ - clickCount:number; - /** - * Gets the signed number of mouse wheel turn units. - *

    - * Note that this can, for high-precision mouse wheels, include fractional turns. - *

    - * @type {number} - */ - wheelDelta:number; - /** - * Gets the distance to scroll at once when {@link yfiles.view.MouseEventArgs#deltaMode} is {@link yfiles.view.MouseWheelDeltaMode#LINES}. - *

    - * This is a system setting that only applies to scrolling (not zooming) and usually translates to the number of small - * scroll increments per scroll wheel notch. - *

    - *

    - * This property has a value of 1 if {@link yfiles.view.MouseEventArgs#deltaMode} is {@link yfiles.view.MouseWheelDeltaMode#PAGE}, as it is not applicable in that case. - *

    - * @type {number} - */ - scrollAmount:number; - /** - * Gets the scrolling behavior. - *

    - * This is a system setting that only applies to scrolling (not zooming) and can be either - * {@link yfiles.view.MouseWheelDeltaMode#LINES}, in which case {@link yfiles.view.MouseEventArgs#scrollAmount} will contain the number of "lines" to scroll with each scroll - * wheel notch, or {@link yfiles.view.MouseWheelDeltaMode#PAGE} in which case a single scroll wheel notch should scroll a "page" at - * a time. - *

    - * @type {yfiles.view.MouseWheelDeltaMode} - */ - deltaMode:yfiles.view.MouseWheelDeltaMode; - /** - * Returns the modifier keys that have changed for this event. - * @see yfiles.view.MouseEventArgs#modifiers - * @type {yfiles.view.ModifierKeys} - */ - changedModifiers:yfiles.view.ModifierKeys; - /** - * Returns the mouse buttons that have changed for this event. - * @see yfiles.view.MouseEventArgs#buttons - * @type {yfiles.view.MouseButtons} - */ - changedButtons:yfiles.view.MouseButtons; - /** - * The state of the modifier keys at the time of the event creation. - * @type {yfiles.view.ModifierKeys} - */ - modifiers:yfiles.view.ModifierKeys; - /** - * The state of the mouse buttons at the time of the event creation. - * @type {yfiles.view.MouseButtons} - */ - buttons:yfiles.view.MouseButtons; - /** - * Gets the original DOM event associated with this event. - * @type {Event} - */ - originalEvent:Event; - /** - * Gets a value indicating whether the default behaviors for this event have been prevented by a previous call to - * {@link yfiles.view.MouseEventArgs#preventDefault}. - * @type {boolean} - */ - defaultPrevented:boolean; - static $class:yfiles.lang.Class; - } - export enum MouseWheelDeltaMode{ - /** - * Scrolling should scroll a set number of lines per mouse wheel notch. - * @see yfiles.view.MouseEventArgs#scrollAmount - */ - LINES, - /** - * Scrolling should scroll a single "page" per mouse wheel notch. - */ - PAGE - } - export enum TouchEventTypes{ - /** - * Not a touch event. - */ - NONE, - /** - * A pointer has been moved. - */ - MOVE, - /** - * A touch device went down. - */ - DOWN, - /** - * A touch device went up. - */ - UP, - /** - * A touch device has entered the control's bounds. - */ - ENTER, - /** - * A touch device has exited the control's bounds. - */ - LEAVE, - /** - * A touch tap has been recognized. - *

    - * This is the case if a down has directly been followed by an up. - *

    - */ - TAP, - /** - * A long press has been recognized. - *

    - * This is the case if a down has been held a certain amount of time without a move. - *

    - */ - LONG_PRESS, - /** - * Touch capture has been lost while the device was down. or sent to the background or similar actions. - *

    - * This can be the case if the application or control is minimized - *

    - */ - LOST_CAPTURE - } - /** - * Complex event arguments that is used by the {@link yfiles.view.CanvasComponent} to indicate touch events in world coordinates. - * @class yfiles.view.TouchEventArgs - * @extends {yfiles.lang.EventArgs} - */ - export interface TouchEventArgs extends yfiles.lang.EventArgs{} - export class TouchEventArgs { - /** - * Constructs a new touch event argument. - * @param {yfiles.view.TouchEventTypes} eventType The type of the event - * @param {yfiles.geometry.Point} location The position of the touch device in world coordinates at the time of the event - * @param {yfiles.view.TouchDevice} device The device the event was triggered by - * @param {Event} originalEvent - * @constructor - */ - constructor(originalEvent:Event,eventType:yfiles.view.TouchEventTypes,location:yfiles.geometry.Point,device:yfiles.view.TouchDevice); - /** - * Constructs a new touch event argument. - * @param {yfiles.view.TouchEventTypes} eventType The type of the event - * @param {yfiles.geometry.Point} location The position of the touch device in world coordinates at the time of the event - * @param {yfiles.view.TouchDevice} device The device the event was triggered by - * @param {number} tapCount the number of taps this event represents, 2 for a double tap - * @param {Event} originalEvent - * @constructor - */ - constructor(originalEvent:Event,eventType:yfiles.view.TouchEventTypes,location:yfiles.geometry.Point,device:yfiles.view.TouchDevice,tapCount:number); - /** - * Sets this event's {@link yfiles.view.TouchEventArgs#defaultPrevented} property to true signalling that the event has been properly handled and any default behaviors should - * be prevented. - *

    - * This will call the corresponding method on the {@link yfiles.view.TouchEventArgs#originalEvent original native event}. - *

    - * @see yfiles.view.TouchEventArgs#defaultPrevented - */ - preventDefault():void; - /** - * Gets the type of this event. - * @type {yfiles.view.TouchEventTypes} - */ - eventType:yfiles.view.TouchEventTypes; - /** - * Returns the location represented by this event in world coordinates. - * @type {yfiles.geometry.Point} - */ - location:yfiles.geometry.Point; - /** - * Returns the touch device associated with this event. - * @type {yfiles.view.TouchDevice} - */ - device:yfiles.view.TouchDevice; - /** - * Returns the number of taps the current event represents if it is of type {@link yfiles.view.TouchEventTypes#TAP}. - * @type {number} - */ - tapCount:number; - /** - * Gets the original DOM event associated with this event. - * @type {Event} - */ - originalEvent:Event; - /** - * Gets a value indicating whether the default behaviors for this event have been prevented by a previous call to - * {@link yfiles.view.TouchEventArgs#preventDefault}. - * @type {boolean} - */ - defaultPrevented:boolean; - static $class:yfiles.lang.Class; - } - /** - * The representation of a touch point on the screen. - * @class yfiles.view.TouchDevice - */ - export interface TouchDevice extends Object{} - export class TouchDevice { - /** - * Gets the device's index - * @type {number} - */ - deviceIndex:number; - /** - * Gets a value indicating whether this device is the primary one. - *

    - * If {@link yfiles.view.TouchDevice#deviceIndex} is 0 this property has the value true, otherwise false. - *

    - * @type {boolean} - */ - isPrimaryDevice:boolean; - /** - * Gets the last device coordinate in the view coordinate system. - * @type {yfiles.geometry.Point} - */ - lastViewCoordinate:yfiles.geometry.Point; - /** - * Gets the time of the last {@link yfiles.view.TouchEventArgs event} that was raised by this device. - * @type {Date} - */ - lastEventTimeJS:Date; - /** - * Indicates if this device is currently down or not. - *

    - * Default is true. - *

    - * @type {boolean} - */ - isDown:boolean; - static $class:yfiles.lang.Class; - } - /** - * The event argument class that is used by {@link yfiles.view.DragSource#addQueryContinueDragListener QueryContinueDrag} - * during drags to query the drag source whether the drag should be continued. - * @class yfiles.view.QueryContinueDragEventArgs - * @extends {yfiles.lang.EventArgs} - * @final - */ - export interface QueryContinueDragEventArgs extends yfiles.lang.EventArgs{} - export class QueryContinueDragEventArgs { - /** - * Gets or sets the action. - * @type {yfiles.view.DragAction} - */ - action:yfiles.view.DragAction; - /** - * Gets a value indicating whether the escape key had been pressed. - * @type {boolean} - */ - escapePressed:boolean; - /** - * Gets the current state of the keys. - * @type {yfiles.view.DragDropKeyStates} - */ - keyStates:yfiles.view.DragDropKeyStates; - /** - * Gets or sets a value indicating whether this {@link yfiles.view.QueryContinueDragEventArgs} is handled. - * @type {boolean} - */ - handled:boolean; - static $class:yfiles.lang.Class; - } - export enum DragAction{ - /** - * Whether the drag should be continued. - */ - CONTINUE, - /** - * Whether the drag should be finalized by an immediate drop. - */ - DROP, - /** - * Whether the drag operation should be canceled. - */ - CANCEL - } - /** - * Helper class for drag and drop support that is used for the source of drag and drop operations. - * @class yfiles.view.DragSource - */ - export interface DragSource extends Object{} - export class DragSource { - /** - * Initializes a new instance of the {@link yfiles.view.DragSource} class setting the {@link yfiles.view.DragSource#source} property to the given element. - * @param {HTMLElement} source The source. - * @constructor - */ - constructor(source:HTMLElement); - /** - * Cleans up by removing the association with the {@link yfiles.view.DragSource#source} element. - */ - cleanUp():void; - /** - * Raises the {@link yfiles.view.DragSource#addQueryContinueDragListener QueryContinueDrag} event. - *

    - * If the event is not {@link yfiles.view.QueryContinueDragEventArgs#handled handled}, a default logic will be applied: the drag operation is canceled if the left mouse button is - * released or escape has been pressed, otherwise the drag will be {@link yfiles.view.DragAction#CONTINUE continued}. - *

    - * @param {yfiles.view.QueryContinueDragEventArgs} evt The {@link yfiles.view.QueryContinueDragEventArgs} instance containing the event data. - */ - onQueryContinueDrag(evt:yfiles.view.QueryContinueDragEventArgs):void; - /** - * Initiates a new drag operation using the provided drag data and effects. - *

    - * If useCssCursors is enabled, the following CSS classes are assigned to elements hovered during a drag operation, - * depending on the allowed drag-drop operations for these elements: - *

    - *
      - *
    • yfiles-cursor-dragdrop-move
    • - *
    • yfiles-cursor-dragdrop-link
    • - *
    • yfiles-cursor-dragdrop-all
    • - *
    • yfiles-cursor-dragdrop-no-drop
    • - *
    - * @param {yfiles.view.DragDropItem} dragData The data to use for the drag. - * @param {yfiles.view.DragDropEffects} [dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed effects. - * @param {boolean} [useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. - */ - startDrag(dragData:yfiles.view.DragDropItem,dragDropEffects?:yfiles.view.DragDropEffects,useCssCursors?:boolean):void; - /** - * Initiates a new drag operation using the provided drag data and effects. - *

    - * If useCssCursors is enabled, the following CSS classes are assigned to elements hovered during a drag operation, - * depending on the allowed drag-drop operations for these elements: - *

    - *
      - *
    • yfiles-cursor-dragdrop-move
    • - *
    • yfiles-cursor-dragdrop-link
    • - *
    • yfiles-cursor-dragdrop-all
    • - *
    • yfiles-cursor-dragdrop-no-drop
    • - *
    - * @param {Object} options The parameters to pass. - * @param {yfiles.view.DragDropItem} options.dragData The data to use for the drag. - * @param {yfiles.view.DragDropEffects} [options.dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed effects. - * @param {boolean} [options.useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. - */ - startDrag(options:{dragData:yfiles.view.DragDropItem,dragDropEffects?:yfiles.view.DragDropEffects,useCssCursors?:boolean}):void; - /** - * Adds the given listener for the QueryContinueDrag event that occurs when the state of the {@link yfiles.view.DragDropKeyStates} - * has changed to query the source whether the drag operation should be continued. - *

    - * Handlers should adjust the {@link yfiles.view.QueryContinueDragEventArgs#handled} and {@link yfiles.view.QueryContinueDragEventArgs#action} properties accordingly. - *

    - * @param {function(Object, yfiles.view.QueryContinueDragEventArgs): void} listener The listener to add. - * @see yfiles.view.DragSource#removeQueryContinueDragListener - */ - addQueryContinueDragListener(listener:(sender:Object,evt:yfiles.view.QueryContinueDragEventArgs)=>void):void; - /** - * Removes the given listener for the QueryContinueDrag event that occurs when the state of the {@link yfiles.view.DragDropKeyStates} - * has changed to query the source whether the drag operation should be continued. - *

    - * Handlers should adjust the {@link yfiles.view.QueryContinueDragEventArgs#handled} and {@link yfiles.view.QueryContinueDragEventArgs#action} properties accordingly. - *

    - * @param {function(Object, yfiles.view.QueryContinueDragEventArgs): void} listener The listener to remove. - * @see yfiles.view.DragSource#addQueryContinueDragListener - */ - removeQueryContinueDragListener(listener:(sender:Object,evt:yfiles.view.QueryContinueDragEventArgs)=>void):void; - /** - * Gets or sets the source element from which drags can originate. - *

    - * If the {@link yfiles.view.DragSource#allowDrag} property is enabled, this will automatically register mouse event handlers on the element that will recognize - * default drag gestures (press followed by drag) to {@link yfiles.view.DragSource#startDrag initiate a drag and drop operation}. - *

    - * @default null - * @type {HTMLElement} - */ - source:HTMLElement; - /** - * Gets or sets a value indicating whether default drag gestures should be automatically recognized on the {@link yfiles.view.DragSource#source}. - * @default false - * @type {boolean} - */ - allowDrag:boolean; - /** - * Gets or sets the data that will be used for the {@link yfiles.view.DragSource#allowDrag automatic drag operation}. - *

    - * If this data is not a {@link yfiles.view.DragDropItem}, the {@link yfiles.input.DropInputMode expected format} of the automatic drag operation will be code. - *

    - * @default null - * @type {Object} - */ - item:Object; - /** - * Gets or sets the {@link yfiles.view.DragSource#effectAllowed} that will be used for the {@link yfiles.view.DragSource#allowDrag automatic drag operation}. - * @default 7 - * @type {yfiles.view.DragDropEffects} - */ - effectAllowed:yfiles.view.DragDropEffects; - static $class:yfiles.lang.Class; - } - /** - * Helper class that plays the role of the target during a drag and drop operation that is initiated using {@link yfiles.view.DragSource#startDrag} - * in a {@link yfiles.view.DragSource}. - * @class yfiles.view.DropTarget - */ - export interface DropTarget extends Object{} - export class DropTarget { - /** - * Initializes a new instance of the {@link yfiles.view.DropTarget} class. - *

    - * In order to make the instance available to the drag and drop mechanisms, the {@link yfiles.view.DropTarget#setDropTarget} helper - * method should be used. If the optional element is passed in, it will automatically be registered. - *

    - * @param {Element} [element=null] The element to optionally {@link yfiles.view.DropTarget#setDropTarget associate} with the new instance. - * @see yfiles.view.DropTarget#setDropTarget - * @see yfiles.view.DropTarget#getDropTarget - * @constructor - */ - constructor(element?:Element); - /** - * Gets the {@link yfiles.view.DropTarget} instance associated with the given element. - * @param {Element} element The element to get the drop target instance of. - * @returns {yfiles.view.DropTarget} The associated instance or null. - * @see yfiles.view.DropTarget#setDropTarget - * @static - */ - static getDropTarget(element:Element):yfiles.view.DropTarget; - /** - * Sets the drop target for the given element. - * @param {Element} element The element or null to register the drop target instance with. - * @param {yfiles.view.DropTarget} dropTarget The instance to attach to the element, null to remove the association from the element. - * @see yfiles.view.DropTarget#getDropTarget - * @static - */ - static setDropTarget(element:Element,dropTarget:yfiles.view.DropTarget):void; - /** - * Adds the given listener for the DragEnter event that occurs when a drag enters the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to add. - * @see yfiles.view.DropTarget#removeDragEnterListener - */ - addDragEnterListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Removes the given listener for the DragEnter event that occurs when a drag enters the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to remove. - * @see yfiles.view.DropTarget#addDragEnterListener - */ - removeDragEnterListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Adds the given listener for the DragLeave event that occurs when a drag leaves the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to add. - * @see yfiles.view.DropTarget#removeDragLeaveListener - */ - addDragLeaveListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Removes the given listener for the DragLeave event that occurs when a drag leaves the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to remove. - * @see yfiles.view.DropTarget#addDragLeaveListener - */ - removeDragLeaveListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Adds the given listener for the DragOver event that occurs when a drag is being performed over the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to add. - * @see yfiles.view.DropTarget#removeDragOverListener - */ - addDragOverListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Removes the given listener for the DragOver event that occurs when a drag is being performed over the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to remove. - * @see yfiles.view.DropTarget#addDragOverListener - */ - removeDragOverListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Adds the given listener for the Drop event that occurs when the drop operation is performed on the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to add. - * @see yfiles.view.DropTarget#removeDropListener - */ - addDropListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Removes the given listener for the Drop event that occurs when the drop operation is performed on the drop target. - *

    - * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. - *

    - * @param {function(Object, yfiles.view.DragEventArgs): void} listener The listener to remove. - * @see yfiles.view.DropTarget#addDropListener - */ - removeDropListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; - /** - * Gets or sets a value indicating whether dropping to this target is currently allowed. - * @type {boolean} - */ - allowDrop:boolean; - static $class:yfiles.lang.Class; - } - /** - * A container for {@link yfiles.view.DashStyle#dashes} and an {@link yfiles.view.DashStyle#offset}. + * Helper class used by {@link yfiles.view.CanvasComponent} to limit the interactive movement of the viewport. *

    - * All of these values are in terms of multiples of the the thickness of a - * {@link yfiles.view.Stroke}. This is different from the corresponding properties of a SVG stroke. + * The {@link yfiles.view.CanvasComponent#viewportLimiter} instance should be consulted whenever the user tries to change the viewport. Using method {@link yfiles.view.ViewportLimiter#limitViewport} + * the desired viewport can be validated by the implementation. Note that setting the {@link yfiles.view.CanvasComponent#zoom} property or {@link yfiles.view.CanvasComponent#viewPoint} property will not be + * influenced by implementations of this class. It is up to the caller to perform verification. *

    - * @class yfiles.view.DashStyle + * @see yfiles.view.ViewportLimiter#bounds + * @class */ - export interface DashStyle extends Object{} - export class DashStyle { + export interface ViewportLimiter extends Object{} + export class ViewportLimiter { /** - * Initializes a new instance of the {@link yfiles.view.DashStyle} class using the provided dashes and offset. - * @param {Array.} dashes The dashes. - * @param {number} offset The offset. - * @constructor - */ - constructor(dashes:number[],offset:number); - /** - * Initializes a new instance of the {@link yfiles.view.DashStyle} class using an empty {@link yfiles.view.DashStyle#dashes} and zero {@link yfiles.view.DashStyle#offset}. - * @constructor + * Initializes a new instance of the {@link yfiles.view.ViewportLimiter} class. */ constructor(); /** - * Clones this instance by returning a {@link Object#memberwiseClone} or this in case this instance is already {@link yfiles.view.DashStyle#isFrozen frozen}. - * @returns {Object} An instance of the same type as this instance. - */ - clone():Object; - /** - * Freezes this instance. + * Gets the to bounds that should be honored for the upcoming call. *

    - * Freezing an object makes it immutable, which can result in performance enhancements. + * This method is used as callback by {@link yfiles.view.ViewportLimiter#limitViewport} for each request. The default + * implementation just yields {@link yfiles.view.ViewportLimiter#bounds}. *

    + * @param canvas The canvas control. + * @param suggestedViewport The suggested viewport. + * @returns The bounds to honor or null. + * @protected */ - freeze():void; + getCurrentBounds(canvas:yfiles.view.CanvasComponent,suggestedViewport:yfiles.geometry.Rect):yfiles.geometry.Rect; /** - * Determines if this instance is frozen. - * @returns {boolean} + * Inspects the desired or suggested new viewport for the given control and returns a valid viewport to use. + * @param canvas The canvas control on which the viewport should be applied. + * @param suggestedViewport The suggested viewport. + * @returns The viewport that should be used. */ - isFrozen():boolean; + limitViewport(canvas:yfiles.view.CanvasComponent,suggestedViewport:yfiles.geometry.Rect):yfiles.geometry.Rect; /** - * Gets or sets the dashes. - * @type {yfiles.collections.List.} + * Gets or sets a value indicating whether both dimensions of {@link yfiles.view.ViewportLimiter#bounds} need to be honored. + * @default true + * @type {boolean} */ - dashes:yfiles.collections.List; + honorBothDimensions:boolean; /** - * Gets or sets the offset. - * @type {number} + * Gets or sets the maximal allowed navigable bounds for the viewport. + * @type {yfiles.geometry.Rect} */ - offset:number; - /** - * Gets the dash style with a single dash. - *

    - * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and - * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't look as expected if its dash cap is {@link yfiles.view.LineCap#FLAT}. - * Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. - *

    - */ - static DASH:yfiles.view.DashStyle; - /** - * Gets the dash style with a single dash and dot. - *

    - * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and - * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't contain visible dots if its dash cap is - * {@link yfiles.view.LineCap#FLAT}. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. - *

    - */ - static DASH_DOT:yfiles.view.DashStyle; - /** - * Gets the dash style with a single dash and two dots. - *

    - * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and - * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't contain visible dots if its dash cap is - * {@link yfiles.view.LineCap#FLAT}. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. - *

    - */ - static DASH_DOT_DOT:yfiles.view.DashStyle; - /** - * Gets the dash style with a single dot. - *

    - * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and - * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't contain visible dots if its dash cap is - * {@link yfiles.view.LineCap#FLAT}. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. - *

    - */ - static DOT:yfiles.view.DashStyle; - /** - * Gets the solid dash style with no dashes. - */ - static SOLID:yfiles.view.DashStyle; + bounds:yfiles.geometry.Rect; static $class:yfiles.lang.Class; } - /** - * The default implementation of a data object for the {@link yfiles.input.DropInputMode}. - * @class yfiles.view.DragDropItem - * @final - */ - export interface DragDropItem extends Object{} - export class DragDropItem { + export enum DragDropKeyStates{ /** - * Initializes a new instance of the {@link yfiles.view.DragDropItem} class and sets the provided data item for the specified - * format. - * @param {string} [format=null] The format. - * @param {Object} [data=null] The data item. - * @see yfiles.view.DragDropItem#setData - * @constructor + * The left mouse button is down or a touch gesture is in progress. */ - constructor(format?:string,data?:Object); + POINTER_DOWN, /** - * Initializes a new instance of the {@link yfiles.view.DragDropItem} class and sets the provided data item for the specified - * format. - * @param {Object} options The parameters to pass. - * @param {string} [options.format=null] The format. - * @param {Object} [options.data=null] The data item. - * @see yfiles.view.DragDropItem#setData - * @constructor + * No button and no key is pressed. */ - constructor(options:{format?:string,data?:Object}); + NONE, /** - * Gets the data item for the given format. - * @param {string} format The format. - * @returns {Object} The data item that is stored for this format, or null if no such item exists. - * @see yfiles.view.DragDropItem#setData + * The shift key is down. */ - getData(format:string):Object; + SHIFT_KEY, /** - * Sets the data item for the given format. - * @param {string} format The format. - * @param {Object} data The data item. - * @see yfiles.view.DragDropItem#getData + * The control key is down. */ - setData(format:string,data:Object):void; + CONTROL_KEY, /** - * Gets the types of the data items stored in this instance. - * @type {Array.} + * The alt key is down. */ - types:string[]; - static $class:yfiles.lang.Class; + ALT_KEY } /** - * A utility class that holds all properties of a {@link yfiles.view.Stroke}. - * @class yfiles.view.Stroke - * @implements {yfiles.lang.ICloneable} - * @final + * A simple {@link yfiles.view.ICanvasObjectDescriptor} that can be used to draw {@link yfiles.input.IPortCandidate} instances in a + * {@link yfiles.view.CanvasComponent}. + * @class + * @implements {yfiles.view.ICanvasObjectDescriptor} + * @implements {yfiles.view.IVisualCreator} + * @implements {yfiles.view.IBoundsProvider} + * @implements {yfiles.input.IHitTestable} + * @implements {yfiles.view.IVisibilityTestable} + * @implements {yfiles.input.IMarqueeTestable} */ - export interface Stroke extends Object,yfiles.lang.ICloneable{} - export class Stroke { + export interface DefaultPortCandidateDescriptor extends Object,yfiles.view.ICanvasObjectDescriptor,yfiles.view.IVisualCreator,yfiles.view.IBoundsProvider,yfiles.input.IHitTestable,yfiles.view.IVisibilityTestable,yfiles.input.IMarqueeTestable{} + export class DefaultPortCandidateDescriptor { /** - * Initializes a new instance of the {@link yfiles.view.Stroke} class using the given brush and thickness. - * @param {yfiles.view.Fill} [fill=null] The brush. - * @param {number} [thickness=1.0] The thickness. - * @constructor + * Instantiates a new descriptor. */ - constructor(fill?:yfiles.view.Fill,thickness?:number); + constructor(); /** - * Initializes a new instance of the {@link yfiles.view.Stroke} class using the given brush and thickness. - * @param {Object} options The parameters to pass. - * @param {yfiles.view.Fill} [options.fill=null] The brush. - * @param {number} [options.thickness=1.0] The thickness. - * @param {yfiles.view.LineCap} options.lineCap The dash cap. + * + * @param forUserObject + * @returns + */ + getBoundsProvider(forUserObject:Object):yfiles.view.IBoundsProvider; + /** + * + * @param forUserObject + * @returns + */ + getHitTestable(forUserObject:Object):yfiles.input.IHitTestable; + /** + * + * @param forUserObject + * @returns + */ + getVisibilityTestable(forUserObject:Object):yfiles.view.IVisibilityTestable; + /** + * + * @param forUserObject + * @returns + */ + getVisualCreator(forUserObject:Object):yfiles.view.IVisualCreator; + /** + * + * @param context + * @param canvasObject + * @returns + */ + isDirty(context:yfiles.view.ICanvasContext,canvasObject:yfiles.view.ICanvasObject):boolean; + /** + * Sets the {@link yfiles.view.IVisualTemplate} to use for the given {@link string} by this instance. *

    - * This option sets the {@link yfiles.view.Stroke#lineCap} property on the created object. + * This method can be used to reconfigure the visualization for the various keys that are declared by this class. *

    - * @param {yfiles.view.DashStyle} options.dashStyle The dash style for the {@link yfiles.view.Stroke}. + * @param resourceKey The key to reconfigure. This is one of + * {@link #CANDIDATE_DRAWING_VALID_NON_FOCUSED_KEY}, + * {@link #CANDIDATE_DRAWING_INVALID_NON_FOCUSED_KEY}, + * {@link #CANDIDATE_DRAWING_INVALID_FOCUSED_KEY}, + * {@link #CANDIDATE_DRAWING_VALID_FOCUSED_KEY}. + * @param template The template to use instead of the default. + */ + setTemplate(resourceKey:string,template:yfiles.view.IVisualTemplate):void; + /** + * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} + * that will be used for rendering a valid, non-focused {@link yfiles.input.IPortCandidate}. *

    - * This option sets the {@link yfiles.view.Stroke#dashStyle} property on the created object. + * The drawing returned should be centered around (0,0). *

    - * @param {yfiles.view.LineJoin} options.lineJoin The line join property. - *

    - * This option sets the {@link yfiles.view.Stroke#lineJoin} property on the created object. - *

    - * @param {number} options.miterLimit The miter limit. - *

    - * This option sets the {@link yfiles.view.Stroke#miterLimit} property on the created object. - *

    - * @constructor - */ - constructor(options:{fill?:yfiles.view.Fill,thickness?:number,lineCap?:yfiles.view.LineCap,dashStyle?:yfiles.view.DashStyle,lineJoin?:yfiles.view.LineJoin,miterLimit?:number}); - /** - * Assigns the stroke defined by this instance to the given element. - * @param {SVGElement} element The element whose stroke should be set. - * @param {yfiles.view.ICanvasContext} context The context. - */ - applyTo(element:SVGElement,context:yfiles.view.ICanvasContext):void; - /** - * Clones this instance by returning a {@link Object#memberwiseClone} or this in case this instance is already {@link yfiles.view.Stroke#isFrozen frozen}. - * @returns {Object} An instance of the same type as this instance. - */ - clone():Object; - /** - * Clones the current value of this instance to a new unfrozen {@link yfiles.view.Stroke}. - * @returns {yfiles.view.Stroke} - */ - cloneCurrentValue():yfiles.view.Stroke; - /** - * Freezes this instance. - *

    - * Freezing an object makes it immutable, which can result in performance enhancements. - *

    - */ - freeze():void; - /** - * Determines if this instance is frozen. - * @returns {boolean} - */ - isFrozen():boolean; - /** - * Gets or sets the brush for the {@link yfiles.view.Stroke}. - * @default 'Black' - * @type {yfiles.view.Fill} - */ - fill:yfiles.view.Fill; - /** - * Gets or sets the dash cap. - * @default 1 - * @type {yfiles.view.LineCap} - */ - lineCap:yfiles.view.LineCap; - /** - * Gets or sets the line join property. - * @default 2 - * @type {yfiles.view.LineJoin} - */ - lineJoin:yfiles.view.LineJoin; - /** - * Gets or sets the dash style for the {@link yfiles.view.Stroke}. - *

    - * The visual appearance of the 'dashes' and 'gaps' specified by this property depends on the value of the property {@link yfiles.view.Stroke#lineCap}, too. - *

    - *

    - * The predefined dash styles are designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and - * {@link yfiles.view.LineCap#ROUND}. With {@link yfiles.view.LineCap#FLAT}, the dashes might not look like expected, for example {@link yfiles.view.DashStyle#DOT} will not - * be visible at all. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value in this - * case. - *

    - * @default 'Solid' - * @type {yfiles.view.DashStyle} - */ - dashStyle:yfiles.view.DashStyle; - /** - * Gets or sets the miter limit. - * @default 10.0 - * @type {number} - */ - miterLimit:number; - /** - * Gets or sets the thickness of the stroke. - * @default 1.0 - * @type {number} - */ - thickness:number; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ALICE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static ALICE_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ANTIQUE_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static ANTIQUE_WHITE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#AQUA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static AQUA:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#AQUAMARINE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static AQUAMARINE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#AZURE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static AZURE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BEIGE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BEIGE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BISQUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BISQUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLACK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BLACK:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLANCHED_ALMOND} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BLANCHED_ALMOND:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLUE_VIOLET} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BLUE_VIOLET:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BROWN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BURLY_WOOD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static BURLY_WOOD:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CADET_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CADET_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CHARTREUSE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CHARTREUSE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CHOCOLATE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CHOCOLATE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CORAL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CORAL:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CORNFLOWER_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CORNFLOWER_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CORNSILK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CORNSILK:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CRIMSON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CRIMSON:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CYAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static CYAN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_CYAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_CYAN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_GOLDENROD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_GOLDENROD:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_GRAY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_KHAKI} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_KHAKI:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_MAGENTA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_MAGENTA:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_OLIVE_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_OLIVE_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_ORANGE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_ORANGE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_ORCHID} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_ORCHID:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_RED:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SALMON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_SALMON:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_SEA_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SLATE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_SLATE_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SLATE_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_SLATE_GRAY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_TURQUOISE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_VIOLET} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DARK_VIOLET:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DEEP_PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DEEP_PINK:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DEEP_SKY_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DEEP_SKY_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DIM_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DIM_GRAY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DODGER_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static DODGER_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FIREBRICK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static FIREBRICK:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FLORAL_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static FLORAL_WHITE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FOREST_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static FOREST_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FUCHSIA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static FUCHSIA:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GAINSBORO} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static GAINSBORO:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GHOST_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static GHOST_WHITE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GOLD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static GOLD:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GOLDENROD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static GOLDENROD:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static GRAY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GREEN_YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static GREEN_YELLOW:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#HONEYDEW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static HONEYDEW:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#HOT_PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static HOT_PINK:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#INDIAN_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static INDIAN_RED:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#INDIGO} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static INDIGO:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#IVORY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static IVORY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#KHAKI} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static KHAKI:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LAVENDER} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LAVENDER:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LAVENDER_BLUSH} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LAVENDER_BLUSH:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LAWN_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LAWN_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LEMON_CHIFFON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LEMON_CHIFFON:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_CORAL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_CORAL:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_CYAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_CYAN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_GOLDENROD_YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_GOLDENROD_YELLOW:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_GRAY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_PINK:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SALMON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_SALMON:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_SEA_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SKY_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_SKY_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SLATE_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_SLATE_GRAY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_STEEL_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_STEEL_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIGHT_YELLOW:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIME} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIME:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIME_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LIME_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LINEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static LINEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MAGENTA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MAGENTA:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MAROON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MAROON:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_AQUAMARINE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_AQUAMARINE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_ORCHID} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_ORCHID:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_PURPLE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_PURPLE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_SEA_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_SLATE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_SLATE_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_SPRING_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_SPRING_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_TURQUOISE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_VIOLET_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MEDIUM_VIOLET_RED:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MIDNIGHT_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MIDNIGHT_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MINT_CREAM} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MINT_CREAM:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MISTY_ROSE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MISTY_ROSE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MOCCASIN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static MOCCASIN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#NAVAJO_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static NAVAJO_WHITE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#NAVY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static NAVY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#OLD_LACE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static OLD_LACE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#OLIVE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static OLIVE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#OLIVE_DRAB} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static OLIVE_DRAB:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ORANGE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static ORANGE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ORANGE_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static ORANGE_RED:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ORCHID} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static ORCHID:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_GOLDENROD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PALE_GOLDENROD:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PALE_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PALE_TURQUOISE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_VIOLET_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PALE_VIOLET_RED:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PAPAYA_WHIP} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PAPAYA_WHIP:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PEACH_PUFF} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PEACH_PUFF:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PERU} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PERU:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PINK:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PLUM} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PLUM:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#POWDER_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static POWDER_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PURPLE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static PURPLE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static RED:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ROSY_BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static ROSY_BROWN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ROYAL_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static ROYAL_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SADDLE_BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SADDLE_BROWN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SALMON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SALMON:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SANDY_BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SANDY_BROWN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SEA_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SEA_SHELL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SEA_SHELL:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SIENNA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SIENNA:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SILVER} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SILVER:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SKY_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SKY_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SLATE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SLATE_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SLATE_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SLATE_GRAY:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SNOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SNOW:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SPRING_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static SPRING_GREEN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#STEEL_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static STEEL_BLUE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static TAN:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TEAL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static TEAL:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#THISTLE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static THISTLE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TOMATO} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static TOMATO:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TRANSPARENT} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static TRANSPARENT:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static TURQUOISE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#VIOLET} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static VIOLET:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#WHEAT} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static WHEAT:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static WHITE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#WHITE_SMOKE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static WHITE_SMOKE:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static YELLOW:yfiles.view.Stroke; - /** - * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#YELLOW_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. - */ - static YELLOW_GREEN:yfiles.view.Stroke; - static $class:yfiles.lang.Class; - } - /** - * Describes a font, with size, family, style, weight and line spacing. - * @class yfiles.view.Font - */ - export interface Font extends Object{} - export class Font { - /** - * Initializes a new instance of the {@link yfiles.view.Font} class with size 10, "Arial" family, normal weight and style and line - * spacing 0.5, or the given values. - * @param {string} [fontFamily=null] - * @param {number} [fontSize=10] - * @param {yfiles.view.FontStyle} [fontStyle=null] - * @param {yfiles.view.FontWeight} [fontWeight=null] - * @param {number} [lineSpacing=0.5] - * @param {yfiles.view.TextDecoration} [textDecoration=null] - * @see yfiles.view.Font#createCopy - * @constructor - */ - constructor(fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration); - /** - * Initializes a new instance of the {@link yfiles.view.Font} class with size 10, "Arial" family, normal weight and style and line - * spacing 0.5, or the given values. - * @param {Object} options The parameters to pass. - * @param {string} [options.fontFamily=null] - * @param {number} [options.fontSize=10] - * @param {yfiles.view.FontStyle} [options.fontStyle=null] - * @param {yfiles.view.FontWeight} [options.fontWeight=null] - * @param {number} [options.lineSpacing=0.5] - * @param {yfiles.view.TextDecoration} [options.textDecoration=null] - * @see yfiles.view.Font#createCopy - * @constructor - */ - constructor(options:{fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration}); - /** - * Assigns the text properties of this instance to the given text element. - * @param {SVGTextElement} textElement The text element to assign set the {@link yfiles.view.Font} on. - */ - applyTo(textElement:SVGTextElement):void; - /** - * Creates a copy with the values of this instance or optionally the explicitly specified values. - * @param {string} [fontFamily=null] The font family to use for the copy. - * @param {number} [fontSize=-1] The font size to use for the copy. - * @param {yfiles.view.FontStyle} [fontStyle=null] The font style to use for the copy. - * @param {yfiles.view.FontWeight} [fontWeight=null] The font weight to use for the copy. - * @param {number} [lineSpacing=-1] The line spacing to use for the copy. - * @param {yfiles.view.TextDecoration} [textDecoration=null] The text decoration to use for the copy. - * @returns {yfiles.view.Font} A new {@link yfiles.view.Font} instance. - */ - createCopy(fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration):yfiles.view.Font; - /** - * Creates a copy with the values of this instance or optionally the explicitly specified values. - * @param {Object} options The parameters to pass. - * @param {string} [options.fontFamily=null] The font family to use for the copy. - * @param {number} [options.fontSize=-1] The font size to use for the copy. - * @param {yfiles.view.FontStyle} [options.fontStyle=null] The font style to use for the copy. - * @param {yfiles.view.FontWeight} [options.fontWeight=null] The font weight to use for the copy. - * @param {number} [options.lineSpacing=-1] The line spacing to use for the copy. - * @param {yfiles.view.TextDecoration} [options.textDecoration=null] The text decoration to use for the copy. - * @returns {yfiles.view.Font} A new {@link yfiles.view.Font} instance. - */ - createCopy(options:{fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration}):yfiles.view.Font; - /** - * Gets the size of the font. - *

    - * The font size is interpreted as px. - *

    - * @default 10 - * @type {number} - */ - fontSize:number; - /** - * Gets or sets the font family. - * @default 'Arial' + * @const + * @static * @type {string} */ - fontFamily:string; + static CANDIDATE_DRAWING_VALID_NON_FOCUSED_KEY:string; /** - * Gets or sets the font style. - * @default 0 - * @type {yfiles.view.FontStyle} - */ - fontStyle:yfiles.view.FontStyle; - /** - * Gets or sets the font weight. - * @default 0 - * @type {yfiles.view.FontWeight} - */ - fontWeight:yfiles.view.FontWeight; - /** - * Gets or sets the line spacing. + * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} + * that will be used for rendering a valid, focused {@link yfiles.input.IPortCandidate}. *

    - * The value is interpreted as parts of the line height. + * The drawing returned should be centered around (0,0). + *

    + * @const + * @static + * @type {string} + */ + static CANDIDATE_DRAWING_VALID_FOCUSED_KEY:string; + /** + * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} + * that will be used for rendering an invalid, non-focused {@link yfiles.input.IPortCandidate}. + *

    + * The drawing returned should be centered around (0,0). + *

    + * @const + * @static + * @type {string} + */ + static CANDIDATE_DRAWING_INVALID_NON_FOCUSED_KEY:string; + /** + * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} + * that will be used for rendering a invalid, focused {@link yfiles.input.IPortCandidate}. + *

    + * The drawing returned should be centered around (0,0). + *

    + * @const + * @static + * @type {string} + */ + static CANDIDATE_DRAWING_INVALID_FOCUSED_KEY:string; + /** + * Gets or sets a property that determines whether this descriptor uses the "current" candidates. + * @type {boolean} + */ + currentCandidate:boolean; + /** + * Gets or sets the logical size of the candidate. + *

    + * This size is used for hit testing, visibility tests, etc. The default is 3. *

    - * @default 0.5 * @type {number} */ - lineSpacing:number; - /** - * Gets or sets the text decoration. - * @default 0 - * @type {yfiles.view.TextDecoration} - */ - textDecoration:yfiles.view.TextDecoration; + size:number; static $class:yfiles.lang.Class; } - export enum FontStyle{ - NORMAL, - ITALIC, - OBLIQUE, - INHERIT + /** + * Manages the visual appearance of an {@link yfiles.graph.IGraph} instance in a {@link yfiles.view.CanvasComponent}. + *

    + * This class monitors the structural changes of an {@link yfiles.graph.IGraph} implementation and installs the necessary {@link yfiles.view.ICanvasObject} + * instance in the canvas for each item in the graph. Note that {@link yfiles.view.GraphComponent} has an instance of this type + * built-in already and usually it is not necessary to create an own one. This class will also {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting use the node hierarchy} to + * nest the nodes {@link yfiles.view.GraphModelManager#useHierarchicEdgeNesting and edges} accordingly. + *

    + * @see yfiles.view.GraphModelManager#nodeGroup + * @see yfiles.view.GraphModelManager#useHierarchicEdgeNesting + * @see yfiles.view.GraphModelManager#useHierarchicNodeNesting + * @class + */ + export interface GraphModelManager extends Object{} + export class GraphModelManager { + /** + * Creates a manager instance for the given control. + *

    + * The contents of the graph will be added to given group that is must be part of the canvas. + *

    + *

    + * In order to get anything useful out of this instance the {@link yfiles.view.GraphModelManager#graph} property should be set to an instance after construction. + *

    + * @param canvas the canvas to manage the visual appearance of a graph for. + * @param contentGroup the group to add the graph's visual content to. Can be null, in which case {@link #contentGroup} should be set afterwards or {@link #createContentGroup} + * will automatically create a group lazily. + */ + constructor(canvas:yfiles.view.CanvasComponent,contentGroup:yfiles.view.ICanvasObjectGroup); + /** + * Creates a manager instance for the given control. + *

    + * The contents of the graph will be added to a newly created group that is added to the root of the scene graph. + *

    + *

    + * In order to get anything useful out of this instance the {@link yfiles.view.GraphModelManager#graph} property should be set to an instance after construction. + *

    + * @param canvas the canvas to manage the visual appearance of a graph for. + */ + constructor(canvas:yfiles.view.CanvasComponent); + /** + * Compares two items with respect to their visibility order. + * @param item1 the first item to compare + * @param item2 the second item to compare + * @returns an integer value indicating the relative rendering order of the two items + * @see yfiles.view.GraphModelManager#comparer + */ + compare(item1:yfiles.graph.IModelItem,item2:yfiles.graph.IModelItem):number; + /** + * Factory method that creates the {@link yfiles.view.GraphModelManager#contentGroup} + *

    + * The default implementation will just add another group to the {@link yfiles.view.CanvasComponent}. + *

    + * @returns The group to use for adding the content. + * @protected + */ + createContentGroup():yfiles.view.ICanvasObjectGroup; + /** + * Factory method for the {@link yfiles.view.GraphModelManager#edgeGroup} property. + *

    + * This method will be called upon first access to the property. + *

    + * @returns a new group that has been added to the {@link #contentGroup} + * @protected + */ + createEdgeGroup():yfiles.view.ICanvasObjectGroup; + /** + * Factory method for the {@link yfiles.view.GraphModelManager#edgeLabelGroup} property. + *

    + * This method will be called upon first access to the property. + *

    + * @returns a new group that has been added to the {@link #contentGroup} + * @protected + */ + createEdgeLabelGroup():yfiles.view.ICanvasObjectGroup; + /** + * Gets a {@link yfiles.input.IHitTester.} that can be used to enumerate hits on the canvas at a given world coordinate position. + *

    + * This enumerator will enumerate hits in the order so that the visually topmost element will be reported first. + *

    + * Type parameter T. + * @param itemType + * @returns + * @template T + */ + createHitTester(itemType:yfiles.lang.Class):yfiles.input.IHitTester; + /** + * Factory method for the {@link yfiles.view.GraphModelManager#nodeGroup} property. + *

    + * This method will be called upon first access to the property. + *

    + * @returns a new group that has been added to the {@link #contentGroup} + * @protected + */ + createNodeGroup():yfiles.view.ICanvasObjectGroup; + /** + * Factory method for the {@link yfiles.view.GraphModelManager#nodeLabelGroup} property. + *

    + * This method will be called upon first access to the property. + *

    + * @returns a new group that has been added to the {@link #contentGroup} + * @protected + */ + createNodeLabelGroup():yfiles.view.ICanvasObjectGroup; + /** + * Factory method for the {@link yfiles.view.GraphModelManager#portGroup} property. + *

    + * This method will be called upon first access to the property. + *

    + * @returns a new group that has been added to the {@link #contentGroup} + * @protected + */ + createPortGroup():yfiles.view.ICanvasObjectGroup; + /** + * Retrieves the {@link yfiles.view.ICanvasObject} for a given model item managed by this instance. + * @param item the item + * @returns the canvas object for the given item or null + * @see yfiles.view.ItemModelManager.#getCanvasObject + */ + getCanvasObject(item:yfiles.graph.IModelItem):yfiles.view.ICanvasObject; + /** + * Retrieves the Canvas Object group to use for the given label. + *

    + * This implementation is called by the default {@link yfiles.view.GraphModelManager#nodeLabelDescriptor} and {@link yfiles.view.GraphModelManager#edgeLabelDescriptor} instances. + *

    + * @param label The label that will be installed in the canvas. + * @returns The group to use. + * @protected + */ + getCanvasObjectGroup(label:yfiles.graph.ILabel):yfiles.view.ICanvasObjectGroup; + /** + * Retrieves the Canvas Object group to use for the given port. + *

    + * This implementation is called by the default {@link yfiles.view.GraphModelManager#portDescriptor} instance. + *

    + * @param port The port that will be installed in the canvas. + * @returns The group to use. + * @protected + */ + getCanvasObjectGroup(port:yfiles.graph.IPort):yfiles.view.ICanvasObjectGroup; + /** + * Retrieves the Canvas Object group to use for the given edge. + *

    + * This implementation is called by the default {@link yfiles.view.GraphModelManager#edgeDescriptor} instance. + *

    + * @param edge The edge that will be installed in the canvas. + * @returns The group to use. + * @protected + */ + getCanvasObjectGroup(edge:yfiles.graph.IEdge):yfiles.view.ICanvasObjectGroup; + /** + * Retrieves the Canvas Object group to use for the given node. + *

    + * This implementation is called by the default {@link yfiles.view.GraphModelManager#nodeDescriptor} instance. + *

    + * @param node The node that will be installed in the canvas. + * @returns The group to use. + * @protected + */ + getCanvasObjectGroup(node:yfiles.graph.INode):yfiles.view.ICanvasObjectGroup; + /** + * Retrieves the corresponding {@link yfiles.graph.IModelItem} for the given canvas object. + * @param canvasObject the instance to use for the query + * @returns The item that is associated with the object or null. + */ + getModelItem(canvasObject:yfiles.view.ICanvasObject):yfiles.graph.IModelItem; + /** + * Enumerates hits on the canvas at a given world coordinate position for a given context. + *

    + * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The + * enumeration is performed lazily. + *

    + * @param context The context to provide to {@link #isHit} + * @param location the world coordinates to perform the hit test + * @param root The group to search the subtree of. + * @returns an enumerable that will enumerate the hits at the given coordinates + */ + hitElementsAt(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,root:yfiles.view.ICanvasObjectGroup):yfiles.collections.IEnumerable; + /** + * Enumerates hits on the canvas at a given world coordinate position. + *

    + * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The + * enumeration is performed lazily. + *

    + * @param location the world coordinates to perform the hit test + * @returns an enumerable that will enumerate the hits at the given coordinates + */ + hitElementsAt(location:yfiles.geometry.Point):yfiles.collections.IEnumerable; + /** + * Called when the {@link yfiles.view.GraphModelManager#graph} property changes. + *

    + * This method registers the collections of the graph instance with the {@link yfiles.view.CollectionModelManager. mechanism} that manages the mapping between the + * elements and the + * {@link yfiles.view.ICanvasObject}s. Subclasses should call the base method if they want to use the default mechanisms. + *

    + * @param oldGraph The old graph instance. + * @param newGraph The new graph instance. + * @protected + */ + onGraphChanged(oldGraph:yfiles.graph.IGraph,newGraph:yfiles.graph.IGraph):void; + /** + * Enumerates hits on the canvas at a given world coordinate position in a given context. + *

    + * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The + * enumeration is performed lazily. + *

    + * Type parameter T. + * @param modelItemType + * @param context The context to provide to {@link #isHit} + * @param location the world coordinates to perform the hit test + * @param root The group to search the subtree of. + * @returns an enumerable that will enumerate the hits at the given coordinates + * @template T + */ + typedHitElementsAt(modelItemType:yfiles.lang.Class,context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,root:yfiles.view.ICanvasObjectGroup):yfiles.collections.IEnumerable; + /** + * Enumerates hits on the canvas at a given world coordinate position. + *

    + * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The + * enumeration is performed lazily. + *

    + * Type parameter T. + * @param itemType + * @param location the world coordinates to perform the hit test + * @returns an enumerable that will enumerate the hits at the given coordinates + * @template T + */ + typedHitElementsAt(itemType:yfiles.lang.Class,location:yfiles.geometry.Point):yfiles.collections.IEnumerable; + /** + * {@link yfiles.view.CollectionModelManager.#update Updates} the visual representation of the given item. + * @param item The item to update the visual representation + * @see yfiles.view.CollectionModelManager.#update + */ + update(item:yfiles.graph.IModelItem):void; + /** + * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing node styles. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createNodeGroup} + * will be called. Note that in the case of {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting hierarchic node nesting}, nodes will not be installed at the top-level of this + * group. Rather a more complicated nesting of dynamically created {@link yfiles.view.ICanvasObjectGroup}s will be used. + *

    + * @see yfiles.view.GraphModelManager#getCanvasObjectGroup + * @see yfiles.view.GraphModelManager#nodeDescriptor + * @type {yfiles.view.ICanvasObjectGroup} + */ + nodeGroup:yfiles.view.ICanvasObjectGroup; + /** + * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing edge styles. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createEdgeGroup} + * will be called. Note that in the case of {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting hierarchically nested graphs} edges will only be put directly in this + * {@link yfiles.view.ICanvasObjectGroup}, if the {@link yfiles.view.GraphModelManager#useHierarchicEdgeNesting} property is set to false. Otherwise edges will actually be nested in the subtree + * of the {@link yfiles.view.GraphModelManager#nodeGroup} according to the node nesting. + *

    + * @see yfiles.view.GraphModelManager#getCanvasObjectGroup + * @see yfiles.view.GraphModelManager#edgeDescriptor + * @type {yfiles.view.ICanvasObjectGroup} + */ + edgeGroup:yfiles.view.ICanvasObjectGroup; + /** + * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing edge label styles. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createEdgeLabelGroup} + * will be called. + *

    + * @see yfiles.view.GraphModelManager#getCanvasObjectGroup + * @see yfiles.view.GraphModelManager#edgeLabelDescriptor + * @type {yfiles.view.ICanvasObjectGroup} + */ + edgeLabelGroup:yfiles.view.ICanvasObjectGroup; + /** + * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing node label styles. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createNodeLabelGroup} + * will be called. + *

    + * @see yfiles.view.GraphModelManager#getCanvasObjectGroup + * @see yfiles.view.GraphModelManager#nodeLabelDescriptor + * @type {yfiles.view.ICanvasObjectGroup} + */ + nodeLabelGroup:yfiles.view.ICanvasObjectGroup; + /** + * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing port styles. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createPortGroup} + * will be called. + *

    + * @see yfiles.view.GraphModelManager#getCanvasObjectGroup + * @see yfiles.view.GraphModelManager#portDescriptor + * @type {yfiles.view.ICanvasObjectGroup} + */ + portGroup:yfiles.view.ICanvasObjectGroup; + /** + * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.IEdge} into the + * canvas. + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + edgeDescriptor:yfiles.view.ICanvasObjectDescriptor; + /** + * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.IPort} into the + * canvas. + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + portDescriptor:yfiles.view.ICanvasObjectDescriptor; + /** + * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.ILabel} of an {@link yfiles.graph.IEdge} + * into the canvas. + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + edgeLabelDescriptor:yfiles.view.ICanvasObjectDescriptor; + /** + * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.ILabel} of an {@link yfiles.graph.INode} + * into the canvas. + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + nodeLabelDescriptor:yfiles.view.ICanvasObjectDescriptor; + /** + * Determines whether this instance should nest the edges accordingly if the graph is grouped. + *

    + * Hierarchic nesting for edges requires that {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting hierarchic nesting for nodes} is enabled as well. If both properties are + * enabled (the default) the edges will actually be interleaved with the nodes in the nested canvas object subtree so the {@link yfiles.view.GraphModelManager#edgeGroup} + * will be empty. + *

    + * @see yfiles.view.GraphModelManager#useHierarchicNodeNesting + * @type {boolean} + */ + useHierarchicEdgeNesting:boolean; + /** + * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.INode} into the + * canvas. + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + nodeDescriptor:yfiles.view.ICanvasObjectDescriptor; + /** + * Gets or sets the content group this manager instance uses to add visual representation of the graph to. + * @type {yfiles.view.ICanvasObjectGroup} + */ + contentGroup:yfiles.view.ICanvasObjectGroup; + /** + * Gets an {@link yfiles.collections.IComparer.} instance that can be used to compare two model items with respect to their visual display order. + *

    + * An item is considered to be greater than another item if it is rendered on top of it. + *

    + * @type {yfiles.collections.IComparer.} + */ + comparer:yfiles.collections.IComparer; + /** + * Gets a {@link yfiles.input.IHitTester.} that can be used to enumerate hits on the canvas at a given world coordinate position. + *

    + * This enumerator will enumerate hits in the order so that the visually topmost element will be reported first. + *

    + * @type {yfiles.input.IHitTester.} + */ + hitTester:yfiles.input.IHitTester; + /** + * Gets or sets the graph this manager manages. + * @see yfiles.view.GraphModelManager#onGraphChanged + * @type {yfiles.graph.IGraph} + */ + graph:yfiles.graph.IGraph; + /** + * Determines whether this instance should nest the nodes {@link yfiles.view.GraphModelManager#useHierarchicEdgeNesting and optionally edges} accordingly if the graph is grouped. + * @type {boolean} + */ + useHierarchicNodeNesting:boolean; + /** + * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.INode}s which simply defers to + * the node's {@link yfiles.styles.INodeStyle}. + * @const + * @static + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + static DEFAULT_NODE_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; + /** + * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.IEdge}s which simply defers to + * the edge's {@link yfiles.styles.IEdgeStyle}. + * @const + * @static + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + static DEFAULT_EDGE_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; + /** + * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.IPort}s which simply defers to + * the port's {@link yfiles.styles.IPortStyle}. + * @const + * @static + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + static DEFAULT_PORT_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; + /** + * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.ILabel}s which simply defers + * to the label's {@link yfiles.styles.ILabelStyle}. + * @const + * @static + * @type {yfiles.view.ICanvasObjectDescriptor} + */ + static DEFAULT_LABEL_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; + static $class:yfiles.lang.Class; } - export enum FontWeight{ - NORMAL, - BOLD, - BOLDER, - LIGHTER, - ITEM100, - ITEM200, - ITEM300, - ITEM400, - ITEM500, - ITEM600, - ITEM700, - ITEM800, - ITEM900, - INHERIT + /** + * An implementation of the {@link yfiles.view.IObstacleProvider} interface that uses the {@link yfiles.graph.IGraph#edges edges} and {@link yfiles.graph.IGraph#nodes nodes} of an {@link yfiles.graph.IGraph} + * as obstacles. + *

    + * The {@link yfiles.view.BridgeManager} then calculates bridges for edge paths that cross these obstacles. + *

    + *

    + * This class can be used to add bridge support via the {@link yfiles.view.BridgeManager} to a rendered {@link yfiles.graph.IGraph}. + *

    + * @see yfiles.view.BridgeManager#addObstacleProvider + * @see yfiles.view.BridgeManager + * @see yfiles.view.IObstacleProvider + * @class + * @implements {yfiles.view.IObstacleProvider} + */ + export interface GraphObstacleProvider extends Object,yfiles.view.IObstacleProvider{} + export class GraphObstacleProvider { + /** + * Helper method that retrieves the {@link yfiles.graph.IGraph} to use from the context + *

    + * This implementation uses the {@link yfiles.graph.ILookup#lookup} of the {@link yfiles.view.ICanvasContext#canvasComponent} to query the {@link yfiles.graph.IGraph} implementation. + *

    + * @param context The context to retrieve the implementation from. + * @returns The {@link } instance to query or null. + * @protected + */ + getGraph(context:yfiles.view.IRenderContext):yfiles.graph.IGraph; + /** + * Iterates over all {@link yfiles.graph.IGraph#edges} and {@link yfiles.graph.IGraph#nodes} to query an {@link yfiles.view.IObstacleProvider} from the {@link yfiles.graph.IModelItem}'s + * {@link yfiles.graph.ILookup#lookup}. + *

    + * This method will depending on the {@link yfiles.view.GraphObstacleProvider#queryEdges} and {@link yfiles.view.GraphObstacleProvider#queryNodes} property query the items for an implementation of {@link yfiles.view.IObstacleProvider} + * and concatenate all resulting {@link yfiles.geometry.GeneralPath} obstacles into one path that will then be returned. + *

    + * @param context The context where the obstacles are queried for. + * @returns A path that is the concatenated path of all obstacles for the given context. + */ + getObstacles(context:yfiles.view.IRenderContext):yfiles.geometry.GeneralPath; + /** + * Gets or sets a value indicating whether to query the {@link yfiles.graph.IGraph#edges} for an {@link yfiles.view.IObstacleProvider} implementation. + *

    + * The default is true. + *

    + * @type {boolean} + */ + queryEdges:boolean; + /** + * Gets or sets a value indicating whether to query the {@link yfiles.graph.IGraph#nodes} for an {@link yfiles.view.IObstacleProvider} implementation. + * @type {boolean} + */ + queryNodes:boolean; + static $class:yfiles.lang.Class; + } + /** + * Simple implementation of the {@link yfiles.view.IGraphSelection} interface. + * @class + * @implements {yfiles.view.IGraphSelection} + */ + export interface GraphSelection extends Object,yfiles.view.IGraphSelection{} + export class GraphSelection { + /** + * Instantiates an instance using the the graph as the model. + * @param graph + */ + constructor(graph:yfiles.graph.IGraph); + /** + * Creates a new instance with no initial {@link yfiles.view.GraphSelection#graph} assigned. + *

    + * In order to be always in sync with the structural changes in a graph, an instance should be associated with an {@link yfiles.graph.IGraph} + * using the {@link yfiles.view.GraphSelection#graph} property. + *

    + */ + constructor(); + /** + * + */ + clear():void; + /** + * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the bends. + * @returns + * @protected + */ + createBendSelectionModel():yfiles.view.DefaultSelectionModel; + /** + * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the edges. + * @returns + * @protected + */ + createEdgeSelectionModel():yfiles.view.DefaultSelectionModel; + /** + * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the labels. + * @returns + * @protected + */ + createLabelSelectionModel():yfiles.view.DefaultSelectionModel; + /** + * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the nodes. + * @returns + * @protected + */ + createNodeSelectionModel():yfiles.view.DefaultSelectionModel; + /** + * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the ports. + * @returns + * @protected + */ + createPortSelectionModel():yfiles.view.DefaultSelectionModel; + /** + * Returns an enumerator that iterates through the collection of all selected elements. + * @returns An {@link } object that can be used to iterate through all selected elements. + */ + getEnumerator():yfiles.collections.IEnumerator; + /** + * + * @param item + * @returns + */ + isSelected(item:yfiles.graph.IModelItem):boolean; + /** + * Raises the {@link yfiles.view.GraphSelection#addItemSelectionChangedListener ItemSelectionChanged} event + * @param evt The parameters for the event + * @protected + */ + onItemSelectionChanged(evt:yfiles.view.ItemSelectionChangedEventArgs):void; + /** + * + * @param item + * @param selected + */ + setSelected(item:yfiles.graph.IModelItem,selected:boolean):void; + /** + * + * @type {yfiles.view.ISelectionModel.} + */ + selectedNodes:yfiles.view.ISelectionModel; + /** + * + * @type {yfiles.view.ISelectionModel.} + */ + selectedEdges:yfiles.view.ISelectionModel; + /** + * + * @type {yfiles.view.ISelectionModel.} + */ + selectedLabels:yfiles.view.ISelectionModel; + /** + * + * @type {yfiles.view.ISelectionModel.} + */ + selectedPorts:yfiles.view.ISelectionModel; + /** + * + * @type {yfiles.view.ISelectionModel.} + */ + selectedBends:yfiles.view.ISelectionModel; + /** + * + * @type {number} + */ + size:number; + /** + * Gets or sets the {@link yfiles.graph.IGraph} this instance is using as the domain for the selection. + * @type {yfiles.graph.IGraph} + */ + graph:yfiles.graph.IGraph; + /** + * + * @param listener + */ + addItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; + /** + * + * @param listener + */ + removeItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; + static $class:yfiles.lang.Class; + } + /** + * Manages the selection state of items in an {@link yfiles.graph.IGraph} instance. + *

    + * This interface provides access to the {@link yfiles.view.ISelectionModel.} instances that manage the selection of nodes, edges, labels, ports, and bends. + * The generic methods that use {@link yfiles.graph.IModelItem} parameters delegate to the corresponding domain-specific selection + * models. + *

    + * @see yfiles.view.ISelectionModel. + * @interface + * @implements {yfiles.view.ISelectionModel.} + */ + export interface IGraphSelection extends Object,yfiles.view.ISelectionModel{ + /** + * An {@link yfiles.view.ISelectionModel.} of the selected nodes. + *

    + * This is the node part of the selection that this instance is a composite of. + *

    + * @abstract + * @type {yfiles.view.ISelectionModel.} + */ + selectedNodes:yfiles.view.ISelectionModel; + /** + * An {@link yfiles.view.ISelectionModel.} of the selected labels. + *

    + * This is the label part of the selection that this instance is a composite of. + *

    + * @abstract + * @type {yfiles.view.ISelectionModel.} + */ + selectedLabels:yfiles.view.ISelectionModel; + /** + * An {@link yfiles.view.ISelectionModel.} of the selected edges. + *

    + * This is the edge part of the selection that this instance is a composite of. + *

    + * @abstract + * @type {yfiles.view.ISelectionModel.} + */ + selectedEdges:yfiles.view.ISelectionModel; + /** + * An {@link yfiles.view.ISelectionModel.} of the selected ports. + *

    + * This is the ports part of the selection that this instance is a composite of. + *

    + * @abstract + * @type {yfiles.view.ISelectionModel.} + */ + selectedPorts:yfiles.view.ISelectionModel; + /** + * An {@link yfiles.view.ISelectionModel.} of the selected bends. + *

    + * This is the bend part of the selection that this instance is a composite of. + *

    + * @abstract + * @type {yfiles.view.ISelectionModel.} + */ + selectedBends:yfiles.view.ISelectionModel; + } + var IGraphSelection:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An implementation of the {@link yfiles.view.ICanvasObjectInstaller} interface that can decorate the visual appearence of an + * {@link yfiles.graph.IEdge}. + *

    + * This will install an {@link yfiles.view.ICanvasObject} during {@link yfiles.view.ICanvasObjectInstaller#addCanvasObject installation}, that will render the path and the bends of an edge + * using a {@link yfiles.view.EdgeDecorationInstaller#getStroke pen} for the path and a {@link yfiles.view.EdgeDecorationInstaller#getBendDrawing drawing} for the bends. + *

    + * @class + * @implements {yfiles.view.ISelectionIndicatorInstaller} + * @implements {yfiles.view.IHighlightIndicatorInstaller} + * @implements {yfiles.view.IFocusIndicatorInstaller} + */ + export interface EdgeDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} + export class EdgeDecorationInstaller { + /** + * Installs a rendering for the item if it is an {@link yfiles.graph.IEdge} that will use the {@link yfiles.view.EdgeDecorationInstaller#getBendDrawing} + * and {@link yfiles.view.EdgeDecorationInstaller#getStroke} to render the path and bends. + * @param context The canvas context. + * @param group The {@link } to add the new canvas object to. + * @param item The item to install. + * @returns The canvas object representing the item. + */ + addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; + /** + * Callback method that retrieves the drawing of the bend for the context. + *

    + * This implementation will use the {@link yfiles.view.EdgeSelectionIndicatorInstaller#BEND_TEMPLATE_KEY} resource to find a {@link yfiles.view.IVisualTemplate} + * instance. If null is yielded, a default drawing will be used. + *

    + * @param canvas The canvas for which the drawing shall be returned. + * @param edge The edge for which the rendering will be used. + * @returns The drawing instance to use for the rendering of the bends in the given context. + * @protected + * @abstract + */ + getBendDrawing(canvas:yfiles.view.CanvasComponent,edge:yfiles.graph.IEdge):yfiles.view.IVisualTemplate; + /** + * Callback method that retrieves the {@link yfiles.view.Stroke} for the context. + *

    + * This implementation will use the {@link yfiles.view.EdgeSelectionIndicatorInstaller#STROKE_KEY} resource to find a {@link yfiles.view.Stroke} + * instance. If null is yielded, a default {@link yfiles.view.Stroke} will be used. + *

    + * @param edge The edge for which the rendering will be used. + * @param canvas The canvas for which the {@link } shall be returned. + * @returns The {@link } instance to use for the rendering of the edge in the given context. + * @protected + * @abstract + */ + getStroke(canvas:yfiles.view.CanvasComponent,edge:yfiles.graph.IEdge):yfiles.view.Stroke; + static $class:yfiles.lang.Class; + } + /** + * An implementation of the {@link yfiles.view.ICanvasObjectInstaller} interface that can install the selection outline of an + * {@link yfiles.graph.IEdge}. + *

    + * This will {@link yfiles.view.EdgeDecorationInstaller#addCanvasObject install} an {@link yfiles.view.ICanvasObject} that will render the path and the bends of an edge using a {@link yfiles.view.EdgeSelectionIndicatorInstaller#getStroke pen} for the + * path and a {@link yfiles.view.EdgeSelectionIndicatorInstaller#getBendDrawing drawing} for the bends. + *

    + * @class + * @extends {yfiles.view.EdgeDecorationInstaller} + */ + export interface EdgeSelectionIndicatorInstaller extends yfiles.view.EdgeDecorationInstaller{} + export class EdgeSelectionIndicatorInstaller { + constructor(); + /** + * A {@link string} that will be used to find the {@link yfiles.view.Stroke} that will be used to draw the path of the edge. + * @const + * @static + * @type {string} + */ + static STROKE_KEY:string; + /** + * A {@link string} that will be used to find the {@link yfiles.view.IVisualTemplate} that will be used to draw the bends of the edge. + * @const + * @static + * @type {string} + */ + static BEND_TEMPLATE_KEY:string; + static $class:yfiles.lang.Class; + } + /** + * An specialized subclass of the {@link yfiles.view.EdgeSelectionIndicatorInstaller} that can install the focus indicator of an + * {@link yfiles.graph.IEdge}. + *

    + * This will {@link yfiles.view.EdgeDecorationInstaller#addCanvasObject install} an {@link yfiles.view.ICanvasObject} that will render the path and the bends of an edge using a {@link yfiles.view.EdgeFocusIndicatorInstaller#getStroke pen} for the + * path and a {@link yfiles.view.EdgeFocusIndicatorInstaller#getBendDrawing drawing} for the bends. + *

    + * @class + * @extends {yfiles.view.EdgeDecorationInstaller} + */ + export interface EdgeFocusIndicatorInstaller extends yfiles.view.EdgeDecorationInstaller{} + export class EdgeFocusIndicatorInstaller { + constructor(); + /** + * A {@link string} that will be used to find the {@link yfiles.view.Stroke} that will be used to draw the path of the edge. + * @const + * @static + * @type {string} + */ + static STROKE_KEY:string; + /** + * A {@link string} that will be used to find the {@link yfiles.view.IVisualTemplate} that will be used to draw the bends of the edge. + * @const + * @static + * @type {string} + */ + static BEND_TEMPLATE_KEY:string; + static $class:yfiles.lang.Class; + } + /** + * An specialized subclass of the {@link yfiles.view.EdgeSelectionIndicatorInstaller} that can install the highlight rendering of + * an {@link yfiles.graph.IEdge}. + *

    + * This will {@link yfiles.view.EdgeDecorationInstaller#addCanvasObject install} an {@link yfiles.view.ICanvasObject} that will render the path and the bends of an edge using a {@link yfiles.view.EdgeHighlightIndicatorInstaller#getStroke pen} for the + * path and a {@link yfiles.view.EdgeHighlightIndicatorInstaller#getBendDrawing drawing} for the bends. + *

    + * @class + * @extends {yfiles.view.EdgeDecorationInstaller} + */ + export interface EdgeHighlightIndicatorInstaller extends yfiles.view.EdgeDecorationInstaller{} + export class EdgeHighlightIndicatorInstaller { + constructor(); + /** + * A {@link string} that will be used to find the {@link yfiles.view.Stroke} that will be used to draw the path of the edge. + * @const + * @static + * @type {string} + */ + static STROKE_KEY:string; + /** + * A {@link string} that will be used to find the {@link yfiles.view.IVisualTemplate} that will be used to draw the bends of the edge. + * @const + * @static + * @type {string} + */ + static BEND_TEMPLATE_KEY:string; + static $class:yfiles.lang.Class; + } + /** + * Allows the use of an {@link yfiles.styles.IEdgeStyle} to render the selection, highlight or focus indicator of edges. + *

    + * The {@link yfiles.view.EdgeStyleDecorationInstaller#zoomPolicy} property defines how the zoom level affects the rendering of the indicator. It can either scale according to the + * zoom level similar to regular graph items or have always to same thickness regardless of the zoom, similar to the + * default yFiles indicators. + *

    + * @see yfiles.view.NodeStyleDecorationInstaller + * @see yfiles.view.LabelStyleDecorationInstaller + * @class + * @implements {yfiles.view.ISelectionIndicatorInstaller} + * @implements {yfiles.view.IHighlightIndicatorInstaller} + * @implements {yfiles.view.IFocusIndicatorInstaller} + */ + export interface EdgeStyleDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} + export class EdgeStyleDecorationInstaller { + /** + * Create a new instance of this class. + * @param {Object} [options=null] The parameters to pass. + * @param {yfiles.styles.IEdgeStyle} options.edgeStyle The style to use for the rendering. + *

    + * This option sets the {@link yfiles.view.EdgeStyleDecorationInstaller#edgeStyle} property on the created object. + *

    + * @param {yfiles.view.StyleDecorationZoomPolicy} options.zoomPolicy Specifies how the style is affected by the current zoom level. + *

    + * This option sets the {@link yfiles.view.EdgeStyleDecorationInstaller#zoomPolicy} property on the created object. + *

    + */ + constructor(options?:{edgeStyle?:yfiles.styles.IEdgeStyle,zoomPolicy?:yfiles.view.StyleDecorationZoomPolicy}); + /** + * Installs a rendering for the item if it is an {@link yfiles.graph.IEdge}. + * @param context The canvas context. + * @param group The canvas object group to add the newly created {@link } to. + * @param item The item to install. + * @returns The canvas object representing the item. + */ + addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; + /** + * Specifies how the style is affected by the current zoom level. + *

    + * Changes of the value of this property are propagated to all styles created by this instance and become immediately + * visible. + *

    + * @type {yfiles.view.StyleDecorationZoomPolicy} + */ + zoomPolicy:yfiles.view.StyleDecorationZoomPolicy; + /** + * The style to use for the rendering. + *

    + * Changes of the value of this property are not propagated to already created styles. + *

    + * @type {yfiles.styles.IEdgeStyle} + */ + edgeStyle:yfiles.styles.IEdgeStyle; + static $class:yfiles.lang.Class; + } + /** + * An {@link yfiles.view.IVisualCreator} for use in a {@link yfiles.view.CanvasComponent} that renders a {@link yfiles.graph.IGraph} instance in a + * sloppy overview style. + * @class + * @implements {yfiles.view.IVisualCreator} + */ + export interface GraphOverviewCanvasVisualCreator extends Object,yfiles.view.IVisualCreator{} + export class GraphOverviewCanvasVisualCreator { + /** + * Creates a new instance for the given graph. + * @param graph + */ + constructor(graph:yfiles.graph.IGraph); + /** + * Callback that paints the specified edge. + * @param renderContext + * @param ctx + * @param edge + * @protected + */ + paintEdge(renderContext:yfiles.view.IRenderContext,ctx:CanvasRenderingContext2D,edge:yfiles.graph.IEdge):void; + /** + * Callback method that paints the specified node. + * @param renderContext + * @param ctx + * @param node + * @protected + */ + paintGroupNode(renderContext:yfiles.view.IRenderContext,ctx:CanvasRenderingContext2D,node:yfiles.graph.INode):void; + /** + * Callback method that paints the specified node. + * @param renderContext + * @param ctx + * @param node + * @protected + */ + paintNode(renderContext:yfiles.view.IRenderContext,ctx:CanvasRenderingContext2D,node:yfiles.graph.INode):void; + static $class:yfiles.lang.Class; + } + /** + * Allows the use of an {@link yfiles.styles.ILabelStyle} to render the selection, highlight or focus indicator of labels. + *

    + * The {@link yfiles.view.LabelStyleDecorationInstaller#zoomPolicy} property defines how the zoom level affects the rendering of the indicator. It can either scale according to the + * zoom level similar to regular graph items or have always to same thickness regardless of the zoom, similar to the + * default yFiles indicators. + *

    + * @see yfiles.view.EdgeStyleDecorationInstaller + * @see yfiles.view.NodeStyleDecorationInstaller + * @class + * @implements {yfiles.view.ISelectionIndicatorInstaller} + * @implements {yfiles.view.IHighlightIndicatorInstaller} + * @implements {yfiles.view.IFocusIndicatorInstaller} + */ + export interface LabelStyleDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} + export class LabelStyleDecorationInstaller { + /** + * Create a new instance of this class. + * @param {Object} [options=null] The parameters to pass. + * @param {yfiles.styles.ILabelStyle} options.labelStyle The style to use for the rendering. + *

    + * This option sets the {@link yfiles.view.LabelStyleDecorationInstaller#labelStyle} property on the created object. + *

    + * @param {yfiles.geometry.Insets} options.margins Specifies the margin around the label layout. + *

    + * This option sets the {@link yfiles.view.LabelStyleDecorationInstaller#margins} property on the created object. + *

    + * @param {yfiles.view.StyleDecorationZoomPolicy} options.zoomPolicy Specifies how the style is affected by the current zoom level. + *

    + * This option sets the {@link yfiles.view.LabelStyleDecorationInstaller#zoomPolicy} property on the created object. + *

    + */ + constructor(options?:{labelStyle?:yfiles.styles.ILabelStyle,margins?:yfiles.geometry.Insets,zoomPolicy?:yfiles.view.StyleDecorationZoomPolicy}); + /** + * Installs a rendering for the item if it is an {@link yfiles.graph.ILabel}. + * @param context The canvas context. + * @param group The canvas object group to add the newly created canvas object to. + * @param item The item to install. + * @returns The canvas object representing the item. + */ + addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; + /** + * Specifies how the style is affected by the current zoom level. + *

    + * Changes of the value of this property are propagated to all styles created by this instance and become immediately + * visible. + *

    + * @type {yfiles.view.StyleDecorationZoomPolicy} + */ + zoomPolicy:yfiles.view.StyleDecorationZoomPolicy; + /** + * Specifies the margin around the label layout. + *

    + * Actually, the bounds rendered by the style is the original label layout enlarged by this margin. + *

    + *

    + * Changes of the value of this property are propagated to all styles created by this instance and become immediately + * visible. + *

    + * @type {yfiles.geometry.Insets} + */ + margins:yfiles.geometry.Insets; + /** + * The style to use for the rendering. + *

    + * Changes of the value of this property are not propagated to already created styles. + *

    + * @type {yfiles.styles.ILabelStyle} + */ + labelStyle:yfiles.styles.ILabelStyle; + static $class:yfiles.lang.Class; + } + /** + * Allows the use of an {@link yfiles.styles.INodeStyle} to render the selection, highlight or focus indicator of nodes. + *

    + * The {@link yfiles.view.NodeStyleDecorationInstaller#zoomPolicy} property defines how the zoom level affects the rendering of the indicator. It can either scale according to the + * zoom level similar to regular graph items or have always to same thickness regardless of the zoom, similar to the + * default yFiles indicators. + *

    + * @see yfiles.view.EdgeStyleDecorationInstaller + * @see yfiles.view.LabelStyleDecorationInstaller + * @class + * @implements {yfiles.view.ISelectionIndicatorInstaller} + * @implements {yfiles.view.IHighlightIndicatorInstaller} + * @implements {yfiles.view.IFocusIndicatorInstaller} + */ + export interface NodeStyleDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} + export class NodeStyleDecorationInstaller { + /** + * Create a new instance of this class. + * @param {Object} [options=null] The parameters to pass. + * @param {yfiles.styles.INodeStyle} options.nodeStyle The style to use for the rendering. + *

    + * This option sets the {@link yfiles.view.NodeStyleDecorationInstaller#nodeStyle} property on the created object. + *

    + * @param {yfiles.geometry.Insets} options.margins Specifies the margin around the node layout. + *

    + * This option sets the {@link yfiles.view.NodeStyleDecorationInstaller#margins} property on the created object. + *

    + * @param {yfiles.view.StyleDecorationZoomPolicy} options.zoomPolicy Specifies how the style is affected by the current zoom level. + *

    + * This option sets the {@link yfiles.view.NodeStyleDecorationInstaller#zoomPolicy} property on the created object. + *

    + */ + constructor(options?:{nodeStyle?:yfiles.styles.INodeStyle,margins?:yfiles.geometry.Insets,zoomPolicy?:yfiles.view.StyleDecorationZoomPolicy}); + /** + * Installs a rendering for the item if it is an {@link yfiles.graph.INode}. + * @param context The canvas context. + * @param group The canvas object group to add the newly created canvas object to. + * @param item The item to install. + * @returns The canvas object representing the item. + */ + addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; + /** + * Specifies how the style is affected by the current zoom level. + *

    + * Changes of the value of this property are propagated to all styles created by this instance and become immediately + * visible. + *

    + * @type {yfiles.view.StyleDecorationZoomPolicy} + */ + zoomPolicy:yfiles.view.StyleDecorationZoomPolicy; + /** + * Specifies the margin around the node layout. + *

    + * Actually, the bounds rendered by the style is the original node layout enlarged by this margin. + *

    + *

    + * Changes of the value of this property are propagated to all styles created by this instance and become immediately + * visible. + *

    + * @type {yfiles.geometry.Insets} + */ + margins:yfiles.geometry.Insets; + /** + * The style to use for the rendering. + *

    + * Changes of the value of this property are not propagated to already created styles. + *

    + * @type {yfiles.styles.INodeStyle} + */ + nodeStyle:yfiles.styles.INodeStyle; + static $class:yfiles.lang.Class; + } + export enum StyleDecorationZoomPolicy{ + /** + * The visual is rendered in the view coordinate space and doesn't scale with the zoom level. + *

    + * This is similar to the default node resize handles, for example. + *

    + */ + VIEW_COORDINATES, + /** + * The visual is rendered in the world coordinate space and scales with the zoom level like a regular graph item + * visualization, for example a node style. + */ + WORLD_COORDINATES, + /** + * Uses WorldCoordinates rendering for zoom level >= 1 and ViewCoordinates rendering for zoom level < 1. + */ + MIXED } /** * Represents any object which fills an area. - * @class yfiles.view.Fill + * @class * @implements {yfiles.lang.ICloneable} */ export interface Fill extends Object,yfiles.lang.ICloneable{} @@ -15413,13 +15443,13 @@ declare namespace system{ * If this {@link yfiles.view.Fill} is a gradient and implements the {@link yfiles.view.ISvgDefsCreator} interface, it will be added to the * defs section of the SVG document. The fill of the given element will be set to a reference to the gradient element. *

    - * @param {SVGElement} element The element whose fill should be set. - * @param {yfiles.view.ICanvasContext} context The context. + * @param element The element whose fill should be set. + * @param context The context. */ applyTo(element:SVGElement,context:yfiles.view.ICanvasContext):void; /** * Clones this instance by returning a {@link Object#memberwiseClone} or this in case this instance is already {@link yfiles.view.Fill#isFrozen frozen}. - * @returns {Object} An instance of the same type as this instance. + * @returns An instance of the same type as this instance. */ clone():Object; /** @@ -15431,7 +15461,7 @@ declare namespace system{ freeze():void; /** * Determines if this instance is frozen. - * @returns {boolean} + * @returns */ isFrozen():boolean; /** @@ -16425,28 +16455,26 @@ declare namespace system{ } /** * Represents an ARGB (alpha, red, green, blue) encoded color object. - * @class yfiles.view.Color + * @class * @final */ export interface Color extends Object{} export class Color { /** * Initializes a new instance of the {@link yfiles.view.Color} class. - * @param {number} [a=255] The alpha value; 255 by default. - * @param {number} [r=0] The red value; 0 by default. - * @param {number} [g=0] The green value; 0 by default - * @param {number} [b=0] The blue value; 0 by default. - * @constructor + * @param [a=255] The alpha value; 255 by default. + * @param [r=0] The red value; 0 by default. + * @param [g=0] The green value; 0 by default + * @param [b=0] The blue value; 0 by default. */ constructor(r?:number,g?:number,b?:number,a?:number); /** * Initializes a new instance of the {@link yfiles.view.Color} class. * @param {Object} options The parameters to pass. - * @param {number} [options.a=255] The alpha value; 255 by default. - * @param {number} [options.r=0] The red value; 0 by default. - * @param {number} [options.g=0] The green value; 0 by default - * @param {number} [options.b=0] The blue value; 0 by default. - * @constructor + * @param [options.a=255] The alpha value; 255 by default. + * @param [options.r=0] The red value; 0 by default. + * @param [options.g=0] The green value; 0 by default + * @param [options.b=0] The blue value; 0 by default. */ constructor(options:{r?:number,g?:number,b?:number,a?:number}); /** @@ -16454,11 +16482,11 @@ declare namespace system{ *

    * All values must be between 0 and 255. *

    - * @param {number} a The alpha value. - * @param {number} r The red value. - * @param {number} g The green value. - * @param {number} b The blue value. - * @returns {yfiles.view.Color} A new color instance with the given values. + * @param a The alpha value. + * @param r The red value. + * @param g The green value. + * @param b The blue value. + * @returns A new color instance with the given values. * @static */ static fromArgb(a:number,r:number,g:number,b:number):yfiles.view.Color; @@ -17485,20 +17513,18 @@ declare namespace system{ } /** * - * @class yfiles.view.ColorExtension + * @class * @extends {yfiles.graphml.MarkupExtension} */ export interface ColorExtension extends yfiles.graphml.MarkupExtension{} export class ColorExtension { /** * - * @param {yfiles.view.Color} color - * @constructor + * @param color */ constructor(color:yfiles.view.Color); /** * - * @constructor */ constructor(); /** @@ -17510,21 +17536,20 @@ declare namespace system{ } /** * Represents a cursor object. - * @class yfiles.view.Cursor + * @class */ export interface Cursor extends Object{} export class Cursor { /** * Initializes a new {@link yfiles.view.Cursor} instance using the provided url and an alternative. - * @param {string} url The url should point to a file in the ".cur" format with a size of at most 32x32 pixels to ensure compatibility across + * @param url The url should point to a file in the ".cur" format with a size of at most 32x32 pixels to ensure compatibility across * browsers. - * @param {yfiles.view.Cursor} alternative Cursors can be chained but the last alternative needs to be one of the predefined cursors. - * @constructor + * @param alternative Cursors can be chained but the last alternative needs to be one of the predefined cursors. */ constructor(url:string,alternative:yfiles.view.Cursor); /** * Returns the CSS text representation for the cursor and its alternatives. - * @returns {string} The CSS text representation for the cursor. + * @returns The CSS text representation for the cursor. */ getSystemCursor():string; /** @@ -17805,6 +17830,95 @@ declare namespace system{ static GRABBING:yfiles.view.Cursor; static $class:yfiles.lang.Class; } + /** + * A container for {@link yfiles.view.DashStyle#dashes} and an {@link yfiles.view.DashStyle#offset}. + *

    + * All of these values are in terms of multiples of the the thickness of a + * {@link yfiles.view.Stroke}. This is different from the corresponding properties of a SVG stroke. + *

    + * @class + */ + export interface DashStyle extends Object{} + export class DashStyle { + /** + * Initializes a new instance of the {@link yfiles.view.DashStyle} class using the provided dashes and offset. + * @param dashes The dashes. + * @param offset The offset. + */ + constructor(dashes:number[],offset:number); + /** + * Initializes a new instance of the {@link yfiles.view.DashStyle} class using an empty {@link yfiles.view.DashStyle#dashes} and zero {@link yfiles.view.DashStyle#offset}. + */ + constructor(); + /** + * Clones this instance by returning a {@link Object#memberwiseClone} or this in case this instance is already {@link yfiles.view.DashStyle#isFrozen frozen}. + * @returns An instance of the same type as this instance. + */ + clone():Object; + /** + * Freezes this instance. + *

    + * Freezing an object makes it immutable, which can result in performance enhancements. + *

    + */ + freeze():void; + /** + * Determines if this instance is frozen. + * @returns + */ + isFrozen():boolean; + /** + * Gets or sets the dashes. + * @type {yfiles.collections.List.} + */ + dashes:yfiles.collections.List; + /** + * Gets or sets the offset. + * @type {number} + */ + offset:number; + /** + * Gets the dash style with a single dash. + *

    + * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and + * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't look as expected if its dash cap is {@link yfiles.view.LineCap#FLAT}. + * Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. + *

    + */ + static DASH:yfiles.view.DashStyle; + /** + * Gets the dash style with a single dash and dot. + *

    + * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and + * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't contain visible dots if its dash cap is + * {@link yfiles.view.LineCap#FLAT}. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. + *

    + */ + static DASH_DOT:yfiles.view.DashStyle; + /** + * Gets the dash style with a single dash and two dots. + *

    + * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and + * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't contain visible dots if its dash cap is + * {@link yfiles.view.LineCap#FLAT}. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. + *

    + */ + static DASH_DOT_DOT:yfiles.view.DashStyle; + /** + * Gets the dash style with a single dot. + *

    + * This style is designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and + * {@link yfiles.view.LineCap#ROUND}. A pen with this style doesn't contain visible dots if its dash cap is + * {@link yfiles.view.LineCap#FLAT}. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value. + *

    + */ + static DOT:yfiles.view.DashStyle; + /** + * Gets the solid dash style with no dashes. + */ + static SOLID:yfiles.view.DashStyle; + static $class:yfiles.lang.Class; + } /** * Template factory for creating visual representations of rectangular shaped objects. *

    @@ -17822,10 +17936,10 @@ declare namespace system{ * {@link yfiles.view.CanvasComponent} uses this interface through the {@link yfiles.view.ICanvasObjectDescriptor} to populate the visual * canvas object tree. *

    - * @param {yfiles.view.IRenderContext} context The context that describes where the visual will be used. - * @param {yfiles.geometry.Rect} bounds The initial bounds to use for the visual. - * @param {Object} dataObject The data object to visualize. - * @returns {yfiles.view.SvgVisual} The visual to include in the canvas object visual tree. This may be null. + * @param context The context that describes where the visual will be used. + * @param bounds The initial bounds to use for the visual. + * @param dataObject The data object to visualize. + * @returns The visual to include in the canvas object visual tree. This may be null. * @see yfiles.view.IVisualTemplate#updateVisual * @abstract */ @@ -17838,12 +17952,12 @@ declare namespace system{ * previously been created by the same instance during a call to {@link yfiles.view.IVisualTemplate#createVisual}. Implementation * may update the oldVisual and return that same reference, or create a new visual and return the new instance or null. *

    - * @param {yfiles.view.IRenderContext} context The context that describes where the visual will be used in. - * @param {yfiles.view.SvgVisual} oldVisual The visual instance that had been returned the last time the {@link yfiles.view.IVisualTemplate#createVisual} method was called + * @param context The context that describes where the visual will be used in. + * @param oldVisual The visual instance that had been returned the last time the {@link #createVisual} method was called * on this instance. - * @param {yfiles.geometry.Rect} bounds The initial bounds to use for the visual. - * @param {Object} dataObject The data object to visualize. - * @returns {yfiles.view.SvgVisual} oldVisual, if this instance modified the visual, or a new visual that should replace the existing one in the canvas + * @param bounds The initial bounds to use for the visual. + * @param dataObject The data object to visualize. + * @returns oldVisual, if this instance modified the visual, or a new visual that should replace the existing one in the canvas * object visual tree. * @abstract */ @@ -17853,6 +17967,51 @@ declare namespace system{ $class:yfiles.lang.Class; isInstance(o:Object):boolean; }; + /** + * The default implementation of a data object for the {@link yfiles.input.DropInputMode}. + * @class + * @final + */ + export interface DragDropItem extends Object{} + export class DragDropItem { + /** + * Initializes a new instance of the {@link yfiles.view.DragDropItem} class and sets the provided data item for the specified + * format. + * @param [format=null] The format. + * @param [data=null] The data item. + * @see yfiles.view.DragDropItem#setData + */ + constructor(format?:string,data?:Object); + /** + * Initializes a new instance of the {@link yfiles.view.DragDropItem} class and sets the provided data item for the specified + * format. + * @param {Object} options The parameters to pass. + * @param [options.format=null] The format. + * @param [options.data=null] The data item. + * @see yfiles.view.DragDropItem#setData + */ + constructor(options:{format?:string,data?:Object}); + /** + * Gets the data item for the given format. + * @param format The format. + * @returns The data item that is stored for this format, or null if no such item exists. + * @see yfiles.view.DragDropItem#setData + */ + getData(format:string):Object; + /** + * Sets the data item for the given format. + * @param format The format. + * @param data The data item. + * @see yfiles.view.DragDropItem#getData + */ + setData(format:string,data:Object):void; + /** + * Gets the types of the data items stored in this instance. + * @type {Array.} + */ + types:string[]; + static $class:yfiles.lang.Class; + } export enum DragDropEffects{ /** * Indicates that the drop target cannot be used for dropping the data. @@ -17894,15 +18053,15 @@ declare namespace system{ /** * The event argument that will be used by {@link yfiles.view.DropTarget} to notify handlers of the various events during a drag * and drop operation. - * @class yfiles.view.DragEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface DragEventArgs extends yfiles.lang.EventArgs{} export class DragEventArgs { /** * Gets the position of the current drag operation in the coordinates system of the provided element. - * @param {HTMLElement} element The element for which the coordinates should be used. - * @returns {yfiles.geometry.Point} The position in the coordinates system of element + * @param element The element for which the coordinates should be used. + * @returns The position in the coordinates system of element */ getPosition(element:HTMLElement):yfiles.geometry.Point; /** @@ -17955,29 +18114,52 @@ declare namespace system{ } /** * Specifies the properties of a transition point of a gradient. - * @class yfiles.view.GradientStop + * @class * @implements {yfiles.lang.ICloneable} */ export interface GradientStop extends Object,yfiles.lang.ICloneable{} export class GradientStop { /** - * Creates a new transition point of a gradient. - * @param {yfiles.view.Color} [color=null] - * @param {number} [offset=0] - * @constructor + * Creates a new transition point of a gradient with the given rgba values and offset. + *

    + * The rgba values must be between 0 and 255. + *

    + * @param r The red value. + * @param g The green value. + * @param b The blue value. + * @param [a=255] The alpha value, 255 by default. + * @param [offset=0] The offset, 0 by default. + */ + constructor(r:number,g:number,b:number,a?:number,offset?:number); + /** + * Creates a new transition point of a gradient with the given rgba values and offset. + *

    + * The rgba values must be between 0 and 255. + *

    + * @param {Object} options The parameters to pass. + * @param options.r The red value. + * @param options.g The green value. + * @param options.b The blue value. + * @param [options.a=255] The alpha value, 255 by default. + * @param [options.offset=0] The offset, 0 by default. + */ + constructor(options:{r:number,g:number,b:number,a?:number,offset?:number}); + /** + * Creates a new transition point of a gradient with the given color and offset. + * @param [color=null] The stop's color. + * @param [offset=0] The offset. */ constructor(color?:yfiles.view.Color,offset?:number); /** - * Creates a new transition point of a gradient. + * Creates a new transition point of a gradient with the given color and offset. * @param {Object} options The parameters to pass. - * @param {yfiles.view.Color} [options.color=null] - * @param {number} [options.offset=0] - * @constructor + * @param [options.color=null] The stop's color. + * @param [options.offset=0] The offset. */ constructor(options:{color?:yfiles.view.Color,offset?:number}); /** * Clones this instance by returning a {@link Object#memberwiseClone} or this in case this instance is already {@link yfiles.view.GradientStop#isFrozen frozen}. - * @returns {Object} An instance of the same type as this instance. + * @returns An instance of the same type as this instance. */ clone():Object; /** @@ -17989,7 +18171,7 @@ declare namespace system{ freeze():void; /** * Determines if this instance is frozen. - * @returns {boolean} + * @returns */ isFrozen():boolean; /** @@ -18021,24 +18203,24 @@ declare namespace system{ export interface ISvgDefsCreator extends Object{ /** * Checks if the specified node references the element represented by this object. - * @param {yfiles.view.ICanvasContext} context The current canvas context. - * @param {Node} node The SVG node. - * @param {string} id The defs id that has been stored for this instance by the provided context. - * @returns {boolean} true if node references the element represented by this instance. + * @param context The current canvas context. + * @param node The SVG node. + * @param id The defs id that has been stored for this instance by the provided context. + * @returns true if node references the element represented by this instance. * @abstract */ accept(context:yfiles.view.ICanvasContext,node:Node,id:string):boolean; /** * Creates the element that is put into the defs section of the SVG element. - * @param {yfiles.view.ICanvasContext} context The canvas context that can be used to register brushes etc. - * @returns {SVGElement} An {@link SVGElement} that can be put into the defs section of the SVG element. + * @param context The canvas context that can be used to register brushes etc. + * @returns An {@link } that can be put into the defs section of the SVG element. * @abstract */ createDefsElement(context:yfiles.view.ICanvasContext):SVGElement; /** * Updates the defs element with the current gradient data. - * @param {yfiles.view.ICanvasContext} context - * @param {SVGElement} oldElement + * @param context + * @param oldElement * @abstract */ updateDefsElement(context:yfiles.view.ICanvasContext,oldElement:SVGElement):void; @@ -18046,18 +18228,18 @@ declare namespace system{ var ISvgDefsCreator:{ /** * Determine whether the given element has an attribute with the given name that references the id in the defs element. - * @param {Element} element The element to inspect - * @param {string} attributeName The attribute to check - * @param {string} defsId The id in the defs section - * @returns {boolean} Whether the attribute is equal to "url(#{defsId})" + * @param element The element to inspect + * @param attributeName The attribute to check + * @param defsId The id in the defs section + * @returns Whether the attribute is equal to "url(#{defsId})" * @static */ isAttributeReference?(element:Element,attributeName:string,defsId:string):boolean; /** * Determines whether the specified element is an SVG use element that references the given id. - * @param {Node} element The element to inspect. - * @param {string} defsId The id of the element in the defs section. - * @returns {boolean} true if the specified element references the element; otherwise, false. + * @param element The element to inspect. + * @param defsId The id of the element in the defs section. + * @returns true if the specified element references the element; otherwise, false. * @static */ isUseReference?(element:Node,defsId:string):boolean; @@ -18195,17 +18377,16 @@ declare namespace system{ } /** * A wrapper for the native keyboard event which abstracts away incompatibilities in browser implementations. - * @class yfiles.view.KeyEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface KeyEventArgs extends yfiles.lang.EventArgs{} export class KeyEventArgs { /** * Creates a new instance of this class from a native keyboard event. - * @param {KeyboardEvent} evt The native keyboard event. - * @param {boolean} isPrintable if set to true [is printable]. - * @param {yfiles.view.KeyEventType} type The type of the event. - * @constructor + * @param evt The native keyboard event. + * @param isPrintable if set to true [is printable]. + * @param type The type of the event. */ constructor(evt:KeyboardEvent,isPrintable:boolean,type:yfiles.view.KeyEventType); /** @@ -18280,7 +18461,7 @@ declare namespace system{ } /** * Fills an area with a linear gradient. - * @class yfiles.view.LinearGradient + * @class * @extends {yfiles.view.Fill} * @implements {yfiles.view.ISvgDefsCreator} */ @@ -18289,7 +18470,7 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.view.LinearGradient} class. * @param {Object} [options=null] The parameters to pass. - * @param options.gradientStops An array of {@link yfiles.view.GradientStop}s. Each item will be added to the {@link yfiles.view.LinearGradient#gradientStops} collection. + * @param options.gradientStops An array of {@link }s. Each item will be added to the {@link #gradientStops} collection. * @param {yfiles.geometry.Point} options.startPoint The start point of this gradient. *

    * This option sets the {@link yfiles.view.LinearGradient#startPoint} property on the created object. @@ -18302,38 +18483,37 @@ declare namespace system{ *

    * This option sets the {@link yfiles.view.LinearGradient#spreadMethod} property on the created object. *

    - * @constructor */ constructor(options?:{startPoint?:yfiles.geometry.Point,endPoint?:yfiles.geometry.Point,spreadMethod?:yfiles.view.GradientSpreadMethod,gradientStops?:Array}); /** * - * @param {yfiles.view.ICanvasContext} context - * @param {Node} item - * @param {string} id - * @returns {boolean} + * @param context + * @param item + * @param id + * @returns */ accept(context:yfiles.view.ICanvasContext,item:Node,id:string):boolean; /** * Creates a new SVG gradient that corresponds to this gradient brush. - * @param {yfiles.view.ICanvasContext} context - * @returns {SVGElement} A new SVG gradient that corresponds to this gradient brush + * @param context + * @returns A new SVG gradient that corresponds to this gradient brush */ createDefsElement(context:yfiles.view.ICanvasContext):SVGElement; /** * Creates a new SVG gradient that corresponds to this gradient brush. - * @returns {SVGElement} A new SVG gradient that corresponds to this gradient brush + * @returns A new SVG gradient that corresponds to this gradient brush */ toSvgGradient():SVGElement; /** * Updates the SVG gradient within the defs section of the SVG document if it has changed. - * @param {yfiles.view.ICanvasContext} context The context. - * @param {SVGElement} oldElement The old element. + * @param context The context. + * @param oldElement The old element. */ updateDefsElement(context:yfiles.view.ICanvasContext,oldElement:SVGElement):void; /** * Updates the SVG gradient within the defs section of the SVG document if it has changed. - * @param {SVGElement} oldElement The old element. - * @param {yfiles.view.ICanvasContext} context The context. + * @param oldElement The old element. + * @param context The context. */ updateSvgGradient(oldElement:SVGElement,context:yfiles.view.ICanvasContext):void; /** @@ -18382,7 +18562,7 @@ declare namespace system{ } /** * Fills an area with a SVG pattern. - * @class yfiles.view.PatternFill + * @class * @extends {yfiles.view.Fill} * @implements {yfiles.view.ISvgDefsCreator} */ @@ -18390,27 +18570,26 @@ declare namespace system{ export class PatternFill { /** * Initializes a new instance of the {@link yfiles.view.PatternFill} class. - * @constructor */ constructor(); /** * - * @param {yfiles.view.ICanvasContext} context - * @param {Node} node - * @param {string} id - * @returns {boolean} + * @param context + * @param node + * @param id + * @returns */ accept(context:yfiles.view.ICanvasContext,node:Node,id:string):boolean; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {SVGElement} + * @param context + * @returns */ createDefsElement(context:yfiles.view.ICanvasContext):SVGElement; /** * - * @param {yfiles.view.ICanvasContext} context - * @param {SVGElement} oldElement + * @param context + * @param oldElement */ updateDefsElement(context:yfiles.view.ICanvasContext,oldElement:SVGElement):void; /** @@ -18435,6 +18614,723 @@ declare namespace system{ size:yfiles.geometry.Size; static $class:yfiles.lang.Class; } + /** + * A utility class that holds all properties of a {@link yfiles.view.Stroke}. + * @class + * @implements {yfiles.lang.ICloneable} + * @final + */ + export interface Stroke extends Object,yfiles.lang.ICloneable{} + export class Stroke { + /** + * Initializes a new instance of the {@link yfiles.view.Stroke} class using the given rgba values and thickness. + *

    + * The rgba values must be between 0 and 255. + *

    + * @param r The red value. + * @param g The green value. + * @param b The blue value. + * @param [a=255] The alpha value, 255 by default. + * @param [thickness=1.0] The thickness, 1 by default. + */ + constructor(r:number,g:number,b:number,a?:number,thickness?:number); + /** + * Initializes a new instance of the {@link yfiles.view.Stroke} class using the given rgba values and thickness. + *

    + * The rgba values must be between 0 and 255. + *

    + * @param {Object} options The parameters to pass. + * @param options.r The red value. + * @param options.g The green value. + * @param options.b The blue value. + * @param [options.a=255] The alpha value, 255 by default. + * @param [options.thickness=1.0] The thickness, 1 by default. + * @param {yfiles.view.LineCap} options.lineCap The dash cap. + *

    + * This option sets the {@link yfiles.view.Stroke#lineCap} property on the created object. + *

    + * @param {yfiles.view.DashStyle} options.dashStyle The dash style for the {@link yfiles.view.Stroke}. + *

    + * This option sets the {@link yfiles.view.Stroke#dashStyle} property on the created object. + *

    + * @param {yfiles.view.LineJoin} options.lineJoin The line join property. + *

    + * This option sets the {@link yfiles.view.Stroke#lineJoin} property on the created object. + *

    + * @param {number} options.miterLimit The miter limit. + *

    + * This option sets the {@link yfiles.view.Stroke#miterLimit} property on the created object. + *

    + */ + constructor(options:{r:number,g:number,b:number,a?:number,thickness?:number,lineCap?:yfiles.view.LineCap,dashStyle?:yfiles.view.DashStyle,lineJoin?:yfiles.view.LineJoin,miterLimit?:number}); + /** + * Initializes a new instance of the {@link yfiles.view.Stroke} class using the given brush and thickness. + * @param [fill=null] The brush. + * @param [thickness=1.0] The thickness. + */ + constructor(fill?:yfiles.view.Fill,thickness?:number); + /** + * Initializes a new instance of the {@link yfiles.view.Stroke} class using the given brush and thickness. + * @param {Object} options The parameters to pass. + * @param [options.fill=null] The brush. + * @param [options.thickness=1.0] The thickness. + * @param {yfiles.view.LineCap} options.lineCap The dash cap. + *

    + * This option sets the {@link yfiles.view.Stroke#lineCap} property on the created object. + *

    + * @param {yfiles.view.DashStyle} options.dashStyle The dash style for the {@link yfiles.view.Stroke}. + *

    + * This option sets the {@link yfiles.view.Stroke#dashStyle} property on the created object. + *

    + * @param {yfiles.view.LineJoin} options.lineJoin The line join property. + *

    + * This option sets the {@link yfiles.view.Stroke#lineJoin} property on the created object. + *

    + * @param {number} options.miterLimit The miter limit. + *

    + * This option sets the {@link yfiles.view.Stroke#miterLimit} property on the created object. + *

    + */ + constructor(options:{fill?:yfiles.view.Fill,thickness?:number,lineCap?:yfiles.view.LineCap,dashStyle?:yfiles.view.DashStyle,lineJoin?:yfiles.view.LineJoin,miterLimit?:number}); + /** + * Assigns the stroke defined by this instance to the given element. + * @param element The element whose stroke should be set. + * @param context The context. + */ + applyTo(element:SVGElement,context:yfiles.view.ICanvasContext):void; + /** + * Clones this instance by returning a {@link Object#memberwiseClone} or this in case this instance is already {@link yfiles.view.Stroke#isFrozen frozen}. + * @returns An instance of the same type as this instance. + */ + clone():Object; + /** + * Clones the current value of this instance to a new unfrozen {@link yfiles.view.Stroke}. + * @returns + */ + cloneCurrentValue():yfiles.view.Stroke; + /** + * Freezes this instance. + *

    + * Freezing an object makes it immutable, which can result in performance enhancements. + *

    + */ + freeze():void; + /** + * Determines if this instance is frozen. + * @returns + */ + isFrozen():boolean; + /** + * Gets or sets the brush for the {@link yfiles.view.Stroke}. + * @default 'Black' + * @type {yfiles.view.Fill} + */ + fill:yfiles.view.Fill; + /** + * Gets or sets the dash cap. + * @default yfiles.view.LineCap.FLAT + * @type {yfiles.view.LineCap} + */ + lineCap:yfiles.view.LineCap; + /** + * Gets or sets the line join property. + * @default yfiles.view.LineJoin.MITER + * @type {yfiles.view.LineJoin} + */ + lineJoin:yfiles.view.LineJoin; + /** + * Gets or sets the dash style for the {@link yfiles.view.Stroke}. + *

    + * The visual appearance of the 'dashes' and 'gaps' specified by this property depends on the value of the property {@link yfiles.view.Stroke#lineCap}, too. + *

    + *

    + * The predefined dash styles are designed for dash caps that extend into the 'gaps' like {@link yfiles.view.LineCap#SQUARE} and + * {@link yfiles.view.LineCap#ROUND}. With {@link yfiles.view.LineCap#FLAT}, the dashes might not look like expected, for example {@link yfiles.view.DashStyle#DOT} will not + * be visible at all. Since {@link yfiles.view.LineCap#FLAT} is the default value, you should explicitly set another value in this + * case. + *

    + * @default 'Solid' + * @type {yfiles.view.DashStyle} + */ + dashStyle:yfiles.view.DashStyle; + /** + * Gets or sets the miter limit. + * @default 10.0 + * @type {number} + */ + miterLimit:number; + /** + * Gets or sets the thickness of the stroke. + * @default 1.0 + * @type {number} + */ + thickness:number; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ALICE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static ALICE_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ANTIQUE_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static ANTIQUE_WHITE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#AQUA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static AQUA:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#AQUAMARINE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static AQUAMARINE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#AZURE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static AZURE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BEIGE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BEIGE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BISQUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BISQUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLACK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BLACK:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLANCHED_ALMOND} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BLANCHED_ALMOND:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BLUE_VIOLET} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BLUE_VIOLET:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BROWN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#BURLY_WOOD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static BURLY_WOOD:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CADET_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CADET_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CHARTREUSE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CHARTREUSE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CHOCOLATE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CHOCOLATE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CORAL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CORAL:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CORNFLOWER_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CORNFLOWER_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CORNSILK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CORNSILK:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CRIMSON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CRIMSON:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#CYAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static CYAN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_CYAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_CYAN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_GOLDENROD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_GOLDENROD:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_GRAY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_KHAKI} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_KHAKI:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_MAGENTA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_MAGENTA:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_OLIVE_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_OLIVE_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_ORANGE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_ORANGE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_ORCHID} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_ORCHID:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_RED:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SALMON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_SALMON:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_SEA_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SLATE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_SLATE_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_SLATE_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_SLATE_GRAY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_TURQUOISE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DARK_VIOLET} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DARK_VIOLET:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DEEP_PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DEEP_PINK:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DEEP_SKY_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DEEP_SKY_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DIM_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DIM_GRAY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#DODGER_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static DODGER_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FIREBRICK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static FIREBRICK:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FLORAL_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static FLORAL_WHITE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FOREST_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static FOREST_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#FUCHSIA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static FUCHSIA:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GAINSBORO} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static GAINSBORO:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GHOST_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static GHOST_WHITE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GOLD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static GOLD:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GOLDENROD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static GOLDENROD:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static GRAY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#GREEN_YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static GREEN_YELLOW:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#HONEYDEW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static HONEYDEW:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#HOT_PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static HOT_PINK:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#INDIAN_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static INDIAN_RED:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#INDIGO} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static INDIGO:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#IVORY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static IVORY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#KHAKI} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static KHAKI:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LAVENDER} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LAVENDER:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LAVENDER_BLUSH} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LAVENDER_BLUSH:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LAWN_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LAWN_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LEMON_CHIFFON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LEMON_CHIFFON:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_CORAL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_CORAL:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_CYAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_CYAN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_GOLDENROD_YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_GOLDENROD_YELLOW:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_GRAY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_PINK:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SALMON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_SALMON:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_SEA_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SKY_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_SKY_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_SLATE_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_SLATE_GRAY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_STEEL_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_STEEL_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIGHT_YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIGHT_YELLOW:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIME} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIME:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LIME_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LIME_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#LINEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static LINEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MAGENTA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MAGENTA:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MAROON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MAROON:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_AQUAMARINE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_AQUAMARINE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_ORCHID} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_ORCHID:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_PURPLE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_PURPLE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_SEA_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_SLATE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_SLATE_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_SPRING_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_SPRING_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_TURQUOISE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MEDIUM_VIOLET_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MEDIUM_VIOLET_RED:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MIDNIGHT_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MIDNIGHT_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MINT_CREAM} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MINT_CREAM:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MISTY_ROSE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MISTY_ROSE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#MOCCASIN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static MOCCASIN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#NAVAJO_WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static NAVAJO_WHITE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#NAVY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static NAVY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#OLD_LACE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static OLD_LACE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#OLIVE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static OLIVE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#OLIVE_DRAB} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static OLIVE_DRAB:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ORANGE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static ORANGE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ORANGE_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static ORANGE_RED:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ORCHID} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static ORCHID:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_GOLDENROD} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PALE_GOLDENROD:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PALE_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PALE_TURQUOISE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PALE_VIOLET_RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PALE_VIOLET_RED:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PAPAYA_WHIP} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PAPAYA_WHIP:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PEACH_PUFF} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PEACH_PUFF:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PERU} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PERU:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PINK} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PINK:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PLUM} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PLUM:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#POWDER_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static POWDER_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#PURPLE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static PURPLE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#RED} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static RED:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ROSY_BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static ROSY_BROWN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#ROYAL_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static ROYAL_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SADDLE_BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SADDLE_BROWN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SALMON} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SALMON:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SANDY_BROWN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SANDY_BROWN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SEA_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SEA_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SEA_SHELL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SEA_SHELL:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SIENNA} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SIENNA:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SILVER} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SILVER:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SKY_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SKY_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SLATE_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SLATE_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SLATE_GRAY} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SLATE_GRAY:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SNOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SNOW:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#SPRING_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static SPRING_GREEN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#STEEL_BLUE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static STEEL_BLUE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TAN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static TAN:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TEAL} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static TEAL:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#THISTLE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static THISTLE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TOMATO} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static TOMATO:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TRANSPARENT} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static TRANSPARENT:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#TURQUOISE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static TURQUOISE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#VIOLET} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static VIOLET:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#WHEAT} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static WHEAT:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#WHITE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static WHITE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#WHITE_SMOKE} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static WHITE_SMOKE:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#YELLOW} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static YELLOW:yfiles.view.Stroke; + /** + * Gets a {@link yfiles.view.Stroke#isFrozen frozen} {@link yfiles.view.Stroke} that uses {@link yfiles.view.Fill#YELLOW_GREEN} as its {@link yfiles.view.Stroke#fill} and has a {@link yfiles.view.Stroke#thickness} of 1. + */ + static YELLOW_GREEN:yfiles.view.Stroke; + static $class:yfiles.lang.Class; + } export enum LineCap{ /** * Indicates that the line cap of a {@link yfiles.view.Stroke} should be squared. @@ -18465,7 +19361,7 @@ declare namespace system{ } /** * Fills an area with a radial gradient. - * @class yfiles.view.RadialGradient + * @class * @extends {yfiles.view.Fill} * @implements {yfiles.view.ISvgDefsCreator} */ @@ -18474,7 +19370,7 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.view.RadialGradient} class. * @param {Object} [options=null] The parameters to pass. - * @param options.gradientStops An array of {@link yfiles.view.GradientStop}s. Each item will be added to the {@link yfiles.view.RadialGradient#gradientStops} collection. + * @param options.gradientStops An array of {@link }s. Each item will be added to the {@link #gradientStops} collection. * @param {yfiles.geometry.Point} options.center The center of this radial gradient. *

    * This option sets the {@link yfiles.view.RadialGradient#center} property on the created object. @@ -18495,38 +19391,37 @@ declare namespace system{ *

    * This option sets the {@link yfiles.view.RadialGradient#gradientOrigin} property on the created object. *

    - * @constructor */ constructor(options?:{center?:yfiles.geometry.Point,radiusX?:number,radiusY?:number,spreadMethod?:yfiles.view.GradientSpreadMethod,gradientOrigin?:yfiles.geometry.Point,gradientStops?:Array}); /** * - * @param {yfiles.view.ICanvasContext} context - * @param {Node} item - * @param {string} id - * @returns {boolean} + * @param context + * @param item + * @param id + * @returns */ accept(context:yfiles.view.ICanvasContext,item:Node,id:string):boolean; /** * Creates a new SVG gradient that corresponds to this gradient brush. - * @param {yfiles.view.ICanvasContext} context - * @returns {SVGElement} A new SVG gradient that corresponds to this gradient brush + * @param context + * @returns A new SVG gradient that corresponds to this gradient brush */ createDefsElement(context:yfiles.view.ICanvasContext):SVGElement; /** * Creates a new SVG gradient that corresponds to this gradient brush. - * @returns {SVGElement} A new SVG gradient that corresponds to this gradient brush + * @returns A new SVG gradient that corresponds to this gradient brush */ toSvgGradient():SVGElement; /** * Updates the SVG gradient within the defs section of the SVG document if it has changed. - * @param {yfiles.view.ICanvasContext} context The context. - * @param {SVGElement} oldElement The old element. + * @param context The context. + * @param oldElement The old element. */ updateDefsElement(context:yfiles.view.ICanvasContext,oldElement:SVGElement):void; /** * Updates the SVG gradient within the defs section of the SVG document if it has changed. - * @param {SVGElement} oldElement The old element. - * @param {yfiles.view.ICanvasContext} context The context. + * @param oldElement The old element. + * @param context The context. */ updateSvgGradient(oldElement:SVGElement,context:yfiles.view.ICanvasContext):void; /** @@ -18570,7 +19465,7 @@ declare namespace system{ * of visuals can be used at the top-level of a {@link yfiles.view.CanvasComponent}'s {@link yfiles.view.ICanvasObject}s, only. *

    * @see yfiles.view.HtmlCanvasVisual#paint - * @class yfiles.view.HtmlCanvasVisual + * @class * @extends {yfiles.view.Visual} */ export interface HtmlCanvasVisual extends yfiles.view.Visual{} @@ -18582,8 +19477,8 @@ declare namespace system{ * Implementations should not destroy the context's state, but should make sure to restore the state to the previously * active state. This is especially true for the transformation and clip. *

    - * @param {yfiles.view.IRenderContext} renderContext The render context of the {@link yfiles.view.CanvasComponent} - * @param {CanvasRenderingContext2D} ctx The HTML5 Canvas context to use for rendering. + * @param renderContext The render context of the {@link } + * @param ctx The HTML5 Canvas context to use for rendering. * @abstract */ paint(renderContext:yfiles.view.IRenderContext,ctx:CanvasRenderingContext2D):void; @@ -18610,17 +19505,27 @@ declare namespace system{ } /** * Fills an area with a specified solid color. - * @class yfiles.view.SolidColorFill + * @class * @extends {yfiles.view.Fill} */ export interface SolidColorFill extends yfiles.view.Fill{} export class SolidColorFill { /** - * Initializes a new instance of the {@link yfiles.view.SolidColorFill} class with the specified color. - * @param {yfiles.view.Color} color The solid color with which the area is filled. - * @constructor + * Initializes a new instance of the {@link yfiles.view.SolidColorFill} class with the specified rgba values. + *

    + * All values must be between 0 and 255. + *

    + * @param r The red value. + * @param g The green value. + * @param b The blue value. + * @param [a=255] The alpha value, 255 by default. */ - constructor(color:yfiles.view.Color); + constructor(r:number,g:number,b:number,a?:number); + /** + * Initializes a new instance of the {@link yfiles.view.SolidColorFill} class with the specified color. + * @param [color=null] The solid color with which the area is filled. + */ + constructor(color?:yfiles.view.Color); /** * Gets the solid color with which the area is filled. * @type {yfiles.view.Color} @@ -18630,15 +19535,14 @@ declare namespace system{ } /** * Wraps a {@link SVGElement} as {@link yfiles.view.Visual}. - * @class yfiles.view.SvgVisual + * @class * @extends {yfiles.view.Visual} */ export interface SvgVisual extends yfiles.view.Visual{} export class SvgVisual { /** * Initializes a new instance of the {@link yfiles.view.SvgVisual} class which wraps the specified SVG element. - * @param {SVGElement} element The SVG element which this object wraps. - * @constructor + * @param element The SVG element which this object wraps. */ constructor(element:SVGElement); /** @@ -18647,9 +19551,9 @@ declare namespace system{ * This implementation uses caching and the baseVal property of the transform attribute if possible and thus performs * better than using the plain DOM API. *

    - * @param {Element} transformable The SVG element that should be translated. - * @param {number} scaleX The vertical scale. - * @param {number} scaleY The horizontal scale. + * @param transformable The SVG element that should be translated. + * @param scaleX The vertical scale. + * @param scaleY The horizontal scale. * @static */ static setScale(transformable:Element,scaleX:number,scaleY:number):void; @@ -18659,9 +19563,9 @@ declare namespace system{ * This implementation uses caching and the baseVal property of the transform attribute if possible and thus performs * better than using the plain DOM API. *

    - * @param {Element} transformable The SVG element that should be translated. - * @param {number} dx The offset on the x-axis. - * @param {number} dy The offset on the y-axis. + * @param transformable The SVG element that should be translated. + * @param dx The offset on the x-axis. + * @param dy The offset on the y-axis. * @static */ static setTranslate(transformable:Element,dx:number,dy:number):void; @@ -18736,7 +19640,7 @@ declare namespace system{ */ CHARACTER, /** - * The text could be wrapped and clipped after any character. An ellipsis is added to indicate clipped text. + * The text could be wrapped and clipped after any character and an ellipsis is added to indicate clipped text. */ CHARACTER_ELLIPSIS, /** @@ -18744,13 +19648,13 @@ declare namespace system{ */ WORD, /** - * The text could be wrapped and clipped at word boundaries. An ellipsis is added to indicate trimmed text. + * The text could be wrapped and clipped at word boundaries and an ellipsis is added to indicate trimmed text. */ WORD_ELLIPSIS } /** * Displays a string or any HTML element as tool tip. - * @class yfiles.view.ToolTip + * @class */ export interface ToolTip extends Object{} export class ToolTip { @@ -18759,7 +19663,6 @@ declare namespace system{ *

    * This implementation calls {@link yfiles.view.ToolTip#createToolTip} to create the HTML element to display as tool tip. *

    - * @constructor */ constructor(); /** @@ -18767,7 +19670,7 @@ declare namespace system{ *

    * This implementation creates a simple HTML div element with the CSS class yfiles-tooltip. *

    - * @returns {HTMLDivElement} A HTML div element. + * @returns A HTML div element. * @protected */ createToolTip():HTMLDivElement; @@ -18780,8 +19683,8 @@ declare namespace system{ * Subclasses which intend to use a more complex element as tool tip have to override this method to set the content * properly. *

    - * @param {Object} oldContent The content to remove. - * @param {Object} newContent The content to add. + * @param oldContent The content to remove. + * @param newContent The content to add. * @protected */ onContentChanged(oldContent:Object,newContent:Object):void; @@ -18811,7 +19714,10 @@ declare namespace system{ */ desiredSize:yfiles.geometry.Size; /** - * Gets or sets the content. + * Gets or sets the content of this tooltip. + *

    + * The content can be either a string or any HTML element. + *

    *

    * This setter invokes the method {@link yfiles.view.ToolTip#onContentChanged} if the content is changed. *

    @@ -18820,6 +19726,131 @@ declare namespace system{ content:Object; static $class:yfiles.lang.Class; } + /** + * Describes a font, with size, family, style, weight and line spacing. + * @class + */ + export interface Font extends Object{} + export class Font { + /** + * Initializes a new instance of the {@link yfiles.view.Font} class with size 10, "Arial" family, normal weight and style and line + * spacing 0.5, or the given values. + * @param [fontFamily=null] + * @param [fontSize=10] + * @param [fontStyle=null] + * @param [fontWeight=null] + * @param [lineSpacing=0.5] + * @param [textDecoration=null] + * @see yfiles.view.Font#createCopy + */ + constructor(fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration); + /** + * Initializes a new instance of the {@link yfiles.view.Font} class with size 10, "Arial" family, normal weight and style and line + * spacing 0.5, or the given values. + * @param {Object} options The parameters to pass. + * @param [options.fontFamily=null] + * @param [options.fontSize=10] + * @param [options.fontStyle=null] + * @param [options.fontWeight=null] + * @param [options.lineSpacing=0.5] + * @param [options.textDecoration=null] + * @see yfiles.view.Font#createCopy + */ + constructor(options:{fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration}); + /** + * Assigns the text properties of this instance to the given text element. + * @param textElement The text element to assign set the {@link } on. + */ + applyTo(textElement:SVGTextElement):void; + /** + * Creates a copy with the values of this instance or optionally the explicitly specified values. + * @param [fontFamily=null] The font family to use for the copy. + * @param [fontSize=-1] The font size to use for the copy. + * @param [fontStyle=null] The font style to use for the copy. + * @param [fontWeight=null] The font weight to use for the copy. + * @param [lineSpacing=-1] The line spacing to use for the copy. + * @param [textDecoration=null] The text decoration to use for the copy. + * @returns A new {@link } instance. + */ + createCopy(fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration):yfiles.view.Font; + /** + * Creates a copy with the values of this instance or optionally the explicitly specified values. + * @param {Object} options The parameters to pass. + * @param [options.fontFamily=null] The font family to use for the copy. + * @param [options.fontSize=-1] The font size to use for the copy. + * @param [options.fontStyle=null] The font style to use for the copy. + * @param [options.fontWeight=null] The font weight to use for the copy. + * @param [options.lineSpacing=-1] The line spacing to use for the copy. + * @param [options.textDecoration=null] The text decoration to use for the copy. + * @returns A new {@link } instance. + */ + createCopy(options:{fontFamily?:string,fontSize?:number,fontStyle?:yfiles.view.FontStyle,fontWeight?:yfiles.view.FontWeight,lineSpacing?:number,textDecoration?:yfiles.view.TextDecoration}):yfiles.view.Font; + /** + * Gets the size of the font. + *

    + * The font size is interpreted as px. + *

    + * @default 10 + * @type {number} + */ + fontSize:number; + /** + * Gets or sets the font family. + * @default 'Arial' + * @type {string} + */ + fontFamily:string; + /** + * Gets or sets the font style. + * @default yfiles.view.FontStyle.NORMAL + * @type {yfiles.view.FontStyle} + */ + fontStyle:yfiles.view.FontStyle; + /** + * Gets or sets the font weight. + * @default yfiles.view.FontWeight.NORMAL + * @type {yfiles.view.FontWeight} + */ + fontWeight:yfiles.view.FontWeight; + /** + * Gets or sets the line spacing. + *

    + * The value is interpreted as parts of the line height. + *

    + * @default 0.5 + * @type {number} + */ + lineSpacing:number; + /** + * Gets or sets the text decoration. + * @default yfiles.view.TextDecoration.NONE + * @type {yfiles.view.TextDecoration} + */ + textDecoration:yfiles.view.TextDecoration; + static $class:yfiles.lang.Class; + } + export enum FontStyle{ + NORMAL, + ITALIC, + OBLIQUE, + INHERIT + } + export enum FontWeight{ + NORMAL, + BOLD, + BOLDER, + LIGHTER, + ITEM100, + ITEM200, + ITEM300, + ITEM400, + ITEM500, + ITEM600, + ITEM700, + ITEM800, + ITEM900, + INHERIT + } export enum VerticalTextAlignment{ /** * Indicates that the object should be placed in the center of another object. @@ -18838,1628 +19869,630 @@ declare namespace system{ * Base class for all objects that support drawing in the context of a {@link yfiles.view.CanvasComponent}. * @see yfiles.view.SvgVisual * @see yfiles.view.HtmlCanvasVisual - * @class yfiles.view.Visual + * @class */ export interface Visual extends Object{} export class Visual { static $class:yfiles.lang.Class; } - /** - * A component for displaying and editing an {@link yfiles.graph.IGraph}. - *

    - * This is a specialized {@link yfiles.view.CanvasComponent} that can hold, display, and edit an {@link yfiles.graph.IGraph} instance. It - * provides access to the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphComponent#selection} instances. - *

    - *

    - * This class has bindings for the following {@link yfiles.input.ICommand}s. - *

    - *
      - *
    • {@link yfiles.input.ICommand#FIT_GRAPH_BOUNDS} that invokes FitGraphBounds()
    • - *
    • {@link yfiles.input.ICommand#SET_CURRENT_ITEM} for setting the {@link yfiles.view.GraphComponent#currentItem}
    • - *
    • {@link yfiles.input.ICommand#ZOOM_TO_CURRENT_ITEM} for adjusting the {@link yfiles.view.CanvasComponent#viewport} to the {@link yfiles.view.GraphComponent#currentItem}
    • - *
    - *

    - * The {@link yfiles.input.ICommand#ZOOM_TO_CURRENT_ITEM} is enabled, if {@link yfiles.view.CanvasComponent#navigationCommandsEnabled} is true. - *

    - *

    - * The components that can be used to display and edit a model are discussed in the section - * {@link @DGUIDE_PREFIX@/view_graphcontrol.html The Component for Displaying Graphs}. - *

    - *

    Related demos:

    - *
      - *
    • Demo: GraphViewer, Demo.yFiles.Graph.Viewer
    • - *
    • Demo: SimpleEditorForm, Demo.yFiles.Graph.SimpleEditor
    • - *
    - * @class yfiles.view.GraphComponent - * @extends {yfiles.view.CanvasComponent} - */ - export interface GraphComponent extends yfiles.view.CanvasComponent{} - export class GraphComponent { + export enum MouseEventTypes{ /** - * Creates a new instance of {@link yfiles.view.GraphComponent} using the div element that is specified by the selector. - *

    - * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default - * values upon first access. Thus this instance can be used right away without any further initialization. - *

    - * @param {string} selector The CSS selector or id for an existing div element - * @constructor - */ - constructor(selector:string); - /** - * Creates a new instance of {@link yfiles.view.GraphComponent} using the div element that is specified by the selector. - *

    - * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default - * values upon first access. Thus this instance can be used right away without any further initialization. - *

    - * @param {Object} options The parameters to pass. - * @param {string} options.selector The CSS selector or id for an existing div element - * @param {yfiles.input.IInputMode} options.inputMode The single {@link yfiles.input.IInputMode} instance that shall be installed for this canvas. - *

    - * This option sets the {@link yfiles.view.CanvasComponent#inputMode} property on the created object. - *

    - * @param {yfiles.graph.IGraph} options.graph The graph that is displayed in this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#graph} property on the created object. - *

    - * @param {yfiles.graph.GraphClipboard} options.clipboard The {@link yfiles.graph.GraphClipboard} associated with this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#clipboard} property on the created object. - *

    - * @param {yfiles.view.IGraphSelection} options.selection The selection model that is used for this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#selection} property on the created object. - *

    - * @constructor - */ - constructor(options:{selector:string,inputMode?:yfiles.input.IInputMode,graph?:yfiles.graph.IGraph,clipboard?:yfiles.graph.GraphClipboard,selection?:yfiles.view.IGraphSelection}); - /** - * Creates a new instance of the {@link yfiles.view.GraphComponent} in the given div element. - *

    - * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default - * values upon first access. Thus this instance can be used right away without any further initialization. - *

    - * @param {HTMLDivElement} div The existing div element to use for rendering the canvas into. - * @constructor - */ - constructor(div:HTMLDivElement); - /** - * Creates a new instance of the {@link yfiles.view.GraphComponent} in the given div element. - *

    - * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default - * values upon first access. Thus this instance can be used right away without any further initialization. - *

    - * @param {Object} options The parameters to pass. - * @param {HTMLDivElement} options.div The existing div element to use for rendering the canvas into. - * @param {yfiles.input.IInputMode} options.inputMode The single {@link yfiles.input.IInputMode} instance that shall be installed for this canvas. - *

    - * This option sets the {@link yfiles.view.CanvasComponent#inputMode} property on the created object. - *

    - * @param {yfiles.graph.IGraph} options.graph The graph that is displayed in this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#graph} property on the created object. - *

    - * @param {yfiles.graph.GraphClipboard} options.clipboard The {@link yfiles.graph.GraphClipboard} associated with this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#clipboard} property on the created object. - *

    - * @param {yfiles.view.IGraphSelection} options.selection The selection model that is used for this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#selection} property on the created object. - *

    - * @constructor - */ - constructor(options:{div:HTMLDivElement,inputMode?:yfiles.input.IInputMode,graph?:yfiles.graph.IGraph,clipboard?:yfiles.graph.GraphClipboard,selection?:yfiles.view.IGraphSelection}); - /** - * Creates a new instance of the {@link yfiles.view.GraphComponent}. - *

    - * If the {@link yfiles.view.GraphComponent#graph} and {@link yfiles.view.GraphSelection} properties are not populated externally they will be initialized with default - * values upon first access. Thus this instance can be used right away without any further initialization. This constructor - * creates a new div element that needs to be manually added to the DOM. - *

    - * @param {Object} [options=null] The parameters to pass. - * @param {yfiles.input.IInputMode} options.inputMode The single {@link yfiles.input.IInputMode} instance that shall be installed for this canvas. - *

    - * This option sets the {@link yfiles.view.CanvasComponent#inputMode} property on the created object. - *

    - * @param {yfiles.graph.IGraph} options.graph The graph that is displayed in this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#graph} property on the created object. - *

    - * @param {yfiles.graph.GraphClipboard} options.clipboard The {@link yfiles.graph.GraphClipboard} associated with this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#clipboard} property on the created object. - *

    - * @param {yfiles.view.IGraphSelection} options.selection The selection model that is used for this control. - *

    - * This option sets the {@link yfiles.view.GraphComponent#selection} property on the created object. - *

    - * @constructor - */ - constructor(options?:{inputMode?:yfiles.input.IInputMode,graph?:yfiles.graph.IGraph,clipboard?:yfiles.graph.GraphClipboard,selection?:yfiles.view.IGraphSelection}); - /** - * Factory method for the FocusIndicatorManager property. - *

    - * This method will be called upon first access to the {@link yfiles.view.GraphComponent#focusIndicatorManager} property. - *

    - * @returns {yfiles.view.FocusIndicatorManager.} a new instance of FocusIndicatorManager - * @protected - */ - createFocusIndicatorManager():yfiles.view.FocusIndicatorManager; - /** - * Factory method for the Graph property. - *

    - * This method will be called upon first access to the {@link yfiles.view.GraphComponent#graph} property. - *

    - * @returns {yfiles.graph.IGraph} a new instance of {@link yfiles.graph.DefaultGraph} - * @protected - */ - createGraph():yfiles.graph.IGraph; - /** - * Creates the default instance to use if no custom instance has been set. - * @returns {yfiles.graph.GraphClipboard} A default {@link yfiles.graph.GraphClipboard} instance. - * @protected - */ - createGraphClipboard():yfiles.graph.GraphClipboard; - /** - * Factory method for the {@link yfiles.view.GraphComponent#graphModelManager} property. - *

    - * This method will be called upon first access to the {@link yfiles.view.GraphComponent#graphModelManager} property. - *

    - * @returns {yfiles.view.GraphModelManager} a new instance of GraphModelManager - * @protected - */ - createGraphModelManager():yfiles.view.GraphModelManager; - /** - * Factory method for the {@link yfiles.view.GraphComponent#highlightIndicatorManager} property. - *

    - * This method will be called upon first access to the {@link yfiles.view.GraphComponent#highlightIndicatorManager} property. - *

    - * @returns {yfiles.view.HighlightIndicatorManager.} a new instance of HighlightIndicatorManager - * @protected - */ - createHighlightIndicatorManager():yfiles.view.HighlightIndicatorManager; - /** - * Factory method for the Selection property. - *

    - * This method will be called upon first access to the {@link yfiles.view.GraphComponent#selection} property. - *

    - * @returns {yfiles.view.IGraphSelection} a new instance of {@link yfiles.view.GraphSelection} - * @protected - */ - createSelection():yfiles.view.IGraphSelection; - /** - * Factory method for the {@link yfiles.view.GraphComponent#selectionIndicatorManager} property. - *

    - * This method will be called upon first access to the {@link yfiles.view.GraphComponent#selectionIndicatorManager} property. - *

    - * @returns {yfiles.view.SelectionIndicatorManager.} a new instance of {@link yfiles.view.SelectionIndicatorManager.} - * @protected - */ - createSelectionIndicatorManager():yfiles.view.SelectionIndicatorManager; - /** - * {@link yfiles.view.CanvasComponent#updateContentRect Updates the content rectangle} for the {@link yfiles.view.CanvasComponent#contentGroup} considering the provided insets and - * {@link yfiles.view.CanvasComponent#fitContent adjusts the viewport to encompass the contents}. - * @param {yfiles.geometry.Insets} [insets=null] - */ - fitGraphBounds(insets?:yfiles.geometry.Insets):void; - /** - * Convenience method that runs a layouter on the graph of a given graph control and animates the transition. - *

    - * An event is called once the animation has finished. - *

    - *

    - * The implementation simply delegates to a properly configured instance of {@link yfiles.layout.LayoutExecutor}. In addition to - * the default configuration, it enables {@link yfiles.layout.LayoutExecutor#animateViewport}, {@link yfiles.layout.LayoutExecutor#easedAnimation}, and {@link yfiles.layout.LayoutExecutor#updateContentRect}. For more fine-grained control of the animation, use {@link yfiles.layout.LayoutExecutor} - * directly. - *

    - * @param {yfiles.layout.ILayoutAlgorithm} layout - * @param {yfiles.lang.TimeSpan} [morphDuration=null] - * @param {yfiles.layout.LayoutData} [layoutData=null] - * @returns {Promise.} - */ - morphLayout(layout:yfiles.layout.ILayoutAlgorithm,morphDuration?:yfiles.lang.TimeSpan,layoutData?:yfiles.layout.LayoutData):Promise; - /** - * Convenience method that runs a layouter on the graph of a given graph control and animates the transition. - *

    - * An event is called once the animation has finished. - *

    - *

    - * The implementation simply delegates to a properly configured instance of {@link yfiles.layout.LayoutExecutor}. In addition to - * the default configuration, it enables {@link yfiles.layout.LayoutExecutor#animateViewport}, {@link yfiles.layout.LayoutExecutor#easedAnimation}, and {@link yfiles.layout.LayoutExecutor#updateContentRect}. For more fine-grained control of the animation, use {@link yfiles.layout.LayoutExecutor} - * directly. - *

    - * @param {Object} options The parameters to pass. - * @param {yfiles.layout.ILayoutAlgorithm} options.layout - * @param {yfiles.lang.TimeSpan} [options.morphDuration=null] - * @param {yfiles.layout.LayoutData} [options.layoutData=null] - * @returns {Promise.} - */ - morphLayout(options:{layout:yfiles.layout.ILayoutAlgorithm,morphDuration?:yfiles.lang.TimeSpan,layoutData?:yfiles.layout.LayoutData}):Promise; - /** - * Gets or sets the 'current' item. - * @default null - * @type {yfiles.graph.IModelItem} - */ - currentItem:yfiles.graph.IModelItem; - /** - * Adds the given listener for the CurrentItemChanged event that occurs when the {@link yfiles.view.GraphComponent#currentItem} property has changed its value. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. - * @see yfiles.view.GraphComponent#removeCurrentItemChangedListener - */ - addCurrentItemChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Removes the given listener for the CurrentItemChanged event that occurs when the {@link yfiles.view.GraphComponent#currentItem} property has changed its value. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. - * @see yfiles.view.GraphComponent#addCurrentItemChangedListener - */ - removeCurrentItemChangedListener(listener:(sender:Object,evt:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Gets or sets the {@link yfiles.view.GraphComponent#selectionIndicatorManager} property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createSelectionIndicatorManager} - * will be called. - *

    - * @type {yfiles.view.SelectionIndicatorManager.} - */ - selectionIndicatorManager:yfiles.view.SelectionIndicatorManager; - /** - * Gets or sets the {@link yfiles.view.GraphComponent#highlightIndicatorManager} property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createHighlightIndicatorManager} - * will be called. - *

    - * @type {yfiles.view.HighlightIndicatorManager.} - */ - highlightIndicatorManager:yfiles.view.HighlightIndicatorManager; - /** - * Gets or sets the FocusIndicatorManager property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createFocusIndicatorManager} - * will be called. - *

    - * @type {yfiles.view.FocusIndicatorManager.} - */ - focusIndicatorManager:yfiles.view.FocusIndicatorManager; - /** - * Gets or sets the {@link yfiles.view.GraphComponent#graphModelManager} property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createGraphModelManager} - * will be called. - *

    - * @type {yfiles.view.GraphModelManager} - */ - graphModelManager:yfiles.view.GraphModelManager; - /** - * Gets or sets the graph that is displayed in this control. - *

    - * Normally the {@link yfiles.view.GraphSelection} property must be adjusted accordingly if the graph instance is replaced. Also - * depending on the {@link yfiles.input.IInputMode} implementation the instances used in this component might need to be replaced - * or adjusted, too. If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createGraph} - * will be called. - *

    - * @type {yfiles.graph.IGraph} - */ - graph:yfiles.graph.IGraph; - /** - * Adds the given listener for the GraphChanged event that occurs when the {@link yfiles.view.GraphComponent#graph} property has been changed. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.view.GraphComponent#removeGraphChangedListener - */ - addGraphChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GraphChanged event that occurs when the {@link yfiles.view.GraphComponent#graph} property has been changed. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.view.GraphComponent#addGraphChangedListener - */ - removeGraphChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Gets or sets the selection model that is used for this control. - *

    - * The selection model instance needs to be adjusted, normally if the {@link yfiles.view.GraphComponent#graph} instance is changed. If the field has not yet been - * initialized upon first access, the factory method {@link yfiles.view.GraphComponent#createSelection} will be called. - *

    - * @type {yfiles.view.IGraphSelection} - */ - selection:yfiles.view.IGraphSelection; - /** - * Gets or sets the {@link yfiles.graph.GraphClipboard} associated with this control. - *

    - * If no instance has been configured with this control, a default implementation will be used. - *

    - * @type {yfiles.graph.GraphClipboard} - */ - clipboard:yfiles.graph.GraphClipboard; - static $class:yfiles.lang.Class; - } - export enum DragDropKeyStates{ - /** - * The left mouse button is down or a touch gesture is in progress. - */ - POINTER_DOWN, - /** - * No button and no key is pressed. + * Not a mouse event. */ NONE, /** - * The shift key is down. + * The mouse has been moved. */ - SHIFT_KEY, + MOVE, /** - * The control key is down. + * The mouse has been dragged, which means it has been moved while at least one button has been pressed. */ - CONTROL_KEY, + DRAG, /** - * The alt key is down. + * A button has been pressed. */ - ALT_KEY + DOWN, + /** + * A button has been released. + *

    + * If there was no drag event since the last press event, this will result in a click. + *

    + */ + UP, + /** + * The mouse has entered the control's bounds. + */ + ENTER, + /** + * The mouse has exited the control's bounds. + */ + LEAVE, + /** + * The mouse wheel has been turned. + */ + WHEEL, + /** + * A mouse click has been recognized. + *

    + * This is the case if a press has directly been followed by a release. + *

    + */ + CLICK, + /** + * Mouse input capture has been lost. + *

    + * This can happen during mouse drags, if any button is pressed and the focus is taken from the application or transferred + * to another component by other means then moving the mouse. + *

    + */ + LOST_CAPTURE } /** - * A simple {@link yfiles.view.ICanvasObjectDescriptor} that can be used to draw {@link yfiles.input.IPortCandidate} instances in a - * {@link yfiles.view.CanvasComponent}. - * @class yfiles.view.DefaultPortCandidateDescriptor - * @implements {yfiles.view.ICanvasObjectDescriptor} - * @implements {yfiles.view.IVisualCreator} - * @implements {yfiles.view.IBoundsProvider} - * @implements {yfiles.input.IHitTestable} - * @implements {yfiles.view.IVisibilityTestable} - * @implements {yfiles.input.IMarqueeTestable} + * Complex event arguments that is used by the {@link yfiles.view.CanvasComponent} to indicate mouse events in world coordinates. + * @class + * @extends {yfiles.lang.EventArgs} */ - export interface DefaultPortCandidateDescriptor extends Object,yfiles.view.ICanvasObjectDescriptor,yfiles.view.IVisualCreator,yfiles.view.IBoundsProvider,yfiles.input.IHitTestable,yfiles.view.IVisibilityTestable,yfiles.input.IMarqueeTestable{} - export class DefaultPortCandidateDescriptor { + export interface MouseEventArgs extends yfiles.lang.EventArgs{} + export class MouseEventArgs { /** - * Instantiates a new descriptor. - * @constructor + * Constructs a new mouse event argument. + * @param eventType The type of the event + * @param location the position of the mouse in world coordinates at the time of the event + * @param [changedButtons=yfiles.view.MouseButtons.NONE] the mouse buttons that have changed state if the type of event is {@link #DOWN} or + * {@link #UP} + * @param [changedModifiers=yfiles.view.ModifierKeys.NONE] the modifier Keys that have been changed + * @param [buttons=yfiles.view.MouseButtons.NONE] the current state of the MouseButtons + * @param [modifiers=yfiles.view.ModifierKeys.NONE] the current state of the modifier Keys + * @param [clickCount=0] the number of clicks this event represents, 2 for a double click + * @param [mouseWheelDelta=0] the signed number of mouse wheel turn units + * @param [scrollAmount=0] The number of lines to scroll, if scrollType is {@link #LINES}. + * @param [scrollType=yfiles.view.MouseWheelDeltaMode.LINES] The type of scrolling performed. + * @param originalEvent */ - constructor(); + constructor(originalEvent:Event,eventType:yfiles.view.MouseEventTypes,location:yfiles.geometry.Point,changedButtons?:yfiles.view.MouseButtons,changedModifiers?:yfiles.view.ModifierKeys,buttons?:yfiles.view.MouseButtons,modifiers?:yfiles.view.ModifierKeys,clickCount?:number,mouseWheelDelta?:number,scrollAmount?:number,scrollType?:yfiles.view.MouseWheelDeltaMode); /** - * - * @param {Object} forUserObject - * @returns {yfiles.view.IBoundsProvider} + * Constructs a new mouse event argument. + * @param {Object} options The parameters to pass. + * @param options.eventType The type of the event + * @param options.location the position of the mouse in world coordinates at the time of the event + * @param [options.changedButtons=yfiles.view.MouseButtons.NONE] the mouse buttons that have changed state if the type of event is {@link #DOWN} or + * {@link #UP} + * @param [options.changedModifiers=yfiles.view.ModifierKeys.NONE] the modifier Keys that have been changed + * @param [options.buttons=yfiles.view.MouseButtons.NONE] the current state of the MouseButtons + * @param [options.modifiers=yfiles.view.ModifierKeys.NONE] the current state of the modifier Keys + * @param [options.clickCount=0] the number of clicks this event represents, 2 for a double click + * @param [options.mouseWheelDelta=0] the signed number of mouse wheel turn units + * @param [options.scrollAmount=0] The number of lines to scroll, if scrollType is {@link #LINES}. + * @param [options.scrollType=yfiles.view.MouseWheelDeltaMode.LINES] The type of scrolling performed. + * @param options.originalEvent */ - getBoundsProvider(forUserObject:Object):yfiles.view.IBoundsProvider; + constructor(options:{originalEvent:Event,eventType:yfiles.view.MouseEventTypes,location:yfiles.geometry.Point,changedButtons?:yfiles.view.MouseButtons,changedModifiers?:yfiles.view.ModifierKeys,buttons?:yfiles.view.MouseButtons,modifiers?:yfiles.view.ModifierKeys,clickCount?:number,mouseWheelDelta?:number,scrollAmount?:number,scrollType?:yfiles.view.MouseWheelDeltaMode}); /** - * - * @param {Object} forUserObject - * @returns {yfiles.input.IHitTestable} - */ - getHitTestable(forUserObject:Object):yfiles.input.IHitTestable; - /** - * - * @param {Object} forUserObject - * @returns {yfiles.view.IVisibilityTestable} - */ - getVisibilityTestable(forUserObject:Object):yfiles.view.IVisibilityTestable; - /** - * - * @param {Object} forUserObject - * @returns {yfiles.view.IVisualCreator} - */ - getVisualCreator(forUserObject:Object):yfiles.view.IVisualCreator; - /** - * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.view.ICanvasObject} canvasObject - * @returns {boolean} - */ - isDirty(context:yfiles.view.ICanvasContext,canvasObject:yfiles.view.ICanvasObject):boolean; - /** - * Sets the {@link yfiles.view.IVisualTemplate} to use for the given {@link string} by this instance. + * Sets this event's {@link yfiles.view.MouseEventArgs#defaultPrevented} property to true signalling that the event has been properly handled and any default behaviors should + * be prevented. *

    - * This method can be used to reconfigure the visualization for the various keys that are declared by this class. + * This will call the corresponding method on the {@link yfiles.view.MouseEventArgs#originalEvent original native event}. *

    - * @param {string} resourceKey The key to reconfigure. This is one of - * {@link yfiles.view.DefaultPortCandidateDescriptor#CANDIDATE_DRAWING_VALID_NON_FOCUSED_KEY}, - * {@link yfiles.view.DefaultPortCandidateDescriptor#CANDIDATE_DRAWING_INVALID_NON_FOCUSED_KEY}, - * {@link yfiles.view.DefaultPortCandidateDescriptor#CANDIDATE_DRAWING_INVALID_FOCUSED_KEY}, - * {@link yfiles.view.DefaultPortCandidateDescriptor#CANDIDATE_DRAWING_VALID_FOCUSED_KEY}. - * @param {yfiles.view.IVisualTemplate} template The template to use instead of the default. + * @see yfiles.view.MouseEventArgs#defaultPrevented */ - setTemplate(resourceKey:string,template:yfiles.view.IVisualTemplate):void; + preventDefault():void; /** - * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} - * that will be used for rendering a valid, non-focused {@link yfiles.input.IPortCandidate}. + * Gets the type of this event. + * @type {yfiles.view.MouseEventTypes} + */ + eventType:yfiles.view.MouseEventTypes; + /** + * Returns the coordinates in the world coordinate space associated with this event. + * @type {yfiles.geometry.Point} + */ + location:yfiles.geometry.Point; + /** + * Returns the number of clicks the current event represents if it is of type {@link yfiles.view.MouseEventTypes#CLICK}. + * @type {number} + */ + clickCount:number; + /** + * Gets the signed number of mouse wheel turn units. *

    - * The drawing returned should be centered around (0,0). - *

    - * @const - * @static - * @type {string} - */ - static CANDIDATE_DRAWING_VALID_NON_FOCUSED_KEY:string; - /** - * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} - * that will be used for rendering a valid, focused {@link yfiles.input.IPortCandidate}. - *

    - * The drawing returned should be centered around (0,0). - *

    - * @const - * @static - * @type {string} - */ - static CANDIDATE_DRAWING_VALID_FOCUSED_KEY:string; - /** - * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} - * that will be used for rendering an invalid, non-focused {@link yfiles.input.IPortCandidate}. - *

    - * The drawing returned should be centered around (0,0). - *

    - * @const - * @static - * @type {string} - */ - static CANDIDATE_DRAWING_INVALID_NON_FOCUSED_KEY:string; - /** - * A {@link string} that can be used by instances of the {@link yfiles.view.DefaultPortCandidateDescriptor} to look up a {@link yfiles.view.IVisualTemplate} - * that will be used for rendering a invalid, focused {@link yfiles.input.IPortCandidate}. - *

    - * The drawing returned should be centered around (0,0). - *

    - * @const - * @static - * @type {string} - */ - static CANDIDATE_DRAWING_INVALID_FOCUSED_KEY:string; - /** - * Gets or sets a property that determines whether this descriptor uses the "current" candidates. - * @type {boolean} - */ - currentCandidate:boolean; - /** - * Gets or sets the logical size of the candidate. - *

    - * This size is used for hit testing, visibility tests, etc. The default is 3. + * Note that this can, for high-precision mouse wheels, include fractional turns. *

    * @type {number} */ - size:number; - static $class:yfiles.lang.Class; - } - /** - * Manages the visual appearance of an {@link yfiles.graph.IGraph} instance in a {@link yfiles.view.CanvasComponent}. - *

    - * This class monitors the structural changes of an {@link yfiles.graph.IGraph} implementation and installs the necessary {@link yfiles.view.ICanvasObject} - * instance in the canvas for each item in the graph. Note that {@link yfiles.view.GraphComponent} has an instance of this type - * built-in already and usually it is not necessary to create an own one. This class will also {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting use the node hierarchy} to - * nest the nodes {@link yfiles.view.GraphModelManager#useHierarchicEdgeNesting and edges} accordingly. - *

    - * @see yfiles.view.GraphModelManager#nodeGroup - * @see yfiles.view.GraphModelManager#useHierarchicEdgeNesting - * @see yfiles.view.GraphModelManager#useHierarchicNodeNesting - * @class yfiles.view.GraphModelManager - */ - export interface GraphModelManager extends Object{} - export class GraphModelManager { + wheelDelta:number; /** - * Creates a manager instance for the given control. + * Gets the distance to scroll at once when {@link yfiles.view.MouseEventArgs#deltaMode} is {@link yfiles.view.MouseWheelDeltaMode#LINES}. *

    - * The contents of the graph will be added to given group that is must be part of the canvas. + * This is a system setting that only applies to scrolling (not zooming) and usually translates to the number of small + * scroll increments per scroll wheel notch. *

    *

    - * In order to get anything useful out of this instance the {@link yfiles.view.GraphModelManager#graph} property should be set to an instance after construction. + * This property has a value of 1 if {@link yfiles.view.MouseEventArgs#deltaMode} is {@link yfiles.view.MouseWheelDeltaMode#PAGE}, as it is not applicable in that case. *

    - * @param {yfiles.view.CanvasComponent} canvas the canvas to manage the visual appearance of a graph for. - * @param {yfiles.view.ICanvasObjectGroup} contentGroup the group to add the graph's visual content to. Can be null, in which case {@link yfiles.view.GraphModelManager#contentGroup} should be set afterwards or {@link yfiles.view.GraphModelManager#createContentGroup} - * will automatically create a group lazily. - * @constructor - */ - constructor(canvas:yfiles.view.CanvasComponent,contentGroup:yfiles.view.ICanvasObjectGroup); - /** - * Creates a manager instance for the given control. - *

    - * The contents of the graph will be added to a newly created group that is added to the root of the scene graph. - *

    - *

    - * In order to get anything useful out of this instance the {@link yfiles.view.GraphModelManager#graph} property should be set to an instance after construction. - *

    - * @param {yfiles.view.CanvasComponent} canvas the canvas to manage the visual appearance of a graph for. - * @constructor - */ - constructor(canvas:yfiles.view.CanvasComponent); - /** - * Compares two items with respect to their visibility order. - * @param {yfiles.graph.IModelItem} item1 the first item to compare - * @param {yfiles.graph.IModelItem} item2 the second item to compare - * @returns {number} an integer value indicating the relative rendering order of the two items - * @see yfiles.view.GraphModelManager#comparer - */ - compare(item1:yfiles.graph.IModelItem,item2:yfiles.graph.IModelItem):number; - /** - * Factory method that creates the {@link yfiles.view.GraphModelManager#contentGroup} - *

    - * The default implementation will just add another group to the {@link yfiles.view.CanvasComponent}. - *

    - * @returns {yfiles.view.ICanvasObjectGroup} The group to use for adding the content. - * @protected - */ - createContentGroup():yfiles.view.ICanvasObjectGroup; - /** - * Factory method for the {@link yfiles.view.GraphModelManager#edgeGroup} property. - *

    - * This method will be called upon first access to the property. - *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new group that has been added to the {@link yfiles.view.GraphModelManager#contentGroup} - * @protected - */ - createEdgeGroup():yfiles.view.ICanvasObjectGroup; - /** - * Factory method for the {@link yfiles.view.GraphModelManager#edgeLabelGroup} property. - *

    - * This method will be called upon first access to the property. - *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new group that has been added to the {@link yfiles.view.GraphModelManager#contentGroup} - * @protected - */ - createEdgeLabelGroup():yfiles.view.ICanvasObjectGroup; - /** - * Gets a {@link yfiles.input.IHitTester.} that can be used to enumerate hits on the canvas at a given world coordinate position. - *

    - * This enumerator will enumerate hits in the order so that the visually topmost element will be reported first. - *

    - * Type parameter T. - * @param {yfiles.lang.Class} itemType - * @returns {yfiles.input.IHitTester.} - * @template T - */ - createHitTester(itemType:yfiles.lang.Class):yfiles.input.IHitTester; - /** - * Factory method for the {@link yfiles.view.GraphModelManager#nodeGroup} property. - *

    - * This method will be called upon first access to the property. - *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new group that has been added to the {@link yfiles.view.GraphModelManager#contentGroup} - * @protected - */ - createNodeGroup():yfiles.view.ICanvasObjectGroup; - /** - * Factory method for the {@link yfiles.view.GraphModelManager#nodeLabelGroup} property. - *

    - * This method will be called upon first access to the property. - *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new group that has been added to the {@link yfiles.view.GraphModelManager#contentGroup} - * @protected - */ - createNodeLabelGroup():yfiles.view.ICanvasObjectGroup; - /** - * Factory method for the {@link yfiles.view.GraphModelManager#portGroup} property. - *

    - * This method will be called upon first access to the property. - *

    - * @returns {yfiles.view.ICanvasObjectGroup} a new group that has been added to the {@link yfiles.view.GraphModelManager#contentGroup} - * @protected - */ - createPortGroup():yfiles.view.ICanvasObjectGroup; - /** - * Retrieves the {@link yfiles.view.ICanvasObject} for a given model item managed by this instance. - * @param {yfiles.graph.IModelItem} item the item - * @returns {yfiles.view.ICanvasObject} the canvas object for the given item or null - * @see yfiles.view.ItemModelManager.#getCanvasObject - */ - getCanvasObject(item:yfiles.graph.IModelItem):yfiles.view.ICanvasObject; - /** - * Retrieves the Canvas Object group to use for the given label. - *

    - * This implementation is called by the default {@link yfiles.view.GraphModelManager#nodeLabelDescriptor} and {@link yfiles.view.GraphModelManager#edgeLabelDescriptor} instances. - *

    - * @param {yfiles.graph.ILabel} label The label that will be installed in the canvas. - * @returns {yfiles.view.ICanvasObjectGroup} The group to use. - * @protected - */ - getCanvasObjectGroup(label:yfiles.graph.ILabel):yfiles.view.ICanvasObjectGroup; - /** - * Retrieves the Canvas Object group to use for the given port. - *

    - * This implementation is called by the default {@link yfiles.view.GraphModelManager#portDescriptor} instance. - *

    - * @param {yfiles.graph.IPort} port The port that will be installed in the canvas. - * @returns {yfiles.view.ICanvasObjectGroup} The group to use. - * @protected - */ - getCanvasObjectGroup(port:yfiles.graph.IPort):yfiles.view.ICanvasObjectGroup; - /** - * Retrieves the Canvas Object group to use for the given edge. - *

    - * This implementation is called by the default {@link yfiles.view.GraphModelManager#edgeDescriptor} instance. - *

    - * @param {yfiles.graph.IEdge} edge The edge that will be installed in the canvas. - * @returns {yfiles.view.ICanvasObjectGroup} The group to use. - * @protected - */ - getCanvasObjectGroup(edge:yfiles.graph.IEdge):yfiles.view.ICanvasObjectGroup; - /** - * Retrieves the Canvas Object group to use for the given node. - *

    - * This implementation is called by the default {@link yfiles.view.GraphModelManager#nodeDescriptor} instance. - *

    - * @param {yfiles.graph.INode} node The node that will be installed in the canvas. - * @returns {yfiles.view.ICanvasObjectGroup} The group to use. - * @protected - */ - getCanvasObjectGroup(node:yfiles.graph.INode):yfiles.view.ICanvasObjectGroup; - /** - * Retrieves the corresponding {@link yfiles.graph.IModelItem} for the given canvas object. - * @param {yfiles.view.ICanvasObject} canvasObject the instance to use for the query - * @returns {yfiles.graph.IModelItem} The item that is associated with the object or null. - */ - getModelItem(canvasObject:yfiles.view.ICanvasObject):yfiles.graph.IModelItem; - /** - * Enumerates hits on the canvas at a given world coordinate position for a given context. - *

    - * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The - * enumeration is performed lazily. - *

    - * @param {yfiles.input.IInputModeContext} context The context to provide to {@link yfiles.input.IHitTestable#isHit} - * @param {yfiles.geometry.Point} location the world coordinates to perform the hit test - * @param {yfiles.view.ICanvasObjectGroup} root The group to search the subtree of. - * @returns {yfiles.collections.IEnumerable.} an enumerable that will enumerate the hits at the given coordinates - */ - hitElementsAt(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,root:yfiles.view.ICanvasObjectGroup):yfiles.collections.IEnumerable; - /** - * Enumerates hits on the canvas at a given world coordinate position. - *

    - * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The - * enumeration is performed lazily. - *

    - * @param {yfiles.geometry.Point} location the world coordinates to perform the hit test - * @returns {yfiles.collections.IEnumerable.} an enumerable that will enumerate the hits at the given coordinates - */ - hitElementsAt(location:yfiles.geometry.Point):yfiles.collections.IEnumerable; - /** - * Called when the {@link yfiles.view.GraphModelManager#graph} property changes. - *

    - * This method registers the collections of the graph instance with the {@link yfiles.view.CollectionModelManager. mechanism} that manages the mapping between the - * elements and the - * {@link yfiles.view.ICanvasObject}s. Subclasses should call the base method if they want to use the default mechanisms. - *

    - * @param {yfiles.graph.IGraph} oldGraph The old graph instance. - * @param {yfiles.graph.IGraph} newGraph The new graph instance. - * @protected - */ - onGraphChanged(oldGraph:yfiles.graph.IGraph,newGraph:yfiles.graph.IGraph):void; - /** - * Enumerates hits on the canvas at a given world coordinate position in a given context. - *

    - * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The - * enumeration is performed lazily. - *

    - * Type parameter T. - * @param {yfiles.lang.Class} modelItemType - * @param {yfiles.input.IInputModeContext} context The context to provide to {@link yfiles.input.IHitTestable#isHit} - * @param {yfiles.geometry.Point} location the world coordinates to perform the hit test - * @param {yfiles.view.ICanvasObjectGroup} root The group to search the subtree of. - * @returns {yfiles.collections.IEnumerable.} an enumerable that will enumerate the hits at the given coordinates - * @template T - */ - typedHitElementsAt(modelItemType:yfiles.lang.Class,context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,root:yfiles.view.ICanvasObjectGroup):yfiles.collections.IEnumerable; - /** - * Enumerates hits on the canvas at a given world coordinate position. - *

    - * The instance returned will enumerate hits in the order so that the topmost visual element will be reported first. The - * enumeration is performed lazily. - *

    - * Type parameter T. - * @param {yfiles.lang.Class} itemType - * @param {yfiles.geometry.Point} location the world coordinates to perform the hit test - * @returns {yfiles.collections.IEnumerable.} an enumerable that will enumerate the hits at the given coordinates - * @template T - */ - typedHitElementsAt(itemType:yfiles.lang.Class,location:yfiles.geometry.Point):yfiles.collections.IEnumerable; - /** - * {@link yfiles.view.CollectionModelManager.#update Updates} the visual representation of the given item. - * @param {yfiles.graph.IModelItem} item The item to update the visual representation - * @see yfiles.view.CollectionModelManager.#update - */ - update(item:yfiles.graph.IModelItem):void; - /** - * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing node styles. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createNodeGroup} - * will be called. Note that in the case of {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting hierarchic node nesting}, nodes will not be installed at the top-level of this - * group. Rather a more complicated nesting of dynamically created {@link yfiles.view.ICanvasObjectGroup}s will be used. - *

    - * @see yfiles.view.GraphModelManager#getCanvasObjectGroup - * @see yfiles.view.GraphModelManager#nodeDescriptor - * @type {yfiles.view.ICanvasObjectGroup} - */ - nodeGroup:yfiles.view.ICanvasObjectGroup; - /** - * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing edge styles. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createEdgeGroup} - * will be called. Note that in the case of {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting hierarchically nested graphs} edges will only be put directly in this - * {@link yfiles.view.ICanvasObjectGroup}, if the {@link yfiles.view.GraphModelManager#useHierarchicEdgeNesting} property is set to false. Otherwise edges will actually be nested in the subtree - * of the {@link yfiles.view.GraphModelManager#nodeGroup} according to the node nesting. - *

    - * @see yfiles.view.GraphModelManager#getCanvasObjectGroup - * @see yfiles.view.GraphModelManager#edgeDescriptor - * @type {yfiles.view.ICanvasObjectGroup} - */ - edgeGroup:yfiles.view.ICanvasObjectGroup; - /** - * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing edge label styles. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createEdgeLabelGroup} - * will be called. - *

    - * @see yfiles.view.GraphModelManager#getCanvasObjectGroup - * @see yfiles.view.GraphModelManager#edgeLabelDescriptor - * @type {yfiles.view.ICanvasObjectGroup} - */ - edgeLabelGroup:yfiles.view.ICanvasObjectGroup; - /** - * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing node label styles. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createNodeLabelGroup} - * will be called. - *

    - * @see yfiles.view.GraphModelManager#getCanvasObjectGroup - * @see yfiles.view.GraphModelManager#nodeLabelDescriptor - * @type {yfiles.view.ICanvasObjectGroup} - */ - nodeLabelGroup:yfiles.view.ICanvasObjectGroup; - /** - * Gets the {@link yfiles.view.ICanvasObjectGroup} instance that will be used for installing port styles. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.view.GraphModelManager#createPortGroup} - * will be called. - *

    - * @see yfiles.view.GraphModelManager#getCanvasObjectGroup - * @see yfiles.view.GraphModelManager#portDescriptor - * @type {yfiles.view.ICanvasObjectGroup} - */ - portGroup:yfiles.view.ICanvasObjectGroup; - /** - * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.IEdge} into the - * canvas. - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - edgeDescriptor:yfiles.view.ICanvasObjectDescriptor; - /** - * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.IPort} into the - * canvas. - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - portDescriptor:yfiles.view.ICanvasObjectDescriptor; - /** - * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.ILabel} of an {@link yfiles.graph.IEdge} - * into the canvas. - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - edgeLabelDescriptor:yfiles.view.ICanvasObjectDescriptor; - /** - * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.ILabel} of an {@link yfiles.graph.INode} - * into the canvas. - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - nodeLabelDescriptor:yfiles.view.ICanvasObjectDescriptor; - /** - * Determines whether this instance should nest the edges accordingly if the graph is grouped. - *

    - * Hierarchic nesting for edges requires that {@link yfiles.view.GraphModelManager#useHierarchicNodeNesting hierarchic nesting for nodes} is enabled as well. If both properties are - * enabled (the default) the edges will actually be interleaved with the nodes in the nested canvas object subtree so the {@link yfiles.view.GraphModelManager#edgeGroup} - * will be empty. - *

    - * @see yfiles.view.GraphModelManager#useHierarchicNodeNesting - * @type {boolean} - */ - useHierarchicEdgeNesting:boolean; - /** - * Gets or sets the {@link yfiles.view.ICanvasObjectDescriptor} instance used for installing an {@link yfiles.graph.INode} into the - * canvas. - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - nodeDescriptor:yfiles.view.ICanvasObjectDescriptor; - /** - * Gets or sets the content group this manager instance uses to add visual representation of the graph to. - * @type {yfiles.view.ICanvasObjectGroup} - */ - contentGroup:yfiles.view.ICanvasObjectGroup; - /** - * Gets an {@link yfiles.collections.IComparer.} instance that can be used to compare two model items with respect to their visual display order. - *

    - * An item is considered to be greater than another item if it is rendered on top of it. - *

    - * @type {yfiles.collections.IComparer.} - */ - comparer:yfiles.collections.IComparer; - /** - * Gets a {@link yfiles.input.IHitTester.} that can be used to enumerate hits on the canvas at a given world coordinate position. - *

    - * This enumerator will enumerate hits in the order so that the visually topmost element will be reported first. - *

    - * @type {yfiles.input.IHitTester.} - */ - hitTester:yfiles.input.IHitTester; - /** - * Gets or sets the graph this manager manages. - * @see yfiles.view.GraphModelManager#onGraphChanged - * @type {yfiles.graph.IGraph} - */ - graph:yfiles.graph.IGraph; - /** - * Determines whether this instance should nest the nodes {@link yfiles.view.GraphModelManager#useHierarchicEdgeNesting and optionally edges} accordingly if the graph is grouped. - * @type {boolean} - */ - useHierarchicNodeNesting:boolean; - /** - * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.INode}s which simply defers to - * the node's {@link yfiles.styles.INodeStyle}. - * @const - * @static - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - static DEFAULT_NODE_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; - /** - * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.IEdge}s which simply defers to - * the edge's {@link yfiles.styles.IEdgeStyle}. - * @const - * @static - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - static DEFAULT_EDGE_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; - /** - * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.IPort}s which simply defers to - * the port's {@link yfiles.styles.IPortStyle}. - * @const - * @static - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - static DEFAULT_PORT_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; - /** - * The immutable instance of the default {@link yfiles.view.ICanvasObjectDescriptor} for {@link yfiles.graph.ILabel}s which simply defers - * to the label's {@link yfiles.styles.ILabelStyle}. - * @const - * @static - * @type {yfiles.view.ICanvasObjectDescriptor} - */ - static DEFAULT_LABEL_DESCRIPTOR:yfiles.view.ICanvasObjectDescriptor; - static $class:yfiles.lang.Class; - } - /** - * An implementation of the {@link yfiles.view.IObstacleProvider} interface that uses the {@link yfiles.graph.IGraph#edges edges} and {@link yfiles.graph.IGraph#nodes nodes} of an {@link yfiles.graph.IGraph} - * as obstacles. - *

    - * The {@link yfiles.view.BridgeManager} then calculates bridges for edge paths that cross these obstacles. - *

    - *

    - * This class can be used to add bridge support via the {@link yfiles.view.BridgeManager} to a rendered {@link yfiles.graph.IGraph}. - *

    - * @see yfiles.view.BridgeManager#addObstacleProvider - * @see yfiles.view.BridgeManager - * @see yfiles.view.IObstacleProvider - * @class yfiles.view.GraphObstacleProvider - * @implements {yfiles.view.IObstacleProvider} - */ - export interface GraphObstacleProvider extends Object,yfiles.view.IObstacleProvider{} - export class GraphObstacleProvider { - /** - * Helper method that retrieves the {@link yfiles.graph.IGraph} to use from the context - *

    - * This implementation uses the {@link yfiles.graph.ILookup#lookup} of the {@link yfiles.view.ICanvasContext#canvasComponent} to query the {@link yfiles.graph.IGraph} implementation. - *

    - * @param {yfiles.view.IRenderContext} context The context to retrieve the implementation from. - * @returns {yfiles.graph.IGraph} The {@link yfiles.graph.IGraph} instance to query or null. - * @protected - */ - getGraph(context:yfiles.view.IRenderContext):yfiles.graph.IGraph; - /** - * Iterates over all {@link yfiles.graph.IGraph#edges} and {@link yfiles.graph.IGraph#nodes} to query an {@link yfiles.view.IObstacleProvider} from the {@link yfiles.graph.IModelItem}'s - * {@link yfiles.graph.ILookup#lookup}. - *

    - * This method will depending on the {@link yfiles.view.GraphObstacleProvider#queryEdges} and {@link yfiles.view.GraphObstacleProvider#queryNodes} property query the items for an implementation of {@link yfiles.view.IObstacleProvider} - * and concatenate all resulting {@link yfiles.geometry.GeneralPath} obstacles into one path that will then be returned. - *

    - * @param {yfiles.view.IRenderContext} context The context where the obstacles are queried for. - * @returns {yfiles.geometry.GeneralPath} A path that is the concatenated path of all obstacles for the given context. - */ - getObstacles(context:yfiles.view.IRenderContext):yfiles.geometry.GeneralPath; - /** - * Gets or sets a value indicating whether to query the {@link yfiles.graph.IGraph#edges} for an {@link yfiles.view.IObstacleProvider} implementation. - *

    - * The default is true. - *

    - * @type {boolean} - */ - queryEdges:boolean; - /** - * Gets or sets a value indicating whether to query the {@link yfiles.graph.IGraph#nodes} for an {@link yfiles.view.IObstacleProvider} implementation. - * @type {boolean} - */ - queryNodes:boolean; - static $class:yfiles.lang.Class; - } - /** - * Simple implementation of the {@link yfiles.view.IGraphSelection} interface. - * @class yfiles.view.GraphSelection - * @implements {yfiles.view.IGraphSelection} - */ - export interface GraphSelection extends Object,yfiles.view.IGraphSelection{} - export class GraphSelection { - /** - * Instantiates an instance using the the graph as the model. - * @param {yfiles.graph.IGraph} graph - * @constructor - */ - constructor(graph:yfiles.graph.IGraph); - /** - * Creates a new instance with no initial {@link yfiles.view.GraphSelection#graph} assigned. - *

    - * In order to be always in sync with the structural changes in a graph, an instance should be associated with an {@link yfiles.graph.IGraph} - * using the {@link yfiles.view.GraphSelection#graph} property. - *

    - * @constructor - */ - constructor(); - /** - * - */ - clear():void; - /** - * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the bends. - * @returns {yfiles.view.DefaultSelectionModel.} - * @protected - */ - createBendSelectionModel():yfiles.view.DefaultSelectionModel; - /** - * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the edges. - * @returns {yfiles.view.DefaultSelectionModel.} - * @protected - */ - createEdgeSelectionModel():yfiles.view.DefaultSelectionModel; - /** - * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the labels. - * @returns {yfiles.view.DefaultSelectionModel.} - * @protected - */ - createLabelSelectionModel():yfiles.view.DefaultSelectionModel; - /** - * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the nodes. - * @returns {yfiles.view.DefaultSelectionModel.} - * @protected - */ - createNodeSelectionModel():yfiles.view.DefaultSelectionModel; - /** - * Factory method that creates the {@link yfiles.view.DefaultSelectionModel.} to use for the ports. - * @returns {yfiles.view.DefaultSelectionModel.} - * @protected - */ - createPortSelectionModel():yfiles.view.DefaultSelectionModel; - /** - * Returns an enumerator that iterates through the collection of all selected elements. - * @returns {yfiles.collections.IEnumerator.} An {@link yfiles.collections.IEnumerator.} object that can be used to iterate through all selected elements. - */ - getEnumerator():yfiles.collections.IEnumerator; - /** - * - * @param {yfiles.graph.IModelItem} item - * @returns {boolean} - */ - isSelected(item:yfiles.graph.IModelItem):boolean; - /** - * Raises the {@link yfiles.view.GraphSelection#addItemSelectionChangedListener ItemSelectionChanged} event - * @param {yfiles.view.ItemSelectionChangedEventArgs.} evt The parameters for the event - * @protected - */ - onItemSelectionChanged(evt:yfiles.view.ItemSelectionChangedEventArgs):void; - /** - * - * @param {yfiles.graph.IModelItem} item - * @param {boolean} selected - */ - setSelected(item:yfiles.graph.IModelItem,selected:boolean):void; - /** - * - * @type {yfiles.view.ISelectionModel.} - */ - selectedNodes:yfiles.view.ISelectionModel; - /** - * - * @type {yfiles.view.ISelectionModel.} - */ - selectedEdges:yfiles.view.ISelectionModel; - /** - * - * @type {yfiles.view.ISelectionModel.} - */ - selectedLabels:yfiles.view.ISelectionModel; - /** - * - * @type {yfiles.view.ISelectionModel.} - */ - selectedPorts:yfiles.view.ISelectionModel; - /** - * - * @type {yfiles.view.ISelectionModel.} - */ - selectedBends:yfiles.view.ISelectionModel; - /** - * * @type {number} */ - size:number; + scrollAmount:number; /** - * Gets or sets the {@link yfiles.graph.IGraph} this instance is using as the domain for the selection. - * @type {yfiles.graph.IGraph} + * Gets the scrolling behavior. + *

    + * This is a system setting that only applies to scrolling (not zooming) and can be either + * {@link yfiles.view.MouseWheelDeltaMode#LINES}, in which case {@link yfiles.view.MouseEventArgs#scrollAmount} will contain the number of "lines" to scroll with each scroll + * wheel notch, or {@link yfiles.view.MouseWheelDeltaMode#PAGE} in which case a single scroll wheel notch should scroll a "page" at + * a time. + *

    + * @type {yfiles.view.MouseWheelDeltaMode} */ - graph:yfiles.graph.IGraph; + deltaMode:yfiles.view.MouseWheelDeltaMode; /** - * - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener + * Returns the modifier keys that have changed for this event. + * @see yfiles.view.MouseEventArgs#modifiers + * @type {yfiles.view.ModifierKeys} */ - addItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; + changedModifiers:yfiles.view.ModifierKeys; /** - * - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener + * Returns the mouse buttons that have changed for this event. + * @see yfiles.view.MouseEventArgs#buttons + * @type {yfiles.view.MouseButtons} */ - removeItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; + changedButtons:yfiles.view.MouseButtons; + /** + * The state of the modifier keys at the time of the event creation. + * @type {yfiles.view.ModifierKeys} + */ + modifiers:yfiles.view.ModifierKeys; + /** + * The state of the mouse buttons at the time of the event creation. + * @type {yfiles.view.MouseButtons} + */ + buttons:yfiles.view.MouseButtons; + /** + * Gets the original DOM event associated with this event. + * @type {Event} + */ + originalEvent:Event; + /** + * Gets a value indicating whether the default behaviors for this event have been prevented by a previous call to + * {@link yfiles.view.MouseEventArgs#preventDefault}. + * @type {boolean} + */ + defaultPrevented:boolean; + static $class:yfiles.lang.Class; + } + export enum MouseWheelDeltaMode{ + /** + * Scrolling should scroll a set number of lines per mouse wheel notch. + * @see yfiles.view.MouseEventArgs#scrollAmount + */ + LINES, + /** + * Scrolling should scroll a single "page" per mouse wheel notch. + */ + PAGE + } + export enum TouchEventTypes{ + /** + * Not a touch event. + */ + NONE, + /** + * A pointer has been moved. + */ + MOVE, + /** + * A touch device went down. + */ + DOWN, + /** + * A touch device went up. + */ + UP, + /** + * A touch device has entered the control's bounds. + */ + ENTER, + /** + * A touch device has exited the control's bounds. + */ + LEAVE, + /** + * A touch tap has been recognized. + *

    + * This is the case if a down has directly been followed by an up. + *

    + */ + TAP, + /** + * A long press has been recognized. + *

    + * This is the case if a down has been held a certain amount of time without a move. + *

    + */ + LONG_PRESS, + /** + * Touch capture has been lost while the device was down. or sent to the background or similar actions. + *

    + * This can be the case if the application or control is minimized + *

    + */ + LOST_CAPTURE + } + /** + * Complex event arguments that is used by the {@link yfiles.view.CanvasComponent} to indicate touch events in world coordinates. + * @class + * @extends {yfiles.lang.EventArgs} + */ + export interface TouchEventArgs extends yfiles.lang.EventArgs{} + export class TouchEventArgs { + /** + * Constructs a new touch event argument. + * @param eventType The type of the event + * @param location The position of the touch device in world coordinates at the time of the event + * @param device The device the event was triggered by + * @param originalEvent + */ + constructor(originalEvent:Event,eventType:yfiles.view.TouchEventTypes,location:yfiles.geometry.Point,device:yfiles.view.TouchDevice); + /** + * Constructs a new touch event argument. + * @param eventType The type of the event + * @param location The position of the touch device in world coordinates at the time of the event + * @param device The device the event was triggered by + * @param tapCount the number of taps this event represents, 2 for a double tap + * @param originalEvent + */ + constructor(originalEvent:Event,eventType:yfiles.view.TouchEventTypes,location:yfiles.geometry.Point,device:yfiles.view.TouchDevice,tapCount:number); + /** + * Sets this event's {@link yfiles.view.TouchEventArgs#defaultPrevented} property to true signalling that the event has been properly handled and any default behaviors should + * be prevented. + *

    + * This will call the corresponding method on the {@link yfiles.view.TouchEventArgs#originalEvent original native event}. + *

    + * @see yfiles.view.TouchEventArgs#defaultPrevented + */ + preventDefault():void; + /** + * Gets the type of this event. + * @type {yfiles.view.TouchEventTypes} + */ + eventType:yfiles.view.TouchEventTypes; + /** + * Returns the location represented by this event in world coordinates. + * @type {yfiles.geometry.Point} + */ + location:yfiles.geometry.Point; + /** + * Returns the touch device associated with this event. + * @type {yfiles.view.TouchDevice} + */ + device:yfiles.view.TouchDevice; + /** + * Returns the number of taps the current event represents if it is of type {@link yfiles.view.TouchEventTypes#TAP}. + * @type {number} + */ + tapCount:number; + /** + * Gets the original DOM event associated with this event. + * @type {Event} + */ + originalEvent:Event; + /** + * Gets a value indicating whether the default behaviors for this event have been prevented by a previous call to + * {@link yfiles.view.TouchEventArgs#preventDefault}. + * @type {boolean} + */ + defaultPrevented:boolean; static $class:yfiles.lang.Class; } /** - * Manages the selection state of items in an {@link yfiles.graph.IGraph} instance. - *

    - * This interface provides access to the {@link yfiles.view.ISelectionModel.} instances that manage the selection of nodes, edges, labels, ports, and bends. - * The generic methods that use {@link yfiles.graph.IModelItem} parameters delegate to the corresponding domain-specific selection - * models. - *

    - * @see yfiles.view.ISelectionModel. - * @interface - * @implements {yfiles.view.ISelectionModel.} + * The representation of a touch point on the screen. + * @class */ - export interface IGraphSelection extends Object,yfiles.view.ISelectionModel{ + export interface TouchDevice extends Object{} + export class TouchDevice { /** - * An {@link yfiles.view.ISelectionModel.} of the selected nodes. - *

    - * This is the node part of the selection that this instance is a composite of. - *

    - * @abstract - * @type {yfiles.view.ISelectionModel.} + * Gets the device's index + * @type {number} */ - selectedNodes:yfiles.view.ISelectionModel; + deviceIndex:number; /** - * An {@link yfiles.view.ISelectionModel.} of the selected labels. + * Gets a value indicating whether this device is the primary one. *

    - * This is the label part of the selection that this instance is a composite of. + * If {@link yfiles.view.TouchDevice#deviceIndex} is 0 this property has the value true, otherwise false. *

    - * @abstract - * @type {yfiles.view.ISelectionModel.} + * @type {boolean} */ - selectedLabels:yfiles.view.ISelectionModel; + isPrimaryDevice:boolean; /** - * An {@link yfiles.view.ISelectionModel.} of the selected edges. - *

    - * This is the edge part of the selection that this instance is a composite of. - *

    - * @abstract - * @type {yfiles.view.ISelectionModel.} + * Gets the last device coordinate in the view coordinate system. + * @type {yfiles.geometry.Point} */ - selectedEdges:yfiles.view.ISelectionModel; + lastViewCoordinate:yfiles.geometry.Point; /** - * An {@link yfiles.view.ISelectionModel.} of the selected ports. - *

    - * This is the ports part of the selection that this instance is a composite of. - *

    - * @abstract - * @type {yfiles.view.ISelectionModel.} + * Gets the time of the last {@link yfiles.view.TouchEventArgs event} that was raised by this device. + * @type {Date} */ - selectedPorts:yfiles.view.ISelectionModel; + lastEventTimeJS:Date; /** - * An {@link yfiles.view.ISelectionModel.} of the selected bends. + * Indicates if this device is currently down or not. *

    - * This is the bend part of the selection that this instance is a composite of. + * Default is true. *

    - * @abstract - * @type {yfiles.view.ISelectionModel.} + * @type {boolean} */ - selectedBends:yfiles.view.ISelectionModel; + isDown:boolean; + static $class:yfiles.lang.Class; } - var IGraphSelection:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; /** - * Convenience component implementation that shows an overview of an {@link yfiles.graph.IGraph} contained in another {@link yfiles.view.GraphOverviewComponent#graphComponent}. - *

    - * This component uses a {@link yfiles.view.GraphOverviewComponent#graphVisualCreator} to display the graph in a preview mode and an {@link yfiles.view.GraphOverviewComponent#overviewInputMode} to allow for easily navigating in the {@link yfiles.view.GraphOverviewComponent#graphComponent}. - *

    - *

    Related demos:

    - *
      - *
    • Demo: SimpleEditorForm, Demo.yFiles.Graph.SimpleEditor
    • - *
    - * @class yfiles.view.GraphOverviewComponent - * @extends {yfiles.view.CanvasComponent} + * The event argument class that is used by {@link yfiles.view.DragSource#addQueryContinueDragListener QueryContinueDrag} + * during drags to query the drag source whether the drag should be continued. + * @class + * @extends {yfiles.lang.EventArgs} + * @final */ - export interface GraphOverviewComponent extends yfiles.view.CanvasComponent{} - export class GraphOverviewComponent { + export interface QueryContinueDragEventArgs extends yfiles.lang.EventArgs{} + export class QueryContinueDragEventArgs { /** - * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is specified by the selector and - * that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. - *

    - * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. - *

    - * @param {yfiles.view.GraphComponent} [graphComponent=null] The {@link yfiles.view.GraphOverviewComponent#graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. - * @param {string} selector The CSS selector or id for an existing div element - * @constructor + * Gets or sets the action. + * @type {yfiles.view.DragAction} */ - constructor(selector:string,graphComponent?:yfiles.view.GraphComponent); + action:yfiles.view.DragAction; /** - * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is specified by the selector and - * that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + * Gets a value indicating whether the escape key had been pressed. + * @type {boolean} + */ + escapePressed:boolean; + /** + * Gets the current state of the keys. + * @type {yfiles.view.DragDropKeyStates} + */ + keyStates:yfiles.view.DragDropKeyStates; + /** + * Gets or sets a value indicating whether this {@link yfiles.view.QueryContinueDragEventArgs} is handled. + * @type {boolean} + */ + handled:boolean; + static $class:yfiles.lang.Class; + } + export enum DragAction{ + /** + * Whether the drag should be continued. + */ + CONTINUE, + /** + * Whether the drag should be finalized by an immediate drop. + */ + DROP, + /** + * Whether the drag operation should be canceled. + */ + CANCEL + } + /** + * Helper class for drag and drop support that is used for the source of drag and drop operations. + * @class + */ + export interface DragSource extends Object{} + export class DragSource { + /** + * Initializes a new instance of the {@link yfiles.view.DragSource} class setting the {@link yfiles.view.DragSource#source} property to the given element. + * @param source The source. + */ + constructor(source:HTMLElement); + /** + * Cleans up by removing the association with the {@link yfiles.view.DragSource#source} element. + */ + cleanUp():void; + /** + * Raises the {@link yfiles.view.DragSource#addQueryContinueDragListener QueryContinueDrag} event. *

    - * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + * If the event is not {@link yfiles.view.QueryContinueDragEventArgs#handled handled}, a default logic will be applied: the drag operation is canceled if the left mouse button is + * released or escape has been pressed, otherwise the drag will be {@link yfiles.view.DragAction#CONTINUE continued}. *

    + * @param evt The {@link } instance containing the event data. + */ + onQueryContinueDrag(evt:yfiles.view.QueryContinueDragEventArgs):void; + /** + * Initiates a new drag operation using the provided drag data and effects. + *

    + * If useCssCursors is enabled, the following CSS classes are assigned to elements hovered during a drag operation, + * depending on the allowed drag-drop operations for these elements: + *

    + *
      + *
    • yfiles-cursor-dragdrop-move
    • + *
    • yfiles-cursor-dragdrop-link
    • + *
    • yfiles-cursor-dragdrop-all
    • + *
    • yfiles-cursor-dragdrop-no-drop
    • + *
    + * @param dragData The data to use for the drag. + * @param [dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed effects. + * @param [useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. + */ + startDrag(dragData:yfiles.view.DragDropItem,dragDropEffects?:yfiles.view.DragDropEffects,useCssCursors?:boolean):void; + /** + * Initiates a new drag operation using the provided drag data and effects. + *

    + * If useCssCursors is enabled, the following CSS classes are assigned to elements hovered during a drag operation, + * depending on the allowed drag-drop operations for these elements: + *

    + *
      + *
    • yfiles-cursor-dragdrop-move
    • + *
    • yfiles-cursor-dragdrop-link
    • + *
    • yfiles-cursor-dragdrop-all
    • + *
    • yfiles-cursor-dragdrop-no-drop
    • + *
    * @param {Object} options The parameters to pass. - * @param {yfiles.view.GraphComponent} [options.graphComponent=null] The {@link yfiles.view.GraphOverviewComponent#graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. - * @param {string} options.selector The CSS selector or id for an existing div element - * @param {boolean} options.svgRendering A value indicating whether the graph is rendered using SVG rendering. - *

    - * This option sets the {@link yfiles.view.GraphOverviewComponent#svgRendering} property on the created object. - *

    - * @constructor + * @param options.dragData The data to use for the drag. + * @param [options.dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed effects. + * @param [options.useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. */ - constructor(options:{selector:string,graphComponent?:yfiles.view.GraphComponent,svgRendering?:boolean}); + startDrag(options:{dragData:yfiles.view.DragDropItem,dragDropEffects?:yfiles.view.DragDropEffects,useCssCursors?:boolean}):void; /** - * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is optionally bound to the - * provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + * Adds the given listener for the QueryContinueDrag event that occurs when the state of the {@link yfiles.view.DragDropKeyStates} + * has changed to query the source whether the drag operation should be continued. *

    - * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + * Handlers should adjust the {@link yfiles.view.QueryContinueDragEventArgs#handled} and {@link yfiles.view.QueryContinueDragEventArgs#action} properties accordingly. *

    - * @param {HTMLDivElement} div The div element to use for holding the canvas. - * @param {yfiles.view.GraphComponent} [graphComponent=null] The optional graph control to {@link yfiles.view.GraphOverviewComponent#graphComponent bind} this instance to. If omitted, the property needs to be set to initialize the - * component. - * @constructor + * @param listener The listener to add. + * @see yfiles.view.DragSource#removeQueryContinueDragListener */ - constructor(div:HTMLDivElement,graphComponent?:yfiles.view.GraphComponent); + addQueryContinueDragListener(listener:(sender:Object,evt:yfiles.view.QueryContinueDragEventArgs)=>void):void; /** - * Creates a new instance of {@link yfiles.view.GraphOverviewComponent} using the div element that is optionally bound to the - * provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. + * Removes the given listener for the QueryContinueDrag event that occurs when the state of the {@link yfiles.view.DragDropKeyStates} + * has changed to query the source whether the drag operation should be continued. *

    - * If no graphControl is provided, in order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. + * Handlers should adjust the {@link yfiles.view.QueryContinueDragEventArgs#handled} and {@link yfiles.view.QueryContinueDragEventArgs#action} properties accordingly. *

    - * @param {Object} options The parameters to pass. - * @param {HTMLDivElement} options.div The div element to use for holding the canvas. - * @param {yfiles.view.GraphComponent} [options.graphComponent=null] The optional graph control to {@link yfiles.view.GraphOverviewComponent#graphComponent bind} this instance to. If omitted, the property needs to be set to initialize the - * component. - * @param {boolean} options.svgRendering A value indicating whether the graph is rendered using SVG rendering. + * @param listener The listener to remove. + * @see yfiles.view.DragSource#addQueryContinueDragListener + */ + removeQueryContinueDragListener(listener:(sender:Object,evt:yfiles.view.QueryContinueDragEventArgs)=>void):void; + /** + * Gets or sets the source element from which drags can originate. *

    - * This option sets the {@link yfiles.view.GraphOverviewComponent#svgRendering} property on the created object. + * If the {@link yfiles.view.DragSource#allowDrag} property is enabled, this will automatically register mouse event handlers on the element that will recognize + * default drag gestures (press followed by drag) to {@link yfiles.view.DragSource#startDrag initiate a drag and drop operation}. *

    - * @constructor + * @default null + * @type {HTMLElement} */ - constructor(options:{div:HTMLDivElement,graphComponent?:yfiles.view.GraphComponent,svgRendering?:boolean}); + source:HTMLElement; /** - * Creates a new instance that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. - *

    - * This constructor creates a new {@link yfiles.view.CanvasComponent#div} element that needs to be added to the DOM manually. If no graphControl is provided, in - * order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. - *

    - * @param {yfiles.view.GraphComponent} [graphComponent=null] The {@link yfiles.view.GraphOverviewComponent#graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. - * @constructor - */ - constructor(graphComponent?:yfiles.view.GraphComponent); - /** - * Creates a new instance that is optionally bound to the provided {@link yfiles.view.GraphOverviewComponent#graphComponent}. - *

    - * This constructor creates a new {@link yfiles.view.CanvasComponent#div} element that needs to be added to the DOM manually. If no graphControl is provided, in - * order for this instance to be useful, either the {@link yfiles.view.GraphOverviewComponent#graphComponent} or the {@link yfiles.view.GraphOverviewComponent#graph} property need to be set. - *

    - * @param {Object} options The parameters to pass. - * @param {yfiles.view.GraphComponent} [options.graphComponent=null] The {@link yfiles.view.GraphOverviewComponent#graphComponent} to bind this instance to. If omitted, the property needs to be set to initialize the component. - * @param {boolean} options.svgRendering A value indicating whether the graph is rendered using SVG rendering. - *

    - * This option sets the {@link yfiles.view.GraphOverviewComponent#svgRendering} property on the created object. - *

    - * @constructor - */ - constructor(options:{graphComponent?:yfiles.view.GraphComponent,svgRendering?:boolean}); - /** - * Factory method that creates the {@link yfiles.view.IVisualCreator} that renders the preview of the graph in a HTML canvas - * element. - * @param {yfiles.graph.IGraph} graph The graph to draw. - * @returns {yfiles.view.IVisualCreator} An {@link yfiles.view.IVisualCreator} that creates HTML canvas rendering. - * @protected - */ - createCanvasVisualCreator(graph:yfiles.graph.IGraph):yfiles.view.IVisualCreator; - /** - * Factory method that creates the {@link yfiles.view.IVisualCreator} that renders the preview of the graph in SVG. - * @param {yfiles.graph.IGraph} graph The graph to draw. - * @returns {yfiles.view.IVisualCreator} An {@link yfiles.view.IVisualCreator} that creates SVG. - * @protected - */ - createSvgVisualCreator(graph:yfiles.graph.IGraph):yfiles.view.IVisualCreator; - /** - * Gets or sets a value indicating whether the graph is rendered using SVG rendering. + * Gets or sets a value indicating whether default drag gestures should be automatically recognized on the {@link yfiles.view.DragSource#source}. * @default false * @type {boolean} */ - svgRendering:boolean; + allowDrag:boolean; /** - * Gets the {@link yfiles.styles.GraphOverviewSvgVisualCreator} that is used to render the over view graph. - * @type {yfiles.view.IVisualCreator} + * Gets or sets the data that will be used for the {@link yfiles.view.DragSource#allowDrag automatic drag operation}. + *

    + * If this data is not a {@link yfiles.view.DragDropItem}, the {@link yfiles.input.DropInputMode expected format} of the automatic drag operation will be code. + *

    + * @default null + * @type {Object} */ - graphVisualCreator:yfiles.view.IVisualCreator; + item:Object; /** - * Gets the {@link yfiles.input.IInputMode} that is used to navigate the client control. - * @type {yfiles.input.OverviewInputMode} + * Gets or sets the {@link yfiles.view.DragSource#effectAllowed} that will be used for the {@link yfiles.view.DragSource#allowDrag automatic drag operation}. + * @default yfiles.view.DragDropEffects.ALL + * @type {yfiles.view.DragDropEffects} */ - overviewInputMode:yfiles.input.OverviewInputMode; - /** - * Gets or sets the graph that is rendered in the overview. - * @type {yfiles.graph.IGraph} - */ - graph:yfiles.graph.IGraph; - /** - * Gets or sets the client component, that will be used to retrieve the graph from and that will be used for navigating. - * @type {yfiles.view.GraphComponent} - */ - graphComponent:yfiles.view.GraphComponent; + effectAllowed:yfiles.view.DragDropEffects; static $class:yfiles.lang.Class; } /** - * An implementation of the {@link yfiles.view.ICanvasObjectInstaller} interface that can decorate the visual appearence of an - * {@link yfiles.graph.IEdge}. - *

    - * This will install an {@link yfiles.view.ICanvasObject} during {@link yfiles.view.ICanvasObjectInstaller#addCanvasObject installation}, that will render the path and the bends of an edge - * using a {@link yfiles.view.EdgeDecorationInstaller#getStroke pen} for the path and a {@link yfiles.view.EdgeDecorationInstaller#getBendDrawing drawing} for the bends. - *

    - * @class yfiles.view.EdgeDecorationInstaller - * @implements {yfiles.view.ISelectionIndicatorInstaller} - * @implements {yfiles.view.IHighlightIndicatorInstaller} - * @implements {yfiles.view.IFocusIndicatorInstaller} + * Helper class that plays the role of the target during a drag and drop operation that is initiated using {@link yfiles.view.DragSource#startDrag} + * in a {@link yfiles.view.DragSource}. + * @class */ - export interface EdgeDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} - export class EdgeDecorationInstaller { + export interface DropTarget extends Object{} + export class DropTarget { /** - * Installs a rendering for the item if it is an {@link yfiles.graph.IEdge} that will use the {@link yfiles.view.EdgeDecorationInstaller#getBendDrawing} - * and {@link yfiles.view.EdgeDecorationInstaller#getStroke} to render the path and bends. - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.view.ICanvasObjectGroup} group The {@link yfiles.view.ICanvasObjectGroup} to add the new canvas object to. - * @param {Object} item The item to install. - * @returns {yfiles.view.ICanvasObject} The canvas object representing the item. - */ - addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; - /** - * Callback method that retrieves the drawing of the bend for the context. + * Initializes a new instance of the {@link yfiles.view.DropTarget} class. *

    - * This implementation will use the {@link yfiles.view.EdgeSelectionIndicatorInstaller#BEND_TEMPLATE_KEY} resource to find a {@link yfiles.view.IVisualTemplate} - * instance. If null is yielded, a default drawing will be used. + * In order to make the instance available to the drag and drop mechanisms, the {@link yfiles.view.DropTarget#setDropTarget} helper + * method should be used. If the optional element is passed in, it will automatically be registered. *

    - * @param {yfiles.view.CanvasComponent} canvas The canvas for which the drawing shall be returned. - * @param {yfiles.graph.IEdge} edge The edge for which the rendering will be used. - * @returns {yfiles.view.IVisualTemplate} The drawing instance to use for the rendering of the bends in the given context. - * @protected - * @abstract + * @param [element=null] The element to optionally {@link #setDropTarget associate} with the new instance. + * @see yfiles.view.DropTarget#setDropTarget + * @see yfiles.view.DropTarget#getDropTarget */ - getBendDrawing(canvas:yfiles.view.CanvasComponent,edge:yfiles.graph.IEdge):yfiles.view.IVisualTemplate; + constructor(element?:Element); /** - * Callback method that retrieves the {@link yfiles.view.Stroke} for the context. - *

    - * This implementation will use the {@link yfiles.view.EdgeSelectionIndicatorInstaller#STROKE_KEY} resource to find a {@link yfiles.view.Stroke} - * instance. If null is yielded, a default {@link yfiles.view.Stroke} will be used. - *

    - * @param {yfiles.graph.IEdge} edge The edge for which the rendering will be used. - * @param {yfiles.view.CanvasComponent} canvas The canvas for which the {@link yfiles.view.Stroke} shall be returned. - * @returns {yfiles.view.Stroke} The {@link yfiles.view.Stroke} instance to use for the rendering of the edge in the given context. - * @protected - * @abstract - */ - getStroke(canvas:yfiles.view.CanvasComponent,edge:yfiles.graph.IEdge):yfiles.view.Stroke; - static $class:yfiles.lang.Class; - } - /** - * An implementation of the {@link yfiles.view.ICanvasObjectInstaller} interface that can install the selection outline of an - * {@link yfiles.graph.IEdge}. - *

    - * This will {@link yfiles.view.EdgeDecorationInstaller#addCanvasObject install} an {@link yfiles.view.ICanvasObject} that will render the path and the bends of an edge using a {@link yfiles.view.EdgeSelectionIndicatorInstaller#getStroke pen} for the - * path and a {@link yfiles.view.EdgeSelectionIndicatorInstaller#getBendDrawing drawing} for the bends. - *

    - * @class yfiles.view.EdgeSelectionIndicatorInstaller - * @extends {yfiles.view.EdgeDecorationInstaller} - */ - export interface EdgeSelectionIndicatorInstaller extends yfiles.view.EdgeDecorationInstaller{} - export class EdgeSelectionIndicatorInstaller { - constructor(); - /** - * A {@link string} that will be used to find the {@link yfiles.view.Stroke} that will be used to draw the path of the edge. - * @const + * Gets the {@link yfiles.view.DropTarget} instance associated with the given element. + * @param element The element to get the drop target instance of. + * @returns The associated instance or null. + * @see yfiles.view.DropTarget#setDropTarget * @static - * @type {string} */ - static STROKE_KEY:string; + static getDropTarget(element:Element):yfiles.view.DropTarget; /** - * A {@link string} that will be used to find the {@link yfiles.view.IVisualTemplate} that will be used to draw the bends of the edge. - * @const + * Sets the drop target for the given element. + * @param element The element or null to register the drop target instance with. + * @param dropTarget The instance to attach to the element, null to remove the association from the element. + * @see yfiles.view.DropTarget#getDropTarget * @static - * @type {string} */ - static BEND_TEMPLATE_KEY:string; + static setDropTarget(element:Element,dropTarget:yfiles.view.DropTarget):void; + /** + * Adds the given listener for the DragEnter event that occurs when a drag enters the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to add. + * @see yfiles.view.DropTarget#removeDragEnterListener + */ + addDragEnterListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Removes the given listener for the DragEnter event that occurs when a drag enters the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to remove. + * @see yfiles.view.DropTarget#addDragEnterListener + */ + removeDragEnterListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Adds the given listener for the DragLeave event that occurs when a drag leaves the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to add. + * @see yfiles.view.DropTarget#removeDragLeaveListener + */ + addDragLeaveListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Removes the given listener for the DragLeave event that occurs when a drag leaves the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to remove. + * @see yfiles.view.DropTarget#addDragLeaveListener + */ + removeDragLeaveListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Adds the given listener for the DragOver event that occurs when a drag is being performed over the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to add. + * @see yfiles.view.DropTarget#removeDragOverListener + */ + addDragOverListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Removes the given listener for the DragOver event that occurs when a drag is being performed over the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to remove. + * @see yfiles.view.DropTarget#addDragOverListener + */ + removeDragOverListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Adds the given listener for the Drop event that occurs when the drop operation is performed on the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to add. + * @see yfiles.view.DropTarget#removeDropListener + */ + addDropListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Removes the given listener for the Drop event that occurs when the drop operation is performed on the drop target. + *

    + * The handler may adjust the {@link yfiles.view.DragEventArgs#dropEffect} and call {@link yfiles.view.DragEventArgs#handled}. + *

    + * @param listener The listener to remove. + * @see yfiles.view.DropTarget#addDropListener + */ + removeDropListener(listener:(sender:Object,evt:yfiles.view.DragEventArgs)=>void):void; + /** + * Gets or sets a value indicating whether dropping to this target is currently allowed. + * @type {boolean} + */ + allowDrop:boolean; static $class:yfiles.lang.Class; } - /** - * An specialized subclass of the {@link yfiles.view.EdgeSelectionIndicatorInstaller} that can install the focus indicator of an - * {@link yfiles.graph.IEdge}. - *

    - * This will {@link yfiles.view.EdgeDecorationInstaller#addCanvasObject install} an {@link yfiles.view.ICanvasObject} that will render the path and the bends of an edge using a {@link yfiles.view.EdgeFocusIndicatorInstaller#getStroke pen} for the - * path and a {@link yfiles.view.EdgeFocusIndicatorInstaller#getBendDrawing drawing} for the bends. - *

    - * @class yfiles.view.EdgeFocusIndicatorInstaller - * @extends {yfiles.view.EdgeDecorationInstaller} - */ - export interface EdgeFocusIndicatorInstaller extends yfiles.view.EdgeDecorationInstaller{} - export class EdgeFocusIndicatorInstaller { - constructor(); - /** - * A {@link string} that will be used to find the {@link yfiles.view.Stroke} that will be used to draw the path of the edge. - * @const - * @static - * @type {string} - */ - static STROKE_KEY:string; - /** - * A {@link string} that will be used to find the DataTemplate that will be used to draw the bends of the edge. - * @const - * @static - * @type {string} - */ - static BEND_TEMPLATE_KEY:string; - static $class:yfiles.lang.Class; - } - /** - * An specialized subclass of the {@link yfiles.view.EdgeSelectionIndicatorInstaller} that can install the highlight rendering of - * an {@link yfiles.graph.IEdge}. - *

    - * This will {@link yfiles.view.EdgeDecorationInstaller#addCanvasObject install} an {@link yfiles.view.ICanvasObject} that will render the path and the bends of an edge using a {@link yfiles.view.EdgeHighlightIndicatorInstaller#getStroke pen} for the - * path and a {@link yfiles.view.EdgeHighlightIndicatorInstaller#getBendDrawing drawing} for the bends. - *

    - * @class yfiles.view.EdgeHighlightIndicatorInstaller - * @extends {yfiles.view.EdgeDecorationInstaller} - */ - export interface EdgeHighlightIndicatorInstaller extends yfiles.view.EdgeDecorationInstaller{} - export class EdgeHighlightIndicatorInstaller { - constructor(); - /** - * A {@link string} that will be used to find the {@link yfiles.view.Stroke} that will be used to draw the path of the edge. - * @const - * @static - * @type {string} - */ - static STROKE_KEY:string; - /** - * A {@link string} that will be used to find the DataTemplate that will be used to draw the bends of the edge. - * @const - * @static - * @type {string} - */ - static BEND_TEMPLATE_KEY:string; - static $class:yfiles.lang.Class; - } - /** - * Allows the use of an {@link yfiles.styles.IEdgeStyle} to render the selection, highlight or focus indicator of edges. - *

    - * The {@link yfiles.view.EdgeStyleDecorationInstaller#zoomPolicy} property defines how the zoom level affects the rendering of the indicator. It can either scale according to the - * zoom level similar to regular graph items or have always to same thickness regardless of the zoom, similar to the - * default yFiles indicators. - *

    - * @see yfiles.view.NodeStyleDecorationInstaller - * @see yfiles.view.LabelStyleDecorationInstaller - * @class yfiles.view.EdgeStyleDecorationInstaller - * @implements {yfiles.view.ISelectionIndicatorInstaller} - * @implements {yfiles.view.IHighlightIndicatorInstaller} - * @implements {yfiles.view.IFocusIndicatorInstaller} - */ - export interface EdgeStyleDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} - export class EdgeStyleDecorationInstaller { - /** - * Create a new instance of this class. - * @constructor - */ - constructor(); - /** - * Installs a rendering for the item if it is an {@link yfiles.graph.IEdge}. - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.view.ICanvasObjectGroup} group The canvas object group to add the newly created {@link yfiles.view.ICanvasObject} to. - * @param {Object} item The item to install. - * @returns {yfiles.view.ICanvasObject} The canvas object representing the item. - */ - addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; - /** - * Specifies how the style is affected by the current zoom level. - *

    - * Changes of the value of this property are propagated to all styles created by this instance and become immediately - * visible. - *

    - * @type {yfiles.view.StyleDecorationZoomPolicy} - */ - zoomPolicy:yfiles.view.StyleDecorationZoomPolicy; - /** - * The style to use for the rendering. - *

    - * Changes of the value of this property are not propagated to already created styles. - *

    - * @type {yfiles.styles.IEdgeStyle} - */ - edgeStyle:yfiles.styles.IEdgeStyle; - static $class:yfiles.lang.Class; - } - /** - * An {@link yfiles.view.IVisualCreator} for use in a {@link yfiles.view.CanvasComponent} that renders a {@link yfiles.graph.IGraph} instance in a - * sloppy overview style. - * @class yfiles.view.GraphOverviewCanvasVisualCreator - * @implements {yfiles.view.IVisualCreator} - */ - export interface GraphOverviewCanvasVisualCreator extends Object,yfiles.view.IVisualCreator{} - export class GraphOverviewCanvasVisualCreator { - /** - * Creates a new instance for the given graph. - * @param {yfiles.graph.IGraph} graph - * @constructor - */ - constructor(graph:yfiles.graph.IGraph); - /** - * Callback that paints the specified edge. - * @param {yfiles.view.IRenderContext} renderContext - * @param {CanvasRenderingContext2D} ctx - * @param {yfiles.graph.IEdge} edge - * @protected - */ - paintEdge(renderContext:yfiles.view.IRenderContext,ctx:CanvasRenderingContext2D,edge:yfiles.graph.IEdge):void; - /** - * Callback method that paints the specified node. - * @param {yfiles.view.IRenderContext} renderContext - * @param {CanvasRenderingContext2D} ctx - * @param {yfiles.graph.INode} node - * @protected - */ - paintGroupNode(renderContext:yfiles.view.IRenderContext,ctx:CanvasRenderingContext2D,node:yfiles.graph.INode):void; - /** - * Callback method that paints the specified node. - * @param {yfiles.view.IRenderContext} renderContext - * @param {CanvasRenderingContext2D} ctx - * @param {yfiles.graph.INode} node - * @protected - */ - paintNode(renderContext:yfiles.view.IRenderContext,ctx:CanvasRenderingContext2D,node:yfiles.graph.INode):void; - static $class:yfiles.lang.Class; - } - /** - * Allows the use of an {@link yfiles.styles.ILabelStyle} to render the selection, highlight or focus indicator of labels. - *

    - * The {@link yfiles.view.LabelStyleDecorationInstaller#zoomPolicy} property defines how the zoom level affects the rendering of the indicator. It can either scale according to the - * zoom level similar to regular graph items or have always to same thickness regardless of the zoom, similar to the - * default yFiles indicators. - *

    - * @see yfiles.view.EdgeStyleDecorationInstaller - * @see yfiles.view.NodeStyleDecorationInstaller - * @class yfiles.view.LabelStyleDecorationInstaller - * @implements {yfiles.view.ISelectionIndicatorInstaller} - * @implements {yfiles.view.IHighlightIndicatorInstaller} - * @implements {yfiles.view.IFocusIndicatorInstaller} - */ - export interface LabelStyleDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} - export class LabelStyleDecorationInstaller { - /** - * Create a new instance of this class. - * @constructor - */ - constructor(); - /** - * Installs a rendering for the item if it is an {@link yfiles.graph.ILabel}. - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.view.ICanvasObjectGroup} group The canvas object group to add the newly created canvas object to. - * @param {Object} item The item to install. - * @returns {yfiles.view.ICanvasObject} The canvas object representing the item. - */ - addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; - /** - * Specifies how the style is affected by the current zoom level. - *

    - * Changes of the value of this property are propagated to all styles created by this instance and become immediately - * visible. - *

    - * @type {yfiles.view.StyleDecorationZoomPolicy} - */ - zoomPolicy:yfiles.view.StyleDecorationZoomPolicy; - /** - * Specifies the margin around the label layout. - *

    - * Actually, the bounds rendered by the style is the original label layout enlarged by this margin. - *

    - *

    - * Changes of the value of this property are propagated to all styles created by this instance and become immediately - * visible. - *

    - * @type {yfiles.geometry.Insets} - */ - margin:yfiles.geometry.Insets; - /** - * The style to use for the rendering. - *

    - * Changes of the value of this property are not propagated to already created styles. - *

    - * @type {yfiles.styles.ILabelStyle} - */ - labelStyle:yfiles.styles.ILabelStyle; - static $class:yfiles.lang.Class; - } - /** - * Allows the use of an {@link yfiles.styles.INodeStyle} to render the selection, highlight or focus indicator of nodes. - *

    - * The {@link yfiles.view.NodeStyleDecorationInstaller#zoomPolicy} property defines how the zoom level affects the rendering of the indicator. It can either scale according to the - * zoom level similar to regular graph items or have always to same thickness regardless of the zoom, similar to the - * default yFiles indicators. - *

    - * @see yfiles.view.EdgeStyleDecorationInstaller - * @see yfiles.view.LabelStyleDecorationInstaller - * @class yfiles.view.NodeStyleDecorationInstaller - * @implements {yfiles.view.ISelectionIndicatorInstaller} - * @implements {yfiles.view.IHighlightIndicatorInstaller} - * @implements {yfiles.view.IFocusIndicatorInstaller} - */ - export interface NodeStyleDecorationInstaller extends Object,yfiles.view.ISelectionIndicatorInstaller,yfiles.view.IHighlightIndicatorInstaller,yfiles.view.IFocusIndicatorInstaller{} - export class NodeStyleDecorationInstaller { - /** - * Create a new instance of this class. - * @constructor - */ - constructor(); - /** - * Installs a rendering for the item if it is an {@link yfiles.graph.INode}. - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.view.ICanvasObjectGroup} group The canvas object group to add the newly created canvas object to. - * @param {Object} item The item to install. - * @returns {yfiles.view.ICanvasObject} The canvas object representing the item. - */ - addCanvasObject(context:yfiles.view.ICanvasContext,group:yfiles.view.ICanvasObjectGroup,item:Object):yfiles.view.ICanvasObject; - /** - * Specifies how the style is affected by the current zoom level. - *

    - * Changes of the value of this property are propagated to all styles created by this instance and become immediately - * visible. - *

    - * @type {yfiles.view.StyleDecorationZoomPolicy} - */ - zoomPolicy:yfiles.view.StyleDecorationZoomPolicy; - /** - * Specifies the margin around the node layout. - *

    - * Actually, the bounds rendered by the style is the original node layout enlarged by this margin. - *

    - *

    - * Changes of the value of this property are propagated to all styles created by this instance and become immediately - * visible. - *

    - * @type {yfiles.geometry.Insets} - */ - margin:yfiles.geometry.Insets; - /** - * The style to use for the rendering. - *

    - * Changes of the value of this property are not propagated to already created styles. - *

    - * @type {yfiles.styles.INodeStyle} - */ - nodeStyle:yfiles.styles.INodeStyle; - static $class:yfiles.lang.Class; - } - export enum StyleDecorationZoomPolicy{ - /** - * The visual is rendered in the view coordinate space and doesn't scale with the zoom level. - *

    - * This is similar to the default node resize handles, for example. - *

    - */ - VIEW_COORDINATES, - /** - * The visual is rendered in the world coordinate space and scales with the zoom level like a regular graph item - * visualization, for example a node style. - */ - WORLD_COORDINATES, - /** - * Uses WorldCoordinates rendering for zoom level >= 1 and ViewCoordinates rendering for zoom level < 1. - */ - MIXED - } /** * An animation for the {@link yfiles.graph.IStripe stripes} in an {@link yfiles.graph.ITable}. - * @class yfiles.view.TableAnimation + * @class * @implements {yfiles.view.IAnimation} */ export interface TableAnimation extends Object,yfiles.view.IAnimation{} @@ -20472,15 +20505,14 @@ declare namespace system{ * leaf stripes, i.e. those without child stripes, are considered. The sizes of a stripe with children is implicitly determined by its * contents. *

    - * @param {yfiles.graph.ITable} table The table to animate. - * @param {Array.} columnLayout The sizes of the leaf columns, in natural order. - * @param {Array.} rowLayout The sizes of the leaf rows, in natural order. - * @constructor + * @param table The table to animate. + * @param columnLayout The sizes of the leaf columns, in natural order. + * @param rowLayout The sizes of the leaf rows, in natural order. */ constructor(table:yfiles.graph.ITable,columnLayout:number[],rowLayout:number[]); /** * - * @param {number} time + * @param time */ animate(time:number):void; /** @@ -20489,9 +20521,9 @@ declare namespace system{ cleanup():void; /** * Create the animation for a single {@link yfiles.graph.IStripe} - * @param {yfiles.graph.IStripe} stripe The stripe - * @param {number} targetSize The target size of the stripe - * @returns {yfiles.view.IAnimation} An animation that morphs the stripe size + * @param stripe The stripe + * @param targetSize The target size of the stripe + * @returns An animation that morphs the stripe size * @protected */ createStripeAnimation(stripe:yfiles.graph.IStripe,targetSize:number):yfiles.view.IAnimation; @@ -20557,14 +20589,13 @@ declare namespace system{ }; /** * Default implementation of the {@link yfiles.view.IStripeSelection} interface. - * @class yfiles.view.StripeSelection + * @class * @implements {yfiles.view.IStripeSelection} */ export interface StripeSelection extends Object,yfiles.view.IStripeSelection{} export class StripeSelection { /** * Default constructor that creates empty selection models. - * @constructor */ constructor(); /** @@ -20573,25 +20604,25 @@ declare namespace system{ clear():void; /** * - * @returns {yfiles.collections.IEnumerator.} + * @returns */ getEnumerator():yfiles.collections.IEnumerator; /** * Return whether stripe is currently selected - * @param {yfiles.graph.IStripe} stripe The stripe to test - * @returns {boolean} true iff stripe is currently selected + * @param stripe The stripe to test + * @returns true iff stripe is currently selected */ isSelected(stripe:yfiles.graph.IStripe):boolean; /** * Raises the {@link yfiles.view.StripeSelection#addItemSelectionChangedListener ItemSelectionChanged} event - * @param {yfiles.view.ItemSelectionChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onItemSelectionChanged(evt:yfiles.view.ItemSelectionChangedEventArgs):void; /** * - * @param {yfiles.graph.IStripe} item - * @param {boolean} selected + * @param item + * @param selected */ setSelected(item:yfiles.graph.IStripe,selected:boolean):void; /** @@ -20627,12 +20658,12 @@ declare namespace system{ size:number; /** * - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener + * @param listener */ addItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.view.ItemSelectionChangedEventArgs.): void} listener + * @param listener */ removeItemSelectionChangedListener(listener:(sender:Object,evt:yfiles.view.ItemSelectionChangedEventArgs)=>void):void; static $class:yfiles.lang.Class; @@ -20673,9 +20704,9 @@ declare namespace system{ export interface IHitTester extends Object{ /** * Yields an enumerable that enumerates the hits for a given world coordinate. - * @param {yfiles.input.IInputModeContext} context The context in which to perform the hit testing. - * @param {yfiles.geometry.Point} location the coordinates in the world coordinate system - * @returns {yfiles.collections.IEnumerable.} an enumerable that yields hits for the given coordinates + * @param context The context in which to perform the hit testing. + * @param location the coordinates in the world coordinate system + * @returns an enumerable that yields hits for the given coordinates * @abstract */ enumerateHits(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.collections.IEnumerable; @@ -20774,22 +20805,20 @@ declare namespace system{ *

    * This class adds convenience methods for derived classes. *

    - * @class yfiles.input.InputModeBase + * @class * @implements {yfiles.input.IInputMode} */ export interface InputModeBase extends Object,yfiles.input.IInputMode{} export class InputModeBase { /** * Initializes a new instance of the {@link yfiles.input.InputModeBase} class. - * @param {boolean} exclusive Iff this mode should be {@link yfiles.input.InputModeBase#exclusive}. + * @param exclusive Iff this mode should be {@link #exclusive}. * @protected - * @constructor */ constructor(exclusive:boolean); /** * Initializes a new instance of the {@link yfiles.input.InputModeBase} class that is {@link yfiles.input.InputModeBase#exclusive} by default. * @protected - * @constructor */ constructor(); /** @@ -20808,7 +20837,7 @@ declare namespace system{ *

    * This will return true, iff a {@link yfiles.input.InputModeBase#controller} has been injected and the helper allows requesting the mutex. *

    - * @returns {boolean} Whether a call to {@link yfiles.input.InputModeBase#requestMutex} would currently succeed. + * @returns Whether a call to {@link #requestMutex} would currently succeed. * @protected */ canRequestMutex():boolean; @@ -20824,7 +20853,7 @@ declare namespace system{ * by looking up {@link yfiles.input.IInputModeContext} from the {@link yfiles.view.ICanvasContext}'s {@link yfiles.graph.ILookup#lookup} method or * simply downcasting. *

    - * @returns {yfiles.input.IInputModeContext} A readily configured {@link yfiles.input.IInputModeContext}. + * @returns A readily configured {@link }. * @see yfiles.view.CanvasComponent#hitElementsAt * @see yfiles.input.IHitTestable#isHit * @see yfiles.input.IInputModeContext @@ -20833,11 +20862,11 @@ declare namespace system{ createChildInputModeContext():yfiles.input.IInputModeContext; /** * Helper method that yields a suitably configured {@link yfiles.input.InputModeEventArgs} for this input mode. - * @param {yfiles.input.IInputModeContext} context An input mode context that is available in the {@link yfiles.input.InputModeEventArgs}. + * @param context An input mode context that is available in the {@link }. *

    * Can be null in which case a new context for this instance is created automatically. *

    - * @returns {yfiles.input.InputModeEventArgs} An input mode event argument that is configured for this instance. + * @returns An input mode event argument that is configured for this instance. * @protected */ createInputModeEventArgs(context:yfiles.input.IInputModeContext):yfiles.input.InputModeEventArgs; @@ -20847,7 +20876,7 @@ declare namespace system{ * If no {@link yfiles.input.InputModeBase#controller} had been associated with this instance upon the call to {@link yfiles.input.InputModeBase#requestMutex} this method will * return false. *

    - * @returns {boolean} Whether this instance has the input mutex. + * @returns Whether this instance has the input mutex. * @protected */ hasMutex():boolean; @@ -20872,8 +20901,8 @@ declare namespace system{ * method the first time this mode gets installed. The initialization will be surrounded by calls to {@link yfiles.input.InputModeBase#onInitializing} * and {@link yfiles.input.InputModeBase#onInitialized} to trigger the corresponding events. *

    - * @param {yfiles.input.IInputModeContext} context the context to install this mode into - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.InputModeBase#controller} for this mode. + * @param context the context to install this mode into + * @param controller The {@link #controller} for this mode. * @see yfiles.input.InputModeBase#inputModeContext * @see yfiles.view.CanvasComponent#inputMode */ @@ -20884,7 +20913,7 @@ declare namespace system{ *

    * This method is called by subclasses when the editing process has been {@link yfiles.input.InputModeBase#cancel}ed. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event arguments. + * @param evt The event arguments. * @see yfiles.input.InputModeBase#initialize * @protected */ @@ -20918,7 +20947,7 @@ declare namespace system{ * This method will be called by {@link yfiles.input.InputModeBase#install} for the first installation directly after {@link yfiles.input.InputModeBase#initialize} * has returned. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event arguments. + * @param evt The event arguments. * @see yfiles.input.InputModeBase#initialize * @protected */ @@ -20930,7 +20959,7 @@ declare namespace system{ * This method will be called by {@link yfiles.input.InputModeBase#install} for the first installation directly before {@link yfiles.input.InputModeBase#initialize} * is invoked. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event arguments. + * @param evt The event arguments. * @see yfiles.input.InputModeBase#initialize * @protected */ @@ -20960,7 +20989,7 @@ declare namespace system{ * This method will be called by {@link yfiles.input.InputModeBase#tryStop} or can be called by subclasses during a {@link yfiles.input.InputModeBase#tryStop} * operation. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event arguments. + * @param evt The event arguments. * @see yfiles.input.InputModeBase#tryStop * @see yfiles.input.InputModeBase#addStoppedListener * @protected @@ -21007,8 +21036,7 @@ declare namespace system{ /** * Requests capturing of all mouse and touch input that happens in the {@link yfiles.view.CanvasComponent}. *

    - * This sets the CaptureAllPointerInput property to - * true, which will prevent visuals inside the canvas from stealing mouse input. + * This sets the {@link yfiles.view.CanvasComponent#captureAllPointerInput} property to true, which will prevent visuals inside the canvas from stealing mouse input. *

    * @see yfiles.input.InputModeBase#releasePointer * @protected @@ -21030,7 +21058,7 @@ declare namespace system{ *

    * Calling this method raises the {@link yfiles.input.InputModeBase#addStoppedListener Stopped} event. *

    - * @returns {boolean} true iff this instance does not {@link yfiles.input.InputModeBase#hasMutex own the mutex}. + * @returns true iff this instance does not {@link #hasMutex own the mutex}. * @see yfiles.input.InputModeBase#onStopped */ tryStop():boolean; @@ -21039,8 +21067,8 @@ declare namespace system{ *

    * Subclasses should always call base.Uninstall(context) as the last statement. *

    - * @param {yfiles.input.IInputModeContext} context The context to remove this mode from. This is the same instance that has been passed to - * {@link yfiles.input.InputModeBase#install}. + * @param context The context to remove this mode from. This is the same instance that has been passed to + * {@link #install}. */ uninstall(context:yfiles.input.IInputModeContext):void; /** @@ -21048,7 +21076,7 @@ declare namespace system{ *

    * Clients can use this event to perform configuration of the instance shortly before the initialization begins. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.InputModeBase#install * @see yfiles.input.InputModeBase#removeInitializingListener */ @@ -21059,7 +21087,7 @@ declare namespace system{ *

    * Clients can use this event to perform configuration of the instance shortly before the initialization begins. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.InputModeBase#install * @see yfiles.input.InputModeBase#addInitializingListener */ @@ -21070,7 +21098,7 @@ declare namespace system{ * Clients can use this event to perform post configuration steps of the instance shortly after the initialization has been * performed. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.InputModeBase#install * @see yfiles.input.InputModeBase#removeInitializedListener */ @@ -21082,7 +21110,7 @@ declare namespace system{ * Clients can use this event to perform post configuration steps of the instance shortly after the initialization has been * performed. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.InputModeBase#install * @see yfiles.input.InputModeBase#addInitializedListener */ @@ -21092,7 +21120,7 @@ declare namespace system{ *

    * Clients can use this event to perform post cleanup steps of the instance shortly after the mode has been canceled. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.InputModeBase#onCanceled * @see yfiles.input.InputModeBase#cancel * @see yfiles.input.InputModeBase#tryStop @@ -21105,7 +21133,7 @@ declare namespace system{ *

    * Clients can use this event to perform post cleanup steps of the instance shortly after the mode has been canceled. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.InputModeBase#onCanceled * @see yfiles.input.InputModeBase#cancel * @see yfiles.input.InputModeBase#tryStop @@ -21118,7 +21146,7 @@ declare namespace system{ *

    * Clients can use this event to perform post cleanup steps of the instance shortly after the mode has been stopped. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.InputModeBase#onStopped * @see yfiles.input.InputModeBase#cancel * @see yfiles.input.InputModeBase#tryStop @@ -21131,7 +21159,7 @@ declare namespace system{ *

    * Clients can use this event to perform post cleanup steps of the instance shortly after the mode has been stopped. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.InputModeBase#onStopped * @see yfiles.input.InputModeBase#cancel * @see yfiles.input.InputModeBase#tryStop @@ -21203,19 +21231,18 @@ declare namespace system{ } /** * Event arguments used by {@link yfiles.input.ClickInputMode#addClickedListener Clicked}. - * @class yfiles.input.ClickEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface ClickEventArgs extends yfiles.input.InputModeEventArgs{} export class ClickEventArgs { /** * Initializes a new instance of the {@link yfiles.input.ClickEventArgs} class. - * @param {yfiles.input.IInputModeContext} context The context in which the click occurred. - * @param {yfiles.geometry.Point} location The location. - * @param {yfiles.view.ModifierKeys} modifiers State of the modifiers. - * @param {yfiles.view.MouseButtons} mouseButtons The mouse button(s) that have changed - * @param {number} clickCount - * @constructor + * @param context The context in which the click occurred. + * @param location The location. + * @param modifiers State of the modifiers. + * @param mouseButtons The mouse button(s) that have changed + * @param clickCount */ constructor(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,modifiers:yfiles.view.ModifierKeys,mouseButtons:yfiles.view.MouseButtons,clickCount:number); /** @@ -21290,14 +21317,13 @@ declare namespace system{ * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#swallowFocusClick * @see yfiles.input.ClickInputMode#activeButtons - * @class yfiles.input.ClickInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface ClickInputMode extends Object,yfiles.input.IInputMode{} export class ClickInputMode { /** * Creates a new instance of this mode that detects left mouse clicks. - * @constructor */ constructor(); /** @@ -21311,19 +21337,19 @@ declare namespace system{ cancel():void; /** * Creates the event recognizer that is used to recognize the clicks for this instance. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} + * @returns * @protected */ createClickRecognizer():(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** * Creates the event recognizer that is used to recognize the press event for this instance. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} + * @returns * @protected */ createPressRecognizer():(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** * Creates the event recognizer that is used to recognize the release event for this instance. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} + * @returns * @protected */ createReleaseRecognizer():(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; @@ -21339,44 +21365,44 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.ClickInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; /** * Determines whether the given event is a press event that occurred at an invalid location. - * @param {Object} eventSource - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param eventSource + * @param evt + * @returns * @see yfiles.input.ClickInputMode#validClickHitTestable * @protected */ isInvalidPress(eventSource:Object,evt:yfiles.lang.EventArgs):boolean; /** * Determines whether the given event is a valid click event. - * @param {Object} src - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param src + * @param evt + * @returns * @see yfiles.input.ClickInputMode#validClickHitTestable * @protected */ isValidClick(src:Object,evt:yfiles.lang.EventArgs):boolean; /** * Determines whether the given event is a valid press event. - * @param {Object} eventSource - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param eventSource + * @param evt + * @returns * @protected */ isValidPress(eventSource:Object,evt:yfiles.lang.EventArgs):boolean; /** * Determines whether the given event is a valid release event. - * @param {Object} src - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param src + * @param evt + * @returns * @see yfiles.input.ClickInputMode#validClickHitTestable * @protected */ @@ -21397,7 +21423,7 @@ declare namespace system{ *

    * This method will trigger the {@link yfiles.input.ClickInputMode#addClickedListener Clicked} event. *

    - * @param {yfiles.input.ClickEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onClicked(evt:yfiles.input.ClickEventArgs):void; @@ -21428,7 +21454,7 @@ declare namespace system{ *

    * This method will trigger the {@link yfiles.input.ClickInputMode#addDoubleClickedListener DoubleClicked} event. *

    - * @param {yfiles.input.ClickEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onDoubleClicked(evt:yfiles.input.ClickEventArgs):void; @@ -21437,7 +21463,7 @@ declare namespace system{ *

    * This method will trigger the {@link yfiles.input.ClickInputMode#addLeftClickedListener LeftClicked} event. *

    - * @param {yfiles.input.ClickEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onLeftClicked(evt:yfiles.input.ClickEventArgs):void; @@ -21447,7 +21473,7 @@ declare namespace system{ * This method will trigger the {@link yfiles.input.ClickInputMode#addLeftDoubleClickedListener LeftDoubleClicked} * event. *

    - * @param {yfiles.input.ClickEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onLeftDoubleClicked(evt:yfiles.input.ClickEventArgs):void; @@ -21456,7 +21482,7 @@ declare namespace system{ *

    * This method will trigger the {@link yfiles.input.ClickInputMode#addRightClickedListener RightClicked} event. *

    - * @param {yfiles.input.ClickEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onRightClicked(evt:yfiles.input.ClickEventArgs):void; @@ -21466,7 +21492,7 @@ declare namespace system{ * This method will trigger the {@link yfiles.input.ClickInputMode#addRightDoubleClickedListener RightDoubleClicked} * event. *

    - * @param {yfiles.input.ClickEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onRightDoubleClicked(evt:yfiles.input.ClickEventArgs):void; @@ -21501,13 +21527,13 @@ declare namespace system{ *

    * To ensure that the flag really acts just once, this method resets the flag and returns its value prior to the reset. *

    - * @returns {boolean} + * @returns * @protected */ queryAndResetPreventNextDoubleClick():boolean; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -21519,7 +21545,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -21563,7 +21589,7 @@ declare namespace system{ controller:yfiles.input.ConcurrencyController; /** * Adds the given listener for the Clicked event that occurs once a click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#removeClickedListener @@ -21571,7 +21597,7 @@ declare namespace system{ addClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Removes the given listener for the Clicked event that occurs once a click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#addClickedListener @@ -21579,7 +21605,7 @@ declare namespace system{ removeClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Adds the given listener for the LeftClicked event that occurs once a left click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#removeLeftClickedListener @@ -21587,7 +21613,7 @@ declare namespace system{ addLeftClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Removes the given listener for the LeftClicked event that occurs once a left click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#addLeftClickedListener @@ -21595,7 +21621,7 @@ declare namespace system{ removeLeftClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Adds the given listener for the RightClicked event that occurs once a right click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#removeRightClickedListener @@ -21603,7 +21629,7 @@ declare namespace system{ addRightClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Removes the given listener for the RightClicked event that occurs once a right click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#addRightClickedListener @@ -21611,7 +21637,7 @@ declare namespace system{ removeRightClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Adds the given listener for the DoubleClicked event that occurs once a double-click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#removeDoubleClickedListener @@ -21619,7 +21645,7 @@ declare namespace system{ addDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Removes the given listener for the DoubleClicked event that occurs once a double-click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#addDoubleClickedListener @@ -21627,7 +21653,7 @@ declare namespace system{ removeDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Adds the given listener for the LeftDoubleClicked event that occurs once a left double-click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#removeLeftDoubleClickedListener @@ -21635,7 +21661,7 @@ declare namespace system{ addLeftDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Removes the given listener for the LeftDoubleClicked event that occurs once a left double-click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#addLeftDoubleClickedListener @@ -21643,7 +21669,7 @@ declare namespace system{ removeLeftDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Adds the given listener for the RightDoubleClicked event that occurs once a right double-click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#removeRightDoubleClickedListener @@ -21651,7 +21677,7 @@ declare namespace system{ addRightDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; /** * Removes the given listener for the RightDoubleClicked event that occurs once a right double-click has been detected. - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ClickEventArgs * @see yfiles.input.ClickInputMode#doubleClickPolicy * @see yfiles.input.ClickInputMode#addRightDoubleClickedListener @@ -21661,7 +21687,7 @@ declare namespace system{ * Gets or sets the click handling mode that determines the triggering behavior of {@link yfiles.input.ClickInputMode#addClickedListener Clicked} * and {@link yfiles.input.ClickInputMode#addDoubleClickedListener DoubleClicked}. * @see yfiles.input.ClickInputMode#doubleClickPolicy - * @default 2 + * @default yfiles.input.DoubleClickPolicy.BOTH_SINGLE_CLICKS_AND_DOUBLE_CLICK * @type {yfiles.input.DoubleClickPolicy} */ doubleClickPolicy:yfiles.input.DoubleClickPolicy; @@ -21697,7 +21723,7 @@ declare namespace system{ * Default value is {@link yfiles.view.MouseButtons#LEFT} *

    * @see yfiles.input.ClickInputMode#createClickRecognizer - * @default 1 + * @default yfiles.view.MouseButtons.LEFT * @type {yfiles.view.MouseButtons} */ activeButtons:yfiles.view.MouseButtons; @@ -21729,19 +21755,18 @@ declare namespace system{ * Event handlers can use the {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult} method to add snapping results for the * current move operation. *

    - * @class yfiles.input.CollectSnapResultsEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface CollectSnapResultsEventArgs extends yfiles.input.InputModeEventArgs{} export class CollectSnapResultsEventArgs { /** * Creates a new instance of the event arguments using the provided values for initialization. - * @param {yfiles.input.IInputModeContext} context The context for which the event is queried. - * @param {yfiles.geometry.Point} originalLocation The original location of the mouse at the beginning of the gesture. - * @param {yfiles.geometry.Point} newLocation The new (current) location of the mouse. - * @param {number} snapDistance The zoom invariant snap distance. - * @param {yfiles.collections.ICollection.} snapResults The collection to store the snap results in. - * @constructor + * @param context The context for which the event is queried. + * @param originalLocation The original location of the mouse at the beginning of the gesture. + * @param newLocation The new (current) location of the mouse. + * @param snapDistance The zoom invariant snap distance. + * @param snapResults The collection to store the snap results in. */ constructor(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point,snapDistance:number,snapResults:yfiles.collections.ICollection); /** @@ -21749,7 +21774,7 @@ declare namespace system{ *

    * null values will be discarded. *

    - * @param {yfiles.input.SnapResult} snapResult The result to add. + * @param snapResult The result to add. */ addSnapResult(snapResult:yfiles.input.SnapResult):void; /** @@ -21783,7 +21808,7 @@ declare namespace system{ *

    * @see yfiles.input.IInputMode * @see yfiles.input.MultiplexingInputMode - * @class yfiles.input.ConcurrencyController + * @class * @final */ export interface ConcurrencyController extends Object{} @@ -21794,8 +21819,7 @@ declare namespace system{ * The returned {@link yfiles.input.ConcurrencyController} is not synchronized with any other one so the mode will effectively run * in a non-{@link yfiles.input.ConcurrencyController#exclusive exclusive} mode. *

    - * @param {yfiles.input.IInputMode} mode The mode, the {@link yfiles.input.ConcurrencyController} shall be created for. - * @constructor + * @param mode The mode, the {@link } shall be created for. */ constructor(mode:yfiles.input.IInputMode); /** @@ -21803,7 +21827,7 @@ declare namespace system{ *

    * This will return true, iff this instance is {@link yfiles.input.ConcurrencyController#active} and doesn't hold the mutex. *

    - * @returns {boolean} Whether a call to {@link yfiles.input.ConcurrencyController#requestMutex} would currently succeed. + * @returns Whether a call to {@link #requestMutex} would currently succeed. */ canRequestMutex():boolean; /** @@ -21811,7 +21835,7 @@ declare namespace system{ *

    * The instance owns the input mutex if it has successfully {@link yfiles.input.ConcurrencyController#requestMutex requested} the mutex in the past and not yet {@link yfiles.input.ConcurrencyController#releaseMutex released} it. *

    - * @returns {boolean} Whether this instance has the input mutex. + * @returns Whether this instance has the input mutex. */ hasMutex():boolean; /** @@ -21844,7 +21868,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ConcurrencyController#removeMutexObtainedListener */ addMutexObtainedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21853,7 +21877,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ConcurrencyController#addMutexObtainedListener */ removeMutexObtainedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21862,7 +21886,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ConcurrencyController#removeMutexReleasedListener */ addMutexReleasedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21871,7 +21895,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ConcurrencyController#addMutexReleasedListener */ removeMutexReleasedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21913,7 +21937,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ConcurrencyController#removeActiveChangedListener */ addActiveChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21922,7 +21946,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ConcurrencyController#addActiveChangedListener */ removeActiveChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21953,7 +21977,7 @@ declare namespace system{ * {@link yfiles.input.MultiplexingInputMode} listens to property changes of the controller of its sub modes. properties. This * event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ConcurrencyController#removePreferredCursorChangedListener */ addPreferredCursorChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21963,7 +21987,7 @@ declare namespace system{ * {@link yfiles.input.MultiplexingInputMode} listens to property changes of the controller of its sub modes. properties. This * event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ConcurrencyController#addPreferredCursorChangedListener */ removePreferredCursorChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21973,7 +21997,7 @@ declare namespace system{ *

    * {@link yfiles.input.MultiplexingInputMode} listens to priority changes of the controller of its sub modes. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ConcurrencyController#removePriorityChangedListener */ addPriorityChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21983,7 +22007,7 @@ declare namespace system{ *

    * {@link yfiles.input.MultiplexingInputMode} listens to priority changes of the controller of its sub modes. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ConcurrencyController#addPriorityChangedListener */ removePriorityChangedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -21992,16 +22016,15 @@ declare namespace system{ /** * Event arguments for the {@link yfiles.input.ContextMenuInputMode#addPopulateMenuListener PopulateMenu} * event. - * @class yfiles.input.PopulateMenuEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface PopulateMenuEventArgs extends yfiles.input.InputModeEventArgs{} export class PopulateMenuEventArgs { /** * Initializes a new instance of the {@link yfiles.input.PopulateMenuEventArgs} class. - * @param {yfiles.input.IInputModeContext} context The context. - * @param {yfiles.geometry.Point} queryLocation The query location. - * @constructor + * @param context The context. + * @param queryLocation The query location. */ constructor(context:yfiles.input.IInputModeContext,queryLocation:yfiles.geometry.Point); /** @@ -22061,14 +22084,13 @@ declare namespace system{ *
      *
    • Demo: Context Menu, demo.yfiles.input.contextmenu
    • *
    - * @class yfiles.input.ContextMenuInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface ContextMenuInputMode extends Object,yfiles.input.IInputMode{} export class ContextMenuInputMode { /** * Initializes a new instance of the {@link yfiles.input.ContextMenuInputMode} class. - * @constructor */ constructor(); /** @@ -22078,14 +22100,14 @@ declare namespace system{ /** * Creates an {@link yfiles.input.IInputModeContext} for use with the {@link yfiles.input.ContextMenuInputMode#addPopulateMenuListener PopulateMenu} * call in the upcoming query. - * @returns {yfiles.input.IInputModeContext} An instance of {@link yfiles.input.IInputModeContext}. + * @returns An instance of {@link }. * @protected */ createPopulateMenuContext():yfiles.input.IInputModeContext; /** * Installs this mode in the canvas. - * @param {yfiles.input.IInputModeContext} context The context to install this mode into. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.ContextMenuInputMode#controller} for this mode. + * @param context The context to install this mode into. + * @param controller The {@link #controller} for this mode. */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; /** @@ -22143,14 +22165,14 @@ declare namespace system{ * event and will use the {@link yfiles.input.PopulateMenuEventArgs#showMenu} value as the return value. If the event will not be handled, this method will return true if the * menu already contains elements. *

    - * @param {yfiles.geometry.Point} location The location in the world coordinate system for which the context menu has been invoked. - * @returns {boolean} Whether to show the context menu. + * @param location The location in the world coordinate system for which the context menu has been invoked. + * @returns Whether to show the context menu. * @protected */ onMenuOpening(location:yfiles.geometry.Point):boolean; /** * Raises the {@link yfiles.input.ContextMenuInputMode#addPopulateMenuListener PopulateMenu} event. - * @param {yfiles.input.PopulateMenuEventArgs} evt The {@link yfiles.input.PopulateMenuEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onPopulateMenu(evt:yfiles.input.PopulateMenuEventArgs):void; @@ -22172,21 +22194,21 @@ declare namespace system{ * Since this input mode does not know when the user wants to open a context menu, this method must be called to possibly * cancel the request and, otherwise, update the internal state of this mode. *

    - * @param {yfiles.geometry.Point} [queryLocation=null] The optional location for which the context menu content should be queried. This value will be passed to {@link yfiles.input.ContextMenuInputMode#onPopulateMenu} - * and will ultimately be available in {@link yfiles.input.PopulateMenuEventArgs#queryLocation}. If not specified, the last known mouse location will be used. - * @returns {boolean} + * @param [queryLocation=null] The optional location for which the context menu content should be queried. This value will be passed to {@link #onPopulateMenu} + * and will ultimately be available in {@link #queryLocation}. If not specified, the last known mouse location will be used. + * @returns * @see yfiles.input.ContextMenuInputMode#menuClosed * @see yfiles.input.ContextMenuInputMode#addCloseMenuListener */ shouldOpenMenu(queryLocation?:yfiles.geometry.Point):boolean; /** * Stops the display of the context menu and requests that the context menu is closed. - * @returns {boolean} + * @returns */ tryStop():boolean; /** * Removes the menu from the context and replaces it with the old instance. - * @param {yfiles.input.IInputModeContext} context The context to uninstall this mode from. + * @param context The context to uninstall this mode from. */ uninstall(context:yfiles.input.IInputModeContext):void; /** @@ -22233,7 +22255,7 @@ declare namespace system{ * will be called, even if one of them sets the {@link yfiles.input.PopulateMenuEventArgs#handled} property to * true. Every handler should query this property and decide carefully what to do. *

    - * @param {function(Object, yfiles.input.PopulateMenuEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ContextMenuInputMode#removePopulateMenuListener */ addPopulateMenuListener(listener:(sender:Object,evt:yfiles.input.PopulateMenuEventArgs)=>void):void; @@ -22244,7 +22266,7 @@ declare namespace system{ * will be called, even if one of them sets the {@link yfiles.input.PopulateMenuEventArgs#handled} property to * true. Every handler should query this property and decide carefully what to do. *

    - * @param {function(Object, yfiles.input.PopulateMenuEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ContextMenuInputMode#addPopulateMenuListener */ removePopulateMenuListener(listener:(sender:Object,evt:yfiles.input.PopulateMenuEventArgs)=>void):void; @@ -22273,7 +22295,7 @@ declare namespace system{ *

    * Custom context menus must be closed in response to this event. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ContextMenuInputMode#menuClosed * @see yfiles.input.ContextMenuInputMode#removeCloseMenuListener */ @@ -22284,7 +22306,7 @@ declare namespace system{ *

    * Custom context menus must be closed in response to this event. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ContextMenuInputMode#menuClosed * @see yfiles.input.ContextMenuInputMode#addCloseMenuListener */ @@ -22322,7 +22344,7 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.DropInputMode#exclusive} by default. *

    - * @class yfiles.input.DropInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface DropInputMode extends Object,yfiles.input.IInputMode{} @@ -22332,16 +22354,15 @@ declare namespace system{ *

    * This instance fires events only if a drag operation carries data of the expected format. *

    - * @param {string} expectedFormat This is a format that is used in {@link yfiles.view.DragDropItem#getData}. + * @param expectedFormat This is a format that is used in {@link #getData}. * @see yfiles.input.DropInputMode#addDragEnteredListener * @see yfiles.input.DropInputMode#addDragDroppedListener - * @constructor */ constructor(expectedFormat:string); /** * Callback that adjusts the effect accordingly. - * @param {yfiles.view.DragEventArgs} evt - * @returns {boolean} + * @param evt + * @returns * @protected */ adjustEffect(evt:yfiles.view.DragEventArgs):boolean; @@ -22351,7 +22372,7 @@ declare namespace system{ cancel():void; /** * Helper method that yields a suitably configured {@link yfiles.input.InputModeEventArgs} for this input mode. - * @returns {yfiles.input.InputModeEventArgs} An input mode event argument that is configured for this instance. + * @returns An input mode event argument that is configured for this instance. * @protected */ createInputModeEventArgs():yfiles.input.InputModeEventArgs; @@ -22360,8 +22381,8 @@ declare namespace system{ *

    * Clients should not call this method as this is handled by the framework. *

    - * @param {yfiles.input.IInputModeContext} context the context to install this mode into - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.DropInputMode#controller} for this mode. + * @param context the context to install this mode into + * @param controller The {@link #controller} for this mode. * @see yfiles.view.CanvasComponent */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -22400,25 +22421,25 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Called once a drag has been dropped on the canvas. - * @param {yfiles.input.InputModeEventArgs} evt + * @param evt * @protected */ onDragDropped(evt:yfiles.input.InputModeEventArgs):void; /** * Called once a drag has entered the canvas. - * @param {yfiles.input.InputModeEventArgs} evt + * @param evt * @protected */ onDragEntered(evt:yfiles.input.InputModeEventArgs):void; /** * Called whenever a drag is over the canvas. - * @param {yfiles.input.InputModeEventArgs} evt + * @param evt * @protected */ onDraggedOver(evt:yfiles.input.InputModeEventArgs):void; /** * Called once a drag has left the canvas. - * @param {yfiles.input.InputModeEventArgs} evt + * @param evt * @protected */ onDragLeft(evt:yfiles.input.InputModeEventArgs):void; @@ -22439,13 +22460,13 @@ declare namespace system{ * It is called prior to the {@link yfiles.input.DropInputMode#onDragEntered}, {@link yfiles.input.DropInputMode#onDraggedOver}, {@link yfiles.input.DropInputMode#onDragDropped} * and {@link yfiles.input.DropInputMode#onDragLeft} methods. *

    - * @param {yfiles.geometry.Point} location The current location of the mouse in world coordinates. + * @param location The current location of the mouse in world coordinates. * @protected */ setDragLocation(location:yfiles.geometry.Point):void; /** * Overridden to only return true if this instance does not currently {@link yfiles.input.ConcurrencyController#hasMutex have the input mutex}. - * @returns {boolean} true iff this instance does not {@link yfiles.input.ConcurrencyController#hasMutex own the mutex}. + * @returns true iff this instance does not {@link #hasMutex own the mutex}. */ tryStop():boolean; /** @@ -22453,7 +22474,7 @@ declare namespace system{ *

    * Clients should not call this method as this is handled by the framework. *

    - * @param {yfiles.input.IInputModeContext} context the context + * @param context the context */ uninstall(context:yfiles.input.IInputModeContext):void; /** @@ -22508,7 +22529,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.DropInputMode#removeDragEnteredListener */ addDragEnteredListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22527,7 +22548,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.DropInputMode#addDragEnteredListener */ removeDragEnteredListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22546,7 +22567,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.DropInputMode#removeDragOverListener */ addDragOverListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22565,7 +22586,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.DropInputMode#addDragOverListener */ removeDragOverListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22584,7 +22605,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.DropInputMode#removeDragLeftListener */ addDragLeftListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22603,7 +22624,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.DropInputMode#addDragLeftListener */ removeDragLeftListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22622,7 +22643,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.DropInputMode#removeDragDroppedListener */ addDragDroppedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22641,7 +22662,7 @@ declare namespace system{ * To get additional data for the event, clients should use the sender which is set to the sending * {@link yfiles.input.DropInputMode}. The {@link yfiles.lang.EventArgs} provide no useful data. *

    - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.DropInputMode#addDragDroppedListener */ removeDragDroppedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -22709,14 +22730,13 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.ConcurrencyController#exclusive} by default. *

    - * @class yfiles.input.FocusGuardInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface FocusGuardInputMode extends Object,yfiles.input.IInputMode{} export class FocusGuardInputMode { /** * Creates a new instance of this mode. - * @constructor */ constructor(); /** @@ -22735,10 +22755,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.FocusGuardInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -22788,7 +22808,7 @@ declare namespace system{ onStopped():void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -22800,7 +22820,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -22849,7 +22869,7 @@ declare namespace system{ * This mode is {@link yfiles.input.HandleInputMode#exclusive} by default. *

    * @see yfiles.input.IHandle - * @class yfiles.input.HandleInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface HandleInputMode extends Object,yfiles.input.IInputMode{} @@ -22857,12 +22877,11 @@ declare namespace system{ /** * Creates a new mode with no handles initially. * @see yfiles.input.HandleInputMode#handles - * @constructor */ constructor(); /** * Adds a handle to the collection of handles managed by this instance. - * @param {yfiles.input.IHandle} handle The handle to add. + * @param handle The handle to add. */ addHandle(handle:yfiles.input.IHandle):void; /** @@ -22870,10 +22889,10 @@ declare namespace system{ *

    * The cursor and type are used to initialize the {@link yfiles.input.IHandle} instance. *

    - * @param {yfiles.geometry.IMutablePoint} location The point to use as a handle. - * @param {yfiles.view.Cursor} [cursor=null] The cursor to use. - * @param {yfiles.input.HandleTypes} [type=yfiles.input.HandleTypes.DEFAULT] The type of the handle to create. - * @returns {yfiles.input.IHandle} The handle created. + * @param location The point to use as a handle. + * @param [cursor=null] The cursor to use. + * @param [type=yfiles.input.HandleTypes.DEFAULT] The type of the handle to create. + * @returns The handle created. */ addHandle(location:yfiles.geometry.IMutablePoint,cursor?:yfiles.view.Cursor,type?:yfiles.input.HandleTypes):yfiles.input.IHandle; /** @@ -22882,10 +22901,10 @@ declare namespace system{ * The cursor and type are used to initialize the {@link yfiles.input.IHandle} instance. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.IMutablePoint} options.location The point to use as a handle. - * @param {yfiles.view.Cursor} [options.cursor=null] The cursor to use. - * @param {yfiles.input.HandleTypes} [options.type=yfiles.input.HandleTypes.DEFAULT] The type of the handle to create. - * @returns {yfiles.input.IHandle} The handle created. + * @param options.location The point to use as a handle. + * @param [options.cursor=null] The cursor to use. + * @param [options.type=yfiles.input.HandleTypes.DEFAULT] The type of the handle to create. + * @returns The handle created. */ addHandle(options:{location:yfiles.geometry.IMutablePoint,cursor?:yfiles.view.Cursor,type?:yfiles.input.HandleTypes}):yfiles.input.IHandle; /** @@ -22893,7 +22912,7 @@ declare namespace system{ *

    * This happens when the mouse pointer hovers over a handle. This changes the mouse cursor to the handle's {@link yfiles.input.IHandle#cursor}. *

    - * @param {yfiles.input.IHandle} handle + * @param handle * @protected */ arm(handle:yfiles.input.IHandle):void; @@ -22902,7 +22921,7 @@ declare namespace system{ *

    * This will simulate the user having initialized a drag of the given handle. *

    - * @param {yfiles.input.IHandle} handle The handle to be dragged. + * @param handle The handle to be dragged. */ beginDragging(handle:yfiles.input.IHandle):void; /** @@ -22912,21 +22931,21 @@ declare namespace system{ /** * Creates an {@link yfiles.input.IInputModeContext} for use with the {@link yfiles.input.IHandle} interface for the upcoming drag * operation. - * @returns {yfiles.input.IInputModeContext} An instance of {@link yfiles.input.IInputModeContext}. + * @returns An instance of {@link }. * @protected */ createHandleInputModeContext():yfiles.input.IInputModeContext; /** * Helper method that yields a suitably configured {@link yfiles.input.InputModeEventArgs} for this input mode. - * @returns {yfiles.input.InputModeEventArgs} An input mode event argument that is configured for this instance. + * @returns An input mode event argument that is configured for this instance. * @protected */ createInputModeEventArgs():yfiles.input.InputModeEventArgs; /** * Callback that creates the {@link yfiles.view.Visual} for the given handle. - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.input.IHandle} handle The handle to create a visual representation for. - * @returns {yfiles.view.SvgVisual} The {@link yfiles.view.Visual}. + * @param handle The handle to create a visual representation for. + * @param context + * @returns The {@link }. * @protected */ createVisual(context:yfiles.view.IRenderContext,handle:yfiles.input.IHandle):yfiles.view.SvgVisual; @@ -22943,15 +22962,15 @@ declare namespace system{ *

    * The default implementation compares the manhatten distance of the handles to find the closest handle. *

    - * @param {yfiles.geometry.Point} location The coordinates in the world coordinate system. - * @returns {yfiles.input.IHandle} The closest handle that has been hit or null + * @param location The coordinates in the world coordinate system. + * @returns The closest handle that has been hit or null * @protected */ getClosestHitHandle(location:yfiles.geometry.Point):yfiles.input.IHandle; /** * Finds the closest hit handle for the given world coordinate pair. - * @param {yfiles.geometry.Point} location The coordinates in the world coordinate system. - * @returns {yfiles.input.IHandle} The closest handle that has been hit or null + * @param location The coordinates in the world coordinate system. + * @returns The closest handle that has been hit or null * @protected */ getClosestHitHandleTouch(location:yfiles.geometry.Point):yfiles.input.IHandle; @@ -22960,28 +22979,28 @@ declare namespace system{ *

    * This implementation uses the manhatten distance as a metric to determine if the handle was hit. *

    - * @param {yfiles.input.IHandle} handle The handle to check - * @param {yfiles.geometry.Point} location The view coordinates to check. - * @param {yfiles.geometry.Point} distance The distance of the handle to the location. In the default implementation, this is a tuple representing the x- and + * @param handle The handle to check + * @param location The view coordinates to check. + * @param distance The distance of the handle to the location. In the default implementation, this is a tuple representing the x- and * y-distance of the handle to the location. - * @returns {boolean} Whether the handle has been hit. + * @returns Whether the handle has been hit. * @protected */ handleIsHit(handle:yfiles.input.IHandle,location:yfiles.geometry.Point,distance:yfiles.geometry.Point):boolean; /** * Determines whether a given handle has been visually hit by the touch device at the given world coordinates. - * @param {yfiles.input.IHandle} handle The handle to check - * @param {yfiles.geometry.Point} location The world coordinates to check. - * @param {yfiles.geometry.Point} distance The distance of the handle to the touch location. In the default implementation, this is a tuple representing the x- and + * @param handle The handle to check + * @param location The world coordinates to check. + * @param distance The distance of the handle to the touch location. In the default implementation, this is a tuple representing the x- and * y-distance of the handle to the touch location. - * @returns {boolean} Whether the handle has been hit. + * @returns Whether the handle has been hit. * @protected */ handleIsHitTouch(handle:yfiles.input.IHandle,location:yfiles.geometry.Point,distance:yfiles.geometry.Point):boolean; /** * Installs the visual representation of the handles into the canvas into the {@link yfiles.view.CanvasComponent#inputModeGroup}. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.input.ConcurrencyController} controller + * @param context + * @param controller */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; /** @@ -22991,9 +23010,9 @@ declare namespace system{ invalidate():void; /** * Event recognizer callback used to determine whether the mouse is currently hovering over a handle. - * @param {Object} sender - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} Whether the mouse is hovering over handle. + * @param sender + * @param evt + * @returns Whether the mouse is hovering over handle. * @see yfiles.input.HandleInputMode#getClosestHitHandle * @protected */ @@ -23033,13 +23052,13 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Triggers the {@link yfiles.input.HandleInputMode#addDragCanceledListener DragCanceled} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceled(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.HandleInputMode#addDragCancelingListener DragCanceling} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceling(evt:yfiles.input.InputModeEventArgs):void; @@ -23048,7 +23067,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.HandleInputMode#addDragFinishedListener DragFinished} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinished(evt:yfiles.input.InputModeEventArgs):void; @@ -23057,7 +23076,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.HandleInputMode#addDragFinishingListener DragFinishing} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinishing(evt:yfiles.input.InputModeEventArgs):void; @@ -23066,7 +23085,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.HandleInputMode#addDraggedListener Dragged} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragged(evt:yfiles.input.InputModeEventArgs):void; @@ -23075,19 +23094,19 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.HandleInputMode#addDraggingListener Dragging} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragging(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.HandleInputMode#addDragStartedListener DragStarted} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarted(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.HandleInputMode#addDragStartingListener DragStarting} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarting(evt:yfiles.input.InputModeEventArgs):void; @@ -23104,17 +23123,17 @@ declare namespace system{ onStopped():void; /** * Removes a handle from the collection of handles managed by this instance. - * @param {yfiles.input.IHandle} handle The handle to remove. + * @param handle The handle to remove. */ removeHandle(handle:yfiles.input.IHandle):void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** * Removes the {@link yfiles.view.ICanvasObject} that displays the handles from the canvas. - * @param {yfiles.input.IInputModeContext} context + * @param context */ uninstall(context:yfiles.input.IInputModeContext):void; /** @@ -23588,97 +23607,97 @@ declare namespace system{ affectedItems:yfiles.collections.IEnumerable; /** * Adds the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDragFinishingListener */ addDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDragFinishingListener */ removeDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDragFinishedListener */ addDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDragFinishedListener */ removeDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDragStartingListener */ addDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDragStartingListener */ removeDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDragStartedListener */ addDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDragStartedListener */ removeDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDraggingListener */ addDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDraggingListener */ removeDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDraggedListener */ addDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDraggedListener */ removeDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDragCanceledListener */ addDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDragCanceledListener */ removeDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.HandleInputMode#removeDragCancelingListener */ addDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.HandleInputMode#addDragCancelingListener */ removeDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -23708,8 +23727,8 @@ declare namespace system{ * {@link yfiles.input.IDragHandler#handleMove}. Implementations should reset the position of the items they modify to their * initial state. Alternatively to this method the {@link yfiles.input.IDragHandler#dragFinished} method might be called. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Point} originalLocation The value of the coordinate of the {@link yfiles.input.IDragHandler#location} property at the time of {@link yfiles.input.IDragHandler#initializeDrag}. + * @param context The context to retrieve information about the drag from. + * @param originalLocation The value of the coordinate of the {@link #location} property at the time of {@link #initializeDrag}. * @abstract */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; @@ -23720,11 +23739,11 @@ declare namespace system{ * {@link yfiles.input.IDragHandler#handleMove}. Alternatively to this method the {@link yfiles.input.IDragHandler#cancelDrag} method might * be called. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Point} newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the - * implementation the {@link yfiles.input.IDragHandler#location} may or may not be modified to reflect the new value. This is the same value as delivered in the last - * invocation of {@link yfiles.input.IDragHandler#handleMove} - * @param {yfiles.geometry.Point} originalLocation The value of the {@link yfiles.input.IDragHandler#location} property at the time of {@link yfiles.input.IDragHandler#initializeDrag}. + * @param context The context to retrieve information about the drag from. + * @param newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the + * implementation the {@link #location} may or may not be modified to reflect the new value. This is the same value as delivered in the last + * invocation of {@link #handleMove} + * @param originalLocation The value of the {@link #location} property at the time of {@link #initializeDrag}. * @abstract */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; @@ -23735,10 +23754,10 @@ declare namespace system{ * call will be followed by either one {@link yfiles.input.IDragHandler#dragFinished} or one {@link yfiles.input.IDragHandler#cancelDrag} * call. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Point} originalLocation The value of the {@link yfiles.input.IDragHandler#location} property at the time of {@link yfiles.input.IDragHandler#initializeDrag}. - * @param {yfiles.geometry.Point} newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the - * implementation the {@link yfiles.input.IDragHandler#location} may or may not be modified to reflect the new value. + * @param context The context to retrieve information about the drag from. + * @param originalLocation The value of the {@link #location} property at the time of {@link #initializeDrag}. + * @param newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the + * implementation the {@link #location} may or may not be modified to reflect the new value. * @abstract */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; @@ -23748,7 +23767,7 @@ declare namespace system{ * This call will be followed by one or more calls to {@link yfiles.input.IDragHandler#handleMove}, and a final {@link yfiles.input.IDragHandler#dragFinished} * or {@link yfiles.input.IDragHandler#cancelDrag}. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. + * @param context The context to retrieve information about the drag from. * @abstract */ initializeDrag(context:yfiles.input.IInputModeContext):void; @@ -23794,12 +23813,12 @@ declare namespace system{ export interface IGridConstraintProvider extends Object{ /** * Performs the actual snapping to grid coordinates. - * @param {yfiles.input.IInputModeContext} context The context in which the snapping should occur. - * @param {T} item The item of which the coordinates should be snapped. - * @param {yfiles.geometry.IMutablePoint} location The coordinates to snap. - * @param {yfiles.input.SnapPolicy} xSnapPolicy The policy for the x coordinate. - * @param {yfiles.input.SnapPolicy} ySnapPolicy The policy for the y coordinate. - * @returns {boolean} Whether the point has been snapped. + * @param context The context in which the snapping should occur. + * @param item The item of which the coordinates should be snapped. + * @param location The coordinates to snap. + * @param xSnapPolicy The policy for the x coordinate. + * @param ySnapPolicy The policy for the y coordinate. + * @returns Whether the point has been snapped. * @abstract */ snapToGrid(context:yfiles.input.IInputModeContext,item:T,location:yfiles.geometry.IMutablePoint,xSnapPolicy:yfiles.input.SnapPolicy,ySnapPolicy:yfiles.input.SnapPolicy):boolean; @@ -23829,7 +23848,7 @@ declare namespace system{ /** * A simple integer based implementation of {@link yfiles.input.IGridConstraintProvider.}. * Type parameter T: The type of the items. - * @class yfiles.input.GridConstraintProvider. + * @class * @implements {yfiles.input.IGridConstraintProvider.} * @template T */ @@ -23837,31 +23856,28 @@ declare namespace system{ export class GridConstraintProvider { /** * Creates a new instance using the given grid info. - * @param {yfiles.view.GridInfo} gridInfo The grid info object. - * @constructor + * @param gridInfo The grid info object. */ constructor(gridInfo:yfiles.view.GridInfo); /** * Creates a new instance using the given grid specification. - * @param {number} gridWidth Width of the grid. - * @param {number} gridHeight Height of the grid. - * @constructor + * @param gridWidth Width of the grid. + * @param gridHeight Height of the grid. */ constructor(gridWidth:number,gridHeight:number); /** * Creates a new instance using the given grid distances. - * @param {number} gridSize - * @constructor + * @param gridSize */ constructor(gridSize:number); /** * - * @param {yfiles.input.IInputModeContext} context - * @param {T} item - * @param {yfiles.geometry.IMutablePoint} location - * @param {yfiles.input.SnapPolicy} xSnapPolicy - * @param {yfiles.input.SnapPolicy} ySnapPolicy - * @returns {boolean} + * @param context + * @param item + * @param location + * @param xSnapPolicy + * @param ySnapPolicy + * @returns */ snapToGrid(context:yfiles.input.IInputModeContext,item:T,location:yfiles.geometry.IMutablePoint,xSnapPolicy:yfiles.input.SnapPolicy,ySnapPolicy:yfiles.input.SnapPolicy):boolean; /** @@ -24121,8 +24137,8 @@ declare namespace system{ export interface IHandleProvider extends Object{ /** * Returns a collection of zero or more {@link yfiles.input.IHandle} implementations that are associated with this instance. - * @param {yfiles.input.IInputModeContext} context - * @returns {yfiles.collections.IEnumerable.} A collection of handles. + * @param context + * @returns A collection of handles. * @abstract */ getHandles(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; @@ -24148,8 +24164,8 @@ declare namespace system{ * Client code will use this method to query the available positions and may then call for each of the positions the {@link yfiles.input.IReshapeHandleProvider#getHandle} * method to retrieve an implementation. *

    - * @param {yfiles.input.IInputModeContext} context The context for which the handles are queried. - * @returns {yfiles.input.HandlePositions} A bitwise combination of all positions the {@link yfiles.input.IReshapeHandleProvider#getHandle} method can be queried for. + * @param context The context for which the handles are queried. + * @returns A bitwise combination of all positions the {@link #getHandle} method can be queried for. * @abstract */ getAvailableHandles(context:yfiles.input.IInputModeContext):yfiles.input.HandlePositions; @@ -24159,9 +24175,9 @@ declare namespace system{ * This method may be called for each possible single position contained in the set as returned by * {@link yfiles.input.IReshapeHandleProvider#getAvailableHandles}. *

    - * @param {yfiles.input.IInputModeContext} context The context for which the handles are queried. - * @param {yfiles.input.HandlePositions} position The single position a handle implementation should be returned for. - * @returns {yfiles.input.IHandle} An implementation of {@link yfiles.input.IHandle} for the given position. + * @param context The context for which the handles are queried. + * @param position The single position a handle implementation should be returned for. + * @returns An implementation of {@link } for the given position. * @abstract */ getHandle(context:yfiles.input.IInputModeContext,position:yfiles.input.HandlePositions):yfiles.input.IHandle; @@ -24210,10 +24226,10 @@ declare namespace system{ *
    * Implementations may hold a reference to the context instance and use it while they are being installed. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.ConcurrencyController} for this mode. + * @param controller The {@link } for this mode. * @see yfiles.input.IInputMode#uninstall * @abstract */ @@ -24224,7 +24240,7 @@ declare namespace system{ * This should stop the current edit, if one is in progress and possibly commit all of the changes. If stopping is not * possible, this method can return false *

    - * @returns {boolean} true if and only if the editing has been stopped or there was no edit in progress + * @returns true if and only if the editing has been stopped or there was no edit in progress * @see yfiles.input.IInputMode#cancel * @abstract */ @@ -24235,7 +24251,7 @@ declare namespace system{ * This code should clean up all changes made to the canvas in the {@link yfiles.input.IInputMode#install} method. After a mode has * been uninstalled it can be installed again into the same or another canvas. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. * @abstract */ @@ -24280,7 +24296,7 @@ declare namespace system{ */ export interface IInputModeContext extends Object,yfiles.view.ICanvasContext{ /** - * Tries to call {@link yfiles.graph.IGraph#invalidateDisplays} on the {@link yfiles.input.IInputModeContext#graph graph} from the {@link yfiles.input.IInputModeContext}. + * Tries to call {@link yfiles.graph.IGraph#invalidateDisplays} on the {@link yfiles.input.IInputModeContext#graph graph} obtains from the {@link yfiles.input.IInputModeContext}. *

    * If the graph instance cannot be found, {@link yfiles.view.CanvasComponent#invalidate} will be called instead. *

    @@ -24296,12 +24312,11 @@ declare namespace system{ */ parentInputMode:yfiles.input.IInputMode; /** - * Tries to retrieve an {@link yfiles.graph.IGraph} instance from the {@link yfiles.input.IInputModeContext}. + * Tries to retrieve an {@link yfiles.graph.IGraph} instance from an {@link yfiles.input.IInputModeContext}. *

    * This will use the {@link yfiles.graph.ILookup} and if this yields nothing, it will use the {@link yfiles.graph.ILookup} of the {@link yfiles.view.ICanvasContext#canvasComponent} or * finally test if it is a {@link yfiles.view.GraphComponent} to obtain the graph from. *

    - * @returns Return the graph or null. * @type {yfiles.graph.IGraph} */ graph?:yfiles.graph.IGraph; @@ -24310,55 +24325,55 @@ declare namespace system{ /** * Factory method that creates an {@link yfiles.input.IInputModeContext} that uses the provided parent mode, parent context, and * lookup decoration. - * @param {yfiles.input.IInputMode} parent - * @param {yfiles.input.IInputModeContext} parentContext - * @param {function(Object, yfiles.lang.Class): Object} lookupCallback - * @returns {yfiles.input.IInputModeContext} + * @param parent + * @param parentContext + * @param lookupCallback + * @returns * @static */ createInputModeContext?(parent:yfiles.input.IInputMode,parentContext:yfiles.input.IInputModeContext,lookupCallback:(subject:Object,type:yfiles.lang.Class)=>Object):yfiles.input.IInputModeContext; /** * Factory method that creates an {@link yfiles.input.IInputModeContext} that uses the provided parent mode and lookup decoration. - * @param {yfiles.input.IInputMode} parent - * @param {function(Object, yfiles.lang.Class): Object} lookupCallback - * @returns {yfiles.input.IInputModeContext} + * @param parent + * @param lookupCallback + * @returns * @static */ createInputModeContext?(parent:yfiles.input.IInputMode,lookupCallback:(subject:Object,type:yfiles.lang.Class)=>Object):yfiles.input.IInputModeContext; /** * Factory method that creates an {@link yfiles.input.IInputModeContext} that uses the provided values. - * @param {yfiles.view.CanvasComponent} canvas The {@link yfiles.view.CanvasComponent} to use, may not be null. - * @param {yfiles.input.IInputMode} [parent=null] The mode to set as the parent. This may be null for the canvas' context. - * @param {yfiles.graph.ILookup} [lookup=null] The lookup to use. - * @returns {yfiles.input.IInputModeContext} + * @param canvas The {@link } to use, may not be null. + * @param [parent=null] The mode to set as the parent. This may be null for the canvas' context. + * @param [lookup=null] The lookup to use. + * @returns * @static */ createInputModeContext?(canvas:yfiles.view.CanvasComponent,parent?:yfiles.input.IInputMode,lookup?:yfiles.graph.ILookup):yfiles.input.IInputModeContext; /** * Factory method that creates an {@link yfiles.input.IInputModeContext} that uses the provided values. * @param {Object} options The parameters to pass. - * @param {yfiles.view.CanvasComponent} options.canvas The {@link yfiles.view.CanvasComponent} to use, may not be null. - * @param {yfiles.input.IInputMode} [options.parent=null] The mode to set as the parent. This may be null for the canvas' context. - * @param {yfiles.graph.ILookup} [options.lookup=null] The lookup to use. - * @returns {yfiles.input.IInputModeContext} + * @param options.canvas The {@link } to use, may not be null. + * @param [options.parent=null] The mode to set as the parent. This may be null for the canvas' context. + * @param [options.lookup=null] The lookup to use. + * @returns * @static */ createInputModeContext?(options:{canvas:yfiles.view.CanvasComponent,parent?:yfiles.input.IInputMode,lookup?:yfiles.graph.ILookup}):yfiles.input.IInputModeContext; /** * Factory method that creates an {@link yfiles.input.IInputModeContext} that uses the provided parent mode, parent context, and * lookup decoration. - * @param {yfiles.input.IInputMode} parent - * @param {yfiles.input.IInputModeContext} parentContext - * @param {yfiles.graph.ILookup} lookup - * @returns {yfiles.input.IInputModeContext} + * @param parent + * @param parentContext + * @param lookup + * @returns * @static */ createInputModeContext?(parent:yfiles.input.IInputMode,parentContext:yfiles.input.IInputModeContext,lookup:yfiles.graph.ILookup):yfiles.input.IInputModeContext; /** * Factory method that creates an {@link yfiles.input.IInputModeContext} that uses the provided parent mode and lookup decoration. - * @param {yfiles.input.IInputMode} parent - * @param {yfiles.graph.ILookup} [lookup=null] - * @returns {yfiles.input.IInputModeContext} + * @param parent + * @param [lookup=null] + * @returns * @static */ createInputModeContext?(parent:yfiles.input.IInputMode,lookup?:yfiles.graph.ILookup):yfiles.input.IInputModeContext; @@ -24388,7 +24403,7 @@ declare namespace system{ export interface IModelItemCollector extends Object{ /** * Adds a model item to this collector instance. - * @param {yfiles.graph.IModelItem} item The model item to add. + * @param item The model item to add. * @abstract */ add(item:yfiles.graph.IModelItem):void; @@ -24447,8 +24462,8 @@ declare namespace system{ * of {@link yfiles.input.IReshapeHandler#handleReshape}. Implementations should reset the bounds of the items they modify to their * initial state. Alternatively to this method the {@link yfiles.input.IReshapeHandler#reshapeFinished} method might be called. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the reshaping from. - * @param {yfiles.geometry.Rect} originalBounds The value of the coordinate of the {@link yfiles.input.IReshapeHandler#bounds} property at the time of {@link yfiles.input.IReshapeHandler#initializeReshape}. + * @param context The context to retrieve information about the reshaping from. + * @param originalBounds The value of the coordinate of the {@link #bounds} property at the time of {@link #initializeReshape}. * @abstract */ cancelReshape(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect):void; @@ -24459,10 +24474,10 @@ declare namespace system{ * final call will be followed by either one {@link yfiles.input.IReshapeHandler#reshapeFinished} or one {@link yfiles.input.IReshapeHandler#cancelReshape} * call. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the reshaping from. - * @param {yfiles.geometry.Rect} originalBounds The value of the {@link yfiles.input.IReshapeHandler#bounds} property at the time of {@link yfiles.input.IReshapeHandler#initializeReshape}. - * @param {yfiles.geometry.Rect} newBounds The coordinates of the bounds in the world coordinate system that the client wants the shape to be at. Depending on the - * implementation the {@link yfiles.input.IReshapeHandler#bounds} may or may not be modified to reflect the new value. + * @param context The context to retrieve information about the reshaping from. + * @param originalBounds The value of the {@link #bounds} property at the time of {@link #initializeReshape}. + * @param newBounds The coordinates of the bounds in the world coordinate system that the client wants the shape to be at. Depending on the + * implementation the {@link #bounds} may or may not be modified to reflect the new value. * @abstract */ handleReshape(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; @@ -24472,7 +24487,7 @@ declare namespace system{ * This call will be followed by one or more calls to {@link yfiles.input.IReshapeHandler#handleReshape}, and a final {@link yfiles.input.IReshapeHandler#reshapeFinished} * or {@link yfiles.input.IReshapeHandler#cancelReshape}. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. + * @param context The context to retrieve information about the drag from. * @abstract */ initializeReshape(context:yfiles.input.IInputModeContext):void; @@ -24483,11 +24498,11 @@ declare namespace system{ * of {@link yfiles.input.IReshapeHandler#handleReshape}. Alternatively to this method the {@link yfiles.input.IReshapeHandler#cancelReshape} * method might be called. *

    - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Rect} newBounds The coordinates of the bounds in the world coordinate system that the client wants the shape to be at. Depending on the - * implementation the {@link yfiles.input.IReshapeHandler#bounds} may or may not be modified to reflect the new value. This is the same value as delivered in the last - * invocation of {@link yfiles.input.IReshapeHandler#handleReshape} - * @param {yfiles.geometry.Rect} originalBounds The value of the coordinate of the {@link yfiles.input.IReshapeHandler#bounds} property at the time of {@link yfiles.input.IReshapeHandler#initializeReshape}. + * @param context The context to retrieve information about the drag from. + * @param newBounds The coordinates of the bounds in the world coordinate system that the client wants the shape to be at. Depending on the + * implementation the {@link #bounds} may or may not be modified to reflect the new value. This is the same value as delivered in the last + * invocation of {@link #handleReshape} + * @param originalBounds The value of the coordinate of the {@link #bounds} property at the time of {@link #initializeReshape}. * @abstract */ reshapeFinished(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; @@ -24507,15 +24522,14 @@ declare namespace system{ }; /** * Event argument base class that is used by events that are triggered by {@link yfiles.input.IInputMode} implementations - * @class yfiles.input.InputModeEventArgs + * @class * @extends {yfiles.lang.EventArgs} */ export interface InputModeEventArgs extends yfiles.lang.EventArgs{} export class InputModeEventArgs { /** * Initializes a new instance of the {@link yfiles.input.InputModeEventArgs} class. - * @param {yfiles.input.IInputModeContext} context The context to initialize the {@link yfiles.input.InputModeEventArgs#context} property with. - * @constructor + * @param context The context to initialize the {@link #context} property with. */ constructor(context:yfiles.input.IInputModeContext); /** @@ -24530,7 +24544,7 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.KeyboardInputMode#exclusive} by default. *

    - * @class yfiles.input.KeyboardInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface KeyboardInputMode extends Object,yfiles.input.IInputMode{} @@ -24541,10 +24555,10 @@ declare namespace system{ *

    * The command will not be allowed to execute if this mode is {@link yfiles.input.KeyboardInputMode#enabled disabled} or {@link yfiles.input.ConcurrencyController#active inactive}. *

    - * @param {yfiles.input.ICommand} command The command to register handlers with. - * @param {function(yfiles.input.ICommand, Object, Object): boolean} [execute=null] The handler for the execution; a handler that will do nothing if omitted. - * @param {function(yfiles.input.ICommand, Object, Object): boolean} [canExecute=null] The handler that determines executability; a handler that is always enabled if omitted. - * @returns {yfiles.input.KeyboardInputModeBinding} A token for the newly created command binding that can used to later {@link yfiles.input.KeyboardInputModeBinding#remove remove} this binding from this instance again. + * @param command The command to register handlers with. + * @param [execute=null] The handler for the execution; a handler that will do nothing if omitted. + * @param [canExecute=null] The handler that determines executability; a handler that is always enabled if omitted. + * @returns A token for the newly created command binding that can used to later {@link #remove remove} this binding from this instance again. */ addCommandBinding(command:yfiles.input.ICommand,execute?:(command:yfiles.input.ICommand,parameter:Object,source:Object)=>boolean,canExecute?:(command:yfiles.input.ICommand,parameter:Object,source:Object)=>boolean):yfiles.input.KeyboardInputModeBinding; /** @@ -24553,10 +24567,10 @@ declare namespace system{ * The command will not be allowed to execute if this mode is {@link yfiles.input.KeyboardInputMode#enabled disabled} or {@link yfiles.input.ConcurrencyController#active inactive}. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.input.ICommand} options.command The command to register handlers with. - * @param {function(yfiles.input.ICommand, Object, Object): boolean} [options.execute=null] The handler for the execution; a handler that will do nothing if omitted. - * @param {function(yfiles.input.ICommand, Object, Object): boolean} [options.canExecute=null] The handler that determines executability; a handler that is always enabled if omitted. - * @returns {yfiles.input.KeyboardInputModeBinding} A token for the newly created command binding that can used to later {@link yfiles.input.KeyboardInputModeBinding#remove remove} this binding from this instance again. + * @param options.command The command to register handlers with. + * @param [options.execute=null] The handler for the execution; a handler that will do nothing if omitted. + * @param [options.canExecute=null] The handler that determines executability; a handler that is always enabled if omitted. + * @returns A token for the newly created command binding that can used to later {@link #remove remove} this binding from this instance again. */ addCommandBinding(options:{command:yfiles.input.ICommand,execute?:(command:yfiles.input.ICommand,parameter:Object,source:Object)=>boolean,canExecute?:(command:yfiles.input.ICommand,parameter:Object,source:Object)=>boolean}):yfiles.input.KeyboardInputModeBinding; /** @@ -24564,20 +24578,20 @@ declare namespace system{ *

    * Using this registration method, the command will not be allowed to execute if this mode is {@link yfiles.input.KeyboardInputMode#enabled disabled} or {@link yfiles.input.ConcurrencyController#active inactive}. *

    - * @param {yfiles.view.Key} key The key constant that should be recognized. - * @param {yfiles.view.ModifierKeys} modifiers The modifiers that should be recognized when the key is pressed. - * @param {yfiles.input.ICommand} command The command to execute. - * @param {Object} [commandParameter=null] The command parameter to use for the {@link yfiles.input.ICommand#execute execution}; null if omitted. - * @returns {yfiles.input.KeyboardInputModeBinding} A token for the newly created command binding that can used to later {@link yfiles.input.KeyboardInputModeBinding#remove remove} this binding from this instance again. + * @param key The key constant that should be recognized. + * @param modifiers The modifiers that should be recognized when the key is pressed. + * @param command The command to execute. + * @param [commandParameter=null] The command parameter to use for the {@link #execute execution}; null if omitted. + * @returns A token for the newly created command binding that can used to later {@link #remove remove} this binding from this instance again. */ addKeyBinding(key:yfiles.view.Key,modifiers:yfiles.view.ModifierKeys,command:yfiles.input.ICommand,commandParameter?:Object):yfiles.input.KeyboardInputModeBinding; /** * Adds a given handler to this instance that will be triggered if the event recognizer recognizes a {@link yfiles.view.KeyEventArgs key event} that has * been triggered by the {@link yfiles.view.CanvasComponent}. - * @param {function(Object, yfiles.lang.EventArgs): boolean} recognizer An event recognizer that will be fed with all key events. - * @param {yfiles.input.ICommand} command The command to invoke if the recognizer matches a key event. - * @param {Object} [commandParameter=null] The optional parameter to provide to the command. - * @returns {yfiles.input.KeyboardInputModeBinding} The newly constructed binding on which {@link yfiles.input.KeyboardInputModeBinding#remove} can be called to remove the + * @param recognizer An event recognizer that will be fed with all key events. + * @param command The command to invoke if the recognizer matches a key event. + * @param [commandParameter=null] The optional parameter to provide to the command. + * @returns The newly constructed binding on which {@link #remove} can be called to remove the * resulting binding from this instance. */ addRecognizerBinding(recognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean,command:yfiles.input.ICommand,commandParameter?:Object):yfiles.input.KeyboardInputModeBinding; @@ -24597,10 +24611,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.KeyboardInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -24653,16 +24667,16 @@ declare namespace system{ /** * Removes all previously registered commands from this instance. *

    - * This effectively turn disables the command for the instance managed by this mode. + * This effectively disables the command for the instance managed by this mode. *

    - * @param {yfiles.input.ICommand} command The command to remove from all registered bindings. + * @param command The command to remove from all registered bindings. * @see yfiles.input.KeyboardInputMode#addKeyBinding * @see yfiles.input.KeyboardInputMode#addRecognizerBinding */ removeCommand(command:yfiles.input.ICommand):void; /** * Overridden to only return true if this instance does not currently {@link yfiles.input.ConcurrencyController#hasMutex have the input mutex}. - * @returns {boolean} true iff this instance does not {@link yfiles.input.ConcurrencyController#hasMutex own the mutex}. + * @returns true iff this instance does not {@link #hasMutex own the mutex}. */ tryStop():boolean; /** @@ -24674,7 +24688,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -24725,7 +24739,7 @@ declare namespace system{ * {@link yfiles.input.KeyboardInputMode#addRecognizerBinding}. Removing the instances is done via the instance method {@link yfiles.input.KeyboardInputModeBinding#remove} * of this type. *

    - * @class yfiles.input.KeyboardInputModeBinding + * @class * @final */ export interface KeyboardInputModeBinding extends Object{} @@ -24752,14 +24766,13 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.MarqueeSelectionInputMode#exclusive} by default. *

    - * @class yfiles.input.MarqueeSelectionInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface MarqueeSelectionInputMode extends Object,yfiles.input.IInputMode{} export class MarqueeSelectionInputMode { /** * Creates a new instance of the marquee selection mode. - * @constructor */ constructor(); /** @@ -24768,7 +24781,7 @@ declare namespace system{ cancel():void; /** * Helper method that yields a suitably configured {@link yfiles.input.InputModeEventArgs} for this input mode. - * @returns {yfiles.input.MarqueeSelectionEventArgs} An input mode event argument that is configured for this instance. + * @returns An input mode event argument that is configured for this instance. * @protected */ createInputModeEventArgs():yfiles.input.MarqueeSelectionEventArgs; @@ -24784,10 +24797,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.MarqueeSelectionInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -24827,14 +24840,14 @@ declare namespace system{ /** * Triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDragCanceledListener DragCanceled} * event. - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceled(evt:yfiles.input.MarqueeSelectionEventArgs):void; /** * Triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDragCancelingListener DragCanceling} * event. - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceling(evt:yfiles.input.MarqueeSelectionEventArgs):void; @@ -24844,7 +24857,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDragFinishedListener DragFinished} * event. *

    - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinished(evt:yfiles.input.MarqueeSelectionEventArgs):void; @@ -24854,7 +24867,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDragFinishingListener DragFinishing} * event. *

    - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinishing(evt:yfiles.input.MarqueeSelectionEventArgs):void; @@ -24864,7 +24877,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDraggedListener Dragged} * event. *

    - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragged(evt:yfiles.input.MarqueeSelectionEventArgs):void; @@ -24874,21 +24887,21 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDraggingListener Dragging} * event. *

    - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragging(evt:yfiles.input.MarqueeSelectionEventArgs):void; /** * Triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDragStartedListener DragStarted} * event. - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarted(evt:yfiles.input.MarqueeSelectionEventArgs):void; /** * Triggers the {@link yfiles.input.MarqueeSelectionInputMode#addDragStartingListener DragStarting} * event. - * @param {yfiles.input.MarqueeSelectionEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarting(evt:yfiles.input.MarqueeSelectionEventArgs):void; @@ -24905,7 +24918,7 @@ declare namespace system{ onStopped():void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -24917,7 +24930,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -25042,97 +25055,97 @@ declare namespace system{ releasedRecognizerTouch:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** * Adds the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDraggingListener */ addDraggingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDraggingListener */ removeDraggingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Adds the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDraggedListener */ addDraggedListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDraggedListener */ removeDraggedListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Adds the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDragCanceledListener */ addDragCanceledListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDragCanceledListener */ removeDragCanceledListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Adds the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDragCancelingListener */ addDragCancelingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDragCancelingListener */ removeDragCancelingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Adds the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDragFinishingListener */ addDragFinishingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDragFinishingListener */ removeDragFinishingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Adds the given listener for the DragFinished event that occurs the drag has been finished. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDragFinishedListener */ addDragFinishedListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the DragFinished event that occurs the drag has been finished. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDragFinishedListener */ removeDragFinishedListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Adds the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDragStartingListener */ addDragStartingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDragStartingListener */ removeDragStartingListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Adds the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MarqueeSelectionInputMode#removeDragStartedListener */ addDragStartedListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; /** * Removes the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.MarqueeSelectionEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MarqueeSelectionInputMode#addDragStartedListener */ removeDragStartedListener(listener:(sender:Object,evt:yfiles.input.MarqueeSelectionEventArgs)=>void):void; @@ -25140,7 +25153,7 @@ declare namespace system{ } /** * Event arguments used by {@link yfiles.input.MarqueeSelectionInputMode}. - * @class yfiles.input.MarqueeSelectionEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface MarqueeSelectionEventArgs extends yfiles.input.InputModeEventArgs{} @@ -25156,16 +25169,15 @@ declare namespace system{ * Event argument that can be used to query the text to display when the mouse hovers over the given point in world * coordinate space. * @see yfiles.input.MouseHoverInputMode - * @class yfiles.input.ToolTipQueryEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface ToolTipQueryEventArgs extends yfiles.input.InputModeEventArgs{} export class ToolTipQueryEventArgs { /** * Initializes a new instance of the {@link yfiles.input.ToolTipQueryEventArgs} class. - * @param {yfiles.input.IInputModeContext} context The context of the query. - * @param {yfiles.geometry.Point} queryLocation The query location. - * @constructor + * @param context The context of the query. + * @param queryLocation The query location. */ constructor(context:yfiles.input.IInputModeContext,queryLocation:yfiles.geometry.Point); /** @@ -25176,6 +25188,9 @@ declare namespace system{ /** * Gets or sets the tool tip content to use. *

    + * The content can be either a string or any HTML element. + *

    + *

    * Setting this property will set the {@link yfiles.input.ToolTipQueryEventArgs#handled} property to true. *

    * @type {Object} @@ -25202,21 +25217,19 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.MouseHoverInputMode#exclusive} by default. *

    - * @class yfiles.input.MouseHoverInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface MouseHoverInputMode extends Object,yfiles.input.IInputMode{} export class MouseHoverInputMode { /** * Creates a new instance using the provided {@link yfiles.input.MouseHoverInputMode#toolTip} and query callback. - * @param {yfiles.view.ToolTip} toolTip - * @param {function(Object, yfiles.input.ToolTipQueryEventArgs): void} textProvider - * @constructor + * @param toolTip + * @param textProvider */ constructor(toolTip:yfiles.view.ToolTip,textProvider:(sender:Object,evt:yfiles.input.ToolTipQueryEventArgs)=>void); /** * Creates a new instance with default values. - * @constructor */ constructor(); /** @@ -25225,8 +25238,8 @@ declare namespace system{ * This default implementation of this method moves the tooltip into the visible area if it extends beyond the document * bounds. *

    - * @param {yfiles.geometry.Point} originalPosition The calculated tooltip position relative to the document root - * @returns {yfiles.geometry.Point} The adjusted tooltip location + * @param originalPosition The calculated tooltip position relative to the document root + * @returns The adjusted tooltip location * @see yfiles.input.MouseHoverInputMode#getToolTipLocation * @protected */ @@ -25238,20 +25251,20 @@ declare namespace system{ /** * Creates an {@link yfiles.input.IInputModeContext} for use with the {@link yfiles.input.MouseHoverInputMode#addQueryToolTipListener QueryToolTip} * event for the upcoming text query operation. - * @returns {yfiles.input.IInputModeContext} An instance of {@link yfiles.input.IInputModeContext}. + * @returns An instance of {@link }. * @protected */ createHoverInputModeContext():yfiles.input.IInputModeContext; /** * Factory method that creates the {@link yfiles.input.MouseHoverInputMode#toolTip}. - * @returns {yfiles.view.ToolTip} A simple {@link yfiles.input.MouseHoverInputMode#toolTip}. + * @returns A simple {@link #toolTip}. * @protected */ createToolTip():yfiles.view.ToolTip; /** * Callback method that provides a text for the given location or null. - * @param {yfiles.geometry.Point} location The location to find a text for. - * @returns {Object} A string or null to indicate that no tool tip should be shown. + * @param location The location to find a text for. + * @returns A string or null to indicate that no tool tip should be shown. * @see yfiles.input.MouseHoverInputMode#addQueryToolTipListener * @see yfiles.input.MouseHoverInputMode#createHoverInputModeContext * @protected @@ -25262,8 +25275,8 @@ declare namespace system{ *

    * This method adds the {@link yfiles.input.MouseHoverInputMode#toolTipLocationOffset} after converting the given location to view coordinates. *

    - * @param {yfiles.geometry.Point} location The position in world coordinates. - * @returns {yfiles.geometry.Point} The position in view coordinates. + * @param location The position in world coordinates. + * @returns The position in view coordinates. * @see yfiles.input.MouseHoverInputMode#toolTipLocationOffset * @protected */ @@ -25284,10 +25297,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.MouseHoverInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -25331,7 +25344,7 @@ declare namespace system{ onHide():void; /** * Raises the {@link yfiles.input.MouseHoverInputMode#addQueryToolTipListener QueryToolTip} event. - * @param {yfiles.input.ToolTipQueryEventArgs} evt The {@link yfiles.input.ToolTipQueryEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onQueryToolTip(evt:yfiles.input.ToolTipQueryEventArgs):void; @@ -25341,7 +25354,7 @@ declare namespace system{ * This method will call {@link yfiles.input.MouseHoverInputMode#getToolTipContent} to query the content and will display the {@link yfiles.input.MouseHoverInputMode#toolTip} at * the location returned by {@link yfiles.input.MouseHoverInputMode#getToolTipLocation} if the content is not null. *

    - * @param {yfiles.geometry.Point} location + * @param location * @protected */ onShow(location:yfiles.geometry.Point):void; @@ -25358,12 +25371,12 @@ declare namespace system{ onStopped():void; /** * Immediately shows the tool tip at the given location. - * @param {yfiles.geometry.Point} location The location in the world coordinate system. + * @param location The location in the world coordinate system. */ show(location:yfiles.geometry.Point):void; /** * Overridden to only return true if this instance does not currently {@link yfiles.input.ConcurrencyController#hasMutex have the input mutex}. - * @returns {boolean} true iff this instance does not {@link yfiles.input.ConcurrencyController#hasMutex own the mutex}. + * @returns true iff this instance does not {@link #hasMutex own the mutex}. */ tryStop():boolean; /** @@ -25375,7 +25388,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -25459,7 +25472,14 @@ declare namespace system{ /** * Gets or sets the delay time before showing the tool tip. *

    - * The default value is 1 second + * The default is + *

    + *
    +       * 1
    +       * 
    + * + *

    + * second. *

    * @default '00:00:01.0' * @type {yfiles.lang.TimeSpan} @@ -25485,7 +25505,7 @@ declare namespace system{ *

    * Handlers should set the {@link yfiles.input.ToolTipQueryEventArgs#toolTip} property or set/respect the {@link yfiles.input.ToolTipQueryEventArgs#handled} property accordingly. *

    - * @param {function(Object, yfiles.input.ToolTipQueryEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MouseHoverInputMode#removeQueryToolTipListener */ addQueryToolTipListener(listener:(sender:Object,evt:yfiles.input.ToolTipQueryEventArgs)=>void):void; @@ -25495,7 +25515,7 @@ declare namespace system{ *

    * Handlers should set the {@link yfiles.input.ToolTipQueryEventArgs#toolTip} property or set/respect the {@link yfiles.input.ToolTipQueryEventArgs#handled} property accordingly. *

    - * @param {function(Object, yfiles.input.ToolTipQueryEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MouseHoverInputMode#addQueryToolTipListener */ removeQueryToolTipListener(listener:(sender:Object,evt:yfiles.input.ToolTipQueryEventArgs)=>void):void; @@ -25510,14 +25530,13 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.MoveInputMode#exclusive} by default. *

    - * @class yfiles.input.MoveInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface MoveInputMode extends Object,yfiles.input.IInputMode{} export class MoveInputMode { /** * Initializes a new instance of the {@link yfiles.input.MoveInputMode} class. - * @constructor */ constructor(); /** @@ -25540,7 +25559,7 @@ declare namespace system{ /** * Creates an {@link yfiles.input.IInputModeContext} for use with the {@link yfiles.input.IPositionHandler} interface for the upcoming drag * operation. - * @returns {yfiles.input.IInputModeContext} An instance of {@link yfiles.input.IInputModeContext}. + * @returns An instance of {@link }. * @protected */ createPositionHandlerInputModeContext():yfiles.input.IInputModeContext; @@ -25557,7 +25576,7 @@ declare namespace system{ *

    * Subsequent moves of input devices will behave as if the dragging has been successfully initiated at location. *

    - * @param {yfiles.geometry.Point} location The location where the drag had been initialized. + * @param location The location where the drag had been initialized. */ doStartDrag(location:yfiles.geometry.Point):void; /** @@ -25572,10 +25591,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.MoveInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -25584,8 +25603,8 @@ declare namespace system{ *

    * This implementation delegates to the {@link yfiles.input.MoveInputMode#hitTestable}. During this callback it is possible to reset or reconfigure the {@link yfiles.input.MoveInputMode#positionHandler}. *

    - * @param {yfiles.geometry.Point} location The location in the world coordinate system. - * @returns {boolean} true if at the given location it is valid to start the move gesture; otherwise, false. + * @param location The location in the world coordinate system. + * @returns true if at the given location it is valid to start the move gesture; otherwise, false. * @protected */ isValidStartLocation(location:yfiles.geometry.Point):boolean; @@ -25624,13 +25643,13 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Triggers the {@link yfiles.input.MoveInputMode#addDragCanceledListener DragCanceled} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceled(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.MoveInputMode#addDragCancelingListener DragCanceling} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceling(evt:yfiles.input.InputModeEventArgs):void; @@ -25639,7 +25658,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.MoveInputMode#addDragFinishedListener DragFinished} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinished(evt:yfiles.input.InputModeEventArgs):void; @@ -25648,7 +25667,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.MoveInputMode#addDragFinishingListener DragFinishing} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinishing(evt:yfiles.input.InputModeEventArgs):void; @@ -25657,7 +25676,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.MoveInputMode#addDraggedListener Dragged} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragged(evt:yfiles.input.InputModeEventArgs):void; @@ -25666,25 +25685,25 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.MoveInputMode#addDraggingListener Dragging} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragging(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.MoveInputMode#addDragStartedListener DragStarted} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarted(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.MoveInputMode#addDragStartingListener DragStarting} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarting(evt:yfiles.input.InputModeEventArgs):void; /** * Raises the {@link yfiles.input.MoveInputMode#addQueryPositionHandlerListener QueryPositionHandler} event. - * @param {yfiles.input.QueryPositionHandlerEventArgs} evt The {@link yfiles.input.QueryPositionHandlerEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onQueryPositionHandler(evt:yfiles.input.QueryPositionHandlerEventArgs):void; @@ -25701,7 +25720,7 @@ declare namespace system{ onStopped():void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -25713,7 +25732,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -25868,7 +25887,7 @@ declare namespace system{ * If the event args are {@link yfiles.input.QueryPositionHandlerEventArgs#handled}, the {@link yfiles.input.IPositionHandler} that is carried with the event args is used to actually move * the items. Otherwise the pre-set {@link yfiles.input.MoveInputMode#positionHandler} property is used. *

    - * @param {function(Object, yfiles.input.QueryPositionHandlerEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeQueryPositionHandlerListener */ addQueryPositionHandlerListener(listener:(sender:Object,evt:yfiles.input.QueryPositionHandlerEventArgs)=>void):void; @@ -25879,7 +25898,7 @@ declare namespace system{ * If the event args are {@link yfiles.input.QueryPositionHandlerEventArgs#handled}, the {@link yfiles.input.IPositionHandler} that is carried with the event args is used to actually move * the items. Otherwise the pre-set {@link yfiles.input.MoveInputMode#positionHandler} property is used. *

    - * @param {function(Object, yfiles.input.QueryPositionHandlerEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addQueryPositionHandlerListener */ removeQueryPositionHandlerListener(listener:(sender:Object,evt:yfiles.input.QueryPositionHandlerEventArgs)=>void):void; @@ -25909,97 +25928,97 @@ declare namespace system{ affectedItems:yfiles.collections.IEnumerable; /** * Adds the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDragFinishingListener */ addDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDragFinishingListener */ removeDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDragFinishedListener */ addDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDragFinishedListener */ removeDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDragStartingListener */ addDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDragStartingListener */ removeDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDragStartedListener */ addDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDragStartedListener */ removeDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDraggingListener */ addDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDraggingListener */ removeDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDraggedListener */ addDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDraggedListener */ removeDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDragCanceledListener */ addDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDragCanceledListener */ removeDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveInputMode#removeDragCancelingListener */ addDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveInputMode#addDragCancelingListener */ removeDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -26010,16 +26029,15 @@ declare namespace system{ * {@link yfiles.input.MoveInputMode}. * @see yfiles.input.MoveInputMode * @see yfiles.input.MoveInputMode#addQueryPositionHandlerListener - * @class yfiles.input.QueryPositionHandlerEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface QueryPositionHandlerEventArgs extends yfiles.input.InputModeEventArgs{} export class QueryPositionHandlerEventArgs { /** * Instantiates a new {@link yfiles.input.QueryPositionHandlerEventArgs} - * @param {yfiles.input.IInputModeContext} context The {@link yfiles.input.IInputModeContext} of the operation. - * @param {yfiles.geometry.Point} queryLocation The initial location of the movement. - * @constructor + * @param context The {@link } of the operation. + * @param queryLocation The initial location of the movement. */ constructor(context:yfiles.input.IInputModeContext,queryLocation:yfiles.geometry.Point); /** @@ -26070,14 +26088,13 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.MoveViewportInputMode#exclusive} by default. *

    - * @class yfiles.input.MoveViewportInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface MoveViewportInputMode extends Object,yfiles.input.IInputMode{} export class MoveViewportInputMode { /** * Creates a new instance of the move viewport mode - * @constructor */ constructor(); /** @@ -26112,10 +26129,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.MoveViewportInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -26154,13 +26171,13 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Triggers the {@link yfiles.input.MoveViewportInputMode#addDragCanceledListener DragCanceled} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceled(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.MoveViewportInputMode#addDragCancelingListener DragCanceling} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceling(evt:yfiles.input.InputModeEventArgs):void; @@ -26170,7 +26187,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MoveViewportInputMode#addDragFinishedListener DragFinished} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinished(evt:yfiles.input.InputModeEventArgs):void; @@ -26180,7 +26197,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MoveViewportInputMode#addDragFinishingListener DragFinishing} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinishing(evt:yfiles.input.InputModeEventArgs):void; @@ -26190,7 +26207,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MoveViewportInputMode#addDraggedListener Dragged} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragged(evt:yfiles.input.InputModeEventArgs):void; @@ -26200,19 +26217,19 @@ declare namespace system{ * This method triggers the {@link yfiles.input.MoveViewportInputMode#addDraggingListener Dragging} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragging(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.MoveViewportInputMode#addDragStartedListener DragStarted} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarted(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.MoveViewportInputMode#addDragStartingListener DragStarting} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarting(evt:yfiles.input.InputModeEventArgs):void; @@ -26229,12 +26246,12 @@ declare namespace system{ onStopped():void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** * - * @param {yfiles.input.IInputModeContext} context + * @param context */ uninstall(context:yfiles.input.IInputModeContext):void; /** @@ -26333,7 +26350,7 @@ declare namespace system{ inertiaDamping:number; /** * Gets or sets the mode that determines when to use inertia when dragging the viewport. - * @default 2 + * @default yfiles.input.InertiaPolicies.TOUCH * @type {yfiles.input.InertiaPolicies} */ inertia:yfiles.input.InertiaPolicies; @@ -26377,97 +26394,97 @@ declare namespace system{ releasedRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** * Adds the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDraggingListener */ addDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDraggingListener */ removeDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDraggedListener */ addDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDraggedListener */ removeDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDragFinishingListener */ addDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDragFinishingListener */ removeDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDragFinishedListener */ addDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDragFinishedListener */ removeDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDragStartingListener */ addDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDragStartingListener */ removeDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDragStartedListener */ addDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDragStartedListener */ removeDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDragCanceledListener */ addDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDragCanceledListener */ removeDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.MoveViewportInputMode#removeDragCancelingListener */ addDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.MoveViewportInputMode#addDragCancelingListener */ removeDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -26493,14 +26510,13 @@ declare namespace system{ *

    * @see yfiles.input.MultiplexingInputMode#mutexOwner * @see yfiles.input.MultiplexingInputMode#add - * @class yfiles.input.MultiplexingInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface MultiplexingInputMode extends Object,yfiles.input.IInputMode{} export class MultiplexingInputMode { /** * Creates an instance with no initial modes. - * @constructor */ constructor(); /** @@ -26512,7 +26528,7 @@ declare namespace system{ * Input modes will run exclusively if the {@link yfiles.input.ConcurrencyController#exclusive} property of their {@link yfiles.input.IInputMode#install installed controller} is set to true. Otherwise they can not * and will not be deactivated if another {@link yfiles.input.IInputMode} acquires the mutex. *

    - * @param {yfiles.input.IInputMode} mode The input mode to add to this mode. + * @param mode The input mode to add to this mode. * @throws {Stubs.Exceptions.ArgumentError} If the same mode has is already added to this instance. */ add(mode:yfiles.input.IInputMode):void; @@ -26530,8 +26546,8 @@ declare namespace system{ cancel():void; /** * Callback method that will be used by the {@link yfiles.input.MultiplexingInputMode#createChildInputModeContext child context's} {@link yfiles.graph.ILookup#lookup} method. - * @param {yfiles.lang.Class} type The type argument passed to {@link yfiles.graph.ILookup#lookup}. - * @returns {Object} The result of the lookup query, or null. + * @param type The type argument passed to {@link #lookup}. + * @returns The result of the lookup query, or null. * @see yfiles.input.MultiplexingInputMode#createChildInputModeContext * @protected */ @@ -26544,23 +26560,23 @@ declare namespace system{ * calls for the created context will be resolved by this instance's {@link yfiles.input.MultiplexingInputMode#childInputModeContextLookup} * method. *

    - * @returns {yfiles.input.IInputModeContext} A new instance that delegates to the {@link yfiles.input.MultiplexingInputMode#inputModeContext parent's context.} + * @returns A new instance that delegates to the {@link #inputModeContext parent's context.} * @protected */ createChildInputModeContext():yfiles.input.IInputModeContext; /** * Helper method that yields a suitably configured {@link yfiles.input.InputModeEventArgs} for this input mode. - * @param {yfiles.input.IInputModeContext} context An input mode context that is available in the {@link yfiles.input.InputModeEventArgs}. + * @param context An input mode context that is available in the {@link }. *

    * Can be null in which case a new context for this instance is created automatically. *

    - * @returns {yfiles.input.InputModeEventArgs} An input mode event argument that is configured for this instance. + * @returns An input mode event argument that is configured for this instance. * @protected */ createInputModeEventArgs(context:yfiles.input.IInputModeContext):yfiles.input.InputModeEventArgs; /** * Returns a list of all modes managed by this instance in sorted order. - * @returns {yfiles.collections.IList.} A list of the modes. + * @returns A list of the modes. */ getSortedModes():yfiles.collections.IList; /** @@ -26578,8 +26594,8 @@ declare namespace system{ initialize():void; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.input.ConcurrencyController} controller + * @param context + * @param controller */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; /** @@ -26606,7 +26622,7 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Removes the given mode from this compound mode. - * @param {yfiles.input.IInputMode} mode The mode to remove. + * @param mode The mode to remove. */ remove(mode:yfiles.input.IInputMode):void; /** @@ -26619,12 +26635,12 @@ declare namespace system{ subModePriorityChanged():void; /** * Tries to stop all modes. - * @returns {boolean} + * @returns */ tryStop():boolean; /** * - * @param {yfiles.input.IInputModeContext} context + * @param context */ uninstall(context:yfiles.input.IInputModeContext):void; /** @@ -26692,14 +26708,13 @@ declare namespace system{ * @see yfiles.input.OverviewInputMode#keyboardInputMode * @see yfiles.input.OverviewInputMode#clickInputMode * @see yfiles.input.OverviewInputMode#tapInputMode - * @class yfiles.input.OverviewInputMode + * @class * @extends {yfiles.input.MultiplexingInputMode} */ export interface OverviewInputMode extends yfiles.input.MultiplexingInputMode{} export class OverviewInputMode { /** * Creates a new instance. - * @constructor */ constructor(); /** @@ -26707,34 +26722,34 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.OverviewInputMode#clickInputMode} property. *

    - * @returns {yfiles.input.ClickInputMode} a new instance of ClickInputMode + * @returns a new instance of ClickInputMode * @protected */ createClickInputMode():yfiles.input.ClickInputMode; /** - * Factory method for the HandleInputMode property. + * Factory method for the {@link yfiles.input.OverviewInputMode#handleInputMode} property. *

    * This method will be called upon first access to the {@link yfiles.input.OverviewInputMode#handleInputMode} property. *

    - * @returns {yfiles.input.HandleInputMode} a new instance of HandleInputMode + * @returns a new instance of {@link } * @protected */ createHandleInputMode():yfiles.input.HandleInputMode; /** - * Factory method for the KeyboardInputMode property. + * Factory method for the {@link yfiles.input.OverviewInputMode#keyboardInputMode} property. *

    * This method will be called upon first access to the {@link yfiles.input.OverviewInputMode#keyboardInputMode} property. *

    - * @returns {yfiles.input.KeyboardInputMode} a new instance of KeyboardInputMode + * @returns a new instance of {@link }. * @protected */ createKeyboardInputMode():yfiles.input.KeyboardInputMode; /** - * Factory method for the MoveInputMode property. + * Factory method for the {@link yfiles.input.OverviewInputMode#moveInputMode} property. *

    * This method will be called upon first access to the {@link yfiles.input.OverviewInputMode#moveInputMode} property. *

    - * @returns {yfiles.input.MoveInputMode} a new instance of MoveInputMode + * @returns a new instance of MoveInputMode * @protected */ createMoveInputMode():yfiles.input.MoveInputMode; @@ -26743,7 +26758,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.OverviewInputMode#tapInputMode} property. *

    - * @returns {yfiles.input.TapInputMode} a new instance of TapInputMode + * @returns a new instance of TapInputMode * @protected */ createTapInputMode():yfiles.input.TapInputMode; @@ -26753,8 +26768,8 @@ declare namespace system{ *

    * This implementation unconditionally returns true, subclasses may override this method to adjust the behavior. *

    - * @param {yfiles.input.ICommand} command The command to install. - * @returns {boolean} Whether to install this command. + * @param command The command to install. + * @returns Whether to install this command. * @protected */ shouldInstallCommand(command:yfiles.input.ICommand):boolean; @@ -26790,7 +26805,7 @@ declare namespace system{ */ static VIEWPORT_TEMPLATE_KEY:string; /** - * Gets the HandleInputMode. + * Gets the {@link yfiles.input.HandleInputMode}. *

    * This mode is responsible for handling the single handle that allows to resize the viewport rectangle. *

    @@ -26805,7 +26820,7 @@ declare namespace system{ */ handleInputMode:yfiles.input.HandleInputMode; /** - * Gets the MoveInputMode. + * Gets the {@link yfiles.input.MoveInputMode}. *

    * This mode is responsible for moving the viewport rectangle. *

    @@ -26844,7 +26859,7 @@ declare namespace system{ */ tapInputMode:yfiles.input.TapInputMode; /** - * Gets the KeyboardInputMode. + * Gets the {@link yfiles.input.KeyboardInputMode}. *

    * This mode handles all keyboard interaction gestures with the overview control. *

    @@ -26881,8 +26896,8 @@ declare namespace system{ *
  • {@link yfiles.input.ICommand#SCROLL_PAGE_UP}
  • *
  • {@link yfiles.input.ICommand#SCROLL_PAGE_LEFT}
  • *
  • {@link yfiles.input.ICommand#SCROLL_PAGE_RIGHT}
  • - *
  • FitContentCommand
  • - *
  • UpdateContentRectCommand
  • + *
  • {@link yfiles.input.ICommand#FIT_CONTENT}
  • + *
  • {@link yfiles.input.ICommand#UPDATE_CONTENT_RECT}
  • * * @type {yfiles.collections.ICollection.} */ @@ -26922,7 +26937,7 @@ declare namespace system{ * A specialized subclass of {@link yfiles.input.PopulateMenuEventArgs} that carries the {@link yfiles.input.PopulateItemContextMenuEventArgs.#item} for which the context menu should be * populated. * Type parameter TModelItem: The type of the {@link yfiles.input.PopulateItemContextMenuEventArgs.#item model item}. - * @class yfiles.input.PopulateItemContextMenuEventArgs. + * @class * @extends {yfiles.input.PopulateMenuEventArgs} * @template TModelItem */ @@ -26930,10 +26945,9 @@ declare namespace system{ export class PopulateItemContextMenuEventArgs { /** * Initializes a new instance of the {@link yfiles.input.PopulateItemContextMenuEventArgs.} class. - * @param {yfiles.input.IInputModeContext} context The context to populate the menu for. - * @param {yfiles.geometry.Point} queryLocation The query location. - * @param {TModelItem} item The item for which the context menu should be populated, may be null. - * @constructor + * @param context The context to populate the menu for. + * @param queryLocation The query location. + * @param item The item for which the context menu should be populated, may be null. */ constructor(context:yfiles.input.IInputModeContext,queryLocation:yfiles.geometry.Point,item:TModelItem); /** @@ -26946,7 +26960,7 @@ declare namespace system{ /** * A specialized subclass of {@link yfiles.input.ToolTipQueryEventArgs} that carries the {@link yfiles.input.QueryItemToolTipEventArgs.#item} for which the tool tip is queried. * Type parameter TModelItem: The type of the {@link yfiles.input.QueryItemToolTipEventArgs.#item model item}. - * @class yfiles.input.QueryItemToolTipEventArgs. + * @class * @extends {yfiles.input.ToolTipQueryEventArgs} * @template TModelItem */ @@ -26954,10 +26968,9 @@ declare namespace system{ export class QueryItemToolTipEventArgs { /** * Initializes a new instance of the {@link yfiles.input.QueryItemToolTipEventArgs.} class. - * @param {yfiles.input.IInputModeContext} context The context to yield the tool tip for. - * @param {yfiles.geometry.Point} queryLocation The query location. - * @param {TModelItem} item The item for which the tool tip is queried.. - * @constructor + * @param context The context to yield the tool tip for. + * @param queryLocation The query location. + * @param item The item for which the tool tip is queried.. */ constructor(context:yfiles.input.IInputModeContext,queryLocation:yfiles.geometry.Point,item:TModelItem); /** @@ -26970,16 +26983,15 @@ declare namespace system{ /** * A simple convenience implementation of an {@link yfiles.input.IReshapeHandleProvider} that returns handles that modify a * {@link yfiles.geometry.IMutableRectangle}. - * @class yfiles.input.RectangleReshapeHandleProvider + * @class * @extends {yfiles.input.ReshapeHandleProviderBase} */ export interface RectangleReshapeHandleProvider extends yfiles.input.ReshapeHandleProviderBase{} export class RectangleReshapeHandleProvider { /** * Creates a default instance that provide handles for each of the positions given for the rectangle. - * @param {yfiles.geometry.IMutableRectangle} rectangle The rectangle to create handles for. - * @param {yfiles.input.HandlePositions} [handlePositions=yfiles.input.HandlePositions.BORDER] A bitwise combination of all handle positions this instance should provide a handle for. - * @constructor + * @param rectangle The rectangle to create handles for. + * @param [handlePositions=yfiles.input.HandlePositions.BORDER] A bitwise combination of all handle positions this instance should provide a handle for. */ constructor(rectangle:yfiles.geometry.IMutableRectangle,handlePositions?:yfiles.input.HandlePositions); /** @@ -26993,7 +27005,7 @@ declare namespace system{ /** * Abstract base class implementation of the {@link yfiles.input.IReshapeHandleProvider} interface that has properties to restrict * the size and area of a reshapeable. - * @class yfiles.input.ReshapeHandleProviderBase + * @class * @implements {yfiles.input.IReshapeHandleProvider} */ export interface ReshapeHandleProviderBase extends Object,yfiles.input.IReshapeHandleProvider{} @@ -27001,9 +27013,9 @@ declare namespace system{ constructor(); /** * Returns the {@link yfiles.input.ReshapeHandleProviderBase#handlePositions} property. - * @param {yfiles.input.IInputModeContext} context - * @returns {yfiles.input.HandlePositions} A bitwise combination of all handle positions this instance provides a handle for if queried in - * {@link yfiles.input.RectangleReshapeHandleProvider#getHandle}. + * @param context + * @returns A bitwise combination of all handle positions this instance provides a handle for if queried in + * {@link #getHandle}. */ getAvailableHandles(context:yfiles.input.IInputModeContext):yfiles.input.HandlePositions; /** @@ -27013,9 +27025,9 @@ declare namespace system{ * This method may be called for each possible single position contained in the set as returned by * {@link yfiles.input.ReshapeHandleProviderBase#getAvailableHandles}. *

    - * @param {yfiles.input.IInputModeContext} context The context for which the handles are queried. - * @param {yfiles.input.HandlePositions} position The position to provide an instance for. - * @returns {yfiles.input.IHandle} A handle implementation. + * @param context The context for which the handles are queried. + * @param position The position to provide an instance for. + * @returns A handle implementation. * @abstract */ getHandle(context:yfiles.input.IInputModeContext,position:yfiles.input.HandlePositions):yfiles.input.IHandle; @@ -27058,7 +27070,7 @@ declare namespace system{ /** * Event arguments that are used when modifying a {@link yfiles.view.ISelectionModel.} * Type parameter T: The type of the items in the {@link yfiles.view.ISelectionModel.}. - * @class yfiles.input.SelectionEventArgs. + * @class * @extends {yfiles.input.InputModeEventArgs} * @template T */ @@ -27066,9 +27078,8 @@ declare namespace system{ export class SelectionEventArgs { /** * Creates a new instance. - * @param {yfiles.input.IInputModeContext} context The context the event with these event args is dispatched. - * @param {yfiles.view.ISelectionModel.} selection The selection that is modified. - * @constructor + * @param context The context the event with these event args is dispatched. + * @param selection The selection that is modified. */ constructor(context:yfiles.input.IInputModeContext,selection:yfiles.view.ISelectionModel); /** @@ -27103,13 +27114,12 @@ declare namespace system{ * @see yfiles.input.HandleInputMode#snapContext * @see yfiles.input.MoveInputMode#snapContext * @see yfiles.input.SnapContext#createSnapResultsModelManager - * @class yfiles.input.SnapContext + * @class */ export interface SnapContext extends Object{} export class SnapContext { /** * Initializes a new instance of the {@link yfiles.input.SnapContext} class. - * @constructor */ constructor(); /** @@ -27132,14 +27142,14 @@ declare namespace system{ /** * Helper method used by {@link yfiles.input.SnapContext#createSnapResultsModelManager} to create the {@link yfiles.view.ICanvasObjectDescriptor} * for the {@link yfiles.input.SnapResult} type. - * @returns {yfiles.view.ICanvasObjectDescriptor} An instance that can install {@link yfiles.input.SnapResult}s in a {@link yfiles.view.CanvasComponent}. + * @returns An instance that can install {@link }s in a {@link }. */ createSnapResultCanvasObjectDescriptor():yfiles.view.ICanvasObjectDescriptor; /** * Helper method that creates the a {@link yfiles.view.CollectionModelManager.} that can be used to present the current {@link yfiles.input.SnapResult}s in the provided * {@link yfiles.view.CanvasComponent}. - * @param {yfiles.view.CanvasComponent} canvas The control to initialize the {@link yfiles.view.CollectionModelManager.} with. - * @returns {yfiles.view.CollectionModelManager.} The model manager that manages the visual representation of the {@link yfiles.input.SnapResult}s. + * @param canvas The control to initialize the {@link } with. + * @returns The model manager that manages the visual representation of the {@link }s. */ createSnapResultsModelManager(canvas:yfiles.view.CanvasComponent):yfiles.view.CollectionModelManager; /** @@ -27148,10 +27158,10 @@ declare namespace system{ * Clears all temporary lists and sets {@link yfiles.input.SnapContext#isInitialized} back to false. Also the {@link yfiles.input.SnapContext#cleanUp} method is invoked and the * {@link yfiles.input.SnapContext#addCleanedUpListener CleanedUp} event is triggered. *

    - * @param {yfiles.geometry.Point} newLocation The current mouse location. - * @param {boolean} snappingDisabled If set to true snapping is temporarily disabled. This will remove the snap line visualizations and return a {@link yfiles.input.SnapState} - * with the unchanged coordinates and the {@link yfiles.input.SnapTypes#NOT_SNAPPED} {@link yfiles.input.SnapState#snapType}. - * @returns {yfiles.input.SnapState} A {@link yfiles.input.SnapState} that specifies the adjusted coordinates and how they have been adjusted. The unchanged + * @param newLocation The current mouse location. + * @param snappingDisabled If set to true snapping is temporarily disabled. This will remove the snap line visualizations and return a {@link } + * with the unchanged coordinates and the {@link #NOT_SNAPPED} {@link #snapType}. + * @returns A {@link } that specifies the adjusted coordinates and how they have been adjusted. The unchanged * coordinates if snapping has been temporarily disabled by setting snappingDisabled to true. */ dragFinished(newLocation:yfiles.geometry.Point,snappingDisabled:boolean):yfiles.input.SnapState; @@ -27163,8 +27173,8 @@ declare namespace system{ * {@link yfiles.input.SnapContext#handleMove}. This method does not need to be called if snapping has been temporarily disabled by * calling {@link yfiles.input.SnapContext#handleMove} with its snappingDisabled parameter set to true. *

    - * @param {yfiles.geometry.Point} mouseLocation The actual mouse location. - * @param {yfiles.input.SnapState} finalSnapState The final snap state that contains the location that has been used by the client code for the move and how it has been + * @param mouseLocation The actual mouse location. + * @param finalSnapState The final snap state that contains the location that has been used by the client code for the move and how it has been * snapped. */ dragged(mouseLocation:yfiles.geometry.Point,finalSnapState:yfiles.input.SnapState):void; @@ -27185,10 +27195,10 @@ declare namespace system{ * This method returns the adjusted (mouse) coordinates. It also manages the collection of {@link yfiles.input.SnapResult}s. If * snapping should be temporarily (for a mouse move) disabled, snappingDisabled has to be set to true. *

    - * @param {yfiles.geometry.Point} newLocation The current mouse location. - * @param {boolean} snappingDisabled If set to true snapping is temporarily disabled. This will remove the snap line visualizations and return a {@link yfiles.input.SnapState} - * with the unchanged coordinates and the {@link yfiles.input.SnapState#snapType} {@link yfiles.input.SnapTypes#NOT_SNAPPED}. - * @returns {yfiles.input.SnapState} The adjusted coordinates and how they have been adjusted. The unchanged coordinates if snapping has been temporarily + * @param newLocation The current mouse location. + * @param snappingDisabled If set to true snapping is temporarily disabled. This will remove the snap line visualizations and return a {@link } + * with the unchanged coordinates and the {@link #snapType} {@link #NOT_SNAPPED}. + * @returns The adjusted coordinates and how they have been adjusted. The unchanged coordinates if snapping has been temporarily * disabled by setting snappingDisabled to true. */ handleMove(newLocation:yfiles.geometry.Point,snappingDisabled:boolean):yfiles.input.SnapState; @@ -27197,32 +27207,32 @@ declare namespace system{ *

    * Updates {@link yfiles.input.SnapContext#isInitializing}, {@link yfiles.input.SnapContext#originalLocation}, and {@link yfiles.input.SnapContext#currentInputModeContext} and then triggers the {@link yfiles.input.SnapContext#addInitializingListener Initializing} event. *

    - * @param {yfiles.input.IInputModeContext} context The context in which the interactive drag is started. - * @param {yfiles.geometry.Point} originalLocation The original location of the mouse. + * @param context The context in which the interactive drag is started. + * @param originalLocation The original location of the mouse. * @throws {Stubs.Exceptions.InvalidOperationError} If this context is already {@link yfiles.input.SnapContext#isInitialized initialized}. */ initializeDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * Raises the {@link yfiles.input.SnapContext#cleanUp} event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onCleanUp(evt:yfiles.input.InputModeEventArgs):void; /** * Raises the {@link yfiles.input.SnapContext#addCollectSnapResultsListener CollectSnapResults} event. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onCollectSnapResults(evt:yfiles.input.CollectSnapResultsEventArgs):void; /** * Raises the {@link yfiles.input.SnapContext#addInitializedListener Initialized} event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onInitialized(evt:yfiles.input.InputModeEventArgs):void; /** * Raises the {@link yfiles.input.SnapContext#addInitializingListener Initializing} event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onInitializing(evt:yfiles.input.InputModeEventArgs):void; @@ -27231,18 +27241,18 @@ declare namespace system{ *

    * Chooses from a list of possible results the most important ones. Also maintains the collection of snap results. *

    - * @param {yfiles.collections.List.} snapResults A temporary list of suggested {@link yfiles.input.SnapResult}s. - * @param {yfiles.geometry.Point} originalLocation The point in world coordinates where the mouse move started. - * @param {yfiles.geometry.Point} newLocation The current mouse location. - * @returns {yfiles.input.SnapState} The adjusted coordinates and how they have been adjusted. + * @param snapResults A temporary list of suggested {@link }s. + * @param originalLocation The point in world coordinates where the mouse move started. + * @param newLocation The current mouse location. + * @returns The adjusted coordinates and how they have been adjusted. * @protected */ processSnapResults(snapResults:yfiles.collections.List,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):yfiles.input.SnapState; /** * Helper method that wraps the given context so that a {@link yfiles.graph.ILookup#lookup} query on the wrapped context for the {@link yfiles.input.SnapContext} * type yields this instance. - * @param {yfiles.input.IInputModeContext} context The context to wrap and delegate all calls to. - * @returns {yfiles.input.IInputModeContext} A modified instance that yields this instance if it is queried for the {@link yfiles.input.SnapContext} type. + * @param context The context to wrap and delegate all calls to. + * @returns A modified instance that yields this instance if it is queried for the {@link } type. */ wrapContext(context:yfiles.input.IInputModeContext):yfiles.input.IInputModeContext; /** @@ -27256,7 +27266,7 @@ declare namespace system{ * {@link yfiles.input.IDragHandler}s of the moved items have to take care themselves whether to add a handler to the list * depending on the their settings. *

    - * @param {function(Object, yfiles.input.CollectSnapResultsEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.SnapContext#removeCollectSnapResultsListener */ addCollectSnapResultsListener(listener:(sender:Object,evt:yfiles.input.CollectSnapResultsEventArgs)=>void):void; @@ -27271,48 +27281,48 @@ declare namespace system{ * {@link yfiles.input.IDragHandler}s of the moved items have to take care themselves whether to add a handler to the list * depending on the their settings. *

    - * @param {function(Object, yfiles.input.CollectSnapResultsEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.SnapContext#addCollectSnapResultsListener */ removeCollectSnapResultsListener(listener:(sender:Object,evt:yfiles.input.CollectSnapResultsEventArgs)=>void):void; /** * Adds the given listener for the CleanedUp event that occurs when this instance has been cleaned up. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.SnapContext#cleanUp * @see yfiles.input.SnapContext#removeCleanedUpListener */ addCleanedUpListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the CleanedUp event that occurs when this instance has been cleaned up. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.SnapContext#cleanUp * @see yfiles.input.SnapContext#addCleanedUpListener */ removeCleanedUpListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Initialized event that occurs when this instance has been initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.SnapContext#initializeDrag * @see yfiles.input.SnapContext#removeInitializedListener */ addInitializedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Initialized event that occurs when this instance has been initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.SnapContext#initializeDrag * @see yfiles.input.SnapContext#addInitializedListener */ removeInitializedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Initializing event that occurs when this instance is about to be initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.SnapContext#initializeDrag * @see yfiles.input.SnapContext#removeInitializingListener */ addInitializingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Initializing event that occurs when this instance is about to be initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.SnapContext#initializeDrag * @see yfiles.input.SnapContext#addInitializingListener */ @@ -27387,7 +27397,7 @@ declare namespace system{ * It carries a {@link yfiles.input.SnapResult#weight} and can be used to obtain a {@link yfiles.view.IVisualCreator} that will be included in the view if the result is * actually {@link yfiles.input.SnapResult#isSnapped snapped} after all other results with higher weight have been {@link yfiles.input.SnapResult#snap snapped}. *

    - * @class yfiles.input.SnapResult + * @class * @implements {yfiles.lang.IComparable} */ export interface SnapResult extends Object,yfiles.lang.IComparable{} @@ -27395,62 +27405,62 @@ declare namespace system{ /** * Factory method that creates a {@link yfiles.input.SnapResult} to which a {@link yfiles.graph.ILabel} will snap, based on the given * snapLine. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The {@link yfiles.graph.ILabelModelParameter} which represents the position to snap to. - * @param {number} weight The weight of this result. The higher the weight, the more important it is. - * @param {yfiles.geometry.Point} delta The value to add to the mouse coordinates to snap to this result. - * @param {Object} tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest - * {@link yfiles.input.SnapResult#weight} will be rendered. - * @param {yfiles.input.SnapLine} snapLine The snap line this class would snap to or null if it doesn't snap to a SnapLine. - * @param {yfiles.geometry.Point} snappedCoordinates The coordinates at the moved item at which the drawn snap line should end. - * @param {Object} movedObject The moved object for which this result is created. - * @returns {yfiles.input.SnapResult} + * @param layoutParameter The {@link } which represents the position to snap to. + * @param weight The weight of this result. The higher the weight, the more important it is. + * @param delta The value to add to the mouse coordinates to snap to this result. + * @param tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest + * {@link #weight} will be rendered. + * @param snapLine The snap line this class would snap to or null if it doesn't snap to a SnapLine. + * @param snappedCoordinates The coordinates at the moved item at which the drawn snap line should end. + * @param movedObject The moved object for which this result is created. + * @returns * @static */ static createLabelSnapResult(layoutParameter:yfiles.graph.ILabelModelParameter,weight:number,delta:yfiles.geometry.Point,tag:Object,snapLine:yfiles.input.SnapLine,snappedCoordinates:yfiles.geometry.Point,movedObject:Object):yfiles.input.SnapResult; /** * Factory method that creates a {@link yfiles.input.SnapResult} that snaps to a given location. - * @param {yfiles.geometry.Point} location The location to snap to. - * @param {number} weight The weight to assign to the result. - * @param {Object} tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest - * {@link yfiles.input.SnapResult#weight} will be rendered. - * @param {yfiles.view.IVisualCreator} visualCreator The visual creator to use. - * @param {yfiles.input.SnapTypes} snapType The type of the snapping operation to apply. - * @returns {yfiles.input.SnapResult} A result that snaps to the provided location using the provided mode. + * @param location The location to snap to. + * @param weight The weight to assign to the result. + * @param tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest + * {@link #weight} will be rendered. + * @param visualCreator The visual creator to use. + * @param snapType The type of the snapping operation to apply. + * @returns A result that snaps to the provided location using the provided mode. * @static */ static createPointSnapResult(location:yfiles.geometry.Point,weight:number,tag:Object,visualCreator:yfiles.view.IVisualCreator,snapType:yfiles.input.SnapTypes):yfiles.input.SnapResult; /** * Factory method that creates a {@link yfiles.input.SnapResult} which snaps to a given size through a resize operation. - * @param {number} weight The weight of this result. The higher the weight, the more important it is. - * @param {number} delta The value to add to the mouse coordinates to snap to this result. - * @param {Object} tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest - * {@link yfiles.input.SnapResult#weight} will be rendered. - * @param {yfiles.collections.IEnumerable.} rectangles The rectangles that have the same width or height as the node will. The rectangle are used for visualization and should + * @param weight The weight of this result. The higher the weight, the more important it is. + * @param delta The value to add to the mouse coordinates to snap to this result. + * @param tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest + * {@link #weight} will be rendered. + * @param rectangles The rectangles that have the same width or height as the node will. The rectangle are used for visualization and should * include all objects for which a visualization should be displayed. Typically, these are all objects which have the same * size and the object which is currently reshaped. - * @param {number} size The target size to which the resized object will snap. - * @param {boolean} horizontal Indicates whether width or height should snap. true if the width should snap. - * @returns {yfiles.input.SnapResult} + * @param size The target size to which the resized object will snap. + * @param horizontal Indicates whether width or height should snap. true if the width should snap. + * @returns * @static */ static createResizeSnapResult(weight:number,delta:number,tag:Object,rectangles:yfiles.collections.IEnumerable,size:number,horizontal:boolean):yfiles.input.SnapResult; /** * Factory method that creates a {@link yfiles.input.SnapResult} which represents a {@link yfiles.input.SnapLine} to which the current * moved item will potentially snap. - * @param {number} weight The weight of this result. The higher the weight, the more important it is. - * @param {yfiles.geometry.Point} delta The value to add to the mouse coordinates to snap to this result. - * @param {Object} tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest - * {@link yfiles.input.SnapResult#weight} will be rendered. - * @param {yfiles.input.SnapLine} snapLine The snap line this class would snap to or null if it doesn't snap to a SnapLine. - * @param {yfiles.geometry.Point} snappedLocation The coordinates at the moved item at which the drawn snap line should end. - * @param {Object} movedObject The moved object for which this result is created. - * @returns {yfiles.input.SnapResult} + * @param weight The weight of this result. The higher the weight, the more important it is. + * @param delta The value to add to the mouse coordinates to snap to this result. + * @param tag The tag associated with this result. If more than one result uses the same tag (not null), only the one with the highest + * {@link #weight} will be rendered. + * @param snapLine The snap line this class would snap to or null if it doesn't snap to a SnapLine. + * @param snappedLocation The coordinates at the moved item at which the drawn snap line should end. + * @param movedObject The moved object for which this result is created. + * @returns * @static */ static createSnapLineSnapResult(weight:number,delta:yfiles.geometry.Point,tag:Object,snapLine:yfiles.input.SnapLine,snappedLocation:yfiles.geometry.Point,movedObject:Object):yfiles.input.SnapResult; /** * Returns a {@link yfiles.view.IVisualCreator} instance that can be used to create a {@link yfiles.view.Visual} for this result. - * @returns {yfiles.view.IVisualCreator} A visual creator which creates a Visual which depicts this snap result. + * @returns A visual creator which creates a {@link } which depicts this snap result. * @see yfiles.view.VoidVisualCreator#INSTANCE * @abstract */ @@ -27460,9 +27470,9 @@ declare namespace system{ *

    * This implementation simply returns false. *

    - * @param {yfiles.geometry.Point} unsnappedLocation The unsnapped location. - * @param {yfiles.input.SnapState} finalSnapState The final snap state that has been used by the client. - * @returns {boolean} Whether the location are still snapped for this instance. + * @param unsnappedLocation The unsnapped location. + * @param finalSnapState The final snap state that has been used by the client. + * @returns Whether the location are still snapped for this instance. */ isSnapped(unsnappedLocation:yfiles.geometry.Point,finalSnapState:yfiles.input.SnapState):boolean; /** @@ -27470,8 +27480,8 @@ declare namespace system{ *

    * This implementation does nothing. *

    - * @param {yfiles.geometry.Point} unsnappedLocation The location prior to the snapping. - * @param {yfiles.input.SnapState} currentSnapState The currently snapped location and the state of the snapping. This instance can be modified by subclasses. + * @param unsnappedLocation The location prior to the snapping. + * @param currentSnapState The currently snapped location and the state of the snapping. This instance can be modified by subclasses. */ snap(unsnappedLocation:yfiles.geometry.Point,currentSnapState:yfiles.input.SnapState):void; /** @@ -27538,31 +27548,30 @@ declare namespace system{ *

    * This class is used by {@link yfiles.input.SnapContext} to {@link yfiles.input.SnapContext#processSnapResults process} {@link yfiles.input.SnapResult#snap snap results}. *

    - * @class yfiles.input.SnapState + * @class * @final */ export interface SnapState extends Object{} export class SnapState { /** * Initializes a new instance of the {@link yfiles.input.SnapState} class. - * @param {yfiles.geometry.Point} location The initial location. - * @param {yfiles.input.SnapTypes} [snapType=yfiles.input.SnapTypes.NOT_SNAPPED] The current type of the snap. - * @constructor + * @param location The initial location. + * @param [snapType=yfiles.input.SnapTypes.NOT_SNAPPED] The current type of the snap. */ constructor(location:yfiles.geometry.Point,snapType?:yfiles.input.SnapTypes); /** * Sets the {@link yfiles.input.SnapState#location} to the given point and adjusts the {@link yfiles.input.SnapState#snapType} accordingly. - * @param {yfiles.geometry.Point} newLocation The new location. + * @param newLocation The new location. */ snapTo(newLocation:yfiles.geometry.Point):void; /** * Modifies the X property of the {@link yfiles.input.SnapState#location} and adjusts the {@link yfiles.input.SnapState#snapType} accordingly. - * @param {number} newX The new X. + * @param newX The new X. */ snapX(newX:number):void; /** * Modifies the Y property of the {@link yfiles.input.SnapState#location} and adjusts the {@link yfiles.input.SnapState#snapType} accordingly. - * @param {number} newY The new Y. + * @param newY The new Y. */ snapY(newY:number):void; /** @@ -27579,22 +27588,20 @@ declare namespace system{ } /** * Event arguments used by {@link yfiles.input.TapInputMode#addTappedListener Tapped}. - * @class yfiles.input.TapEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface TapEventArgs extends yfiles.input.InputModeEventArgs{} export class TapEventArgs { /** * Initializes a new instance of the {@link yfiles.input.TapEventArgs} class. - * @param {yfiles.input.IInputModeContext} context The context in which the tap occurred. - * @param {yfiles.geometry.Point} location The location. - * @constructor + * @param context The context in which the tap occurred. + * @param location The location. */ constructor(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point); /** * Initializes a new instance of the {@link yfiles.input.TapEventArgs} class. - * @param {yfiles.geometry.Point} location The location. - * @constructor + * @param location The location. */ constructor(location:yfiles.geometry.Point); /** @@ -27646,14 +27653,13 @@ declare namespace system{ *

    * @see yfiles.input.TapInputMode#tapHandlingPolicy * @see yfiles.input.TapInputMode#swallowFocusTap - * @class yfiles.input.TapInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface TapInputMode extends Object,yfiles.input.IInputMode{} export class TapInputMode { /** * Creates a new instance of this mode that detects touch taps. - * @constructor */ constructor(); /** @@ -27667,19 +27673,19 @@ declare namespace system{ cancel():void; /** * Creates the event recognizer that is used to recognize the press event for this instance. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} + * @returns * @protected */ createPressRecognizer():(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** * Creates the event recognizer that is used to recognize the release event for this instance. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} + * @returns * @protected */ createReleaseRecognizer():(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** * Creates the event recognizer that is used to recognize the taps for this instance. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} + * @returns * @protected */ createTapRecognizer():(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; @@ -27695,43 +27701,43 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.ConcurrencyController} for this mode. + * @param controller The {@link } for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; /** * Determines whether the given event is a press event that occurred at an invalid location. - * @param {Object} eventSource - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param eventSource + * @param evt + * @returns * @see yfiles.input.TapInputMode#validTapHitTestable * @protected */ isInvalidPress(eventSource:Object,evt:yfiles.lang.EventArgs):boolean; /** * Determines whether the given event is a valid press event. - * @param {Object} eventSource - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param eventSource + * @param evt + * @returns * @protected */ isValidPress(eventSource:Object,evt:yfiles.lang.EventArgs):boolean; /** * Determines whether the given event is a valid release event. - * @param {Object} eventSource - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param eventSource + * @param evt + * @returns * @protected */ isValidRelease(eventSource:Object,evt:yfiles.lang.EventArgs):boolean; /** * Determines whether the given event is a valid tap event. - * @param {Object} eventSource - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param eventSource + * @param evt + * @returns * @protected */ isValidTap(eventSource:Object,evt:yfiles.lang.EventArgs):boolean; @@ -27773,7 +27779,7 @@ declare namespace system{ *

    * This method will trigger the {@link yfiles.input.TapInputMode#addDoubleTappedListener DoubleTapped} event. *

    - * @param {yfiles.input.TapEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onDoubleTapped(evt:yfiles.input.TapEventArgs):void; @@ -27793,7 +27799,7 @@ declare namespace system{ *

    * This method will trigger the {@link yfiles.input.TapInputMode#addTappedListener Tapped} event. *

    - * @param {yfiles.input.TapEventArgs} evt The arguments. + * @param evt The arguments. * @protected */ onTapped(evt:yfiles.input.TapEventArgs):void; @@ -27817,13 +27823,13 @@ declare namespace system{ *

    * To ensure that the flag really acts just once, this method resets the flag and returns its value prior to the reset. *

    - * @returns {boolean} + * @returns * @protected */ queryAndResetPreventNextDoubleTap():boolean; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -27835,7 +27841,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -27878,7 +27884,7 @@ declare namespace system{ controller:yfiles.input.ConcurrencyController; /** * Adds the given listener for the Tapped event that occurs once a tap has been detected. - * @param {function(Object, yfiles.input.TapEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TapEventArgs * @see yfiles.input.TapInputMode#tapHandlingPolicy * @see yfiles.input.TapInputMode#removeTappedListener @@ -27886,7 +27892,7 @@ declare namespace system{ addTappedListener(listener:(sender:Object,evt:yfiles.input.TapEventArgs)=>void):void; /** * Removes the given listener for the Tapped event that occurs once a tap has been detected. - * @param {function(Object, yfiles.input.TapEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TapEventArgs * @see yfiles.input.TapInputMode#tapHandlingPolicy * @see yfiles.input.TapInputMode#addTappedListener @@ -27894,7 +27900,7 @@ declare namespace system{ removeTappedListener(listener:(sender:Object,evt:yfiles.input.TapEventArgs)=>void):void; /** * Adds the given listener for the DoubleTapped event that occurs once a double-tap has been detected. - * @param {function(Object, yfiles.input.TapEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TapEventArgs * @see yfiles.input.TapInputMode#tapHandlingPolicy * @see yfiles.input.TapInputMode#removeDoubleTappedListener @@ -27902,7 +27908,7 @@ declare namespace system{ addDoubleTappedListener(listener:(sender:Object,evt:yfiles.input.TapEventArgs)=>void):void; /** * Removes the given listener for the DoubleTapped event that occurs once a double-tap has been detected. - * @param {function(Object, yfiles.input.TapEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TapEventArgs * @see yfiles.input.TapInputMode#tapHandlingPolicy * @see yfiles.input.TapInputMode#addDoubleTappedListener @@ -27912,7 +27918,7 @@ declare namespace system{ * Gets or sets the tap handling policy that determines the triggering behavior of {@link yfiles.input.TapInputMode#addTappedListener Tapped} * and {@link yfiles.input.TapInputMode#addDoubleTappedListener DoubleTapped}. * @see yfiles.input.TapInputMode#tapHandlingPolicy - * @default 2 + * @default yfiles.input.TapHandlingPolicy.BOTH_SINGLE_TAPS_AND_DOUBLE_TAP * @type {yfiles.input.TapHandlingPolicy} */ tapHandlingPolicy:yfiles.input.TapHandlingPolicy; @@ -27960,14 +27966,13 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.TextEditorInputMode#exclusive} by default. *

    - * @class yfiles.input.TextEditorInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface TextEditorInputMode extends Object,yfiles.input.IInputMode{} export class TextEditorInputMode { /** * Creates a new instance using a default text box. - * @constructor */ constructor(); /** @@ -27977,7 +27982,7 @@ declare namespace system{ adjustPosition():void; /** * Adjusts the size of the text box in the {@link yfiles.input.TextEditorInputMode#editorContainer}. - * @param {yfiles.geometry.Size} maxSize The suggested maximum size to use. + * @param maxSize The suggested maximum size to use. * @protected */ adjustSize(maxSize:yfiles.geometry.Size):void; @@ -27989,7 +27994,7 @@ declare namespace system{ *

    * This implementation makes sure the textbox does not exceed the bounds of the canvas. *

    - * @returns {yfiles.geometry.Size} The maximum size for the textbox. + * @returns The maximum size for the textbox. * @see yfiles.input.TextEditorInputMode#adjustSize * @protected */ @@ -28004,11 +28009,11 @@ declare namespace system{ clear():void; /** * Starts interactive text editing. - * @returns {Promise.} A Promise that will fulfill with the edited text or fulfill with null if editing is cancelled. + * @returns A Promise that will fulfill with the edited text or fulfill with null if editing is cancelled. */ edit():Promise; /** - * Adjusts the {@link yfiles.view.CanvasComponent#viewport} of the canvas such that the text box is in the visible area. + * Adjusts the {@link yfiles.view.CanvasComponent#viewport} of the {@link yfiles.view.CanvasComponent} such that the text box is in the visible area. *

    * Called once when the editing starts. *

    @@ -28017,7 +28022,7 @@ declare namespace system{ ensureVisible():void; /** * Returns the bounds of the text area in world coordinates. - * @returns {yfiles.geometry.Rect} + * @returns * @protected */ getTextBoxBounds():yfiles.geometry.Rect; @@ -28033,10 +28038,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.TextEditorInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -28096,13 +28101,13 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Raises the {@link yfiles.input.TextEditorInputMode#addEditingCanceledListener EditingCanceled} event. - * @param {yfiles.input.TextEventArgs} evt The event argument + * @param evt The event argument * @protected */ onEditingCanceled(evt:yfiles.input.TextEventArgs):void; /** * Raises the {@link yfiles.input.TextEditorInputMode#addEditingStartedListener EditingStarted} event. - * @param {yfiles.input.TextEventArgs} evt The event argument. + * @param evt The event argument. * @protected */ onEditingStarted(evt:yfiles.input.TextEventArgs):void; @@ -28128,13 +28133,13 @@ declare namespace system{ onStopped():void; /** * Raises the {@link yfiles.input.TextEditorInputMode#addTextEditedListener TextEdited} event. - * @param {yfiles.input.TextEventArgs} evt The event arguments. + * @param evt The event arguments. * @protected */ onTextEdited(evt:yfiles.input.TextEventArgs):void; /** * Stops editing and returns true. - * @returns {boolean} base.Stop() + * @returns base.Stop() */ tryStop():boolean; /** @@ -28146,7 +28151,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -28194,37 +28199,37 @@ declare namespace system{ controller:yfiles.input.ConcurrencyController; /** * Adds the given listener for the TextEdited event that occurs once the text has been edited. - * @param {function(Object, yfiles.input.TextEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TextEditorInputMode#removeTextEditedListener */ addTextEditedListener(listener:(sender:Object,evt:yfiles.input.TextEventArgs)=>void):void; /** * Removes the given listener for the TextEdited event that occurs once the text has been edited. - * @param {function(Object, yfiles.input.TextEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TextEditorInputMode#addTextEditedListener */ removeTextEditedListener(listener:(sender:Object,evt:yfiles.input.TextEventArgs)=>void):void; /** * Adds the given listener for the EditingCanceled event that occurs if the editing has not been finished. - * @param {function(Object, yfiles.input.TextEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TextEditorInputMode#removeEditingCanceledListener */ addEditingCanceledListener(listener:(sender:Object,evt:yfiles.input.TextEventArgs)=>void):void; /** * Removes the given listener for the EditingCanceled event that occurs if the editing has not been finished. - * @param {function(Object, yfiles.input.TextEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TextEditorInputMode#addEditingCanceledListener */ removeEditingCanceledListener(listener:(sender:Object,evt:yfiles.input.TextEventArgs)=>void):void; /** * Adds the given listener for the EditingStarted event that occurs when text editing is started. - * @param {function(Object, yfiles.input.TextEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TextEditorInputMode#removeEditingStartedListener */ addEditingStartedListener(listener:(sender:Object,evt:yfiles.input.TextEventArgs)=>void):void; /** * Removes the given listener for the EditingStarted event that occurs when text editing is started. - * @param {function(Object, yfiles.input.TextEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TextEditorInputMode#addEditingStartedListener */ removeEditingStartedListener(listener:(sender:Object,evt:yfiles.input.TextEventArgs)=>void):void; @@ -28260,7 +28265,7 @@ declare namespace system{ /** * Gets or sets the event recognizer to detect the key gesture for new line breaks. *

    - * When the provided {@link yfiles.view.KeyEventArgs} are recognized, a new line break is inserted at the current curret position. + * When the provided {@link yfiles.view.KeyEventArgs} are recognized, a new line break is inserted at the current caret position. *

    * @see yfiles.input.TextEditorInputMode#cancelRecognizer * @see yfiles.input.TextEditorInputMode#stopRecognizer @@ -28356,16 +28361,15 @@ declare namespace system{ } /** * Event arguments used by {@link yfiles.input.TextEditorInputMode}. - * @class yfiles.input.TextEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} */ export interface TextEventArgs extends yfiles.input.InputModeEventArgs{} export class TextEventArgs { /** * Creates a new instance. - * @param {yfiles.input.IInputModeContext} context The context in which this text event happened. - * @param {string} text The text that was or will be edited. - * @constructor + * @param context The context in which this text event happened. + * @param text The text that was or will be edited. */ constructor(context:yfiles.input.IInputModeContext,text:string); /** @@ -28378,22 +28382,20 @@ declare namespace system{ /** * An {@link yfiles.input.IInputMode} implementation that can be used to block user interaction. *

    - * Setting the {@link yfiles.input.WaitInputMode#waiting} property will try to cancel ongoing edits of the {@link yfiles.input.ConcurrencyController#mutexOwner mutex owner} and set the {@link yfiles.view.CanvasComponent#editable} state to false and set the - * preferred cursor to {@link yfiles.input.WaitInputMode#waitCursor}. This mode will try to add itself to the - * {@link yfiles.view.CanvasComponent#lookup Lookup of the CanvasControl}, so that other clients can make use of its functionality. + * Setting the {@link yfiles.input.WaitInputMode#waiting} property will try to cancel ongoing edits of the {@link yfiles.input.ConcurrencyController#mutexOwner mutex owner} and set the preferred cursor to {@link yfiles.input.WaitInputMode#waitCursor}. This mode + * will try to add itself to the {@link yfiles.view.CanvasComponent#lookup Lookup of the CanvasControl}, so that other clients can make use of its functionality. *

    *

    * This mode uses an {@link yfiles.input.ConcurrencyController#exclusive} controller by default. *

    * @see yfiles.input.WaitInputMode#waiting - * @class yfiles.input.WaitInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface WaitInputMode extends Object,yfiles.input.IInputMode{} export class WaitInputMode { /** * Creates a new instance of this mode. - * @constructor */ constructor(); /** @@ -28402,7 +28404,7 @@ declare namespace system{ cancel():void; /** * Returns if this mode can request the mutex when {@link yfiles.input.WaitInputMode#waiting} is set to true. - * @returns {boolean} if this mode can request the mutex when {@link yfiles.input.WaitInputMode#waiting} is set to true. + * @returns if this mode can request the mutex when {@link #waiting} is set to true. */ canStartWaiting():boolean; /** @@ -28425,10 +28427,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.WaitInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -28478,13 +28480,13 @@ declare namespace system{ onStopped():void; /** * Raises the {@link yfiles.input.WaitInputMode#addWaitingEndedListener WaitingEnded} event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onWaitingEnded(evt:yfiles.input.InputModeEventArgs):void; /** * Raises the {@link yfiles.input.WaitInputMode#addWaitingStartedListener WaitingStarted} event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onWaitingStarted(evt:yfiles.input.InputModeEventArgs):void; @@ -28492,14 +28494,14 @@ declare namespace system{ * This will initiate the waiting process by trying to * {@link yfiles.input.ConcurrencyController#requestMutex}request the input mutex. *

    - * This will set the {@link yfiles.input.ConcurrencyController#preferredCursor} to {@link yfiles.input.WaitInputMode#waitCursor} and set the {@link yfiles.view.CanvasComponent#editable} property of the canvas to false. + * This will set the {@link yfiles.input.ConcurrencyController#preferredCursor} to {@link yfiles.input.WaitInputMode#waitCursor}. *

    * @protected */ startWaiting():void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -28511,7 +28513,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -28550,25 +28552,25 @@ declare namespace system{ waiting:boolean; /** * Adds the given listener for the WaitingStarted event that occurs when the waiting started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.WaitInputMode#removeWaitingStartedListener */ addWaitingStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the WaitingStarted event that occurs when the waiting started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.WaitInputMode#addWaitingStartedListener */ removeWaitingStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the WaitingEnded event that occurs when the waiting ended. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.WaitInputMode#removeWaitingEndedListener */ addWaitingEndedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the WaitingEnded event that occurs when the waiting ended. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.WaitInputMode#addWaitingEndedListener */ removeWaitingEndedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -28584,7 +28586,7 @@ declare namespace system{ * of an item. * @see yfiles.input.ConstrainedDragHandler. * @see yfiles.input.ConstrainedDragHandler.#constrainNewLocation - * @class yfiles.input.ConstrainedPositionHandler + * @class * @extends {yfiles.input.ConstrainedDragHandler.} * @implements {yfiles.input.IPositionHandler} */ @@ -28592,9 +28594,8 @@ declare namespace system{ export class ConstrainedPositionHandler { /** * Initializes a new instance of the {@link yfiles.input.ConstrainedPositionHandler} class that delegates to the wrappedHandler. - * @param {yfiles.input.IPositionHandler} wrappedHandler The handler to wrap. + * @param wrappedHandler The handler to wrap. * @protected - * @constructor */ constructor(wrappedHandler:yfiles.input.IPositionHandler); static $class:yfiles.lang.Class; @@ -28603,7 +28604,7 @@ declare namespace system{ * A convenience implementation of the {@link yfiles.input.IHandle} interface that can be used to constrain the handle of an item. * @see yfiles.input.ConstrainedDragHandler. * @see yfiles.input.ConstrainedDragHandler.#constrainNewLocation - * @class yfiles.input.ConstrainedHandle + * @class * @extends {yfiles.input.ConstrainedDragHandler.} * @implements {yfiles.input.IHandle} */ @@ -28611,9 +28612,8 @@ declare namespace system{ export class ConstrainedHandle { /** * Initializes a new instance of the {@link yfiles.input.ConstrainedHandle} class that delegates to the wrappedHandle. - * @param {yfiles.input.IHandle} wrappedHandle The handle to wrap. + * @param wrappedHandle The handle to wrap. * @protected - * @constructor */ constructor(wrappedHandle:yfiles.input.IHandle); /** @@ -28634,31 +28634,30 @@ declare namespace system{ * @see yfiles.input.ConstrainedHandle * @see yfiles.input.ConstrainedPositionHandler * @see yfiles.input.ConstrainedReshapeHandler#constrainNewBounds - * @class yfiles.input.ConstrainedReshapeHandler + * @class * @implements {yfiles.input.IReshapeHandler} */ export interface ConstrainedReshapeHandler extends Object,yfiles.input.IReshapeHandler{} export class ConstrainedReshapeHandler { /** * Initializes a new instance of the {@link yfiles.input.ConstrainedReshapeHandler} class that delegates to the wrappedHandler. - * @param {yfiles.input.IReshapeHandler} wrappedHandler The handler to wrap. + * @param wrappedHandler The handler to wrap. * @protected - * @constructor */ constructor(wrappedHandler:yfiles.input.IReshapeHandler); /** * Cancels the move operation and calls {@link yfiles.input.ConstrainedReshapeHandler#onCanceled} - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Rect} originalBounds The value of the coordinate of the {@link yfiles.input.ConstrainedReshapeHandler#bounds} property at the time of {@link yfiles.input.ConstrainedReshapeHandler#initializeReshape}. + * @param context The context to retrieve information about the drag from. + * @param originalBounds The value of the coordinate of the {@link #bounds} property at the time of {@link #initializeReshape}. */ cancelReshape(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect):void; /** * Callback that needs to implement the constraints for the new bounds. - * @param {yfiles.input.IInputModeContext} context The context in which the reshape will be performed. - * @param {yfiles.geometry.Rect} originalBounds The value of the {@link yfiles.input.ConstrainedReshapeHandler#bounds} property at the time of {@link yfiles.input.ConstrainedReshapeHandler#initializeReshape}. - * @param {yfiles.geometry.Rect} newBounds The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the - * implementation the {@link yfiles.input.ConstrainedReshapeHandler#bounds} may or may not be modified to reflect the new value. - * @returns {yfiles.geometry.Rect} The constrained value of newBounds. + * @param context The context in which the reshape will be performed. + * @param originalBounds The value of the {@link #bounds} property at the time of {@link #initializeReshape}. + * @param newBounds The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the + * implementation the {@link #bounds} may or may not be modified to reflect the new value. + * @returns The constrained value of newBounds. * @protected * @abstract */ @@ -28669,55 +28668,54 @@ declare namespace system{ * This method will use the {@link yfiles.input.ConstrainedReshapeHandler#constrainNewBounds} callback to let subclasses constrain * the reshaping. *

    - * @param {yfiles.input.IInputModeContext} context The context in which the reshape will be performed. - * @param {yfiles.geometry.Rect} originalBounds The value of the {@link yfiles.input.ConstrainedReshapeHandler#bounds} property at the time of {@link yfiles.input.ConstrainedReshapeHandler#initializeReshape}. - * @param {yfiles.geometry.Rect} newBounds The coordinates in the world coordinate system that the client wants to reshape the item to. Depending on the - * implementation the {@link yfiles.input.ConstrainedReshapeHandler#bounds} may or may not be modified to reflect the new value. - * @returns Whether the reshape had any visual effect. This is a hint to the engine to optimize invalidation. + * @param context The context in which the reshape will be performed. + * @param originalBounds The value of the {@link #bounds} property at the time of {@link #initializeReshape}. + * @param newBounds The coordinates in the world coordinate system that the client wants to reshape the item to. Depending on the + * implementation the {@link #bounds} may or may not be modified to reflect the new value. */ handleReshape(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; /** * Initializes the reshape operation and subsequently calls {@link yfiles.input.ConstrainedReshapeHandler#onInitialized} - * @param {yfiles.input.IInputModeContext} context The context in which the drag will be performed. + * @param context The context in which the drag will be performed. */ initializeReshape(context:yfiles.input.IInputModeContext):void; /** * Called when the {@link yfiles.input.ConstrainedReshapeHandler#cancelReshape} method has been called. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} originalBounds The original bounds. + * @param context The input mode context. + * @param originalBounds The original bounds. * @protected */ onCanceled(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect):void; /** * Called when the {@link yfiles.input.ConstrainedReshapeHandler#reshapeFinished} method has been called. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} originalBounds The original bounds. - * @param {yfiles.geometry.Rect} newBounds The new bounds. + * @param context The input mode context. + * @param originalBounds The original bounds. + * @param newBounds The new bounds. * @protected */ onFinished(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; /** * Called when the {@link yfiles.input.ConstrainedReshapeHandler#initializeReshape} method has been called. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} originalBounds The original bounds. + * @param context The input mode context. + * @param originalBounds The original bounds. * @protected */ onInitialized(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect):void; /** * Called when the {@link yfiles.input.ConstrainedReshapeHandler#handleReshape} operation has been performed. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} originalBounds The original Bounds. - * @param {yfiles.geometry.Rect} newBounds The new Bounds. + * @param context The input mode context. + * @param originalBounds The original Bounds. + * @param newBounds The new Bounds. * @protected */ onReshaped(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; /** * Handles the finish operation and invokes {@link yfiles.input.ConstrainedReshapeHandler#onFinished} - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Rect} originalBounds The value of the {@link yfiles.input.ConstrainedReshapeHandler#bounds} property at the time of {@link yfiles.input.ConstrainedReshapeHandler#initializeReshape}. - * @param {yfiles.geometry.Rect} newBounds The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the - * implementation the {@link yfiles.input.ConstrainedReshapeHandler#bounds} may or may not be modified to reflect the new value. This is the same value as delivered in the last - * invocation of {@link yfiles.input.ConstrainedReshapeHandler#handleReshape} + * @param context The context to retrieve information about the drag from. + * @param originalBounds The value of the {@link #bounds} property at the time of {@link #initializeReshape}. + * @param newBounds The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the + * implementation the {@link #bounds} may or may not be modified to reflect the new value. This is the same value as delivered in the last + * invocation of {@link #handleReshape} */ reshapeFinished(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; /** @@ -28740,7 +28738,7 @@ declare namespace system{ * @see yfiles.input.ConstrainedHandle * @see yfiles.input.ConstrainedPositionHandler * @see yfiles.input.ConstrainedDragHandler.#constrainNewLocation - * @class yfiles.input.ConstrainedDragHandler. + * @class * @implements {yfiles.input.IDragHandler} * @template TWrapped */ @@ -28748,35 +28746,34 @@ declare namespace system{ export class ConstrainedDragHandler { /** * Initializes a new instance of the {@link yfiles.input.ConstrainedDragHandler.} class that delegates to the wrappedHandler. - * @param {TWrapped} wrappedHandler The handler to wrap. + * @param wrappedHandler The handler to wrap. * @protected - * @constructor */ constructor(wrappedHandler:TWrapped); /** * Cancels the move operation and calls {@link yfiles.input.ConstrainedDragHandler.#onCanceled} - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Point} originalLocation The value of the coordinate of the {@link yfiles.input.ConstrainedDragHandler.#location} property at the time of {@link yfiles.input.ConstrainedDragHandler.#initializeDrag}. + * @param context The context to retrieve information about the drag from. + * @param originalLocation The value of the coordinate of the {@link #location} property at the time of {@link #initializeDrag}. */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * Callback that needs to implement the constraints for the new location. - * @param {yfiles.input.IInputModeContext} context The context in which the drag will be performed. - * @param {yfiles.geometry.Point} originalLocation The value of the {@link yfiles.input.ConstrainedDragHandler.#location} property at the time of {@link yfiles.input.ConstrainedDragHandler.#initializeDrag}. - * @param {yfiles.geometry.Point} newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the - * implementation the {@link yfiles.input.ConstrainedDragHandler.#location} may or may not be modified to reflect the new value. - * @returns {yfiles.geometry.Point} The constrained value of newLocation. + * @param context The context in which the drag will be performed. + * @param originalLocation The value of the {@link #location} property at the time of {@link #initializeDrag}. + * @param newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the + * implementation the {@link #location} may or may not be modified to reflect the new value. + * @returns The constrained value of newLocation. * @protected * @abstract */ constrainNewLocation(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):yfiles.geometry.Point; /** * Handles the finish operation and invokes {@link yfiles.input.ConstrainedDragHandler.#onFinished} - * @param {yfiles.input.IInputModeContext} context The context to retrieve information about the drag from. - * @param {yfiles.geometry.Point} originalLocation The value of the {@link yfiles.input.ConstrainedDragHandler.#location} property at the time of {@link yfiles.input.ConstrainedDragHandler.#initializeDrag}. - * @param {yfiles.geometry.Point} newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the - * implementation the {@link yfiles.input.ConstrainedDragHandler.#location} may or may not be modified to reflect the new value. This is the same value as delivered in the last - * invocation of {@link yfiles.input.ConstrainedDragHandler.#handleMove} + * @param context The context to retrieve information about the drag from. + * @param originalLocation The value of the {@link #location} property at the time of {@link #initializeDrag}. + * @param newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the + * implementation the {@link #location} may or may not be modified to reflect the new value. This is the same value as delivered in the last + * invocation of {@link #handleMove} */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** @@ -28784,45 +28781,44 @@ declare namespace system{ *

    * This method will use the {@link yfiles.input.ConstrainedDragHandler.#constrainNewLocation} callback to let subclasses constrain the movement. *

    - * @param {yfiles.input.IInputModeContext} context The context in which the drag will be performed. - * @param {yfiles.geometry.Point} originalLocation The value of the {@link yfiles.input.ConstrainedDragHandler.#location} property at the time of {@link yfiles.input.ConstrainedDragHandler.#initializeDrag}. - * @param {yfiles.geometry.Point} newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the - * implementation the {@link yfiles.input.ConstrainedDragHandler.#location} may or may not be modified to reflect the new value. - * @returns Whether the move had any visual effect. This is a hint to the engine to optimize invalidation. + * @param context The context in which the drag will be performed. + * @param originalLocation The value of the {@link #location} property at the time of {@link #initializeDrag}. + * @param newLocation The coordinates in the world coordinate system that the client wants the handle to be at. Depending on the + * implementation the {@link #location} may or may not be modified to reflect the new value. */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Initializes the drag operation and subsequently calls {@link yfiles.input.ConstrainedDragHandler.#onInitialized} - * @param {yfiles.input.IInputModeContext} context The context in which the drag will be performed. + * @param context The context in which the drag will be performed. */ initializeDrag(context:yfiles.input.IInputModeContext):void; /** * Called when the {@link yfiles.input.ConstrainedDragHandler.#cancelDrag} method has been called. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} originalLocation The original location. + * @param context The input mode context. + * @param originalLocation The original location. * @protected */ onCanceled(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * Called when the {@link yfiles.input.ConstrainedDragHandler.#dragFinished} method has been called. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} originalLocation The original location. - * @param {yfiles.geometry.Point} newLocation The new location. + * @param context The input mode context. + * @param originalLocation The original location. + * @param newLocation The new location. * @protected */ onFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Called when the {@link yfiles.input.ConstrainedDragHandler.#initializeDrag} method has been called. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} originalLocation The original location. + * @param context The input mode context. + * @param originalLocation The original location. * @protected */ onInitialized(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * Called when the {@link yfiles.input.ConstrainedDragHandler.#handleMove} operation has been performed. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} originalLocation The original location. - * @param {yfiles.geometry.Point} newLocation The new location. + * @param context The input mode context. + * @param originalLocation The original location. + * @param newLocation The new location. * @protected */ onMoved(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; @@ -28858,9 +28854,9 @@ declare namespace system{ * Implementations should inspect the {@link yfiles.view.ICanvasContext#hitTestRadius} and take the value into account when performing hit tests. This allows the user to * hit elements even if the zoom level is very small and allows for accurate hit tests at greater zoom levels. *

    - * @param {yfiles.input.IInputModeContext} context the context the hit test is performed in - * @param {yfiles.geometry.Point} location the coordinates in world coordinate system - * @returns {boolean} whether something has been hit + * @param context the context the hit test is performed in + * @param location the coordinates in world coordinate system + * @returns whether something has been hit * @abstract */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; @@ -28868,8 +28864,8 @@ declare namespace system{ var IHitTestable:{ /** * Wrap a handler into an interface. - * @param {function(yfiles.input.IInputModeContext, yfiles.geometry.Point): boolean} handler - * @returns {yfiles.input.IHitTestable} + * @param handler + * @returns * @static */ create?(handler:(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point)=>boolean):yfiles.input.IHitTestable; @@ -28908,9 +28904,9 @@ declare namespace system{ *

    * Implementations should respect the {@link yfiles.view.ICanvasContext#hitTestRadius} if marquee selections should behave differently on different zoom levels. *

    - * @param {yfiles.input.IInputModeContext} context the current input mode context - * @param {yfiles.geometry.Rect} rectangle the box describing the marquee's bounds - * @returns {boolean} true if the item is considered to be captured by the marquee + * @param context the current input mode context + * @param rectangle the box describing the marquee's bounds + * @returns true if the item is considered to be captured by the marquee * @abstract */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; @@ -28940,7 +28936,7 @@ declare namespace system{ * implementation is used for specifying the position of the handle. As a convenience this class also implements the {@link yfiles.geometry.IMutablePoint} * interface which modifies the handle's position. *

    - * @class yfiles.input.RectangleHandle + * @class * @implements {yfiles.geometry.IMutablePoint} * @implements {yfiles.input.IHandle} */ @@ -28952,45 +28948,44 @@ declare namespace system{ * The instance modifies the instances using the reshapeable interface and reads the current state using the rect. The * handle will automatically trim changes of the rectangle to the specified minimum and maximum size. *

    - * @param {yfiles.input.HandlePositions} position The position of the handle. - * @param {yfiles.geometry.IMutableRectangle} rectangle The rectangle to change. - * @constructor + * @param position The position of the handle. + * @param rectangle The rectangle to change. */ constructor(position:yfiles.input.HandlePositions,rectangle:yfiles.geometry.IMutableRectangle); /** * Delegates the original values to {@link yfiles.input.RectangleHandle#set} - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation + * @param context + * @param originalLocation */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * This implementation does nothing. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Delegates to {@link yfiles.input.RectangleHandle#set}. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * This implementation does nothing. - * @param {yfiles.input.IInputModeContext} context + * @param context */ initializeDrag(context:yfiles.input.IInputModeContext):void; /** * Delegates the work to the reshapeable. - * @param {yfiles.geometry.Point} delta + * @param delta */ moveBy(delta:yfiles.geometry.Point):void; /** * Delegates to {@link yfiles.input.RectangleHandle#moveBy}. - * @param {number} x - * @param {number} y + * @param x + * @param y */ set(x:number,y:number):void; /** @@ -29070,7 +29065,7 @@ declare namespace system{ *

    * This class works on an {@link yfiles.input.IReshapeHandler}. *

    - * @class yfiles.input.ReshapeHandlerHandle + * @class * @implements {yfiles.input.IHandle} */ export interface ReshapeHandlerHandle extends Object,yfiles.input.IHandle{} @@ -29081,11 +29076,10 @@ declare namespace system{ * The instance modifies the instances using the reshapeable interface and reads the current state using the rect. The * handle will automatically trim changes of the rectangle to the specified minimum and maximum size. *

    - * @param {yfiles.input.HandlePositions} position The position of the handle. - * @param {yfiles.input.IReshapeHandler} reshapeHandler The reshapeable to write the changes to. - * @param {yfiles.geometry.ISize} [maximumSize=null] The maximum size allowed for the rectangle. - * @param {yfiles.geometry.ISize} [minimumSize=null] The minimum size allowed for the rectangle. - * @constructor + * @param position The position of the handle. + * @param reshapeHandler The reshapeable to write the changes to. + * @param [maximumSize=null] The maximum size allowed for the rectangle. + * @param [minimumSize=null] The minimum size allowed for the rectangle. */ constructor(position:yfiles.input.HandlePositions,reshapeHandler:yfiles.input.IReshapeHandler,minimumSize?:yfiles.geometry.ISize,maximumSize?:yfiles.geometry.ISize); /** @@ -29095,36 +29089,35 @@ declare namespace system{ * handle will automatically trim changes of the rectangle to the specified minimum and maximum size. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.input.HandlePositions} options.position The position of the handle. - * @param {yfiles.input.IReshapeHandler} options.reshapeHandler The reshapeable to write the changes to. - * @param {yfiles.geometry.ISize} [options.maximumSize=null] The maximum size allowed for the rectangle. - * @param {yfiles.geometry.ISize} [options.minimumSize=null] The minimum size allowed for the rectangle. - * @constructor + * @param options.position The position of the handle. + * @param options.reshapeHandler The reshapeable to write the changes to. + * @param [options.maximumSize=null] The maximum size allowed for the rectangle. + * @param [options.minimumSize=null] The minimum size allowed for the rectangle. */ constructor(options:{position:yfiles.input.HandlePositions,reshapeHandler:yfiles.input.IReshapeHandler,minimumSize?:yfiles.geometry.ISize,maximumSize?:yfiles.geometry.ISize}); /** * Delegates the cancel request to the {@link yfiles.input.IReshapeHandler}. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation + * @param context + * @param originalLocation */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * Delegates the finish request to the {@link yfiles.input.IReshapeHandler}. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Delegates the move request to the {@link yfiles.input.IReshapeHandler#handleReshape} method. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * This implementation does nothing. - * @param {yfiles.input.IInputModeContext} context + * @param context */ initializeDrag(context:yfiles.input.IInputModeContext):void; /** @@ -29178,531 +29171,5175 @@ declare namespace system{ static $class:yfiles.lang.Class; } /** - * Utility class that holds implementation singletons and utility methods for simple event recognizers. - * @class yfiles.input.EventRecognizers - * @static + * Event arguments for the {@link yfiles.input.GraphSnapContext#addCollectSnapLinesListener CollectSnapLines} event. + *

    + * Instances of this class are also passed to + * {@link yfiles.input.ISnapLineProvider#addSnapLines}. Implementations of that interface can use the following methods to add snap + * lines for specific purposes: + *

    + *
      + *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addFixedNodeSnapLine} – Adds an orthogonal snap line for nodes.
    • + *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addFixedSegmentSnapLine} – Adds an orthogonal snap line for edge segments and bends.
    • + *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addPortSnapLine} – Adds an orthogonal snap line for ports.
    • + *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addAdditionalSnapLine} – Adds an additional orthogonal snap line to which all element will snap.
    • + *
    + * @class + * @extends {yfiles.input.InputModeEventArgs} */ - export interface EventRecognizers extends Object{} - export class EventRecognizers { + export interface CollectGraphSnapLinesEventArgs extends yfiles.input.InputModeEventArgs{} + export class CollectGraphSnapLinesEventArgs { /** - * Creates an instance that is the logical 'and' combination of the provided recognizers. - * @param {...function(Object, yfiles.lang.EventArgs): boolean} recognizers The recognizers to perform the logical operation on. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} An instance that is the result of the logical 'and' operation of the provided instances. - * @static + * Initializes a new instance of the {@link yfiles.input.CollectGraphSnapLinesEventArgs} class. + * @param context The context where the event is being used in. + * @param fixedNodeSnapLines The fixed node snap lines collection to add to. + * @param fixedSegmentSnapLines The fixed segment snap lines collection to add to. + * @param fixedPortSnapLines The fixed port snap lines collection to add to. + * @param additionalSnapLines The additional snap lines collection to add to. */ - static createAndRecognizer(...recognizers:((eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean)[]):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + constructor(context:yfiles.input.IInputModeContext,fixedNodeSnapLines:yfiles.collections.ICollection,fixedSegmentSnapLines:yfiles.collections.ICollection,fixedPortSnapLines:yfiles.collections.ICollection,additionalSnapLines:yfiles.collections.ICollection); /** - * Creates an instance that is the logical 'or' combination of the provided recognizers. - * @param {...function(Object, yfiles.lang.EventArgs): boolean} recognizers The recognizers to perform the logical operation on. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} An instance that is the result of the logical 'or' operation of the provided instances. - * @static + * Adds a snap line all elements will snap to. + * @param snapLine The snap line to add to the list of lines that all elements snap to by default. + * @see yfiles.input.GraphSnapContext#additionalSnapLines */ - static createOrRecognizer(...recognizers:((eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean)[]):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + addAdditionalSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; /** - * Creates an event recognizer instance that yields the boolean inverse of the given event recognizer. - * @param {function(Object, yfiles.lang.EventArgs): boolean} recognizer The recognizer to invert. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} An implementation that performs the logical negation for the argument. - * @static + * Adds a snap line for nodes. + * @param snapLine The snap line to add to the list of lines that nodes snap to by default. + * @see yfiles.input.GraphSnapContext#fixedNodeSnapLines */ - static inverse(recognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + addFixedNodeSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; /** - * A callback that will always return true; - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Adds a snap line for edge segments and bends. + * @param snapLine The snap line to add to the list of lines that segments snap to by default. + * @see yfiles.input.GraphSnapContext#fixedSegmentSnapLines */ - static ALWAYS:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + addFixedSegmentSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; /** - * A callback that will always return false; - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Adds a snap line for ports. + * @param snapLine The snap line to add to the list of lines that ports snap to by default. + * @see yfiles.input.GraphSnapContext#fixedPortSnapLines */ - static NEVER:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + addPortSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; static $class:yfiles.lang.Class; } /** - * Utility class with simple event recognizers that work on {@link yfiles.view.KeyEventArgs}. - * @class yfiles.input.KeyEventRecognizers - * @static + * Abstract base class for {@link yfiles.input.GraphViewerInputMode} and {@link yfiles.input.GraphEditorInputMode}. + *

    + * This class is not supposed to and in fact cannot be extended from user code. It only exists to provide common + * functionality to the two aforementioned input modes. If customizations are wanted or needed both {@link yfiles.input.GraphViewerInputMode} + * and {@link yfiles.input.GraphEditorInputMode} can be extended. + *

    + * @class + * @extends {yfiles.input.MultiplexingInputMode} */ - export interface KeyEventRecognizers extends Object{} - export class KeyEventRecognizers { + export interface GraphInputMode extends yfiles.input.MultiplexingInputMode{} + export class GraphInputMode { /** - * Creates an event recognizer for a given key and type using a given set of modifiers. - * @param {yfiles.view.KeyEventType} type The type of the event. - * @param {yfiles.view.Key} value The key that is subject of the event. - * @param {yfiles.view.ModifierKeys} [modifiers=yfiles.view.ModifierKeys.NONE] The state of the modifiers that must be set. This is {@link yfiles.view.ModifierKeys#NONE} if not set. - * @returns {function(Object, yfiles.lang.EventArgs): boolean} - * @static - */ - static create(type:yfiles.view.KeyEventType,value:yfiles.view.Key,modifiers?:yfiles.view.ModifierKeys):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * Creates an event recognizer that matches key presses. - * @param {yfiles.view.Key} key - * @param {yfiles.view.ModifierKeys} [modifiers=0] - * @returns {function(Object, yfiles.lang.EventArgs): boolean} An event recognizer that uses the gesture. - * @static - */ - static createKeyPress(key:yfiles.view.Key,modifiers?:yfiles.view.ModifierKeys):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when escape has been typed. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static ESCAPE_TYPED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when any key has been pressed. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static KEY_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when any key has been typed. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static KEY_TYPED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when any key has been released. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static KEY_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when escape has been pressed. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static ESCAPE_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when delete has been pressed. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static DELETE_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when escape has been released. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static ESCAPE_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when the shift modifier is active. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static SHIFT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when the alt modifier is active. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static ALT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when the control modifier is active. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static CONTROL_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that recognizes when the Meta modifier is active. + * Clears the selection on the current {@link yfiles.input.GraphInputMode#graphSelection}. *

    - * Meta maps to the Windows key on Windows platforms and the Command key on Mac. + * This implementation may be overridden for customizations. All it does is call {@link yfiles.view.ISelectionModel.#clear}. *

    - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static META_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + clearSelection():void; /** - * An event recognizer that recognizes when the shift modifier is being pressed. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Actually performs the click on the given item. + *

    + * This will raise the {@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked}, {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked} + * (depending on the button), and {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} events. If + * either event is unhandled by all its event handlers the item will be {@link yfiles.input.GraphInputMode#setSelected selected} and {@link yfiles.input.GraphInputMode#setCurrentItem focused}. Before selection + * {@link yfiles.input.GraphInputMode#clearSelection the current selection will be cleared}, unless the {@link yfiles.input.GraphInputMode#multiSelectionRecognizer} is triggered. + *

    + * @param item The item that has been clicked. + * @param evt The original event arguments for the click. Setting its {@link #handled} property to true will indicate that the click was handled. By + * default this happens when the clicked item is either selected or focused. + * @protected */ - static SHIFT_DOWN:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + click(item:yfiles.graph.IModelItem,evt:yfiles.input.ClickEventArgs):void; /** - * An event recognizer that recognizes when the shift modifier is being released. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Clears the selection on click if {@link yfiles.view.CanvasComponent#lastMouseEvent the click} is not recognized by {@link yfiles.input.GraphInputMode#multiSelectionRecognizer}. + *

    + * This method is only called if no item has been hit and at least one item is currently selected. + *

    + *

    + * This will use the {@link yfiles.input.GraphInputMode#clearSelection} method to deselect all items. + *

    + * @param context The context where the click appeared + * @returns Whether the selection has been cleared by this method. + * @protected */ - static SHIFT_UP:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + clickClearSelection(context:yfiles.input.IInputModeContext):boolean; /** - * An event recognizer that recognizes when the ctrl modifier is being pressed. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Copies the currently selected elements to the clipboard. */ - static CTRL_DOWN:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + copy():void; /** - * An event recognizer that recognizes when the Ctrl modifier is being released. - * @const - * @static + * Factory method for the {@link yfiles.input.GraphInputMode#clickInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#clickInputMode} property. + *

    + *

    + * This implementation {@link yfiles.input.ClickInputMode#activeButtons activates} both {@link yfiles.view.MouseButtons#LEFT} and {@link yfiles.view.MouseButtons#RIGHT} + *

    + * @returns a new instance of ClickInputMode + * @protected + */ + createClickInputMode():yfiles.input.ClickInputMode; + /** + * Factory method for the {@link yfiles.input.GraphInputMode#contextMenuInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#contextMenuInputMode} property. + *

    + * @returns a new instance of ContextMenuInputMode + * @protected + */ + createContextMenuInputMode():yfiles.input.ContextMenuInputMode; + /** + * Factory method for the {@link yfiles.input.GraphInputMode#itemHoverInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#itemHoverInputMode} property. + *

    + * @returns a new instance of {@link #itemHoverInputMode} with the {@link #hoverItems} property set to {@link #NONE}. + * @protected + */ + createItemHoverInputMode():yfiles.input.ItemHoverInputMode; + /** + * Factory method that creates the {@link yfiles.input.GraphInputMode#keyboardInputMode} instance. + * @returns + * @protected + */ + createKeyboardInputMode():yfiles.input.KeyboardInputMode; + /** + * Factory method for the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property. + *

    + * @returns a new instance of MarqueeSelectionInputMode + * @protected + */ + createMarqueeSelectionInputMode():yfiles.input.MarqueeSelectionInputMode; + /** + * Factory method for the {@link yfiles.input.MouseHoverInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.MouseHoverInputMode} property. + *

    + * @returns a new instance of {@link } + * @protected + */ + createMouseHoverInputMode():yfiles.input.MouseHoverInputMode; + /** + * Factory method for the {@link yfiles.input.GraphInputMode#moveViewportInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#moveViewportInputMode} property. + *

    + * @returns a new instance of {@link #moveViewportInputMode} + * @protected + */ + createMoveViewportInputMode():yfiles.input.MoveViewportInputMode; + /** + * Factory method for the {@link yfiles.input.GraphInputMode#navigationInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#navigationInputMode} property. + *

    + * @returns a new instance of NavigationInputMode + * @protected + */ + createNavigationInputMode():yfiles.input.NavigationInputMode; + /** + * Helper method that yields a suitably configured {@link yfiles.input.SelectionEventArgs.} using the {@link yfiles.input.GraphInputMode#graphSelection} for this input mode. + * @param context An input mode context that is available in the {@link }. + *

    + * Can be null in which case a new context for this instance is created automatically. + *

    + * @returns A selection event argument that is configured for this instance. + * @protected + */ + createSelectionEventArgs(context:yfiles.input.IInputModeContext):yfiles.input.SelectionEventArgs; + /** + * Factory method for the {@link yfiles.input.GraphInputMode#tapInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#tapInputMode} property. + *

    + * @returns a new instance of TapInputMode + * @protected + */ + createTapInputMode():yfiles.input.TapInputMode; + /** + * Factory method for the {@link yfiles.input.GraphInputMode#waitInputMode} property. + *

    + * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#waitInputMode} property. + *

    + * @returns a new instance of {@link #waitInputMode} + * @protected + */ + createWaitInputMode():yfiles.input.WaitInputMode; + /** + * Actually performs a double-click on the given item. + *

    + * This will raise the {@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} and {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked} + * (depending on the button), and {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} + * events. + *

    + * @param item The item that has been double-clicked. + * @param evt The original event arguments for the click. Setting its {@link #handled} property to true will indicate that the double-click was + * handled and events on other items in the same location are no longer raised. + * @protected + */ + doubleClick(item:yfiles.graph.IModelItem,evt:yfiles.input.ClickEventArgs):void; + /** + * Actually performs a double-tap on the given item. + *

    + * This will raise the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event. + *

    + * @param item The item that has been double-tapped. + * @param evt The original event arguments for the tap. Setting its {@link #handled} property to true will indicate that the double-tap was handled + * and events on other items in the same location are no longer raised. + * @protected + */ + doubleTap(item:yfiles.graph.IModelItem,evt:yfiles.input.TapEventArgs):void; + /** + * Used as a callback to find the items hit underneath a certain point. + *

    + * This implementation uses the {@link yfiles.input.GraphEditorInputMode#hitTester} to determine the hit items. + *

    + * @param context The context to use for to the {@link #isHit} callback. + * @param location The location to test. + * @param tests An array of {@link } values that encode for which model items the hit test should be performed for + * prioritizing. + * @param [filter=null] The predicate that can be used to filter the results. May be null. + * @returns An enumerable over the items that have been found for the location. + */ + findItems(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,tests:yfiles.graph.GraphItemTypes[],filter?:(obj:yfiles.graph.IModelItem)=>boolean):yfiles.collections.IEnumerable; + /** + * Used as a callback to find the items hit underneath a certain point. + *

    + * This implementation uses the {@link yfiles.input.GraphEditorInputMode#hitTester} to determine the hit items. + *

    + * @param location The location to test. + * @param tests An array of {@link } values that encode for which model items the hit test should be performed for + * prioritizing. + * @param [filter=null] The predicate that can be used to filter the results. May be null. + * @returns An enumerable over the items that have been found for the location. + */ + findItems(location:yfiles.geometry.Point,tests:yfiles.graph.GraphItemTypes[],filter?:(obj:yfiles.graph.IModelItem)=>boolean):yfiles.collections.IEnumerable; + /** + * Called by {@link yfiles.input.GraphInputMode#click} to query the item for an {@link yfiles.input.IClickListener} in its {@link yfiles.graph.ILookup#lookup} + * and handle it appropriately. + *

    + * This method will query the {@link yfiles.input.IClickListener} and check whether it was {@link yfiles.input.IClickListener#getHitTestable hit} by the click, and if so, will invoke + * {@link yfiles.input.IClickListener#onClicked} and return true. + *

    + * @param context The context for the click. + * @param item The item that has been clicked. + * @param location The click location. + * @returns Whether the action has been invoked and handling should be stopped. + * @see yfiles.input.IClickListener + * @see yfiles.input.GraphInputMode#click + * @protected + */ + handleClickListener(context:yfiles.input.IInputModeContext,item:yfiles.graph.IModelItem,location:yfiles.geometry.Point):boolean; + /** + * Performs marquee-selection with the given rectangle. + *

    + * It delegates directly to the {@link yfiles.input.GraphInputMode#onMarqueeSelect} overload internally. + *

    + * @param marqueeRectangle The selection rectangle. + */ + marqueeSelect(marqueeRectangle:yfiles.geometry.Rect):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addCanvasClickedListener CanvasClicked} event. + *

    + * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ClickEventArgs#handled} property to true. + *

    + * @param evt The {@link } instance that contains the information about the click. + * @protected + */ + onCanvasClicked(evt:yfiles.input.ClickEventArgs):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#clickInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onClickInputModeChanged(oldMode:yfiles.input.ClickInputMode,newMode:yfiles.input.ClickInputMode):void; + /** + * Called when the {@link yfiles.input.ContextMenuInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onContextMenuInputModeChanged(oldMode:yfiles.input.ContextMenuInputMode,newMode:yfiles.input.ContextMenuInputMode):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event. + *

    + * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. + *

    + * @param evt The {@link } instance that contains the item that has been clicked. + * @protected + */ + onItemClicked(evt:yfiles.input.ItemClickedEventArgs):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event. + *

    + * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. + *

    + * @param evt The {@link } instance that contains the item that has been double clicked. + * @protected + */ + onItemDoubleClicked(evt:yfiles.input.ItemClickedEventArgs):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#itemHoverInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onItemHoverInputModeChanged(oldMode:yfiles.input.ItemHoverInputMode,newMode:yfiles.input.ItemHoverInputMode):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked} event. + *

    + * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. + *

    + * @param evt The {@link } instance that contains the item that has been clicked. + * @protected + */ + onItemLeftClicked(evt:yfiles.input.ItemClickedEventArgs):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} event. + *

    + * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. + *

    + * @param evt The {@link } instance that contains the item that has been double clicked. + * @protected + */ + onItemLeftDoubleClicked(evt:yfiles.input.ItemClickedEventArgs):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked} event. + *

    + * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. + *

    + * @param evt The {@link } instance that contains the item that has been clicked. + * @protected + */ + onItemRightClicked(evt:yfiles.input.ItemClickedEventArgs):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked} event. + *

    + * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. + *

    + * @param evt The {@link } instance that contains the item that has been double clicked. + * @protected + */ + onItemRightDoubleClicked(evt:yfiles.input.ItemClickedEventArgs):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#keyboardInputMode} changed. + * @param oldMode The old {@link #keyboardInputMode}. + * @param newMode The new {@link #keyboardInputMode}. + * @protected + */ + onKeyboardInputModeChanged(oldMode:yfiles.input.KeyboardInputMode,newMode:yfiles.input.KeyboardInputMode):void; + /** + * Performs marquee-selection with the given rectangle. + *

    + * This method is called internally when either the {@link yfiles.input.GraphInputMode#marqueeSelect} method is called or the user + * performs a marquee-selection gesture via {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode}. + *

    + * @param context The input mode context. + * @param marqueeRectangle The selection rectangle. + * @protected + */ + onMarqueeSelect(context:yfiles.input.IInputModeContext,marqueeRectangle:yfiles.geometry.Rect):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onMarqueeSelectionInputModeChanged(oldMode:yfiles.input.MarqueeSelectionInputMode,newMode:yfiles.input.MarqueeSelectionInputMode):void; + /** + * Selects the given elements in the editor inside the provided marquee-selection rectangle. + *

    + * This implementation iterates over the items and queries them for an implementation of {@link yfiles.input.IMarqueeTestable} + * using their {@link yfiles.graph.ILookup#lookup}. This instance will be used to determine whether the item should be selected. + *

    + *

    + * This method is, in the default implementation, only called with individual item types in items. + *

    + * @param context The input mode context. + * @param marqueeRectangle The rectangle in world coordinates. + * @param items The items to iterate over. + * @param predicate The predicate that determines whether the provided item should be tested at all. May be null. + * @see yfiles.input.GraphInputMode#setSelected + * @see yfiles.input.GraphInputMode#onMarqueeSelect + * @protected + */ + onMarqueeSelectItems(context:yfiles.input.IInputModeContext,marqueeRectangle:yfiles.geometry.Rect,items:yfiles.collections.IEnumerable,predicate:(obj:yfiles.graph.IModelItem)=>boolean):void; + /** + * Called when the {@link yfiles.input.MouseHoverInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onMouseHoverInputModeChanged(oldMode:yfiles.input.MouseHoverInputMode,newMode:yfiles.input.MouseHoverInputMode):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#moveViewportInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onMoveViewportInputModeChanged(oldMode:yfiles.input.MoveViewportInputMode,newMode:yfiles.input.MoveViewportInputMode):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addMultiSelectionFinishedListener MultiSelectionFinished} event. + * @param evt + * @protected + */ + onMultiSelectionFinished(evt:yfiles.input.SelectionEventArgs):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addMultiSelectionStartedListener MultiSelectionStarted} event. + * @param evt + * @protected + */ + onMultiSelectionStarted(evt:yfiles.input.SelectionEventArgs):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#navigationInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onNavigationInputModeChanged(oldMode:yfiles.input.NavigationInputMode,newMode:yfiles.input.NavigationInputMode):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addPopulateItemContextMenuListener PopulateItemContextMenu} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onPopulateItemContextMenu(evt:yfiles.input.PopulateItemContextMenuEventArgs):void; + /** + * Raises the {@link yfiles.input.GraphInputMode#addQueryItemToolTipListener QueryItemToolTip} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onQueryItemToolTip(evt:yfiles.input.QueryItemToolTipEventArgs):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#tapInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onTapInputModeChanged(oldMode:yfiles.input.TapInputMode,newMode:yfiles.input.TapInputMode):void; + /** + * Called when the {@link yfiles.input.GraphInputMode#waitInputMode} property value changes and after initialization of the field. + * @param oldMode the old value, which may be null the first time + * @param newMode the new value + * @protected + */ + onWaitInputModeChanged(oldMode:yfiles.input.WaitInputMode,newMode:yfiles.input.WaitInputMode):void; + /** + * Clears the current selection and selects all nodes and bends in this graph. + *

    + * By default, this method will be called in response to a Ctrl+A key press recognized by {@link yfiles.input.GraphInputMode#keyboardInputMode}. + *

    + * @see yfiles.input.GraphInputMode#clearSelection + * @see yfiles.input.GraphInputMode#setSelected + * @see yfiles.input.ICommand#SELECT_ALL + * @see yfiles.input.GraphInputMode#selectableItems + * @see yfiles.input.GraphInputMode#ignoreVoidStyles + */ + selectAll():void; + /** + * Callback that is used by this instance to set the current item on the {@link yfiles.input.NavigationInputMode#setCurrentItem NavigationInputMode} + * @param item The item to set as the new "current" item. + */ + setCurrentItem(item:yfiles.graph.IModelItem):void; + /** + * Uses the {@link yfiles.input.GraphInputMode#graphSelection} to select the given item. + * @param item The item to set the selection state on. + * @param selected The new selection state. + */ + setSelected(item:yfiles.graph.IModelItem,selected:boolean):void; + /** + * Callback predicate method that is used to determine whether the given item can be {@link yfiles.input.GraphInputMode#click clicked}. + *

    + * This implementation uses the {@link yfiles.input.GraphInputMode#clickableItems} value to determine whether the item should be clicked. Note that this method will not be + * called for items that don't match {@link yfiles.input.GraphInputMode#clickableItems} for performance reasons. + *

    + * @param item The item to check. + * @returns Whether the item should be {@link #click clicked} in response to a detected mouse click. + * @protected + */ + shouldClick(item:yfiles.graph.IModelItem):boolean; + /** + * Callback predicate method that is used to determine whether the given item should be selected when + * {@link yfiles.input.GraphInputMode#click clicked with the primary mouse button}. + *

    + * This implementation uses the {@link yfiles.input.GraphInputMode#clickSelectableItems} value to determine whether the item should be selected. Note that this method will not be + * called for items that don't match {@link yfiles.input.GraphInputMode#clickSelectableItems} and {@link yfiles.input.GraphInputMode#selectableItems} for performance reasons. + *

    + * @param item The item to check. + * @returns Whether the item should be selected in response to a detected mouse click with the primary button. + * @protected + */ + shouldClickSelect(item:yfiles.graph.IModelItem):boolean; + /** + * Callback predicate method that is used to determine whether the given item can be {@link yfiles.input.GraphInputMode#doubleClick double clicked}. + *

    + * This implementation uses the {@link yfiles.input.GraphInputMode#shouldClick} method to determine whether the item should be + * double clicked. Note that this method will not be called for items that don't match {@link yfiles.input.GraphInputMode#clickableItems} for performance reasons. + *

    + * @param item The item to check. + * @returns Whether the item should be {@link #doubleClick double clicked} in response to a detected mouse click. + * @protected + */ + shouldDoubleClick(item:yfiles.graph.IModelItem):boolean; + /** + * Callback that determines whether the provided {@link yfiles.graph.IModelItem} should be {@link yfiles.input.GraphInputMode#setCurrentItem set to the current item}. + *

    + * This implementation uses the {@link yfiles.input.GraphInputMode#focusableItems} property to determine whether the item can be set to the current item. It also honors the + * {@link yfiles.input.GraphInputMode#ignoreVoidStyles} property. + *

    + * @param item The item to check. + * @returns Whether to set the item as the current item. + * @protected + */ + shouldFocus(item:yfiles.graph.IModelItem):boolean; + /** + * Callback method that is used to determine which of the built-in {@link yfiles.input.ICommand}s to install. + *

    + * This implementation unconditionally returns true, subclasses may override this method to adjust the behavior. + *

    + * @param command The command to install. + * @returns Whether to install this command. + * @protected + */ + shouldInstallCommand(command:yfiles.input.ICommand):boolean; + /** + * Callback method used by {@link yfiles.input.GraphInputMode#marqueeSelect} that takes {@link yfiles.input.GraphInputMode#marqueeSelectableItems} and {@link yfiles.input.GraphInputMode#shouldSelectItem} + * into account. + * @param item The item to check. + * @returns Whether to possibly marquee select the item. + * @protected + */ + shouldMarqueeSelect(item:yfiles.graph.IModelItem):boolean; + /** + * Determines whether for the given item a context menu should be queried. + *

    + * This implementation uses the {@link yfiles.input.GraphInputMode#contextMenuItems} property to determine whether a context menu should be queried for the given item. + *

    + * @param item The item to check. + * @returns Whether to raise a {@link #addPopulateItemContextMenuListener PopulateItemContextMenu} event for + * the given item. + * @protected + */ + shouldPopulateContextMenu(item:yfiles.graph.IModelItem):boolean; + /** + * Determines whether for the given item a tool tip should be queried. + *

    + * This implementation uses the {@link yfiles.input.GraphInputMode#toolTipItems} property to determine whether tool tip should be queried for the given item. + *

    + * @param item The item to check. + * @returns Whether to raise a {@link #addQueryItemToolTipListener QueryItemToolTip} event for the + * given item. + * @protected + */ + shouldQueryToolTip(item:yfiles.graph.IModelItem):boolean; + /** + * Callback predicate method that is used as a broad classification whether an item can generally be selected. + *

    + * This implementation uses and honors the {@link yfiles.input.GraphInputMode#selectableItems}, {@link yfiles.input.GraphInputMode#ignoreVoidStyles} and {@link yfiles.input.GraphInputMode#selectablePredicate} properties. This method is by default also called by {@link yfiles.input.GraphInputMode#shouldClickSelect} + * and {@link yfiles.input.GraphInputMode#shouldMarqueeSelect}, so turning selection off here also turns it off in other places. + *

    + * @param item The item to check. + * @returns true if the item is selectable in general, false if not. + * @protected + */ + shouldSelectItem(item:yfiles.graph.IModelItem):boolean; + /** + * Actually performs the tap on the given item. + *

    + * This will raise the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event. If the event + * is unhandled by all its event handlers the item will be {@link yfiles.input.GraphInputMode#setSelected selected} and {@link yfiles.input.GraphInputMode#setCurrentItem focused}. Before selection + * {@link yfiles.input.GraphInputMode#clearSelection the current selection will be cleared}. + *

    + * @param item The item that has been tapped. + * @param evt The original event arguments for the tap. Setting its {@link #handled} property to true will indicate that the tap was handled. By + * default this happens when the tapped item is either selected or focused. + * @protected + */ + tap(item:yfiles.graph.IModelItem,evt:yfiles.input.TapEventArgs):void; + /** + * Gets the graph instance from the {@link yfiles.input.MultiplexingInputMode#inputModeContext}. + * @type {yfiles.graph.IGraph} + */ + graph:yfiles.graph.IGraph; + /** + * Gets the graph selection from the {@link yfiles.input.MultiplexingInputMode#inputModeContext}. + * @type {yfiles.view.IGraphSelection} + */ + graphSelection:yfiles.view.IGraphSelection; + /** + * Gets or sets the order of the types of items that should be used to determine what item has been clicked or tapped. + *

    + * Change this field to adjust which items will be {@link yfiles.input.GraphInputMode#setSelected selected} if there are multiple items at a given location. The default + * order is + *

    + *
      + *
    • {@link yfiles.graph.GraphItemTypes#BEND}
    • + *
    • {@link yfiles.graph.GraphItemTypes#EDGE_LABEL}
    • + *
    • {@link yfiles.graph.GraphItemTypes#EDGE}
    • + *
    • {@link yfiles.graph.GraphItemTypes#NODE}
    • + *
    • {@link yfiles.graph.GraphItemTypes#NODE_LABEL}
    • + *
    • {@link yfiles.graph.GraphItemTypes#PORT}
    • + *
    + * @see yfiles.input.GraphInputMode#clickSelectableItems + * @see yfiles.input.GraphInputMode#selectableItems + * @see yfiles.input.GraphInputMode#findItems + * @type {Array.} + */ + clickHitTestOrder:yfiles.graph.GraphItemTypes[]; + /** + * Gets or sets the order of the types of items that should be used to determine what item has been double-clicked or + * double-tapped. + *

    + * Change this field to adjust which items will be considered when {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener double-clicked} if there are multiple items at a given + * location. The default order is + *

    + *
      + *
    • {@link yfiles.graph.GraphItemTypes#EDGE_LABEL}
    • + *
    • {@link yfiles.graph.GraphItemTypes#NODE_LABEL}
    • + *
    • {@link yfiles.graph.GraphItemTypes#BEND}
    • + *
    • {@link yfiles.graph.GraphItemTypes#EDGE}
    • + *
    • {@link yfiles.graph.GraphItemTypes#NODE}
    • + *
    • {@link yfiles.graph.GraphItemTypes#PORT}
    • + *
    + * @see yfiles.input.GraphInputMode#clickSelectableItems + * @see yfiles.input.GraphInputMode#selectableItems + * @see yfiles.input.GraphInputMode#findItems + * @type {Array.} + */ + doubleClickHitTestOrder:yfiles.graph.GraphItemTypes[]; + /** + * Gets or sets the event recognizer that will be queried to decide if a click should select the item that is currently + * visible under the mouse cursor, without giving more important items higher priority. + *

    + * If the recognizer determines that the user wanted to use the detail clicking behavior, the {@link yfiles.input.GraphEditorInputMode#hitTester} will be queried for the + * given item and the first item that is returned will be considered a hit. Otherwise all hit items are examined and are + * prioritized by item type. E.g. by default clicking on a node will select the node, even if there is a node label which + * has been clicked at the same point. If detail selection is recognized, the label will be selected. + *

    + *

    + * The default is {@link yfiles.input.KeyEventRecognizers#SHIFT_PRESSED}. + *

    * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static CTRL_UP:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + detailSelectionRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * Gets or sets the event recognizer that will be queried to decide if a click should cycle through all the items that are + * currently under the mouse cursor. + *

    + * If the recognizer determines that the user wanted to use the cyclic click selection behavior, the {@link yfiles.input.GraphEditorInputMode#hitTester} will be queried for + * the given item and previously reported items will be ignored. E.g. if multiple nodes are overlapping each other, + * clicking on them will report the first item for the first click, the second one for the second click and so on. If all + * elements have been reported previously, the first one is going to be reported again. If the order of the elements at the + * clicked location changes, the cyclic selection is restarted anew. + *

    + *

    + * The default is {@link yfiles.input.KeyEventRecognizers#ALT_PRESSED}. + *

    + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + cyclicSelectionRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * Gets or sets the event recognizer that will be queried to decide if a click is deemed a multi selection gesture. + *

    + * The default is a combination of {@link yfiles.input.KeyEventRecognizers#CONTROL_PRESSED} or + * {@link yfiles.input.KeyEventRecognizers#META_PRESSED}. + *

    + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + multiSelectionRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * Determines which types of items should be reported through the {@link yfiles.input.GraphInputMode#addItemClickedListener item click events}. + *

    + * This also affects taps. + *

    + *

    + * The default is {@link yfiles.graph.GraphItemTypes#ALL}. + *

    + * @see yfiles.input.GraphInputMode#shouldClick + * @type {yfiles.graph.GraphItemTypes} + */ + clickableItems:yfiles.graph.GraphItemTypes; + /** + * Gets or sets the items that can be given focus via the {@link yfiles.input.GraphInputMode#setCurrentItem} method. + *

    + * The focusable items. The default is {@link yfiles.graph.GraphItemTypes#NODE} + *

    + * @default yfiles.graph.GraphItemTypes.NODE + * @type {yfiles.graph.GraphItemTypes} + */ + focusableItems:yfiles.graph.GraphItemTypes; + /** + * Determines which types of items should be selectable at all. + *

    + * The default is {@link yfiles.graph.GraphItemTypes#ALL}. + *

    + * @see yfiles.input.GraphInputMode#setSelected + * @type {yfiles.graph.GraphItemTypes} + */ + selectableItems:yfiles.graph.GraphItemTypes; + /** + * Gets or sets a predicate that is queried to determine whether a given {@link yfiles.graph.IModelItem} is selectable. + *

    + * This allows to further restrict which items are selectable, compared to {@link yfiles.input.GraphInputMode#selectableItems}. If this property is set to null the effect is + * the same as a predicate that always returns true. + *

    + * @type {function(yfiles.graph.IModelItem): boolean} + */ + selectablePredicate:(obj:yfiles.graph.IModelItem)=>boolean; + /** + * Determines which types of items should be selectable by mouse clicks. + *

    + * The default is {@link yfiles.graph.GraphItemTypes#ALL}. + *

    + * @see yfiles.input.GraphInputMode#shouldClickSelect + * @see yfiles.input.GraphInputMode#setSelected + * @type {yfiles.graph.GraphItemTypes} + */ + clickSelectableItems:yfiles.graph.GraphItemTypes; + /** + * Determines which types of items should be selected during {@link yfiles.input.GraphInputMode#marqueeSelect marquee selections}. + *

    + * The default is a combination of {@link yfiles.graph.GraphItemTypes#NODE}, {@link yfiles.graph.GraphItemTypes#EDGE}, and + * {@link yfiles.graph.GraphItemTypes#BEND}. + *

    + * @see yfiles.input.GraphInputMode#shouldMarqueeSelect + * @see yfiles.input.GraphInputMode#setSelected + * @type {yfiles.graph.GraphItemTypes} + */ + marqueeSelectableItems:yfiles.graph.GraphItemTypes; + /** + * Gets or sets a value indicating whether void styles ({@link yfiles.styles.VoidNodeStyle}, {@link yfiles.styles.VoidEdgeStyle}, + * {@link yfiles.styles.VoidLabelStyle}, and {@link yfiles.styles.VoidPortStyle}) should be ignored when selecting or focusing items. + * @type {boolean} + */ + ignoreVoidStyles:boolean; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#contextMenuInputMode} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createContextMenuInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onContextMenuInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 60. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.ContextMenuInputMode} + */ + contextMenuInputMode:yfiles.input.ContextMenuInputMode; + /** + * Gets or sets the types of items a context menu should be queried for. + *

    + * The items for which a context menu should be {@link yfiles.input.GraphInputMode#addPopulateItemContextMenuListener queried}. The default value is + * {@link yfiles.graph.GraphItemTypes#NODE}|{@link yfiles.graph.GraphItemTypes#EDGE}. + *

    + * @default 1 | 2 + * @type {yfiles.graph.GraphItemTypes} + */ + contextMenuItems:yfiles.graph.GraphItemTypes; + /** + * Adds the given listener for the PopulateItemContextMenu event that occurs when the {@link yfiles.input.ContextMenuInputMode context menu} over an item is about to + * be opened to determine the contents of the Menu. + *

    + * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#contextMenuItems} type. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#removePopulateItemContextMenuListener + */ + addPopulateItemContextMenuListener(listener:(sender:Object,evt:yfiles.input.PopulateItemContextMenuEventArgs)=>void):void; + /** + * Removes the given listener for the PopulateItemContextMenu event that occurs when the {@link yfiles.input.ContextMenuInputMode context menu} over an item is about + * to be opened to determine the contents of the Menu. + *

    + * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#contextMenuItems} type. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#addPopulateItemContextMenuListener + */ + removePopulateItemContextMenuListener(listener:(sender:Object,evt:yfiles.input.PopulateItemContextMenuEventArgs)=>void):void; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#mouseHoverInputMode} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createMouseHoverInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onMouseHoverInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 100. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.MouseHoverInputMode} + */ + mouseHoverInputMode:yfiles.input.MouseHoverInputMode; + /** + * Gets the types of the items that should be queried a tool tip for. + *

    + * The items for which a tool tip text should be {@link yfiles.input.GraphInputMode#addQueryItemToolTipListener queried}. The default value is + * {@link yfiles.graph.GraphItemTypes#NODE}|{@link yfiles.graph.GraphItemTypes#EDGE}|{@link yfiles.graph.GraphItemTypes#LABEL}|{@link yfiles.graph.GraphItemTypes#PORT}|. + *

    + * @default 1 | 2 | 12 | 16 + * @type {yfiles.graph.GraphItemTypes} + */ + toolTipItems:yfiles.graph.GraphItemTypes; + /** + * Adds the given listener for the QueryItemToolTip event that occurs when the mouse is {@link yfiles.input.MouseHoverInputMode hovering} over an item to determine + * the tool tip to display. + *

    + * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#toolTipItems} type. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#removeQueryItemToolTipListener + */ + addQueryItemToolTipListener(listener:(sender:Object,evt:yfiles.input.QueryItemToolTipEventArgs)=>void):void; + /** + * Removes the given listener for the QueryItemToolTip event that occurs when the mouse is {@link yfiles.input.MouseHoverInputMode hovering} over an item to + * determine the tool tip to display. + *

    + * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#toolTipItems} type. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#addQueryItemToolTipListener + */ + removeQueryItemToolTipListener(listener:(sender:Object,evt:yfiles.input.QueryItemToolTipEventArgs)=>void):void; + /** + * Gets or sets the {@link yfiles.input.ClickInputMode} that is used by this instance to determine clicks. + *

    + * Whenever the mode detects a {@link yfiles.input.ClickInputMode#addClickedListener click}, this mode will use the {@link yfiles.input.IHitTester.} from the {@link yfiles.input.MultiplexingInputMode#inputModeContext} to determine the items being hit. If they match the + * {@link yfiles.input.GraphInputMode#clickableItems} type, the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will be triggered. If + * they {@link yfiles.input.GraphInputMode#shouldFocus}, the item will be {@link yfiles.input.GraphInputMode#setCurrentItem set as the current item}. + *

    + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createClickInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onClickInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 10. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @see yfiles.input.GraphInputMode#onItemClicked + * @type {yfiles.input.ClickInputMode} + */ + clickInputMode:yfiles.input.ClickInputMode; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#tapInputMode} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createTapInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onTapInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 20. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.TapInputMode} + */ + tapInputMode:yfiles.input.TapInputMode; + /** + * Adds the given listener for the ItemClicked event that occurs when an item has been clicked. + *

    + * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. + *

    + *

    + * This event will also be raised for {@link yfiles.input.GraphInputMode#tap taps}. + *

    + *

    + * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked} and + * {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked}) will be raised before this event. + * If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftClickedListener + * @see yfiles.input.GraphInputMode#addItemRightClickedListener + * @see yfiles.input.GraphInputMode#removeItemClickedListener + */ + addItemClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Removes the given listener for the ItemClicked event that occurs when an item has been clicked. + *

    + * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. + *

    + *

    + * This event will also be raised for {@link yfiles.input.GraphInputMode#tap taps}. + *

    + *

    + * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked} and + * {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked}) will be raised before this event. + * If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftClickedListener + * @see yfiles.input.GraphInputMode#addItemRightClickedListener + * @see yfiles.input.GraphInputMode#addItemClickedListener + */ + removeItemClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Adds the given listener for the ItemLeftClicked event that occurs when an item has been left clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that + * case. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#addItemRightClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener + * @see yfiles.input.GraphInputMode#removeItemLeftClickedListener + */ + addItemLeftClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Removes the given listener for the ItemLeftClicked event that occurs when an item has been left clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that + * case. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#addItemRightClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftClickedListener + */ + removeItemLeftClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Adds the given listener for the ItemRightClicked event that occurs when an item has been right clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that + * case. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftClickedListener + * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener + * @see yfiles.input.GraphInputMode#removeItemRightClickedListener + */ + addItemRightClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Removes the given listener for the ItemRightClicked event that occurs when an item has been right clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that + * case. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftClickedListener + * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemRightClickedListener + */ + removeItemRightClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Adds the given listener for the ItemDoubleClicked event that occurs when an item has been double clicked. + *

    + * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. + *

    + *

    + * Depending on the value of the {@link yfiles.input.ClickInputMode#doubleClickPolicy} property of {@link yfiles.input.GraphInputMode#clickInputMode} this event may be preceded by no, one, or two {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} + * events (as well as the corresponding button-specific event). + *

    + *

    + * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} and + * {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked}) will be raised before this + * event. If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener + * @see yfiles.input.GraphInputMode#removeItemDoubleClickedListener + */ + addItemDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Removes the given listener for the ItemDoubleClicked event that occurs when an item has been double clicked. + *

    + * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. + *

    + *

    + * Depending on the value of the {@link yfiles.input.ClickInputMode#doubleClickPolicy} property of {@link yfiles.input.GraphInputMode#clickInputMode} this event may be preceded by no, one, or two {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} + * events (as well as the corresponding button-specific event). + *

    + *

    + * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} and + * {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked}) will be raised before this + * event. If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + */ + removeItemDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Adds the given listener for the ItemLeftDoubleClicked event that occurs when an item has been left double clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised + * in that case. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener + * @see yfiles.input.GraphInputMode#removeItemLeftDoubleClickedListener + */ + addItemLeftDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Removes the given listener for the ItemLeftDoubleClicked event that occurs when an item has been left double clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised + * in that case. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener + */ + removeItemLeftDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Adds the given listener for the ItemRightDoubleClicked event that occurs when an item has been right double clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised + * in that case. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener + * @see yfiles.input.GraphInputMode#removeItemRightDoubleClickedListener + */ + addItemRightDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Removes the given listener for the ItemRightDoubleClicked event that occurs when an item has been right double clicked. + *

    + * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} + * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means + * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised + * in that case. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#clickableItems + * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener + * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener + */ + removeItemRightDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; + /** + * Adds the given listener for the CanvasClicked event that occurs when the empty canvas area has been clicked. + *

    + * If one of the event handlers sets the {@link yfiles.input.ClickEventArgs#handled} property to true the event will not be propagated anymore. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#removeCanvasClickedListener + */ + addCanvasClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; + /** + * Removes the given listener for the CanvasClicked event that occurs when the empty canvas area has been clicked. + *

    + * If one of the event handlers sets the {@link yfiles.input.ClickEventArgs#handled} property to true the event will not be propagated anymore. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#addItemClickedListener + * @see yfiles.input.GraphInputMode#addCanvasClickedListener + */ + removeCanvasClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createMarqueeSelectionInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onMarqueeSelectionInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 50. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.MarqueeSelectionInputMode} + */ + marqueeSelectionInputMode:yfiles.input.MarqueeSelectionInputMode; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#navigationInputMode} property. + *

    + * This mode is responsible for navigating and traversing the elements in the {@link yfiles.graph.IGraph}. If the field has not yet + * been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createNavigationInputMode} will be + * called. Upon change the {@link yfiles.input.GraphInputMode#onNavigationInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 55. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.NavigationInputMode} + */ + navigationInputMode:yfiles.input.NavigationInputMode; + /** + * Adds the given listener for the MultiSelectionStarted event that occurs when a single or multi select operation has been + * started. + *

    + * The event is not triggered for the individual selection operations that constitute a multi selection operation. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#removeMultiSelectionStartedListener + */ + addMultiSelectionStartedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; + /** + * Removes the given listener for the MultiSelectionStarted event that occurs when a single or multi select operation has + * been started. + *

    + * The event is not triggered for the individual selection operations that constitute a multi selection operation. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#addMultiSelectionStartedListener + */ + removeMultiSelectionStartedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; + /** + * Adds the given listener for the MultiSelectionFinished event that occurs when a single or multi select operation has + * been finished. + *

    + * The event is not triggered for the individual selection operations that constitute a multi selection operation. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphInputMode#removeMultiSelectionFinishedListener + */ + addMultiSelectionFinishedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; + /** + * Removes the given listener for the MultiSelectionFinished event that occurs when a single or multi select operation has + * been finished. + *

    + * The event is not triggered for the individual selection operations that constitute a multi selection operation. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphInputMode#addMultiSelectionFinishedListener + */ + removeMultiSelectionFinishedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; + /** + * Gets or sets the {@link yfiles.input.WaitInputMode} that is provided by this instance for those who need to make use of it. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createWaitInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onWaitInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of -1. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @see yfiles.input.WaitInputMode#waiting + * @type {yfiles.input.WaitInputMode} + */ + waitInputMode:yfiles.input.WaitInputMode; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#itemHoverInputMode} that is provided by this instance for those who need to make use of it. + *

    + * Note that initially the {@link yfiles.input.ItemHoverInputMode#hoverItems} property is set to + * {@link yfiles.graph.GraphItemTypes#NONE}, which effectively disables the functionality of the mode initially. In order to get + * the mode to fire events, the property should be set to a corresponding value. + *

    + *

    + * If the backing field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createItemHoverInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onItemHoverInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 55. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.ItemHoverInputMode} + */ + itemHoverInputMode:yfiles.input.ItemHoverInputMode; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#moveViewportInputMode} associated with this instance. + *

    + * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createMoveViewportInputMode} + * will be called. Upon change the {@link yfiles.input.GraphInputMode#onMoveViewportInputModeChanged} method will be called. + *

    + *

    + * By default this input mode has a priority of 39. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.MoveViewportInputMode} + */ + moveViewportInputMode:yfiles.input.MoveViewportInputMode; + /** + * Gets or sets the {@link yfiles.input.GraphInputMode#keyboardInputMode}. + *

    + * By default this input mode has a priority of 0. + *

    + * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first + * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. + * @type {yfiles.input.KeyboardInputMode} + */ + keyboardInputMode:yfiles.input.KeyboardInputMode; + /** + * Gets a collection of commands that this input mode will handle. + *

    + * This collection can be modified by removing commands to prevent the input mode from handling them. Previously removed + * commands can also be re-added again to enable them again. However, the input mode will never handle commands that + * weren't in the initial collection. Adding those will do nothing. + *

    + * @type {yfiles.collections.ICollection.} + */ + availableCommands:yfiles.collections.ICollection; + /** + * Gets or sets a property that determines whether clipboard operations with the usual shortcuts are enabled on the + * canvas. + *

    + * Default value is true + *

    + * @default true + * @type {boolean} + */ + allowClipboardOperations:boolean; static $class:yfiles.lang.Class; } /** - * A utility class that offers event recognizers that deal with {@link yfiles.view.MouseEventArgs}. - * @class yfiles.input.MouseEventRecognizers - * @static + * An {@link yfiles.input.IInputMode} implementation for use in a {@link yfiles.view.GraphComponent} to assign to the {@link yfiles.view.CanvasComponent#inputMode} property. + *

    + * This mode can be used in a viewer-centric application where there is no need to modify the {@link yfiles.graph.IGraph} but + * browsing of the graph should be convenient. This mode allows for {@link yfiles.input.GraphInputMode#addItemClickedListener clicking on items using the mouse}, + * {@link yfiles.input.GraphInputMode#addQueryItemToolTipListener displaying tool tips for items}, {@link yfiles.input.GraphInputMode#addPopulateItemContextMenuListener showing a context menu}, {@link yfiles.input.NavigationInputMode allowing for easy navigation and traversal}, + * {@link yfiles.input.MoveViewportInputMode moving the view port}, and {@link yfiles.input.GraphInputMode#marqueeSelectableItems optionally doing marquee selection}. Also {@link yfiles.input.ItemHoverInputMode} can be used to get + * notified of the elements that the mouse is hovering over. + *

    + *

    + * Due to the viewer-centric nature of this input mode, collapsing and expanding groups is disabled per default. To enable + * this feature, set {@link yfiles.input.NavigationInputMode#allowCollapseGroup} and {@link yfiles.input.NavigationInputMode#allowExpandGroup} to true. + *

    + *

    + * This input mode manages a set of specialized input modes, each handling a specific part of the interaction with the + * graph. The following list details those along with their default + * {@link yfiles.input.IInputMode#priority priorities}. Lower priorities come earlier when handing events. + *

    + *
      + *
    • {@link yfiles.input.WaitInputMode} (−1) – Disables this input mode when layouts or animations run.
    • + *
    • {@link yfiles.input.KeyboardInputMode} (0) – Handles commands and arbitrary keyboard shortcuts.
    • + *
    • {@link yfiles.input.ClickInputMode} (10) – Handles mouse clicks and double-clicks.
    • + *
    • {@link yfiles.input.TapInputMode} (20) – Handles taps and double-tap.
    • + *
    • {@link yfiles.input.MarqueeSelectionInputMode} (30) – Allows dragging a rectangle to select items within it.
    • + *
    • {@link yfiles.input.MoveViewportInputMode} (39) – Allows panning the viewport.
    • + *
    • {@link yfiles.input.ItemHoverInputMode} (55) – Provides events to indicate that the mouse pointer hovers over an item.
    • + *
    • {@link yfiles.input.NavigationInputMode} (55) – Provides general navigation facilities, such as navigating from one item to another with the arrow keys.
    • + *
    • {@link yfiles.input.ContextMenuInputMode} (60) – Handles querying the context menu contents based on a location as well as preparing the menu for display.
    • + *
    • {@link yfiles.input.MouseHoverInputMode} (100) – Handles tool tips.
    • + *
    + * @class + * @extends {yfiles.input.GraphInputMode} */ - export interface MouseEventRecognizers extends Object{} - export class MouseEventRecognizers { + export interface GraphViewerInputMode extends yfiles.input.GraphInputMode{} + export class GraphViewerInputMode { /** - * An event recognizer that identifies mouse movements that are not drags. - * @see yfiles.input.MouseEventRecognizers#DRAGGED - * @see yfiles.input.MouseEventRecognizers#MOVED_OR_DRAGGED - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Initializes a new instance of the {@link yfiles.input.GraphViewerInputMode} class. */ - static MOVED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies mouse movements. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static MOVED_OR_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies mouse movements. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies mouse movements. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies mouse input capture lost events. - *

    - * This event will occur often, especially after all mouse buttons have been released. More relevant for - * {@link yfiles.input.IInputMode}s is the {@link yfiles.input.MouseEventRecognizers#LOST_CAPTURE_DURING_DRAG} event recognizer. - *

    - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static LOST_CAPTURE:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies mouse input capture lost events while at least one mouse button was pressed. - *

    - * Since the mouse capture has been lost, the necessary {@link yfiles.view.MouseEventTypes#UP} events will never be triggered. This - * recognizer is useful for identifying this situation. - *

    - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static LOST_CAPTURE_DURING_DRAG:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies left mouse button clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static LEFT_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies button clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies button multi-clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static MULTI_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies right mouse button clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static RIGHT_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies middle mouse button clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static MIDDLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies left mouse button double clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static LEFT_DOUBLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies right mouse button double clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static RIGHT_DOUBLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies middle mouse button double clicks. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static MIDDLE_DOUBLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies left mouse button press events. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static LEFT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies left mouse button release events. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static LEFT_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies right mouse button press events. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static RIGHT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies right mouse button release events. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static RIGHT_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies mouse drag events. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies left mouse button drags. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static LEFT_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies when the has left the control. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static EXITED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies when the mouse has entered the control. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static ENTERED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies right mouse button drags. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static RIGHT_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies middle mouse button drags. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static MIDDLE_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + constructor(); static $class:yfiles.lang.Class; } /** - * A utility class that offers event recognizers that deal with {@link yfiles.view.TouchEventArgs}. - * @class yfiles.input.TouchEventRecognizers - * @static + * A simple interface that can be used to react to clicks on regions of {@link yfiles.styles.INodeStyle}s etc. + *

    + * {@link yfiles.input.GraphEditorInputMode} will query the {@link yfiles.graph.IModelItem}'s Lookup method for this interface if it has + * detected {@link yfiles.input.GraphInputMode#click}s. If the item yields an instance of this interface and the click was inside + * the {@link yfiles.input.IClickListener#getHitTestable}, then {@link yfiles.input.IClickListener#onClicked} is invoked. + *

    + * @see yfiles.input.GraphEditorInputMode + * @see yfiles.styles.CollapsibleNodeStyleDecorator + * @interface */ - export interface TouchEventRecognizers extends Object{} - export class TouchEventRecognizers { + export interface IClickListener extends Object{ /** - * An event recognizer that identifies touch movements of the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Gets an {@link yfiles.input.IHitTestable} that can be used to check if {@link yfiles.input.IClickListener#onClicked} should be invoked. + * @returns A hit testable that can determine whether {@link #onClicked} should be invoked by a given click. + * @abstract */ - static TOUCH_MOVED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getHitTestable():yfiles.input.IHitTestable; /** - * An event recognizer that identifies the loss of touch capture for the any device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Called by the framework to indicate that the {@link yfiles.graph.IModelItem} has been clicked by the user at the specified + * location. + *

    + * This method is called by {@link yfiles.input.GraphInputMode#click} for the + * {@link yfiles.graph.IModelItem}s that yielded an instance of this interface. + *

    + * @param context The context to use for the click operation. + * @param location The location of the click + * @abstract */ - static LOST_CAPTURE:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + onClicked(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):void; + } + var IClickListener:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An interface for classes that can yield {@link yfiles.input.IHandle} implementations for the {@link yfiles.graph.IEdge#sourcePort source} and {@link yfiles.graph.IEdge#targetPort target} ends of an + * {@link yfiles.graph.IEdge}. + *

    + * This interface will be queried by the default implementation of the {@link yfiles.input.IHandleProvider} that is in the lookup + * of an {@link yfiles.graph.IEdge}. It is recommended to use this interface instead of the more generic {@link yfiles.input.IHandleProvider} + * interface, because other generic code can then use this interface to gain access to a specific {@link yfiles.input.IHandle} more + * easily. + *

    + * @interface + */ + export interface IEdgePortHandleProvider extends Object{ /** - * An event recognizer that identifies the loss of touch capture for the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Gets an {@link yfiles.input.IHandle} implementation for one end of the provided edge. + * @param context The context in which the handle will be used. + * @param edge The edge for which an handle is needed. + * @param sourceHandle if set to true the handle for the source side/port should be returned. + * @returns The handle to use for the provided side or null. + * @abstract */ - static LOST_CAPTURE_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getHandle(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,sourceHandle:boolean):yfiles.input.IHandle; + } + var IEdgePortHandleProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Helper interface to customize interactive label editing. + *

    + * Implementations of this interface can be put into the {@link yfiles.graph.ILookup} of {@link yfiles.graph.ILabelOwner}s and + * {@link yfiles.graph.ILabel}s so that it is possible to tweak the behavior on a case by case basis. + *

    + *

    + * Conceptually, in most cases, implementations of this interface behaves like an additional event handler for {@link yfiles.input.GraphEditorInputMode#addLabelAddingListener LabelAdding} + * and {@link yfiles.input.GraphEditorInputMode#addLabelEditingListener LabelEditing}. If no event handler + * handled those events, an {@link yfiles.input.IEditLabelHelper} will be queried from the {@link yfiles.graph.ILookup} and the unhandled + * event arguments passed to the respective methods. + *

    + * @see yfiles.input.EditLabelHelper + * @see yfiles.input.GraphEditorInputMode#createLabel + * @see yfiles.input.GraphEditorInputMode#editLabel + * @see yfiles.input.GraphEditorInputMode#addLabel + * @see yfiles.input.GraphEditorInputMode#addLabelAddingListener + * @see yfiles.input.GraphEditorInputMode#addLabelEditingListener + * @interface + */ + export interface IEditLabelHelper extends Object{ /** - * An event recognizer that identifies the loss of touch capture for the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Helper method that will be called when trying to add a label to an {@link yfiles.graph.ILabelOwner}. + *

    + * Implementations of this method can set the {@link yfiles.graph.ILabel#style}, {@link yfiles.graph.ILabel#layoutParameter}, {@link yfiles.graph.ILabel#preferredSize}, and {@link yfiles.graph.ITagOwner#tag} for newly-added labels by setting the appropriate properties on + * args. + *

    + *

    + * Setting the {@link yfiles.input.LabelEditingEventArgs#cancel} property on args to true will disallow label creation. + *

    + * @param evt The original event arguments. + * @see yfiles.input.IEditLabelHelper#onLabelEditing + * @abstract */ - static LOST_CAPTURE_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + onLabelAdding(evt:yfiles.input.LabelEditingEventArgs):void; /** - * An event recognizer that identifies touch movements of the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Helper method that will be called when trying to edit a label. + *

    + * This method can be called for editing labels for an {@link yfiles.graph.ILabelOwner}, in which case the {@link yfiles.input.LabelEditingEventArgs#label} property on args will + * be null, but the {@link yfiles.input.LabelEditingEventArgs#owner} property will be non-null. It can also be called for editing a specific label, in which case the {@link yfiles.input.LabelEditingEventArgs#label} + * property on args will be non-null, and the {@link yfiles.input.LabelEditingEventArgs#owner} property will be set to the label's owner. + *

    + *

    + * Implementations of this method can set a specific label to be edited, by setting the {@link yfiles.input.LabelEditingEventArgs#label} property of the args to an + * existing label instance. This label does not need to belong to the same owner that is queried for. Setting the {@link yfiles.input.LabelEditingEventArgs#label} property + * to null will not edit an existing label, but instead add a new one on the {@link yfiles.graph.ILabelOwner} set in the {@link yfiles.input.LabelEditingEventArgs#owner} + * property. + *

    + *

    + * When a new label is added, the properties {@link yfiles.input.LabelEditingEventArgs#style}, {@link yfiles.input.LabelEditingEventArgs#layoutParameter}, {@link yfiles.input.LabelEditingEventArgs#preferredSize}, and {@link yfiles.input.LabelEditingEventArgs#tag} are used for the newly-created label, just as in + * {@link yfiles.input.IEditLabelHelper#onLabelAdding}. + *

    + *

    + * Setting the {@link yfiles.input.LabelEditingEventArgs#cancel} property on args to true will disallow label editing and creation. + *

    + * @param evt The original event arguments. + * @see yfiles.input.IEditLabelHelper#onLabelAdding + * @abstract */ - static TOUCH_DOWN_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + onLabelEditing(evt:yfiles.input.LabelEditingEventArgs):void; + } + var IEditLabelHelper:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Provides the snap lines and the snap results to the {@link yfiles.input.LabelSnapContext} during dragging of labels. + * @see yfiles.input.LabelSnapContext + * @see yfiles.graph.LabelDecorator#labelSnapContextHelperDecorator + * @interface + */ + export interface ILabelSnapContextHelper extends Object{ /** - * An event recognizer that identifies touch movements of the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Called during {@link yfiles.input.IDragHandler#initializeDrag initialization} of a label dragging to add {@link yfiles.input.SnapLine snap lines} to which the label can potentially snap to the + * snapContext. + * @param snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of + * the context explicitly. + * @param inputModeContext The context of the input mode that handles the dragging. + * @param label The label that is dragged. + * @abstract */ - static TOUCH_UP_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + addSnapLines(snapContext:yfiles.input.LabelSnapContext,inputModeContext:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel):void; /** - * An event recognizer that identifies touch taps of the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Called while the given label is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult snap results} for the {@link yfiles.input.SnapLine snap lines} provided by the context. + * @param context The snap context which manages the snap lines and the settings. + * @param evt The event argument to obtain the necessary information from and {@link #addSnapResult add results to}. + * @param suggestedLayout The {@link #layout layout} of the label that would be used without snapping. + * @param label The label that is dragged. + * @abstract */ - static TOUCH_TAPPED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + collectSnapResults(context:yfiles.input.LabelSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.IOrientedRectangle,label:yfiles.graph.ILabel):void; + } + var ILabelSnapContextHelper:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An interface used by implementations that provide various size constraints for {@link yfiles.graph.INode}s. + *

    Related demos:

    + *
      + *
    • Demo: SizeConstraintProvider, demo.yfiles.input.sizeconstraintprovider
    • + *
    + * @see yfiles.input.NodeSizeConstraintProvider + * @interface + */ + export interface INodeSizeConstraintProvider extends Object{ /** - * An event recognizer that identifies touch double-taps of the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Returns the maximum size allowed for the given node. + * @param node The node to return the maximum size for. + * @returns The maximum size or {@link #INFINITE} if there is no constraint on the size. + * @abstract */ - static TOUCH_DOUBLE_TAPPED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getMaximumSize(node:yfiles.graph.INode):yfiles.geometry.Size; /** - * An event recognizer that identifies touch multi-taps of the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Returns the minimum area that needs to be enclosed by the given node. + * @param node The node to return the area for. + * @returns The area to enclose or {@link #EMPTY} if there is no constraint on the size due to an enclosed area. + * @abstract */ - static TOUCH_MULTI_TAPPED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getMinimumEnclosedArea(node:yfiles.graph.INode):yfiles.geometry.Rect; /** - * An event recognizer that identifies when the primary device has left the control. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Returns the minimum size allowed for the given node. + * @param node The node to return the minimum size for. + * @returns The minimum size or {@link #EMPTY} if there is no constraint on the size. + * @abstract */ - static TOUCH_EXITED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getMinimumSize(node:yfiles.graph.INode):yfiles.geometry.Size; + } + var INodeSizeConstraintProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A simple default implementation of {@link yfiles.input.INodeSizeConstraintProvider} + * @class + * @implements {yfiles.input.INodeSizeConstraintProvider} + */ + export interface NodeSizeConstraintProvider extends Object,yfiles.input.INodeSizeConstraintProvider{} + export class NodeSizeConstraintProvider { /** - * An event recognizer that identifies when the primary device has entered the control. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Creates a new instance using the provided size instances as the initial values. + *

    + * Not specifing the minimumEnclosedArea will set it to {@link yfiles.geometry.Rect#EMPTY}. + *

    + * @param minimumSize The {@link #minimumSize}. + * @param maximumSize The {@link #maximumSize}. + * @param [minimumEnclosedArea=null] The {@link #minimumEnclosedArea}. */ - static TOUCH_ENTERED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + constructor(minimumSize:yfiles.geometry.ISize,maximumSize:yfiles.geometry.ISize,minimumEnclosedArea?:yfiles.geometry.IRectangle); /** - * An event recognizer that identifies long presses of the primary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * + * @param node + * @returns */ - static TOUCH_LONG_PRESSED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getMaximumSize(node:yfiles.graph.INode):yfiles.geometry.Size; /** - * An event recognizer that identifies touch movements of the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * + * @param node + * @returns */ - static TOUCH_MOVED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getMinimumEnclosedArea(node:yfiles.graph.INode):yfiles.geometry.Rect; /** - * An event recognizer that identifies touch movements of the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * + * @param node + * @returns */ - static TOUCH_DOWN_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + getMinimumSize(node:yfiles.graph.INode):yfiles.geometry.Size; /** - * An event recognizer that identifies touch movements of the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Gets or sets the instance to return by {@link yfiles.input.NodeSizeConstraintProvider#getMaximumSize}. + * @type {yfiles.geometry.ISize} */ - static TOUCH_UP_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + maximumSize:yfiles.geometry.ISize; /** - * An event recognizer that identifies touch taps of the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Gets or sets the instance to return by {@link yfiles.input.NodeSizeConstraintProvider#getMinimumEnclosedArea}. + * @type {yfiles.geometry.IRectangle} */ - static TOUCH_TAPPED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + minimumEnclosedArea:yfiles.geometry.IRectangle; /** - * An event recognizer that identifies touch double-taps of the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} + * Gets or sets the instance to return by {@link yfiles.input.NodeSizeConstraintProvider#getMinimumSize}. + * @type {yfiles.geometry.ISize} */ - static TOUCH_DOUBLE_TAPPED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies touch multi-taps of the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static TOUCH_MULTI_TAPPED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies when the secondary device has left the control. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static TOUCH_EXITED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies when the secondary device has entered the control. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static TOUCH_ENTERED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; - /** - * An event recognizer that identifies long presses of the secondary device. - * @const - * @static - * @type {function(Object, yfiles.lang.EventArgs): boolean} - */ - static TOUCH_LONG_PRESSED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + minimumSize:yfiles.geometry.ISize; static $class:yfiles.lang.Class; } + /** + * Interface used by {@link yfiles.input.OrthogonalEdgeEditingContext} and the like that can be decorated to the {@link yfiles.graph.ILookup} + * of {@link yfiles.graph.IEdge}s. + *

    + * This interface is for editing edges in such a way that their path stays orthogonal, i.e. all of the segments are + * oriented either horizontally or vertically. + *

    + * @see yfiles.input.OrthogonalEdgeEditingContext#getOrthogonalEdgeHelper + * @interface + */ + export interface IOrthogonalEdgeHelper extends Object{ + /** + * Callback method that is invoked after the provided edge has been edited orthogonally. + *

    + * This callback can be used to remove unused bends and finalize the orthogonal edge editing gesture. + *

    + * @param context The input mode context which edited the edge. + * @param graph The graph to use for modifying the edge instance. + * @param edge The edge to clean up the path. + * @abstract + */ + cleanUpEdge(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge):void; + /** + * Gets the declared orientation of the given segment at the provided edge. + *

    + * The orientation cannot always be inferred from the current geometry: If a segment has a zero length it is unclear what + * orientation it should have, also a segment could be accidentally orthogonally oriented, while in fact it is considered + * {@link yfiles.input.SegmentOrientation#NON_ORTHOGONAL}. + *

    + * @param context The input mode context in which the orientation is needed. + * @param edge The edge to inspect. + * @param segmentIndex The index of the segment. + * @returns The declared orientation of the segment. + * @abstract + */ + getSegmentOrientation(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,segmentIndex:number):yfiles.input.SegmentOrientation; + /** + * Determines whether the provided edge should be edited orthogonally in the specified input mode context. + *

    + * If this method returns false, the other methods will not be queried at all. + *

    + * @param context The input mode context in which the edge is about to be edited. + * @param edge The edge to inspect. + * @returns true if the edge should be orthogonally edited in the specified input mode context; false otherwise. + * @abstract + */ + shouldEditOrthogonally(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge):boolean; + /** + * Determines whether this end of the provided edge can be moved in the input mode context. + *

    + * This information is required to determine whether an edge's first or last segment needs to be split or the adjacent edge + * end can be moved along with the other end of the segment. + *

    + * @param context The input mode context in which the segment is edited. + * @param edge The edge to inspect. + * @param sourceEnd if set to true the source end of the edge is queried, otherwise the target end. + * @returns true if the end of the edge can be moved for the specified input mode context; false otherwise, in which case the + * corresponding segment needs to be split to keep the segment orientation orthogonal. + * @abstract + */ + shouldMoveEndImplicitly(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,sourceEnd:boolean):boolean; + } + var IOrthogonalEdgeHelper:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface used for implementations that recognize, approve and disapprove node reparenting gestures, as well as actually + * performs the reparenting. + *

    + * Implementations of this interface are queried from the {@link yfiles.input.IInputModeContext} by code that wants to reparent a + * node. Specifically this is used by default to reparent nodes during the {@link yfiles.input.MoveInputMode dragging of nodes}. + *

    + *

    Related demos:

    + *
      + *
    • Demo: ReparentHandler, demo.yfiles.input.reparenthandler
    • + *
    + * @interface + */ + export interface IReparentNodeHandler extends Object{ + /** + * Determines whether the current gesture that can be determined through the context is a reparent gesture. + * @param context The context that provides information about the user input. + * @param node The node that will possibly be reparented. + * @returns Whether this is a reparenting gesture. + * @abstract + */ + isReparentGesture(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode):boolean; + /** + * Determines whether the provided node may be reparented to a newParent. + * @param context The context that provides information about the user input. + * @param node The node that will be reparented. + * @param newParent The potential new parent or null. Can be a group or a non-group node. + * @returns Whether newParent is a valid new parent for node. + * @abstract + */ + isValidParent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,newParent:yfiles.graph.INode):boolean; + /** + * Performs the actual reparenting after the reparent gesture has been finalized. + *

    + * Implementations should {@link yfiles.graph.IGraph#setParent set the parent} of node to newParent. + *

    + * @param context The context that provides information about the user input. + * @param node The node that will be reparented. + * @param newParent The potential new parent or null. Can be a group or a non-group node. + * @abstract + */ + reparent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,newParent:yfiles.graph.INode):void; + /** + * Determines whether the user may detach the given node from its current parent in order to reparent it. + * @param context The context that provides information about the user input. + * @param node The node that is about to be detached from its current parent. + * @returns Whether the node may be detached and reparented. + * @abstract + */ + shouldReparent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode):boolean; + } + var IReparentNodeHandler:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Queried by the {@link yfiles.input.GraphSnapContext} to add {@link yfiles.input.OrthogonalSnapLine}s to its collections during the + * {@link yfiles.input.SnapContext#isInitializing initialization phase}. + *

    + * Implementations of this interface are queried by {@link yfiles.input.GraphSnapContext} for each item that is not modified during + * the edit using the {@link yfiles.graph.ILookup#lookup} of the respective item. + *

    + * @see yfiles.graph.NodeDecorator#snapLineProviderDecorator + * @interface + */ + export interface ISnapLineProvider extends Object{ + /** + * Called by the {@link yfiles.input.GraphSnapContext} when a {@link yfiles.input.GraphSnapContext#initializeDrag drag} is about to start. + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * context explicitly. + * @param evt The argument to use for adding snap lines. + * @param item The item to add snap lines for. + * @abstract + */ + addSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,item:yfiles.graph.IModelItem):void; + } + var ISnapLineProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Provides data for the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked}, + * {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked}, + * {@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked}, + * {@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked}, {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked} + * and {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked} events. + * Type parameter T: The type of the item this event carries. + * @class + * @extends {yfiles.collections.ItemEventArgs.} + * @template T + */ + export interface ItemClickedEventArgs extends yfiles.collections.ItemEventArgs{} + export class ItemClickedEventArgs { + /** + * Initializes a new instance of the {@link yfiles.input.ItemClickedEventArgs.} class. + * @param item The item which is the subject of the event. + * @param location The location of the click. + */ + constructor(item:T,location:yfiles.geometry.Point); + /** + * Gets or sets a value indicating whether this {@link yfiles.input.ItemClickedEventArgs.} is handled. + *

    + * Setting the event to handled indicates whether the event should be further propagated or whether there has not been any + * code that actively handled the event to the event source. How this flag is actually being treated depends on the source + * of the event. + *

    + * @type {boolean} + */ + handled:boolean; + /** + * Gets the location of the click. + * @type {yfiles.geometry.Point} + */ + location:yfiles.geometry.Point; + static $class:yfiles.lang.Class; + } + /** + * An input mode for use in a {@link yfiles.view.GraphComponent} that fires events when the mouse enters or leaves the + * visualization of a {@link yfiles.graph.IModelItem graph item}. + *

    + * This mode can be used to determine when the mouse is being moved from one item to the next. + *

    + *

    + * This mode is {@link yfiles.input.ItemHoverInputMode#exclusive} by default. + *

    + * @class + * @implements {yfiles.input.IInputMode} + */ + export interface ItemHoverInputMode extends Object,yfiles.input.IInputMode{} + export class ItemHoverInputMode { + /** + * Initializes a new instance of the {@link yfiles.input.ItemHoverInputMode} class. + */ + constructor(); + /** + * + */ + cancel():void; + /** + * Gets the items that have been hit at the given location. + * @param location The location in world coordinates to query. + * @returns An enumerable over all items that have been hit at the given location. + * @protected + */ + getHitItemsAt(location:yfiles.geometry.Point):yfiles.collections.IEnumerable; + /** + * Installs this mode into the given context that is provided by the canvas. + *

    + * In general a mode can only be installed into a single canvas at all times. + *

    + *

    + * This method is called to initialize this instance. Subclasses should override this method to register the corresponding + * event handler delegates for the various input events they need to register with. + *

    + *

    + * Overriding implementations should call the base implementation, first. + *

    + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is + * installed. + * @param controller The {@link #controller} for this mode. + * @see yfiles.input.IInputMode#uninstall + */ + install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; + /** + * Determines whether the given item is a valid item to be considered for hovering. + *

    + * This implementation checks whether the item is covered by the {@link yfiles.input.ItemHoverInputMode#hoverItems} set, only. + *

    + * @param item The item to check. + * @returns true if it is valid to report a hover over the specified item; false otherwise. + * @see yfiles.input.ItemHoverInputMode#discardInvalidItems + * @protected + */ + isValidHoverItem(item:yfiles.graph.IModelItem):boolean; + /** + * Called after {@link yfiles.input.ItemHoverInputMode#cancel} has been called. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been canceled. + *

    + *

    + * This implementation does nothing. + *

    + * @protected + */ + onCanceled():void; + /** + * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to true. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been activated. + *

    + *

    + * Overriding implementations should call the base implementation. + *

    + * @protected + */ + onConcurrencyControllerActivated():void; + /** + * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to false. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been deactivated. + *

    + *

    + * Overriding implementations should call the base implementation. + *

    + * @protected + */ + onConcurrencyControllerDeactivated():void; + /** + * Raises the {@link yfiles.input.ItemHoverInputMode#addHoveredItemChangedListener HoveredItemChanged} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onHoveredItemChanged(evt:yfiles.input.HoveredItemChangedEventArgs):void; + /** + * Called after {@link yfiles.input.ItemHoverInputMode#tryStop} has been called. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been stopped. + *

    + *

    + * This implementation does nothing. + *

    + * @protected + */ + onStopped():void; + /** + * Overridden to only return true if this instance does not currently {@link yfiles.input.ConcurrencyController#hasMutex have the input mutex}. + * @returns true iff this instance does not {@link #hasMutex own the mutex}. + */ + tryStop():boolean; + /** + * Uninstalls this mode from the given context. + *

    + * This code should clean up all changes made to the canvas in the {@link yfiles.input.IInputMode#install} method. After a mode has + * been uninstalled it can be installed again into the same or another canvas. + *

    + *

    + * Overriding implementations should call the base implementation after their own code. + *

    + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during + * installation. + */ + uninstall(context:yfiles.input.IInputModeContext):void; + /** + * Forces a reevaluation of the item that the mouse is currently hovering over or at a specific location. + *

    + * This method may be called by code that is aware of the fact that the visualization has changed, but the mouse may not + * have been moved. By default this implementation will only re-query the items at the mouse location when the mouse has + * moved. This method can be called to force a reevaluation in other cases. + *

    + * @param [location=null] The query location. + */ + updateHover(location?:yfiles.geometry.Point):void; + /** + * + * @type {number} + */ + priority:number; + /** + * Gets or sets a value indicating whether this mode will be the only one running when it has the mutex. + *

    + * The value of this property will be delegated to the {@link yfiles.input.ConcurrencyController#exclusive} property of the {@link yfiles.input.ItemHoverInputMode#controller}. + *

    + *

    + * If this mode is marked as exclusive and has the mutex, all other modes {@link yfiles.input.MultiplexingInputMode#add added} to the same {@link yfiles.input.MultiplexingInputMode} + * will be deactivated. Otherwise it will always run concurrently with all other modes. + *

    + * @type {boolean} + */ + exclusive:boolean; + /** + * Gets or sets the enabled state of this input mode. + *

    + * Clients can use this property to disable or reenable this instance. This will set the {@link yfiles.input.ConcurrencyController#enabled Enabled} property of the installed + * {@link yfiles.input.ItemHoverInputMode#controller} so a disabled instance should never try to acquire the input mutex. + *

    + * @type {boolean} + */ + enabled:boolean; + /** + * + * @type {yfiles.input.IInputModeContext} + */ + inputModeContext:yfiles.input.IInputModeContext; + /** + * Returns the installed {@link yfiles.input.ItemHoverInputMode#controller}. + * @protected + * @type {yfiles.input.ConcurrencyController} + */ + controller:yfiles.input.ConcurrencyController; + /** + * Adds the given listener for the HoveredItemChanged event that occurs when the item that is being hovered over with the + * mouse changes. + *

    + * This event is also fired when the mouse pointer leaves an item. + *

    + * @param listener The listener to add. + * @see yfiles.input.ItemHoverInputMode#removeHoveredItemChangedListener + */ + addHoveredItemChangedListener(listener:(sender:Object,evt:yfiles.input.HoveredItemChangedEventArgs)=>void):void; + /** + * Removes the given listener for the HoveredItemChanged event that occurs when the item that is being hovered over with + * the mouse changes. + *

    + * This event is also fired when the mouse pointer leaves an item. + *

    + * @param listener The listener to remove. + * @see yfiles.input.ItemHoverInputMode#addHoveredItemChangedListener + */ + removeHoveredItemChangedListener(listener:(sender:Object,evt:yfiles.input.HoveredItemChangedEventArgs)=>void):void; + /** + * Gets the current item the mouse is hovering over. + * @type {yfiles.graph.IModelItem} + */ + currentHoverItem:yfiles.graph.IModelItem; + /** + * Gets or sets which graph items are considered by this input mode. + *

    + * The default is {@link yfiles.graph.GraphItemTypes#ALL}. + *

    + * @type {yfiles.graph.GraphItemTypes} + */ + hoverItems:yfiles.graph.GraphItemTypes; + /** + * Gets or sets the cursor to use when the mouse is hovering over a {@link yfiles.input.ItemHoverInputMode#isValidHoverItem} valid + * hover item. + * @type {yfiles.view.Cursor} + */ + hoverCursor:yfiles.view.Cursor; + /** + * Determines whether items that have been hit at the current location that are not {@link yfiles.input.ItemHoverInputMode#isValidHoverItem valid items} should be ignored or + * reported as null. + * @see yfiles.input.ItemHoverInputMode#isValidHoverItem + * @type {boolean} + */ + discardInvalidItems:boolean; + static $class:yfiles.lang.Class; + } + /** + * Event argument class containing information about which {@link yfiles.graph.IModelItem} the mouse is currently hovering over. + *

    + * This event is used by the {@link yfiles.input.ItemHoverInputMode#addHoveredItemChangedListener HoveredItemChanged} + * event. The {@link yfiles.collections.ItemEventArgs.#item} property yields the item that is currently being hovered over or null if the mouse just left an item without + * hovering over an other one. The {@link yfiles.input.HoveredItemChangedEventArgs#oldItem} property provides the previously hovered item. + *

    + * @class + * @extends {yfiles.collections.ItemEventArgs.} + */ + export interface HoveredItemChangedEventArgs extends yfiles.collections.ItemEventArgs{} + export class HoveredItemChangedEventArgs { + /** + * Initializes a new instance of the {@link yfiles.input.HoveredItemChangedEventArgs} class. + * @param item The model item, possibly null. + * @param oldItem The old item, possibly null. + */ + constructor(item:yfiles.graph.IModelItem,oldItem:yfiles.graph.IModelItem); + /** + * The item that was previously hovered, possibly null. + * @see yfiles.collections.ItemEventArgs.#item + * @type {yfiles.graph.IModelItem} + */ + oldItem:yfiles.graph.IModelItem; + static $class:yfiles.lang.Class; + } + /** + * Event arguments for the {@link yfiles.input.GraphEditorInputMode#addLabelAddingListener LabelAdding} and {@link yfiles.input.GraphEditorInputMode#addLabelEditingListener LabelEditing} + * events, as well as the {@link yfiles.input.IEditLabelHelper} interface. + * @class + * @extends {yfiles.input.InputModeEventArgs} + * @final + */ + export interface LabelEditingEventArgs extends yfiles.input.InputModeEventArgs{} + export class LabelEditingEventArgs { + /** + * Initializes a new instance of the {@link yfiles.input.LabelEditingEventArgs} class with the given context, owner, and label. + * @param context The input mode context to use. + * @param owner The {@link } whose label should be edited. + * @param label The {@link } that should be edited. + */ + constructor(context:yfiles.input.IInputModeContext,owner:yfiles.graph.ILabelOwner,label:yfiles.graph.ILabel); + /** + * Gets or sets the label to edit. + *

    + * This can be set to an exiting label to edit a specific one, or set to null to add a new label instead (e.g. for + * {@link yfiles.graph.ILabelOwner}s that have no label yet). + *

    + *

    + * If this property is set to null, the properties {@link yfiles.input.LabelEditingEventArgs#style}, {@link yfiles.input.LabelEditingEventArgs#preferredSize}, {@link yfiles.input.LabelEditingEventArgs#layoutParameter}, and {@link yfiles.input.LabelEditingEventArgs#tag} are used for the newly-added label, just like with + * {@link yfiles.input.LabelEditingEventArgs}. + *

    + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {yfiles.graph.ILabel} + */ + label:yfiles.graph.ILabel; + /** + * Gets or sets a value indicating whether the action (adding or editing a label) should be canceled. + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {boolean} + */ + cancel:boolean; + /** + * Gets or sets a value indicating whether this event has been handled. + *

    + * A handled instance of {@link yfiles.input.LabelEditingEventArgs} will not be passed to further event handlers or an {@link yfiles.input.IEditLabelHelper} + * instance. + *

    + *

    + * Setting any of the other properties implicitly also sets this to true. + *

    + * @type {boolean} + */ + handled:boolean; + /** + * Gets or sets the owner of the label. + *

    + * This property can be null if there is no owner known, e.g. if the event is raised for + * non-{@link yfiles.graph.ILabelOwner}s. Otherwise it is initially set to the item for which the event is raised. + *

    + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {yfiles.graph.ILabelOwner} + */ + owner:yfiles.graph.ILabelOwner; + /** + * Gets or sets the {@link yfiles.graph.ILabel#style} of the label to add. + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {yfiles.styles.ILabelStyle} + */ + style:yfiles.styles.ILabelStyle; + /** + * Gets or sets the {@link yfiles.graph.ILabel#preferredSize} of the label to add. + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {yfiles.geometry.Size} + */ + preferredSize:yfiles.geometry.Size; + /** + * Gets or sets the {@link yfiles.graph.ILabel#layoutParameter} of the label to add. + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {yfiles.graph.ILabelModelParameter} + */ + layoutParameter:yfiles.graph.ILabelModelParameter; + /** + * Gets or sets the {@link yfiles.graph.ITagOwner#tag} of the label to add. + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {Object} + */ + tag:Object; + /** + * Configures the {@link yfiles.input.TextEditorInputMode} for editing the provided label instance. + *

    + * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. + *

    + * @type {function(yfiles.input.IInputModeContext, yfiles.input.TextEditorInputMode, yfiles.graph.ILabel): void} + */ + textEditorInputModeConfigurator:(context:yfiles.input.IInputModeContext,mode:yfiles.input.TextEditorInputMode,label:yfiles.graph.ILabel)=>void; + static $class:yfiles.lang.Class; + } + /** + * Manages interactive snapping of {@link yfiles.graph.ILabel}s to their owner during drag operations like movements. + *

    + * This class provides a set of properties to customize the snapping behavior. {@link yfiles.input.IPositionHandler} + * implementations and similar classes can use the following idiom to get an instance of this class: + *

    + *

    Related demos:

    + *
      + *
    • Tutorial: 01 Getting Started, step 15 Snapping
    • + *
    + * @see yfiles.input.MoveLabelInputMode + * @see yfiles.input.GraphEditorInputMode#snapContext + * @class + * @extends {yfiles.input.SnapContext} + */ + export interface LabelSnapContext extends yfiles.input.SnapContext{} + export class LabelSnapContext { + /** + * Initializes a new instance of the {@link yfiles.input.LabelSnapContext} class. + */ + constructor(); + /** + * Adds the given snapLine to the {@link yfiles.input.LabelSnapContext#snapLines snap line} collection of this context. + * @param snapLine The snap line to add. + * @see yfiles.input.GraphSnapContext#additionalSnapLines + */ + addSnapLine(snapLine:yfiles.input.SnapLine):void; + /** + * Raises the {@link yfiles.input.LabelSnapContext#addCollectSnapLinesListener CollectSnapLines} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onCollectSnapLines(evt:yfiles.input.CollectLabelSnapLineEventArgs):void; + /** + * Determines whether this instance should collect snap lines for the initial position of a label. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + collectInitialLocationSnapLines:boolean; + /** + * Determines whether this instance should collect six snap lines, two through the center and four through the border sides + * of the label owner. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + collectNodeShapeSnapLines:boolean; + /** + * Determines whether this instance should collect four snap lines in parallel to the owner's borders at the initial label + * distance. + *

    + * Note that the label snaps to these snap lines with the side that is closer to the node's border. That way, snapping to + * such a snap line preserves the perceived distance from the node border for both labels inside and outside the node + * bounds. + *

    + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + collectOwnNodeDistanceSnapLines:boolean; + /** + * Determines whether this instance should collect snap lines in parallel to the border of the label owner at the distance + * of other node labels of that owner. + *

    + * Note that the label snaps to these snap lines with the side that is closer to the node's border. That way, snapping to + * such a snap line preserves the perceived distance from the node border for both labels inside and outside the node + * bounds. + *

    + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + collectSameOwnerNodeDistanceSnapLines:boolean; + /** + * Determines whether this instance should collect snap lines in parallel to the border of the label owner at the distance + * of other node labels in the graph. + *

    + * Note that the label snaps to these snap lines with the side that is closer to the node's border. That way, snapping to + * such a snap line preserves the perceived distance from the node border for both labels inside and outside the node + * bounds. + *

    + *

    + * The default is false. + *

    + * @default false + * @type {boolean} + */ + collectAllNodeDistanceSnapLines:boolean; + /** + * Determines whether this instance should collect snap lines on the edge path. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + collectEdgePathSnapLines:boolean; + /** + * Determines whether this instance should collect two snap lines in parallel to the edge path of the label owner at the + * initial distance of the edge label. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + collectOwnEdgeDistanceSnapLines:boolean; + /** + * Determines whether this instance should collect snap lines in parallel to the edge path of the label owner at the + * distances of all edge labels of that owner. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + collectSameOwnerEdgeDistanceSnapLines:boolean; + /** + * Determines whether this instance should collect snap lines in parallel to the edge path of the label owner at the + * distance of other edge labels in the graph. + *

    + * The default is false. + *

    + * @default false + * @type {boolean} + */ + collectAllEdgeDistanceSnapLines:boolean; + /** + * Specifies whether this context will automatically snap the node labels to snap lines. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + snapNodeLabels:boolean; + /** + * Specifies whether this context will automatically snap the edge labels to snap lines. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + snapEdgeLabels:boolean; + /** + * Gets or sets the amount by which snap lines that are induced by existing edge segments are being extended. + *

    + * The default is 40.0d, this value will be used to prolongate the ends of the snap lines. + *

    + * @default 40.0 + * @type {number} + */ + snapLineExtension:number; + /** + * The collection of the {@link yfiles.input.SnapLine snap lines} that have been {@link yfiles.input.LabelSnapContext#addSnapLine added} to this context. + *

    + * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. + *

    + * @see yfiles.input.LabelSnapContext#addSnapLine + * @type {yfiles.collections.IEnumerable.} + */ + snapLines:yfiles.collections.IEnumerable; + /** + * Adds the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to + * collect {@link yfiles.input.SnapLine}s. + *

    + * Event handlers should add snap lines to the caller using the methods provided by + * {@link yfiles.input.CollectLabelSnapLineEventArgs}. + *

    + * @param listener The listener to add. + * @see yfiles.input.LabelSnapContext#removeCollectSnapLinesListener + */ + addCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectLabelSnapLineEventArgs)=>void):void; + /** + * Removes the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to + * collect {@link yfiles.input.SnapLine}s. + *

    + * Event handlers should add snap lines to the caller using the methods provided by + * {@link yfiles.input.CollectLabelSnapLineEventArgs}. + *

    + * @param listener The listener to remove. + * @see yfiles.input.LabelSnapContext#addCollectSnapLinesListener + */ + removeCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectLabelSnapLineEventArgs)=>void):void; + static $class:yfiles.lang.Class; + } + /** + * The event arguments used by {@link yfiles.input.LabelSnapContext} to collect custom snap lines for each drag. + * @see yfiles.input.LabelSnapContext#addCollectSnapLinesListener + * @class + * @extends {yfiles.input.InputModeEventArgs} + */ + export interface CollectLabelSnapLineEventArgs extends yfiles.input.InputModeEventArgs{} + export class CollectLabelSnapLineEventArgs { + /** + * Creates a new instance of this class. + * @param context The context this event is being used in. + * @param snapLines The snap lines collection to add to. + */ + constructor(context:yfiles.input.IInputModeContext,snapLines:yfiles.collections.ICollection); + /** + * Adds the given snap line to the snap line collection of this class. + * @param snapLine the snap line to add. + */ + addSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; + static $class:yfiles.lang.Class; + } + /** + * An {@link yfiles.input.IInputMode} that can {@link yfiles.input.NavigationInputMode#moveTo navigate} an {@link yfiles.graph.IGraph} displayed in a {@link yfiles.input.NavigationInputMode#graphComponent}. + *

    + * This mode is {@link yfiles.input.NavigationInputMode#exclusive} by default. + *

    + * @class + * @implements {yfiles.input.IInputMode} + */ + export interface NavigationInputMode extends Object,yfiles.input.IInputMode{} + export class NavigationInputMode { + /** + * Initializes a new instance of the {@link yfiles.input.NavigationInputMode} class. + */ + constructor(); + /** + * Callback that adjusts the {@link yfiles.view.CanvasComponent#contentRect} to encompass all elements. + *

    + * This implementation will try to delegate to {@link yfiles.input.GraphEditorInputMode#adjustContentRect} if it can find the {@link yfiles.input.GraphEditorInputMode} + * in the {@link yfiles.input.NavigationInputMode#inputModeContext}, otherwise the {@link yfiles.input.ICommand#FIT_GRAPH_BOUNDS} is executed. + *

    + * @protected + */ + adjustContentRect():void; + /** + * Adjust the group node location according to the value of {@link yfiles.input.NavigationInputMode#autoGroupNodeAlignmentPolicy}. + * @param collapse true iff the node has just been collapsed. + * @param groupNode The node that has changed its state. + * @protected + */ + adjustGroupNodeLocation(collapse:boolean,groupNode:yfiles.graph.INode):void; + /** + * + */ + cancel():void; + /** + * Clears the selection in the {@link yfiles.input.NavigationInputMode#graphComponent}. + */ + clearSelection():void; + /** + * {@link yfiles.graph.IFoldingView#collapse Collapses} the given group node to hide the contents of the group node from this {@link yfiles.graph.IFoldingView}. + * @param groupNode The group node to collapse. + * @see yfiles.graph.FoldingManager + * @see yfiles.input.NavigationInputMode#allowCollapseGroup + */ + collapseGroup(groupNode:yfiles.graph.INode):void; + /** + * Performs CollapseGroup for all {@link yfiles.view.IGraphSelection#selectedNodes}. + */ + collapseSelection():void; + /** + * This method allows for entering a group node so that the currently displayed {@link yfiles.graph.IFoldingView}'s {@link yfiles.graph.IFoldingView#localRoot} will be reset + * to the provided node. + *

    + * It is possible to both use a local group node that is part of the currently displayed {@link yfiles.input.NavigationInputMode#graph} as the node argument, as well as + * an item that belongs to the {@link yfiles.graph.FoldingManager#masterGraph} to allow for switching to group nodes which are currently not being displayed in this + * view. + *

    + * @param node The node that needs to be either part of the current graph, or part of the {@link #masterGraph}. + * @see yfiles.input.NavigationInputMode#shouldEnterGroup + * @see yfiles.input.NavigationInputMode#allowEnterGroup + * @see yfiles.graph.FoldingManager + */ + enterGroup(node:yfiles.graph.INode):void; + /** + * Performs {@link yfiles.input.NavigationInputMode#enterGroup} for the first valid {@link yfiles.view.IGraphSelection#selectedNodes}. + */ + enterSelectedGroup():void; + /** + * Exits the current {@link yfiles.graph.IFoldingView#localRoot} of the currently displayed {@link yfiles.graph.IFoldingView view} and shows the contents of the parent container. + *

    + * This method will also {@link yfiles.input.GraphInputMode#clearSelection clear the selection} and {@link yfiles.input.GraphInputMode#setSelected select} the exited group node. + *

    + * @see yfiles.graph.FoldingManager + * @see yfiles.input.NavigationInputMode#allowExitGroup + * @see yfiles.input.NavigationInputMode#shouldExitGroup + */ + exitGroup():void; + /** + * {@link yfiles.graph.IFoldingView#expand Expands} the given group node to show the contents of the collapsed group node in this {@link yfiles.graph.IFoldingView}. + * @param groupNode The group node to expand + * @see yfiles.graph.FoldingManager + * @see yfiles.input.NavigationInputMode#allowExpandGroup + */ + expandGroup(groupNode:yfiles.graph.INode):void; + /** + * Performs {@link yfiles.input.NavigationInputMode#expandGroup} for all {@link yfiles.view.IGraphSelection#selectedNodes}. + */ + expandSelection():void; + /** + * Moves the focus into the given direction, extending the selection to the new element. + * @param direction The direction to move the focus and extend the selection. + */ + extendSelectionTo(direction:yfiles.input.MoveFocusDirection):void; + /** + * Installs this mode into the given context that is provided by the canvas. + *

    + * In general a mode can only be installed into a single canvas at all times. + *

    + *

    + * This method is called to initialize this instance. Subclasses should override this method to register the corresponding + * event handler delegates for the various input events they need to register with. + *

    + *

    + * Overriding implementations should call the base implementation, first. + *

    + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is + * installed. + * @param controller The {@link #controller} for this mode. + * @see yfiles.input.IInputMode#uninstall + */ + install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; + /** + * Moves the focus into the given direction, not changing the current selection. + * @param direction The direction to move the focus. + */ + moveFocusTo(direction:yfiles.input.MoveFocusDirection):void; + /** + * Moves the focus into the given direction, setting the selection to the new element. + * @param direction The direction to move the focus and selection. + */ + moveTo(direction:yfiles.input.MoveFocusDirection):void; + /** + * Called after {@link yfiles.input.NavigationInputMode#cancel} has been called. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been canceled. + *

    + *

    + * This implementation does nothing. + *

    + * @protected + */ + onCanceled():void; + /** + * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to true. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been activated. + *

    + *

    + * Overriding implementations should call the base implementation. + *

    + * @protected + */ + onConcurrencyControllerActivated():void; + /** + * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to false. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been deactivated. + *

    + *

    + * Overriding implementations should call the base implementation. + *

    + * @protected + */ + onConcurrencyControllerDeactivated():void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupCollapsedListener GroupCollapsed} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupCollapsed(evt:yfiles.collections.ItemEventArgs):void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupCollapsingListener GroupCollapsing} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupCollapsing(evt:yfiles.collections.ItemEventArgs):void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupEnteredListener GroupEntered} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupEntered(evt:yfiles.collections.ItemEventArgs):void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupEnteringListener GroupEntering} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupEntering(evt:yfiles.collections.ItemEventArgs):void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupExitedListener GroupExited} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupExited(evt:yfiles.collections.ItemEventArgs):void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupExitingListener GroupExiting} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupExiting(evt:yfiles.collections.ItemEventArgs):void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupExpandedListener GroupExpanded} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupExpanded(evt:yfiles.collections.ItemEventArgs):void; + /** + * Raises the {@link yfiles.input.NavigationInputMode#addGroupExpandingListener GroupExpanding} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onGroupExpanding(evt:yfiles.collections.ItemEventArgs):void; + /** + * Callback that actually sets the current item property. + * @param graphComponent The {@link #graphComponent} to set the current item of. + * @param item The item to set. + * @returns Whether the operation was actually performed. + * @protected + */ + onSetCurrentItem(graphComponent:yfiles.view.GraphComponent,item:yfiles.graph.IModelItem):boolean; + /** + * Called after {@link yfiles.input.NavigationInputMode#tryStop} has been called. + *

    + * Can be overridden in subclasses to perform additional actions after the mode has been stopped. + *

    + *

    + * This implementation does nothing. + *

    + * @protected + */ + onStopped():void; + /** + * Selects the {@link yfiles.view.GraphComponent#currentItem} current item. + *

    + * This method delegates to {@link yfiles.input.NavigationInputMode#selectItem}. + *

    + */ + selectCurrentItem():void; + /** + * Callback that selects the given item. + * @param graphComponent The {@link #graphComponent}. + * @param item The item to select. + * @param extendSelection if set to true the current selection is extended otherwise it is cleared beforehand. + * @see yfiles.input.NavigationInputMode#clearSelection + * @protected + */ + selectItem(graphComponent:yfiles.view.GraphComponent,item:yfiles.graph.IModelItem,extendSelection:boolean):void; + /** + * Sets the "current" item to the given one. + * @param item The item to set as the current item. + * @see yfiles.input.NavigationInputMode#onSetCurrentItem + */ + setCurrentItem(item:yfiles.graph.IModelItem):void; + /** + * Sets the {@link yfiles.input.NavigationInputMode#graphComponent} to use for the various actions. + *

    + * This will register or unregister the commands for the control. This method is called in response to {@link yfiles.input.NavigationInputMode#install} + * and {@link yfiles.input.NavigationInputMode#uninstall}. + *

    + * @param graphComponent The control to use or null. + * @protected + */ + setGraphComponent(graphComponent:yfiles.view.GraphComponent):void; + /** + * Predicate method that decides whether it is allowed to collapse the given group node. + *

    + * This implementation returns the value of {@link yfiles.input.NavigationInputMode#allowCollapseGroup}. + *

    + * @param groupNode + * @returns Whether to collapse the given group or not. + * @protected + */ + shouldCollapseGroup(groupNode:yfiles.graph.INode):boolean; + /** + * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#enterGroup enter} the specific group node. + *

    + * This implementation yields the value of {@link yfiles.input.NavigationInputMode#allowEnterGroup}. + *

    + * @param node The group node to enter. + * @returns Whether to enter the group or not. + * @protected + */ + shouldEnterGroup(node:yfiles.graph.INode):boolean; + /** + * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#exitGroup exit} the current group node. + *

    + * This implementation yields the value of {@link yfiles.input.NavigationInputMode#allowExitGroup}. + *

    + * @returns Whether to exit the current group or not. + * @protected + */ + shouldExitGroup():boolean; + /** + * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#expandGroup expand} the given group node. + *

    + * This implementation yields the value of {@link yfiles.input.NavigationInputMode#allowExpandGroup}. + *

    + * @param node + * @returns Whether to expand the given group or not. + * @protected + */ + shouldExpandGroup(node:yfiles.graph.INode):boolean; + /** + * Callback predicate method that determines whether a given model item should be navigated to. + *

    + * This implementation uses the {@link yfiles.input.NavigationInputMode#navigableItems} property to determine whether the item can be navigated to. + *

    + * @param item The model item. + * @returns Whether the item should be considered for navigational commands. + * @protected + */ + shouldNavigateTo(item:yfiles.graph.IModelItem):boolean; + /** + * Determines whether the input mode should try to request the mutex when a command is executed. + *

    + * This resets the state of any other input mode, unless it currently possesses the mutex. + *

    + *

    + * The value of this method is queried for {@link yfiles.input.ICommand#COLLAPSE_GROUP}, {@link yfiles.input.ICommand#EXPAND_GROUP}, + * {@link yfiles.input.ICommand#TOGGLE_EXPANSION_STATE}, {@link yfiles.input.ICommand#ENTER_GROUP} and {@link yfiles.input.ICommand#EXIT_GROUP}. + *

    + * @returns whether the input mode should request the mutex. + * @protected + */ + shouldRequestMutex():boolean; + /** + * Callback predicate method that determines whether a given model item should be selected. + *

    + * This implementation uses the {@link yfiles.input.NavigationInputMode#selectableItems} property to determine whether the item should be selected. + *

    + * @param item The model item. + * @returns Whether the item should be selected by the navigational commands. + * @protected + */ + shouldSelect(item:yfiles.graph.IModelItem):boolean; + /** + * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#toggleExpansionState toggle} the collapsed state of the given group node. + *

    + * This implementation uses {@link yfiles.input.NavigationInputMode#shouldExpandGroup} and {@link yfiles.input.NavigationInputMode#shouldCollapseGroup} + * respectively. + *

    + * @param node + * @returns Whether to expand the given group or not. + * @protected + */ + shouldToggleExpansionState(node:yfiles.graph.INode):boolean; + /** + * Toggles the {@link yfiles.graph.IFoldingView#isExpanded expanded/collapsed} state for the given group node in the {@link yfiles.graph.IFoldingView}. + * @param groupNode The group node to toggle the state for. + * @see yfiles.graph.FoldingManager + */ + toggleExpansionState(groupNode:yfiles.graph.INode):void; + /** + * Overridden to only return true if this instance does not currently {@link yfiles.input.ConcurrencyController#hasMutex have the input mutex}. + * @returns true iff this instance does not {@link #hasMutex own the mutex}. + */ + tryStop():boolean; + /** + * Uninstalls this mode from the given context. + *

    + * This code should clean up all changes made to the canvas in the {@link yfiles.input.IInputMode#install} method. After a mode has + * been uninstalled it can be installed again into the same or another canvas. + *

    + *

    + * Overriding implementations should call the base implementation after their own code. + *

    + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during + * installation. + */ + uninstall(context:yfiles.input.IInputModeContext):void; + /** + * + * @type {number} + */ + priority:number; + /** + * Gets or sets a value indicating whether this mode will be the only one running when it has the mutex. + *

    + * The value of this property will be delegated to the {@link yfiles.input.ConcurrencyController#exclusive} property of the {@link yfiles.input.NavigationInputMode#controller}. + *

    + *

    + * If this mode is marked as exclusive and has the mutex, all other modes {@link yfiles.input.MultiplexingInputMode#add added} to the same {@link yfiles.input.MultiplexingInputMode} + * will be deactivated. Otherwise it will always run concurrently with all other modes. + *

    + * @type {boolean} + */ + exclusive:boolean; + /** + * Gets or sets the enabled state of this input mode. + *

    + * Clients can use this property to disable or reenable this instance. This will set the {@link yfiles.input.ConcurrencyController#enabled Enabled} property of the installed + * {@link yfiles.input.NavigationInputMode#controller} so a disabled instance should never try to acquire the input mutex. + *

    + * @type {boolean} + */ + enabled:boolean; + /** + * + * @type {yfiles.input.IInputModeContext} + */ + inputModeContext:yfiles.input.IInputModeContext; + /** + * Returns the installed {@link yfiles.input.NavigationInputMode#controller}. + * @protected + * @type {yfiles.input.ConcurrencyController} + */ + controller:yfiles.input.ConcurrencyController; + /** + * Gets or sets the item types that can be navigated to by this mode. + * @see yfiles.input.NavigationInputMode#shouldNavigateTo + * @type {yfiles.graph.GraphItemTypes} + */ + navigableItems:yfiles.graph.GraphItemTypes; + /** + * Gets the types of the items that should be selectable by this instance. + *

    + * The selectable items. The default value is {@link yfiles.graph.GraphItemTypes#NODE}. + *

    + * @default yfiles.graph.GraphItemTypes.NODE + * @type {yfiles.graph.GraphItemTypes} + */ + selectableItems:yfiles.graph.GraphItemTypes; + /** + * Gets or sets the the location that should be kept fixed if toggling a group node state. + *

    + * Default value is {@link yfiles.input.NodeAlignmentPolicy#NONE} + *

    + * @see yfiles.input.NavigationInputMode#expandGroup + * @default yfiles.input.NodeAlignmentPolicy.NONE + * @type {yfiles.input.NodeAlignmentPolicy} + */ + autoGroupNodeAlignmentPolicy:yfiles.input.NodeAlignmentPolicy; + /** + * Gets or sets the {@link yfiles.input.NavigationInputMode#graphComponent} this mode acts on. + * @type {yfiles.view.GraphComponent} + */ + graphComponent:yfiles.view.GraphComponent; + /** + * Gets the list of commands that are available in this instance. + *

    + * By default, all supported commands are available + *

    + *

    + * Removing commands from this collection also removes the command bindings registered by this instance. + *

    + *

    + * Add supported commands to make them available in this instance. + *

    + *

    + * Supported commands are + *

    + *
      + *
    • {@link yfiles.input.ICommand#MOVE_LEFT}
    • + *
    • {@link yfiles.input.ICommand#MOVE_RIGHT}
    • + *
    • {@link yfiles.input.ICommand#MOVE_UP}
    • + *
    • {@link yfiles.input.ICommand#MOVE_DOWN}
    • + *
    • {@link yfiles.input.ICommand#MOVE_TO_PAGE_UP}
    • + *
    • {@link yfiles.input.ICommand#MOVE_TO_PAGE_DOWN}
    • + *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_BACK}
    • + *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_FORWARD}
    • + *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_UP}
    • + *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_DOWN}
    • + *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_PAGE_UP}
    • + *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_PAGE_DOWN}
    • + *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_LEFT}
    • + *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_RIGHT}
    • + *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_UP}
    • + *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_DOWN}
    • + *
    • {@link yfiles.input.ICommand#SELECT_TO_PAGE_UP}
    • + *
    • {@link yfiles.input.ICommand#SELECT_TO_PAGE_DOWN}
    • + *
    + * @type {yfiles.collections.ICollection.} + */ + availableCommands:yfiles.collections.ICollection; + /** + * Gets or sets a value indicating whether to use the {@link yfiles.view.GraphComponent#currentItem} as a fallback for the commands if no item is provided in the + * parameter and the current selection is empty. + *

    + * This applies to the following commands: + *

    + *
      + *
    • {@link yfiles.input.ICommand#ENTER_GROUP}
    • + *
    • {@link yfiles.input.ICommand#EXPAND_GROUP}
    • + *
    • {@link yfiles.input.ICommand#COLLAPSE_GROUP}
    • + *
    • {@link yfiles.input.ICommand#TOGGLE_EXPANSION_STATE}
    • + *
    + * @default false + * @type {boolean} + */ + useCurrentItemForCommands:boolean; + /** + * Gets or sets the {@link yfiles.view.IGraphSelection} this mode operates on. + * @type {yfiles.view.IGraphSelection} + */ + graphSelection:yfiles.view.IGraphSelection; + /** + * Gets or sets the graph this mode operates on. + * @type {yfiles.graph.IGraph} + */ + graph:yfiles.graph.IGraph; + /** + * Gets or sets a value that determines whether it is allowed to {@link yfiles.input.NavigationInputMode#enterGroup enter group nodes} via the + * {@link yfiles.input.ICommand#ENTER_GROUP}. + *

    + * The default value is true. + *

    + * @see yfiles.input.NavigationInputMode#shouldEnterGroup + * @see yfiles.graph.FoldingManager + * @type {boolean} + */ + allowEnterGroup:boolean; + /** + * Gets or sets a value that determines whether it is allowed to collapse group nodes via the + * {@link yfiles.input.ICommand#COLLAPSE_GROUP}. + *

    + * The default value is true. + *

    + * @see yfiles.input.NavigationInputMode#collapseGroup + * @see yfiles.input.NavigationInputMode#shouldCollapseGroup + * @see yfiles.graph.FoldingManager + * @type {boolean} + */ + allowCollapseGroup:boolean; + /** + * Gets or sets a value that determines whether it is allowed to {@link yfiles.input.NavigationInputMode#expandGroup expand group nodes} via the + * {@link yfiles.input.ICommand#EXPAND_GROUP}. + *

    + * The default value is true. + *

    + * @see yfiles.input.NavigationInputMode#shouldExpandGroup + * @see yfiles.graph.FoldingManager + * @type {boolean} + */ + allowExpandGroup:boolean; + /** + * Gets or sets a value that determines whether it is allowed to {@link yfiles.input.NavigationInputMode#exitGroup exit the current group node} via the + * {@link yfiles.input.ICommand#EXIT_GROUP}. + *

    + * The default value is true. + *

    + * @see yfiles.input.NavigationInputMode#shouldExitGroup + * @see yfiles.graph.FoldingManager + * @default true + * @type {boolean} + */ + allowExitGroup:boolean; + /** + * Gets or sets a value that determines whether {@link yfiles.view.CanvasComponent#fitContent} or the {@link yfiles.input.ICommand#FIT_CONTENT} + * should be triggered after a group navigation action. + *

    + * The default value is true. + *

    + * @default true + * @type {boolean} + */ + fitContentAfterGroupActions:boolean; + /** + * Adds the given listener for the GroupCollapsing event that occurs before a group will be Collapsed. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupCollapsingListener + */ + addGroupCollapsingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupCollapsing event that occurs before a group will be Collapsed. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupCollapsingListener + */ + removeGroupCollapsingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the GroupCollapsed event that occurs whenever a group has been Collapsed. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupCollapsedListener + */ + addGroupCollapsedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupCollapsed event that occurs whenever a group has been Collapsed. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupCollapsedListener + */ + removeGroupCollapsedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the GroupExpanding event that occurs before a group will be {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupExpandingListener + */ + addGroupExpandingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupExpanding event that occurs before a group will be {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupExpandingListener + */ + removeGroupExpandingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the GroupExpanded event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupExpandedListener + */ + addGroupExpandedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupExpanded event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupExpandedListener + */ + removeGroupExpandedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the GroupEntering event that occurs before a group will be {@link yfiles.input.NavigationInputMode#enterGroup Entered}. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupEnteringListener + */ + addGroupEnteringListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupEntering event that occurs before a group will be {@link yfiles.input.NavigationInputMode#enterGroup Entered}. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupEnteringListener + */ + removeGroupEnteringListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the GroupEntered event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#enterGroup Entered}. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupEnteredListener + */ + addGroupEnteredListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupEntered event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#enterGroup Entered}. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupEnteredListener + */ + removeGroupEnteredListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the GroupExiting event that occurs before a group will be {@link yfiles.input.NavigationInputMode#exitGroup Exited}. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupExitingListener + */ + addGroupExitingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupExiting event that occurs before a group will be {@link yfiles.input.NavigationInputMode#exitGroup Exited}. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupExitingListener + */ + removeGroupExitingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Adds the given listener for the GroupExited event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#exitGroup Exited}. + * @param listener The listener to add. + * @see yfiles.input.NavigationInputMode#removeGroupExitedListener + */ + addGroupExitedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Removes the given listener for the GroupExited event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#exitGroup Exited}. + * @param listener The listener to remove. + * @see yfiles.input.NavigationInputMode#addGroupExitedListener + */ + removeGroupExitedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + static $class:yfiles.lang.Class; + } + export enum MoveFocusDirection{ + /** + * No direction. + */ + NONE, + /** + * In the direction of the negative x Axis. + */ + LEFT, + /** + * In the direction of the positive x Axis. + */ + RIGHT, + /** + * In the direction of the negative y Axis. + */ + UP, + /** + * In the direction of the positive y Axis. + */ + DOWN, + /** + * In the direction of the {@link yfiles.graph.IGraph#setParent parent} in the grouped graph. + */ + PARENT, + /** + * In the direction of the {@link yfiles.graph.IGraph#getChildren children} in the grouped graph. + */ + CHILD + } + export enum NodeAlignmentPolicy{ + /** + * Don't fix any specific point, only use the layout from the target state. + */ + NONE, + /** + * Fix the center point. + */ + CENTER, + /** + * Fix the upper left corner. + */ + TOP_LEFT, + /** + * Fix the lower left corner. + */ + BOTTOM_LEFT, + /** + * Fix the upper right corner. + */ + TOP_RIGHT, + /** + * Fix the lower right corner. + */ + BOTTOM_RIGHT, + /** + * Fix the uppermost center. + */ + TOP_CENTER, + /** + * Fix the lowermost center. + */ + BOTTOM_CENTER, + /** + * Fix the left center. + */ + CENTER_LEFT, + /** + * Fix the right center. + */ + CENTER_RIGHT + } + export enum OrthogonalEdgeEditingPolicy{ + /** + * Enables orthogonal edge creation or editing for a specific sub-aspect automatically if an {@link yfiles.input.OrthogonalEdgeEditingContext#enabled} {@link yfiles.input.OrthogonalEdgeEditingContext} + * instance is set in the {@link yfiles.input.GraphEditorInputMode#orthogonalEdgeEditingContext parent input mode}. + */ + AUTO, + /** + * Enables orthogonal edge creation or editing for a specific sub-aspect of edge creation. + */ + ALWAYS, + /** + * Disables orthogonal edge creation or editing for a specific sub-aspect of edge creation. + */ + NEVER + } + export enum SegmentOrientation{ + /** + * The segment has a horizontal orientation, which means that the end points should be moved vertically in synch so that + * the orientation is not destroyed. + */ + HORIZONTAL, + /** + * The segment has a vertical orientation, which means that the end points should be moved horizontally in synch so that + * the orientation is not destroyed. + */ + VERTICAL, + /** + * The segment does not need to be treated especially, both endpoints can be moved independently from each other. + */ + NON_ORTHOGONAL + } + /** + * Concrete {@link yfiles.input.SnapContext} implementation which handles snapping movement for {@link yfiles.graph.IGraph} items. + *

    + * This class provides a set of properties that determine the way snapping operations are being performed in the context of + * {@link yfiles.graph.IGraph}s. {@link yfiles.input.IPositionHandler} implementations and the like can use the following idiom to retrieve + * instances of this class: + *

    + *

    Related demos:

    + *
      + *
    • Tutorial: 01 Getting Started, step 15 Snapping
    • + *
    + * @see yfiles.input.GraphEditorInputMode + * @see yfiles.input.GraphEditorInputMode#snapContext + * @class + * @extends {yfiles.input.SnapContext} + */ + export interface GraphSnapContext extends yfiles.input.SnapContext{} + export class GraphSnapContext { + /** + * Creates a new instance with default settings. + */ + constructor(); + /** + * Adds {@link yfiles.input.MovementInfo} representing an {@link yfiles.graph.IBend} that will be considered for the next drag gesture. + *

    + * The default {@link yfiles.input.IHandle} of an {@link yfiles.graph.IBend} calls this method in its {@link yfiles.input.IDragHandler#initializeDrag} + * method so snap results are calculated when this bend is repositioned. Custom {@link yfiles.input.IHandle} implementations can + * add infos created by {@link yfiles.input.GraphSnapContext#getMovementInfo}. + *

    + * @param info The {@link } representing the bend to be moved. Can be created with + * {@link #getMovementInfo}. + */ + addBendToBeMoved(info:yfiles.input.MovementInfo):void; + /** + * Adds {@link yfiles.input.MovementInfo} representing the end of an {@link yfiles.graph.IEdge} that will be considered for the next drag + * gesture. + *

    + * The {@link yfiles.input.IHandle} returned by the default {@link yfiles.input.IEdgePortHandleProvider} of an {@link yfiles.graph.IEdge} calls + * this method in its {@link yfiles.input.IDragHandler#initializeDrag} method so snap results are calculated when reparenting this + * edge end. Custom {@link yfiles.input.IHandle} implementations can call {@link yfiles.input.GraphSnapContext#getMovementInfos} and add + * the first or last {@link yfiles.input.MovementInfo} of the returned list. + *

    + * @param info The {@link } representing the edge end to be reparented. Can be created with + * {@link #getMovementInfos}. + * @param sourceEnd true if the info represents the source end of the edge. + */ + addEdgeEndToBeMoved(info:yfiles.input.MovementInfo,sourceEnd:boolean):void; + /** + * Adds an item which will be reshaped. + * @param item The item to be reshaped. + */ + addItemToBeReshaped(item:yfiles.graph.IModelItem):void; + /** + * Adds {@link yfiles.input.MovementInfo} representing an {@link yfiles.graph.INode} that will be considered for the next drag gesture. + *

    + * The default {@link yfiles.input.IPositionHandler} of an {@link yfiles.graph.INode} calls this method in its {@link yfiles.input.IDragHandler#initializeDrag} + * method so snap results are calculated when this node is repositioned. Custom {@link yfiles.input.IPositionHandler} + * implementations can add infos created by {@link yfiles.input.GraphSnapContext#getMovementInfo}. + *

    + * @param info The {@link } representing the node to be moved. Can be created with + * {@link #getMovementInfo}. + */ + addNodeToBeMoved(info:yfiles.input.MovementInfo):void; + /** + * Adds an orthogonally moved segment to this context for which this instance will automatically collect + * {@link yfiles.input.SnapResult}s and provide a default visualization. + *

    + * This method can be called during initialization to collect orthogonal segments that should be tested against {@link yfiles.input.GraphSnapContext#fixedSegmentSnapLines} and {@link yfiles.input.GraphSnapContext#additionalSnapLines}. + *

    + * @param start The starting point of the manipulated segment. + * @param end The end point of the manipulated segment. + */ + addOrthogonalSegment(start:yfiles.input.MovementInfo,end:yfiles.input.MovementInfo):void; + /** + * Adds {@link yfiles.input.MovementInfo} representing an {@link yfiles.graph.IPort} that will be considered for the next drag gesture. + *

    + * The default {@link yfiles.input.IHandle} of an {@link yfiles.graph.IPort} calls this method in its {@link yfiles.input.IDragHandler#initializeDrag} + * method so snap results are calculated for this port. Custom {@link yfiles.input.IHandle} implementations can add infos created + * by {@link yfiles.input.GraphSnapContext#getMovementInfo}. + *

    + * @param info The {@link } representing the port to be moved. Can be created with + * {@link #getMovementInfo}. + */ + addPortToBeMoved(info:yfiles.input.MovementInfo):void; + /** + * Adds an entry for the same-height-snapping. + *

    + * During {@link yfiles.input.SnapContext#isInitializing initialization} this method can be used to register entries that can later be retrieved using the {@link yfiles.input.GraphSnapContext#findSameHeightEntries} + * method. The rectangle will be used to obtain the height value and will also be used for the visualization of the snap + * result. + *

    + * @param rectangle The rectangle to obtain the height value from. This rectangle will be used for the snap result visualization. + * @see yfiles.input.GraphSnapContext#addSameWidthEntry + */ + addSameHeightEntry(rectangle:yfiles.geometry.Rect):void; + /** + * Adds an entry for the same-width-snapping. + *

    + * During {@link yfiles.input.SnapContext#isInitializing initialization} this method can be used to register entries that can later be retrieved using the {@link yfiles.input.GraphSnapContext#findSameWidthEntries} + * method. The rectangle will be used to obtain the width value and will also be used for the visualization of the snap + * result. + *

    + * @param rectangle The rectangle to obtain the width value from. This rectangle will be used for the snap result visualization. + * @see yfiles.input.GraphSnapContext#addSameHeightEntry + */ + addSameWidthEntry(rectangle:yfiles.geometry.Rect):void; + /** + * Collects the {@link yfiles.input.OrthogonalSnapLine}s for the nodes which are not moving. + *

    + * Delegates to the {@link yfiles.input.ISnapLineProvider} implementation in the lookup of the {@link yfiles.graph.INode}. + *

    + * @param evt + * @protected + */ + collectFixedNodeSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; + /** + * Collects the {@link yfiles.input.OrthogonalSnapLine}s for the ports which are not moving. + *

    + * Delegates to the {@link yfiles.input.ISnapLineProvider} implementation in the lookup of the {@link yfiles.graph.IPort}. + *

    + * @param evt + * @protected + */ + collectFixedPortSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; + /** + * Collects snap lines for edge segments. + *

    + * Delegates to the {@link yfiles.input.ISnapLineProvider} implementation in the lookup of the {@link yfiles.graph.IEdge}. This + * implementation should then make us of {@link yfiles.input.GraphSnapContext#getMovementInfos} to determine what segments are + * fixed. + *

    + * @param evt + * @protected + */ + collectFixedSegmentSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; + /** + * Collects all node widths and heights in the collections {@link yfiles.input.GraphSnapContext#findSameWidthEntries} and + * {@link yfiles.input.GraphSnapContext#findSameHeightEntries}. + *

    + * This method will only be called if {@link yfiles.input.GraphSnapContext#collectNodeSizes} is enabled and delegates to {@link yfiles.input.GraphSnapContext#addSameHeightEntry} and + * {@link yfiles.input.GraphSnapContext#addSameWidthEntry}. + *

    + * @protected + */ + collectSameSizeEntries():void; + /** + * Finds pairs of nodes that are visually adjacent to create {@link yfiles.input.GraphSnapContext#collectNodePairCenterSnapLines center} and {@link yfiles.input.GraphSnapContext#collectNodePairSnapLines same distance} snap lines. + * @protected + */ + collectVisibleNodePairs():void; + /** + * Finds the entries ({@link yfiles.geometry.Rect}s) that have been registered using the {@link yfiles.input.GraphSnapContext#addSameHeightEntry} + * previously that best match the given constraints. + * @param size The size to find the closest set of identical sizes. + * @param maxSize The maximum allowed size. + * @param minSize The minimum allowed size. + * @returns The set of rectangles that have been added previously using {@link #addSameHeightEntry}. + */ + findSameHeightEntries(size:number,maxSize:number,minSize:number):yfiles.collections.IListEnumerable; + /** + * Finds the entries ({@link yfiles.geometry.Rect}s) that have been registered using the {@link yfiles.input.GraphSnapContext#addSameWidthEntry} + * previously that best match the given constraints. + * @param size The size to find the closest set of identical sizes. + * @param maxSize The maximum allowed size. + * @param minSize The minimum allowed size. + * @returns The set of rectangles that have been added previously using {@link #addSameWidthEntry}. + */ + findSameWidthEntries(size:number,maxSize:number,minSize:number):yfiles.collections.IListEnumerable; + /** + * Gets a subset of {@link yfiles.input.GraphSnapContext#additionalSnapLines} that matches the given orientation, snapType and intersects with the provided area. + * @param orientation The orientation of the lines to return. + * @param snapType The snap type to be included. + * @param area The area to test for intersection. + * @returns An enumerable of the snap lines that match the provided criteria. + */ + getAdditionalSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; + /** + * Gets a subset of {@link yfiles.input.GraphSnapContext#fixedNodeSnapLines} that matches the given orientation, snapType and intersects with the provided area. + * @param orientation The orientation of the lines to return. + * @param snapType The snap type to be included. + * @param area The area to test for intersection. + * @returns An enumerable of the snap lines that match the provided criteria. + */ + getFixedNodeSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; + /** + * Gets a subset of {@link yfiles.input.GraphSnapContext#fixedPortSnapLines} that matches the given orientation, snapType and intersects with the provided area. + * @param orientation The orientation of the lines to return. + * @param snapType The snap type to be included. + * @param area The area to test for intersection. + * @returns An enumerable of the snap lines that match the provided criteria. + */ + getFixedPortSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; + /** + * Gets a subset of {@link yfiles.input.GraphSnapContext#fixedSegmentSnapLines} that matches the given orientation, snapType and intersects with the provided area. + * @param orientation The orientation of the lines to return. + * @param snapType The snap type to be included. + * @param area The area to test for intersection. + * @returns An enumerable of the snap lines that match the provided criteria. + */ + getFixedSegmentSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; + /** + * Gets the movement info for the given port. + *

    + * This is either the info passed to {@link yfiles.input.GraphSnapContext#addNodeToBeMoved} or another, dynamically created + * instance, if no specific one had been registered. + *

    + * @param port The port to obtain the info for. + * @returns An instance of {@link } that describes the movement of the port. + */ + getMovementInfo(port:yfiles.graph.IPort):yfiles.input.MovementInfo; + /** + * Gets the movement info for the given node. + *

    + * This is either the info passed to {@link yfiles.input.GraphSnapContext#addNodeToBeMoved} or another, dynamically created + * instance, if no specific one had been registered. + *

    + * @param node The node to obtain the info for. + * @returns An instance of {@link } that describes the movement of the node. + */ + getMovementInfo(node:yfiles.graph.INode):yfiles.input.MovementInfo; + /** + * Gets the movement info for the given bend. + *

    + * This is either the info passed to {@link yfiles.input.GraphSnapContext#addBendToBeMoved} or a dynamically created instance if no + * specific one had been registered. + *

    + * @param bend The bend to obtain the info for. + * @returns An instance of {@link } that describes the movement of the bend. + */ + getMovementInfo(bend:yfiles.graph.IBend):yfiles.input.MovementInfo; + /** + * Gets the {@link yfiles.input.MovementInfo movement information} for the provided edge. + *

    + * The result describes the shape of the edge and the reshaping behavior of the geometry. The first element in the + * enumerable is the source end of the edge, followed by bend like elements and the target side. Note that it cannot in + * general be assumed {@link yfiles.input.MovementInfo#movedItem} of the first and last element is either a {@link yfiles.graph.IPort} or {@link yfiles.graph.IEdge}, also items in + * between may not necessarily be bound to {@link yfiles.graph.IBend}s and therefore their {@link yfiles.input.MovementInfo#movedItem} can be of a different type than + * {@link yfiles.graph.IBend}. + *

    + * @param edge The edge to obtain the movement information of. + * @returns An {@link } of {@link }s items that describe the geometry of the edge being modified. + */ + getMovementInfos(edge:yfiles.graph.IEdge):yfiles.collections.IListEnumerable; + /** + * Raises the {@link yfiles.input.GraphSnapContext#addCollectSnapLinesListener CollectSnapLines} event. + * @param evt The {@link } instance containing the event data. + * @protected + */ + onCollectSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; + /** + * Gets the nodes that stay fixed for the current edit. + * @protected + * @type {yfiles.collections.ICollection.} + */ + fixedNodes:yfiles.collections.ICollection; + /** + * Adds the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to + * collect {@link yfiles.input.OrthogonalSnapLine}s. + *

    + * Event handlers should add snap lines to the caller using the methods provided by + * {@link yfiles.input.CollectGraphSnapLinesEventArgs}. + *

    + * @param listener The listener to add. + * @see yfiles.input.GraphSnapContext#removeCollectSnapLinesListener + */ + addCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectGraphSnapLinesEventArgs)=>void):void; + /** + * Removes the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to + * collect {@link yfiles.input.OrthogonalSnapLine}s. + *

    + * Event handlers should add snap lines to the caller using the methods provided by + * {@link yfiles.input.CollectGraphSnapLinesEventArgs}. + *

    + * @param listener The listener to remove. + * @see yfiles.input.GraphSnapContext#addCollectSnapLinesListener + */ + removeCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectGraphSnapLinesEventArgs)=>void):void; + /** + * Determines whether this instance should collect {@link yfiles.input.GraphSnapContext#fixedSegmentSnapLines fixed snap lines} for edge segments. + *

    + * The default is true. + *

    + * @see yfiles.input.ISnapLineProvider + * @see yfiles.input.GraphSnapContext#collectFixedSegmentSnapLines + * @default true + * @type {boolean} + */ + collectEdgeSnapLines:boolean; + /** + * Determines whether this instance should collect the sizes of fixed nodes. + *

    + * The default is true. + *

    + * @see yfiles.input.GraphSnapContext#collectSameSizeEntries + * @default true + * @type {boolean} + */ + collectNodeSizes:boolean; + /** + * Determines whether this instance should collect {@link yfiles.input.GraphSnapContext#fixedNodeSnapLines fixed snap lines} for nodes. + *

    + * The default is true. + *

    + * @see yfiles.input.ISnapLineProvider + * @see yfiles.input.GraphSnapContext#collectFixedNodeSnapLines + * @default true + * @type {boolean} + */ + collectNodeSnapLines:boolean; + /** + * Determines whether this instance should collect {@link yfiles.input.GraphSnapContext#fixedPortSnapLines fixed snap lines} for ports. + *

    + * The default is true. + *

    + * @see yfiles.input.ISnapLineProvider + * @see yfiles.input.GraphSnapContext#collectFixedPortSnapLines + * @default true + * @type {boolean} + */ + collectPortSnapLines:boolean; + /** + * Whether this context will automatically snap the movements of bends so that the two adjacent segments become + * horizontally or vertically oriented. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + snapBendAdjacentSegments:boolean; + /** + * Whether this context will automatically snap the movements of nodes so that the first and last segments of edges become + * orthogonal. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + snapPortAdjacentSegments:boolean; + /** + * Determines whether this context will automatically snap orthogonal edge segments to snap lines. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + snapSegmentsToSnapLines:boolean; + /** + * Whether this context will automatically snap the bends to snap lines. + *

    + * The default is false. + *

    + * @default false + * @type {boolean} + */ + snapBendsToSnapLines:boolean; + /** + * Whether {@link yfiles.input.INodeSnapResultProvider} implementations should snap nodes to snap lines. + *

    + * The default is true. + *

    + * @default true + * @type {boolean} + */ + snapNodesToSnapLines:boolean; + /** + * The preferred distance between node borders. + *

    + * This will influence the creation of the node snap lines. For each fixed node there will be snap lines on the borders of + * the node itself and around the node at the specified distance. + *

    + *

    + * The default is 0.0d which disables distant snap lines around the nodes. + *

    + * @default 0.0 + * @type {number} + */ + nodeToNodeDistance:number; + /** + * The preferred distance between node borders and edge segments. + *

    + * This will influence the creation of the node snap lines. For each fixed node there will be snap lines on the borders of + * the node itself and around the node at the specified distance to which orthogonal edge segments can snap. + *

    + *

    + * The default is -1.0d which disables distant snap lines around the nodes for edge segments. + *

    + * @default -1.0 + * @type {number} + */ + nodeToEdgeDistance:number; + /** + * Gets the preferred distance between edges. + *

    + * This will influence the creation of the segment snap lines. For each orthogonally oriented fixed segment there will be + * snap lines on the segment itself and to both sides of the segment at the specified distance. + *

    + *

    + * The default is 0.0d which disables parallel snap lines. + *

    + * @default 0.0 + * @type {number} + */ + edgeToEdgeDistance:number; + /** + * Determines whether this context will automatically snap the movement in such a way that the overall move gesture is + * constrained to the horizontal or vertical axis. + *

    + * The default is false. + *

    + * @default false + * @type {boolean} + */ + snapOrthogonalMovement:boolean; + /** + * Determines whether this instance will try to align the centers of adjacent nodes so that their centers are equally far + * away from each other. + *

    + * Note that this will only make a difference for differently sized nodes. + *

    + *

    + * By default this feature is turned off, so that the instance will try to distribute nodes evenly, so that there is the + * same spacing between their borders, not between their centers. + *

    + * @default false + * @type {boolean} + */ + collectNodePairCenterSnapLines:boolean; + /** + * Gets or sets a value indicating whether this instance will collect pairs of adjacent nodes and add snapping logic so + * that moved nodes will snap so that the distances to the adjacent nodes are equal. + * @default true + * @type {boolean} + */ + collectNodePairSnapLines:boolean; + /** + * Gets or sets a value indicating whether this instance will collect pairs of adjacent nodes and add snapping logic so + * that moved edge segments will snap so that the distances to the adjacent nodes are equal. + * @default true + * @type {boolean} + */ + collectNodePairSegmentSnapLines:boolean; + /** + * Gets or sets the type of the grid snapping that should be performed. + *

    + * Determines which grid elements an object should snap to. + *

    + * @see yfiles.input.GraphSnapContext#nodeGridConstraintProvider + * @see yfiles.input.GraphSnapContext#bendGridConstraintProvider + * @see yfiles.input.GraphSnapContext#portGridConstraintProvider + * @default yfiles.input.GridSnapTypes.NONE + * @type {yfiles.input.GridSnapTypes} + */ + gridSnapType:yfiles.input.GridSnapTypes; + /** + * Gets or sets the GridSnapDistance. + *

    + * The maximum distance between the current mouse coordinates and the coordinates to which the mouse will snap. The + * distance is interpreted in view coordinates. + *

    + * @default 10.0 + * @type {number} + */ + gridSnapDistance:number; + /** + * Gets or sets the grid constraint provider for the {@link yfiles.graph.INode}s. + * @type {yfiles.input.IGridConstraintProvider.} + */ + nodeGridConstraintProvider:yfiles.input.IGridConstraintProvider; + /** + * Gets or sets the grid constraint provider for the {@link yfiles.graph.IBend}s. + * @type {yfiles.input.IGridConstraintProvider.} + */ + bendGridConstraintProvider:yfiles.input.IGridConstraintProvider; + /** + * Gets or sets the grid constraint provider for the {@link yfiles.graph.IPort}s. + * @type {yfiles.input.IGridConstraintProvider.} + */ + portGridConstraintProvider:yfiles.input.IGridConstraintProvider; + /** + * Gets or sets the amount by which snap lines that are induced by existing edge segments and node borders are being + * extended. + *

    + * The default is 40.0d, this value will be used to extend the ends of the snap lines. + *

    + * @default 40.0 + * @type {number} + */ + snapLineExtension:number; + /** + * Gets or sets a value indicating whether to crop the snap lines at obstacles. + *

    + * The default is true + *

    + * @type {boolean} + */ + cropSnapLines:boolean; + /** + * The collection of {@link yfiles.input.OrthogonalSnapLine}s for fixed nodes. + *

    + * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. + *

    + * @see yfiles.input.GraphSnapContext#getFixedNodeSnapLines + * @type {yfiles.collections.IEnumerable.} + */ + fixedNodeSnapLines:yfiles.collections.IEnumerable; + /** + * The collection of {@link yfiles.input.OrthogonalSnapLine}s for fixed segments. + *

    + * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. + *

    + * @see yfiles.input.GraphSnapContext#getFixedSegmentSnapLines + * @type {yfiles.collections.IEnumerable.} + */ + fixedSegmentSnapLines:yfiles.collections.IEnumerable; + /** + * The collection of {@link yfiles.input.OrthogonalSnapLine}s to which ports should be snapping. + *

    + * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. + *

    + * @see yfiles.input.GraphSnapContext#getFixedPortSnapLines + * @type {yfiles.collections.IEnumerable.} + */ + fixedPortSnapLines:yfiles.collections.IEnumerable; + /** + * The collection of additional {@link yfiles.input.OrthogonalSnapLine}s. + *

    + * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. + *

    + * @see yfiles.input.GraphSnapContext#getAdditionalSnapLines + * @type {yfiles.collections.IEnumerable.} + */ + additionalSnapLines:yfiles.collections.IEnumerable; + static $class:yfiles.lang.Class; + } + export enum MoveTypes{ + /** + * The element does not move at all during the edit. + */ + FIXED, + /** + * The element moves linearly with the mouse in horizontal direction. + */ + LINEAR_MOVE_X, + /** + * The element moves linearly with the mouse in vertical direction. + */ + LINEAR_MOVE_Y, + /** + * The element moves linearly with the mouse in both directions. + */ + LINEAR_MOVE, + /** + * The element moves in horizontal direction but not linearly/predictably with the mouse. + *

    + * A typical example is a port whose position is adjusted during a resize of its owning node. + *

    + *

    + * Elements which do not move linearly with the mouse cannot snap to a defined position. + *

    + */ + ARBITRARY_MOVE_X, + /** + * The element moves in vertical direction but not linearly/predictably with the mouse. + *

    + * A typical example is a port whose position is adjusted during a resize of its owning node. + *

    + *

    + * Elements which do not move linearly with the mouse cannot snap to a defined position. + *

    + */ + ARBITRARY_MOVE_Y, + /** + * The element moves in both directions but not linearly/predictably with the mouse. + *

    + * A typical example is a port whose position is adjusted during a resize of its owning node. + *

    + *

    + * Elements which do not move linearly with the mouse cannot snap to a defined position. + *

    + */ + ARBITRARY_MOVE, + /** + * The bitwise combination of {@link yfiles.input.MoveTypes#LINEAR_MOVE_X} and {@link yfiles.input.MoveTypes#ARBITRARY_MOVE_X} + */ + MOVEMENT_X, + /** + * The bitwise combination of {@link yfiles.input.MoveTypes#LINEAR_MOVE_Y} and {@link yfiles.input.MoveTypes#ARBITRARY_MOVE_Y} + */ + MOVEMENT_Y + } + /** + * A helper class that is used in the context of {@link yfiles.input.GraphSnapContext} to describe the movement of entities during + * the edit process. + * @class + */ + export interface MovementInfo extends Object{} + export class MovementInfo { + /** + * Initializes a new instance of the {@link yfiles.input.MovementInfo} class. + * @param originalLocation The original location. + * @param moveType The type of the move. + * @param movedItem The item that is being moved. + * @protected + */ + constructor(originalLocation:yfiles.geometry.Point,moveType:yfiles.input.MoveTypes,movedItem:yfiles.graph.IModelItem); + /** + * Gets the new x coordinate of the element if the mouse has been moved by dx during the gesture. + *

    + * This takes the {@link yfiles.input.MovementInfo#moveType} and {@link yfiles.input.MovementInfo#originalLocation} into account. + *

    + * @param dx The delta x coordinate. + * @returns The new x coordinate. + */ + getX(dx:number):number; + /** + * Gets the new y coordinate of the element if the mouse has been moved by dy during the gesture. + *

    + * This takes the {@link yfiles.input.MovementInfo#moveType} and {@link yfiles.input.MovementInfo#originalLocation} into account. + *

    + * @param dy The delta y coordinate. + * @returns The new y coordinate. + */ + getY(dy:number):number; + /** + * Determines whether this instances moves synchronized with the provided info. + * @param info The info to check. + * @returns Whether this info and the given info move horizontally synchronized. + * @see yfiles.input.MovementInfo#horizontalAnchor + */ + movesHorizontallySynchronizedWith(info:yfiles.input.MovementInfo):boolean; + /** + * Determines whether this instances moves synchronized with the provided info. + * @param info The info to check. + * @returns Whether this info and the given info move vertically synchronized. + * @see yfiles.input.MovementInfo#verticalAnchor + */ + movesVerticallySynchronizedWith(info:yfiles.input.MovementInfo):boolean; + /** + * Gets the item that is being moved. + * @type {yfiles.graph.IModelItem} + */ + movedItem:yfiles.graph.IModelItem; + /** + * Gets or sets the horizontal movement info to which this info is anchored horizontally. + *

    + * This info can be declared to be implicitly anchored to another info. Method {@link yfiles.input.MovementInfo#movesHorizontallySynchronizedWith} + * will try to match against the anchors to determine if two infos are moving synchronized. + *

    + * @type {yfiles.input.MovementInfo} + */ + horizontalAnchor:yfiles.input.MovementInfo; + /** + * Gets or sets the vertical movement info to which this info is anchored vertically. + *

    + * This info can be declared to be implicitly anchored to another info. Method {@link yfiles.input.MovementInfo#movesVerticallySynchronizedWith} + * will try to match against the anchors to determine if two infos are moving synchronized. + *

    + * @type {yfiles.input.MovementInfo} + */ + verticalAnchor:yfiles.input.MovementInfo; + /** + * Gets the original location of the element at the time the editing started. + * @type {yfiles.geometry.Point} + */ + originalLocation:yfiles.geometry.Point; + /** + * Gets the current location as a live point. + * @abstract + * @type {yfiles.geometry.IPoint} + */ + currentLocation:yfiles.geometry.IPoint; + /** + * Indicates the type of the movement for this instance. + * @type {yfiles.input.MoveTypes} + */ + moveType:yfiles.input.MoveTypes; + /** + * Gets a value indicating whether the y coordinate of the item is fixed during the move operation. + * @type {boolean} + */ + isVerticallyFixed:boolean; + /** + * Gets a value indicating whether the x coordinate of the item is fixed during the move operation. + * @type {boolean} + */ + isHorizontallyFixed:boolean; + static $class:yfiles.lang.Class; + } + /** + * A snap line is a line segment in the world coordinate system to which other items (lines or points) snap during + * interactive movements. + *

    + * {@link yfiles.input.GraphSnapContext} and {@link yfiles.input.LabelSnapContext} make use of this class to interactively snap moving + * elements to snap lines. + *

    + * @class + */ + export interface SnapLine extends Object{} + export class SnapLine { + /** + * Creates a new snap line using the provided attributes. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param from The first location that delimits this snap line. + * @param to The second location that delimits this snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + */ + constructor(snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:yfiles.geometry.Point,to:yfiles.geometry.Point,tag:Object,weight:number); + /** + * Resource key which determines a snap line having a fixed visualization independent of the {@link yfiles.input.SnapResult}. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_FIXED_LINE_KEY:string; + /** + * Resource key which determines a snap line with three special locations, for example the start, end and center of an edge + * segment. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_EDGE_SEGMENT_KEY:string; + /** + * Resource key which determines a grid snap line having a fixed visualization independent of the {@link yfiles.input.SnapResult}. + * @const + * @static + * @type {string} + */ + static GRID_LINE_FIXED_LINE_KEY:string; + /** + * Resource key which determines a decorated snap line between the {@link yfiles.input.SnapLine#coordinates} and the snapped coordinates. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_VARIABLE_LINE_KEY:string; + /** + * Resource key which determines a blank line between the {@link yfiles.input.SnapLine#coordinates} and the snapped coordinates. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_BLANK_VARIABLE_LINE_KEY:string; + /** + * Resource key which determines a decorated line between the {@link yfiles.input.SnapLine#coordinates} and the snapped coordinates that is extended on both sides. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_EXTENDED_VARIABLE_LINE_KEY:string; + /** + * Resource key which determines a snap line which lets an item snap in a defined distance to another graph item. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_FIXED_DISTANCE_KEY:string; + /** + * Resource key which determines a snap line which lets an item snap in the center between the bounds of two other items. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_CENTER_BETWEEN_BOUNDS_KEY:string; + /** + * Resource key which determines a snap line which lets an item snap in the center between the centers of two other items. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_CENTER_BETWEEN_CENTERS_KEY:string; + /** + * Resource key which determines a snap line which lets an item snap if it has an equal distance to two other items. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_EQUAL_DISTANCE_BETWEEN_BOUNDS_KEY:string; + /** + * Resource key which determines a snap line which lets an item snap if it's center has an equal distance to the centers' + * of two other items. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_EQUAL_DISTANCE_BETWEEN_CENTERS_KEY:string; + /** + * Resource key which determines the snapping of a resized item if it's new width is equal to another item. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_EQUAL_WIDTH_KEY:string; + /** + * Resource key which determines the snapping of a resized item if it's new height is equal to another item. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_EQUAL_HEIGHT_KEY:string; + /** + * Resource key which determines the snapping of an item to a grid position. + * @const + * @static + * @type {string} + */ + static SNAP_TO_GRID_KEY:string; + /** + * Resource key which determines the {@link yfiles.view.Stroke} used for the snap line visualization. + * @const + * @static + * @type {string} + */ + static SNAP_LINE_STROKE_KEY:string; + /** + * The type of the line that describes how other items will snap to this line. + *

    + * his is one of {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, + * {@link yfiles.input.SnapLineSnapTypes#LEFT}, {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. + *

    + * @type {yfiles.input.SnapLineSnapTypes} + */ + snapType:yfiles.input.SnapLineSnapTypes; + /** + * The coordinates of the center point of the snap line. + * @type {yfiles.geometry.Point} + */ + coordinates:yfiles.geometry.Point; + /** + * The tag that is associated with this snap line. + *

    + * The tag is most commonly used for the {@link yfiles.input.SnapResult#tag snap result tag}. + *

    + * @type {Object} + */ + tag:Object; + /** + * The weight/importance of this snap line. + *

    + * Greater values indicate greater importance. + *

    + * @type {number} + */ + weight:number; + /** + * The first location that delimits this snap line. + * @type {yfiles.geometry.Point} + */ + from:yfiles.geometry.Point; + /** + * The second location that delimits this snap line. + * @type {yfiles.geometry.Point} + */ + to:yfiles.geometry.Point; + /** + * The resource key which determines the visual appearance of the snap line. + * @type {string} + */ + resourceKey:string; + static $class:yfiles.lang.Class; + } + /** + * An orthogonal snap line, in other words, one that is parallel to the x or y axis. + * @class + * @extends {yfiles.input.SnapLine} + */ + export interface OrthogonalSnapLine extends yfiles.input.SnapLine{} + export class OrthogonalSnapLine { + /** + * Creates a new snap line using the provided attributes. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + */ + constructor(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); + /** + * Creates a new snap line using the provided attributes. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param from The smaller value of the coordinate that delimits this snap line. + * @param to The greater value of the coordinate that delimits this snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + */ + constructor(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); + /** + * The orientation of the snap line. + *

    + * This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or {@link yfiles.input.SnapLineOrientation#VERTICAL}. + *

    + * @type {yfiles.input.SnapLineOrientation} + */ + orientation:yfiles.input.SnapLineOrientation; + static $class:yfiles.lang.Class; + } + /** + * A specialized {@link yfiles.input.OrthogonalSnapLine} that stores a {@link yfiles.input.NodeBasedSnapLine#node} as additional information that can be used for the + * visualization. + * @class + * @extends {yfiles.input.OrthogonalSnapLine} + */ + export interface NodeBasedSnapLine extends yfiles.input.OrthogonalSnapLine{} + export class NodeBasedSnapLine { + /** + * Initializes a new instance of the {@link yfiles.input.NodeBasedSnapLine} class. + * @param node The node to assign to {@link #node}. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + * @param from The smaller value of the coordinate that delimits this snap line. + * @param to The greater value of the coordinate that delimits this snap line. + */ + constructor(node:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); + /** + * Initializes a new instance of the {@link yfiles.input.NodeBasedSnapLine} class. + * @param node The node to assign to {@link #node}. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + */ + constructor(node:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); + /** + * Gets the node that is associated with this snap line. + *

    + * Usually this is the instance that induced this snap line. + *

    + * @type {yfiles.graph.INode} + */ + node:yfiles.graph.INode; + static $class:yfiles.lang.Class; + } + /** + * A specialized {@link yfiles.input.OrthogonalSnapLine} that stores two {@link yfiles.graph.INode nodes} as additional information that can be used for the + * visualization. + * @see yfiles.input.NodePairBasedSnapLine#firstNode + * @see yfiles.input.NodePairBasedSnapLine#secondNode + * @class + * @extends {yfiles.input.OrthogonalSnapLine} + */ + export interface NodePairBasedSnapLine extends yfiles.input.OrthogonalSnapLine{} + export class NodePairBasedSnapLine { + /** + * Initializes a new instance of the {@link yfiles.input.NodePairBasedSnapLine} class. + * @param firstNode The first node to assign to {@link #firstNode}. + * @param secondNode The second node to assign to {@link #secondNode}. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + * @param from The smaller value of the coordinate that delimits this snap line. + * @param to The greater value of the coordinate that delimits this snap line. + */ + constructor(firstNode:yfiles.graph.INode,secondNode:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); + /** + * Initializes a new instance of the {@link yfiles.input.NodePairBasedSnapLine} class. + * @param firstNode The first node to assign to {@link #firstNode}. + * @param secondNode The second node to assign to {@link #secondNode}. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + */ + constructor(firstNode:yfiles.graph.INode,secondNode:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); + /** + * Gets the first node that is associated with this snap line. + *

    + * Usually this is one of the instances that induced this snap line. + *

    + * @type {yfiles.graph.INode} + */ + firstNode:yfiles.graph.INode; + /** + * Gets the second node that is associated with this snap line. + *

    + * Usually this is one of the instances that induced this snap line. + *

    + * @type {yfiles.graph.INode} + */ + secondNode:yfiles.graph.INode; + static $class:yfiles.lang.Class; + } + /** + * A specialized {@link yfiles.input.OrthogonalSnapLine} that stores a {@link yfiles.input.PointBasedSnapLine#point} instance as additional information that can be used for the + * visualization. + * @class + * @extends {yfiles.input.OrthogonalSnapLine} + */ + export interface PointBasedSnapLine extends yfiles.input.OrthogonalSnapLine{} + export class PointBasedSnapLine { + /** + * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. + * @param point The point to assign to {@link #point}. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + * @param from The smaller value of the coordinate that delimits this snap line. + * @param to The greater value of the coordinate that delimits this snap line. + */ + constructor(point:yfiles.geometry.IPoint,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); + /** + * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. + * @param point The point to assign to {@link #point}. + * @param orientation The orientation of the snap line. This is one of {@link #HORIZONTAL} or + * {@link #VERTICAL}. + * @param snapType The type of the line that describes how other items will snap to this line. This is one of + * {@link #TOP}, {@link #BOTTOM}, {@link #LEFT}, + * {@link #RIGHT}, or {@link #CENTER}. + * @param resourceKey A resource key which determines the visual representation of this snap line. + * @param coordinates The coordinates of the center point of the snap line. + * @param tag A tag that is associated with this snap line - see {@link #tag} for a typical use of this value. + * @param weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight + * will be used. + */ + constructor(point:yfiles.geometry.IPoint,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); + /** + * Gets the point that is associated with this snap line. + *

    + * Usually this is the instance that induced this snap line. + *

    + * @type {yfiles.geometry.IPoint} + */ + point:yfiles.geometry.IPoint; + static $class:yfiles.lang.Class; + } + /** + * A specialized {@link yfiles.input.SnapLine} that is parallel to an edge segment and stores that edge. + *

    + * In addition to the line itself, this class has three special nape locations the represent the source, center and end + * location of the related edge segment. All snap lines of this type have the {@link yfiles.input.SnapLine#snapType} {@link yfiles.input.SnapLineSnapTypes#CENTER} and + * the {@link yfiles.input.SnapLine#resourceKey} {@link yfiles.input.SnapLine#SNAP_LINE_EDGE_SEGMENT_KEY}. + *

    + * @class + * @extends {yfiles.input.SnapLine} + */ + export interface EdgeSegmentSnapLine extends yfiles.input.SnapLine{} + export class EdgeSegmentSnapLine { + /** + * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. + * @param edge The edge to assign to {@link #edge}. + * @param from The first location that delimits this snap line. + * @param to The second location that delimits this snap line. + * @param segmentSource The location that represents the source of the related segment on this line. + * @param segmentTarget The location that represents the target of the related segment on this line. + * @param distance The distance of this snap line from its related edge segment. + * @param segmentIndex The segment index of the related edge segment. + * @param tag A tag that is associated with this snap line. + * @param weight The weight (importance) of this snap line. + */ + constructor(edge:yfiles.graph.IEdge,from:yfiles.geometry.Point,to:yfiles.geometry.Point,segmentSource:yfiles.geometry.Point,segmentTarget:yfiles.geometry.Point,distance:number,segmentIndex:number,tag:Object,weight:number); + /** + * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. + * @param edge The edge to assign to {@link #edge}. + * @param segmentSource The location that represents the source of the related segment on this line. In addition, this location is used as {@link #from} + * location. + * @param segmentTarget The location that represents the target of the related segment on this line. In addition, this location is used as {@link #to} + * location. + * @param distance The distance of this snap line from its related edge segment. + * @param segmentIndex The segment index of the related edge segment. + */ + constructor(edge:yfiles.graph.IEdge,segmentSource:yfiles.geometry.Point,segmentTarget:yfiles.geometry.Point,distance:number,segmentIndex:number); + /** + * Gets the edge that is associated with this snap line. + * @type {yfiles.graph.IEdge} + */ + edge:yfiles.graph.IEdge; + /** + * Gets the direction vector of this snap line. + * @type {yfiles.geometry.Point} + */ + direction:yfiles.geometry.Point; + /** + * Gets the distance of this snap line from its related edge segment. + * @type {number} + */ + distance:number; + /** + * Gets the segment index of the related edge segment. + * @type {number} + */ + segmentIndex:number; + /** + * Gets the location that represents the source of the related segment on this line. + * @type {yfiles.geometry.Point} + */ + segmentSource:yfiles.geometry.Point; + /** + * Gets the location that represents the target of the related segment on this line. + * @type {yfiles.geometry.Point} + */ + segmentTarget:yfiles.geometry.Point; + /** + * Gets and sets the location of the source marker of this snap line. + *

    + * If this is null, the location of the {@link yfiles.input.EdgeSegmentSnapLine#segmentSource} is marked instead. + *

    + * @type {yfiles.geometry.Point} + */ + sourceMarker:yfiles.geometry.Point; + /** + * Gets and sets the location of the target marker of this snap line. + *

    + * If this is null, the location of the {@link yfiles.input.EdgeSegmentSnapLine#segmentTarget} is marked instead. + *

    + * @type {yfiles.geometry.Point} + */ + targetMarker:yfiles.geometry.Point; + static $class:yfiles.lang.Class; + } + export enum SnapLineOrientation{ + /** + * Constant that describes a horizontal {@link yfiles.input.SnapLineOrientation orientation} of a snap line. + */ + HORIZONTAL, + /** + * Constant that describes a vertical {@link yfiles.input.SnapLineOrientation orientation} of a snap line. + */ + VERTICAL + } + export enum SnapLineSnapTypes{ + /** + * Describes snap lines to which nothing will snap. + */ + NONE, + /** + * Describes snap lines to which the top sides of rectangular elements will snap. + */ + TOP, + /** + * Describes snap lines to which the bottom sides of rectangular elements will snap. + */ + BOTTOM, + /** + * Describes snap lines to which the left sides of rectangular elements will snap. + */ + LEFT, + /** + * Describes snap lines to which the right sides of rectangular elements will snap. + */ + RIGHT, + /** + * Describes snap lines to which the center of elements will snap. + */ + CENTER, + /** + * Describes vertical snap lines + */ + VERTICAL, + /** + * Describes horizontal snap lines + */ + HORIZONTAL, + /** + * Describes snap lines to which all elements will snap at all sides + */ + ALL + } + /** + * A simple default implementation of an {@link yfiles.input.IPortCandidate}. + *

    + * Subclasses need to override {@link yfiles.input.DefaultPortCandidate#createInstance} if they don't {@link yfiles.input.DefaultPortCandidate#setInstance set} a port instance. + *

    + * @class + * @implements {yfiles.input.IPortCandidate} + */ + export interface DefaultPortCandidate extends Object,yfiles.input.IPortCandidate{} + export class DefaultPortCandidate { + /** + * Creates a candidate for the given owner that uses the graph's defaults for the port's style and a default parameter for + * the given model. + *

    + * The {@link yfiles.input.DefaultPortCandidate#locationParameter} is set to the parameter that best matches the {@link yfiles.geometry.Point#ORIGIN origin} for the given model. + *

    + * @param owner The owner. + * @param model The model. + */ + constructor(owner:yfiles.graph.IPortOwner,model:yfiles.graph.IPortLocationModel); + /** + * Creates a candidate for the given owner that uses the graph's defaults for the port's style and the given + * locationParameter. + *

    + * If no locationParameter is given, the used candidate has a fixed location at {@link yfiles.geometry.Point#ORIGIN} that does not + * depend on the owner. + *

    + * @param owner The owner. + * @param [locationParameter=null] The location. + * @param [validity=yfiles.input.PortCandidateValidity.VALID] The validity of the port candidate. + */ + constructor(owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,validity?:yfiles.input.PortCandidateValidity); + /** + * Creates a candidate for the given owner that uses the graph's defaults for the port's style and the given + * locationParameter. + *

    + * If no locationParameter is given, the used candidate has a fixed location at {@link yfiles.geometry.Point#ORIGIN} that does not + * depend on the owner. + *

    + * @param {Object} options The parameters to pass. + * @param options.owner The owner. + * @param [options.locationParameter=null] The location. + * @param [options.validity=yfiles.input.PortCandidateValidity.VALID] The validity of the port candidate. + */ + constructor(options:{owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,validity?:yfiles.input.PortCandidateValidity}); + /** + * Creates a candidate using the given port as the template. + * @param port The port to use. + */ + constructor(port:yfiles.graph.IPort); + /** + * Actually creates the {@link yfiles.graph.IPort} instance. + *

    + * This method is called in response to a call to {@link yfiles.input.DefaultPortCandidate#createPort} on this instance and the + * instances created by {@link yfiles.input.DefaultPortCandidate#getPortCandidateAt}. + *

    + * @param context The input mode context. + * @param graph The graph to add the port to. + * @param locationParameter The parameter to use. + * @param style The style to use. + * @param tag The tag to use. + * @returns The newly created port. + * @protected + */ + createInstance(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,locationParameter:yfiles.graph.IPortLocationModelParameter,style:yfiles.styles.IPortStyle,tag:Object):yfiles.graph.IPort; + /** + * This implementation will throw a {@link yfiles.lang.Exception} if the validity is {@link yfiles.input.PortCandidateValidity#DYNAMIC}. + *

    + * This implementation will delegate to the {@link yfiles.input.DefaultPortCandidate#createInstance} method. + *

    + * @param context + * @returns + */ + createPort(context:yfiles.input.IInputModeContext):yfiles.graph.IPort; + /** + * Returns a candidate that is derived from this instance that best fits the provided location. + *

    + * The returned implementation will finally call {@link yfiles.input.DefaultPortCandidate#createInstance} using the newly + * calculated {@link yfiles.input.DefaultPortCandidate#locationParameter}. + *

    + * @param context The input mode context for which a concrete candidate is queried. + * @param location The location for which a candidate should be returned. + * @returns A {@link } implementation whose {@link #validity} is guaranteed to be non-{@link #DYNAMIC}. + * @see yfiles.input.DefaultPortCandidate#validity + */ + getPortCandidateAt(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; + /** + * Sets the instance that will be returned by {@link yfiles.input.DefaultPortCandidate#port} and {@link yfiles.input.DefaultPortCandidate#createPort}. + * @param port A port that already exists in the graph or null. + */ + setInstance(port:yfiles.graph.IPort):void; + /** + * Determines whether this candidate is a valid one depending on the context it has been obtained from. + * @default yfiles.input.PortCandidateValidity.VALID + * @type {yfiles.input.PortCandidateValidity} + */ + validity:yfiles.input.PortCandidateValidity; + /** + * Gets or set the tag for this candidate. + *

    + * The interpretation of this value is implementation dependent and may be used for visual feedback or interactive + * behavior. + *

    + * @default null + * @type {Object} + */ + candidateTag:Object; + /** + * Gets or sets the port tag to create the port with. + * @default null + * @type {Object} + */ + portTag:Object; + /** + * Gets or sets the model parameter that will be used for the {@link yfiles.graph.IPort#locationParameter} if this candidate is chosen. + *

    + * The parameter which may not be null. + *

    + * @type {yfiles.graph.IPortLocationModelParameter} + */ + locationParameter:yfiles.graph.IPortLocationModelParameter; + /** + * The model that will be used by this instance to determine the new {@link yfiles.input.DefaultPortCandidate#locationParameter} if the {@link yfiles.input.DefaultPortCandidate#getPortCandidateAt} + * is called and the {@link yfiles.input.DefaultPortCandidate#validity} is set to {@link yfiles.input.PortCandidateValidity#DYNAMIC}. + * @default null + * @type {yfiles.graph.IPortLocationModel} + */ + model:yfiles.graph.IPortLocationModel; + /** + * Gets or sets the style to use for the newly created port. + * @default null + * @type {yfiles.styles.IPortStyle} + */ + style:yfiles.styles.IPortStyle; + /** + * Gets or sets the owner of the port to be created. + * @type {yfiles.graph.IPortOwner} + */ + owner:yfiles.graph.IPortOwner; + /** + * Returns the instance provided to the constructor or to the {@link yfiles.input.DefaultPortCandidate#setInstance setter}. + * @see yfiles.input.DefaultPortCandidate#createPort + * @type {yfiles.graph.IPort} + */ + port:yfiles.graph.IPort; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.input.IPositionHandler} implementation used in the context of {@link yfiles.graph.IGraph}s where there is a + * {@link yfiles.graph.IGraph#getChildren active hierarchy}. + *

    + * This implementation delegates through to a simpler implementation that only deals with the geometric relocation of the + * node. In addition to that it finds the {@link yfiles.input.IReparentNodeHandler} from the {@link yfiles.input.IInputModeContext} to + * detect {@link yfiles.input.IReparentNodeHandler#isReparentGesture a reparenting gesture} by the user. If such a gesture is recognized, the node can be moved freely until a {@link yfiles.input.IReparentNodeHandler#isValidParent valid new parent node} + * is found. This implementation then temporarily sets that node as a new visual parent and highlight the node. When the + * gesture is finished, the {@link yfiles.input.IReparentNodeHandler#reparent} method is called to perform the actual reparenting. + *

    + *

    + * In order to customize this default behavior, subclasses of this type can be {@link yfiles.graph.NodeDecorator#positionHandlerDecorator decorated} to the + * {@link yfiles.graph.INode}s in the graph. + *

    + * @class + * @implements {yfiles.input.IPositionHandler} + */ + export interface GroupingNodePositionHandler extends Object,yfiles.input.IPositionHandler{} + export class GroupingNodePositionHandler { + /** + * Initializes a new instance of the {@link yfiles.input.GroupingNodePositionHandler} class. + *

    + * This implementation uses the provided wrappedHandler to delegate the handling of the node's {@link yfiles.graph.INode#layout} changes. + *

    + * @param node The node to reposition. + * @param [wrappedHandler=null] The positionhandler to + */ + constructor(node:yfiles.graph.INode,wrappedHandler?:yfiles.input.IPositionHandler); + /** + * + * @param inputModeContext + * @param originalLocation + */ + cancelDrag(inputModeContext:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; + /** + * + * @param inputModeContext + * @param originalLocation + * @param newLocation + */ + dragFinished(inputModeContext:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; + /** + * + * @param inputModeContext + * @param originalLocation + * @param newLocation + */ + handleMove(inputModeContext:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; + /** + * + * @param inputModeContext + */ + initializeDrag(inputModeContext:yfiles.input.IInputModeContext):void; + /** + * Sets a temporary visual parent for the node during reparenting. + *

    + * This is used to show the grouping hierarchy level a node would end in after finishing the reparenting gesture. Override + * this method with an empty implementation to not change the z-order of the dragged node during the gesture. + *

    + * @param inputModeContext The current {@link }. + * @param node The node being reparented. + * @param parent The temporary parent for the node. + */ + setCurrentParent(inputModeContext:yfiles.input.IInputModeContext,node:yfiles.graph.INode,parent:yfiles.graph.INode):void; + /** + * Delegates to the wrapped {@link yfiles.input.IPositionHandler}'s {@link yfiles.input.IDragHandler#location location}. + * @type {yfiles.geometry.IPoint} + */ + location:yfiles.geometry.IPoint; + static $class:yfiles.lang.Class; + } + /** + * Callback interface for instances that can create bends for a given edge and graph. + *

    + * Implementations of this interface may be found in the {@link yfiles.graph.ILookup#lookup} of {@link yfiles.graph.IEdge} instances. This + * interface is used by {@link yfiles.input.GraphEditorInputMode} to create new bends for an edge as soon as the user performs the + * bend creation gesture. + *

    + * @see yfiles.input.GraphEditorInputMode#onCreateBendInputModeBendCreated + * @interface + */ + export interface IBendCreator extends Object{ + /** + * Creates a bend at the given graph for the given edge at the position supplied. + * @param context The context for which the bend should be created. + * @param graph The graph, the edge belongs to. + * @param edge The edge. + * @param location The preferred coordinates of the bend. + * @returns The index of the bend in the edges' {@link #bends} or -1 if no bend has been created. + * @abstract + */ + createBend(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,location:yfiles.geometry.Point):number; + } + var IBendCreator:{ + /** + * A static instance that does not create any bends. + * @const + * @static + * @type {yfiles.input.IBendCreator} + */ + NO_BENDS?:yfiles.input.IBendCreator; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface that can be used to find bends at specific locations in the canvas. + *

    + * This interface is usually provided through the {@link yfiles.graph.ILookup#lookup} of {@link yfiles.graph.IEdge} implementations. + *

    + * @interface + */ + export interface IBendSelectionTester extends Object{ + /** + * Returns the bends within the given rectangle. + * @param context The input mode context to use for querying the position. + * @param rectangle A rectangle in world coordinates. + * @returns The bends inside of rectangle. + * @abstract + */ + getBendsInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):yfiles.collections.IEnumerable; + /** + * Returns the bend at the given world coordinate position. + * @param context The input mode context to use for querying the position. + * @param location A location in world coordinates. + * @returns The bend at the position or null if there is no bend. + * @abstract + */ + getHitBend(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.graph.IBend; + } + var IBendSelectionTester:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An interface that checks for containment of an {@link yfiles.graph.IBend} in 2D coordinate space. + *

    + * This interface is used to determine which bends of edges that connect child nodes are moved when the parent node is + * moved. Therefore, special care has to be taken if you want to provide this interface in the node lookup for other purposes, as this + * can also affect implicit bend movement. + *

    + * @interface + */ + export interface IContainsBendTester extends Object{ + /** + * Determines whether the provided bend is deemed to lie within the shape this test is implemented for. + *

    + * This method is used to determine which bends of edges that connect child nodes are moved when the parent node is moved. + * If an implementation of {@link yfiles.input.IContainsBendTester} is present in the node's {@link yfiles.graph.ILookup#lookup}, this + * method is called with the bend and the bend will be moved together with the parent node iff true is returned. If no + * implemention is provided, only bends that lie inside the bounds of the parent node are moved. + *

    + * @param context The input mode context to use. + * @param bend The bend to test + * @returns true iff the bend is contained within the shape. + * @abstract + */ + contains(context:yfiles.input.IInputModeContext,bend:yfiles.graph.IBend):boolean; + } + var IContainsBendTester:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface that is used by the {@link yfiles.input.GraphSnapContext} for {@link yfiles.graph.INode nodes} to collect a number of + * {@link yfiles.input.SnapResult}s during the move/edit operation. + *

    + * This interface is queried from the {@link yfiles.graph.ILookup} of the + * {@link yfiles.graph.INode}s that are being moved during the edit. + *

    + * @see yfiles.input.GraphSnapContext + * @see yfiles.graph.NodeDecorator#nodeSnapResultProviderDecorator + * @interface + */ + export interface INodeSnapResultProvider extends Object{ + /** + * Called when a node is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for + * {@link yfiles.input.OrthogonalSnapLine}s to which this node can potentially snap. + * @param context The snap context which manages the snap lines and the settings. + * @param evt The event argument to obtain the necessary information from and {@link #addSnapResult add results to}. + * @param suggestedLayout The {@link #layout layout} of the node if the node would not snap. + * @param node The node that is being moved. + * @abstract + */ + collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.Rect,node:yfiles.graph.INode):void; + } + var INodeSnapResultProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface for classes that help during snapping of parts of edges. + *

    + * An implementation of this class is obtained from the lookup of the {@link yfiles.graph.IEdge}s which are being edited during an + * operation where {@link yfiles.input.GraphSnapContext graph snapping} is involved. + *

    + * @see yfiles.graph.EdgeDecorator#edgeSnapResultProviderDecorator + * @interface + */ + export interface IEdgeSnapResultProvider extends Object{ + /** + * Called to during the snapping operation whenever {@link yfiles.input.SnapContext#addCollectSnapResultsListener snap results are collected}. + *

    + * This method will be called for each collection of the results. + *

    + * @param context The context that is using this instance. + * @param evt The event argument to obtain the necessary information from and {@link #addSnapResult add results to}. + * @param movementInfos The movement infos that describe the edge. + * @param edge The edge for which the {@link }s should be {@link #addSnapResult collected}. + * @abstract + */ + collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,movementInfos:yfiles.collections.IListEnumerable,edge:yfiles.graph.IEdge):void; + } + var IEdgeSnapResultProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface that is used by the {@link yfiles.input.GraphSnapContext} for {@link yfiles.graph.IBend bends} to collect a number of + * {@link yfiles.input.SnapResult}s during the move/edit operation. + *

    + * This interface is queried from the {@link yfiles.graph.ILookup} of the + * {@link yfiles.graph.IBend}s that are being moved during the edit. + *

    + * @see yfiles.input.GraphSnapContext + * @see yfiles.graph.BendDecorator#bendSnapResultProviderDecorator + * @interface + */ + export interface IBendSnapResultProvider extends Object{ + /** + * Called when a node is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for + * {@link yfiles.input.OrthogonalSnapLine}s to which this bend can potentially snap. + * @param context The snap context which manages the snap lines and the settings. + * @param evt The event argument to obtain the necessary information from and {@link #addSnapResult add results to}. + * @param suggestedLocation The {@link #location location} of the bend if the bend would not snap. + * @param bend The bend that is being moved. + * @abstract + */ + collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLocation:yfiles.geometry.Point,bend:yfiles.graph.IBend):void; + } + var IBendSnapResultProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface that is used by the {@link yfiles.input.GraphSnapContext} for {@link yfiles.graph.IPort port} to collect a number of + * {@link yfiles.input.SnapResult}s during the move/edit operation. + *

    + * This interface is queried from the {@link yfiles.graph.ILookup} of the + * {@link yfiles.graph.IPort}s that are being moved during the edit. + *

    + * @see yfiles.input.GraphSnapContext + * @see yfiles.graph.PortDecorator#portSnapResultProviderDecorator + * @interface + */ + export interface IPortSnapResultProvider extends Object{ + /** + * Called when a node is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for + * {@link yfiles.input.OrthogonalSnapLine}s to which this bend can potentially snap. + * @param context The snap context which manages the snap lines and the settings. + * @param evt The event argument to obtain the necessary information from and {@link #addSnapResult add results to}. + * @param suggestedLocation The {@link #location location} of the bend if the bend would not snap. + * @param port The port that is being moved + * @abstract + */ + collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLocation:yfiles.geometry.Point,port:yfiles.graph.IPort):void; + } + var IPortSnapResultProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface for an implementation which evaluates a list of given {@link yfiles.input.SnapLine}s for a node which is resized and + * adds a set of {@link yfiles.input.SnapResult}s for sizes to which this node can potentially snap. + * @interface + */ + export interface INodeReshapeSnapResultProvider extends Object{ + /** + * Called when a node's handle is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for + * {@link yfiles.input.OrthogonalSnapLine}s or sizes to which this node can potentially snap during resizing. + * @param context The snap context which manages the snap lines and the settings. + * @param evt The event argument to obtain the context from and add the results to. + * @param node The node that is being reshaped. + * @param reshapeContext Carries information about the reshape operation. + * @abstract + */ + collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,reshapeContext:yfiles.input.ReshapeRectangleContext):void; + } + var INodeReshapeSnapResultProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Helper class that carries information about a reshape operation. + *

    + * This class is mainly intended for use by {@link yfiles.input.INodeReshapeSnapResultProvider#collectSnapResults}. + *

    + * @class + * @final + */ + export interface ReshapeRectangleContext extends Object{} + export class ReshapeRectangleContext { + /** + * Initializes a new instance of the {@link yfiles.input.ReshapeRectangleContext} class. + * @param initialBounds The initial bounds of the node. + * @param minimumSize The minimum size of the node. + * @param maximumSize The maximum size of the node. + * @param minimumEnclosedArea The minimum area the node's layout needs to encompass. + * @param reshapePosition The position of the reshape handle. + * @param topLeftChangeFactor The factor by which the top left corner of the node layout changes when the handle is dragged. + * @param bottomRightChangeFactor The factor by which the bottom right corner of the node layout changes when the handle is dragged. + * @param sizeChangeFactor The factor by which the size of the node layout changes when the handle is dragged. + */ + constructor(initialBounds:yfiles.geometry.Rect,minimumSize:yfiles.geometry.ISize,maximumSize:yfiles.geometry.ISize,minimumEnclosedArea:yfiles.geometry.IRectangle,reshapePosition:yfiles.input.HandlePositions,topLeftChangeFactor:yfiles.geometry.Point,bottomRightChangeFactor:yfiles.geometry.Point,sizeChangeFactor:yfiles.geometry.Size); + /** + * Gets the initial bounds of the node. + * @type {yfiles.geometry.Rect} + */ + initialBounds:yfiles.geometry.Rect; + /** + * Gets the minimum size of the node. + * @type {yfiles.geometry.ISize} + */ + minimumSize:yfiles.geometry.ISize; + /** + * Gets or sets the maximum size of the node. + * @type {yfiles.geometry.ISize} + */ + maximumSize:yfiles.geometry.ISize; + /** + * Gets minimum area the node's layout needs to encompass + * @type {yfiles.geometry.IRectangle} + */ + minimumEnclosedArea:yfiles.geometry.IRectangle; + /** + * Gets the position of the reshape handle. + * @type {yfiles.input.HandlePositions} + */ + reshapePosition:yfiles.input.HandlePositions; + /** + * Gets the factor by which the top left corner of the node layout changes when the handle is dragged. + * @type {yfiles.geometry.Point} + */ + topLeftChangeFactor:yfiles.geometry.Point; + /** + * Gets the factor by which the bottom right corner of the node layout changes when the handle is dragged. + * @type {yfiles.geometry.Point} + */ + bottomRightChangeFactor:yfiles.geometry.Point; + /** + * Gets the factor by which the size of the node layout changes when the handle is dragged. + * @type {yfiles.geometry.Size} + */ + sizeChangeFactor:yfiles.geometry.Size; + static $class:yfiles.lang.Class; + } + /** + * An interface for possible {@link yfiles.graph.IPort} candidates used by {@link yfiles.input.IPortCandidateProvider} and the like. + *

    + * Note that if an instance's {@link yfiles.input.IPortCandidate#validity} property is {@link yfiles.input.PortCandidateValidity#DYNAMIC} this instance {@link yfiles.input.IPortCandidate#getPortCandidateAt} + * method serves as a factory for the actual candidates. + *

    + * @see yfiles.input.IEdgeReconnectionPortCandidateProvider + * @see yfiles.input.IPortCandidateProvider + * @see yfiles.input.DefaultPortCandidate + * @interface + */ + export interface IPortCandidate extends Object{ + /** + * If the client decides to use this port candidate, this method will serve as a factory to create the instance. + *

    + * If this candidate wraps an existing port, it may return that {@link yfiles.input.IPortCandidate#port instance}. If this instance's {@link yfiles.input.IPortCandidate#validity} is {@link yfiles.input.PortCandidateValidity#DYNAMIC} + * this method may throw an {@link yfiles.lang.Exception}. + *

    + * @param context The input mode context for which the port will be created. Implementations can depend on it providing an {@link } + * instance in the lookup of the instance. + * @returns The port instance to use if this candidate has been chosen. This method may not return null. + * @throws {Stubs.Exceptions.NotSupportedError} If the {@link yfiles.input.IPortCandidate#validity} is {@link yfiles.input.PortCandidateValidity#DYNAMIC}. + * @see yfiles.input.IInputModeContext#graph + * @see yfiles.input.IPortCandidate#port + * @see yfiles.input.IPortCandidate#getPortCandidateAt + * @abstract + */ + createPort(context:yfiles.input.IInputModeContext):yfiles.graph.IPort; + /** + * Returns a candidate that is derived from this instance that best fits the provided location. + *

    + * This method needs to be called by clients if the {@link yfiles.input.IPortCandidate#validity} of this instance is {@link yfiles.input.PortCandidateValidity#DYNAMIC}. In + * that case calling this method must return an instance whose validity is not {@link yfiles.input.PortCandidateValidity#DYNAMIC}. + *

    + * @param context The input mode context for which a concrete candidate is queried. + * @param location The location for which a candidate should be returned. + * @returns A {@link } implementation whose {@link #validity} is guaranteed to be non-{@link #DYNAMIC}. + * @see yfiles.input.IPortCandidate#validity + * @abstract + */ + getPortCandidateAt(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; + /** + * Possibly yields a user defined tag for this candidate. + *

    + * The interpretation of this value is implementation dependent and may be used for visual feedback or interactive + * behavior. + *

    + * @abstract + * @type {Object} + */ + candidateTag:Object; + /** + * Determines whether this instance is a valid port candidate. + *

    + * Implementations of {@link yfiles.input.IPortCandidateProvider} may return sets of port candidates where some of them are marked + * as invalid e.g. in order to provide visual feedback. If the value is {@link yfiles.input.PortCandidateValidity#DYNAMIC}, method + * {@link yfiles.input.IPortCandidate#getPortCandidateAt} needs to be used to determine a concrete candidate instance. + *

    + * @see yfiles.input.IPortCandidate#getPortCandidateAt + * @abstract + * @type {yfiles.input.PortCandidateValidity} + */ + validity:yfiles.input.PortCandidateValidity; + /** + * Returns the model parameter that will be used for the {@link yfiles.graph.IPort#locationParameter} if this candidate is chosen. + *

    + * Note that the value of this property is undefined if this instance's {@link yfiles.input.IPortCandidate#validity} is {@link yfiles.input.PortCandidateValidity#DYNAMIC}. In + * this case, the parameter needs to be obtained via the {@link yfiles.input.IPortCandidate#getPortCandidateAt} instance. + *

    + * @abstract + * @type {yfiles.graph.IPortLocationModelParameter} + */ + locationParameter:yfiles.graph.IPortLocationModelParameter; + /** + * Returns the possible owner of the port to be created for this candidate. + * @abstract + * @type {yfiles.graph.IPortOwner} + */ + owner:yfiles.graph.IPortOwner; + /** + * Gets the port instance that is already live in the graph if this candidate wraps an existing port or null otherwise. + * @see yfiles.input.IPortCandidate#createPort + * @abstract + * @type {yfiles.graph.IPort} + */ + port:yfiles.graph.IPort; + } + var IPortCandidate:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + export enum PortCandidateValidity{ + /** + * The candidate is valid and can be used to connect an edge to. + */ + VALID, + /** + * The candidate should not be used to connect an edge to. + */ + INVALID, + /** + * The candidate cannot be used to create a port, instead {@link yfiles.input.IPortCandidate#getPortCandidateAt} needs to be called + * to obtain a {@link yfiles.input.IPortCandidate} that is either {@link yfiles.input.PortCandidateValidity#VALID} or + * {@link yfiles.input.PortCandidateValidity#INVALID}. + */ + DYNAMIC + } + /** + * This interface is used to provide {@link yfiles.input.IPortCandidate}s for a specific {@link yfiles.graph.IPortOwner}. + *

    + * It is used in the context of the items that will later become the owner ({@link yfiles.graph.IPortOwner}) of the ports obtained + * from the candidates. They are mainly used during edge creation where there is no real edge yet (only the dummy edge) and + * thus they need to use the opposite {@link yfiles.input.IPortCandidate} to understand the context. + *

    + *

    + * Implementations of this interface may be queried using the {@link yfiles.graph.ILookup#lookup} method of {@link yfiles.graph.IPortOwner} + * implementations like {@link yfiles.graph.INode}. + *

    + *

    + * Note that this interface is similar to the interface {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} in the sense + * that they will both provide {@link yfiles.input.IPortCandidate} instances in a certain query context. They are used in different + * query contexts, though. The two interfaces can come together in concrete implementations of + * {@link yfiles.input.IEdgeReconnectionPortCandidateProvider}: an edge could potentially be connected to ports at any given {@link yfiles.graph.IPortOwner} + * and thus the {@link yfiles.input.IPortCandidateProvider} interface can be queried from the respective {@link yfiles.graph.IPortOwner} + * that the edge will be reconnected to. + *

    + *

    Related demos:

    + *
      + *
    • Demo: PortCandidateProvider, demo.yfiles.input.portcandidateprovider
    • + *
    + * @see yfiles.graph.NodeDecorator#portCandidateProviderDecorator + * @interface + */ + export interface IPortCandidateProvider extends Object{ + /** + * Returns all port candidates that apply for the provided opposite port candidate. + *

    + * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. + *

    + * @param target The opposite port candidate. + * @param context The context for which the candidates should be provided. + * @returns An enumerable over all port candidates that are associated with the given opposite port. + * @abstract + */ + getSourcePortCandidates(context:yfiles.input.IInputModeContext,target:yfiles.input.IPortCandidate):yfiles.collections.IEnumerable; + /** + * Returns all source port candidates that belong to the context of this provider. + *

    + * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. + *

    + * @param context The context for which the candidates should be provided. + * @returns An enumerable over all source port candidates that are associated with the current context. + * @abstract + */ + getSourcePortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; + /** + * Returns all port candidates that apply for the provided opposite port candidate. + *

    + * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. + *

    + * @param context The context for which the candidates should be provided. + * @param source The opposite port candidate. + * @returns An enumerable over all port candidates that are associated with the given opposite port. + * @abstract + */ + getTargetPortCandidates(context:yfiles.input.IInputModeContext,source:yfiles.input.IPortCandidate):yfiles.collections.IEnumerable; + /** + * Returns all target port candidates that belong to the context of this provider. + *

    + * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. + *

    + * @param context The context for which the candidates should be provided. + * @returns An enumerable over all target port candidates that are associated with the current context. + * @abstract + */ + getTargetPortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; + } + var IPortCandidateProvider:{ + /** + * Creates a generic composite implementation for the {@link yfiles.input.IPortCandidateProvider} interface. + * @param providers The providers to create the composite from. + * @returns + * @static + */ + combine?(...providers:yfiles.input.IPortCandidateProvider[]):yfiles.input.IPortCandidateProvider; + /** + * Creates a generic composite implementation for the {@link yfiles.input.IPortCandidateProvider} interface. + * @param providers The providers to create the composite from. + * @returns + * @static + */ + combine?(providers:yfiles.collections.IEnumerable):yfiles.input.IPortCandidateProvider; + /** + * Creates an implementation of an {@link yfiles.input.IPortCandidateProvider} that provides only the given port candidates. + * @param candidates The port candidates the provider should provide. + * @returns A new {@link }. + * @static + */ + fromCandidates?(...candidates:yfiles.input.IPortCandidate[]):yfiles.input.PortCandidateProviderBase; + /** + * Creates an implementation of an {@link yfiles.input.IPortCandidateProvider} that provides only the given port candidates. + * @param candidates The port candidates the provider should provide. + * @returns A new {@link }. + * @static + */ + fromCandidates?(candidates:yfiles.collections.IEnumerable):yfiles.input.PortCandidateProviderBase; + /** + * Creates an implementation of the {@link yfiles.input.IPortCandidateProvider} interface that returns the ports that exist in the + * given {@link yfiles.graph.IPortOwner#ports}'s {@link yfiles.graph.IPortOwner} collection. + * @param owner The owner of the port collection. + * @returns + * @static + */ + fromExistingPorts?(owner:yfiles.graph.IPortOwner):yfiles.input.IPortCandidateProvider; + /** + * Creates a trivial implementation of an {@link yfiles.input.IPortCandidateProvider} that always returns exactly one candidate + * that is centered at the node's {@link yfiles.graph.INode#layout}. + * @param node The node to get the layout's center from. + * @returns + * @static + */ + fromNodeCenter?(node:yfiles.graph.INode):yfiles.input.PortCandidateProviderBase; + /** + * Creates a simple implementation of an {@link yfiles.input.IPortCandidateProvider} that always returns a candidate that uses the + * default {@link yfiles.graph.IPortDefaults#locationParameter} for the corresponding {@link yfiles.graph.IPortDefaults}. + * @param owner + * @returns + * @static + */ + fromPortDefaults?(owner:yfiles.graph.IPortOwner):yfiles.input.IPortCandidateProvider; + /** + * Creates an implementation of {@link yfiles.input.IPortCandidateProvider} that works for {@link yfiles.graph.IPortOwner} implementations + * that have {@link yfiles.styles.IShapeGeometry} instances in their lookup. + * @param owner The owner to receive the shape geometry from + * @param minimumSegmentLength the minimum length a segment needs to have in order to be used to add port candidates. + * @param ratios A number of double values that are interpreted as ratio values between 0.0 and 1.0. If none are given, the provider + * inserts a port candidate at the center of each straight line segment. + * @param addExistingPortsEnabled determines whether {@link #addExistingPorts existing ports should be added to the list of ports}. + * @returns + * @static + */ + fromShapeGeometry?(owner:yfiles.graph.IPortOwner,addExistingPortsEnabled:boolean,minimumSegmentLength:number,...ratios:number[]):yfiles.input.PortCandidateProviderBase; + /** + * Creates an implementation of {@link yfiles.input.IPortCandidateProvider} that works for {@link yfiles.graph.IPortOwner} implementations + * that have {@link yfiles.styles.IShapeGeometry} instances in their lookup. + * @param owner The owner to receive the shape geometry from + * @param ratios A number of double values that are interpreted as ratio values between 0.0 and 1.0. If none are given, the provider + * inserts a port candidate at the center of each straight line segment. + * @returns + * @static + */ + fromShapeGeometry?(owner:yfiles.graph.IPortOwner,...ratios:number[]):yfiles.input.PortCandidateProviderBase; + /** + * Creates a simple implementation of an {@link yfiles.input.IPortCandidateProvider} that returns unoccupied ports at a given + * entity. + * @param owner The owner to query the ports from. + * @returns + * @static + */ + fromUnoccupiedPorts?(owner:yfiles.graph.IPortOwner):yfiles.input.IPortCandidateProvider; + /** + * A generic implementation of the {@link yfiles.input.IPortCandidateProvider} interface that provides no candidates. + * @const + * @static + * @type {yfiles.input.IPortCandidateProvider} + */ + NO_CANDIDATES?:yfiles.input.IPortCandidateProvider; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * This interface can be used to query {@link yfiles.input.IPortCandidate}s for a specific existing {@link yfiles.graph.IEdge} + *

    + * As the name implies this is only used in the context of reconnecting existing edges. It is queried for existing edges to + * find out about possible alternative port candidates that given edge could connect to. It is used during gestures where + * an edge is reconnected to another port(candidate), i.e. when the source or target port handle of an edge is moved and + * the source or target port properties of the edge get set to the new {@link yfiles.input.IPortCandidate}s. + *

    + *

    + * Implementations of this interface can be queried using the {@link yfiles.graph.ILookup#lookup} method of an {@link yfiles.graph.IEdge} + * implementation. This interface provides alternative candidates for the {@link yfiles.graph.IEdge#sourcePort} or {@link yfiles.graph.IEdge#targetPort} of an edge. + *

    + *

    + * Note that this interface is similar to the interface {@link yfiles.input.IPortCandidateProvider} in the sense that they will + * both provide {@link yfiles.input.IPortCandidate} instances in a certain query context. They are used in different query + * contexts, though. The two interfaces can come together in concrete implementations of + * {@link yfiles.input.IEdgeReconnectionPortCandidateProvider}: an edge could potentially be connected to ports at any given {@link yfiles.graph.IPortOwner} + * and thus the {@link yfiles.input.IPortCandidateProvider} interface can be queried from the respective {@link yfiles.graph.IPortOwner} + * that the edge will be reconnected to. + *

    + *

    Related demos:

    + *
      + *
    • Demo: EdgePortCandidateProvider, demo.yfiles.input.edgeportcandidateprovider
    • + *
    + * @interface + */ + export interface IEdgeReconnectionPortCandidateProvider extends Object{ + /** + * Returns all source port candidates that may be used for the edge. + *

    + * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. + *

    + * @param context The context for which the candidates should be provided. + * @returns An enumerable over all source port candidates that are associated with the current context edge. + * @abstract + */ + getSourcePortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; + /** + * Returns all source port candidates that may be used for the edge. + *

    + * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. + *

    + * @param context The context for which the candidates should be provided. + * @returns An enumerable over all target port candidates that are associated with the current context edge. + * @abstract + */ + getTargetPortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; + } + var IEdgeReconnectionPortCandidateProvider:{ + /** + * Creates an implementation of the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} interface that returns the + * candidates provided by the source and target port's owner's {@link yfiles.input.IPortCandidateProvider} implementations or the + * existing edge's port, if no such provider is registered. + *

    + * This instance uses the lookup mechanism of the nodes to query the providers. + *

    + * @param edge + * @returns + * @static + */ + fromSourceAndTarget?(edge:yfiles.graph.IEdge):yfiles.input.IEdgeReconnectionPortCandidateProvider; + /** + * Creates an implementation of the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} interface that returns a union of + * all {@link yfiles.input.IPortCandidateProvider#getSourcePortCandidates source port candidates} or {@link yfiles.input.IPortCandidateProvider#getTargetPortCandidates target port candidates}, respectively, of nodes in the graph. + *

    + * This implementation can be used to allow for {@link yfiles.input.PortRelocationHandle relocating an edge's port} to any available source or target port in the + * graph. + *

    + * @const + * @static + * @type {yfiles.input.IEdgeReconnectionPortCandidateProvider} + */ + ALL_NODE_CANDIDATES?:yfiles.input.IEdgeReconnectionPortCandidateProvider; + /** + * Creates an implementation of the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} interface that returns a union of + * all {@link yfiles.input.IPortCandidateProvider#getSourcePortCandidates source port candidates} or {@link yfiles.input.IPortCandidateProvider#getTargetPortCandidates target port candidates}, respectively, of nodse and edges in the graph. + *

    + * This implementation can be used to allow for {@link yfiles.input.PortRelocationHandle relocating an edge's port} to any available source or target port in the + * graph. + *

    + * @const + * @static + * @type {yfiles.input.IEdgeReconnectionPortCandidateProvider} + */ + ALL_NODE_AND_EDGE_CANDIDATES?:yfiles.input.IEdgeReconnectionPortCandidateProvider; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface that can be used to find ports at specific locations in the canvas. + *

    + * This interface is mostly provided through the {@link yfiles.graph.ILookup#lookup} of {@link yfiles.graph.IPortOwner} implementations + * such as {@link yfiles.graph.INode}. + *

    + * @interface + */ + export interface IPortSelectionTester extends Object{ + /** + * Returns the port at the given world coordinate position or null if there is no such port. + * @param context The input mode context to use for querying the position. + * @param location The coordinates of the position in the world coordinate system. + * @returns The port at the position or null. + * @abstract + */ + getHitPort(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.graph.IPort; + /** + * Returns the ports for the given marquee rectangle. + * @param context The input mode context to use for querying the position. + * @param rectangle The marquee selection box in the world coordinate system. + * @returns An enumerable over the ports inside the marquee selection box. + * @abstract + */ + getPortsInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):yfiles.collections.IEnumerable; + } + var IPortSelectionTester:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface for implementations that yield insets for a given {@link yfiles.graph.INode}. + *

    + * Implementations of this interface will be queried from an {@link yfiles.graph.INode}'s {@link yfiles.graph.ILookup#lookup} method. The + * default implementation of a graph uses this instance by default to determine the insets of a group node. + *

    + * @interface + */ + export interface INodeInsetsProvider extends Object{ + /** + * Returns the insets for the given node. + * @param node The node to yield insets for. + * @returns The insets for the node. + * @abstract + */ + getInsets(node:yfiles.graph.INode):yfiles.geometry.Insets; + } + var INodeInsetsProvider:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; /** * Base interface for a command that can be executed. *

    * Implementations of this interface are provided by the library. Use {@link yfiles.input.ICommand#createCommand} to conveniently - * create your own implementation of this interface that can then be used with . + * create your own implementation of this interface that can then be used with AddCommandBinding. *

    * @see yfiles.input.ICommand#createCommand * @interface @@ -29710,40 +34347,40 @@ declare namespace system{ export interface ICommand extends Object{ /** * Determines whether this command be executed with respect to the given parameter and target. - * @param {Object} [parameter=null] The parameter or null - * @param {Object} [target=null] The target to execute the command on or null - * @returns {boolean} Whether {@link yfiles.input.ICommand#execute} can be called with the given parameter and target. + * @param [parameter=null] The parameter or null + * @param [target=null] The target to execute the command on or null + * @returns Whether {@link #execute} can be called with the given parameter and target. * @abstract */ canExecute(parameter?:Object,target?:Object):boolean; /** * Determines whether this command be executed with respect to the given parameter and target. * @param {Object} options The parameters to pass. - * @param {Object} [options.parameter=null] The parameter or null - * @param {Object} [options.target=null] The target to execute the command on or null - * @returns {boolean} Whether {@link yfiles.input.ICommand#execute} can be called with the given parameter and target. + * @param [options.parameter=null] The parameter or null + * @param [options.target=null] The target to execute the command on or null + * @returns Whether {@link #execute} can be called with the given parameter and target. * @abstract */ canExecute(options:{parameter?:Object,target?:Object}):boolean; /** * Executes this command with respect to the given parameter and target. - * @param {Object} [parameter=null] The parameter or null - * @param {Object} [target=null] The target to execute the command on or null + * @param [parameter=null] The parameter or null + * @param [target=null] The target to execute the command on or null * @abstract */ execute(parameter?:Object,target?:Object):void; /** * Executes this command with respect to the given parameter and target. * @param {Object} options The parameters to pass. - * @param {Object} [options.parameter=null] The parameter or null - * @param {Object} [options.target=null] The target to execute the command on or null + * @param [options.parameter=null] The parameter or null + * @param [options.target=null] The target to execute the command on or null * @abstract */ execute(options:{parameter?:Object,target?:Object}):void; /** * Adds the given listener for the CanExecuteChanged event that occurs when the result of a call to {@link yfiles.input.ICommand#canExecute} * may yield a different result. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ICommand#removeCanExecuteChangedListener * @abstract */ @@ -29751,7 +34388,7 @@ declare namespace system{ /** * Removes the given listener for the CanExecuteChanged event that occurs when the result of a call to {@link yfiles.input.ICommand#canExecute} * may yield a different result. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ICommand#addCanExecuteChangedListener * @abstract */ @@ -29764,13 +34401,13 @@ declare namespace system{ * The return value serves as a token and does not in itself contain any command handling logic. Use to associate command * handlers with the instance returned. *

    - * @param {string} [name=null] The optional name for the command. - * @returns {yfiles.input.ICommand} A new {@link yfiles.input.ICommand} instance. + * @param [name=null] The optional name for the command. + * @returns A new {@link } instance. * @static */ createCommand?(name?:string):yfiles.input.ICommand; /** - * Suggests a requery of the {@link Root.RH#canExecute executability} of all routed commands that are known to the system to adjust the UI to properly + * Suggests a requery of the {@link Root.UO#canExecute executability} of all routed commands that are known to the system to adjust the UI to properly * reflect the state. *

    * This will enqueue a delayed query into the event queue. @@ -29873,7 +34510,7 @@ declare namespace system{ */ EXPAND_GROUP?:yfiles.input.ICommand; /** - * A {@link yfiles.input.ICommand} that can be {@link yfiles.input.ICommand#execute executed} from within the {@link yfiles.view.GraphComponent} to {@link yfiles.input.NavigationInputMode#collapseGroup collapse} group nodes. + * A {@link yfiles.input.ICommand} that can be {@link yfiles.input.ICommand#execute executed} from within the {@link yfiles.view.GraphComponent} to collapse group nodes. *

    * If the parameter to this command is null, the currently selected group nodes are collapsed. If the parameter is an {@link yfiles.graph.INode} * instance, that group node will be collapsed. If the parameter is an {@link yfiles.collections.IEnumerable.} instance, then all group nodes in that enumeration @@ -30172,7 +34809,7 @@ declare namespace system{ * different amount. *

    *

    - * The default shortcut for this command is Page↑. + * The default shortcut for this command is Page Up. *

    * @see yfiles.input.ICommand#SCROLL_PAGE_DOWN * @see yfiles.input.ICommand#SCROLL_PAGE_LEFT @@ -30190,7 +34827,7 @@ declare namespace system{ * different amount. *

    *

    - * The default shortcut for this command is Page↓. + * The default shortcut for this command is Page Down. *

    * @see yfiles.input.ICommand#SCROLL_PAGE_UP * @see yfiles.input.ICommand#SCROLL_PAGE_LEFT @@ -30242,7 +34879,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to select the next item to the left. *

    *

    - * The default shortcut for this command is ←. + * The default shortcut for this command is Arrow Left. *

    * @see yfiles.input.ICommand#MOVE_UP * @see yfiles.input.ICommand#MOVE_DOWN @@ -30260,7 +34897,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to select the next item to the right. *

    *

    - * The default shortcut for this command is →. + * The default shortcut for this command is Arrow Right. *

    * @see yfiles.input.ICommand#MOVE_UP * @see yfiles.input.ICommand#MOVE_DOWN @@ -30278,7 +34915,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to select the next item above. *

    *

    - * The default shortcut for this command is ↑. + * The default shortcut for this command is Arrow Up. *

    * @see yfiles.input.ICommand#MOVE_DOWN * @see yfiles.input.ICommand#MOVE_LEFT @@ -30296,7 +34933,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to select the next item below. *

    *

    - * The default shortcut for this command is ↓. + * The default shortcut for this command is Arrow Down. *

    * @see yfiles.input.ICommand#MOVE_UP * @see yfiles.input.ICommand#MOVE_LEFT @@ -30314,7 +34951,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to select the parent node, if possible. *

    *

    - * The default shortcut for this command is Page↑. + * The default shortcut for this command is Page Up. *

    * @see yfiles.input.ICommand#MOVE_UP * @see yfiles.input.ICommand#MOVE_DOWN @@ -30332,7 +34969,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to select the first child node, if possible. *

    *

    - * The default shortcut for this command is Page↓. + * The default shortcut for this command is Page Down. *

    * @see yfiles.input.ICommand#MOVE_UP * @see yfiles.input.ICommand#MOVE_DOWN @@ -30350,7 +34987,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to focus the next item to the left. *

    *

    - * The default shortcut for this command is Ctrl+←. + * The default shortcut for this command is Ctrl+Arrow Left. *

    * @see yfiles.input.ICommand#MOVE_FOCUS_FORWARD * @see yfiles.input.ICommand#MOVE_FOCUS_UP @@ -30368,7 +35005,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to focus the next item to the right. *

    *

    - * The default shortcut for this command is Ctrl+→. + * The default shortcut for this command is Ctrl+Arrow Right. *

    * @see yfiles.input.ICommand#MOVE_FOCUS_BACK * @see yfiles.input.ICommand#MOVE_FOCUS_UP @@ -30386,7 +35023,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to focus the next item above. *

    *

    - * The default shortcut for this command is Ctrl+↑. + * The default shortcut for this command is Ctrl+Arrow Up. *

    * @see yfiles.input.ICommand#MOVE_FOCUS_BACK * @see yfiles.input.ICommand#MOVE_FOCUS_FORWARD @@ -30404,7 +35041,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to focus the next item below. *

    *

    - * The default shortcut for this command is Ctrl+↓. + * The default shortcut for this command is Ctrl+Arrow Down. *

    * @see yfiles.input.ICommand#MOVE_FOCUS_BACK * @see yfiles.input.ICommand#MOVE_FOCUS_FORWARD @@ -30422,7 +35059,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to focus the parent node, if possible. *

    *

    - * The default shortcut for this command is Ctrl+Page↑. + * The default shortcut for this command is Ctrl+Page Up. *

    * @see yfiles.input.ICommand#MOVE_FOCUS_BACK * @see yfiles.input.ICommand#MOVE_FOCUS_FORWARD @@ -30440,7 +35077,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to focus the first child node, if possible. *

    *

    - * The default shortcut for this command is Ctrl+Page↓. + * The default shortcut for this command is Ctrl+Page Down. *

    * @see yfiles.input.ICommand#MOVE_FOCUS_BACK * @see yfiles.input.ICommand#MOVE_FOCUS_FORWARD @@ -30458,7 +35095,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to extend the selection with the next item to the left. *

    *

    - * The default shortcut for this command is Shift+←. + * The default shortcut for this command is Shift+Arrow Left. *

    * @see yfiles.input.ICommand#EXTEND_SELECTION_UP * @see yfiles.input.ICommand#EXTEND_SELECTION_DOWN @@ -30476,7 +35113,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to extend the selection with the next item to the right. *

    *

    - * The default shortcut for this command is Shift+→. + * The default shortcut for this command is Shift+Arrow Right. *

    * @see yfiles.input.ICommand#EXTEND_SELECTION_UP * @see yfiles.input.ICommand#EXTEND_SELECTION_DOWN @@ -30494,7 +35131,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to extend the selection with the next item above. *

    *

    - * The default shortcut for this command is Shift+↑. + * The default shortcut for this command is Shift+Arrow Up. *

    * @see yfiles.input.ICommand#EXTEND_SELECTION_DOWN * @see yfiles.input.ICommand#EXTEND_SELECTION_LEFT @@ -30512,7 +35149,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to extend the selection with the next item below. *

    *

    - * The default shortcut for this command is Shift+↓. + * The default shortcut for this command is Shift+Arrow Down. *

    * @see yfiles.input.ICommand#EXTEND_SELECTION_UP * @see yfiles.input.ICommand#EXTEND_SELECTION_LEFT @@ -30530,7 +35167,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to extend the selection with the parent node, if possible. *

    *

    - * The default shortcut for this command is Shift+Page↑. + * The default shortcut for this command is Shift+Page Up. *

    * @see yfiles.input.ICommand#EXTEND_SELECTION_UP * @see yfiles.input.ICommand#EXTEND_SELECTION_DOWN @@ -30548,7 +35185,7 @@ declare namespace system{ * {@link yfiles.input.NavigationInputMode} handles this command to extend the selection with the first child node, if possible. *

    *

    - * The default shortcut for this command is Shift+Page↓. + * The default shortcut for this command is Shift+Page Down. *

    * @see yfiles.input.ICommand#EXTEND_SELECTION_UP * @see yfiles.input.ICommand#EXTEND_SELECTION_DOWN @@ -30563,7 +35200,7 @@ declare namespace system{ /** * A {@link yfiles.input.ICommand} to increase the zoom level. *

    - * {@link yfiles.view.CanvasComponent} handles this command to increase the zoom level by 20 %. A different factor from the default + * {@link yfiles.view.CanvasComponent} handles this command to increase the zoom level by 20%. A different factor from the default * 1.2 may be given as the command parameter. *

    *

    @@ -30579,7 +35216,7 @@ declare namespace system{ /** * A {@link yfiles.input.ICommand} to decrease the zoom level. *

    - * {@link yfiles.view.CanvasComponent} handles this command to decrease the zoom level by 20 %. A different factor from the default + * {@link yfiles.view.CanvasComponent} handles this command to decrease the zoom level by 20%. A different factor from the default * 1.2 may be given as the command parameter. *

    *

    @@ -30639,7 +35276,7 @@ declare namespace system{ */ ZOOM_TO_CURRENT_ITEM?:yfiles.input.ICommand; /** - * A {@link yfiles.input.ICommand} that invokes FitContent if executed. + * A {@link yfiles.input.ICommand} that invokes {@link yfiles.input.ICommand#FIT_CONTENT} if executed. * @const * @static * @type {yfiles.input.ICommand} @@ -30656,5118 +35293,526 @@ declare namespace system{ isInstance(o:Object):boolean; }; /** - * Event arguments for the {@link yfiles.input.GraphSnapContext#addCollectSnapLinesListener CollectSnapLines} event. - *

    - * Instances of this class are also passed to - * {@link yfiles.input.ISnapLineProvider#addSnapLines}. Implementations of that interface can use the following methods to add snap - * lines for specific purposes: - *

    - *
      - *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addFixedNodeSnapLine} – Adds an orthogonal snap line for nodes.
    • - *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addFixedSegmentSnapLine} – Adds an orthogonal snap line for edge segments and bends.
    • - *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addPortSnapLine} – Adds an orthogonal snap line for ports.
    • - *
    • {@link yfiles.input.CollectGraphSnapLinesEventArgs#addAdditionalSnapLine} – Adds an additional orthogonal snap line to which all element will snap.
    • - *
    - * @class yfiles.input.CollectGraphSnapLinesEventArgs - * @extends {yfiles.input.InputModeEventArgs} + * Utility class that holds implementation singletons and utility methods for simple event recognizers. + * @class + * @static */ - export interface CollectGraphSnapLinesEventArgs extends yfiles.input.InputModeEventArgs{} - export class CollectGraphSnapLinesEventArgs { + export interface EventRecognizers extends Object{} + export class EventRecognizers { /** - * Initializes a new instance of the {@link yfiles.input.CollectGraphSnapLinesEventArgs} class. - * @param {yfiles.input.IInputModeContext} context The context where the event is being used in. - * @param {yfiles.collections.ICollection.} fixedNodeSnapLines The fixed node snap lines collection to add to. - * @param {yfiles.collections.ICollection.} fixedSegmentSnapLines The fixed segment snap lines collection to add to. - * @param {yfiles.collections.ICollection.} fixedPortSnapLines The fixed port snap lines collection to add to. - * @param {yfiles.collections.ICollection.} additionalSnapLines The additional snap lines collection to add to. - * @constructor + * Creates an instance that is the logical 'and' combination of the provided recognizers. + * @param recognizers The recognizers to perform the logical operation on. + * @returns An instance that is the result of the logical 'and' operation of the provided instances. + * @static */ - constructor(context:yfiles.input.IInputModeContext,fixedNodeSnapLines:yfiles.collections.ICollection,fixedSegmentSnapLines:yfiles.collections.ICollection,fixedPortSnapLines:yfiles.collections.ICollection,additionalSnapLines:yfiles.collections.ICollection); + static createAndRecognizer(...recognizers:((eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean)[]):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Adds a snap line all elements will snap to. - * @param {yfiles.input.OrthogonalSnapLine} snapLine The snap line to add to the list of lines that all elements snap to by default. - * @see yfiles.input.GraphSnapContext#additionalSnapLines + * Creates an instance that is the logical 'or' combination of the provided recognizers. + * @param recognizers The recognizers to perform the logical operation on. + * @returns An instance that is the result of the logical 'or' operation of the provided instances. + * @static */ - addAdditionalSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; + static createOrRecognizer(...recognizers:((eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean)[]):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Adds a snap line for nodes. - * @param {yfiles.input.OrthogonalSnapLine} snapLine The snap line to add to the list of lines that nodes snap to by default. - * @see yfiles.input.GraphSnapContext#fixedNodeSnapLines + * Creates an event recognizer instance that yields the boolean inverse of the given event recognizer. + * @param recognizer The recognizer to invert. + * @returns An implementation that performs the logical negation for the argument. + * @static */ - addFixedNodeSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; + static inverse(recognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Adds a snap line for edge segments and bends. - * @param {yfiles.input.OrthogonalSnapLine} snapLine The snap line to add to the list of lines that segments snap to by default. - * @see yfiles.input.GraphSnapContext#fixedSegmentSnapLines - */ - addFixedSegmentSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; - /** - * Adds a snap line for ports. - * @param {yfiles.input.OrthogonalSnapLine} snapLine The snap line to add to the list of lines that ports snap to by default. - * @see yfiles.input.GraphSnapContext#fixedPortSnapLines - */ - addPortSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; - static $class:yfiles.lang.Class; - } - /** - * Abstract base class for {@link yfiles.input.GraphViewerInputMode} and {@link yfiles.input.GraphEditorInputMode}. - *

    - * This class is not supposed to and in fact cannot be extended from user code. It only exists to provide common - * functionality to the two aforementioned input modes. If customizations are wanted or needed both {@link yfiles.input.GraphViewerInputMode} - * and {@link yfiles.input.GraphEditorInputMode} can be extended. - *

    - * @class yfiles.input.GraphInputMode - * @extends {yfiles.input.MultiplexingInputMode} - */ - export interface GraphInputMode extends yfiles.input.MultiplexingInputMode{} - export class GraphInputMode { - /** - * Clears the selection on the current {@link yfiles.input.GraphInputMode#graphSelection}. - *

    - * This implementation may be overridden for customizations. All it does is call {@link yfiles.view.ISelectionModel.#clear}. - *

    - */ - clearSelection():void; - /** - * Actually performs the click on the given item. - *

    - * This will raise the {@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked}, {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked} - * (depending on the button), and {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} events. If - * either event is unhandled by all its event handlers the item will be {@link yfiles.input.GraphInputMode#setSelected selected} and {@link yfiles.input.GraphInputMode#setCurrentItem focused}. Before selection - * {@link yfiles.input.GraphInputMode#clearSelection the current selection will be cleared}, unless the {@link yfiles.input.GraphInputMode#multiSelectionRecognizer} is triggered. - *

    - * @param {yfiles.graph.IModelItem} item The item that has been clicked. - * @param {yfiles.input.ClickEventArgs} evt The original event arguments for the click. Setting its {@link yfiles.input.ClickEventArgs#handled} property to true will indicate that the click was handled. By - * default this happens when the clicked item is either selected or focused. - * @protected - */ - click(item:yfiles.graph.IModelItem,evt:yfiles.input.ClickEventArgs):void; - /** - * Clears the selection on click if {@link yfiles.view.CanvasComponent#lastMouseEvent the click} is not recognized by {@link yfiles.input.GraphInputMode#multiSelectionRecognizer}. - *

    - * This method is only called if no item has been hit and at least one item is currently selected. - *

    - *

    - * This will use the {@link yfiles.input.GraphInputMode#clearSelection} method to deselect all items. - *

    - * @param {yfiles.input.IInputModeContext} context The context where the click appeared - * @returns {boolean} Whether the selection has been cleared by this method. - * @protected - */ - clickClearSelection(context:yfiles.input.IInputModeContext):boolean; - /** - * Copies the currently selected elements to the clipboard. - */ - copy():void; - /** - * Factory method for the ClickInputMode property. - *

    - * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#clickInputMode} property. - *

    - *

    - * This implementation {@link yfiles.input.ClickInputMode#activeButtons activates} both {@link yfiles.view.MouseButtons#LEFT} and {@link yfiles.view.MouseButtons#RIGHT} - *

    - * @returns {yfiles.input.ClickInputMode} a new instance of ClickInputMode - * @protected - */ - createClickInputMode():yfiles.input.ClickInputMode; - /** - * Factory method for the {@link yfiles.input.GraphInputMode#contextMenuInputMode} property. - *

    - * This method will be called upon first access to the {@link yfiles.input.ContextMenuInputMode} property. - *

    - * @returns {yfiles.input.ContextMenuInputMode} a new instance of ContextMenuInputMode - * @protected - */ - createContextMenuInputMode():yfiles.input.ContextMenuInputMode; - /** - * Factory method for the {@link yfiles.input.GraphInputMode#itemHoverInputMode} property. - *

    - * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#itemHoverInputMode} property. - *

    - * @returns {yfiles.input.ItemHoverInputMode} a new instance of {@link yfiles.input.GraphInputMode#itemHoverInputMode} with the {@link yfiles.input.ItemHoverInputMode#hoverItems} property set to {@link yfiles.graph.GraphItemTypes#NONE}. - * @protected - */ - createItemHoverInputMode():yfiles.input.ItemHoverInputMode; - /** - * Factory method that creates the {@link yfiles.input.GraphInputMode#keyboardInputMode} instance. - * @returns {yfiles.input.KeyboardInputMode} - * @protected - */ - createKeyboardInputMode():yfiles.input.KeyboardInputMode; - /** - * Factory method for the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property. - *

    - * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property. - *

    - * @returns {yfiles.input.MarqueeSelectionInputMode} a new instance of MarqueeSelectionInputMode - * @protected - */ - createMarqueeSelectionInputMode():yfiles.input.MarqueeSelectionInputMode; - /** - * Factory method for the {@link yfiles.input.MouseHoverInputMode} property. - *

    - * This method will be called upon first access to the {@link yfiles.input.MouseHoverInputMode} property. - *

    - * @returns {yfiles.input.MouseHoverInputMode} a new instance of {@link yfiles.input.MouseHoverInputMode} - * @protected - */ - createMouseHoverInputMode():yfiles.input.MouseHoverInputMode; - /** - * Factory method for the {@link yfiles.input.GraphInputMode#moveViewportInputMode} property. - *

    - * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#moveViewportInputMode} property. - *

    - * @returns {yfiles.input.MoveViewportInputMode} a new instance of {@link yfiles.input.GraphInputMode#moveViewportInputMode} - * @protected - */ - createMoveViewportInputMode():yfiles.input.MoveViewportInputMode; - /** - * Factory method for the {@link yfiles.input.GraphInputMode#navigationInputMode} property. - *

    - * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#navigationInputMode} property. - *

    - * @returns {yfiles.input.NavigationInputMode} a new instance of NavigationInputMode - * @protected - */ - createNavigationInputMode():yfiles.input.NavigationInputMode; - /** - * Helper method that yields a suitably configured {@link yfiles.input.SelectionEventArgs.} using the {@link yfiles.input.GraphInputMode#graphSelection} for this input mode. - * @param {yfiles.input.IInputModeContext} context An input mode context that is available in the {@link yfiles.input.SelectionEventArgs.}. - *

    - * Can be null in which case a new context for this instance is created automatically. - *

    - * @returns {yfiles.input.SelectionEventArgs.} A selection event argument that is configured for this instance. - * @protected - */ - createSelectionEventArgs(context:yfiles.input.IInputModeContext):yfiles.input.SelectionEventArgs; - /** - * Factory method for the {@link yfiles.input.GraphInputMode#tapInputMode} property. - *

    - * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#tapInputMode} property. - *

    - * @returns {yfiles.input.TapInputMode} a new instance of TapInputMode - * @protected - */ - createTapInputMode():yfiles.input.TapInputMode; - /** - * Factory method for the WaitInputMode property. - *

    - * This method will be called upon first access to the {@link yfiles.input.GraphInputMode#waitInputMode} property. - *

    - * @returns {yfiles.input.WaitInputMode} a new instance of {@link yfiles.input.GraphInputMode#waitInputMode} - * @protected - */ - createWaitInputMode():yfiles.input.WaitInputMode; - /** - * Actually performs a double-click on the given item. - *

    - * This will raise the {@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} and {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked} - * (depending on the button), and {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} - * events. - *

    - * @param {yfiles.graph.IModelItem} item The item that has been double-clicked. - * @param {yfiles.input.ClickEventArgs} evt The original event arguments for the click. Setting its {@link yfiles.input.ClickEventArgs#handled} property to true will indicate that the double-click was - * handled and events on other items in the same location are no longer raised. - * @protected - */ - doubleClick(item:yfiles.graph.IModelItem,evt:yfiles.input.ClickEventArgs):void; - /** - * Actually performs a double-tap on the given item. - *

    - * This will raise the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event. - *

    - * @param {yfiles.graph.IModelItem} item The item that has been double-tapped. - * @param {yfiles.input.TapEventArgs} evt The original event arguments for the tap. Setting its {@link yfiles.input.TapEventArgs#handled} property to true will indicate that the double-tap was handled - * and events on other items in the same location are no longer raised. - * @protected - */ - doubleTap(item:yfiles.graph.IModelItem,evt:yfiles.input.TapEventArgs):void; - /** - * Used as a callback to find the items hit underneath a certain point. - *

    - * This implementation uses the {@link yfiles.input.GraphEditorInputMode#hitTester} to determine the hit items. - *

    - * @param {yfiles.input.IInputModeContext} context The context to use for to the {@link yfiles.input.IHitTestable#isHit} callback. - * @param {yfiles.geometry.Point} location The location to test. - * @param {Array.} tests An array of {@link yfiles.graph.GraphItemTypes} values that encode for which model items the hit test should be performed for - * prioritizing. - * @param {function(yfiles.graph.IModelItem): boolean} [filter=null] The predicate that can be used to filter the results. May be null. - * @returns {yfiles.collections.IEnumerable.} An enumerable over the items that have been found for the location. - */ - findItems(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,tests:yfiles.graph.GraphItemTypes[],filter?:(obj:yfiles.graph.IModelItem)=>boolean):yfiles.collections.IEnumerable; - /** - * Used as a callback to find the items hit underneath a certain point. - *

    - * This implementation uses the {@link yfiles.input.GraphEditorInputMode#hitTester} to determine the hit items. - *

    - * @param {yfiles.geometry.Point} location The location to test. - * @param {Array.} tests An array of {@link yfiles.graph.GraphItemTypes} values that encode for which model items the hit test should be performed for - * prioritizing. - * @param {function(yfiles.graph.IModelItem): boolean} [filter=null] The predicate that can be used to filter the results. May be null. - * @returns {yfiles.collections.IEnumerable.} An enumerable over the items that have been found for the location. - */ - findItems(location:yfiles.geometry.Point,tests:yfiles.graph.GraphItemTypes[],filter?:(obj:yfiles.graph.IModelItem)=>boolean):yfiles.collections.IEnumerable; - /** - * Called by {@link yfiles.input.GraphInputMode#click} to query the item for an {@link yfiles.input.IClickListener} in its {@link yfiles.graph.ILookup#lookup} - * and handle it appropriately. - *

    - * This method will query the {@link yfiles.input.IClickListener} and check whether it was {@link yfiles.input.IClickListener#getHitTestable hit} by the click, and if so, will invoke - * {@link yfiles.input.IClickListener#onClicked} and return true. - *

    - * @param {yfiles.input.IInputModeContext} context The context for the click. - * @param {yfiles.graph.IModelItem} item The item that has been clicked. - * @param {yfiles.geometry.Point} location The click location. - * @returns {boolean} Whether the action has been invoked and handling should be stopped. - * @see yfiles.input.IClickListener - * @see yfiles.input.GraphInputMode#click - * @protected - */ - handleClickListener(context:yfiles.input.IInputModeContext,item:yfiles.graph.IModelItem,location:yfiles.geometry.Point):boolean; - /** - * Selects the given elements in the editor inside the provided marquee-selection rectangle. - *

    - * This implementation iterates over the items and queries them for an implementation of {@link yfiles.input.IMarqueeTestable} - * using their {@link yfiles.graph.ILookup#lookup}. This instance will be used to determine whether the item should be selected. - *

    - *

    - * This method is, in the default implementation, only called with individual item types in items. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} marqueeRectangle The rectangle in world coordinates. - * @param {yfiles.collections.IEnumerable.} items The items to iterate over. - * @param {function(yfiles.graph.IModelItem): boolean} predicate The predicate that determines whether the provided item should be tested at all. May be null. - * @see yfiles.input.GraphInputMode#setSelected - * @see yfiles.input.GraphInputMode#marqueeSelect - * @protected - */ - marqueeSelect(context:yfiles.input.IInputModeContext,marqueeRectangle:yfiles.geometry.Rect,items:yfiles.collections.IEnumerable,predicate:(obj:yfiles.graph.IModelItem)=>boolean):void; - /** - * Performs marquee-selection with the given rectangle. - *

    - * This method is called internally when either the {@link yfiles.input.GraphInputMode#marqueeSelect} method is called or the user - * performs a marquee-selection gesture via {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode}. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} marqueeRectangle The selection rectangle. - * @protected - */ - marqueeSelect(context:yfiles.input.IInputModeContext,marqueeRectangle:yfiles.geometry.Rect):void; - /** - * Performs marquee-selection with the given rectangle. - *

    - * It delegates directly to the {@link yfiles.input.GraphInputMode#marqueeSelect} overload internally. - *

    - * @param {yfiles.geometry.Rect} marqueeRectangle The selection rectangle. - */ - marqueeSelect(marqueeRectangle:yfiles.geometry.Rect):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addCanvasClickedListener CanvasClicked} event. - *

    - * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ClickEventArgs#handled} property to true. - *

    - * @param {yfiles.input.ClickEventArgs} evt The {@link yfiles.input.ClickEventArgs} instance that contains the information about the click. - * @protected - */ - onCanvasClicked(evt:yfiles.input.ClickEventArgs):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#clickInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.ClickInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.ClickInputMode} newMode the new value - * @protected - */ - onClickInputModeChanged(oldMode:yfiles.input.ClickInputMode,newMode:yfiles.input.ClickInputMode):void; - /** - * Called when the {@link yfiles.input.ContextMenuInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.ContextMenuInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.ContextMenuInputMode} newMode the new value - * @protected - */ - onContextMenuInputModeChanged(oldMode:yfiles.input.ContextMenuInputMode,newMode:yfiles.input.ContextMenuInputMode):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event. - *

    - * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. - *

    - * @param {yfiles.input.ItemClickedEventArgs.} evt The {@link yfiles.input.ItemClickedEventArgs.} instance that contains the item that has been clicked. - * @protected - */ - onItemClicked(evt:yfiles.input.ItemClickedEventArgs):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event. - *

    - * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. - *

    - * @param {yfiles.input.ItemClickedEventArgs.} evt The {@link yfiles.input.ItemClickedEventArgs.} instance that contains the item that has been double clicked. - * @protected - */ - onItemDoubleClicked(evt:yfiles.input.ItemClickedEventArgs):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#itemHoverInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.ItemHoverInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.ItemHoverInputMode} newMode the new value - * @protected - */ - onItemHoverInputModeChanged(oldMode:yfiles.input.ItemHoverInputMode,newMode:yfiles.input.ItemHoverInputMode):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked} event. - *

    - * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. - *

    - * @param {yfiles.input.ItemClickedEventArgs.} evt The {@link yfiles.input.ItemClickedEventArgs.} instance that contains the item that has been clicked. - * @protected - */ - onItemLeftClicked(evt:yfiles.input.ItemClickedEventArgs):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} event. - *

    - * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. - *

    - * @param {yfiles.input.ItemClickedEventArgs.} evt The {@link yfiles.input.ItemClickedEventArgs.} instance that contains the item that has been double clicked. - * @protected - */ - onItemLeftDoubleClicked(evt:yfiles.input.ItemClickedEventArgs):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked} event. - *

    - * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. - *

    - * @param {yfiles.input.ItemClickedEventArgs.} evt The {@link yfiles.input.ItemClickedEventArgs.} instance that contains the item that has been clicked. - * @protected - */ - onItemRightClicked(evt:yfiles.input.ItemClickedEventArgs):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked} event. - *

    - * This implementation will stop the event propagation as soon as an event handler has set the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true. - *

    - * @param {yfiles.input.ItemClickedEventArgs.} evt The {@link yfiles.input.ItemClickedEventArgs.} instance that contains the item that has been double clicked. - * @protected - */ - onItemRightDoubleClicked(evt:yfiles.input.ItemClickedEventArgs):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#keyboardInputMode} changed. - * @param {yfiles.input.KeyboardInputMode} oldMode The old {@link yfiles.input.GraphInputMode#keyboardInputMode}. - * @param {yfiles.input.KeyboardInputMode} newMode The new {@link yfiles.input.GraphInputMode#keyboardInputMode}. - * @protected - */ - onKeyboardInputModeChanged(oldMode:yfiles.input.KeyboardInputMode,newMode:yfiles.input.KeyboardInputMode):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.MarqueeSelectionInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.MarqueeSelectionInputMode} newMode the new value - * @protected - */ - onMarqueeSelectionInputModeChanged(oldMode:yfiles.input.MarqueeSelectionInputMode,newMode:yfiles.input.MarqueeSelectionInputMode):void; - /** - * Called when the {@link yfiles.input.MouseHoverInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.MouseHoverInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.MouseHoverInputMode} newMode the new value - * @protected - */ - onMouseHoverInputModeChanged(oldMode:yfiles.input.MouseHoverInputMode,newMode:yfiles.input.MouseHoverInputMode):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#moveViewportInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.MoveViewportInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.MoveViewportInputMode} newMode the new value - * @protected - */ - onMoveViewportInputModeChanged(oldMode:yfiles.input.MoveViewportInputMode,newMode:yfiles.input.MoveViewportInputMode):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addMultiSelectionFinishedListener MultiSelectionFinished} event. - * @param {yfiles.input.SelectionEventArgs.} evt - * @protected - */ - onMultiSelectionFinished(evt:yfiles.input.SelectionEventArgs):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addMultiSelectionStartedListener MultiSelectionStarted} event. - * @param {yfiles.input.SelectionEventArgs.} evt - * @protected - */ - onMultiSelectionStarted(evt:yfiles.input.SelectionEventArgs):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#navigationInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.NavigationInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.NavigationInputMode} newMode the new value - * @protected - */ - onNavigationInputModeChanged(oldMode:yfiles.input.NavigationInputMode,newMode:yfiles.input.NavigationInputMode):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addPopulateItemContextMenuListener PopulateItemContextMenu} event. - * @param {yfiles.input.PopulateItemContextMenuEventArgs.} evt The {@link yfiles.input.PopulateItemContextMenuEventArgs.} instance containing the event data. - * @protected - */ - onPopulateItemContextMenu(evt:yfiles.input.PopulateItemContextMenuEventArgs):void; - /** - * Raises the {@link yfiles.input.GraphInputMode#addQueryItemToolTipListener QueryItemToolTip} event. - * @param {yfiles.input.QueryItemToolTipEventArgs.} evt The {@link yfiles.input.QueryItemToolTipEventArgs.} instance containing the event data. - * @protected - */ - onQueryItemToolTip(evt:yfiles.input.QueryItemToolTipEventArgs):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#tapInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.TapInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.TapInputMode} newMode the new value - * @protected - */ - onTapInputModeChanged(oldMode:yfiles.input.TapInputMode,newMode:yfiles.input.TapInputMode):void; - /** - * Called when the {@link yfiles.input.GraphInputMode#waitInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.WaitInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.WaitInputMode} newMode the new value - * @protected - */ - onWaitInputModeChanged(oldMode:yfiles.input.WaitInputMode,newMode:yfiles.input.WaitInputMode):void; - /** - * Clears the current selection and selects all nodes and bends in this graph. - *

    - * By default, this method will be called in response to a Ctrl+A key press recognized by {@link yfiles.input.GraphInputMode#keyboardInputMode}. - *

    - * @see yfiles.input.GraphInputMode#clearSelection - * @see yfiles.input.GraphInputMode#setSelected - * @see yfiles.input.ICommand#SELECT_ALL - * @see yfiles.input.GraphInputMode#selectableItems - * @see yfiles.input.GraphInputMode#ignoreVoidStyles - */ - selectAll():void; - /** - * Callback that is used by this instance to set the current item on the {@link yfiles.input.NavigationInputMode#setCurrentItem NavigationInputMode} - * @param {yfiles.graph.IModelItem} item The item to set as the new "current" item. - */ - setCurrentItem(item:yfiles.graph.IModelItem):void; - /** - * Uses the {@link yfiles.input.GraphInputMode#graphSelection} to select the given item. - * @param {yfiles.graph.IModelItem} item The item to set the selection state on. - * @param {boolean} selected The new selection state. - */ - setSelected(item:yfiles.graph.IModelItem,selected:boolean):void; - /** - * Callback predicate method that is used to determine whether the given item can be {@link yfiles.input.GraphInputMode#click clicked}. - *

    - * This implementation uses the {@link yfiles.input.GraphInputMode#clickableItems} value to determine whether the item should be clicked. Note that this method will not be - * called for items that don't match {@link yfiles.input.GraphInputMode#clickableItems} for performance reasons. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether the item should be {@link yfiles.input.GraphInputMode#click clicked} in response to a detected mouse click. - * @protected - */ - shouldClick(item:yfiles.graph.IModelItem):boolean; - /** - * Callback predicate method that is used to determine whether the given item should be selected when - * {@link yfiles.input.GraphInputMode#click clicked with the primary mouse button}. - *

    - * This implementation uses the {@link yfiles.input.GraphInputMode#clickSelectableItems} value to determine whether the item should be selected. Note that this method will not be - * called for items that don't match {@link yfiles.input.GraphInputMode#clickSelectableItems} and {@link yfiles.input.GraphInputMode#selectableItems} for performance reasons. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether the item should be selected in response to a detected mouse click with the primary button. - * @protected - */ - shouldClickSelect(item:yfiles.graph.IModelItem):boolean; - /** - * Callback predicate method that is used to determine whether the given item can be {@link yfiles.input.GraphInputMode#doubleClick double clicked}. - *

    - * This implementation uses the {@link yfiles.input.GraphInputMode#shouldClick} method to determine whether the item should be - * double clicked. Note that this method will not be called for items that don't match {@link yfiles.input.GraphInputMode#clickableItems} for performance reasons. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether the item should be {@link yfiles.input.GraphInputMode#doubleClick double clicked} in response to a detected mouse click. - * @protected - */ - shouldDoubleClick(item:yfiles.graph.IModelItem):boolean; - /** - * Callback that determines whether the provided {@link yfiles.graph.IModelItem} should be {@link yfiles.input.GraphInputMode#setCurrentItem set to the current item}. - *

    - * This implementation uses the {@link yfiles.input.GraphInputMode#focusableItems} property to determine whether the item can be set to the current item. It also honors the - * {@link yfiles.input.GraphInputMode#ignoreVoidStyles} property. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether to set the item as the current item. - * @protected - */ - shouldFocus(item:yfiles.graph.IModelItem):boolean; - /** - * Callback method that is used to determine which of the built-in {@link yfiles.input.ICommand}s to install. - *

    - * This implementation unconditionally returns true, subclasses may override this method to adjust the behavior. - *

    - * @param {yfiles.input.ICommand} command The command to install. - * @returns {boolean} Whether to install this command. - * @protected - */ - shouldInstallCommand(command:yfiles.input.ICommand):boolean; - /** - * Callback method used by {@link yfiles.input.GraphInputMode#marqueeSelect} that takes {@link yfiles.input.GraphInputMode#marqueeSelectableItems} and {@link yfiles.input.GraphInputMode#shouldSelectItem} - * into account. - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether to possibly marquee select the item. - * @protected - */ - shouldMarqueeSelect(item:yfiles.graph.IModelItem):boolean; - /** - * Determines whether for the given item a context menu should be queried. - *

    - * This implementation uses the {@link yfiles.input.GraphInputMode#contextMenuItems} property to determine whether a context menu should be queried for the given item. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether to raise a {@link yfiles.input.GraphInputMode#addPopulateItemContextMenuListener PopulateItemContextMenu} event for - * the given item. - * @protected - */ - shouldPopulateContextMenu(item:yfiles.graph.IModelItem):boolean; - /** - * Determines whether for the given item a tool tip should be queried. - *

    - * This implementation uses the {@link yfiles.input.GraphInputMode#toolTipItems} property to determine whether tool tip should be queried for the given item. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether to raise a {@link yfiles.input.GraphInputMode#addQueryItemToolTipListener QueryItemToolTip} event for the - * given item. - * @protected - */ - shouldQueryToolTip(item:yfiles.graph.IModelItem):boolean; - /** - * Callback predicate method that is used as a broad classification whether an item can generally be selected. - *

    - * This implementation uses and honors the {@link yfiles.input.GraphInputMode#selectableItems}, {@link yfiles.input.GraphInputMode#ignoreVoidStyles} and {@link yfiles.input.GraphInputMode#selectablePredicate} properties. This method is by default also called by {@link yfiles.input.GraphInputMode#shouldClickSelect} - * and {@link yfiles.input.GraphInputMode#shouldMarqueeSelect}, so turning selection off here also turns it off in other places. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} true if the item is selectable in general, false if not. - * @protected - */ - shouldSelectItem(item:yfiles.graph.IModelItem):boolean; - /** - * Actually performs the tap on the given item. - *

    - * This will raise the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event. If the event - * is unhandled by all its event handlers the item will be {@link yfiles.input.GraphInputMode#setSelected selected} and {@link yfiles.input.GraphInputMode#setCurrentItem focused}. Before selection - * {@link yfiles.input.GraphInputMode#clearSelection the current selection will be cleared}. - *

    - * @param {yfiles.graph.IModelItem} item The item that has been tapped. - * @param {yfiles.input.TapEventArgs} evt The original event arguments for the tap. Setting its {@link yfiles.input.TapEventArgs#handled} property to true will indicate that the tap was handled. By - * default this happens when the tapped item is either selected or focused. - * @protected - */ - tap(item:yfiles.graph.IModelItem,evt:yfiles.input.TapEventArgs):void; - /** - * Gets the graph instance from the {@link yfiles.input.MultiplexingInputMode#inputModeContext}. - * @type {yfiles.graph.IGraph} - */ - graph:yfiles.graph.IGraph; - /** - * Gets the graph selection from the {@link yfiles.input.MultiplexingInputMode#inputModeContext}. - * @type {yfiles.view.IGraphSelection} - */ - graphSelection:yfiles.view.IGraphSelection; - /** - * Gets or sets the order of the types of items that should be used to determine what item has been clicked or tapped. - *

    - * Change this field to adjust which items will be {@link yfiles.input.GraphInputMode#setSelected selected} if there are multiple items at a given location. The default - * order is - *

    - *
      - *
    • {@link yfiles.graph.GraphItemTypes#BEND}
    • - *
    • {@link yfiles.graph.GraphItemTypes#EDGE_LABEL}
    • - *
    • {@link yfiles.graph.GraphItemTypes#EDGE}
    • - *
    • {@link yfiles.graph.GraphItemTypes#NODE}
    • - *
    • {@link yfiles.graph.GraphItemTypes#NODE_LABEL}
    • - *
    • {@link yfiles.graph.GraphItemTypes#PORT}
    • - *
    - * @see yfiles.input.GraphInputMode#clickSelectableItems - * @see yfiles.input.GraphInputMode#selectableItems - * @see yfiles.input.GraphInputMode#findItems - * @type {Array.} - */ - clickHitTestOrder:yfiles.graph.GraphItemTypes[]; - /** - * Gets or sets the order of the types of items that should be used to determine what item has been double-clicked or - * double-tapped. - *

    - * Change this field to adjust which items will be considered when {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener double-clicked} if there are multiple items at a given - * location. The default order is - *

    - *
      - *
    • {@link yfiles.graph.GraphItemTypes#EDGE_LABEL}
    • - *
    • {@link yfiles.graph.GraphItemTypes#NODE_LABEL}
    • - *
    • {@link yfiles.graph.GraphItemTypes#BEND}
    • - *
    • {@link yfiles.graph.GraphItemTypes#EDGE}
    • - *
    • {@link yfiles.graph.GraphItemTypes#NODE}
    • - *
    • {@link yfiles.graph.GraphItemTypes#PORT}
    • - *
    - * @see yfiles.input.GraphInputMode#clickSelectableItems - * @see yfiles.input.GraphInputMode#selectableItems - * @see yfiles.input.GraphInputMode#findItems - * @type {Array.} - */ - doubleClickHitTestOrder:yfiles.graph.GraphItemTypes[]; - /** - * Gets or sets the event recognizer that will be queried to decide if a click should select the item that is currently - * visible under the mouse cursor, without giving more important items higher priority. - *

    - * If the recognizer determines that the user wanted to use the detail clicking behavior, the {@link yfiles.input.GraphEditorInputMode#hitTester} will be queried for the - * given item and the first item that is returned will be considered a hit. Otherwise all hit items are examined and are - * prioritized by item type. E.g. by default clicking on a node will select the node, even if there is a node label which - * has been clicked at the same point. If detail selection is recognized, the label will be selected. - *

    - *

    - * The default is {@link yfiles.input.KeyEventRecognizers#SHIFT_PRESSED}. - *

    + * A callback that will always return true; + * @const + * @static * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - detailSelectionRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + static ALWAYS:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Gets or sets the event recognizer that will be queried to decide if a click should cycle through all the items that are - * currently under the mouse cursor. - *

    - * If the recognizer determines that the user wanted to use the cyclic click selection behavior, the {@link yfiles.input.GraphEditorInputMode#hitTester} will be queried for - * the given item and previously reported items will be ignored. E.g. if multiple nodes are overlapping each other, - * clicking on them will report the first item for the first click, the second one for the second click and so on. If all - * elements have been reported previously, the first one is going to be reported again. If the order of the elements at the - * clicked location changes, the cyclic selection is restarted anew. - *

    - *

    - * The default is {@link yfiles.input.KeyEventRecognizers#ALT_PRESSED}. - *

    + * A callback that will always return false; + * @const + * @static * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - cyclicSelectionRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + static NEVER:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + static $class:yfiles.lang.Class; + } + /** + * Utility class with simple event recognizers that work on {@link yfiles.view.KeyEventArgs}. + * @class + * @static + */ + export interface KeyEventRecognizers extends Object{} + export class KeyEventRecognizers { /** - * Gets or sets the event recognizer that will be queried to decide if a click is deemed a multi selection gesture. - *

    - * The default is a combination of {@link yfiles.input.KeyEventRecognizers#CONTROL_PRESSED} or - * {@link yfiles.input.KeyEventRecognizers#META_PRESSED}. - *

    + * Creates an event recognizer for a given key and type using a given set of modifiers. + * @param type The type of the event. + * @param value The key that is subject of the event. + * @param [modifiers=yfiles.view.ModifierKeys.NONE] The state of the modifiers that must be set. This is {@link #NONE} if not set. + * @returns + * @static + */ + static create(type:yfiles.view.KeyEventType,value:yfiles.view.Key,modifiers?:yfiles.view.ModifierKeys):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * Creates an event recognizer that matches key presses. + * @param key The key to create the recognizer for. + * @param [modifiers=yfiles.view.ModifierKeys.NONE] The modifier keys that should be pressed for the recognizer + * @returns An event recognizer that uses the gesture. + * @static + */ + static createKeyPress(key:yfiles.view.Key,modifiers?:yfiles.view.ModifierKeys):(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that recognizes when escape has been typed. + * @const + * @static * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - multiSelectionRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + static ESCAPE_TYPED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Determines which types of items should be reported through the {@link yfiles.input.GraphInputMode#addItemClickedListener item click events}. - *

    - * This also affects taps. - *

    - *

    - * The default is {@link yfiles.graph.GraphItemTypes#ALL}. - *

    - * @see yfiles.input.GraphInputMode#shouldClick - * @type {yfiles.graph.GraphItemTypes} - */ - clickableItems:yfiles.graph.GraphItemTypes; - /** - * Gets or sets the items that can be given focus via the {@link yfiles.input.GraphInputMode#setCurrentItem} method. - *

    - * The focusable items. The default is {@link yfiles.graph.GraphItemTypes#NODE} - *

    - * @default 1 - * @type {yfiles.graph.GraphItemTypes} - */ - focusableItems:yfiles.graph.GraphItemTypes; - /** - * Determines which types of items should be selectable at all. - *

    - * The default is {@link yfiles.graph.GraphItemTypes#ALL}. - *

    - * @see yfiles.input.GraphInputMode#setSelected - * @type {yfiles.graph.GraphItemTypes} - */ - selectableItems:yfiles.graph.GraphItemTypes; - /** - * Gets or sets a predicate that is queried to determine whether a given {@link yfiles.graph.IModelItem} is selectable. - *

    - * This allows to further restrict which items are selectable, compared to {@link yfiles.input.GraphInputMode#selectableItems}. If this property is set to null the effect is - * the same as a predicate that always returns true. - *

    - * @type {function(yfiles.graph.IModelItem): boolean} - */ - selectablePredicate:(obj:yfiles.graph.IModelItem)=>boolean; - /** - * Determines which types of items should be selectable by mouse clicks. - *

    - * The default is {@link yfiles.graph.GraphItemTypes#ALL}. - *

    - * @see yfiles.input.GraphInputMode#shouldClickSelect - * @see yfiles.input.GraphInputMode#setSelected - * @type {yfiles.graph.GraphItemTypes} - */ - clickSelectableItems:yfiles.graph.GraphItemTypes; - /** - * Determines which types of items should be selected during {@link yfiles.input.GraphInputMode#marqueeSelect marquee selections}. - *

    - * The default is a combination of {@link yfiles.graph.GraphItemTypes#NODE}, {@link yfiles.graph.GraphItemTypes#EDGE}, and - * {@link yfiles.graph.GraphItemTypes#BEND}. - *

    - * @see yfiles.input.GraphInputMode#shouldMarqueeSelect - * @see yfiles.input.GraphInputMode#setSelected - * @type {yfiles.graph.GraphItemTypes} - */ - marqueeSelectableItems:yfiles.graph.GraphItemTypes; - /** - * Gets or sets a value indicating whether void styles ({@link yfiles.styles.VoidNodeStyle}, {@link yfiles.styles.VoidEdgeStyle}, - * {@link yfiles.styles.VoidLabelStyle}, and {@link yfiles.styles.VoidPortStyle}) should be ignored when selecting or focusing items. - * @type {boolean} - */ - ignoreVoidStyles:boolean; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#contextMenuInputMode} property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createContextMenuInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onContextMenuInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 60. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.ContextMenuInputMode} - */ - contextMenuInputMode:yfiles.input.ContextMenuInputMode; - /** - * Gets or sets the types of items a context menu should be queried for. - *

    - * The items for which a context menu should be {@link yfiles.input.GraphInputMode#addPopulateItemContextMenuListener queried}. The default value is - * {@link yfiles.graph.GraphItemTypes#NODE}|{@link yfiles.graph.GraphItemTypes#EDGE}. - *

    - * @default 1 | 2 - * @type {yfiles.graph.GraphItemTypes} - */ - contextMenuItems:yfiles.graph.GraphItemTypes; - /** - * Adds the given listener for the PopulateItemContextMenu event that occurs when the {@link yfiles.input.ContextMenuInputMode context menu} over an item is about to - * be opened to determine the contents of the Menu. - *

    - * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#contextMenuItems} type. - *

    - * @param {function(Object, yfiles.input.PopulateItemContextMenuEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#removePopulateItemContextMenuListener - */ - addPopulateItemContextMenuListener(listener:(sender:Object,evt:yfiles.input.PopulateItemContextMenuEventArgs)=>void):void; - /** - * Removes the given listener for the PopulateItemContextMenu event that occurs when the {@link yfiles.input.ContextMenuInputMode context menu} over an item is about - * to be opened to determine the contents of the Menu. - *

    - * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#contextMenuItems} type. - *

    - * @param {function(Object, yfiles.input.PopulateItemContextMenuEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#addPopulateItemContextMenuListener - */ - removePopulateItemContextMenuListener(listener:(sender:Object,evt:yfiles.input.PopulateItemContextMenuEventArgs)=>void):void; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#mouseHoverInputMode} property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createMouseHoverInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onMouseHoverInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 100. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.MouseHoverInputMode} - */ - mouseHoverInputMode:yfiles.input.MouseHoverInputMode; - /** - * Gets the types of the items that should be queried a tool tip for. - *

    - * The items for which a tool tip text should be {@link yfiles.input.GraphInputMode#addQueryItemToolTipListener queried}. The default value is - * {@link yfiles.graph.GraphItemTypes#NODE}|{@link yfiles.graph.GraphItemTypes#EDGE}|{@link yfiles.graph.GraphItemTypes#LABEL}|{@link yfiles.graph.GraphItemTypes#PORT}|. - *

    - * @default 1 | 2 | 12 | 16 - * @type {yfiles.graph.GraphItemTypes} - */ - toolTipItems:yfiles.graph.GraphItemTypes; - /** - * Adds the given listener for the QueryItemToolTip event that occurs when the mouse is {@link yfiles.input.MouseHoverInputMode hovering} over an item to determine - * the tool tip to display. - *

    - * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#toolTipItems} type. - *

    - * @param {function(Object, yfiles.input.QueryItemToolTipEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#removeQueryItemToolTipListener - */ - addQueryItemToolTipListener(listener:(sender:Object,evt:yfiles.input.QueryItemToolTipEventArgs)=>void):void; - /** - * Removes the given listener for the QueryItemToolTip event that occurs when the mouse is {@link yfiles.input.MouseHoverInputMode hovering} over an item to - * determine the tool tip to display. - *

    - * This method will only be called for items that match the {@link yfiles.input.GraphInputMode#toolTipItems} type. - *

    - * @param {function(Object, yfiles.input.QueryItemToolTipEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#addQueryItemToolTipListener - */ - removeQueryItemToolTipListener(listener:(sender:Object,evt:yfiles.input.QueryItemToolTipEventArgs)=>void):void; - /** - * Gets or sets the {@link yfiles.input.ClickInputMode} that is used by this instance to determine clicks. - *

    - * Whenever the mode detects a {@link yfiles.input.ClickInputMode#addClickedListener click}, this mode will use the {@link yfiles.input.IHitTester.} from the {@link yfiles.input.MultiplexingInputMode#inputModeContext} to determine the items being hit. If they match the - * {@link yfiles.input.GraphInputMode#clickableItems} type, the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will be triggered. If - * they {@link yfiles.input.GraphInputMode#shouldFocus}, the item will be {@link yfiles.input.GraphInputMode#setCurrentItem set as the current item}. - *

    - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createClickInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onClickInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 10. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @see yfiles.input.GraphInputMode#onItemClicked - * @type {yfiles.input.ClickInputMode} - */ - clickInputMode:yfiles.input.ClickInputMode; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#tapInputMode} property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createTapInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onTapInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 20. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.TapInputMode} - */ - tapInputMode:yfiles.input.TapInputMode; - /** - * Adds the given listener for the ItemClicked event that occurs when an item has been clicked. - *

    - * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. - *

    - *

    - * This event will also be raised for {@link yfiles.input.GraphInputMode#tap taps}. - *

    - *

    - * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked} and - * {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked}) will be raised before this event. - * If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftClickedListener - * @see yfiles.input.GraphInputMode#addItemRightClickedListener - * @see yfiles.input.GraphInputMode#removeItemClickedListener - */ - addItemClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Removes the given listener for the ItemClicked event that occurs when an item has been clicked. - *

    - * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. - *

    - *

    - * This event will also be raised for {@link yfiles.input.GraphInputMode#tap taps}. - *

    - *

    - * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked} and - * {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked}) will be raised before this event. - * If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftClickedListener - * @see yfiles.input.GraphInputMode#addItemRightClickedListener - * @see yfiles.input.GraphInputMode#addItemClickedListener - */ - removeItemClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Adds the given listener for the ItemLeftClicked event that occurs when an item has been left clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that - * case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#addItemRightClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener - * @see yfiles.input.GraphInputMode#removeItemLeftClickedListener - */ - addItemLeftClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Removes the given listener for the ItemLeftClicked event that occurs when an item has been left clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that - * case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#addItemRightClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftClickedListener - */ - removeItemLeftClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Adds the given listener for the ItemRightClicked event that occurs when an item has been right clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that - * case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftClickedListener - * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener - * @see yfiles.input.GraphInputMode#removeItemRightClickedListener - */ - addItemRightClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Removes the given listener for the ItemRightClicked event that occurs when an item has been right clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} event will not be raised in that - * case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftClickedListener - * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemRightClickedListener - */ - removeItemRightClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Adds the given listener for the ItemDoubleClicked event that occurs when an item has been double clicked. - *

    - * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. - *

    - *

    - * Depending on the value of the {@link yfiles.input.ClickInputMode#doubleClickPolicy} property of {@link yfiles.input.GraphInputMode#clickInputMode} this event may be preceded by no, one, or two {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} - * events (as well as the corresponding button-specific event). - *

    - *

    - * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} and - * {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked}) will be raised before this - * event. If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener - * @see yfiles.input.GraphInputMode#removeItemDoubleClickedListener - */ - addItemDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Removes the given listener for the ItemDoubleClicked event that occurs when an item has been double clicked. - *

    - * If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. - *

    - *

    - * Depending on the value of the {@link yfiles.input.ClickInputMode#doubleClickPolicy} property of {@link yfiles.input.GraphInputMode#clickInputMode} this event may be preceded by no, one, or two {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked} - * events (as well as the corresponding button-specific event). - *

    - *

    - * Button-specific events ({@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked} and - * {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked}) will be raised before this - * event. If one of those is marked {@link yfiles.input.ItemClickedEventArgs.#handled} this event will not be raised anymore. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - */ - removeItemDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Adds the given listener for the ItemLeftDoubleClicked event that occurs when an item has been left double clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised - * in that case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener - * @see yfiles.input.GraphInputMode#removeItemLeftDoubleClickedListener - */ - addItemLeftDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Removes the given listener for the ItemLeftDoubleClicked event that occurs when an item has been left double clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised - * in that case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener - */ - removeItemLeftDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Adds the given listener for the ItemRightDoubleClicked event that occurs when an item has been right double clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised - * in that case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener - * @see yfiles.input.GraphInputMode#removeItemRightDoubleClickedListener - */ - addItemRightDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Removes the given listener for the ItemRightDoubleClicked event that occurs when an item has been right double clicked. - *

    - * This event will be raised before the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} - * event. If one of the event handlers sets the {@link yfiles.input.ItemClickedEventArgs.#handled} property to true the event will not be propagated anymore. This also means - * that the {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked} event will not be raised - * in that case. - *

    - * @param {function(Object, yfiles.input.ItemClickedEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#clickableItems - * @see yfiles.input.GraphInputMode#addItemDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener - * @see yfiles.input.GraphInputMode#addItemRightDoubleClickedListener - */ - removeItemRightDoubleClickedListener(listener:(sender:Object,evt:yfiles.input.ItemClickedEventArgs)=>void):void; - /** - * Adds the given listener for the CanvasClicked event that occurs when the empty canvas area has been clicked. - *

    - * If one of the event handlers sets the {@link yfiles.input.ClickEventArgs#handled} property to true the event will not be propagated anymore. - *

    - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#removeCanvasClickedListener - */ - addCanvasClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; - /** - * Removes the given listener for the CanvasClicked event that occurs when the empty canvas area has been clicked. - *

    - * If one of the event handlers sets the {@link yfiles.input.ClickEventArgs#handled} property to true the event will not be propagated anymore. - *

    - * @param {function(Object, yfiles.input.ClickEventArgs): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#addItemClickedListener - * @see yfiles.input.GraphInputMode#addCanvasClickedListener - */ - removeCanvasClickedListener(listener:(sender:Object,evt:yfiles.input.ClickEventArgs)=>void):void; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#marqueeSelectionInputMode} property. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createMarqueeSelectionInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onMarqueeSelectionInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 50. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.MarqueeSelectionInputMode} - */ - marqueeSelectionInputMode:yfiles.input.MarqueeSelectionInputMode; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#navigationInputMode} property. - *

    - * This mode is responsible for navigating and traversing the elements in the {@link yfiles.graph.IGraph}. If the field has not yet - * been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createNavigationInputMode} will be - * called. Upon change the {@link yfiles.input.GraphInputMode#onNavigationInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 55. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.NavigationInputMode} - */ - navigationInputMode:yfiles.input.NavigationInputMode; - /** - * Adds the given listener for the MultiSelectionStarted event that occurs when a single or multi select operation has been - * started. - *

    - * The event is not triggered for the individual selection operations that constitute a multi selection operation. - *

    - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#removeMultiSelectionStartedListener - */ - addMultiSelectionStartedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; - /** - * Removes the given listener for the MultiSelectionStarted event that occurs when a single or multi select operation has - * been started. - *

    - * The event is not triggered for the individual selection operations that constitute a multi selection operation. - *

    - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#addMultiSelectionStartedListener - */ - removeMultiSelectionStartedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; - /** - * Adds the given listener for the MultiSelectionFinished event that occurs when a single or multi select operation has - * been finished. - *

    - * The event is not triggered for the individual selection operations that constitute a multi selection operation. - *

    - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to add. - * @see yfiles.input.GraphInputMode#removeMultiSelectionFinishedListener - */ - addMultiSelectionFinishedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; - /** - * Removes the given listener for the MultiSelectionFinished event that occurs when a single or multi select operation has - * been finished. - *

    - * The event is not triggered for the individual selection operations that constitute a multi selection operation. - *

    - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to remove. - * @see yfiles.input.GraphInputMode#addMultiSelectionFinishedListener - */ - removeMultiSelectionFinishedListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; - /** - * Gets or sets the {@link yfiles.input.WaitInputMode} that is provided by this instance for those who need to make use of it. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createWaitInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onWaitInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of -1. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @see yfiles.input.WaitInputMode#waiting - * @type {yfiles.input.WaitInputMode} - */ - waitInputMode:yfiles.input.WaitInputMode; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#itemHoverInputMode} that is provided by this instance for those who need to make use of it. - *

    - * Note that initially the {@link yfiles.input.ItemHoverInputMode#hoverItems} property is set to - * {@link yfiles.graph.GraphItemTypes#NONE}, which effectively disables the functionality of the mode initially. In order to get - * the mode to fire events, the property should be set to a corresponding value. - *

    - *

    - * If the backing field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createItemHoverInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onItemHoverInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 55. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.ItemHoverInputMode} - */ - itemHoverInputMode:yfiles.input.ItemHoverInputMode; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#moveViewportInputMode} associated with this instance. - *

    - * If the field has not yet been initialized upon first access, the factory method {@link yfiles.input.GraphInputMode#createMoveViewportInputMode} - * will be called. Upon change the {@link yfiles.input.GraphInputMode#onMoveViewportInputModeChanged} method will be called. - *

    - *

    - * By default this input mode has a priority of 39. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.MoveViewportInputMode} - */ - moveViewportInputMode:yfiles.input.MoveViewportInputMode; - /** - * Gets or sets the {@link yfiles.input.GraphInputMode#keyboardInputMode}. - *

    - * By default this input mode has a priority of 0. - *

    - * @throws {Stubs.Exceptions.NotSupportedError} If an attempt is made to change the instance while this mode is {@link yfiles.input.IInputMode#install installed}. To exchange a mode, first - * {@link yfiles.input.IInputMode#uninstall}, then {@link yfiles.input.IInputMode#install reinstall} to ensure that all data is initialized correctly. - * @type {yfiles.input.KeyboardInputMode} - */ - keyboardInputMode:yfiles.input.KeyboardInputMode; - /** - * Gets a collection of commands that this input mode will handle. - *

    - * This collection can be modified by removing commands to prevent the input mode from handling them. Previously removed - * commands can also be re-added again to enable them again. However, the input mode will never handle commands that - * weren't in the initial collection. Adding those will do nothing. - *

    - * @type {yfiles.collections.ICollection.} - */ - availableCommands:yfiles.collections.ICollection; - /** - * Gets or sets a property that determines whether clipboard operations with the usual shortcuts are enabled on the - * canvas. - *

    - * Default value is true - *

    - * @default true - * @type {boolean} - */ - allowClipboardOperations:boolean; - static $class:yfiles.lang.Class; - } - /** - * An {@link yfiles.input.IInputMode} implementation for use in a {@link yfiles.view.GraphComponent} to assign to the {@link yfiles.view.CanvasComponent#inputMode} property. - *

    - * This mode can be used in a viewer-centric application where there is no need to modify the {@link yfiles.graph.IGraph} but - * browsing of the graph should be convenient. This mode allows for {@link yfiles.input.GraphInputMode#addItemClickedListener clicking on items using the mouse}, - * {@link yfiles.input.GraphInputMode#addQueryItemToolTipListener displaying tool tips for items}, {@link yfiles.input.GraphInputMode#addPopulateItemContextMenuListener showing a context menu}, {@link yfiles.input.NavigationInputMode allowing for easy navigation and traversal}, - * {@link yfiles.input.MoveViewportInputMode moving the view port}, and {@link yfiles.input.GraphInputMode#marqueeSelectableItems optionally doing marquee selection}. Also {@link yfiles.input.ItemHoverInputMode} can be used to get - * notified of the elements that the mouse is hovering over. - *

    - *

    - * Due to the viewer-centric nature of this input mode, collapsing and expanding groups is disabled per default. To enable - * this feature, set {@link yfiles.input.NavigationInputMode#allowCollapseGroup} and {@link yfiles.input.NavigationInputMode#allowExpandGroup} to true. - *

    - *

    - * This input mode manages a set of specialized input modes, each handling a specific part of the interaction with the - * graph. The following list details those along with their default - * {@link yfiles.input.IInputMode#priority priorities}. Lower priorities come earlier when handing events. - *

    - *
      - *
    • {@link yfiles.input.WaitInputMode} (−1) – Disables this input mode when layouts or animations run.
    • - *
    • {@link yfiles.input.KeyboardInputMode} (0) – Handles commands and arbitrary keyboard shortcuts.
    • - *
    • {@link yfiles.input.ClickInputMode} (10) – Handles mouse clicks and double-clicks.
    • - *
    • {@link yfiles.input.TapInputMode} (20) – Handles taps and double-tap.
    • - *
    • {@link yfiles.input.MarqueeSelectionInputMode} (30) – Allows dragging a rectangle to select items within it.
    • - *
    • {@link yfiles.input.MoveViewportInputMode} (39) – Allows panning the viewport.
    • - *
    • {@link yfiles.input.ItemHoverInputMode} (55) – Provides events to indicate that the mouse pointer hovers over an item.
    • - *
    • {@link yfiles.input.NavigationInputMode} (55) – Provides general navigation facilities, such as navigating from one item to another with the arrow keys.
    • - *
    • {@link yfiles.input.ContextMenuInputMode} (60) – Handles querying the context menu contents based on a location as well as preparing the menu for display.
    • - *
    • {@link yfiles.input.MouseHoverInputMode} (100) – Handles tool tips.
    • - *
    - * @class yfiles.input.GraphViewerInputMode - * @extends {yfiles.input.GraphInputMode} - */ - export interface GraphViewerInputMode extends yfiles.input.GraphInputMode{} - export class GraphViewerInputMode { - /** - * Initializes a new instance of the {@link yfiles.input.GraphViewerInputMode} class. - * @constructor - */ - constructor(); - static $class:yfiles.lang.Class; - } - /** - * A simple interface that can be used to react to clicks on regions of {@link yfiles.styles.INodeStyle}s etc. - *

    - * {@link yfiles.input.GraphEditorInputMode} will query the {@link yfiles.graph.IModelItem}'s Lookup method for this interface if it has - * detected {@link yfiles.input.GraphInputMode#click}s. If the item yields an instance of this interface and the click was inside - * the {@link yfiles.input.IClickListener#getHitTestable}, then {@link yfiles.input.IClickListener#onClicked} is invoked. - *

    - * @see yfiles.input.GraphEditorInputMode - * @see yfiles.styles.CollapsibleNodeStyleDecorator - * @interface - */ - export interface IClickListener extends Object{ - /** - * Gets an {@link yfiles.input.IHitTestable} that can be used to check if {@link yfiles.input.IClickListener#onClicked} should be invoked. - * @returns {yfiles.input.IHitTestable} A hit testable that can determine whether {@link yfiles.input.IClickListener#onClicked} should be invoked by a given click. - * @abstract - */ - getHitTestable():yfiles.input.IHitTestable; - /** - * Called by the framework to indicate that the {@link yfiles.graph.IModelItem} has been clicked by the user at the specified - * location. - *

    - * This method is called by {@link yfiles.input.GraphInputMode#click} for the - * {@link yfiles.graph.IModelItem}s that yielded an instance of this interface. - *

    - * @param {yfiles.input.IInputModeContext} context The context to use for the click operation. - * @param {yfiles.geometry.Point} location The location of the click - * @abstract - */ - onClicked(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):void; - } - var IClickListener:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * An interface for classes that can yield {@link yfiles.input.IHandle} implementations for the {@link yfiles.graph.IEdge#sourcePort source} and {@link yfiles.graph.IEdge#targetPort target} ends of an - * {@link yfiles.graph.IEdge}. - *

    - * This interface will be queried by the default implementation of the {@link yfiles.input.IHandleProvider} that is in the lookup - * of an {@link yfiles.graph.IEdge}. It is recommended to use this interface instead of the more generic {@link yfiles.input.IHandleProvider} - * interface, because other generic code can then use this interface to gain access to a specific {@link yfiles.input.IHandle} more - * easily. - *

    - * @interface - */ - export interface IEdgePortHandleProvider extends Object{ - /** - * Gets an {@link yfiles.input.IHandle} implementation for one end of the provided edge. - * @param {yfiles.input.IInputModeContext} context The context in which the handle will be used. - * @param {yfiles.graph.IEdge} edge The edge for which an handle is needed. - * @param {boolean} sourceHandle if set to true the handle for the source side/port should be returned. - * @returns {yfiles.input.IHandle} The handle to use for the provided side or null. - * @abstract - */ - getHandle(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,sourceHandle:boolean):yfiles.input.IHandle; - } - var IEdgePortHandleProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Helper interface to customize interactive label editing. - *

    - * Implementations of this interface can be put into the {@link yfiles.graph.ILookup} of {@link yfiles.graph.ILabelOwner}s and - * {@link yfiles.graph.ILabel}s so that it is possible to tweak the behavior on a case by case basis. - *

    - *

    - * Conceptually, in most cases, implementations of this interface behaves like an additional event handler for {@link yfiles.input.GraphEditorInputMode#addLabelAddingListener LabelAdding} - * and {@link yfiles.input.GraphEditorInputMode#addLabelEditingListener LabelEditing}. If no event handler - * handled those events, an {@link yfiles.input.IEditLabelHelper} will be queried from the {@link yfiles.graph.ILookup} and the unhandled - * event arguments passed to the respective methods. - *

    - * @see yfiles.input.EditLabelHelper - * @see yfiles.input.GraphEditorInputMode#createLabel - * @see yfiles.input.GraphEditorInputMode#editLabel - * @see yfiles.input.GraphEditorInputMode#addLabel - * @see yfiles.input.GraphEditorInputMode#addLabelAddingListener - * @see yfiles.input.GraphEditorInputMode#addLabelEditingListener - * @interface - */ - export interface IEditLabelHelper extends Object{ - /** - * Helper method that will be called when trying to add a label to an {@link yfiles.graph.ILabelOwner}. - *

    - * Implementations of this method can set the {@link yfiles.graph.ILabel#style}, {@link yfiles.graph.ILabel#layoutParameter}, {@link yfiles.graph.ILabel#preferredSize}, and {@link yfiles.graph.ITagOwner#tag} for newly-added labels by setting the appropriate properties on - * args. - *

    - *

    - * Setting the {@link yfiles.input.LabelEditingEventArgs#cancel} property on args to true will disallow label creation. - *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The original event arguments. - * @see yfiles.input.IEditLabelHelper#onLabelEditing - * @abstract - */ - onLabelAdding(evt:yfiles.input.LabelEditingEventArgs):void; - /** - * Helper method that will be called when trying to edit a label. - *

    - * This method can be called for editing labels for an {@link yfiles.graph.ILabelOwner}, in which case the {@link yfiles.input.LabelEditingEventArgs#label} property on args will - * be null, but the {@link yfiles.input.LabelEditingEventArgs#owner} property will be non-null. It can also be called for editing a specific label, in which case the {@link yfiles.input.LabelEditingEventArgs#label} - * property on args will be non-null, and the {@link yfiles.input.LabelEditingEventArgs#owner} property will be set to the label's owner. - *

    - *

    - * Implementations of this method can set a specific label to be edited, by setting the {@link yfiles.input.LabelEditingEventArgs#label} property of the args to an - * existing label instance. This label does not need to belong to the same owner that is queried for. Setting the {@link yfiles.input.LabelEditingEventArgs#label} property - * to null will not edit an existing label, but instead add a new one on the {@link yfiles.graph.ILabelOwner} set in the {@link yfiles.input.LabelEditingEventArgs#owner} - * property. - *

    - *

    - * When a new label is added, the properties {@link yfiles.input.LabelEditingEventArgs#style}, {@link yfiles.input.LabelEditingEventArgs#layoutParameter}, {@link yfiles.input.LabelEditingEventArgs#preferredSize}, and {@link yfiles.input.LabelEditingEventArgs#tag} are used for the newly-created label, just as in - * {@link yfiles.input.IEditLabelHelper#onLabelAdding}. - *

    - *

    - * Setting the {@link yfiles.input.LabelEditingEventArgs#cancel} property on args to true will disallow label editing and creation. - *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The original event arguments. - * @see yfiles.input.IEditLabelHelper#onLabelAdding - * @abstract - */ - onLabelEditing(evt:yfiles.input.LabelEditingEventArgs):void; - } - var IEditLabelHelper:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Provides the snap lines and the snap results to the {@link yfiles.input.LabelSnapContext} during dragging of labels. - * @see yfiles.input.LabelSnapContext - * @see yfiles.graph.LabelDecorator#labelSnapContextHelperDecorator - * @interface - */ - export interface ILabelSnapContextHelper extends Object{ - /** - * Called during {@link yfiles.input.IDragHandler#initializeDrag initialization} of a label dragging to add {@link yfiles.input.SnapLine snap lines} to which the label can potentially snap to the - * snapContext. - * @param {yfiles.input.LabelSnapContext} snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of - * the context explicitly. - * @param {yfiles.input.IInputModeContext} inputModeContext The context of the input mode that handles the dragging. - * @param {yfiles.graph.ILabel} label The label that is dragged. - * @abstract - */ - addSnapLines(snapContext:yfiles.input.LabelSnapContext,inputModeContext:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel):void; - /** - * Called while the given label is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult snap results} for the {@link yfiles.input.SnapLine snap lines} provided by the context. - * @param {yfiles.input.LabelSnapContext} context The snap context which manages the snap lines and the settings. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The event argument to obtain the necessary information from and {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult add results to}. - * @param {yfiles.geometry.IOrientedRectangle} suggestedLayout The {@link yfiles.graph.ILabel#layout layout} of the label that would be used without snapping. - * @param {yfiles.graph.ILabel} label The label that is dragged. - * @abstract - */ - collectSnapResults(context:yfiles.input.LabelSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.IOrientedRectangle,label:yfiles.graph.ILabel):void; - } - var ILabelSnapContextHelper:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * An interface used by implementations that provide various size constraints for {@link yfiles.graph.INode}s. - *

    Related demos:

    - *
      - *
    • Demo: SizeConstraintProvider, demo.yfiles.input.sizeconstraintprovider
    • - *
    - * @see yfiles.input.NodeSizeConstraintProvider - * @interface - */ - export interface INodeSizeConstraintProvider extends Object{ - /** - * Returns the maximum size allowed for the given node. - * @param {yfiles.graph.INode} node The node to return the maximum size for. - * @returns {yfiles.geometry.Size} The maximum size or {@link yfiles.geometry.Size#INFINITE} if there is no constraint on the size. - * @abstract - */ - getMaximumSize(node:yfiles.graph.INode):yfiles.geometry.Size; - /** - * Returns the minimum area that needs to be enclosed by the given node. - * @param {yfiles.graph.INode} node The node to return the area for. - * @returns {yfiles.geometry.Rect} The area to enclose or {@link yfiles.geometry.Rect#EMPTY} if there is no constraint on the size due to an enclosed area. - * @abstract - */ - getMinimumEnclosedArea(node:yfiles.graph.INode):yfiles.geometry.Rect; - /** - * Returns the minimum size allowed for the given node. - * @param {yfiles.graph.INode} node The node to return the minimum size for. - * @returns {yfiles.geometry.Size} The minimum size or {@link yfiles.geometry.Size#EMPTY} if there is no constraint on the size. - * @abstract - */ - getMinimumSize(node:yfiles.graph.INode):yfiles.geometry.Size; - } - var INodeSizeConstraintProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A simple default implementation of {@link yfiles.input.INodeSizeConstraintProvider} - * @class yfiles.input.NodeSizeConstraintProvider - * @implements {yfiles.input.INodeSizeConstraintProvider} - */ - export interface NodeSizeConstraintProvider extends Object,yfiles.input.INodeSizeConstraintProvider{} - export class NodeSizeConstraintProvider { - /** - * Creates a new instance using the provided size instances as the initial values. - *

    - * Not specifing the minimumEnclosedArea will set it to {@link yfiles.geometry.Rect#EMPTY}. - *

    - * @param {yfiles.geometry.ISize} minimumSize The {@link yfiles.input.NodeSizeConstraintProvider#minimumSize}. - * @param {yfiles.geometry.ISize} maximumSize The {@link yfiles.input.NodeSizeConstraintProvider#maximumSize}. - * @param {yfiles.geometry.IRectangle} [minimumEnclosedArea=null] The {@link yfiles.input.NodeSizeConstraintProvider#minimumEnclosedArea}. - * @constructor - */ - constructor(minimumSize:yfiles.geometry.ISize,maximumSize:yfiles.geometry.ISize,minimumEnclosedArea?:yfiles.geometry.IRectangle); - /** - * - * @param {yfiles.graph.INode} node - * @returns {yfiles.geometry.Size} - */ - getMaximumSize(node:yfiles.graph.INode):yfiles.geometry.Size; - /** - * - * @param {yfiles.graph.INode} node - * @returns {yfiles.geometry.Rect} - */ - getMinimumEnclosedArea(node:yfiles.graph.INode):yfiles.geometry.Rect; - /** - * - * @param {yfiles.graph.INode} node - * @returns {yfiles.geometry.Size} - */ - getMinimumSize(node:yfiles.graph.INode):yfiles.geometry.Size; - /** - * Gets or sets the instance to return by {@link yfiles.input.NodeSizeConstraintProvider#getMaximumSize}. - * @type {yfiles.geometry.ISize} - */ - maximumSize:yfiles.geometry.ISize; - /** - * Gets or sets the instance to return by {@link yfiles.input.NodeSizeConstraintProvider#getMinimumEnclosedArea}. - * @type {yfiles.geometry.IRectangle} - */ - minimumEnclosedArea:yfiles.geometry.IRectangle; - /** - * Gets or sets the instance to return by {@link yfiles.input.NodeSizeConstraintProvider#getMinimumSize}. - * @type {yfiles.geometry.ISize} - */ - minimumSize:yfiles.geometry.ISize; - static $class:yfiles.lang.Class; - } - /** - * Interface used by {@link yfiles.input.OrthogonalEdgeEditingContext} and the like that can be decorated to the {@link yfiles.graph.ILookup} - * of {@link yfiles.graph.IEdge}s. - *

    - * This interface is for editing edges in such a way that their path stays orthogonal, i.e. all of the segments are - * oriented either horizontally or vertically. - *

    - * @see yfiles.input.OrthogonalEdgeEditingContext#getOrthogonalEdgeHelper - * @interface - */ - export interface IOrthogonalEdgeHelper extends Object{ - /** - * Callback method that is invoked after the provided edge has been edited orthogonally. - *

    - * This callback can be used to remove unused bends and finalize the orthogonal edge editing gesture. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context which edited the edge. - * @param {yfiles.graph.IGraph} graph The graph to use for modifying the edge instance. - * @param {yfiles.graph.IEdge} edge The edge to clean up the path. - * @abstract - */ - cleanUpEdge(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge):void; - /** - * Gets the declared orientation of the given segment at the provided edge. - *

    - * The orientation cannot always be inferred from the current geometry: If a segment has a zero length it is unclear what - * orientation it should have, also a segment could be accidentally orthogonally oriented, while in fact it is considered - * {@link yfiles.input.SegmentOrientation#NON_ORTHOGONAL}. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context in which the orientation is needed. - * @param {yfiles.graph.IEdge} edge The edge to inspect. - * @param {number} segmentIndex The index of the segment. - * @returns {yfiles.input.SegmentOrientation} The declared orientation of the segment. - * @abstract - */ - getSegmentOrientation(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,segmentIndex:number):yfiles.input.SegmentOrientation; - /** - * Determines whether the provided edge should be edited orthogonally in the specified input mode context. - *

    - * If this method returns false, the other methods will not be queried at all. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context in which the edge is about to be edited. - * @param {yfiles.graph.IEdge} edge The edge to inspect. - * @returns {boolean} true if the edge should be orthogonally edited in the specified input mode context; false otherwise. - * @abstract - */ - shouldEditOrthogonally(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge):boolean; - /** - * Determines whether this end of the provided edge can be moved in the input mode context. - *

    - * This information is required to determine whether an edge's first or last segment needs to be split or the adjacent edge - * end can be moved along with the other end of the segment. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context in which the segment is edited. - * @param {yfiles.graph.IEdge} edge The edge to inspect. - * @param {boolean} sourceEnd if set to true the source end of the edge is queried, otherwise the target end. - * @returns {boolean} true if the end of the edge can be moved for the specified input mode context; false otherwise, in which case the - * corresponding segment needs to be split to keep the segment orientation orthogonal. - * @abstract - */ - shouldMoveEndImplicitly(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,sourceEnd:boolean):boolean; - } - var IOrthogonalEdgeHelper:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface used for implementations that recognize, approve and disapprove node reparenting gestures, as well as actually - * performs the reparenting. - *

    - * Implementations of this interface are queried from the {@link yfiles.input.IInputModeContext} by code that wants to reparent a - * node. Specifically this is used by default to reparent nodes during the {@link yfiles.input.MoveInputMode dragging of nodes}. - *

    - *

    Related demos:

    - *
      - *
    • Demo: ReparentHandler, demo.yfiles.input.reparenthandler
    • - *
    - * @interface - */ - export interface IReparentNodeHandler extends Object{ - /** - * Determines whether the current gesture that can be determined through the context is a reparent gesture. - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.INode} node The node that will possibly be reparented. - * @returns {boolean} Whether this is a reparenting gesture. - * @abstract - */ - isReparentGesture(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode):boolean; - /** - * Determines whether the provided node may be reparented to a newParent. - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.INode} node The node that will be reparented. - * @param {yfiles.graph.INode} newParent The potential new parent or null. Can be a group or a non-group node. - * @returns {boolean} Whether newParent is a valid new parent for node. - * @abstract - */ - isValidParent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,newParent:yfiles.graph.INode):boolean; - /** - * Performs the actual reparenting after the reparent gesture has been finalized. - *

    - * Implementations should {@link yfiles.graph.IGraph#setParent set the parent} of node to newParent. - *

    - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.INode} node The node that will be reparented. - * @param {yfiles.graph.INode} newParent The potential new parent or null. Can be a group or a non-group node. - * @abstract - */ - reparent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,newParent:yfiles.graph.INode):void; - /** - * Determines whether the user may detach the given node from its current parent in order to reparent it. - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.INode} node The node that is about to be detached from its current parent. - * @returns {boolean} Whether the node may be detached and reparented. - * @abstract - */ - shouldReparent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode):boolean; - } - var IReparentNodeHandler:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Queried by the {@link yfiles.input.GraphSnapContext} to add {@link yfiles.input.OrthogonalSnapLine}s to its collections during the - * {@link yfiles.input.SnapContext#isInitializing initialization phase}. - *

    - * Implementations of this interface are queried by {@link yfiles.input.GraphSnapContext} for each item that is not modified during - * the edit using the {@link yfiles.graph.ILookup#lookup} of the respective item. - *

    - * @see yfiles.graph.NodeDecorator#snapLineProviderDecorator - * @interface - */ - export interface ISnapLineProvider extends Object{ - /** - * Called by the {@link yfiles.input.GraphSnapContext} when a {@link yfiles.input.GraphSnapContext#initializeDrag drag} is about to start. - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the - * context explicitly. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.graph.IModelItem} item The item to add snap lines for. - * @abstract - */ - addSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,item:yfiles.graph.IModelItem):void; - } - var ISnapLineProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Provides data for the {@link yfiles.input.GraphInputMode#addItemClickedListener ItemClicked}, - * {@link yfiles.input.GraphInputMode#addItemDoubleClickedListener ItemDoubleClicked}, - * {@link yfiles.input.GraphInputMode#addItemLeftClickedListener ItemLeftClicked}, - * {@link yfiles.input.GraphInputMode#addItemLeftDoubleClickedListener ItemLeftDoubleClicked}, {@link yfiles.input.GraphInputMode#addItemRightClickedListener ItemRightClicked} - * and {@link yfiles.input.GraphInputMode#addItemRightDoubleClickedListener ItemRightDoubleClicked} events. - * Type parameter T: The type of the item this event carries. - * @class yfiles.input.ItemClickedEventArgs. - * @extends {yfiles.collections.ItemEventArgs.} - * @template T - */ - export interface ItemClickedEventArgs extends yfiles.collections.ItemEventArgs{} - export class ItemClickedEventArgs { - /** - * Initializes a new instance of the {@link yfiles.input.ItemClickedEventArgs.} class. - * @param {T} item The item which is the subject of the event. - * @param {yfiles.geometry.Point} location The location of the click. - * @constructor - */ - constructor(item:T,location:yfiles.geometry.Point); - /** - * Gets or sets a value indicating whether this {@link yfiles.input.ItemClickedEventArgs.} is handled. - *

    - * Setting the event to handled indicates whether the event should be further propagated or whether there has not been any - * code that actively handled the event to the event source. How this flag is actually being treated depends on the source - * of the event. - *

    - * @type {boolean} - */ - handled:boolean; - /** - * Gets the location of the click. - * @type {yfiles.geometry.Point} - */ - location:yfiles.geometry.Point; - static $class:yfiles.lang.Class; - } - /** - * An input mode for use in a {@link yfiles.view.GraphComponent} that fires events when the mouse enters or leaves the - * visualization of a {@link yfiles.graph.IModelItem graph item}. - *

    - * This mode can be used to determine when the mouse is being moved from one item to the next. - *

    - *

    - * This mode is {@link yfiles.input.ItemHoverInputMode#exclusive} by default. - *

    - * @class yfiles.input.ItemHoverInputMode - * @implements {yfiles.input.IInputMode} - */ - export interface ItemHoverInputMode extends Object,yfiles.input.IInputMode{} - export class ItemHoverInputMode { - /** - * Initializes a new instance of the {@link yfiles.input.ItemHoverInputMode} class. - * @constructor - */ - constructor(); - /** - * - */ - cancel():void; - /** - * Gets the items that have been hit at the given location. - * @param {yfiles.geometry.Point} location The location in world coordinates to query. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all items that have been hit at the given location. - * @protected - */ - getHitItemsAt(location:yfiles.geometry.Point):yfiles.collections.IEnumerable; - /** - * Installs this mode into the given context that is provided by the canvas. - *

    - * In general a mode can only be installed into a single canvas at all times. - *

    - *

    - * This method is called to initialize this instance. Subclasses should override this method to register the corresponding - * event handler delegates for the various input events they need to register with. - *

    - *

    - * Overriding implementations should call the base implementation, first. - *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is - * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.ItemHoverInputMode#controller} for this mode. - * @see yfiles.input.IInputMode#uninstall - */ - install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; - /** - * Determines whether the given item is a valid item to be considered for hovering. - *

    - * This implementation checks whether the item is covered by the {@link yfiles.input.ItemHoverInputMode#hoverItems} set, only. - *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} true if it is valid to report a hover over the specified item; false otherwise. - * @see yfiles.input.ItemHoverInputMode#discardInvalidItems - * @protected - */ - isValidHoverItem(item:yfiles.graph.IModelItem):boolean; - /** - * Called after {@link yfiles.input.ItemHoverInputMode#cancel} has been called. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been canceled. - *

    - *

    - * This implementation does nothing. - *

    - * @protected - */ - onCanceled():void; - /** - * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to true. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been activated. - *

    - *

    - * Overriding implementations should call the base implementation. - *

    - * @protected - */ - onConcurrencyControllerActivated():void; - /** - * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to false. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been deactivated. - *

    - *

    - * Overriding implementations should call the base implementation. - *

    - * @protected - */ - onConcurrencyControllerDeactivated():void; - /** - * Raises the {@link yfiles.input.ItemHoverInputMode#addHoveredItemChangedListener HoveredItemChanged} event. - * @param {yfiles.input.HoveredItemChangedEventArgs} evt The {@link yfiles.input.HoveredItemChangedEventArgs} instance containing the event data. - * @protected - */ - onHoveredItemChanged(evt:yfiles.input.HoveredItemChangedEventArgs):void; - /** - * Called after {@link yfiles.input.ItemHoverInputMode#tryStop} has been called. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been stopped. - *

    - *

    - * This implementation does nothing. - *

    - * @protected - */ - onStopped():void; - /** - * Overridden to only return true if this instance does not currently {@link yfiles.input.ConcurrencyController#hasMutex have the input mutex}. - * @returns {boolean} true iff this instance does not {@link yfiles.input.ConcurrencyController#hasMutex own the mutex}. - */ - tryStop():boolean; - /** - * Uninstalls this mode from the given context. - *

    - * This code should clean up all changes made to the canvas in the {@link yfiles.input.IInputMode#install} method. After a mode has - * been uninstalled it can be installed again into the same or another canvas. - *

    - *

    - * Overriding implementations should call the base implementation after their own code. - *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during - * installation. - */ - uninstall(context:yfiles.input.IInputModeContext):void; - /** - * Forces a reevaluation of the item that the mouse is currently hovering over or at a specific location. - *

    - * This method may be called by code that is aware of the fact that the visualization has changed, but the mouse may not - * have been moved. By default this implementation will only re-query the items at the mouse location when the mouse has - * moved. This method can be called to force a reevaluation in other cases. - *

    - * @param {yfiles.geometry.Point} [location=null] The query location. - */ - updateHover(location?:yfiles.geometry.Point):void; - /** - * - * @type {number} - */ - priority:number; - /** - * Gets or sets a value indicating whether this mode will be the only one running when it has the mutex. - *

    - * The value of this property will be delegated to the {@link yfiles.input.ConcurrencyController#exclusive} property of the {@link yfiles.input.ItemHoverInputMode#controller}. - *

    - *

    - * If this mode is marked as exclusive and has the mutex, all other modes {@link yfiles.input.MultiplexingInputMode#add added} to the same {@link yfiles.input.MultiplexingInputMode} - * will be deactivated. Otherwise it will always run concurrently with all other modes. - *

    - * @type {boolean} - */ - exclusive:boolean; - /** - * Gets or sets the enabled state of this input mode. - *

    - * Clients can use this property to disable or reenable this instance. This will set the {@link yfiles.input.ConcurrencyController#enabled Enabled} property of the installed - * {@link yfiles.input.ItemHoverInputMode#controller} so a disabled instance should never try to acquire the input mutex. - *

    - * @type {boolean} - */ - enabled:boolean; - /** - * - * @type {yfiles.input.IInputModeContext} - */ - inputModeContext:yfiles.input.IInputModeContext; - /** - * Returns the installed {@link yfiles.input.ItemHoverInputMode#controller}. - * @protected - * @type {yfiles.input.ConcurrencyController} - */ - controller:yfiles.input.ConcurrencyController; - /** - * Adds the given listener for the HoveredItemChanged event that occurs when the item that is being hovered over with the - * mouse changes. - *

    - * This event is also fired when the mouse pointer leaves an item. - *

    - * @param {function(Object, yfiles.input.HoveredItemChangedEventArgs): void} listener The listener to add. - * @see yfiles.input.ItemHoverInputMode#removeHoveredItemChangedListener - */ - addHoveredItemChangedListener(listener:(sender:Object,evt:yfiles.input.HoveredItemChangedEventArgs)=>void):void; - /** - * Removes the given listener for the HoveredItemChanged event that occurs when the item that is being hovered over with - * the mouse changes. - *

    - * This event is also fired when the mouse pointer leaves an item. - *

    - * @param {function(Object, yfiles.input.HoveredItemChangedEventArgs): void} listener The listener to remove. - * @see yfiles.input.ItemHoverInputMode#addHoveredItemChangedListener - */ - removeHoveredItemChangedListener(listener:(sender:Object,evt:yfiles.input.HoveredItemChangedEventArgs)=>void):void; - /** - * Gets the current item the mouse is hovering over. - * @type {yfiles.graph.IModelItem} - */ - currentHoverItem:yfiles.graph.IModelItem; - /** - * Gets or sets which graph items are considered by this input mode. - *

    - * The default is {@link yfiles.graph.GraphItemTypes#ALL}. - *

    - * @type {yfiles.graph.GraphItemTypes} - */ - hoverItems:yfiles.graph.GraphItemTypes; - /** - * Gets or sets the cursor to use when the mouse is hovering over a {@link yfiles.input.ItemHoverInputMode#isValidHoverItem} valid - * hover item. - * @type {yfiles.view.Cursor} - */ - hoverCursor:yfiles.view.Cursor; - /** - * Determines whether items that have been hit at the current location that are not {@link yfiles.input.ItemHoverInputMode#isValidHoverItem valid items} should be ignored or - * reported as null. - * @see yfiles.input.ItemHoverInputMode#isValidHoverItem - * @type {boolean} - */ - discardInvalidItems:boolean; - static $class:yfiles.lang.Class; - } - /** - * Event argument class containing information about which {@link yfiles.graph.IModelItem} the mouse is currently hovering over. - *

    - * This event is used by the {@link yfiles.input.ItemHoverInputMode#addHoveredItemChangedListener HoveredItemChanged} - * event. The {@link yfiles.collections.ItemEventArgs.#item} property yields the item that is currently being hovered over. It carries the {@link yfiles.input.HoveredItemChangedEventArgs#oldItem previously hovered item}, too. - *

    - * @class yfiles.input.HoveredItemChangedEventArgs - * @extends {yfiles.collections.ItemEventArgs.} - */ - export interface HoveredItemChangedEventArgs extends yfiles.collections.ItemEventArgs{} - export class HoveredItemChangedEventArgs { - /** - * Initializes a new instance of the {@link yfiles.input.HoveredItemChangedEventArgs} class. - * @param {yfiles.graph.IModelItem} item The model item. - * @param {yfiles.graph.IModelItem} oldItem The old item. - * @constructor - */ - constructor(item:yfiles.graph.IModelItem,oldItem:yfiles.graph.IModelItem); - /** - * The item that was previously hovered, possibly null. - * @see yfiles.collections.ItemEventArgs.#item - * @type {yfiles.graph.IModelItem} - */ - oldItem:yfiles.graph.IModelItem; - static $class:yfiles.lang.Class; - } - /** - * Event arguments for the {@link yfiles.input.GraphEditorInputMode#addLabelAddingListener LabelAdding} and {@link yfiles.input.GraphEditorInputMode#addLabelEditingListener LabelEditing} - * events, as well as the {@link yfiles.input.IEditLabelHelper} interface. - * @class yfiles.input.LabelEditingEventArgs - * @extends {yfiles.input.InputModeEventArgs} - * @final - */ - export interface LabelEditingEventArgs extends yfiles.input.InputModeEventArgs{} - export class LabelEditingEventArgs { - /** - * Initializes a new instance of the {@link yfiles.input.LabelEditingEventArgs} class with the given context, owner, and label. - * @param {yfiles.input.IInputModeContext} context The input mode context to use. - * @param {yfiles.graph.ILabelOwner} owner The {@link yfiles.graph.ILabelOwner} whose label should be edited. - * @param {yfiles.graph.ILabel} label The {@link yfiles.graph.ILabel} that should be edited. - * @constructor - */ - constructor(context:yfiles.input.IInputModeContext,owner:yfiles.graph.ILabelOwner,label:yfiles.graph.ILabel); - /** - * Gets or sets the label to edit. - *

    - * This can be set to an exiting label to edit a specific one, or set to null to add a new label instead (e.g. for - * {@link yfiles.graph.ILabelOwner}s that have no label yet). - *

    - *

    - * If this property is set to null, the properties {@link yfiles.input.LabelEditingEventArgs#style}, {@link yfiles.input.LabelEditingEventArgs#preferredSize}, {@link yfiles.input.LabelEditingEventArgs#layoutParameter}, and {@link yfiles.input.LabelEditingEventArgs#tag} are used for the newly-added label, just like with - * {@link yfiles.input.LabelEditingEventArgs}. - *

    - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {yfiles.graph.ILabel} - */ - label:yfiles.graph.ILabel; - /** - * Gets or sets a value indicating whether the action (adding or editing a label) should be canceled. - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {boolean} - */ - cancel:boolean; - /** - * Gets or sets a value indicating whether this event has been handled. - *

    - * A handled instance of {@link yfiles.input.LabelEditingEventArgs} will not be passed to further event handlers or an {@link yfiles.input.IEditLabelHelper} - * instance. - *

    - *

    - * Setting any of the other properties implicitly also sets this to true. - *

    - * @type {boolean} - */ - handled:boolean; - /** - * Gets or sets the owner of the label. - *

    - * This property can be null if there is no owner known, e.g. if the event is raised for - * non-{@link yfiles.graph.ILabelOwner}s. Otherwise it is initially set to the item for which the event is raised. - *

    - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {yfiles.graph.ILabelOwner} - */ - owner:yfiles.graph.ILabelOwner; - /** - * Gets or sets the {@link yfiles.graph.ILabel#style} of the label to add. - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {yfiles.styles.ILabelStyle} - */ - style:yfiles.styles.ILabelStyle; - /** - * Gets or sets the {@link yfiles.graph.ILabel#preferredSize} of the label to add. - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {yfiles.geometry.Size} - */ - preferredSize:yfiles.geometry.Size; - /** - * Gets or sets the {@link yfiles.graph.ILabel#layoutParameter} of the label to add. - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {yfiles.graph.ILabelModelParameter} - */ - layoutParameter:yfiles.graph.ILabelModelParameter; - /** - * Gets or sets the {@link yfiles.graph.ITagOwner#tag} of the label to add. - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {Object} - */ - tag:Object; - /** - * Configures the {@link yfiles.input.TextEditorInputMode} for editing the provided label instance. - *

    - * Setting this property implicitly also sets {@link yfiles.input.LabelEditingEventArgs#handled} to true. - *

    - * @type {function(yfiles.input.IInputModeContext, yfiles.input.TextEditorInputMode, yfiles.graph.ILabel): void} - */ - textEditorInputModeConfigurator:(context:yfiles.input.IInputModeContext,mode:yfiles.input.TextEditorInputMode,label:yfiles.graph.ILabel)=>void; - static $class:yfiles.lang.Class; - } - /** - * Manages interactive snapping of {@link yfiles.graph.ILabel}s to their owner during drag operations like movements. - *

    - * This class provides a set of properties to customize the snapping behavior. {@link yfiles.input.IPositionHandler} - * implementations and similar classes can use the following idiom to get an instance of this class: - *

    - *

    Related demos:

    - *
      - *
    • Tutorial: 01 Getting Started, step 15 Snapping
    • - *
    - * @see yfiles.input.MoveLabelInputMode - * @see yfiles.input.GraphEditorInputMode#snapContext - * @class yfiles.input.LabelSnapContext - * @extends {yfiles.input.SnapContext} - */ - export interface LabelSnapContext extends yfiles.input.SnapContext{} - export class LabelSnapContext { - /** - * Initializes a new instance of the {@link yfiles.input.LabelSnapContext} class. - * @constructor - */ - constructor(); - /** - * Adds the given snapLine to the {@link yfiles.input.LabelSnapContext#snapLines snap line} collection of this context. - * @param {yfiles.input.SnapLine} snapLine The snap line to add. - * @see yfiles.input.GraphSnapContext#additionalSnapLines - */ - addSnapLine(snapLine:yfiles.input.SnapLine):void; - /** - * Raises the {@link yfiles.input.LabelSnapContext#addCollectSnapLinesListener CollectSnapLines} event. - * @param {yfiles.input.CollectLabelSnapLineEventArgs} evt The {@link yfiles.input.CollectLabelSnapLineEventArgs} instance containing the event data. - * @protected - */ - onCollectSnapLines(evt:yfiles.input.CollectLabelSnapLineEventArgs):void; - /** - * Determines whether this instance should collect snap lines for the initial position of a label. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - collectInitialLocationSnapLines:boolean; - /** - * Determines whether this instance should collect six snap lines, two through the center and four through the border sides - * of the label owner. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - collectNodeShapeSnapLines:boolean; - /** - * Determines whether this instance should collect four snap lines in parallel to the owner's borders at the initial label - * distance. - *

    - * Note that the label snaps to these snap lines with the side that is closer to the node's border. That way, snapping to - * such a snap line preserves the perceived distance from the node border for both labels inside and outside the node - * bounds. - *

    - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - collectOwnNodeDistanceSnapLines:boolean; - /** - * Determines whether this instance should collect snap lines in parallel to the border of the label owner at the distance - * of other node labels of that owner. - *

    - * Note that the label snaps to these snap lines with the side that is closer to the node's border. That way, snapping to - * such a snap line preserves the perceived distance from the node border for both labels inside and outside the node - * bounds. - *

    - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - collectSameOwnerNodeDistanceSnapLines:boolean; - /** - * Determines whether this instance should collect snap lines in parallel to the border of the label owner at the distance - * of other node labels in the graph. - *

    - * Note that the label snaps to these snap lines with the side that is closer to the node's border. That way, snapping to - * such a snap line preserves the perceived distance from the node border for both labels inside and outside the node - * bounds. - *

    - *

    - * The default is false. - *

    - * @default false - * @type {boolean} - */ - collectAllNodeDistanceSnapLines:boolean; - /** - * Determines whether this instance should collect snap lines on the edge path. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - collectEdgePathSnapLines:boolean; - /** - * Determines whether this instance should collect two snap lines in parallel to the edge path of the label owner at the - * initial distance of the edge label. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - collectOwnEdgeDistanceSnapLines:boolean; - /** - * Determines whether this instance should collect snap lines in parallel to the edge path of the label owner at the - * distances of all edge labels of that owner. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - collectSameOwnerEdgeDistanceSnapLines:boolean; - /** - * Determines whether this instance should collect snap lines in parallel to the edge path of the label owner at the - * distance of other edge labels in the graph. - *

    - * The default is false. - *

    - * @default false - * @type {boolean} - */ - collectAllEdgeDistanceSnapLines:boolean; - /** - * Specifies whether this context will automatically snap the node labels to snap lines. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - snapNodeLabels:boolean; - /** - * Specifies whether this context will automatically snap the edge labels to snap lines. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - snapEdgeLabels:boolean; - /** - * Gets or sets the amount by which snap lines that are induced by existing edge segments are being extended. - *

    - * The default is 40.0d, this value will be used to prolongate the ends of the snap lines. - *

    - * @default 40.0 - * @type {number} - */ - snapLineExtension:number; - /** - * The collection of the {@link yfiles.input.SnapLine snap lines} that have been {@link yfiles.input.LabelSnapContext#addSnapLine added} to this context. - *

    - * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. - *

    - * @see yfiles.input.LabelSnapContext#addSnapLine - * @type {yfiles.collections.IEnumerable.} - */ - snapLines:yfiles.collections.IEnumerable; - /** - * Adds the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to - * collect {@link yfiles.input.SnapLine}s. - *

    - * Event handlers should add snap lines to the caller using the methods provided by - * {@link yfiles.input.CollectLabelSnapLineEventArgs}. - *

    - * @param {function(Object, yfiles.input.CollectLabelSnapLineEventArgs): void} listener The listener to add. - * @see yfiles.input.LabelSnapContext#removeCollectSnapLinesListener - */ - addCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectLabelSnapLineEventArgs)=>void):void; - /** - * Removes the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to - * collect {@link yfiles.input.SnapLine}s. - *

    - * Event handlers should add snap lines to the caller using the methods provided by - * {@link yfiles.input.CollectLabelSnapLineEventArgs}. - *

    - * @param {function(Object, yfiles.input.CollectLabelSnapLineEventArgs): void} listener The listener to remove. - * @see yfiles.input.LabelSnapContext#addCollectSnapLinesListener - */ - removeCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectLabelSnapLineEventArgs)=>void):void; - static $class:yfiles.lang.Class; - } - /** - * The event arguments used by {@link yfiles.input.LabelSnapContext} to collect custom snap lines for each drag. - * @see yfiles.input.LabelSnapContext#addCollectSnapLinesListener - * @class yfiles.input.CollectLabelSnapLineEventArgs - * @extends {yfiles.input.InputModeEventArgs} - */ - export interface CollectLabelSnapLineEventArgs extends yfiles.input.InputModeEventArgs{} - export class CollectLabelSnapLineEventArgs { - /** - * Creates a new instance of this class. - * @param {yfiles.input.IInputModeContext} context The context this event is being used in. - * @param {yfiles.collections.ICollection.} snapLines The snap lines collection to add to. - * @constructor - */ - constructor(context:yfiles.input.IInputModeContext,snapLines:yfiles.collections.ICollection); - /** - * Adds the given snap line to the snap line collection of this class. - * @param {yfiles.input.OrthogonalSnapLine} snapLine the snap line to add. - */ - addSnapLine(snapLine:yfiles.input.OrthogonalSnapLine):void; - static $class:yfiles.lang.Class; - } - /** - * An {@link yfiles.input.IInputMode} that can {@link yfiles.input.NavigationInputMode#moveTo navigate} an {@link yfiles.graph.IGraph} displayed in a {@link yfiles.input.NavigationInputMode#graphComponent}. - *

    - * This mode is {@link yfiles.input.NavigationInputMode#exclusive} by default. - *

    - * @class yfiles.input.NavigationInputMode - * @implements {yfiles.input.IInputMode} - */ - export interface NavigationInputMode extends Object,yfiles.input.IInputMode{} - export class NavigationInputMode { - /** - * Initializes a new instance of the {@link yfiles.input.NavigationInputMode} class. - * @constructor - */ - constructor(); - /** - * Callback that adjusts the {@link yfiles.view.CanvasComponent#contentRect} to encompass all elements. - *

    - * This implementation will try to delegate to {@link yfiles.input.GraphEditorInputMode#adjustContentRect} if it can find the {@link yfiles.input.GraphEditorInputMode} - * in the {@link yfiles.input.NavigationInputMode#inputModeContext}, otherwise the FitGraphBoundsCommand is executed. - *

    - * @protected - */ - adjustContentRect():void; - /** - * Adjust the group node location according to the value of {@link yfiles.input.NavigationInputMode#autoGroupNodeAlignmentPolicy}. - * @param {boolean} collapse true iff the node has just been collapsed. - * @param {yfiles.graph.INode} groupNode The node that has changed its state. - * @protected - */ - adjustGroupNodeLocation(collapse:boolean,groupNode:yfiles.graph.INode):void; - /** - * - */ - cancel():void; - /** - * Clears the selection in the {@link yfiles.input.NavigationInputMode#graphComponent}. - */ - clearSelection():void; - /** - * {@link yfiles.graph.IFoldingView#collapse Collapses} the given group node to hide the contents of the group node from this {@link yfiles.graph.IFoldingView}. - * @param {yfiles.graph.INode} groupNode The group node to collapse. - * @see yfiles.graph.FoldingManager - * @see yfiles.input.NavigationInputMode#allowCollapseGroup - */ - collapseGroup(groupNode:yfiles.graph.INode):void; - /** - * Performs {@link yfiles.input.NavigationInputMode#collapseGroup} for all {@link yfiles.view.IGraphSelection#selectedNodes}. - */ - collapseSelection():void; - /** - * This method allows for entering a group node so that the currently displayed {@link yfiles.graph.IFoldingView}'s {@link yfiles.graph.IFoldingView#localRoot} will be reset - * to the provided node. - *

    - * It is possible to both use a local group node that is part of the currently displayed {@link yfiles.input.NavigationInputMode#graph} as the node argument, as well as - * an item that belongs to the {@link yfiles.graph.FoldingManager#masterGraph} to allow for switching to group nodes which are currently not being displayed in this - * view. - *

    - * @param {yfiles.graph.INode} node The node that needs to be either part of the current graph, or part of the {@link yfiles.graph.FoldingManager#masterGraph}. - * @see yfiles.input.NavigationInputMode#shouldEnterGroup - * @see yfiles.input.NavigationInputMode#allowEnterGroup - * @see yfiles.graph.FoldingManager - */ - enterGroup(node:yfiles.graph.INode):void; - /** - * Performs {@link yfiles.input.NavigationInputMode#enterGroup} for the first valid {@link yfiles.view.IGraphSelection#selectedNodes}. - */ - enterSelectedGroup():void; - /** - * Exits the current {@link yfiles.graph.IFoldingView#localRoot} of the currently displayed {@link yfiles.graph.IFoldingView view} and shows the contents of the parent container. - *

    - * This method will also {@link yfiles.input.GraphInputMode#clearSelection clear the selection} and {@link yfiles.input.GraphInputMode#setSelected select} the exited group node. - *

    - * @see yfiles.graph.FoldingManager - * @see yfiles.input.NavigationInputMode#allowExitGroup - * @see yfiles.input.NavigationInputMode#shouldExitGroup - */ - exitGroup():void; - /** - * {@link yfiles.graph.IFoldingView#expand Expands} the given group node to show the contents of the collapsed group node in this {@link yfiles.graph.IFoldingView}. - * @param {yfiles.graph.INode} groupNode The group node to expand - * @see yfiles.graph.FoldingManager - * @see yfiles.input.NavigationInputMode#allowExpandGroup - */ - expandGroup(groupNode:yfiles.graph.INode):void; - /** - * Performs {@link yfiles.input.NavigationInputMode#expandGroup} for all {@link yfiles.view.IGraphSelection#selectedNodes}. - */ - expandSelection():void; - /** - * Moves the focus into the given direction, extending the selection to the new element. - * @param {yfiles.input.MoveFocusDirection} direction The direction to move the focus and extend the selection. - */ - extendSelectionTo(direction:yfiles.input.MoveFocusDirection):void; - /** - * Installs this mode into the given context that is provided by the canvas. - *

    - * In general a mode can only be installed into a single canvas at all times. - *

    - *

    - * This method is called to initialize this instance. Subclasses should override this method to register the corresponding - * event handler delegates for the various input events they need to register with. - *

    - *

    - * Overriding implementations should call the base implementation, first. - *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is - * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.NavigationInputMode#controller} for this mode. - * @see yfiles.input.IInputMode#uninstall - */ - install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; - /** - * Moves the focus into the given direction, not changing the current selection. - * @param {yfiles.input.MoveFocusDirection} direction The direction to move the focus. - */ - moveFocusTo(direction:yfiles.input.MoveFocusDirection):void; - /** - * Moves the focus into the given direction, setting the selection to the new element. - * @param {yfiles.input.MoveFocusDirection} direction The direction to move the focus and selection. - */ - moveTo(direction:yfiles.input.MoveFocusDirection):void; - /** - * Called after {@link yfiles.input.NavigationInputMode#cancel} has been called. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been canceled. - *

    - *

    - * This implementation does nothing. - *

    - * @protected - */ - onCanceled():void; - /** - * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to true. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been activated. - *

    - *

    - * Overriding implementations should call the base implementation. - *

    - * @protected - */ - onConcurrencyControllerActivated():void; - /** - * Called after the {@link yfiles.input.ConcurrencyController#active} property of the installed {@link yfiles.input.ConcurrencyController} has been set to false. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been deactivated. - *

    - *

    - * Overriding implementations should call the base implementation. - *

    - * @protected - */ - onConcurrencyControllerDeactivated():void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupCollapsedListener GroupCollapsed} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupCollapsed(evt:yfiles.collections.ItemEventArgs):void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupCollapsingListener GroupCollapsing} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupCollapsing(evt:yfiles.collections.ItemEventArgs):void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupEnteredListener GroupEntered} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupEntered(evt:yfiles.collections.ItemEventArgs):void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupEnteringListener GroupEntering} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupEntering(evt:yfiles.collections.ItemEventArgs):void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupExitedListener GroupExited} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupExited(evt:yfiles.collections.ItemEventArgs):void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupExitingListener GroupExiting} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupExiting(evt:yfiles.collections.ItemEventArgs):void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupExpandedListener GroupExpanded} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupExpanded(evt:yfiles.collections.ItemEventArgs):void; - /** - * Raises the {@link yfiles.input.NavigationInputMode#addGroupExpandingListener GroupExpanding} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the event data. - * @protected - */ - onGroupExpanding(evt:yfiles.collections.ItemEventArgs):void; - /** - * Called after {@link yfiles.input.NavigationInputMode#tryStop} has been called. - *

    - * Can be overridden in subclasses to perform additional actions after the mode has been stopped. - *

    - *

    - * This implementation does nothing. - *

    - * @protected - */ - onStopped():void; - /** - * Selects the {@link yfiles.view.GraphComponent#currentItem} current item. - *

    - * This method delegates to {@link yfiles.input.NavigationInputMode#selectItem}. - *

    - */ - selectCurrentItem():void; - /** - * Callback that selects the given item. - * @param {yfiles.view.GraphComponent} graphComponent The {@link yfiles.input.NavigationInputMode#graphComponent}. - * @param {yfiles.graph.IModelItem} item The item to select. - * @param {boolean} extendSelection if set to true the current selection is extended otherwise it is cleared beforehand. - * @see yfiles.input.NavigationInputMode#clearSelection - * @protected - */ - selectItem(graphComponent:yfiles.view.GraphComponent,item:yfiles.graph.IModelItem,extendSelection:boolean):void; - /** - * Callback that actually sets the current item property. - * @param {yfiles.view.GraphComponent} graphComponent The {@link yfiles.input.NavigationInputMode#graphComponent} to set the current item of. - * @param {yfiles.graph.IModelItem} item The item to set. - * @returns {boolean} Whether the operation was actually performed. - * @protected - */ - setCurrentItem(graphComponent:yfiles.view.GraphComponent,item:yfiles.graph.IModelItem):boolean; - /** - * Sets the "current" item to the given one. - * @param {yfiles.graph.IModelItem} item The item to set as the current item. - * @see yfiles.input.NavigationInputMode#setCurrentItem - */ - setCurrentItem(item:yfiles.graph.IModelItem):void; - /** - * Sets the {@link yfiles.input.NavigationInputMode#graphComponent} to use for the various actions. - *

    - * This will register or unregister the commands for the control. This method is called in response to {@link yfiles.input.NavigationInputMode#install} - * and {@link yfiles.input.NavigationInputMode#uninstall}. - *

    - * @param {yfiles.view.GraphComponent} graphComponent The control to use or null. - * @protected - */ - setGraphComponent(graphComponent:yfiles.view.GraphComponent):void; - /** - * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#collapseGroup collapse} the given group node. - *

    - * This implementation returns the value of {@link yfiles.input.NavigationInputMode#allowCollapseGroup}. - *

    - * @param {yfiles.graph.INode} groupNode - * @returns {boolean} Whether to collapse the given group or not. - * @protected - */ - shouldCollapseGroup(groupNode:yfiles.graph.INode):boolean; - /** - * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#enterGroup enter} the specific group node. - *

    - * This implementation yields the value of {@link yfiles.input.NavigationInputMode#allowEnterGroup}. - *

    - * @param {yfiles.graph.INode} node The group node to enter. - * @returns {boolean} Whether to enter the group or not. - * @protected - */ - shouldEnterGroup(node:yfiles.graph.INode):boolean; - /** - * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#exitGroup exit} the current group node. - *

    - * This implementation yields the value of {@link yfiles.input.NavigationInputMode#allowExitGroup}. - *

    - * @returns {boolean} Whether to exit the current group or not. - * @protected - */ - shouldExitGroup():boolean; - /** - * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#expandGroup expand} the given group node. - *

    - * This implementation yields the value of {@link yfiles.input.NavigationInputMode#allowExpandGroup}. - *

    - * @param {yfiles.graph.INode} node - * @returns {boolean} Whether to expand the given group or not. - * @protected - */ - shouldExpandGroup(node:yfiles.graph.INode):boolean; - /** - * Callback predicate method that determines whether a given model item should be navigated to. - *

    - * This implementation uses the {@link yfiles.input.NavigationInputMode#navigableItems} property to determine whether the item can be navigated to. - *

    - * @param {yfiles.graph.IModelItem} item The model item. - * @returns {boolean} Whether the item should be considered for navigational commands. - * @protected - */ - shouldNavigateTo(item:yfiles.graph.IModelItem):boolean; - /** - * Determines whether the input mode should try to request the mutex when a command is executed. - *

    - * This resets the state of any other input mode, unless it currently possesses the mutex. - *

    - *

    - * The value of this method is queried for {@link yfiles.input.ICommand#COLLAPSE_GROUP}, {@link yfiles.input.ICommand#EXPAND_GROUP}, - * {@link yfiles.input.ICommand#TOGGLE_EXPANSION_STATE}, {@link yfiles.input.ICommand#ENTER_GROUP} and {@link yfiles.input.ICommand#EXIT_GROUP}. - *

    - * @returns {boolean} whether the input mode should request the mutex. - * @protected - */ - shouldRequestMutex():boolean; - /** - * Callback predicate method that determines whether a given model item should be selected. - *

    - * This implementation uses the {@link yfiles.input.NavigationInputMode#selectableItems} property to determine whether the item should be selected. - *

    - * @param {yfiles.graph.IModelItem} item The model item. - * @returns {boolean} Whether the item should be selected by the navigational commands. - * @protected - */ - shouldSelect(item:yfiles.graph.IModelItem):boolean; - /** - * Predicate method that decides whether it is allowed to {@link yfiles.input.NavigationInputMode#toggleExpansionState toggle} the collapsed state of the given group node. - *

    - * This implementation uses {@link yfiles.input.NavigationInputMode#shouldExpandGroup} and {@link yfiles.input.NavigationInputMode#shouldCollapseGroup} - * respectively. - *

    - * @param {yfiles.graph.INode} node - * @returns {boolean} Whether to expand the given group or not. - * @protected - */ - shouldToggleExpansionState(node:yfiles.graph.INode):boolean; - /** - * Toggles the {@link yfiles.graph.IFoldingView#isExpanded expanded/collapsed} state for the given group node in the {@link yfiles.graph.IFoldingView}. - * @param {yfiles.graph.INode} groupNode The group node to toggle the state for. - * @see yfiles.graph.FoldingManager - */ - toggleExpansionState(groupNode:yfiles.graph.INode):void; - /** - * Overridden to only return true if this instance does not currently {@link yfiles.input.ConcurrencyController#hasMutex have the input mutex}. - * @returns {boolean} true iff this instance does not {@link yfiles.input.ConcurrencyController#hasMutex own the mutex}. - */ - tryStop():boolean; - /** - * Uninstalls this mode from the given context. - *

    - * This code should clean up all changes made to the canvas in the {@link yfiles.input.IInputMode#install} method. After a mode has - * been uninstalled it can be installed again into the same or another canvas. - *

    - *

    - * Overriding implementations should call the base implementation after their own code. - *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during - * installation. - */ - uninstall(context:yfiles.input.IInputModeContext):void; - /** - * - * @type {number} - */ - priority:number; - /** - * Gets or sets a value indicating whether this mode will be the only one running when it has the mutex. - *

    - * The value of this property will be delegated to the {@link yfiles.input.ConcurrencyController#exclusive} property of the {@link yfiles.input.NavigationInputMode#controller}. - *

    - *

    - * If this mode is marked as exclusive and has the mutex, all other modes {@link yfiles.input.MultiplexingInputMode#add added} to the same {@link yfiles.input.MultiplexingInputMode} - * will be deactivated. Otherwise it will always run concurrently with all other modes. - *

    - * @type {boolean} - */ - exclusive:boolean; - /** - * Gets or sets the enabled state of this input mode. - *

    - * Clients can use this property to disable or reenable this instance. This will set the {@link yfiles.input.ConcurrencyController#enabled Enabled} property of the installed - * {@link yfiles.input.NavigationInputMode#controller} so a disabled instance should never try to acquire the input mutex. - *

    - * @type {boolean} - */ - enabled:boolean; - /** - * - * @type {yfiles.input.IInputModeContext} - */ - inputModeContext:yfiles.input.IInputModeContext; - /** - * Returns the installed {@link yfiles.input.NavigationInputMode#controller}. - * @protected - * @type {yfiles.input.ConcurrencyController} - */ - controller:yfiles.input.ConcurrencyController; - /** - * Gets or sets the item types that can be navigated to by this mode. - * @see yfiles.input.NavigationInputMode#shouldNavigateTo - * @type {yfiles.graph.GraphItemTypes} - */ - navigableItems:yfiles.graph.GraphItemTypes; - /** - * Gets the types of the items that should be selectable by this instance. - *

    - * The selectable items. The default value is {@link yfiles.graph.GraphItemTypes#NODE}. - *

    - * @default 1 - * @type {yfiles.graph.GraphItemTypes} - */ - selectableItems:yfiles.graph.GraphItemTypes; - /** - * Gets or sets the the location that should be kept fixed if toggling a group node state. - *

    - * Default value is {@link yfiles.input.NodeAlignmentPolicy#NONE} - *

    - * @see yfiles.input.NavigationInputMode#expandGroup - * @see yfiles.input.NavigationInputMode#collapseGroup - * @default 0 - * @type {yfiles.input.NodeAlignmentPolicy} - */ - autoGroupNodeAlignmentPolicy:yfiles.input.NodeAlignmentPolicy; - /** - * Gets or sets the {@link yfiles.input.NavigationInputMode#graphComponent} this mode acts on. - * @type {yfiles.view.GraphComponent} - */ - graphComponent:yfiles.view.GraphComponent; - /** - * Gets the list of commands that are available in this instance. - *

    - * By default, all supported commands are available - *

    - *

    - * Removing commands from this collection also removes the command bindings registered by this instance. - *

    - *

    - * Add supported commands to make them available in this instance. - *

    - *

    - * Supported commands are - *

    - *
      - *
    • {@link yfiles.input.ICommand#MOVE_LEFT}
    • - *
    • {@link yfiles.input.ICommand#MOVE_RIGHT}
    • - *
    • {@link yfiles.input.ICommand#MOVE_UP}
    • - *
    • {@link yfiles.input.ICommand#MOVE_DOWN}
    • - *
    • {@link yfiles.input.ICommand#MOVE_TO_PAGE_UP}
    • - *
    • {@link yfiles.input.ICommand#MOVE_TO_PAGE_DOWN}
    • - *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_BACK}
    • - *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_FORWARD}
    • - *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_UP}
    • - *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_DOWN}
    • - *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_PAGE_UP}
    • - *
    • {@link yfiles.input.ICommand#MOVE_FOCUS_PAGE_DOWN}
    • - *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_LEFT}
    • - *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_RIGHT}
    • - *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_UP}
    • - *
    • {@link yfiles.input.ICommand#EXTEND_SELECTION_DOWN}
    • - *
    • {@link yfiles.input.ICommand#SELECT_TO_PAGE_UP}
    • - *
    • {@link yfiles.input.ICommand#SELECT_TO_PAGE_DOWN}
    • - *
    - * @type {yfiles.collections.ICollection.} - */ - availableCommands:yfiles.collections.ICollection; - /** - * Gets or sets a value indicating whether to use the {@link yfiles.view.GraphComponent#currentItem} as a fallback for the commands if no item is provided in the - * parameter and the current selection is empty. - *

    - * This applies to the following commands: - *

    - *
      - *
    • {@link yfiles.input.ICommand#ENTER_GROUP}
    • - *
    • {@link yfiles.input.ICommand#EXPAND_GROUP}
    • - *
    • {@link yfiles.input.ICommand#COLLAPSE_GROUP}
    • - *
    • {@link yfiles.input.ICommand#TOGGLE_EXPANSION_STATE}
    • - *
    - * @default false - * @type {boolean} - */ - useCurrentItemForCommands:boolean; - /** - * Gets or sets the {@link yfiles.view.IGraphSelection} this mode operates on. - * @type {yfiles.view.IGraphSelection} - */ - graphSelection:yfiles.view.IGraphSelection; - /** - * Gets or sets the graph this mode operates on. - * @type {yfiles.graph.IGraph} - */ - graph:yfiles.graph.IGraph; - /** - * Gets or sets a value that determines whether it is allowed to {@link yfiles.input.NavigationInputMode#enterGroup enter group nodes} via the - * {@link yfiles.input.ICommand#ENTER_GROUP}. - *

    - * The default value is true. - *

    - * @see yfiles.input.NavigationInputMode#shouldEnterGroup - * @see yfiles.graph.FoldingManager - * @type {boolean} - */ - allowEnterGroup:boolean; - /** - * Gets or sets a value that determines whether it is allowed to collapse group nodes via the - * {@link yfiles.input.ICommand#COLLAPSE_GROUP}. - *

    - * The default value is true. - *

    - * @see yfiles.input.NavigationInputMode#collapseGroup - * @see yfiles.input.NavigationInputMode#shouldCollapseGroup - * @see yfiles.graph.FoldingManager - * @type {boolean} - */ - allowCollapseGroup:boolean; - /** - * Gets or sets a value that determines whether it is allowed to {@link yfiles.input.NavigationInputMode#expandGroup expand group nodes} via the - * {@link yfiles.input.ICommand#EXPAND_GROUP}. - *

    - * The default value is true. - *

    - * @see yfiles.input.NavigationInputMode#shouldExpandGroup - * @see yfiles.graph.FoldingManager - * @type {boolean} - */ - allowExpandGroup:boolean; - /** - * Gets or sets a value that determines whether it is allowed to {@link yfiles.input.NavigationInputMode#exitGroup exit the current group node} via the - * {@link yfiles.input.ICommand#EXIT_GROUP}. - *

    - * The default value is true. - *

    - * @see yfiles.input.NavigationInputMode#shouldExitGroup - * @see yfiles.graph.FoldingManager - * @default true - * @type {boolean} - */ - allowExitGroup:boolean; - /** - * Gets or sets a value that determines whether {@link yfiles.view.CanvasComponent#fitContent} or the FitContentCommand should be - * triggered after a group navigation action. - *

    - * The default value is true. - *

    - * @default true - * @type {boolean} - */ - fitContentAfterGroupActions:boolean; - /** - * Adds the given listener for the GroupCollapsing event that occurs before a group will be {@link yfiles.input.NavigationInputMode#collapseGroup Collapsed}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupCollapsingListener - */ - addGroupCollapsingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupCollapsing event that occurs before a group will be {@link yfiles.input.NavigationInputMode#collapseGroup Collapsed}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupCollapsingListener - */ - removeGroupCollapsingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the GroupCollapsed event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#collapseGroup Collapsed}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupCollapsedListener - */ - addGroupCollapsedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupCollapsed event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#collapseGroup Collapsed}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupCollapsedListener - */ - removeGroupCollapsedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the GroupExpanding event that occurs before a group will be {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupExpandingListener - */ - addGroupExpandingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupExpanding event that occurs before a group will be {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupExpandingListener - */ - removeGroupExpandingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the GroupExpanded event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupExpandedListener - */ - addGroupExpandedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupExpanded event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#expandGroup Expanded}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupExpandedListener - */ - removeGroupExpandedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the GroupEntering event that occurs before a group will be {@link yfiles.input.NavigationInputMode#enterGroup Entered}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupEnteringListener - */ - addGroupEnteringListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupEntering event that occurs before a group will be {@link yfiles.input.NavigationInputMode#enterGroup Entered}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupEnteringListener - */ - removeGroupEnteringListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the GroupEntered event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#enterGroup Entered}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupEnteredListener - */ - addGroupEnteredListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupEntered event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#enterGroup Entered}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupEnteredListener - */ - removeGroupEnteredListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the GroupExiting event that occurs before a group will be {@link yfiles.input.NavigationInputMode#exitGroup Exited}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupExitingListener - */ - addGroupExitingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupExiting event that occurs before a group will be {@link yfiles.input.NavigationInputMode#exitGroup Exited}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupExitingListener - */ - removeGroupExitingListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Adds the given listener for the GroupExited event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#exitGroup Exited}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. - * @see yfiles.input.NavigationInputMode#removeGroupExitedListener - */ - addGroupExitedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Removes the given listener for the GroupExited event that occurs whenever a group has been {@link yfiles.input.NavigationInputMode#exitGroup Exited}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. - * @see yfiles.input.NavigationInputMode#addGroupExitedListener - */ - removeGroupExitedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - static $class:yfiles.lang.Class; - } - export enum MoveFocusDirection{ - /** - * No direction. - */ - NONE, - /** - * In the direction of the negative x Axis. - */ - LEFT, - /** - * In the direction of the positive x Axis. - */ - RIGHT, - /** - * In the direction of the negative y Axis. - */ - UP, - /** - * In the direction of the positive y Axis. - */ - DOWN, - /** - * In the direction of the {@link yfiles.graph.IGraph#setParent parent} in the grouped graph. - */ - PARENT, - /** - * In the direction of the {@link yfiles.graph.IGraph#getChildren children} in the grouped graph. - */ - CHILD - } - export enum NodeAlignmentPolicy{ - /** - * Don't fix any specific point, only use the layout from the target state. - */ - NONE, - /** - * Fix the center point. - */ - CENTER, - /** - * Fix the upper left corner. - */ - TOP_LEFT, - /** - * Fix the lower left corner. - */ - BOTTOM_LEFT, - /** - * Fix the upper right corner. - */ - TOP_RIGHT, - /** - * Fix the lower right corner. - */ - BOTTOM_RIGHT, - /** - * Fix the uppermost center. - */ - TOP_CENTER, - /** - * Fix the lowermost center. - */ - BOTTOM_CENTER, - /** - * Fix the left center. - */ - CENTER_LEFT, - /** - * Fix the right center. - */ - CENTER_RIGHT - } - export enum OrthogonalEdgeEditingPolicy{ - /** - * Enables orthogonal edge creation or editing for a specific sub-aspect automatically if an {@link yfiles.input.OrthogonalEdgeEditingContext#enabled} {@link yfiles.input.OrthogonalEdgeEditingContext} - * instance is set in the {@link yfiles.input.GraphEditorInputMode#orthogonalEdgeEditingContext parent input mode}. - */ - AUTO, - /** - * Enables orthogonal edge creation or editing for a specific sub-aspect of edge creation. - */ - ALWAYS, - /** - * Disables orthogonal edge creation or editing for a specific sub-aspect of edge creation. - */ - NEVER - } - export enum SegmentOrientation{ - /** - * The segment has a horizontal orientation, which means that the end points should be moved vertically in synch so that - * the orientation is not destroyed. - */ - HORIZONTAL, - /** - * The segment has a vertical orientation, which means that the end points should be moved horizontally in synch so that - * the orientation is not destroyed. - */ - VERTICAL, - /** - * The segment does not need to be treated especially, both endpoints can be moved independently from each other. - */ - NON_ORTHOGONAL - } - /** - * Concrete {@link yfiles.input.SnapContext} implementation which handles snapping movement for {@link yfiles.graph.IGraph} items. - *

    - * This class provides a set of properties that determine the way snapping operations are being performed in the context of - * {@link yfiles.graph.IGraph}s. {@link yfiles.input.IPositionHandler} implementations and the like can use the following idiom to retrieve - * instances of this class: - *

    - *

    Related demos:

    - *
      - *
    • Tutorial: 01 Getting Started, step 15 Snapping
    • - *
    - * @see yfiles.input.GraphEditorInputMode - * @see yfiles.input.GraphEditorInputMode#snapContext - * @class yfiles.input.GraphSnapContext - * @extends {yfiles.input.SnapContext} - */ - export interface GraphSnapContext extends yfiles.input.SnapContext{} - export class GraphSnapContext { - /** - * Creates a new instance with default settings. - * @constructor - */ - constructor(); - /** - * Adds {@link yfiles.input.MovementInfo} representing an {@link yfiles.graph.IBend} that will be considered for the next drag gesture. - *

    - * The default {@link yfiles.input.IHandle} of an {@link yfiles.graph.IBend} calls this method in its {@link yfiles.input.IDragHandler#initializeDrag} - * method so snap results are calculated when this bend is repositioned. Custom {@link yfiles.input.IHandle} implementations can - * add infos created by {@link yfiles.input.GraphSnapContext#getMovementInfo}. - *

    - * @param {yfiles.input.MovementInfo} info The {@link yfiles.input.MovementInfo} representing the bend to be moved. Can be created with - * {@link yfiles.input.GraphSnapContext#getMovementInfo}. - */ - addBendToBeMoved(info:yfiles.input.MovementInfo):void; - /** - * Adds {@link yfiles.input.MovementInfo} representing the end of an {@link yfiles.graph.IEdge} that will be considered for the next drag - * gesture. - *

    - * The {@link yfiles.input.IHandle} returned by the default {@link yfiles.input.IEdgePortHandleProvider} of an {@link yfiles.graph.IEdge} calls - * this method in its {@link yfiles.input.IDragHandler#initializeDrag} method so snap results are calculated when reparenting this - * edge end. Custom {@link yfiles.input.IHandle} implementations can call {@link yfiles.input.GraphSnapContext#getMovementInfos} and add - * the first or last {@link yfiles.input.MovementInfo} of the returned list. - *

    - * @param {yfiles.input.MovementInfo} info The {@link yfiles.input.MovementInfo} representing the edge end to be reparented. Can be created with - * {@link yfiles.input.GraphSnapContext#getMovementInfos}. - * @param {boolean} sourceEnd true if the info represents the source end of the edge. - */ - addEdgeEndToBeMoved(info:yfiles.input.MovementInfo,sourceEnd:boolean):void; - /** - * Adds an item which will be reshaped. - * @param {yfiles.graph.IModelItem} item The item to be reshaped. - */ - addItemToBeReshaped(item:yfiles.graph.IModelItem):void; - /** - * Adds {@link yfiles.input.MovementInfo} representing an {@link yfiles.graph.INode} that will be considered for the next drag gesture. - *

    - * The default {@link yfiles.input.IPositionHandler} of an {@link yfiles.graph.INode} calls this method in its {@link yfiles.input.IDragHandler#initializeDrag} - * method so snap results are calculated when this node is repositioned. Custom {@link yfiles.input.IPositionHandler} - * implementations can add infos created by {@link yfiles.input.GraphSnapContext#getMovementInfo}. - *

    - * @param {yfiles.input.MovementInfo} info The {@link yfiles.input.MovementInfo} representing the node to be moved. Can be created with - * {@link yfiles.input.GraphSnapContext#getMovementInfo}. - */ - addNodeToBeMoved(info:yfiles.input.MovementInfo):void; - /** - * Adds an orthogonally moved segment to this context for which this instance will automatically collect - * {@link yfiles.input.SnapResult}s and provide a default visualization. - *

    - * This method can be called during initialization to collect orthogonal segments that should be tested against {@link yfiles.input.GraphSnapContext#fixedSegmentSnapLines} and {@link yfiles.input.GraphSnapContext#additionalSnapLines}. - *

    - * @param {yfiles.input.MovementInfo} start The starting point of the manipulated segment. - * @param {yfiles.input.MovementInfo} end The end point of the manipulated segment. - */ - addOrthogonalSegment(start:yfiles.input.MovementInfo,end:yfiles.input.MovementInfo):void; - /** - * Adds {@link yfiles.input.MovementInfo} representing an {@link yfiles.graph.IPort} that will be considered for the next drag gesture. - *

    - * The default {@link yfiles.input.IHandle} of an {@link yfiles.graph.IPort} calls this method in its {@link yfiles.input.IDragHandler#initializeDrag} - * method so snap results are calculated for this port. Custom {@link yfiles.input.IHandle} implementations can add infos created - * by {@link yfiles.input.GraphSnapContext#getMovementInfo}. - *

    - * @param {yfiles.input.MovementInfo} info The {@link yfiles.input.MovementInfo} representing the port to be moved. Can be created with - * {@link yfiles.input.GraphSnapContext#getMovementInfo}. - */ - addPortToBeMoved(info:yfiles.input.MovementInfo):void; - /** - * Adds an entry for the same-height-snapping. - *

    - * During {@link yfiles.input.SnapContext#isInitializing initialization} this method can be used to register entries that can later be retrieved using the {@link yfiles.input.GraphSnapContext#findSameHeightEntries} - * method. The rectangle will be used to obtain the height value and will also be used for the visualization of the snap - * result. - *

    - * @param {yfiles.geometry.Rect} rectangle The rectangle to obtain the height value from. This rectangle will be used for the snap result visualization. - * @see yfiles.input.GraphSnapContext#addSameWidthEntry - */ - addSameHeightEntry(rectangle:yfiles.geometry.Rect):void; - /** - * Adds an entry for the same-width-snapping. - *

    - * During {@link yfiles.input.SnapContext#isInitializing initialization} this method can be used to register entries that can later be retrieved using the {@link yfiles.input.GraphSnapContext#findSameWidthEntries} - * method. The rectangle will be used to obtain the width value and will also be used for the visualization of the snap - * result. - *

    - * @param {yfiles.geometry.Rect} rectangle The rectangle to obtain the width value from. This rectangle will be used for the snap result visualization. - * @see yfiles.input.GraphSnapContext#addSameHeightEntry - */ - addSameWidthEntry(rectangle:yfiles.geometry.Rect):void; - /** - * Collects the {@link yfiles.input.OrthogonalSnapLine}s for the nodes which are not moving. - *

    - * Delegates to the {@link yfiles.input.ISnapLineProvider} implementation in the lookup of the {@link yfiles.graph.INode}. - *

    - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt - * @protected - */ - collectFixedNodeSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; - /** - * Collects the {@link yfiles.input.OrthogonalSnapLine}s for the ports which are not moving. - *

    - * Delegates to the {@link yfiles.input.ISnapLineProvider} implementation in the lookup of the {@link yfiles.graph.IPort}. - *

    - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt - * @protected - */ - collectFixedPortSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; - /** - * Collects snap lines for edge segments. - *

    - * Delegates to the {@link yfiles.input.ISnapLineProvider} implementation in the lookup of the {@link yfiles.graph.IEdge}. This - * implementation should then make us of {@link yfiles.input.GraphSnapContext#getMovementInfos} to determine what segments are - * fixed. - *

    - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt - * @protected - */ - collectFixedSegmentSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; - /** - * Collects all node widths and heights in the collections {@link yfiles.input.GraphSnapContext#findSameWidthEntries} and - * {@link yfiles.input.GraphSnapContext#findSameHeightEntries}. - *

    - * This method will only be called if {@link yfiles.input.GraphSnapContext#collectNodeSizes} is enabled and delegates to {@link yfiles.input.GraphSnapContext#addSameHeightEntry} and - * {@link yfiles.input.GraphSnapContext#addSameWidthEntry}. - *

    - * @protected - */ - collectSameSizeEntries():void; - /** - * Finds pairs of nodes that are visually adjacent to create {@link yfiles.input.GraphSnapContext#collectNodePairCenterSnapLines center} and {@link yfiles.input.GraphSnapContext#collectNodePairSnapLines same distance} snap lines. - * @protected - */ - collectVisibleNodePairs():void; - /** - * Finds the entries ({@link yfiles.geometry.Rect}s) that have been registered using the {@link yfiles.input.GraphSnapContext#addSameHeightEntry} - * previously that best match the given constraints. - * @param {number} size The size to find the closest set of identical sizes. - * @param {number} maxSize The maximum allowed size. - * @param {number} minSize The minimum allowed size. - * @returns {yfiles.collections.IListEnumerable.} The set of rectangles that have been added previously using {@link yfiles.input.GraphSnapContext#addSameHeightEntry}. - */ - findSameHeightEntries(size:number,maxSize:number,minSize:number):yfiles.collections.IListEnumerable; - /** - * Finds the entries ({@link yfiles.geometry.Rect}s) that have been registered using the {@link yfiles.input.GraphSnapContext#addSameWidthEntry} - * previously that best match the given constraints. - * @param {number} size The size to find the closest set of identical sizes. - * @param {number} maxSize The maximum allowed size. - * @param {number} minSize The minimum allowed size. - * @returns {yfiles.collections.IListEnumerable.} The set of rectangles that have been added previously using {@link yfiles.input.GraphSnapContext#addSameWidthEntry}. - */ - findSameWidthEntries(size:number,maxSize:number,minSize:number):yfiles.collections.IListEnumerable; - /** - * Gets a subset of {@link yfiles.input.GraphSnapContext#additionalSnapLines} that matches the given orientation, snapType and intersects with the provided area. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the lines to return. - * @param {yfiles.input.SnapLineSnapTypes} snapType The snap type to be included. - * @param {yfiles.geometry.Rect} area The area to test for intersection. - * @returns {yfiles.collections.IEnumerable.} An enumerable of the snap lines that match the provided criteria. - */ - getAdditionalSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; - /** - * Gets a subset of {@link yfiles.input.GraphSnapContext#fixedNodeSnapLines} that matches the given orientation, snapType and intersects with the provided area. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the lines to return. - * @param {yfiles.input.SnapLineSnapTypes} snapType The snap type to be included. - * @param {yfiles.geometry.Rect} area The area to test for intersection. - * @returns {yfiles.collections.IEnumerable.} An enumerable of the snap lines that match the provided criteria. - */ - getFixedNodeSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; - /** - * Gets a subset of {@link yfiles.input.GraphSnapContext#fixedPortSnapLines} that matches the given orientation, snapType and intersects with the provided area. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the lines to return. - * @param {yfiles.input.SnapLineSnapTypes} snapType The snap type to be included. - * @param {yfiles.geometry.Rect} area The area to test for intersection. - * @returns {yfiles.collections.IEnumerable.} An enumerable of the snap lines that match the provided criteria. - */ - getFixedPortSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; - /** - * Gets a subset of {@link yfiles.input.GraphSnapContext#fixedSegmentSnapLines} that matches the given orientation, snapType and intersects with the provided area. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the lines to return. - * @param {yfiles.input.SnapLineSnapTypes} snapType The snap type to be included. - * @param {yfiles.geometry.Rect} area The area to test for intersection. - * @returns {yfiles.collections.IEnumerable.} An enumerable of the snap lines that match the provided criteria. - */ - getFixedSegmentSnapLines(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,area:yfiles.geometry.Rect):yfiles.collections.IEnumerable; - /** - * Gets the movement info for the given port. - *

    - * This is either the info passed to {@link yfiles.input.GraphSnapContext#addNodeToBeMoved} or another, dynamically created - * instance, if no specific one had been registered. - *

    - * @param {yfiles.graph.IPort} port The port to obtain the info for. - * @returns {yfiles.input.MovementInfo} An instance of {@link yfiles.input.MovementInfo} that describes the movement of the port. - */ - getMovementInfo(port:yfiles.graph.IPort):yfiles.input.MovementInfo; - /** - * Gets the movement info for the given node. - *

    - * This is either the info passed to {@link yfiles.input.GraphSnapContext#addNodeToBeMoved} or another, dynamically created - * instance, if no specific one had been registered. - *

    - * @param {yfiles.graph.INode} node The node to obtain the info for. - * @returns {yfiles.input.MovementInfo} An instance of {@link yfiles.input.MovementInfo} that describes the movement of the node. - */ - getMovementInfo(node:yfiles.graph.INode):yfiles.input.MovementInfo; - /** - * Gets the movement info for the given bend. - *

    - * This is either the info passed to {@link yfiles.input.GraphSnapContext#addBendToBeMoved} or a dynamically created instance if no - * specific one had been registered. - *

    - * @param {yfiles.graph.IBend} bend The bend to obtain the info for. - * @returns {yfiles.input.MovementInfo} An instance of {@link yfiles.input.MovementInfo} that describes the movement of the bend. - */ - getMovementInfo(bend:yfiles.graph.IBend):yfiles.input.MovementInfo; - /** - * Gets the {@link yfiles.input.MovementInfo movement information} for the provided edge. - *

    - * The result describes the shape of the edge and the reshaping behavior of the geometry. The first element in the - * enumerable is the source end of the edge, followed by bend like elements and the target side. Note that it cannot in - * general be assumed {@link yfiles.input.MovementInfo#movedItem} of the first and last element is either a {@link yfiles.graph.IPort} or {@link yfiles.graph.IEdge}, also items in - * between may not necessarily be bound to {@link yfiles.graph.IBend}s and therefore their {@link yfiles.input.MovementInfo#movedItem} can be of a different type than - * {@link yfiles.graph.IBend}. - *

    - * @param {yfiles.graph.IEdge} edge The edge to obtain the movement information of. - * @returns {yfiles.collections.IListEnumerable.} An {@link yfiles.collections.IListEnumerable.} of {@link yfiles.input.MovementInfo}s items that describe the geometry of the edge being modified. - */ - getMovementInfos(edge:yfiles.graph.IEdge):yfiles.collections.IListEnumerable; - /** - * Raises the {@link yfiles.input.GraphSnapContext#addCollectSnapLinesListener CollectSnapLines} event. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The {@link yfiles.input.CollectGraphSnapLinesEventArgs} instance containing the event data. - * @protected - */ - onCollectSnapLines(evt:yfiles.input.CollectGraphSnapLinesEventArgs):void; - /** - * Gets the nodes that stay fixed for the current edit. - * @protected - * @type {yfiles.collections.ICollection.} - */ - fixedNodes:yfiles.collections.ICollection; - /** - * Adds the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to - * collect {@link yfiles.input.OrthogonalSnapLine}s. - *

    - * Event handlers should add snap lines to the caller using the methods provided by - * {@link yfiles.input.CollectGraphSnapLinesEventArgs}. - *

    - * @param {function(Object, yfiles.input.CollectGraphSnapLinesEventArgs): void} listener The listener to add. - * @see yfiles.input.GraphSnapContext#removeCollectSnapLinesListener - */ - addCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectGraphSnapLinesEventArgs)=>void):void; - /** - * Removes the given listener for the CollectSnapLines event that occurs every time this instance has been {@link yfiles.input.SnapContext#dragInitialized initialized} to - * collect {@link yfiles.input.OrthogonalSnapLine}s. - *

    - * Event handlers should add snap lines to the caller using the methods provided by - * {@link yfiles.input.CollectGraphSnapLinesEventArgs}. - *

    - * @param {function(Object, yfiles.input.CollectGraphSnapLinesEventArgs): void} listener The listener to remove. - * @see yfiles.input.GraphSnapContext#addCollectSnapLinesListener - */ - removeCollectSnapLinesListener(listener:(sender:Object,evt:yfiles.input.CollectGraphSnapLinesEventArgs)=>void):void; - /** - * Determines whether this instance should collect {@link yfiles.input.GraphSnapContext#fixedSegmentSnapLines fixed snap lines} for edge segments. - *

    - * The default is true. - *

    - * @see yfiles.input.ISnapLineProvider - * @see yfiles.input.GraphSnapContext#collectFixedSegmentSnapLines - * @default true - * @type {boolean} - */ - collectEdgeSnapLines:boolean; - /** - * Determines whether this instance should collect the sizes of fixed nodes. - *

    - * The default is true. - *

    - * @see yfiles.input.GraphSnapContext#collectSameSizeEntries - * @default true - * @type {boolean} - */ - collectNodeSizes:boolean; - /** - * Determines whether this instance should collect {@link yfiles.input.GraphSnapContext#fixedNodeSnapLines fixed snap lines} for nodes. - *

    - * The default is true. - *

    - * @see yfiles.input.ISnapLineProvider - * @see yfiles.input.GraphSnapContext#collectFixedNodeSnapLines - * @default true - * @type {boolean} - */ - collectNodeSnapLines:boolean; - /** - * Determines whether this instance should collect {@link yfiles.input.GraphSnapContext#fixedPortSnapLines fixed snap lines} for ports. - *

    - * The default is true. - *

    - * @see yfiles.input.ISnapLineProvider - * @see yfiles.input.GraphSnapContext#collectFixedPortSnapLines - * @default true - * @type {boolean} - */ - collectPortSnapLines:boolean; - /** - * Whether this context will automatically snap the movements of bends so that the two adjacent segments become - * horizontally or vertically oriented. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - snapBendAdjacentSegments:boolean; - /** - * Whether this context will automatically snap the movements of nodes so that the first and last segments of edges become - * orthogonal. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - snapPortAdjacentSegments:boolean; - /** - * Determines whether this context will automatically snap orthogonal edge segments to snap lines. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - snapSegmentsToSnapLines:boolean; - /** - * Whether this context will automatically snap the bends to snap lines. - *

    - * The default is false. - *

    - * @default false - * @type {boolean} - */ - snapBendsToSnapLines:boolean; - /** - * Whether {@link yfiles.input.INodeSnapResultProvider} implementations should snap nodes to snap lines. - *

    - * The default is true. - *

    - * @default true - * @type {boolean} - */ - snapNodesToSnapLines:boolean; - /** - * The preferred distance between node borders. - *

    - * This will influence the creation of the node snap lines. For each fixed node there will be snap lines on the borders of - * the node itself and around the node at the specified distance. - *

    - *

    - * The default is 0.0d which disables distant snap lines around the nodes. - *

    - * @default 0.0 - * @type {number} - */ - nodeToNodeDistance:number; - /** - * The preferred distance between node borders and edge segments. T - *

    - * This will influence the creation of the node snap lines. For each fixed node there will be snap lines on the borders of - * the node itself and around the node at the specified distance to which orthogonal edge segments can snap. - *

    - *

    - * The default is -1.0d which disables distant snap lines around the nodes for edge segments. - *

    - * @default -1.0 - * @type {number} - */ - nodeToEdgeDistance:number; - /** - * Gets the preferred distance between edges. - *

    - * This will influence the creation of the segment snap lines. For each orthogonally oriented fixed segment there will be - * snap lines on the segment itself and to both sides of the segment at the specified distance. - *

    - *

    - * The default is 0.0d which disables parallel snap lines. - *

    - * @default 0.0 - * @type {number} - */ - edgeToEdgeDistance:number; - /** - * Determines whether this context will automatically snap the movement in such a way that the overall move gesture is - * constrained to the horizontal or vertical axis. - *

    - * The default is false. - *

    - * @default false - * @type {boolean} - */ - snapOrthogonalMovement:boolean; - /** - * Determines whether this instance will try to align the centers of adjacent nodes so that their centers are equally far - * away from each other. - *

    - * Note that this will only make a difference for differently sized nodes. - *

    - *

    - * By default this feature is turned off, so that the instance will try to distribute nodes evenly, so that there is the - * same spacing between their borders, not between their centers. - *

    - * @default false - * @type {boolean} - */ - collectNodePairCenterSnapLines:boolean; - /** - * Gets or sets a value indicating whether this instance will collect pairs of adjacent nodes and add snapping logic so - * that moved nodes will snap so that the distances to the adjacent nodes are equal. - * @default true - * @type {boolean} - */ - collectNodePairSnapLines:boolean; - /** - * Gets or sets a value indicating whether this instance will collect pairs of adjacent nodes and add snapping logic so - * that moved edge segments will snap so that the distances to the adjacent nodes are equal. - * @default true - * @type {boolean} - */ - collectNodePairSegmentSnapLines:boolean; - /** - * Gets or sets the type of the grid snapping that should be performed. - *

    - * Determines which grid elements an object should snap to. - *

    - * @see yfiles.input.GraphSnapContext#nodeGridConstraintProvider - * @see yfiles.input.GraphSnapContext#bendGridConstraintProvider - * @see yfiles.input.GraphSnapContext#portGridConstraintProvider - * @default 0 - * @type {yfiles.input.GridSnapTypes} - */ - gridSnapType:yfiles.input.GridSnapTypes; - /** - * Gets or sets the GridSnapDistance. - *

    - * The maximum distance between the current mouse coordinates and the coordinates to which the mouse will snap. The - * distance is interpreted in view coordinates. - *

    - * @default 10.0 - * @type {number} - */ - gridSnapDistance:number; - /** - * Gets or sets the grid constraint provider for the {@link yfiles.graph.INode}s. - * @type {yfiles.input.IGridConstraintProvider.} - */ - nodeGridConstraintProvider:yfiles.input.IGridConstraintProvider; - /** - * Gets or sets the grid constraint provider for the {@link yfiles.graph.IBend}s. - * @type {yfiles.input.IGridConstraintProvider.} - */ - bendGridConstraintProvider:yfiles.input.IGridConstraintProvider; - /** - * Gets or sets the grid constraint provider for the {@link yfiles.graph.IPort}s. - * @type {yfiles.input.IGridConstraintProvider.} - */ - portGridConstraintProvider:yfiles.input.IGridConstraintProvider; - /** - * Gets or sets the amount by which snap lines that are induced by existing edge segments and node borders are being - * extended. - *

    - * The default is 40.0d, this value will be used to extend the ends of the snap lines. - *

    - * @default 40.0 - * @type {number} - */ - snapLineExtension:number; - /** - * Gets or sets a value indicating whether to crop the snap lines at obstacles. - *

    - * The default is true - *

    - * @type {boolean} - */ - cropSnapLines:boolean; - /** - * The collection of {@link yfiles.input.OrthogonalSnapLine}s for fixed nodes. - *

    - * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. - *

    - * @see yfiles.input.GraphSnapContext#getFixedNodeSnapLines - * @type {yfiles.collections.IEnumerable.} - */ - fixedNodeSnapLines:yfiles.collections.IEnumerable; - /** - * The collection of {@link yfiles.input.OrthogonalSnapLine}s for fixed segments. - *

    - * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. - *

    - * @see yfiles.input.GraphSnapContext#getFixedSegmentSnapLines - * @type {yfiles.collections.IEnumerable.} - */ - fixedSegmentSnapLines:yfiles.collections.IEnumerable; - /** - * The collection of {@link yfiles.input.OrthogonalSnapLine}s to which ports should be snapping. - *

    - * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. - *

    - * @see yfiles.input.GraphSnapContext#getFixedPortSnapLines - * @type {yfiles.collections.IEnumerable.} - */ - fixedPortSnapLines:yfiles.collections.IEnumerable; - /** - * The collection of additional {@link yfiles.input.OrthogonalSnapLine}s. - *

    - * This collection is only available if {@link yfiles.input.SnapContext#isInitialized} is true. - *

    - * @see yfiles.input.GraphSnapContext#getAdditionalSnapLines - * @type {yfiles.collections.IEnumerable.} - */ - additionalSnapLines:yfiles.collections.IEnumerable; - static $class:yfiles.lang.Class; - } - export enum MoveTypes{ - /** - * The element does not move at all during the edit. - */ - FIXED, - /** - * The element moves linearly with the mouse in horizontal direction. - */ - LINEAR_MOVE_X, - /** - * The element moves linearly with the mouse in vertical direction. - */ - LINEAR_MOVE_Y, - /** - * The element moves linearly with the mouse in both directions. - */ - LINEAR_MOVE, - /** - * The element moves in horizontal direction but not linearly/predictably with the mouse. - *

    - * A typical example is a port whose position is adjusted during a resize of its owning node. - *

    - *

    - * Elements which do not move linearly with the mouse cannot snap to a defined position. - *

    - */ - ARBITRARY_MOVE_X, - /** - * The element moves in vertical direction but not linearly/predictably with the mouse. - *

    - * A typical example is a port whose position is adjusted during a resize of its owning node. - *

    - *

    - * Elements which do not move linearly with the mouse cannot snap to a defined position. - *

    - */ - ARBITRARY_MOVE_Y, - /** - * The element moves in both directions but not linearly/predictably with the mouse. - *

    - * A typical example is a port whose position is adjusted during a resize of its owning node. - *

    - *

    - * Elements which do not move linearly with the mouse cannot snap to a defined position. - *

    - */ - ARBITRARY_MOVE, - /** - * The bitwise combination of {@link yfiles.input.MoveTypes#LINEAR_MOVE_X} and {@link yfiles.input.MoveTypes#ARBITRARY_MOVE_X} - */ - MOVEMENT_X, - /** - * The bitwise combination of {@link yfiles.input.MoveTypes#LINEAR_MOVE_Y} and {@link yfiles.input.MoveTypes#ARBITRARY_MOVE_Y} - */ - MOVEMENT_Y - } - /** - * A helper class that is used in the context of {@link yfiles.input.GraphSnapContext} to describe the movement of entities during - * the edit process. - * @class yfiles.input.MovementInfo - */ - export interface MovementInfo extends Object{} - export class MovementInfo { - /** - * Initializes a new instance of the {@link yfiles.input.MovementInfo} class. - * @param {yfiles.geometry.Point} originalLocation The original location. - * @param {yfiles.input.MoveTypes} moveType The type of the move. - * @param {yfiles.graph.IModelItem} movedItem The item that is being moved. - * @protected - * @constructor - */ - constructor(originalLocation:yfiles.geometry.Point,moveType:yfiles.input.MoveTypes,movedItem:yfiles.graph.IModelItem); - /** - * Gets the new x coordinate of the element if the mouse has been moved by dx during the gesture. - *

    - * This takes the {@link yfiles.input.MovementInfo#moveType} and {@link yfiles.input.MovementInfo#originalLocation} into account. - *

    - * @param {number} dx The delta x coordinate. - * @returns {number} The new x coordinate. - */ - getX(dx:number):number; - /** - * Gets the new y coordinate of the element if the mouse has been moved by dy during the gesture. - *

    - * This takes the {@link yfiles.input.MovementInfo#moveType} and {@link yfiles.input.MovementInfo#originalLocation} into account. - *

    - * @param {number} dy The delta y coordinate. - * @returns {number} The new y coordinate. - */ - getY(dy:number):number; - /** - * Determines whether this instances moves synchronized with the provided info. - * @param {yfiles.input.MovementInfo} info The info to check. - * @returns {boolean} Whether this info and the given info move horizontally synchronized. - * @see yfiles.input.MovementInfo#horizontalAnchor - */ - movesHorizontallySynchronizedWith(info:yfiles.input.MovementInfo):boolean; - /** - * Determines whether this instances moves synchronized with the provided info. - * @param {yfiles.input.MovementInfo} info The info to check. - * @returns {boolean} Whether this info and the given info move vertically synchronized. - * @see yfiles.input.MovementInfo#verticalAnchor - */ - movesVerticallySynchronizedWith(info:yfiles.input.MovementInfo):boolean; - /** - * Gets the item that is being moved. - * @type {yfiles.graph.IModelItem} - */ - movedItem:yfiles.graph.IModelItem; - /** - * Gets or sets the horizontal movement info to which this info is anchored horizontally. - *

    - * This info can be declared to be implicitly anchored to another info. Method {@link yfiles.input.MovementInfo#movesHorizontallySynchronizedWith} - * will try to match against the anchors to determine if two infos are moving synchronized. - *

    - * @type {yfiles.input.MovementInfo} - */ - horizontalAnchor:yfiles.input.MovementInfo; - /** - * Gets or sets the vertical movement info to which this info is anchored vertically. - *

    - * This info can be declared to be implicitly anchored to another info. Method {@link yfiles.input.MovementInfo#movesVerticallySynchronizedWith} - * will try to match against the anchors to determine if two infos are moving synchronized. - *

    - * @type {yfiles.input.MovementInfo} - */ - verticalAnchor:yfiles.input.MovementInfo; - /** - * Gets the original location of the element at the time the editing started. - * @type {yfiles.geometry.Point} - */ - originalLocation:yfiles.geometry.Point; - /** - * Gets the current location as a live point. - * @abstract - * @type {yfiles.geometry.IPoint} - */ - currentLocation:yfiles.geometry.IPoint; - /** - * Indicates the type of the movement for this instance. - * @type {yfiles.input.MoveTypes} - */ - moveType:yfiles.input.MoveTypes; - /** - * Gets a value indicating whether the y coordinate of the item is fixed during the move operation. - * @type {boolean} - */ - isVerticallyFixed:boolean; - /** - * Gets a value indicating whether the x coordinate of the item is fixed during the move operation. - * @type {boolean} - */ - isHorizontallyFixed:boolean; - static $class:yfiles.lang.Class; - } - /** - * A snap line is a line segment in the world coordinate system to which other items (lines or points) snap during - * interactive movements. - *

    - * {@link yfiles.input.GraphSnapContext} and {@link yfiles.input.LabelSnapContext} make use of this class to interactively snap moving - * elements to snap lines. - *

    - * @class yfiles.input.SnapLine - */ - export interface SnapLine extends Object{} - export class SnapLine { - /** - * Creates a new snap line using the provided attributes. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {yfiles.geometry.Point} from The first location that delimits this snap line. - * @param {yfiles.geometry.Point} to The second location that delimits this snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @constructor - */ - constructor(snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:yfiles.geometry.Point,to:yfiles.geometry.Point,tag:Object,weight:number); - /** - * Resource key which determines a snap line having a fixed visualization independent of the {@link yfiles.input.SnapResult}. + * An event recognizer that recognizes when any key has been pressed. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_FIXED_LINE_KEY:string; + static KEY_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a snap line with three special locations, for example the start, end and center of an edge - * segment. + * An event recognizer that recognizes when any key has been typed. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_EDGE_SEGMENT_KEY:string; + static KEY_TYPED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a grid snap line having a fixed visualization independent of the {@link yfiles.input.SnapResult}. + * An event recognizer that recognizes when any key has been released. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static GRID_LINE_FIXED_LINE_KEY:string; + static KEY_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a decorated snap line between the {@link yfiles.input.SnapLine#coordinates} and the snapped coordinates. + * An event recognizer that recognizes when escape has been pressed. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_VARIABLE_LINE_KEY:string; + static ESCAPE_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a blank line between the {@link yfiles.input.SnapLine#coordinates} and the snapped coordinates. + * An event recognizer that recognizes when delete has been pressed. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_BLANK_VARIABLE_LINE_KEY:string; + static DELETE_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a decorated line between the {@link yfiles.input.SnapLine#coordinates} and the snapped coordinates that is extended on both sides. + * An event recognizer that recognizes when escape has been released. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_EXTENDED_VARIABLE_LINE_KEY:string; + static ESCAPE_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a snap line which lets an item snap in a defined distance to another graph item. + * An event recognizer that recognizes when the shift modifier is active. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_FIXED_DISTANCE_KEY:string; + static SHIFT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a snap line which lets an item snap in the center between the bounds of two other items. + * An event recognizer that recognizes when the alt modifier is active. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_CENTER_BETWEEN_BOUNDS_KEY:string; + static ALT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a snap line which lets an item snap in the center between the centers of two other items. + * An event recognizer that recognizes when the ctrl modifier is active. * @const * @static - * @type {string} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - static SNAP_LINE_CENTER_BETWEEN_CENTERS_KEY:string; + static CONTROL_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Resource key which determines a snap line which lets an item snap if it has an equal distance to two other items. - * @const - * @static - * @type {string} - */ - static SNAP_LINE_EQUAL_DISTANCE_BETWEEN_BOUNDS_KEY:string; - /** - * Resource key which determines a snap line which lets an item snap if it's center has an equal distance to the centers' - * of two other items. - * @const - * @static - * @type {string} - */ - static SNAP_LINE_EQUAL_DISTANCE_BETWEEN_CENTERS_KEY:string; - /** - * Resource key which determines the snapping of a resized item if it's new width is equal to another item. - * @const - * @static - * @type {string} - */ - static SNAP_LINE_EQUAL_WIDTH_KEY:string; - /** - * Resource key which determines the snapping of a resized item if it's new height is equal to another item. - * @const - * @static - * @type {string} - */ - static SNAP_LINE_EQUAL_HEIGHT_KEY:string; - /** - * Resource key which determines the snapping of an item to a grid position. - * @const - * @static - * @type {string} - */ - static SNAP_TO_GRID_KEY:string; - /** - * Resource key which determines the {@link yfiles.view.Stroke} used for the snap line visualization. - * @const - * @static - * @type {string} - */ - static SNAP_LINE_STROKE_KEY:string; - /** - * The type of the line that describes how other items will snap to this line. + * An event recognizer that recognizes when the Meta modifier is active. *

    - * his is one of {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, - * {@link yfiles.input.SnapLineSnapTypes#LEFT}, {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - *

    - * @type {yfiles.input.SnapLineSnapTypes} - */ - snapType:yfiles.input.SnapLineSnapTypes; - /** - * The coordinates of the center point of the snap line. - * @type {yfiles.geometry.Point} - */ - coordinates:yfiles.geometry.Point; - /** - * The tag that is associated with this snap line. The tag is most commonly used for the {@link yfiles.input.SnapResult#tag snap result tag}. - * @type {Object} - */ - tag:Object; - /** - * The weight/importance of this snap line. - *

    - * Greater values indicate greater importance. - *

    - * @type {number} - */ - weight:number; - /** - * The first location that delimits this snap line. - * @type {yfiles.geometry.Point} - */ - from:yfiles.geometry.Point; - /** - * The second location that delimits this snap line. - * @type {yfiles.geometry.Point} - */ - to:yfiles.geometry.Point; - /** - * The resource key which determines the visual appearance of the snap line. - * @type {string} - */ - resourceKey:string; - static $class:yfiles.lang.Class; - } - /** - * An orthogonal snap line, in other words, one that is parallel to the x or y axis. - * @class yfiles.input.OrthogonalSnapLine - * @extends {yfiles.input.SnapLine} - */ - export interface OrthogonalSnapLine extends yfiles.input.SnapLine{} - export class OrthogonalSnapLine { - /** - * Creates a new snap line using the provided attributes. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @constructor - */ - constructor(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); - /** - * Creates a new snap line using the provided attributes. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {number} from The smaller value of the coordinate that delimits this snap line. - * @param {number} to The greater value of the coordinate that delimits this snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @constructor - */ - constructor(orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); - /** - * The orientation of the snap line. - *

    - * This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or {@link yfiles.input.SnapLineOrientation#VERTICAL}. - *

    - * @type {yfiles.input.SnapLineOrientation} - */ - orientation:yfiles.input.SnapLineOrientation; - static $class:yfiles.lang.Class; - } - /** - * A specialized {@link yfiles.input.OrthogonalSnapLine} that stores a {@link yfiles.input.NodeBasedSnapLine#node} as additional information that can be used for the - * visualization. - * @class yfiles.input.NodeBasedSnapLine - * @extends {yfiles.input.OrthogonalSnapLine} - */ - export interface NodeBasedSnapLine extends yfiles.input.OrthogonalSnapLine{} - export class NodeBasedSnapLine { - /** - * Initializes a new instance of the {@link yfiles.input.NodeBasedSnapLine} class. - * @param {yfiles.graph.INode} node The node to assign to {@link yfiles.input.NodeBasedSnapLine#node}. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @param {number} from The smaller value of the coordinate that delimits this snap line. - * @param {number} to The greater value of the coordinate that delimits this snap line. - * @constructor - */ - constructor(node:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); - /** - * Initializes a new instance of the {@link yfiles.input.NodeBasedSnapLine} class. - * @param {yfiles.graph.INode} node The node to assign to {@link yfiles.input.NodeBasedSnapLine#node}. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @constructor - */ - constructor(node:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); - /** - * Gets the node that is associated with this snap line. - *

    - * Usually this is the instance that induced this snap line. - *

    - * @type {yfiles.graph.INode} - */ - node:yfiles.graph.INode; - static $class:yfiles.lang.Class; - } - /** - * A specialized {@link yfiles.input.OrthogonalSnapLine} that stores two {@link yfiles.graph.INode nodes} as additional information that can be used for the - * visualization. - * @see yfiles.input.NodePairBasedSnapLine#firstNode - * @see yfiles.input.NodePairBasedSnapLine#secondNode - * @class yfiles.input.NodePairBasedSnapLine - * @extends {yfiles.input.OrthogonalSnapLine} - */ - export interface NodePairBasedSnapLine extends yfiles.input.OrthogonalSnapLine{} - export class NodePairBasedSnapLine { - /** - * Initializes a new instance of the {@link yfiles.input.NodePairBasedSnapLine} class. - * @param {yfiles.graph.INode} firstNode The first node to assign to {@link yfiles.input.NodePairBasedSnapLine#firstNode}. - * @param {yfiles.graph.INode} secondNode The second node to assign to {@link yfiles.input.NodePairBasedSnapLine#secondNode}. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @param {number} from The smaller value of the coordinate that delimits this snap line. - * @param {number} to The greater value of the coordinate that delimits this snap line. - * @constructor - */ - constructor(firstNode:yfiles.graph.INode,secondNode:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); - /** - * Initializes a new instance of the {@link yfiles.input.NodePairBasedSnapLine} class. - * @param {yfiles.graph.INode} firstNode The first node to assign to {@link yfiles.input.NodePairBasedSnapLine#firstNode}. - * @param {yfiles.graph.INode} secondNode The second node to assign to {@link yfiles.input.NodePairBasedSnapLine#secondNode}. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @constructor - */ - constructor(firstNode:yfiles.graph.INode,secondNode:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); - /** - * Gets the first node that is associated with this snap line. - *

    - * Usually this is one of the instances that induced this snap line. - *

    - * @type {yfiles.graph.INode} - */ - firstNode:yfiles.graph.INode; - /** - * Gets the second node that is associated with this snap line. - *

    - * Usually this is one of the instances that induced this snap line. - *

    - * @type {yfiles.graph.INode} - */ - secondNode:yfiles.graph.INode; - static $class:yfiles.lang.Class; - } - /** - * A specialized {@link yfiles.input.OrthogonalSnapLine} that stores a {@link yfiles.input.PointBasedSnapLine#point} instance as additional information that can be used for the - * visualization. - * @class yfiles.input.PointBasedSnapLine - * @extends {yfiles.input.OrthogonalSnapLine} - */ - export interface PointBasedSnapLine extends yfiles.input.OrthogonalSnapLine{} - export class PointBasedSnapLine { - /** - * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. - * @param {yfiles.geometry.IPoint} point The point to assign to {@link yfiles.input.PointBasedSnapLine#point}. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @param {number} from The smaller value of the coordinate that delimits this snap line. - * @param {number} to The greater value of the coordinate that delimits this snap line. - * @constructor - */ - constructor(point:yfiles.geometry.IPoint,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,from:number,to:number,tag:Object,weight:number); - /** - * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. - * @param {yfiles.geometry.IPoint} point The point to assign to {@link yfiles.input.PointBasedSnapLine#point}. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the snap line. This is one of {@link yfiles.input.SnapLineOrientation#HORIZONTAL} or - * {@link yfiles.input.SnapLineOrientation#VERTICAL}. - * @param {yfiles.input.SnapLineSnapTypes} snapType The type of the line that describes how other items will snap to this line. This is one of - * {@link yfiles.input.SnapLineSnapTypes#TOP}, {@link yfiles.input.SnapLineSnapTypes#BOTTOM}, {@link yfiles.input.SnapLineSnapTypes#LEFT}, - * {@link yfiles.input.SnapLineSnapTypes#RIGHT}, or {@link yfiles.input.SnapLineSnapTypes#CENTER}. - * @param {string} resourceKey A resource key which determines the visual representation of this snap line. - * @param {yfiles.geometry.Point} coordinates The coordinates of the center point of the snap line. - * @param {Object} tag A tag that is associated with this snap line - see {@link yfiles.input.SnapLine#tag} for a typical use of this value. - * @param {number} weight The weight (importance) of this snap line. If more than one snap line is snapped to, the one with the greater weight - * will be used. - * @constructor - */ - constructor(point:yfiles.geometry.IPoint,orientation:yfiles.input.SnapLineOrientation,snapType:yfiles.input.SnapLineSnapTypes,resourceKey:string,coordinates:yfiles.geometry.Point,tag:Object,weight:number); - /** - * Gets the point that is associated with this snap line. - *

    - * Usually this is the instance that induced this snap line. - *

    - * @type {yfiles.geometry.IPoint} - */ - point:yfiles.geometry.IPoint; - static $class:yfiles.lang.Class; - } - /** - * A specialized {@link yfiles.input.SnapLine} that is parallel to an edge segment and stores that edge. - *

    - * In addition to the line itself, this class has three special nape locations the represent the source, center and end - * location of the related edge segment. All snap lines of this type have the {@link yfiles.input.SnapLine#snapType} {@link yfiles.input.SnapLineSnapTypes#CENTER} and - * the {@link yfiles.input.SnapLine#resourceKey} {@link yfiles.input.SnapLine#SNAP_LINE_EDGE_SEGMENT_KEY}. - *

    - * @class yfiles.input.EdgeSegmentSnapLine - * @extends {yfiles.input.SnapLine} - */ - export interface EdgeSegmentSnapLine extends yfiles.input.SnapLine{} - export class EdgeSegmentSnapLine { - /** - * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. - * @param {yfiles.graph.IEdge} edge The edge to assign to {@link yfiles.input.EdgeSegmentSnapLine#edge}. - * @param {yfiles.geometry.Point} from The first location that delimits this snap line. - * @param {yfiles.geometry.Point} to The second location that delimits this snap line. - * @param {yfiles.geometry.Point} segmentSource The location that represents the source of the related segment on this line. - * @param {yfiles.geometry.Point} segmentTarget The location that represents the target of the related segment on this line. - * @param {number} distance The distance of this snap line from its related edge segment. - * @param {number} segmentIndex The segment index of the related edge segment. - * @param {Object} tag A tag that is associated with this snap line. - * @param {number} weight The weight (importance) of this snap line. - * @constructor - */ - constructor(edge:yfiles.graph.IEdge,from:yfiles.geometry.Point,to:yfiles.geometry.Point,segmentSource:yfiles.geometry.Point,segmentTarget:yfiles.geometry.Point,distance:number,segmentIndex:number,tag:Object,weight:number); - /** - * Initializes a new instance of the {@link yfiles.input.PointBasedSnapLine} class. - * @param {yfiles.graph.IEdge} edge The edge to assign to {@link yfiles.input.EdgeSegmentSnapLine#edge}. - * @param {yfiles.geometry.Point} segmentSource The location that represents the source of the related segment on this line. In addition, this location is used as {@link yfiles.input.SnapLine#from} - * location. - * @param {yfiles.geometry.Point} segmentTarget The location that represents the target of the related segment on this line. In addition, this location is used as {@link yfiles.input.SnapLine#to} - * location. - * @param {number} distance The distance of this snap line from its related edge segment. - * @param {number} segmentIndex The segment index of the related edge segment. - * @constructor - */ - constructor(edge:yfiles.graph.IEdge,segmentSource:yfiles.geometry.Point,segmentTarget:yfiles.geometry.Point,distance:number,segmentIndex:number); - /** - * Gets the edge that is associated with this snap line. - * @type {yfiles.graph.IEdge} - */ - edge:yfiles.graph.IEdge; - /** - * Gets the direction vector of this snap line. - * @type {yfiles.geometry.Point} - */ - direction:yfiles.geometry.Point; - /** - * Gets the distance of this snap line from its related edge segment. - * @type {number} - */ - distance:number; - /** - * Gets the segment index of the related edge segment. - * @type {number} - */ - segmentIndex:number; - /** - * Gets the location that represents the source of the related segment on this line. - * @type {yfiles.geometry.Point} - */ - segmentSource:yfiles.geometry.Point; - /** - * Gets the location that represents the target of the related segment on this line. - * @type {yfiles.geometry.Point} - */ - segmentTarget:yfiles.geometry.Point; - /** - * Gets and sets the location of the source marker of this snap line. - *

    - * If this is null, the location of the {@link yfiles.input.EdgeSegmentSnapLine#segmentSource} is marked instead. - *

    - * @type {yfiles.geometry.Point} - */ - sourceMarker:yfiles.geometry.Point; - /** - * Gets and sets the location of the target marker of this snap line. - *

    - * If this is null, the location of the {@link yfiles.input.EdgeSegmentSnapLine#segmentTarget} is marked instead. - *

    - * @type {yfiles.geometry.Point} - */ - targetMarker:yfiles.geometry.Point; - static $class:yfiles.lang.Class; - } - export enum SnapLineOrientation{ - /** - * Constant that describes a horizontal {@link yfiles.input.SnapLineOrientation orientation} of a snap line. - */ - HORIZONTAL, - /** - * Constant that describes a vertical {@link yfiles.input.SnapLineOrientation orientation} of a snap line. - */ - VERTICAL - } - export enum SnapLineSnapTypes{ - /** - * Describes snap lines to which nothing will snap. - */ - NONE, - /** - * Describes snap lines to which the top sides of rectangular elements will snap. - */ - TOP, - /** - * Describes snap lines to which the bottom sides of rectangular elements will snap. - */ - BOTTOM, - /** - * Describes snap lines to which the left sides of rectangular elements will snap. - */ - LEFT, - /** - * Describes snap lines to which the right sides of rectangular elements will snap. - */ - RIGHT, - /** - * Describes snap lines to which the center of elements will snap. - */ - CENTER, - /** - * Describes vertical snap lines - */ - VERTICAL, - /** - * Describes horizontal snap lines - */ - HORIZONTAL, - /** - * Describes snap lines to which all elements will snap at all sides - */ - ALL - } - /** - * A simple default implementation of an {@link yfiles.input.IPortCandidate}. - *

    - * Subclasses need to override {@link yfiles.input.DefaultPortCandidate#createInstance} if they don't {@link yfiles.input.DefaultPortCandidate#setInstance set} a port instance. - *

    - * @class yfiles.input.DefaultPortCandidate - * @implements {yfiles.input.IPortCandidate} - */ - export interface DefaultPortCandidate extends Object,yfiles.input.IPortCandidate{} - export class DefaultPortCandidate { - /** - * Creates a candidate for the given owner that uses the graph's defaults for the port's style and a default parameter for - * the given model. - *

    - * The {@link yfiles.input.DefaultPortCandidate#locationParameter} is set to the parameter that best matches the {@link yfiles.geometry.Point#ORIGIN origin} for the given model. - *

    - * @param {yfiles.graph.IPortOwner} owner The owner. - * @param {yfiles.graph.IPortLocationModel} model The model. - * @constructor - */ - constructor(owner:yfiles.graph.IPortOwner,model:yfiles.graph.IPortLocationModel); - /** - * Creates a candidate for the given owner that uses the graph's defaults for the port's style and the given - * locationParameter. - *

    - * If no locationParameter is given, the used candidate has a fixed location at {@link yfiles.geometry.Point#ORIGIN} that does not - * depend on the owner. - *

    - * @param {yfiles.graph.IPortOwner} owner The owner. - * @param {yfiles.graph.IPortLocationModelParameter} [locationParameter=null] The location. - * @param {yfiles.input.PortCandidateValidity} [validity=yfiles.input.PortCandidateValidity.VALID] The validity of the port candidate. - * @constructor - */ - constructor(owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,validity?:yfiles.input.PortCandidateValidity); - /** - * Creates a candidate for the given owner that uses the graph's defaults for the port's style and the given - * locationParameter. - *

    - * If no locationParameter is given, the used candidate has a fixed location at {@link yfiles.geometry.Point#ORIGIN} that does not - * depend on the owner. - *

    - * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPortOwner} options.owner The owner. - * @param {yfiles.graph.IPortLocationModelParameter} [options.locationParameter=null] The location. - * @param {yfiles.input.PortCandidateValidity} [options.validity=yfiles.input.PortCandidateValidity.VALID] The validity of the port candidate. - * @constructor - */ - constructor(options:{owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,validity?:yfiles.input.PortCandidateValidity}); - /** - * Creates a candidate using the given port as the template. - * @param {yfiles.graph.IPort} port The port to use. - * @constructor - */ - constructor(port:yfiles.graph.IPort); - /** - * Actually creates the {@link yfiles.graph.IPort} instance. - *

    - * This method is called in response to a call to {@link yfiles.input.DefaultPortCandidate#createPort} on this instance and the - * instances created by {@link yfiles.input.DefaultPortCandidate#getPortCandidateAt}. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.graph.IGraph} graph The graph to add the port to. - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The parameter to use. - * @param {yfiles.styles.IPortStyle} style The style to use. - * @param {Object} tag The tag to use. - * @returns {yfiles.graph.IPort} The newly created port. - * @protected - */ - createInstance(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,locationParameter:yfiles.graph.IPortLocationModelParameter,style:yfiles.styles.IPortStyle,tag:Object):yfiles.graph.IPort; - /** - * This implementation will throw a {@link Stubs.Exceptions.NotSupportedError} if the validity is - * {@link yfiles.input.PortCandidateValidity#DYNAMIC}. - *

    - * This implementation will delegate to the {@link yfiles.input.DefaultPortCandidate#createInstance} method. - *

    - * @param {yfiles.input.IInputModeContext} context - * @returns {yfiles.graph.IPort} - */ - createPort(context:yfiles.input.IInputModeContext):yfiles.graph.IPort; - /** - * Returns a candidate that is derived from this instance that best fits the provided location. - *

    - * The returned implementation will finally call {@link yfiles.input.DefaultPortCandidate#createInstance} using the newly - * calculated {@link yfiles.input.DefaultPortCandidate#locationParameter}. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context for which a concrete candidate is queried. - * @param {yfiles.geometry.Point} location The location for which a candidate should be returned. - * @returns {yfiles.input.IPortCandidate} A {@link yfiles.input.IPortCandidate} implementation whose {@link yfiles.input.DefaultPortCandidate#validity} is guaranteed to be non-{@link yfiles.input.PortCandidateValidity#DYNAMIC}. - * @see yfiles.input.DefaultPortCandidate#validity - */ - getPortCandidateAt(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; - /** - * Sets the instance that will be returned by {@link yfiles.input.DefaultPortCandidate#port} and {@link yfiles.input.DefaultPortCandidate#createPort}. - * @param {yfiles.graph.IPort} port A port that already exists in the graph or null. - */ - setInstance(port:yfiles.graph.IPort):void; - /** - * Determines whether this candidate is a valid one depending on the context it has been obtained from. - * @default 0 - * @type {yfiles.input.PortCandidateValidity} - */ - validity:yfiles.input.PortCandidateValidity; - /** - * Gets or set the tag for this candidate. - *

    - * The interpretation of this value is implementation dependent and may be used for visual feedback or interactive - * behavior. - *

    - * @default null - * @type {Object} - */ - candidateTag:Object; - /** - * Gets or sets the port tag to create the port with. - * @default null - * @type {Object} - */ - portTag:Object; - /** - * Gets or sets the model parameter that will be used for the {@link yfiles.graph.IPort#locationParameter} if this candidate is chosen. - *

    - * The parameter which may not be null. - *

    - * @type {yfiles.graph.IPortLocationModelParameter} - */ - locationParameter:yfiles.graph.IPortLocationModelParameter; - /** - * The model that will be used by this instance to determine the new {@link yfiles.input.DefaultPortCandidate#locationParameter} if the {@link yfiles.input.DefaultPortCandidate#getPortCandidateAt} - * is called and the {@link yfiles.input.DefaultPortCandidate#validity} is set to {@link yfiles.input.PortCandidateValidity#DYNAMIC}. - * @default null - * @type {yfiles.graph.IPortLocationModel} - */ - model:yfiles.graph.IPortLocationModel; - /** - * Gets or sets the style to use for the newly created port. - * @default null - * @type {yfiles.styles.IPortStyle} - */ - style:yfiles.styles.IPortStyle; - /** - * Gets or sets the owner of the port to be created. - * @type {yfiles.graph.IPortOwner} - */ - owner:yfiles.graph.IPortOwner; - /** - * Returns the instance provided to the constructor or to the {@link yfiles.input.DefaultPortCandidate#setInstance setter}. - * @see yfiles.input.DefaultPortCandidate#createPort - * @type {yfiles.graph.IPort} - */ - port:yfiles.graph.IPort; - static $class:yfiles.lang.Class; - } - /** - * Callback interface for instances that can create bends for a given edge and graph. - *

    - * Implementations of this interface may be found in the {@link yfiles.graph.ILookup#lookup} of {@link yfiles.graph.IEdge} instances. This - * interface is used by {@link yfiles.input.GraphEditorInputMode} to create new bends for an edge as soon as the user performs the - * bend creation gesture. - *

    - * @see yfiles.input.GraphEditorInputMode#onCreateBendInputModeBendCreated - * @interface - */ - export interface IBendCreator extends Object{ - /** - * Creates a bend at the given graph for the given edge at the position supplied. - * @param {yfiles.input.IInputModeContext} context The context for which the bend should be created. - * @param {yfiles.graph.IGraph} graph The graph, the edge belongs to. - * @param {yfiles.graph.IEdge} edge The edge. - * @param {yfiles.geometry.Point} location The preferred coordinates of the bend. - * @returns {number} The index of the bend in the edges' {@link yfiles.graph.IEdge#bends} or -1 if no bend has been created. - * @abstract - */ - createBend(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,location:yfiles.geometry.Point):number; - } - var IBendCreator:{ - /** - * A static instance that does not create any bends. - * @const - * @static - * @type {yfiles.input.IBendCreator} - */ - NO_BENDS?:yfiles.input.IBendCreator; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface that can be used to find bends at specific locations in the canvas. - *

    - * This interface is usually provided through the {@link yfiles.graph.ILookup#lookup} of {@link yfiles.graph.IEdge} implementations. - *

    - * @interface - */ - export interface IBendSelectionTester extends Object{ - /** - * Returns the bends within the given rectangle. - * @param {yfiles.input.IInputModeContext} context The input mode context to use for querying the position. - * @param {yfiles.geometry.Rect} rectangle A rectangle in world coordinates. - * @returns {yfiles.collections.IEnumerable.} The bends inside of rectangle. - * @abstract - */ - getBendsInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):yfiles.collections.IEnumerable; - /** - * Returns the bend at the given world coordinate position. - * @param {yfiles.input.IInputModeContext} context The input mode context to use for querying the position. - * @param {yfiles.geometry.Point} location A location in world coordinates. - * @returns {yfiles.graph.IBend} The bend at the position or null if there is no bend. - * @abstract - */ - getHitBend(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.graph.IBend; - } - var IBendSelectionTester:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * An interface that checks for containment of an {@link yfiles.graph.IBend} in 2D coordinate space. - *

    - * This interface is used to determine which bends of edges that connect child nodes are moved when the parent node is - * moved. Therefore, special care has to be taken if you want to provide this interface in the node lookup for other purposes, as this - * can also affect implicit bend movement. - *

    - * @interface - */ - export interface IContainsBendTester extends Object{ - /** - * Determines whether the provided bend is deemed to lie within the shape this test is implemented for. - *

    - * This method is used to determine which bends of edges that connect child nodes are moved when the parent node is moved. - * If an implementation of {@link yfiles.input.IContainsBendTester} is present in the node's {@link yfiles.graph.ILookup#lookup}, this - * method is called with the bend and the bend will be moved together with the parent node iff true is returned. If no - * implemention is provided, only bends that lie inside the bounds of the parent node are moved. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context to use. - * @param {yfiles.graph.IBend} bend The bend to test - * @returns {boolean} true iff the bend is contained within the shape. - * @abstract - */ - contains(context:yfiles.input.IInputModeContext,bend:yfiles.graph.IBend):boolean; - } - var IContainsBendTester:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface that is used by the {@link yfiles.input.GraphSnapContext} for {@link yfiles.graph.INode nodes} to collect a number of - * {@link yfiles.input.SnapResult}s during the move/edit operation. - *

    - * This interface is queried from the {@link yfiles.graph.ILookup} of the - * {@link yfiles.graph.INode}s that are being moved during the edit. - *

    - * @see yfiles.input.GraphSnapContext - * @see yfiles.graph.NodeDecorator#nodeSnapResultProviderDecorator - * @interface - */ - export interface INodeSnapResultProvider extends Object{ - /** - * Called when a node is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for - * {@link yfiles.input.OrthogonalSnapLine}s to which this node can potentially snap. - * @param {yfiles.input.GraphSnapContext} context The snap context which manages the snap lines and the settings. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The event argument to obtain the necessary information from and {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult add results to}. - * @param {yfiles.geometry.Rect} suggestedLayout The {@link yfiles.graph.INode#layout layout} of the node if the node would not snap. - * @param {yfiles.graph.INode} node The node that is being moved. - * @abstract - */ - collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.Rect,node:yfiles.graph.INode):void; - } - var INodeSnapResultProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface for classes that help during snapping of parts of edges. - *

    - * An implementation of this class is obtained from the lookup of the {@link yfiles.graph.IEdge}s which are being edited during an - * operation where {@link yfiles.input.GraphSnapContext graph snapping} is involved. - *

    - * @see yfiles.graph.EdgeDecorator#edgeSnapResultProviderDecorator - * @interface - */ - export interface IEdgeSnapResultProvider extends Object{ - /** - * Called to during the snapping operation whenever {@link yfiles.input.SnapContext#addCollectSnapResultsListener snap results are collected}. - *

    - * This method will be called for each collection of the results. - *

    - * @param {yfiles.input.GraphSnapContext} context The context that is using this instance. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The event argument to obtain the necessary information from and {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult add results to}. - * @param {yfiles.collections.IListEnumerable.} movementInfos The movement infos that describe the edge. - * @param {yfiles.graph.IEdge} edge The edge for which the {@link yfiles.input.SnapResult}s should be {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult collected}. - * @abstract - */ - collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,movementInfos:yfiles.collections.IListEnumerable,edge:yfiles.graph.IEdge):void; - } - var IEdgeSnapResultProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface that is used by the {@link yfiles.input.GraphSnapContext} for {@link yfiles.graph.IBend bends} to collect a number of - * {@link yfiles.input.SnapResult}s during the move/edit operation. - *

    - * This interface is queried from the {@link yfiles.graph.ILookup} of the - * {@link yfiles.graph.IBend}s that are being moved during the edit. - *

    - * @see yfiles.input.GraphSnapContext - * @see yfiles.graph.BendDecorator#bendSnapResultProviderDecorator - * @interface - */ - export interface IBendSnapResultProvider extends Object{ - /** - * Called when a node is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for - * {@link yfiles.input.OrthogonalSnapLine}s to which this bend can potentially snap. - * @param {yfiles.input.GraphSnapContext} context The snap context which manages the snap lines and the settings. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The event argument to obtain the necessary information from and {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult add results to}. - * @param {yfiles.geometry.Point} suggestedLocation The {@link yfiles.graph.IBend#location location} of the bend if the bend would not snap. - * @param {yfiles.graph.IBend} bend The bend that is being moved. - * @abstract - */ - collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLocation:yfiles.geometry.Point,bend:yfiles.graph.IBend):void; - } - var IBendSnapResultProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface that is used by the {@link yfiles.input.GraphSnapContext} for {@link yfiles.graph.IPort port} to collect a number of - * {@link yfiles.input.SnapResult}s during the move/edit operation. - *

    - * This interface is queried from the {@link yfiles.graph.ILookup} of the - * {@link yfiles.graph.IPort}s that are being moved during the edit. - *

    - * @see yfiles.input.GraphSnapContext - * @see yfiles.graph.PortDecorator#portSnapResultProviderDecorator - * @interface - */ - export interface IPortSnapResultProvider extends Object{ - /** - * Called when a node is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for - * {@link yfiles.input.OrthogonalSnapLine}s to which this bend can potentially snap. - * @param {yfiles.input.GraphSnapContext} context The snap context which manages the snap lines and the settings. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The event argument to obtain the necessary information from and {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult add results to}. - * @param {yfiles.geometry.Point} suggestedLocation The {@link yfiles.graph.IBend#location location} of the bend if the bend would not snap. - * @param {yfiles.graph.IPort} port The port that is being moved - * @abstract - */ - collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLocation:yfiles.geometry.Point,port:yfiles.graph.IPort):void; - } - var IPortSnapResultProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface for an implementation which evaluates a list of given {@link yfiles.input.SnapLine}s for a node which is resized and - * adds a set of {@link yfiles.input.SnapResult}s for sizes to which this node can potentially snap. - * @interface - */ - export interface INodeReshapeSnapResultProvider extends Object{ - /** - * Called when a node's handle is {@link yfiles.input.IDragHandler#handleMove dragged} to add {@link yfiles.input.SnapResult}s for - * {@link yfiles.input.OrthogonalSnapLine}s or sizes to which this node can potentially snap during resizing. - * @param {yfiles.input.GraphSnapContext} context The snap context which manages the snap lines and the settings. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The event argument to obtain the context from and add the results to. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.ReshapeRectangleContext} reshapeContext Carries information about the reshape operation. - * @abstract - */ - collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,reshapeContext:yfiles.input.ReshapeRectangleContext):void; - } - var INodeReshapeSnapResultProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Helper class that carries information about a reshape operation. - *

    - * This class is mainly intended for use by {@link yfiles.input.INodeReshapeSnapResultProvider#collectSnapResults}. - *

    - * @class yfiles.input.ReshapeRectangleContext - * @final - */ - export interface ReshapeRectangleContext extends Object{} - export class ReshapeRectangleContext { - /** - * Initializes a new instance of the {@link yfiles.input.ReshapeRectangleContext} class. - * @param {yfiles.geometry.Rect} initialBounds The initial bounds of the node. - * @param {yfiles.geometry.ISize} minimumSize The minimum size of the node. - * @param {yfiles.geometry.ISize} maximumSize The maximum size of the node. - * @param {yfiles.geometry.IRectangle} minimumEnclosedArea The minimum area the node's layout needs to encompass. - * @param {yfiles.input.HandlePositions} reshapePosition The position of the reshape handle. - * @param {yfiles.geometry.Point} topLeftChangeFactor The factor by which the top left corner of the node layout changes when the handle is dragged. - * @param {yfiles.geometry.Point} bottomRightChangeFactor The factor by which the bottom right corner of the node layout changes when the handle is dragged. - * @param {yfiles.geometry.Size} sizeChangeFactor The factor by which the size of the node layout changes when the handle is dragged. - * @constructor - */ - constructor(initialBounds:yfiles.geometry.Rect,minimumSize:yfiles.geometry.ISize,maximumSize:yfiles.geometry.ISize,minimumEnclosedArea:yfiles.geometry.IRectangle,reshapePosition:yfiles.input.HandlePositions,topLeftChangeFactor:yfiles.geometry.Point,bottomRightChangeFactor:yfiles.geometry.Point,sizeChangeFactor:yfiles.geometry.Size); - /** - * Gets the initial bounds of the node. - * @type {yfiles.geometry.Rect} - */ - initialBounds:yfiles.geometry.Rect; - /** - * Gets the minimum size of the node. - * @type {yfiles.geometry.ISize} - */ - minimumSize:yfiles.geometry.ISize; - /** - * Gets or sets the maximum size of the node. - * @type {yfiles.geometry.ISize} - */ - maximumSize:yfiles.geometry.ISize; - /** - * Gets minimum area the node's layout needs to encompass - * @type {yfiles.geometry.IRectangle} - */ - minimumEnclosedArea:yfiles.geometry.IRectangle; - /** - * Gets the position of the reshape handle. - * @type {yfiles.input.HandlePositions} - */ - reshapePosition:yfiles.input.HandlePositions; - /** - * Gets the factor by which the top left corner of the node layout changes when the handle is dragged. - * @type {yfiles.geometry.Point} - */ - topLeftChangeFactor:yfiles.geometry.Point; - /** - * Gets the factor by which the bottom right corner of the node layout changes when the handle is dragged. - * @type {yfiles.geometry.Point} - */ - bottomRightChangeFactor:yfiles.geometry.Point; - /** - * Gets the factor by which the size of the node layout changes when the handle is dragged. - * @type {yfiles.geometry.Size} - */ - sizeChangeFactor:yfiles.geometry.Size; - static $class:yfiles.lang.Class; - } - /** - * An interface for possible {@link yfiles.graph.IPort} candidates used by {@link yfiles.input.IPortCandidateProvider} and the like. - *

    - * Note that if an instance's {@link yfiles.input.IPortCandidate#validity} property is {@link yfiles.input.PortCandidateValidity#DYNAMIC} this instance {@link yfiles.input.IPortCandidate#getPortCandidateAt} - * method serves as a factory for the actual candidates. - *

    - * @see yfiles.input.IEdgeReconnectionPortCandidateProvider - * @see yfiles.input.IPortCandidateProvider - * @see yfiles.input.DefaultPortCandidate - * @interface - */ - export interface IPortCandidate extends Object{ - /** - * If the client decides to use this port candidate, this method will serve as a factory to create the instance. - *

    - * If this candidate wraps an existing port, it may return that {@link yfiles.input.IPortCandidate#port instance}. If this instance's {@link yfiles.input.IPortCandidate#validity} is {@link yfiles.input.PortCandidateValidity#DYNAMIC} - * this method may throw an {@link Stubs.Exceptions.NotSupportedError}. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context for which the port will be created. Implementations can depend on it providing an {@link yfiles.graph.IGraph} - * instance in the lookup of the instance. - * @returns {yfiles.graph.IPort} The port instance to use if this candidate has been chosen. This method may not return null. - * @throws {Stubs.Exceptions.NotSupportedError} If the {@link yfiles.input.IPortCandidate#validity} is {@link yfiles.input.PortCandidateValidity#DYNAMIC}. - * @see yfiles.input.IInputModeContext#graph - * @see yfiles.input.IPortCandidate#port - * @see yfiles.input.IPortCandidate#getPortCandidateAt - * @abstract - */ - createPort(context:yfiles.input.IInputModeContext):yfiles.graph.IPort; - /** - * Returns a candidate that is derived from this instance that best fits the provided location. - *

    - * This method needs to be called by clients if the {@link yfiles.input.IPortCandidate#validity} of this instance is {@link yfiles.input.PortCandidateValidity#DYNAMIC}. In - * that case calling this method must return an instance whose validity is not {@link yfiles.input.PortCandidateValidity#DYNAMIC}. - *

    - * @param {yfiles.input.IInputModeContext} context The input mode context for which a concrete candidate is queried. - * @param {yfiles.geometry.Point} location The location for which a candidate should be returned. - * @returns {yfiles.input.IPortCandidate} A {@link yfiles.input.IPortCandidate} implementation whose {@link yfiles.input.IPortCandidate#validity} is guaranteed to be non-{@link yfiles.input.PortCandidateValidity#DYNAMIC}. - * @see yfiles.input.IPortCandidate#validity - * @abstract - */ - getPortCandidateAt(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; - /** - * Possibly yields a user defined tag for this candidate. - *

    - * The interpretation of this value is implementation dependent and may be used for visual feedback or interactive - * behavior. - *

    - * @abstract - * @type {Object} - */ - candidateTag:Object; - /** - * Determines whether this instance is a valid port candidate. - *

    - * Implementations of {@link yfiles.input.IPortCandidateProvider} may return sets of port candidates where some of them are marked - * as invalid e.g. in order to provide visual feedback. If the value is {@link yfiles.input.PortCandidateValidity#DYNAMIC}, method - * {@link yfiles.input.IPortCandidate#getPortCandidateAt} needs to be used to determine a concrete candidate instance. - *

    - * @see yfiles.input.IPortCandidate#getPortCandidateAt - * @abstract - * @type {yfiles.input.PortCandidateValidity} - */ - validity:yfiles.input.PortCandidateValidity; - /** - * Returns the model parameter that will be used for the {@link yfiles.graph.IPort#locationParameter} if this candidate is chosen. - *

    - * Note that the value of this property is undefined if this instance's {@link yfiles.input.IPortCandidate#validity} is {@link yfiles.input.PortCandidateValidity#DYNAMIC}. In - * this case, the parameter needs to be obtained via the {@link yfiles.input.IPortCandidate#getPortCandidateAt} instance. - *

    - * @abstract - * @type {yfiles.graph.IPortLocationModelParameter} - */ - locationParameter:yfiles.graph.IPortLocationModelParameter; - /** - * Returns the possible owner of the port to be created for this candidate. - * @abstract - * @type {yfiles.graph.IPortOwner} - */ - owner:yfiles.graph.IPortOwner; - /** - * Gets the port instance that is already live in the graph if this candidate wraps an existing port or null otherwise. - * @see yfiles.input.IPortCandidate#createPort - * @abstract - * @type {yfiles.graph.IPort} - */ - port:yfiles.graph.IPort; - } - var IPortCandidate:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - export enum PortCandidateValidity{ - /** - * The candidate is valid and can be used to connect an edge to. - */ - VALID, - /** - * The candidate should not be used to connect an edge to. - */ - INVALID, - /** - * The candidate cannot be used to create a port, instead {@link yfiles.input.IPortCandidate#getPortCandidateAt} needs to be called - * to obtain a {@link yfiles.input.IPortCandidate} that is either {@link yfiles.input.PortCandidateValidity#VALID} or - * {@link yfiles.input.PortCandidateValidity#INVALID}. - */ - DYNAMIC - } - /** - * This interface is used to provide {@link yfiles.input.IPortCandidate}s for a specific {@link yfiles.graph.IPortOwner}. - *

    - * It is used in the context of the items that will later become the owner ({@link yfiles.graph.IPortOwner}) of the ports obtained - * from the candidates. They are mainly used during edge creation where there is no real edge yet (only the dummy edge) and - * thus they need to use the opposite {@link yfiles.input.IPortCandidate} to understand the context. - *

    - *

    - * Implementations of this interface may be queried using the {@link yfiles.graph.ILookup#lookup} method of {@link yfiles.graph.IPortOwner} - * implementations like {@link yfiles.graph.INode}. - *

    - *

    - * Note that this interface is similar to the interface {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} in the sense - * that they will both provide {@link yfiles.input.IPortCandidate} instances in a certain query context. They are used in different - * query contexts, though. The two interfaces can come together in concrete implementations of - * {@link yfiles.input.IEdgeReconnectionPortCandidateProvider}: an edge could potentially be connected to ports at any given {@link yfiles.graph.IPortOwner} - * and thus the {@link yfiles.input.IPortCandidateProvider} interface can be queried from the respective {@link yfiles.graph.IPortOwner} - * that the edge will be reconnected to. - *

    - *

    Related demos:

    - *
      - *
    • Demo: PortCandidateProvider, demo.yfiles.input.portcandidateprovider
    • - *
    - * @see yfiles.graph.NodeDecorator#portCandidateProviderDecorator - * @interface - */ - export interface IPortCandidateProvider extends Object{ - /** - * Returns all port candidates that apply for the provided opposite port candidate. - *

    - * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. - *

    - * @param {yfiles.input.IPortCandidate} target The opposite port candidate. - * @param {yfiles.input.IInputModeContext} context The context for which the candidates should be provided. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all port candidates that are associated with the given opposite port. - * @abstract - */ - getSourcePortCandidates(context:yfiles.input.IInputModeContext,target:yfiles.input.IPortCandidate):yfiles.collections.IEnumerable; - /** - * Returns all source port candidates that belong to the context of this provider. - *

    - * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. - *

    - * @param {yfiles.input.IInputModeContext} context The context for which the candidates should be provided. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all source port candidates that are associated with the current context. - * @abstract - */ - getSourcePortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; - /** - * Returns all port candidates that apply for the provided opposite port candidate. - *

    - * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. - *

    - * @param {yfiles.input.IInputModeContext} context The context for which the candidates should be provided. - * @param {yfiles.input.IPortCandidate} source The opposite port candidate. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all port candidates that are associated with the given opposite port. - * @abstract - */ - getTargetPortCandidates(context:yfiles.input.IInputModeContext,source:yfiles.input.IPortCandidate):yfiles.collections.IEnumerable; - /** - * Returns all target port candidates that belong to the context of this provider. - *

    - * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. - *

    - * @param {yfiles.input.IInputModeContext} context The context for which the candidates should be provided. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all target port candidates that are associated with the current context. - * @abstract - */ - getTargetPortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; - } - var IPortCandidateProvider:{ - /** - * Creates a generic composite implementation for the {@link yfiles.input.IPortCandidateProvider} interface. - * @param {yfiles.collections.IEnumerable.} providers The providers to create the composite from. - * @returns {yfiles.input.IPortCandidateProvider} - * @static - */ - combine?(providers:yfiles.collections.IEnumerable):yfiles.input.IPortCandidateProvider; - /** - * Creates an implementation of an {@link yfiles.input.IPortCandidateProvider} that provides only the given port candidates. - * @param {...yfiles.input.IPortCandidate} candidates The port candidates the provider should provide. - * @returns {yfiles.input.PortCandidateProviderBase} A new {@link yfiles.input.IPortCandidateProvider}. - * @static - */ - fromCandidates?(...candidates:yfiles.input.IPortCandidate[]):yfiles.input.PortCandidateProviderBase; - /** - * Creates an implementation of an {@link yfiles.input.IPortCandidateProvider} that provides only the given port candidates. - * @param {yfiles.collections.IEnumerable.} candidates The port candidates the provider should provide. - * @returns {yfiles.input.PortCandidateProviderBase} A new {@link yfiles.input.IPortCandidateProvider}. - * @static - */ - fromCandidates?(candidates:yfiles.collections.IEnumerable):yfiles.input.PortCandidateProviderBase; - /** - * Creates an implementation of the {@link yfiles.input.IPortCandidateProvider} interface that returns the ports that exist in the - * given {@link yfiles.graph.IPortOwner#ports}'s {@link yfiles.graph.IPortOwner} collection. - * @param {yfiles.graph.IPortOwner} owner The owner of the port collection. - * @returns {yfiles.input.IPortCandidateProvider} - * @static - */ - fromExistingPorts?(owner:yfiles.graph.IPortOwner):yfiles.input.IPortCandidateProvider; - /** - * Creates a trivial implementation of an {@link yfiles.input.IPortCandidateProvider} that always returns exactly one candidate - * that is centered at the node's {@link yfiles.graph.INode#layout}. - * @param {yfiles.graph.INode} node The node to get the layout's center from. - * @returns {yfiles.input.PortCandidateProviderBase} - * @static - */ - fromNodeCenter?(node:yfiles.graph.INode):yfiles.input.PortCandidateProviderBase; - /** - * Creates a simple implementation of an {@link yfiles.input.IPortCandidateProvider} that always returns a candidate that uses the - * default {@link yfiles.graph.IPortDefaults#locationParameter} for the corresponding {@link yfiles.graph.IPortDefaults}. - * @param {yfiles.graph.IPortOwner} owner - * @returns {yfiles.input.IPortCandidateProvider} - * @static - */ - fromPortDefaults?(owner:yfiles.graph.IPortOwner):yfiles.input.IPortCandidateProvider; - /** - * Creates an implementation of {@link yfiles.input.IPortCandidateProvider} that works for {@link yfiles.graph.IPortOwner} implementations - * that have {@link yfiles.styles.IShapeGeometry} instances in their lookup. - * @param {yfiles.graph.IPortOwner} owner The owner to receive the shape geometry from - * @param {number} minimumSegmentLength the minimum length a segment needs to have in order to be used to add port candidates. - * @param {...number} ratios A number of double values that are interpreted as ratio values between 0.0 and 1.0. If none are given, the provider - * inserts a port candidate at the center of each straight line segment. - * @param {boolean} addExistingPortsEnabled determines whether {@link yfiles.input.PortCandidateProviderBase#addExistingPorts existing ports should be added to the list of ports}. - * @returns {yfiles.input.PortCandidateProviderBase} - * @static - */ - fromShapeGeometry?(owner:yfiles.graph.IPortOwner,addExistingPortsEnabled:boolean,minimumSegmentLength:number,...ratios:number[]):yfiles.input.PortCandidateProviderBase; - /** - * Creates an implementation of {@link yfiles.input.IPortCandidateProvider} that works for {@link yfiles.graph.IPortOwner} implementations - * that have {@link yfiles.styles.IShapeGeometry} instances in their lookup. - * @param {yfiles.graph.IPortOwner} owner The owner to receive the shape geometry from - * @param {...number} ratios A number of double values that are interpreted as ratio values between 0.0 and 1.0. If none are given, the provider - * inserts a port candidate at the center of each straight line segment. - * @returns {yfiles.input.PortCandidateProviderBase} - * @static - */ - fromShapeGeometry?(owner:yfiles.graph.IPortOwner,...ratios:number[]):yfiles.input.PortCandidateProviderBase; - /** - * Creates a simple implementation of an {@link yfiles.input.IPortCandidateProvider} that returns unoccupied ports at a given - * entity. - * @param {yfiles.graph.IPortOwner} owner The owner to query the ports from. - * @returns {yfiles.input.IPortCandidateProvider} - * @static - */ - fromUnoccupiedPorts?(owner:yfiles.graph.IPortOwner):yfiles.input.IPortCandidateProvider; - /** - * A generic implementation of the {@link yfiles.input.IPortCandidateProvider} interface that provides no candidates. - * @const - * @static - * @type {yfiles.input.IPortCandidateProvider} - */ - NO_CANDIDATES?:yfiles.input.IPortCandidateProvider; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * This interface can be used to query {@link yfiles.input.IPortCandidate}s for a specific existing {@link yfiles.graph.IEdge} - *

    - * As the name implies this is only used in the context of reconnecting existing edges. It is queried for existing edges to - * find out about possible alternative port candidates that given edge could connect to. It is used during gestures where - * an edge is reconnected to another port(candidate), i.e. when the source or target port handle of an edge is moved and - * the source or target port properties of the edge get set to the new {@link yfiles.input.IPortCandidate}s. - *

    - *

    - * Implementations of this interface can be queried using the {@link yfiles.graph.ILookup#lookup} method of an {@link yfiles.graph.IEdge} - * implementation. This interface provides alternative candidates for the {@link yfiles.graph.IEdge#sourcePort} or {@link yfiles.graph.IEdge#targetPort} of an edge. - *

    - *

    - * Note that this interface is similar to the interface {@link yfiles.input.IPortCandidateProvider} in the sense that they will - * both provide {@link yfiles.input.IPortCandidate} instances in a certain query context. They are used in different query - * contexts, though. The two interfaces can come together in concrete implementations of - * {@link yfiles.input.IEdgeReconnectionPortCandidateProvider}: an edge could potentially be connected to ports at any given {@link yfiles.graph.IPortOwner} - * and thus the {@link yfiles.input.IPortCandidateProvider} interface can be queried from the respective {@link yfiles.graph.IPortOwner} - * that the edge will be reconnected to. - *

    - *

    Related demos:

    - *
      - *
    • Demo: EdgePortCandidateProvider, demo.yfiles.input.edgeportcandidateprovider
    • - *
    - * @interface - */ - export interface IEdgeReconnectionPortCandidateProvider extends Object{ - /** - * Returns all source port candidates that may be used for the edge. - *

    - * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. - *

    - * @param {yfiles.input.IInputModeContext} context The context for which the candidates should be provided. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all source port candidates that are associated with the current context edge. - * @abstract - */ - getSourcePortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; - /** - * Returns all source port candidates that may be used for the edge. - *

    - * The enumerable may both contain {@link yfiles.input.PortCandidateValidity valid, invalid, and dynamic} port candidates. - *

    - * @param {yfiles.input.IInputModeContext} context The context for which the candidates should be provided. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all target port candidates that are associated with the current context edge. - * @abstract - */ - getTargetPortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; - } - var IEdgeReconnectionPortCandidateProvider:{ - /** - * Creates an implementation of the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} interface that returns the - * candidates provided by the source and target port's owner's {@link yfiles.input.IPortCandidateProvider} implementations or the - * existing edge's port, if no such provider is registered. - *

    - * This instance uses the lookup mechanism of the nodes to query the providers. - *

    - * @param {yfiles.graph.IEdge} edge - * @returns {yfiles.input.IEdgeReconnectionPortCandidateProvider} - * @static - */ - fromSourceAndTarget?(edge:yfiles.graph.IEdge):yfiles.input.IEdgeReconnectionPortCandidateProvider; - /** - * Creates an implementation of the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} interface that returns a union of - * all {@link yfiles.input.IPortCandidateProvider#getSourcePortCandidates source port candidates} or {@link yfiles.input.IPortCandidateProvider#getTargetPortCandidates target port candidates}, respectively, of nodes in the graph. - *

    - * This implementation can be used to allow for {@link yfiles.input.PortRelocationHandle relocating an edge's port} to any available source or target port in the - * graph. + * Meta maps to the Windows key on Windows platforms and the Command key on Mac. *

    * @const * @static - * @type {yfiles.input.IEdgeReconnectionPortCandidateProvider} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - ALL_NODE_CANDIDATES?:yfiles.input.IEdgeReconnectionPortCandidateProvider; + static META_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Creates an implementation of the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} interface that returns a union of - * all {@link yfiles.input.IPortCandidateProvider#getSourcePortCandidates source port candidates} or {@link yfiles.input.IPortCandidateProvider#getTargetPortCandidates target port candidates}, respectively, of nodse and edges in the graph. + * An event recognizer that recognizes when the shift modifier is being pressed. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static SHIFT_DOWN:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that recognizes when the shift modifier is being released. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static SHIFT_UP:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that recognizes when the ctrl modifier is being pressed. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static CTRL_DOWN:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that recognizes when the Ctrl modifier is being released. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static CTRL_UP:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + static $class:yfiles.lang.Class; + } + /** + * A utility class that offers event recognizers that deal with {@link yfiles.view.MouseEventArgs}. + * @class + * @static + */ + export interface MouseEventRecognizers extends Object{} + export class MouseEventRecognizers { + /** + * An event recognizer that identifies mouse movements that are not drags. + * @see yfiles.input.MouseEventRecognizers#DRAGGED + * @see yfiles.input.MouseEventRecognizers#MOVED_OR_DRAGGED + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static MOVED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mouse movements. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static MOVED_OR_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mousedown events. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mouseup events. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mouse input capture lost events. *

    - * This implementation can be used to allow for {@link yfiles.input.PortRelocationHandle relocating an edge's port} to any available source or target port in the - * graph. + * This event will occur often, especially after all mouse buttons have been released. More relevant for + * {@link yfiles.input.IInputMode}s is the {@link yfiles.input.MouseEventRecognizers#LOST_CAPTURE_DURING_DRAG} event recognizer. *

    * @const * @static - * @type {yfiles.input.IEdgeReconnectionPortCandidateProvider} + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - ALL_NODE_AND_EDGE_CANDIDATES?:yfiles.input.IEdgeReconnectionPortCandidateProvider; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface that can be used to find ports at specific locations in the canvas. - *

    - * This interface is mostly provided through the {@link yfiles.graph.ILookup#lookup} of {@link yfiles.graph.IPortOwner} implementations - * such as {@link yfiles.graph.INode}. - *

    - * @interface - */ - export interface IPortSelectionTester extends Object{ + static LOST_CAPTURE:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Returns the port at the given world coordinate position or null if there is no such port. - * @param {yfiles.input.IInputModeContext} context The input mode context to use for querying the position. - * @param {yfiles.geometry.Point} location The coordinates of the position in the world coordinate system. - * @returns {yfiles.graph.IPort} The port at the position or null. - * @abstract + * An event recognizer that identifies mouse input capture lost events while at least one mouse button was pressed. + *

    + * Since the mouse capture has been lost, the necessary {@link yfiles.view.MouseEventTypes#UP} events will never be triggered. This + * recognizer is useful for identifying this situation. + *

    + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - getHitPort(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):yfiles.graph.IPort; + static LOST_CAPTURE_DURING_DRAG:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** - * Returns the ports for the given marquee rectangle. - * @param {yfiles.input.IInputModeContext} context The input mode context to use for querying the position. - * @param {yfiles.geometry.Rect} rectangle The marquee selection box in the world coordinate system. - * @returns {yfiles.collections.IEnumerable.} An enumerable over the ports inside the marquee selection box. - * @abstract + * An event recognizer that identifies left mouse button clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - getPortsInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):yfiles.collections.IEnumerable; + static LEFT_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies button clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies button multi-clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static MULTI_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies right mouse button clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static RIGHT_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies middle mouse button clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static MIDDLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies left mouse button double clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static LEFT_DOUBLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies right mouse button double clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static RIGHT_DOUBLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies middle mouse button double clicks. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static MIDDLE_DOUBLE_CLICKED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mousedown events of left mouse button. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static LEFT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mouseup events of left mouse button. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static LEFT_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mousedown events of right mouse button. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static RIGHT_PRESSED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mouseup events of right mouse button. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static RIGHT_RELEASED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies mouse drag events. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies left mouse button drags. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static LEFT_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies when the has left the control. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static EXITED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies when the mouse has entered the control. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static ENTERED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies right mouse button drags. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static RIGHT_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies middle mouse button drags. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static MIDDLE_DRAGGED:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + static $class:yfiles.lang.Class; } - var IPortSelectionTester:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; /** - * Interface for implementations that yield insets for a given {@link yfiles.graph.INode}. - *

    - * Implementations of this interface will be queried from an {@link yfiles.graph.INode}'s {@link yfiles.graph.ILookup#lookup} method. The - * default implementation of a graph uses this instance by default to determine the insets of a group node. - *

    - * @interface + * A utility class that offers event recognizers that deal with {@link yfiles.view.TouchEventArgs}. + * @class + * @static */ - export interface INodeInsetsProvider extends Object{ + export interface TouchEventRecognizers extends Object{} + export class TouchEventRecognizers { /** - * Returns the insets for the given node. - * @param {yfiles.graph.INode} node The node to yield insets for. - * @returns {yfiles.geometry.Insets} The insets for the node. - * @abstract + * An event recognizer that identifies touch movements of the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} */ - getInsets(node:yfiles.graph.INode):yfiles.geometry.Insets; + static TOUCH_MOVED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies the loss of touch capture for the any device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static LOST_CAPTURE:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies the loss of touch capture for the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static LOST_CAPTURE_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies the loss of touch capture for the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static LOST_CAPTURE_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch movements of the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_DOWN_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch movements of the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_UP_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch taps of the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_TAPPED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch double-taps of the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_DOUBLE_TAPPED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch multi-taps of the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_MULTI_TAPPED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies when the primary device has left the control. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_EXITED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies when the primary device has entered the control. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_ENTERED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies long presses of the primary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_LONG_PRESSED_PRIMARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch movements of the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_MOVED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch movements of the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_DOWN_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch movements of the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_UP_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch taps of the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_TAPPED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch double-taps of the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_DOUBLE_TAPPED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies touch multi-taps of the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_MULTI_TAPPED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies when the secondary device has left the control. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_EXITED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies when the secondary device has entered the control. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_ENTERED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + /** + * An event recognizer that identifies long presses of the secondary device. + * @const + * @static + * @type {function(Object, yfiles.lang.EventArgs): boolean} + */ + static TOUCH_LONG_PRESSED_SECONDARY:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; + static $class:yfiles.lang.Class; } - var INodeInsetsProvider:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; /** * An {@link yfiles.input.IInputMode} used for recognizing the gesture of creating {@link yfiles.graph.IBend}s in an {@link yfiles.graph.IGraph}. *

    @@ -35778,7 +35823,7 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.CreateBendInputMode#exclusive} by default. *

    - * @class yfiles.input.CreateBendInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface CreateBendInputMode extends Object,yfiles.input.IInputMode{} @@ -35786,7 +35831,6 @@ declare namespace system{ /** * Creates a new instance that will use the {@link yfiles.graph.IGraph} from the {@link yfiles.input.CreateBendInputMode#inputModeContext} to create bends in. * @see yfiles.input.CreateBendInputMode#graph - * @constructor */ constructor(); /** @@ -35812,9 +35856,9 @@ declare namespace system{ * The bend is created using the hit edge's {@link yfiles.input.IBendCreator} implementation, as obtained from the edge's * {@link yfiles.graph.ILookup#lookup}. *

    - * @param {yfiles.graph.IEdge} edge The hit edge. - * @param {yfiles.geometry.Point} location The coordinates of the hit. - * @returns {yfiles.graph.IBend} The created bend or null. + * @param edge The hit edge. + * @param location The coordinates of the hit. + * @returns The created bend or null. * @see yfiles.input.CreateBendInputMode#createInputModeContext * @protected */ @@ -35822,7 +35866,7 @@ declare namespace system{ /** * Creates an {@link yfiles.input.IInputModeContext} for use with the upcoming {@link yfiles.input.IBendCreator#createBend} call in * {@link yfiles.input.CreateBendInputMode#createBend}. - * @returns {yfiles.input.IInputModeContext} An instance of {@link yfiles.input.IInputModeContext}. + * @returns An instance of {@link }. * @protected */ createInputModeContext():yfiles.input.IInputModeContext; @@ -35840,15 +35884,15 @@ declare namespace system{ * This method triggers the {@link yfiles.input.CreateBendInputMode#addBendCreatedListener BendCreated} event * if a bend is created. *

    - * @param {yfiles.graph.IEdge} edge The edge to create a bend for. - * @param {yfiles.geometry.Point} dragLocation The location at which the user initiated the gesture. + * @param edge The edge to create a bend for. + * @param dragLocation The location at which the user initiated the gesture. * @protected */ dragSegment(edge:yfiles.graph.IEdge,dragLocation:yfiles.geometry.Point):void; /** * Finds the edge at the given coordinate. - * @param {yfiles.geometry.Point} location The coordinates. - * @returns {yfiles.graph.IEdge} The edge that has been hit. + * @param location The coordinates. + * @returns The edge that has been hit. * @protected */ getEdge(location:yfiles.geometry.Point):yfiles.graph.IEdge; @@ -35864,24 +35908,24 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.CreateBendInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; /** * Determines whether the current location is valid to begin a bend creation gesture. - * @param {Object} source - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} + * @param source + * @param evt + * @returns * @protected */ isValidBegin(source:Object,evt:yfiles.lang.EventArgs):boolean; /** * Triggers the {@link yfiles.input.CreateBendInputMode#addBendCreatedListener BendCreated} event. - * @param {yfiles.graph.BendEventArgs} evt + * @param evt * @protected */ onBendCreated(evt:yfiles.graph.BendEventArgs):void; @@ -35920,7 +35964,7 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Triggers the {@link yfiles.input.CreateBendInputMode#addDragCanceledListener DragCanceled} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceled(evt:yfiles.input.InputModeEventArgs):void; @@ -35929,7 +35973,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.CreateBendInputMode#addDraggedListener Dragged} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragged(evt:yfiles.input.InputModeEventArgs):void; @@ -35938,7 +35982,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.CreateBendInputMode#addDraggingListener Dragging} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragging(evt:yfiles.input.InputModeEventArgs):void; @@ -35955,7 +35999,7 @@ declare namespace system{ onStopped():void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -35967,7 +36011,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -36010,13 +36054,13 @@ declare namespace system{ controller:yfiles.input.ConcurrencyController; /** * Adds the given listener for the BendCreated event that occurs once a bend creation gesture has been recognized. - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateBendInputMode#removeBendCreatedListener */ addBendCreatedListener(listener:(sender:Object,evt:yfiles.graph.BendEventArgs)=>void):void; /** * Removes the given listener for the BendCreated event that occurs once a bend creation gesture has been recognized. - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateBendInputMode#addBendCreatedListener */ removeBendCreatedListener(listener:(sender:Object,evt:yfiles.graph.BendEventArgs)=>void):void; @@ -36093,37 +36137,37 @@ declare namespace system{ graph:yfiles.graph.IGraph; /** * Adds the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateBendInputMode#removeDraggingListener */ addDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateBendInputMode#addDraggingListener */ removeDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateBendInputMode#removeDraggedListener */ addDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateBendInputMode#addDraggedListener */ removeDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateBendInputMode#removeDragCanceledListener */ addDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateBendInputMode#addDragCanceledListener */ removeDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -36163,7 +36207,7 @@ declare namespace system{ * after the behavior used by {@link yfiles.input.GraphEditorInputMode}'s {@link yfiles.input.GraphEditorInputMode#createLabel} and * {@link yfiles.input.GraphEditorInputMode#editLabel}. *

    - * @class yfiles.input.EditLabelHelper + * @class * @implements {yfiles.input.IEditLabelHelper} */ export interface EditLabelHelper extends Object,yfiles.input.IEditLabelHelper{} @@ -36173,9 +36217,9 @@ declare namespace system{ *

    * This method will obtain the default parameter instances from the {@link yfiles.input.EditLabelHelper#graph} considering the type of the current owner. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.graph.ILabelOwner} owner The label's owner. - * @returns {yfiles.graph.ILabelModelParameter} The layout parameter to use or null. + * @param context The input mode context. + * @param owner The label's owner. + * @returns The layout parameter to use or null. * @protected */ getLabelParameter(context:yfiles.input.IInputModeContext,owner:yfiles.graph.ILabelOwner):yfiles.graph.ILabelModelParameter; @@ -36184,9 +36228,9 @@ declare namespace system{ *

    * This method will obtain the default style instances from the {@link yfiles.input.EditLabelHelper#graph} considering the type of the current owner. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.graph.ILabelOwner} owner The label's owner. - * @returns {yfiles.styles.ILabelStyle} The style to use or null. + * @param context The input mode context. + * @param owner The label's owner. + * @returns The style to use or null. * @protected */ getLabelStyle(context:yfiles.input.IInputModeContext,owner:yfiles.graph.ILabelOwner):yfiles.styles.ILabelStyle; @@ -36196,9 +36240,9 @@ declare namespace system{ * This implementation yields null to indicate that the preferred size should be calculated after the text has been * entered. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.graph.ILabel} label The label to get the preferred size from. - * @returns {yfiles.geometry.Size} The size to use or null. + * @param context The input mode context. + * @param label The label to get the preferred size from. + * @returns The size to use or null. * @protected */ getPreferredSize(context:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel):yfiles.geometry.Size; @@ -36209,7 +36253,7 @@ declare namespace system{ * {@link yfiles.input.EditLabelHelper#getPreferredSize} to set the appropriate properties on args and sets the {@link yfiles.input.LabelEditingEventArgs#handled} property to * true. Label creation thus is always possible. *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The original event arguments. + * @param evt The original event arguments. */ onLabelAdding(evt:yfiles.input.LabelEditingEventArgs):void; /** @@ -36222,7 +36266,7 @@ declare namespace system{ *

    * The arguments are always set as {@link yfiles.input.LabelEditingEventArgs#handled}, so label editing is always possible. *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The original event arguments. + * @param evt The original event arguments. */ onLabelEditing(evt:yfiles.input.LabelEditingEventArgs):void; /** @@ -36249,7 +36293,7 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.CreateEdgeInputMode#exclusive} by default. *

    - * @class yfiles.input.CreateEdgeInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface CreateEdgeInputMode extends Object,yfiles.input.IInputMode{} @@ -36260,7 +36304,6 @@ declare namespace system{ * Setting the {@link yfiles.input.CreateEdgeInputMode#graph} property can be used to optionally set a different graph to work on. *

    * @see yfiles.input.CreateEdgeInputMode#graph - * @constructor */ constructor(); /** @@ -36274,7 +36317,7 @@ declare namespace system{ cancel():void; /** * Creates the dummy edge that will be displayed by the input mode during the creation. - * @returns {yfiles.graph.IEdge} An {@link yfiles.graph.IEdge} implementation that can be used as a dummy. + * @returns An {@link } implementation that can be used as a dummy. * @protected */ createDummyEdge():yfiles.graph.IEdge; @@ -36284,7 +36327,7 @@ declare namespace system{ * Note that the instance returned by this instance must accept any port as valid source and target ports for it's {@link yfiles.graph.IGraph#setEdgePorts} * method. This will allow the preview edge to be connected to the actual {@link yfiles.input.CreateEdgeInputMode#graph}. *

    - * @returns {yfiles.graph.IGraph} A graph instance that will be rendered as a preview. + * @returns A graph instance that will be rendered as a preview. * @protected */ createDummyEdgeGraph():yfiles.graph.IGraph; @@ -36296,10 +36339,10 @@ declare namespace system{ * events are triggered. If the edge creation is canceled by the creator callback, newly created ports will be removed * again. *

    - * @param {yfiles.graph.IGraph} graph The graph to create the edge for. - * @param {yfiles.input.IPortCandidate} sourcePortCandidate The candidate to use for the source. - * @param {yfiles.input.IPortCandidate} targetPortCandidate The candidate to use for the target. - * @returns {yfiles.graph.IEdge} The edge created or null. + * @param graph The graph to create the edge for. + * @param sourcePortCandidate The candidate to use for the source. + * @param targetPortCandidate The candidate to use for the target. + * @returns The edge created or null. * @protected */ createEdge(graph:yfiles.graph.IGraph,sourcePortCandidate:yfiles.input.IPortCandidate,targetPortCandidate:yfiles.input.IPortCandidate):yfiles.graph.IEdge; @@ -36309,14 +36352,14 @@ declare namespace system{ * This method will actually create the edge using the {@link yfiles.input.CreateEdgeInputMode#createEdge} method. This method will * ultimately call {@link yfiles.input.CreateEdgeInputMode#onEdgeCreated}. *

    - * @returns {yfiles.graph.IEdge} The edge created or null. + * @returns The edge created or null. * @protected */ createEdge():yfiles.graph.IEdge; /** * Creates an {@link yfiles.input.IInputModeContext} for use with the port candidates queries for the upcoming edge creation * operation and the actual edge creation - * @returns {yfiles.input.IInputModeContext} An instance of {@link yfiles.input.IInputModeContext} that is configured for this mode. + * @returns An instance of {@link } that is configured for this mode. * @protected */ createEdgeCreationInputModeContext():yfiles.input.IInputModeContext; @@ -36325,41 +36368,41 @@ declare namespace system{ * port. *

    * This instance needs to be {@link yfiles.input.IInputMode#install installed} and {@link yfiles.input.CreateEdgeInputMode#enabled} and it needs to be able to {@link yfiles.input.ConcurrencyController#canRequestMutex request the input mutex} in order to proceed. If any - * of these conditions are not satisfied, this method will throw an {@link Stubs.Exceptions.InvalidOperationError}. + * of these conditions are not satisfied, this method will throw an {@link yfiles.lang.Exception}. *

    - * @param {yfiles.input.IPortCandidate} sourcePortCandidate The source port candidate to use for the edge creation. + * @param sourcePortCandidate The source port candidate to use for the edge creation. */ doStartEdgeCreation(sourcePortCandidate:yfiles.input.IPortCandidate):void; /** * Finds the closest {@link yfiles.input.PortCandidateValidity#VALID} candidate given a number of * {@link yfiles.input.IPortCandidate}s and a location in world coordinates. - * @param {yfiles.collections.IEnumerable.} candidates The candidates to find the closest from. - * @param {yfiles.geometry.Point} location The location of the mouse in world coordinates. - * @returns {yfiles.input.IPortCandidate} The candidate to use or null if no candidate satisfies the needs + * @param candidates The candidates to find the closest from. + * @param location The location of the mouse in world coordinates. + * @returns The candidate to use or null if no candidate satisfies the needs * @protected */ getClosestCandidate(candidates:yfiles.collections.IEnumerable,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; /** * Finds the closest candidate given a number of {@link yfiles.input.IPortCandidate}s and a location in world coordinates. - * @param {yfiles.collections.IEnumerable.} candidates The candidates to find the closest from. - * @param {yfiles.geometry.Point} location The location of the pointer in world coordinates. - * @returns {yfiles.input.IPortCandidate} The candidate to use or null if no candidate satisfies the needs + * @param candidates The candidates to find the closest from. + * @param location The location of the pointer in world coordinates. + * @returns The candidate to use or null if no candidate satisfies the needs * @protected */ getClosestSourceCandidate(candidates:yfiles.collections.IEnumerable,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; /** * Finds the closest target candidate given a number of {@link yfiles.input.IPortCandidate}s and a location in world coordinates. - * @param {yfiles.collections.IEnumerable.} candidates The candidates to find the closest from. - * @param {yfiles.geometry.Point} location The location of the mouse in world coordinates. - * @returns {yfiles.input.IPortCandidate} The candidate to use or null if no candidate satisfies the needs or {@link yfiles.input.CreateEdgeInputMode#enforceBendCreationRecognizer} yields true. + * @param candidates The candidates to find the closest from. + * @param location The location of the mouse in world coordinates. + * @returns The candidate to use or null if no candidate satisfies the needs or {@link #enforceBendCreationRecognizer} yields true. * @protected */ getClosestTargetCandidate(candidates:yfiles.collections.IEnumerable,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; /** * Gets the snap lines lines that are induced by the current dummy edge. - * @param {yfiles.input.GraphSnapContext} context The graph snap context. - * @param {yfiles.input.ISnapLineProvider} provider The dummy edge segment snap line provider. - * @returns {yfiles.collections.IEnumerable.} The snap lines induced by the current dummy edge. + * @param context The graph snap context. + * @param provider The dummy edge segment snap line provider. + * @returns The snap lines induced by the current dummy edge. * @protected */ getDummyEdgeSnapLines(context:yfiles.input.GraphSnapContext,provider:yfiles.input.ISnapLineProvider):yfiles.collections.IEnumerable; @@ -36370,7 +36413,7 @@ declare namespace system{ * point the way the user dragged the mouse. An edge starting in the inner of the node will be directed the way dragged * unless another edge that is close to the new edge ({@link yfiles.input.CreateEdgeInputMode#preferredMinimalEdgeDistance}) already went that way. *

    - * @returns {yfiles.input.EdgeSegmentDirection} A {@link yfiles.input.EdgeSegmentDirection} defining the direction of the first edge segment. + * @returns A {@link } defining the direction of the first edge segment. * @protected */ getFirstSegmentDirection():yfiles.input.EdgeSegmentDirection; @@ -36381,10 +36424,10 @@ declare namespace system{ * *
    * Otherwise this implementation calls the {@link yfiles.styles.INodeStyleRenderer#getHitTestable} method of the nodes to find hit - * nodes and uses the {@link system.collections.Comparer} to determine the first hit node. + * nodes and uses an {@link yfiles.collections.IComparer.} to determine the first hit node. *

    - * @param {yfiles.geometry.Point} location The position in world coordinates. - * @returns {yfiles.graph.IPortOwner} The node or null if no suitable node was found. + * @param location The position in world coordinates. + * @returns The node or null if no suitable node was found. * @protected */ getPortOwner(location:yfiles.geometry.Point):yfiles.graph.IPortOwner; @@ -36394,7 +36437,7 @@ declare namespace system{ * This implementation only considers nodes in the graph unless {@link yfiles.input.CreateEdgeInputMode#allowEdgeToEdgeConnections} is set to * true, in which case edges are also added to the enumerable. *

    - * @returns {yfiles.collections.IEnumerable.} An enumerable over all {@link yfiles.graph.IPortOwner}s in this graph + * @returns An enumerable over all {@link }s in this graph * @protected */ getPortOwners():yfiles.collections.IEnumerable; @@ -36405,8 +36448,8 @@ declare namespace system{ *
    * This default implementation simply delegates to {@link yfiles.input.CreateEdgeInputMode#getPortOwner}. *

    - * @param {yfiles.geometry.Point} sourceLocation The location of the mouse at the beginning of the gesture. - * @returns {yfiles.graph.IPortOwner} The port owner to use for the source node or null. + * @param sourceLocation The location of the mouse at the beginning of the gesture. + * @returns The port owner to use for the source node or null. * @protected */ getSource(sourceLocation:yfiles.geometry.Point):yfiles.graph.IPortOwner; @@ -36416,11 +36459,11 @@ declare namespace system{ * The resolveCandidates parameter determines whether dynamic port candidates should be {@link yfiles.input.CreateEdgeInputMode#resolveCandidates resolved} with respect to location * or simply be discarded. *

    - * @param {yfiles.input.IPortCandidateProvider} provider The provider for the candidates. - * @param {yfiles.geometry.Point} location The location where the gesture was initiated. - * @param {boolean} resolveCandidates Determines whether {@link yfiles.input.PortCandidateValidity#DYNAMIC} ports should be resolved with respect to the location or + * @param provider The provider for the candidates. + * @param location The location where the gesture was initiated. + * @param resolveCandidates Determines whether {@link #DYNAMIC} ports should be resolved with respect to the location or * not. - * @returns {yfiles.input.IPortCandidate} The candidate to use or null. + * @returns The candidate to use or null. * @see yfiles.input.CreateEdgeInputMode#resolveSourcePortCandidates * @see yfiles.input.CreateEdgeInputMode#portCandidateResolutionRecognizer * @protected @@ -36432,8 +36475,8 @@ declare namespace system{ * This implementation will use the {@link yfiles.input.CreateEdgeInputMode#getSource port owner} to look up the {@link yfiles.input.IPortCandidateProvider port candidate provider} and finally delegate to * {@link yfiles.input.CreateEdgeInputMode#getSourcePortCandidate}. *

    - * @param {yfiles.geometry.Point} location The location where the gesture was initiated. - * @returns {yfiles.input.IPortCandidate} + * @param location The location where the gesture was initiated. + * @returns * @see yfiles.input.CreateEdgeInputMode#getSource * @see yfiles.input.CreateEdgeInputMode#getSourcePortCandidateProvider * @see yfiles.input.CreateEdgeInputMode#getSourcePortCandidate @@ -36446,8 +36489,8 @@ declare namespace system{ * This implementations uses the sourceOwner's {@link yfiles.graph.ILookup#lookup} to retrieve an {@link yfiles.input.IPortCandidateProvider} * implementation. *

    - * @param {yfiles.graph.IPortOwner} sourceOwner The {@link yfiles.graph.IPortOwner} to find the candidates for. - * @returns {yfiles.input.IPortCandidateProvider} A provider instance or null. + * @param sourceOwner The {@link } to find the candidates for. + * @returns A provider instance or null. * @protected */ getSourcePortCandidateProvider(sourceOwner:yfiles.graph.IPortOwner):yfiles.input.IPortCandidateProvider; @@ -36458,8 +36501,8 @@ declare namespace system{ *
    * This default implementation simply delegates to {@link yfiles.input.CreateEdgeInputMode#getPortOwner}. *

    - * @param {yfiles.geometry.Point} targetLocation The location of the pointer at the beginning of the gesture. - * @returns {yfiles.graph.IPortOwner} The port owner or null. + * @param targetLocation The location of the pointer at the beginning of the gesture. + * @returns The port owner or null. * @protected */ getTarget(targetLocation:yfiles.geometry.Point):yfiles.graph.IPortOwner; @@ -36469,10 +36512,10 @@ declare namespace system{ * This implementations uses the targetOwner's {@link yfiles.graph.ILookup#lookup} to retrieve an {@link yfiles.input.IPortCandidateProvider} * implementation. *

    - * @param {yfiles.input.IPortCandidate} sourcePortCandidate The current source port candidate. - * @param {yfiles.graph.IPortOwner} targetOwner The {@link yfiles.graph.IPortOwner} to find the candidates for. - * @param {yfiles.geometry.Point} location The location of the mouse. - * @returns {yfiles.input.IPortCandidateProvider} A provider instance or null. + * @param sourcePortCandidate The current source port candidate. + * @param targetOwner The {@link } to find the candidates for. + * @param location The location of the mouse. + * @returns A provider instance or null. * @protected */ getTargetPortCandidateProvider(sourcePortCandidate:yfiles.input.IPortCandidate,targetOwner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point):yfiles.input.IPortCandidateProvider; @@ -36483,9 +36526,9 @@ declare namespace system{ * This implementation queries all nodes in the graph for {@link yfiles.input.CreateEdgeInputMode#getTargetPortCandidateProvider their provider} and returns a composite unless {@link yfiles.input.CreateEdgeInputMode#useHitItemsCandidatesOnly} is set to true in * which case the {@link yfiles.input.CreateEdgeInputMode#getTargetPortCandidateProvider} is queried using the current {@link yfiles.input.CreateEdgeInputMode#getTarget target}. *

    - * @param {yfiles.input.IPortCandidate} sourcePortCandidate The source candidate that has been chosen for the edge creation. - * @param {yfiles.geometry.Point} location The location of the mouse. - * @returns {yfiles.input.IPortCandidateProvider} The provider to get the port candidates from. + * @param sourcePortCandidate The source candidate that has been chosen for the edge creation. + * @param location The location of the mouse. + * @returns The provider to get the port candidates from. * @protected */ getTargetPortCandidateProvider(sourcePortCandidate:yfiles.input.IPortCandidate,location:yfiles.geometry.Point):yfiles.input.IPortCandidateProvider; @@ -36496,10 +36539,10 @@ declare namespace system{ * or simply be discarded. This implementation delegates to {@link yfiles.input.CreateEdgeInputMode#getTargetPortCandidateProvider} * or returns an empty enumerable if no provider has been found. *

    - * @param {yfiles.geometry.Point} location The location of the mouse in world coordinates. - * @param {boolean} resolveCandidates Determines whether {@link yfiles.input.PortCandidateValidity#DYNAMIC} ports should be resolved with respect to the location or + * @param location The location of the mouse in world coordinates. + * @param resolveCandidates Determines whether {@link #DYNAMIC} ports should be resolved with respect to the location or * not. - * @returns {yfiles.collections.IEnumerable.} A possibly empty enumeration over all target port candidates. + * @returns A possibly empty enumeration over all target port candidates. * @see yfiles.input.CreateEdgeInputMode#sourcePortCandidate * @see yfiles.input.CreateEdgeInputMode#resolveTargetPortCandidates * @see yfiles.input.CreateEdgeInputMode#portCandidateResolutionRecognizer @@ -36518,10 +36561,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.CreateEdgeInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -36565,26 +36608,26 @@ declare namespace system{ * This method will trigger the {@link yfiles.input.CreateEdgeInputMode#addEdgeCreatedListener EdgeCreated} * event. *

    - * @param {yfiles.graph.EdgeEventArgs} evt The event argument holding the edge. + * @param evt The event argument holding the edge. * @protected */ onEdgeCreated(evt:yfiles.graph.EdgeEventArgs):void; /** * Raises the {@link yfiles.input.CreateEdgeInputMode#addEdgeCreationStartedListener EdgeCreationStarted} event when * the gesture for creating an edge has been initialized. - * @param {yfiles.graph.EdgeEventArgs} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the dummy edge that will be used during edge creation. + * @param evt The {@link } instance containing the dummy edge that will be used during edge creation. * @protected */ onEdgeCreationStarted(evt:yfiles.graph.EdgeEventArgs):void; /** * Triggers the {@link yfiles.input.CreateEdgeInputMode#addGestureCanceledListener GestureCanceled} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onGestureCanceled(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.CreateEdgeInputMode#addGestureCancelingListener GestureCanceling} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onGestureCanceling(evt:yfiles.input.InputModeEventArgs):void; @@ -36594,7 +36637,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.CreateEdgeInputMode#addGestureFinishedListener GestureFinished} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onGestureFinished(evt:yfiles.input.InputModeEventArgs):void; @@ -36604,19 +36647,19 @@ declare namespace system{ * This method triggers the {@link yfiles.input.CreateEdgeInputMode#addGestureFinishingListener GestureFinishing} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onGestureFinishing(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.CreateEdgeInputMode#addGestureStartedListener GestureStarted} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onGestureStarted(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.CreateEdgeInputMode#addGestureStartingListener GestureStarting} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onGestureStarting(evt:yfiles.input.InputModeEventArgs):void; @@ -36625,7 +36668,7 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.CreateEdgeInputMode#addMovedListener Moved} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onMoved(evt:yfiles.input.InputModeEventArgs):void; @@ -36634,14 +36677,14 @@ declare namespace system{ *

    * This method triggers the {@link yfiles.input.CreateEdgeInputMode#addMovingListener Moving} event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onMoving(evt:yfiles.input.InputModeEventArgs):void; /** * Raises the {@link yfiles.input.CreateEdgeInputMode#addPortAddedListener PortAdded} event if the mode has * {@link yfiles.graph.IGraph#addPort added a port} for the source or target node to complete the edge creation. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the port that has been added. + * @param evt The {@link } instance containing the port that has been added. * @see yfiles.input.CreateEdgeInputMode#addPortAddedListener * @protected */ @@ -36649,7 +36692,7 @@ declare namespace system{ /** * Triggers the {@link yfiles.input.CreateEdgeInputMode#addSourcePortCandidateChangedListener SourcePortCandidateChanged} * event. - * @param {yfiles.collections.ItemEventArgs.} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onSourcePortCandidateChanged(evt:yfiles.collections.ItemEventArgs):void; @@ -36667,7 +36710,7 @@ declare namespace system{ /** * Triggers the {@link yfiles.input.CreateEdgeInputMode#addTargetPortCandidateChangedListener TargetPortCandidateChanged} * event. - * @param {yfiles.collections.ItemEventArgs.} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onTargetPortCandidateChanged(evt:yfiles.collections.ItemEventArgs):void; @@ -36677,15 +36720,15 @@ declare namespace system{ * If the location has a value, method {@link yfiles.input.IPortCandidate#getPortCandidateAt} is used to resolve the dynamic * candidate to a real candidate, otherwise that candidate is discarded. *

    - * @param {yfiles.collections.IEnumerable.} candidates The candidates to possibly resolve. - * @param {yfiles.geometry.Point} location The location to resolve dynamic candidates against or null if they should be discarded instead. - * @returns {yfiles.collections.IEnumerable.} An enumerable of non-{@link yfiles.input.PortCandidateValidity#DYNAMIC} port candidates. + * @param candidates The candidates to possibly resolve. + * @param location The location to resolve dynamic candidates against or null if they should be discarded instead. + * @returns An enumerable of non-{@link #DYNAMIC} port candidates. * @protected */ resolveCandidates(candidates:yfiles.collections.IEnumerable,location:yfiles.geometry.Point):yfiles.collections.IEnumerable; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -36697,7 +36740,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -36706,7 +36749,7 @@ declare namespace system{ *

    * This implementation creates a self loop of the dummy edge if the sourcePortCandidate is the same as the owner of the {@link yfiles.input.CreateEdgeInputMode#targetPortCandidate}. *

    - * @param {yfiles.input.IPortCandidate} sourcePortCandidate The new owner target port candidate. + * @param sourcePortCandidate The new owner target port candidate. * @protected */ updateDummyEdgeSourcePort(sourcePortCandidate:yfiles.input.IPortCandidate):void; @@ -36715,7 +36758,7 @@ declare namespace system{ *

    * This implementation creates a self loop of the dummy edge if the targetPortCandidate is the same as the owner of the {@link yfiles.input.CreateEdgeInputMode#sourcePortCandidate}. *

    - * @param {yfiles.input.IPortCandidate} targetPortCandidate The new owner target port candidate. + * @param targetPortCandidate The new owner target port candidate. * @protected */ updateDummyEdgeTargetPort(targetPortCandidate:yfiles.input.IPortCandidate):void; @@ -36724,7 +36767,7 @@ declare namespace system{ *

    * This method is called when the current target location for the creation gesture is changed. *

    - * @param {yfiles.geometry.Point} location The new coordinates. + * @param location The new coordinates. * @protected */ updateTargetLocation(location:yfiles.geometry.Point):void; @@ -37008,7 +37051,7 @@ declare namespace system{ *

    * @see yfiles.input.GraphEditorInputMode#orthogonalEdgeEditingContext * @see yfiles.input.OrthogonalEdgeEditingContext#enabled - * @default 0 + * @default yfiles.input.OrthogonalEdgeEditingPolicy.AUTO * @type {yfiles.input.OrthogonalEdgeEditingPolicy} */ orthogonalEdgeCreation:yfiles.input.OrthogonalEdgeEditingPolicy; @@ -37158,27 +37201,27 @@ declare namespace system{ targetPortCandidate:yfiles.input.IPortCandidate; /** * Adds the given listener for the SourcePortCandidateChanged event that occurs when the value of the {@link yfiles.input.CreateEdgeInputMode#sourcePortCandidate} property changes. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeSourcePortCandidateChangedListener */ addSourcePortCandidateChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the SourcePortCandidateChanged event that occurs when the value of the {@link yfiles.input.CreateEdgeInputMode#sourcePortCandidate} property * changes. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addSourcePortCandidateChangedListener */ removeSourcePortCandidateChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Adds the given listener for the TargetPortCandidateChanged event that occurs when the value of the {@link yfiles.input.CreateEdgeInputMode#targetPortCandidate} property changes. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeTargetPortCandidateChangedListener */ addTargetPortCandidateChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the TargetPortCandidateChanged event that occurs when the value of the {@link yfiles.input.CreateEdgeInputMode#targetPortCandidate} property * changes. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addTargetPortCandidateChangedListener */ removeTargetPortCandidateChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; @@ -37196,14 +37239,14 @@ declare namespace system{ cancelEditImplicitly:boolean; /** * Adds the given listener for the EdgeCreated event that occurs after an edge has been created by this mode. - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#onEdgeCreated * @see yfiles.input.CreateEdgeInputMode#removeEdgeCreatedListener */ addEdgeCreatedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * Removes the given listener for the EdgeCreated event that occurs after an edge has been created by this mode. - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#onEdgeCreated * @see yfiles.input.CreateEdgeInputMode#addEdgeCreatedListener */ @@ -37211,14 +37254,14 @@ declare namespace system{ /** * Adds the given listener for the PortAdded event that occurs when this instance {@link yfiles.graph.IGraph#addPort adds a port} to the source or target node * during completion of the edge creation gesture. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removePortAddedListener */ addPortAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the PortAdded event that occurs when this instance {@link yfiles.graph.IGraph#addPort adds a port} to the source or target * node during completion of the edge creation gesture. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addPortAddedListener */ removePortAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; @@ -37243,6 +37286,9 @@ declare namespace system{ /** * Gets or sets a {@link yfiles.input.IHitTestable} that determines, whether it is valid to finish an edge creation gesture here. *

    + * If fact this hit testable is only queried at all if {@link yfiles.input.CreateEdgeInputMode#forceSnapToCandidate} is disabled and if there is currently no {@link yfiles.input.CreateEdgeInputMode#targetPortCandidate} available. + *

    + *

    * The default implementation returns true if there is a node at the given location. *

    * @type {yfiles.input.IHitTestable} @@ -37276,97 +37322,97 @@ declare namespace system{ isCreationInProgress:boolean; /** * Adds the given listener for the GestureFinishing event that occurs before the gesture will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeGestureFinishingListener */ addGestureFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the GestureFinishing event that occurs before the gesture will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addGestureFinishingListener */ removeGestureFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the GestureFinished event that occurs once the gesture has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeGestureFinishedListener */ addGestureFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the GestureFinished event that occurs once the gesture has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addGestureFinishedListener */ removeGestureFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the GestureStarting event that occurs once the gesture is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeGestureStartingListener */ addGestureStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the GestureStarting event that occurs once the gesture is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addGestureStartingListener */ removeGestureStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the GestureStarted event that occurs once the gesture is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeGestureStartedListener */ addGestureStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the GestureStarted event that occurs once the gesture is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addGestureStartedListener */ removeGestureStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Moving event that occurs at the start of every drag or move. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeMovingListener */ addMovingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Moving event that occurs at the start of every drag or move. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addMovingListener */ removeMovingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Moved event that occurs at the end of every drag or move. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeMovedListener */ addMovedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Moved event that occurs at the end of every drag or move. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addMovedListener */ removeMovedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the GestureCanceled event that occurs when the gesture has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeGestureCanceledListener */ addGestureCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the GestureCanceled event that occurs when the gesture has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addGestureCanceledListener */ removeGestureCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the GestureCanceling event that occurs before the gesture will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeGestureCancelingListener */ addGestureCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the GestureCanceling event that occurs before the gesture will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addGestureCancelingListener */ removeGestureCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -37375,7 +37421,7 @@ declare namespace system{ *

    * The edge that is stored in the {@link yfiles.collections.ItemEventArgs.#item} property is the {@link yfiles.input.CreateEdgeInputMode#dummyEdge} that is used during creation. *

    - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.CreateEdgeInputMode#removeEdgeCreationStartedListener */ addEdgeCreationStartedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; @@ -37384,15 +37430,14 @@ declare namespace system{ *

    * The edge that is stored in the {@link yfiles.collections.ItemEventArgs.#item} property is the {@link yfiles.input.CreateEdgeInputMode#dummyEdge} that is used during creation. *

    - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.CreateEdgeInputMode#addEdgeCreationStartedListener */ removeEdgeCreationStartedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * Gets or sets the event recognizer that will be queried to decide if bend creation is enforced. *

    - * The default is a combination of {@link yfiles.input.KeyEventRecognizers#CONTROL_PRESSED} or - * {@link yfiles.input.KeyEventRecognizers#META_PRESSED}. + * The default is {@link yfiles.input.KeyEventRecognizers#CONTROL_PRESSED} or {@link yfiles.input.KeyEventRecognizers#META_PRESSED}. *

    * @type {function(Object, yfiles.lang.EventArgs): boolean} */ @@ -37477,7 +37522,7 @@ declare namespace system{ *
  • {@link yfiles.input.GraphEditorInputMode#allowCreateBend} – Determines whether the {@link yfiles.input.GraphEditorInputMode#createBendInputMode} should be {@link yfiles.input.CreateBendInputMode#enabled} to allow for creating new bends.
  • *
  • {@link yfiles.input.NavigationInputMode#allowEnterGroup} – Determines whether the mode allows for {@link yfiles.input.NavigationInputMode#enterGroup entering} group nodes in {@link yfiles.graph.IFoldingView}s.
  • *
  • {@link yfiles.input.NavigationInputMode#allowExitGroup} – Determines whether the mode allows for {@link yfiles.input.NavigationInputMode#exitGroup exiting} the current group node in {@link yfiles.graph.IFoldingView}s.
  • - *
  • {@link yfiles.input.NavigationInputMode#allowCollapseGroup} – Determines whether the mode allows for {@link yfiles.input.NavigationInputMode#collapseGroup collapsing} group nodes in {@link yfiles.graph.IFoldingView}s.
  • + *
  • {@link yfiles.input.NavigationInputMode#allowCollapseGroup} – Determines whether the mode allows for collapsing group nodes in {@link yfiles.graph.IFoldingView}s.
  • *
  • {@link yfiles.input.NavigationInputMode#allowExpandGroup} – Determines whether the mode allows for {@link yfiles.input.NavigationInputMode#expandGroup expanding} group nodes in {@link yfiles.graph.IFoldingView}s.
  • *
  • * {@link yfiles.input.ItemHoverInputMode#hoverItems} – Determines which items should be reported as being hovered through the {@link yfiles.input.ItemHoverInputMode#addHoveredItemChangedListener corresponding event} in this instance's @@ -37571,14 +37616,18 @@ declare namespace system{ *

    Related demos:

    *
      *
    • Demo: SimpleEditorForm, Demo.yFiles.Graph.SimpleEditor
    • - *
    • Demo: SingleSelectionWindow, demo.yfiles.input.singleselection
    • + *
    • Demo: GraphEditorForm, Demo.yFiles.GraphEditor
    • + *
    • Demo: InputModeForm, Demo.yFiles.Graph.InputModes
    • + *
    • Demo: DataSetGraphForm, Demo.yFiles.Graph.DataSetGraph
    • + *
    • Demo: TreeLayoutForm, Demo.yFiles.Graph.Tree
    • + *
    • Demo: SingleSelectionWindow, Demo.yFiles.Graph.Input.SingleSelection
    • *
    • Tutorial: 01 Getting Started, step 06 Basic Interaction
    • *
    * @see yfiles.input.GraphEditorInputMode#createEdgeInputMode * @see yfiles.input.GraphEditorInputMode#createBendInputMode * @see yfiles.input.GraphEditorInputMode#moveLabelInputMode * @see yfiles.input.GraphEditorInputMode#nodeDropInputMode - * @class yfiles.input.GraphEditorInputMode + * @class * @extends {yfiles.input.GraphInputMode} */ export interface GraphEditorInputMode extends yfiles.input.GraphInputMode{} @@ -37589,7 +37638,6 @@ declare namespace system{ * The {@link yfiles.graph.IGraph} and {@link yfiles.view.IGraphSelection} instances are obtained later from the {@link yfiles.input.IInputModeContext} * once this mode gets {@link yfiles.input.GraphEditorInputMode#install installed} in a suitable canvas control. *

    - * @constructor */ constructor(); /** @@ -37608,9 +37656,9 @@ declare namespace system{ * {@link yfiles.input.IEditLabelHelper}, and via those instead of adding a label an existing one should be edited. This method * will edit that label instead of adding a new one. *

    - * @param {yfiles.graph.ILabelOwner} owner The item to add a label to. - * @returns {Promise.} A Promise that fulfills with the edited label instance. It will fulfill with null if {@link yfiles.input.TextEditorInputMode#addEditingCanceledListener editing was canceled} or the text - * did not {@link yfiles.input.GraphEditorInputMode#addValidateLabelTextListener validate}. + * @param owner The item to add a label to. + * @returns A Promise that fulfills with the edited label instance. It will fulfill with null if {@link #addEditingCanceledListener editing was canceled} or the text + * did not {@link #addValidateLabelTextListener validate}. */ addLabel(owner:yfiles.graph.ILabelOwner):Promise; /** @@ -37625,7 +37673,7 @@ declare namespace system{ *

    * This action is executed in response to the {@link yfiles.input.ICommand#ADJUST_GROUP_NODE_SIZE} if {@link yfiles.input.GraphEditorInputMode#allowAdjustGroupNodeSize} is set to true. *

    - * @param {yfiles.collections.IEnumerable.} nodes The nodes to adjust their sizes. + * @param nodes The nodes to adjust their sizes. * @protected */ adjustGroupNodeSize(nodes:yfiles.collections.IEnumerable):void; @@ -37645,7 +37693,7 @@ declare namespace system{ * to make sure they are still valid. The actual work of this method will be delegated to * {@link yfiles.input.GraphEditorInputMode#setNodeLayout}. *

    - * @param {yfiles.graph.INode} node The node to possibly adjust the size of. + * @param node The node to possibly adjust the size of. */ adjustToSizeConstraints(node:yfiles.graph.INode):void; /** @@ -37653,16 +37701,16 @@ declare namespace system{ *

    * This method is only called if no item has been and {@link yfiles.input.GraphInputMode#clickClearSelection} returned false. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} location The location of the click. - * @returns {boolean} true if a node was successfully created, otherwise false. + * @param context The input mode context. + * @param location The location of the click. + * @returns true if a node was successfully created, otherwise false. * @see yfiles.input.GraphEditorInputMode#shouldClickCreateNode * @protected */ clickCreateNode(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * Closes the label editor if it is currently open. - * @param {boolean} cancel Whether to cancel the editor and discard changes. + * @param cancel Whether to cancel the editor and discard changes. */ closeLabelEditor(cancel:boolean):void; /** @@ -37670,7 +37718,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.GraphEditorInputMode#createBendInputMode} property. *

    - * @returns {yfiles.input.CreateBendInputMode} a new instance of CreateBendInputMode + * @returns a new instance of CreateBendInputMode * @protected */ createCreateBendInputMode():yfiles.input.CreateBendInputMode; @@ -37679,7 +37727,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.GraphEditorInputMode#createEdgeInputMode} property. *

    - * @returns {yfiles.input.CreateEdgeInputMode} a new instance of CreateEdgeInputMode + * @returns a new instance of CreateEdgeInputMode * @protected */ createCreateEdgeInputMode():yfiles.input.CreateEdgeInputMode; @@ -37688,7 +37736,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.GraphEditorInputMode#handleInputMode} property. *

    - * @returns {yfiles.input.HandleInputMode} a new instance of HandleInputMode + * @returns a new instance of HandleInputMode * @protected */ createHandleInputMode():yfiles.input.HandleInputMode; @@ -37708,9 +37756,9 @@ declare namespace system{ * {@link yfiles.input.IEditLabelHelper}, and via those instead of adding a label an existing one should be edited. This method * will do nothing instead of editing an existing label or adding a new one in that case. *

    - * @param {yfiles.graph.ILabelOwner} owner The item to create a new label for. - * @returns {Promise.} A Promise that fulfills with the edited label instance. It will fulfill with null if {@link yfiles.input.TextEditorInputMode#addEditingCanceledListener editing was canceled} or the text - * did not {@link yfiles.input.GraphEditorInputMode#addValidateLabelTextListener validate}. + * @param owner The item to create a new label for. + * @returns A Promise that fulfills with the edited label instance. It will fulfill with null if {@link #addEditingCanceledListener editing was canceled} or the text + * did not {@link #addValidateLabelTextListener validate}. */ createLabel(owner:yfiles.graph.ILabelOwner):Promise; /** @@ -37718,7 +37766,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.MoveInputMode} property. *

    - * @returns {yfiles.input.MoveInputMode} a new instance of MoveInputMode + * @returns a new instance of MoveInputMode * @protected */ createMoveInputMode():yfiles.input.MoveInputMode; @@ -37727,7 +37775,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.GraphEditorInputMode#moveLabelInputMode} property. *

    - * @returns {yfiles.input.MoveLabelInputMode} a new instance of {@link yfiles.input.MoveLabelInputMode} + * @returns a new instance of {@link } * @protected */ createMoveLabelInputMode():yfiles.input.MoveLabelInputMode; @@ -37738,9 +37786,9 @@ declare namespace system{ * In order to use this mode, the created instance should be installed in a {@link yfiles.input.GraphEditorInputMode} like this but * using a smaller {@link yfiles.input.IInputMode#priority priority} value than the {@link yfiles.input.IInputMode#priority priority} of the mode that is {@link yfiles.input.GraphEditorInputMode#moveInputMode installed by default}. *

    - * @param {function(Object, yfiles.lang.EventArgs): boolean} recognizer Use this instance to make this mode work under certain conditions only. null for default behavior, one of the {@link yfiles.input.KeyEventRecognizers} + * @param recognizer Use this instance to make this mode work under certain conditions only. null for default behavior, one of the {@link } * constants, e.g. for alternate behavior. - * @returns {yfiles.input.MoveInputMode} A {@link yfiles.input.GraphEditorInputMode#moveInputMode} instance that uses the {@link yfiles.input.IPositionHandler} instances of the items that are hit at the position of the + * @returns A {@link #moveInputMode} instance that uses the {@link } instances of the items that are hit at the position of the * cursor, regardless of their selection state. */ createMoveUnselectedInputMode(recognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean):yfiles.input.MoveInputMode; @@ -37750,24 +37798,24 @@ declare namespace system{ * This implementation delegates to the current node creation callback or simply returns null if there is no such callback * or {@link yfiles.input.GraphEditorInputMode#allowCreateNode} yields false. Finally, it tries to {@link yfiles.input.GraphInputMode#setCurrentItem set the node as the current item}. *

    - * @param {yfiles.geometry.Point} location The point where the mouse had been clicked. - * @returns {yfiles.graph.INode} The newly created node or null. + * @param location The point where the mouse had been clicked. + * @returns The newly created node or null. * @see yfiles.input.GraphEditorInputMode#onNodeCreated * @see yfiles.input.GraphInputMode#setCurrentItem */ createNode(location:yfiles.geometry.Point):yfiles.graph.INode; /** * Factory method that creates the {@link yfiles.input.GraphEditorInputMode#nodeDropInputMode} lazily the first time the property is accessed. - * @returns {yfiles.input.NodeDropInputMode} A plain new instance of the {@link yfiles.input.NodeDropInputMode} type, which is initially {@link yfiles.input.DropInputMode#enabled disabled}. + * @returns A plain new instance of the {@link } type, which is initially {@link #enabled disabled}. * @protected */ createNodeDropInputMode():yfiles.input.NodeDropInputMode; /** - * Factory method for the ReparentNodeHandler property. + * Factory method for the {@link yfiles.input.GraphEditorInputMode#reparentNodeHandler} property. *

    * This method will be called upon first access to the {@link yfiles.input.GraphEditorInputMode#reparentNodeHandler} property. *

    - * @returns {yfiles.input.IReparentNodeHandler} a new instance of {@link yfiles.input.GraphEditorInputMode#reparentNodeHandler} + * @returns a new instance of {@link #reparentNodeHandler} * @protected */ createReparentNodeHandler():yfiles.input.IReparentNodeHandler; @@ -37776,7 +37824,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.GraphEditorInputMode#textEditorInputMode} property. *

    - * @returns {yfiles.input.TextEditorInputMode} a new instance of TextEditorInputMode + * @returns a new instance of TextEditorInputMode * @protected */ createTextEditorInputMode():yfiles.input.TextEditorInputMode; @@ -37800,7 +37848,7 @@ declare namespace system{ deleteSelection():void; /** * Initiates the {@link yfiles.input.GraphEditorInputMode#handleInputMode} to drag the given bend. - * @param {yfiles.graph.IBend} bend The bend to drag. + * @param bend The bend to drag. * @see yfiles.input.GraphEditorInputMode#onCreateBendInputModeBendCreated */ dragBend(bend:yfiles.graph.IBend):void; @@ -37825,9 +37873,9 @@ declare namespace system{ * {@link yfiles.input.LabelEditingEventArgs#textEditorInputModeConfigurator} property on the {@link yfiles.input.LabelEditingEventArgs}. Thus editing a label via this method cannot be prevented by event * handlers or {@link yfiles.input.IEditLabelHelper}s. *

    - * @param {yfiles.graph.ILabel} label The label to edit. - * @returns {Promise.} A Promise that fulfills with the edited label instance. It will also fulfill with the instance if editing is {@link yfiles.input.TextEditorInputMode#addEditingCanceledListener editing was canceled} - * or the text did not {@link yfiles.input.GraphEditorInputMode#addValidateLabelTextListener validate} and the edit was reverted automatically. + * @param label The label to edit. + * @returns A Promise that fulfills with the edited label instance. It will also fulfill with the instance if editing is {@link #addEditingCanceledListener editing was canceled} + * or the text did not {@link #addValidateLabelTextListener validate} and the edit was reverted automatically. * @see yfiles.input.GraphEditorInputMode#onLabelTextEdited */ editLabel(label:yfiles.graph.ILabel):Promise; @@ -37836,8 +37884,8 @@ declare namespace system{ *

    * The method should return whether the request was satisfied. *

    - * @param {yfiles.graph.IModelItem} item The item whose label or the label itself that should be edited upon the double click gesture. - * @returns {boolean} true iff the request was handled. + * @param item The item whose label or the label itself that should be edited upon the double click gesture. + * @returns true iff the request was handled. * @see yfiles.input.GraphInputMode#doubleClick * @see yfiles.input.GraphEditorInputMode#allowEditLabelOnDoubleClick * @protected @@ -37851,7 +37899,7 @@ declare namespace system{ *

    * The default shortcut for this is Ctrl+G. *

    - * @returns {yfiles.graph.INode} The newly created group node or null. + * @returns The newly created group node or null. * @see yfiles.input.ICommand#GROUP_SELECTION * @see yfiles.input.GraphInputMode#clearSelection * @see yfiles.input.GraphInputMode#setSelected @@ -37862,7 +37910,7 @@ declare namespace system{ *

    * This method determines the label owner to add to and delegates to {@link yfiles.input.GraphEditorInputMode#createLabel}. *

    - * @returns {boolean} + * @returns * @protected */ onAddLabel():boolean; @@ -37874,40 +37922,40 @@ declare namespace system{ * {@link yfiles.input.GraphEditorInputMode#dragBend}. If the subsequent drag is canceled by the user, this call will remove the * bend again. *

    - * @param {Object} sender - * @param {yfiles.collections.ItemEventArgs.} evt + * @param sender + * @param evt * @protected */ onCreateBendInputModeBendCreated(sender:Object,evt:yfiles.collections.ItemEventArgs):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#createBendInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.CreateBendInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.CreateBendInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onCreateBendInputModeChanged(oldMode:yfiles.input.CreateBendInputMode,newMode:yfiles.input.CreateBendInputMode):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#createEdgeInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.CreateEdgeInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.CreateEdgeInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onCreateEdgeInputModeChanged(oldMode:yfiles.input.CreateEdgeInputMode,newMode:yfiles.input.CreateEdgeInputMode):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addDeletedItemListener DeletedItem} event. - * @param {yfiles.collections.ItemEventArgs.} evt The instance containing the event data. + * @param evt The instance containing the event data. * @protected */ onDeletedItem(evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addDeletedSelectionListener DeletedSelection} event. - * @param {yfiles.input.SelectionEventArgs.} evt The {@link yfiles.input.SelectionEventArgs.} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onDeletedSelection(evt:yfiles.input.SelectionEventArgs):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addDeletingSelectionListener DeletingSelection} event. - * @param {yfiles.input.SelectionEventArgs.} evt The {@link yfiles.input.SelectionEventArgs.} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onDeletingSelection(evt:yfiles.input.SelectionEventArgs):void; @@ -37916,8 +37964,8 @@ declare namespace system{ *

    * Dispatches the {@link yfiles.input.GraphEditorInputMode#addEdgePortsChangedListener EdgePortsChanged} event. *

    - * @param {yfiles.graph.EdgeEventArgs} evt The {@link yfiles.graph.EdgeEventArgs} for the - * {@link yfiles.input.GraphEditorInputMode#addEdgePortsChangedListener EdgePortsChanged}. + * @param evt The {@link } for the + * {@link #addEdgePortsChangedListener EdgePortsChanged}. * @protected */ onEdgePortsChanged(evt:yfiles.graph.EdgeEventArgs):void; @@ -37927,14 +37975,14 @@ declare namespace system{ * This method determines the label to edit and delegates to either {@link yfiles.input.GraphEditorInputMode#editLabel} or {@link yfiles.input.GraphEditorInputMode#createLabel} * if no label could be found. *

    - * @returns {boolean} + * @returns * @protected */ onEditLabel():boolean; /** * Called when the {@link yfiles.input.GraphEditorInputMode#graphComponent} property changes. - * @param {yfiles.view.GraphComponent} oldGraphComponent The old control. - * @param {yfiles.view.GraphComponent} newGraphComponent The new control. + * @param oldGraphComponent The old control. + * @param newGraphComponent The new control. * @protected */ onGraphComponentChanged(oldGraphComponent:yfiles.view.GraphComponent,newGraphComponent:yfiles.view.GraphComponent):void; @@ -37943,21 +37991,21 @@ declare namespace system{ *

    * This will update the internal state of the modes. *

    - * @param {yfiles.view.IGraphSelection} oldSelection The old selection instance. - * @param {yfiles.view.IGraphSelection} newSelection The new selection instance. + * @param oldSelection The old selection instance. + * @param newSelection The new selection instance. * @protected */ onGraphSelectionChanged(oldSelection:yfiles.view.IGraphSelection,newSelection:yfiles.view.IGraphSelection):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#handleInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.HandleInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.HandleInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onHandleInputModeChanged(oldMode:yfiles.input.HandleInputMode,newMode:yfiles.input.HandleInputMode):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addLabelAddedListener LabelAdded} event. - * @param {yfiles.graph.LabelEventArgs} evt The {@link yfiles.collections.ItemEventArgs.} instance that contains the {@link yfiles.graph.ILabel} that has been added. + * @param evt The {@link } instance that contains the {@link } that has been added. * @protected */ onLabelAdded(evt:yfiles.graph.LabelEventArgs):void; @@ -37966,7 +38014,7 @@ declare namespace system{ *

    * Invoking the event handlers stops once one event marks the args as handled. *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The event arguments. + * @param evt The event arguments. * @protected */ onLabelAdding(evt:yfiles.input.LabelEditingEventArgs):void; @@ -37975,20 +38023,20 @@ declare namespace system{ *

    * Invoking the event handlers stops once one event marks the args as handled. *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The event arguments. + * @param evt The event arguments. * @protected */ onLabelEditing(evt:yfiles.input.LabelEditingEventArgs):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#labelSnapContext} property context changed. - * @param {yfiles.input.SnapContext} oldContext The old snap context. - * @param {yfiles.input.SnapContext} newContext The new snap context. + * @param oldContext The old snap context. + * @param newContext The new snap context. * @protected */ onLabelSnapContextChanged(oldContext:yfiles.input.SnapContext,newContext:yfiles.input.SnapContext):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addLabelTextChangedListener LabelTextChanged} event. - * @param {yfiles.graph.LabelEventArgs} evt The {@link yfiles.collections.ItemEventArgs.} instance that contains the {@link yfiles.graph.ILabel} that has changed the text. + * @param evt The {@link } instance that contains the {@link } that has changed the text. * @protected */ onLabelTextChanged(evt:yfiles.graph.LabelEventArgs):void; @@ -37997,50 +38045,50 @@ declare namespace system{ *

    * This method {@link yfiles.input.GraphEditorInputMode#addValidateLabelTextListener validates the label text} and if successful calls {@link yfiles.input.GraphEditorInputMode#setLabelText}. *

    - * @param {yfiles.graph.ILabel} label The label that was edited. - * @param {string} text The new text. + * @param label The label that was edited. + * @param text The new text. * @protected */ onLabelTextEdited(label:yfiles.graph.ILabel,text:string):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addLabelTextEditingCanceledListener LabelTextEditingCanceled} * event. - * @param {yfiles.graph.LabelEventArgs} evt The {@link yfiles.graph.LabelEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onLabelTextEditingCanceled(evt:yfiles.graph.LabelEventArgs):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addLabelTextEditingStartedListener LabelTextEditingStarted} * event. - * @param {yfiles.graph.LabelEventArgs} evt The {@link yfiles.graph.LabelEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onLabelTextEditingStarted(evt:yfiles.graph.LabelEventArgs):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#moveInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.MoveInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.MoveInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onMoveInputModeChanged(oldMode:yfiles.input.MoveInputMode,newMode:yfiles.input.MoveInputMode):void; /** * Called when {@link yfiles.input.MoveInputMode#addDragCanceledListener DragCanceled} is triggered. - * @param {Object} sender - * @param {yfiles.lang.EventArgs} evt + * @param sender + * @param evt * @protected */ onMoveInputModeDragCanceled(sender:Object,evt:yfiles.lang.EventArgs):void; /** * Called when {@link yfiles.input.MoveInputMode#addDragFinishedListener DragFinished} is triggered. - * @param {Object} sender - * @param {yfiles.lang.EventArgs} evt + * @param sender + * @param evt * @protected */ onMoveInputModeDragFinished(sender:Object,evt:yfiles.lang.EventArgs):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#moveLabelInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.MoveLabelInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.MoveLabelInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onMoveLabelInputModeChanged(oldMode:yfiles.input.MoveLabelInputMode,newMode:yfiles.input.MoveLabelInputMode):void; @@ -38049,14 +38097,14 @@ declare namespace system{ *

    * Note that if {@link yfiles.input.NodeDropInputMode#allowFolderNodeAsParent} is set to true, the reported node can actually be part of the {@link yfiles.graph.IFoldingView master graph}. *

    - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance containing the created node. + * @param evt The {@link } instance containing the created node. * @protected */ onNodeCreated(evt:yfiles.collections.ItemEventArgs):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#nodeDropInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.NodeDropInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.NodeDropInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onNodeDropInputModeChanged(oldMode:yfiles.input.NodeDropInputMode,newMode:yfiles.input.NodeDropInputMode):void; @@ -38066,42 +38114,42 @@ declare namespace system{ * This implementation {@link yfiles.input.GraphEditorInputMode#adjustContentRect adjusts the content rect}, triggers the {@link yfiles.input.GraphEditorInputMode#addNodeCreatedListener NodeCreated} * event and tries to set the newly created node as the {@link yfiles.input.GraphInputMode#setCurrentItem current item}. *

    - * @param {Object} sender The sender. - * @param {yfiles.collections.ItemEventArgs.} evt The event argument instance containing the event data. + * @param sender The sender. + * @param evt The event argument instance containing the event data. * @protected */ onNodeDropInputModeNodeCreated(sender:Object,evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addNodeReparentedListener NodeReparented} event. - * @param {yfiles.graph.NodeEventArgs} evt The {@link yfiles.graph.NodeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.input.GraphEditorInputMode#reparentNodeHandler * @protected */ onNodeReparented(evt:yfiles.graph.NodeEventArgs):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#reparentNodeHandler} property value changes and after initialization of the field. - * @param {yfiles.input.IReparentNodeHandler} oldMode the old value, which may be null the first time - * @param {yfiles.input.IReparentNodeHandler} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onReparentNodeHandlerChanged(oldMode:yfiles.input.IReparentNodeHandler,newMode:yfiles.input.IReparentNodeHandler):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#snapContext} property context changed. - * @param {yfiles.input.SnapContext} oldContext The old snap context. - * @param {yfiles.input.SnapContext} newContext The new snap context. + * @param oldContext The old snap context. + * @param newContext The new snap context. * @protected */ onSnapContextChanged(oldContext:yfiles.input.SnapContext,newContext:yfiles.input.SnapContext):void; /** * Called when the {@link yfiles.input.GraphEditorInputMode#textEditorInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.TextEditorInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.TextEditorInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onTextEditorInputModeChanged(oldMode:yfiles.input.TextEditorInputMode,newMode:yfiles.input.TextEditorInputMode):void; /** * Raises the {@link yfiles.input.GraphEditorInputMode#addValidateLabelTextListener ValidateLabelText} event. - * @param {yfiles.input.LabelTextValidatingEventArgs} evt The {@link yfiles.input.LabelTextValidatingEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onValidateLabelText(evt:yfiles.input.LabelTextValidatingEventArgs):void; @@ -38116,7 +38164,7 @@ declare namespace system{ * The location is at the center of the bounds of the items that are pasted. This method reconfigures {@link yfiles.graph.GraphClipboard#pasteDelta} and calls * {@link yfiles.input.GraphEditorInputMode#paste}. *

    - * @param {yfiles.geometry.Point} location The location at which the center of the clipboard's contents should be positioned. + * @param location The location at which the center of the clipboard's contents should be positioned. */ pasteAtLocation(location:yfiles.geometry.Point):void; /** @@ -38138,7 +38186,7 @@ declare namespace system{ * for the edge. A {@link yfiles.input.GraphEditorInputMode#addEdgePortsChangedListener EdgePortsChanged} event * will be dispatched after the edge has been reversed. *

    - * @param {yfiles.graph.IEdge} edge + * @param edge */ reverseEdge(edge:yfiles.graph.IEdge):void; /** @@ -38151,7 +38199,7 @@ declare namespace system{ * For each edge a {@link yfiles.input.GraphEditorInputMode#addEdgePortsChangedListener EdgePortsChanged} event * will be dispatched. *

    - * @param {yfiles.collections.IEnumerable.} edges + * @param edges * @see yfiles.input.ICommand#REVERSE_EDGE */ reverseEdges(edges:yfiles.collections.IEnumerable):void; @@ -38174,7 +38222,7 @@ declare namespace system{ *

    * This method delegates to {@link yfiles.input.GraphInputMode#setSelected} for the node and all adjacent self loop bends. *

    - * @param {yfiles.graph.INode} node The node to select. + * @param node The node to select. */ selectNodeAndSelfloopBends(node:yfiles.graph.INode):void; /** @@ -38185,8 +38233,8 @@ declare namespace system{ * constraints are still kept if the {@link yfiles.graph.ILabel#preferredSize} changes due to the edit by calling * {@link yfiles.input.GraphEditorInputMode#adjustToSizeConstraints}. *

    - * @param {yfiles.graph.ILabel} label The label to set the text or remove. - * @param {string} text The new text. + * @param label The label to set the text or remove. + * @param text The new text. */ setLabelText(label:yfiles.graph.ILabel,text:string):void; /** @@ -38202,8 +38250,8 @@ declare namespace system{ *
  • *
  • {@link yfiles.input.GraphEditorInputMode#adjustContentRect} is called.
  • * - * @param {yfiles.graph.INode} node The node to reshape. - * @param {yfiles.geometry.Rect} layout The new node layout. + * @param node The node to reshape. + * @param layout The new node layout. */ setNodeLayout(node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; /** @@ -38212,8 +38260,8 @@ declare namespace system{ * This is overridden if the item has a {@link yfiles.input.IEditLabelHelper} that returns false for its {@link yfiles.input.IEditLabelHelper#onLabelAdding} * method. *

    - * @param {yfiles.graph.IModelItem} item The item to query - * @returns {boolean} true iff a label may be added + * @param item The item to query + * @returns true iff a label may be added * @protected */ shouldAddLabel(item:yfiles.graph.IModelItem):boolean; @@ -38223,9 +38271,9 @@ declare namespace system{ *

    * This implementation returns false when {@link yfiles.input.ContextMenuInputMode#swallowCloseClick} is true and the click has closed a context menu. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} clickPoint The location of the click. - * @returns {boolean} Whether {@link yfiles.input.GraphEditorInputMode#clickCreateNode} should be called to create a node. + * @param context The input mode context. + * @param clickPoint The location of the click. + * @returns Whether {@link #clickCreateNode} should be called to create a node. * @see yfiles.input.GraphEditorInputMode#clickCreateNode * @protected */ @@ -38236,16 +38284,16 @@ declare namespace system{ *

    * This implementation uses and honors the {@link yfiles.input.GraphEditorInputMode#deletableItems} and {@link yfiles.input.GraphEditorInputMode#deletablePredicate} properties. *

    - * @param {yfiles.graph.IModelItem} item The item. - * @returns {boolean} Whether to delete that item. + * @param item The item. + * @returns Whether to delete that item. * @protected */ shouldDelete(item:yfiles.graph.IModelItem):boolean; /** * Callback method that determines whether the label or the labels of the provided item should be edited in response to {@link yfiles.input.GraphEditorInputMode#onEditLabel} * or {@link yfiles.input.GraphEditorInputMode#onAddLabel}. - * @param {yfiles.graph.IModelItem} item The item. - * @returns {boolean} Whether to edit the label or the labels for that item. + * @param item The item. + * @returns Whether to edit the label or the labels for that item. * @protected */ shouldEditLabel(item:yfiles.graph.IModelItem):boolean; @@ -38258,8 +38306,8 @@ declare namespace system{ *

    * This implementation returns the result of the {@link yfiles.input.GraphEditorInputMode#movableItems} property for the given item. *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether or not moving the item is allowed. + * @param item The item to check. + * @returns Whether or not moving the item is allowed. * @see yfiles.input.GraphEditorInputMode#movableItems * @see yfiles.input.GraphEditorInputMode#moveInputMode * @see yfiles.input.GraphEditorInputMode#moveLabelInputMode @@ -38272,8 +38320,8 @@ declare namespace system{ *

    * This implementation returns the value of {@link yfiles.input.GraphEditorInputMode#allowReverseEdge}. *

    - * @param {yfiles.graph.IEdge} edge The edge which should be reversed. - * @returns {boolean} true if the edge should be reversed. + * @param edge The edge which should be reversed. + * @returns true if the edge should be reversed. * @protected */ shouldReverseEdge(edge:yfiles.graph.IEdge):boolean; @@ -38283,16 +38331,16 @@ declare namespace system{ *

    * This implementation returns true for the {@link yfiles.input.GraphEditorInputMode#pasteSelectableItems} items. *

    - * @param {yfiles.graph.IModelItem} item The item to check. - * @returns {boolean} Whether to select the item after {@link yfiles.input.GraphEditorInputMode#paste} or - * {@link yfiles.input.GraphEditorInputMode#duplicateSelection}. + * @param item The item to check. + * @returns Whether to select the item after {@link #paste} or + * {@link #duplicateSelection}. * @protected */ shouldSelectAfterPaste(item:yfiles.graph.IModelItem):boolean; /** * Determines whether to show the {@link yfiles.input.GraphEditorInputMode#handleInputMode handles} for the given item. - * @param {yfiles.graph.IModelItem} item The item to check - * @returns {boolean} Whether to show the item based on the setting of the corresponding {@link yfiles.input.GraphEditorInputMode#showHandleItems}, property. + * @param item The item to check + * @returns Whether to show the item based on the setting of the corresponding {@link #showHandleItems}, property. * @protected */ shouldShowHandles(item:yfiles.graph.IModelItem):boolean; @@ -38301,8 +38349,8 @@ declare namespace system{ *

    * This method is called by this instance whenever new nodes are created using the UI. *

    - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.graph.INode} node + * @param context + * @param node * @see yfiles.input.MultiplexingInputMode#createChildInputModeContext */ snapToGrid(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode):void; @@ -38337,7 +38385,7 @@ declare namespace system{ * By default this feature is enabled automatically if an {@link yfiles.input.GraphEditorInputMode#orthogonalEdgeEditingContext} is set. *

    * @see yfiles.input.GraphEditorInputMode#orthogonalEdgeEditingContext - * @default 0 + * @default yfiles.input.OrthogonalEdgeEditingPolicy.AUTO * @type {yfiles.input.OrthogonalEdgeEditingPolicy} */ orthogonalBendRemoval:yfiles.input.OrthogonalEdgeEditingPolicy; @@ -38378,7 +38426,7 @@ declare namespace system{ * @see yfiles.input.GraphEditorInputMode#shouldSelectAfterPaste * @see yfiles.input.GraphEditorInputMode#smartPasteSelection * @see yfiles.input.GraphInputMode#setSelected - * @default 63 + * @default yfiles.graph.GraphItemTypes.ALL * @type {yfiles.graph.GraphItemTypes} */ pasteSelectableItems:yfiles.graph.GraphItemTypes; @@ -38517,14 +38565,14 @@ declare namespace system{ /** * Adds the given listener for the LabelAdded event that occurs when this mode has triggered the addition of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.GraphEditorInputMode#createLabel}. - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#removeLabelAddedListener */ addLabelAddedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * Removes the given listener for the LabelAdded event that occurs when this mode has triggered the addition of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.GraphEditorInputMode#createLabel}. - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#addLabelAddedListener */ removeLabelAddedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; @@ -38534,7 +38582,7 @@ declare namespace system{ *

    * This allows to customize the label editing process. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#addValidateLabelTextListener * @see yfiles.input.GraphEditorInputMode#removeLabelTextEditingStartedListener */ @@ -38545,7 +38593,7 @@ declare namespace system{ *

    * This allows to customize the label editing process. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#addValidateLabelTextListener * @see yfiles.input.GraphEditorInputMode#addLabelTextEditingStartedListener */ @@ -38556,7 +38604,7 @@ declare namespace system{ *

    * This allows to unconfigure temporary customizations for the actual label editing process. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#addValidateLabelTextListener * @see yfiles.input.GraphEditorInputMode#removeLabelTextEditingCanceledListener */ @@ -38567,7 +38615,7 @@ declare namespace system{ *

    * This allows to unconfigure temporary customizations for the actual label editing process. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#addValidateLabelTextListener * @see yfiles.input.GraphEditorInputMode#addLabelTextEditingCanceledListener */ @@ -38581,7 +38629,7 @@ declare namespace system{ * Note that in the case of {@link yfiles.input.GraphEditorInputMode#addLabel} the {@link yfiles.input.LabelTextValidatingEventArgs#label} is not part of the current graph but only a * dummy instance. *

    - * @param {function(Object, yfiles.input.LabelTextValidatingEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#onValidateLabelText * @see yfiles.input.GraphEditorInputMode#removeValidateLabelTextListener */ @@ -38596,7 +38644,7 @@ declare namespace system{ * Note that in the case of {@link yfiles.input.GraphEditorInputMode#addLabel} the {@link yfiles.input.LabelTextValidatingEventArgs#label} is not part of the current graph but only a * dummy instance. *

    - * @param {function(Object, yfiles.input.LabelTextValidatingEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#onValidateLabelText * @see yfiles.input.GraphEditorInputMode#addValidateLabelTextListener */ @@ -38604,14 +38652,14 @@ declare namespace system{ /** * Adds the given listener for the LabelTextChanged event that occurs when this mode has triggered the edit of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.GraphEditorInputMode#editLabel}. - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#removeLabelTextChangedListener */ addLabelTextChangedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * Removes the given listener for the LabelTextChanged event that occurs when this mode has triggered the edit of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.GraphEditorInputMode#editLabel}. - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#addLabelTextChangedListener */ removeLabelTextChangedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; @@ -38620,7 +38668,7 @@ declare namespace system{ * method starts its work and will be followed by any number of {@link yfiles.input.GraphEditorInputMode#addDeletedItemListener DeletedItem} * events and finalized by a {@link yfiles.input.GraphEditorInputMode#addDeletedSelectionListener DeletedSelection} * event. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#deleteSelection * @see yfiles.input.GraphEditorInputMode#removeDeletingSelectionListener */ @@ -38630,7 +38678,7 @@ declare namespace system{ * method starts its work and will be followed by any number of {@link yfiles.input.GraphEditorInputMode#addDeletedItemListener DeletedItem} * events and finalized by a {@link yfiles.input.GraphEditorInputMode#addDeletedSelectionListener DeletedSelection} * event. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#deleteSelection * @see yfiles.input.GraphEditorInputMode#addDeletingSelectionListener */ @@ -38642,7 +38690,7 @@ declare namespace system{ * node, its labels, ports, and adjacent edges will not necessarily be reported separately. In order to be notified of any * removal events, the {@link yfiles.graph.IGraph} events should be used instead. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#removeDeletedItemListener */ addDeletedItemListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; @@ -38654,14 +38702,14 @@ declare namespace system{ * node, its labels, ports, and adjacent edges will not necessarily be reported separately. In order to be notified of any * removal events, the {@link yfiles.graph.IGraph} events should be used instead. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener */ removeDeletedItemListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Adds the given listener for the DeletedSelection event that occurs just before the {@link yfiles.input.GraphEditorInputMode#deleteSelection} * method has deleted the selection after all selected items have been removed. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#deleteSelection * @see yfiles.input.GraphEditorInputMode#removeDeletedSelectionListener */ @@ -38669,7 +38717,7 @@ declare namespace system{ /** * Removes the given listener for the DeletedSelection event that occurs just before the {@link yfiles.input.GraphEditorInputMode#deleteSelection} * method has deleted the selection after all selected items have been removed. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#deleteSelection * @see yfiles.input.GraphEditorInputMode#addDeletedSelectionListener */ @@ -38695,7 +38743,7 @@ declare namespace system{ * The {@link yfiles.input.GraphEditorInputMode#adjustContentRect} method is called whenever the content changes. The default is * {@link yfiles.input.AdjustContentRectPolicy#UNION}. *

    - * @default 1 + * @default yfiles.input.AdjustContentRectPolicy.UNION * @type {yfiles.input.AdjustContentRectPolicy} */ adjustContentRectPolicy:yfiles.input.AdjustContentRectPolicy; @@ -38853,6 +38901,9 @@ declare namespace system{ * Gets or sets a value indicating whether undo operations, that is, {@link yfiles.input.GraphEditorInputMode#undo} and {@link yfiles.input.GraphEditorInputMode#redo} * should be enabled. *

    + * Note that even if this feature is enabled, an {@link yfiles.graph.UndoEngine undo engine} needs to be available in the {@link yfiles.input.InputModeBase#inputModeContext}in order to work. + *

    + *

    * Setting this property to false effectively disables handling of the commands {@link yfiles.input.ICommand#UNDO} and * {@link yfiles.input.ICommand#REDO}. *

    @@ -38902,7 +38953,7 @@ declare namespace system{ * This is triggered whenever the {@link yfiles.input.GraphEditorInputMode#reparentNodeHandler}'s {@link yfiles.input.IReparentNodeHandler#reparent} method has been called to reparent a node * interactively. *

    - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#reparentNodeHandler * @see yfiles.input.GraphEditorInputMode#removeNodeReparentedListener */ @@ -38913,7 +38964,7 @@ declare namespace system{ * This is triggered whenever the {@link yfiles.input.GraphEditorInputMode#reparentNodeHandler}'s {@link yfiles.input.IReparentNodeHandler#reparent} method has been called to reparent a node * interactively. *

    - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#reparentNodeHandler * @see yfiles.input.GraphEditorInputMode#addNodeReparentedListener */ @@ -38926,7 +38977,7 @@ declare namespace system{ * or via a drag and drop operation that was completed by {@link yfiles.input.GraphEditorInputMode#nodeDropInputMode}. Note that if {@link yfiles.input.NodeDropInputMode#allowFolderNodeAsParent} is set to true, the reported node can actually be * part of the {@link yfiles.graph.IFoldingView master graph}. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#createNode * @see yfiles.input.GraphEditorInputMode#removeNodeCreatedListener */ @@ -38939,7 +38990,7 @@ declare namespace system{ * or via a drag and drop operation that was completed by {@link yfiles.input.GraphEditorInputMode#nodeDropInputMode}. Note that if {@link yfiles.input.NodeDropInputMode#allowFolderNodeAsParent} is set to true, the reported node can actually be * part of the {@link yfiles.graph.IFoldingView master graph}. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#createNode * @see yfiles.input.GraphEditorInputMode#addNodeCreatedListener */ @@ -38995,7 +39046,7 @@ declare namespace system{ /** * Adds the given listener for the EdgePortsChanged event that occurs after an edge's source and/or target ports have been * changed as the result of an input gesture. - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.EdgeEventArgs * @see yfiles.input.GraphEditorInputMode#reverseSelectedEdges * @see yfiles.input.GraphEditorInputMode#reverseEdges @@ -39006,7 +39057,7 @@ declare namespace system{ /** * Removes the given listener for the EdgePortsChanged event that occurs after an edge's source and/or target ports have * been changed as the result of an input gesture. - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.EdgeEventArgs * @see yfiles.input.GraphEditorInputMode#reverseSelectedEdges * @see yfiles.input.GraphEditorInputMode#reverseEdges @@ -39067,6 +39118,7 @@ declare namespace system{ *

    * The default value is true. *

    + * @see yfiles.input.GraphInputMode#clickSelectableItems * @default true * @type {boolean} */ @@ -39128,7 +39180,7 @@ declare namespace system{ * forbidden entirely, or the properties of the added label can be changed, by setting the appropriate properties on the * {@link yfiles.input.LabelEditingEventArgs}. It is even possible to forbid adding a label, but edit an existing one instead. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#removeLabelAddingListener */ addLabelAddingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; @@ -39139,7 +39191,7 @@ declare namespace system{ * forbidden entirely, or the properties of the added label can be changed, by setting the appropriate properties on the * {@link yfiles.input.LabelEditingEventArgs}. It is even possible to forbid adding a label, but edit an existing one instead. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#addLabelAddingListener */ removeLabelAddingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; @@ -39150,7 +39202,7 @@ declare namespace system{ * entirely, or redirected to a different label, even on a different owner. In case editing existing labels is unwanted, * event handlers can also specify that instead of editing a label, a new one should be added. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.GraphEditorInputMode#removeLabelEditingListener */ addLabelEditingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; @@ -39161,7 +39213,7 @@ declare namespace system{ * entirely, or redirected to a different label, even on a different owner. In case editing existing labels is unwanted, * event handlers can also specify that instead of editing a label, a new one should be added. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.GraphEditorInputMode#addLabelEditingListener */ removeLabelEditingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; @@ -39177,7 +39229,7 @@ declare namespace system{ * Highlighting is done via a {@link yfiles.view.HighlightIndicatorManager.}. *

    * Type parameter T. - * @class yfiles.input.ItemDropInputMode. + * @class * @extends {yfiles.input.DropInputMode} * @template T */ @@ -39188,9 +39240,8 @@ declare namespace system{ *

    * This instance fires events only if a drag operation carries data of the expected format. *

    - * @param {string} expectedFormat This is a format that is used in {@link yfiles.view.DragDropItem#getData}. + * @param expectedFormat This is a format that is used in {@link #getData}. * @protected - * @constructor */ constructor(expectedFormat:string); /** @@ -39221,8 +39272,8 @@ declare namespace system{ *

    * The default implementation doesn't collect any snap results. *

    - * @param {Object} source The {@link yfiles.input.SnapContext} this callback is registered at. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The arguments describing the movement {@link yfiles.input.SnapResult}s shall be collected for. + * @param source The {@link } this callback is registered at. + * @param evt The arguments describing the movement {@link }s shall be collected for. * @protected */ collectSnapResults(source:Object,evt:yfiles.input.CollectSnapResultsEventArgs):void; @@ -39231,8 +39282,8 @@ declare namespace system{ *

    * The drop target is highlighted, if {@link yfiles.input.ItemDropInputMode.#highlightDropTarget} is enabled. Per default, null is returned. *

    - * @param {yfiles.geometry.Point} dragLocation The location to return the drop target for. - * @returns {yfiles.graph.IModelItem} The drop target at the specified location or null if no drop target can be found. + * @param dragLocation The location to return the drop target for. + * @returns The drop target at the specified location or null if no drop target can be found. * @protected */ getDropTarget(dragLocation:yfiles.geometry.Point):yfiles.graph.IModelItem; @@ -39260,13 +39311,13 @@ declare namespace system{ initializeSnapContext():void; /** * Called whenever a new item is created - * @param {yfiles.collections.ItemEventArgs.} evt + * @param evt * @protected */ onItemCreated(evt:yfiles.collections.ItemEventArgs):void; /** * Subclasses shall fill the specified graph that is used to preview the dragged item. - * @param {yfiles.graph.IGraph} previewGraph The preview graph to fill. + * @param previewGraph The preview graph to fill. * @protected */ populatePreviewGraph(previewGraph:yfiles.graph.IGraph):void; @@ -39275,26 +39326,26 @@ declare namespace system{ *

    * If {@link yfiles.input.ItemDropInputMode.#highlightDropTarget} is enabled, the highlight is updated as well. *

    - * @param {yfiles.geometry.Point} dragLocation The location to update the drop target for. + * @param dragLocation The location to update the drop target for. * @protected */ updateDropTarget(dragLocation:yfiles.geometry.Point):void; /** * Subclasses shall update the {@link yfiles.input.ItemDropInputMode.#previewGraph preview graph} so the dragged item is displayed at the specified dragLocation. - * @param {yfiles.graph.IGraph} previewGraph The preview graph to update. - * @param {yfiles.geometry.Point} dragLocation The current drag location. + * @param previewGraph The preview graph to update. + * @param dragLocation The current drag location. * @protected */ updatePreview(previewGraph:yfiles.graph.IGraph,dragLocation:yfiles.geometry.Point):void; /** * Adds the given listener for the ItemCreated event that occurs when a new item gets created by this input mode. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ItemDropInputMode.#removeItemCreatedListener */ addItemCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the ItemCreated event that occurs when a new item gets created by this input mode. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ItemDropInputMode.#addItemCreatedListener */ removeItemCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; @@ -39371,75 +39422,74 @@ declare namespace system{ /** * An implementation of {@link yfiles.input.IPositionHandler} that shows the various label position candidates and lets the user * move a label to one of those candidate positions. - * @class yfiles.input.LabelPositionHandler + * @class * @implements {yfiles.input.IPositionHandler} */ export interface LabelPositionHandler extends Object,yfiles.input.IPositionHandler{} export class LabelPositionHandler { /** * Initializes a new instance of the {@link yfiles.input.LabelPositionHandler} class. - * @param {yfiles.graph.ILabel} label The label that shall be moved. - * @constructor + * @param label The label that shall be moved. */ constructor(label:yfiles.graph.ILabel); /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation + * @param context + * @param originalLocation */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * Creates an {@link yfiles.view.ICanvasObjectDescriptor} to display the given candidate position. - * @param {yfiles.input.IInputModeContext} context The context for which the descriptor is created. - * @param {boolean} highlight Whether to highlight the paintable. This will be true for the current position and false for the others. - * @returns {yfiles.view.ICanvasObjectDescriptor} An implementation that will render the given candidate. + * @param context The context for which the descriptor is created. + * @param highlight Whether to highlight the paintable. This will be true for the current position and false for the others. + * @returns An implementation that will render the given candidate. * @protected */ createCandidateDescriptor(context:yfiles.input.IInputModeContext,highlight:boolean):yfiles.view.ICanvasObjectDescriptor; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Calculates a distance value between a candidate rectangle and the mouse location. - * @param {yfiles.geometry.IOrientedRectangle} rectangle The rectangle candidate. - * @param {yfiles.geometry.Point} location The mouse location. - * @returns {number} A value indicating the closeness of the mouse to the rectangle. + * @param rectangle The rectangle candidate. + * @param location The mouse location. + * @returns A value indicating the closeness of the mouse to the rectangle. * @protected */ getDistance(rectangle:yfiles.geometry.IOrientedRectangle,location:yfiles.geometry.Point):number; /** * Callback method that gets the candidates for the given label. - * @param {yfiles.graph.ILabel} label The label. - * @returns {yfiles.collections.IEnumerable.} A possibly empty enumerator over possible label parameter candidates. + * @param label The label. + * @returns A possibly empty enumerator over possible label parameter candidates. * @protected */ getParameterCandidates(label:yfiles.graph.ILabel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * - * @param {yfiles.input.IInputModeContext} context + * @param context */ initializeDrag(context:yfiles.input.IInputModeContext):void; /** * Actually applies the given parameter at the end of the gesture. - * @param {yfiles.graph.ILabel} label The label to set the parameter for. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The new parameter. + * @param label The label to set the parameter for. + * @param layoutParameter The new parameter. * @protected */ setLayoutParameter(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):void; /** * - * @param {yfiles.geometry.Point} location + * @param location */ setPosition(location:yfiles.geometry.Point):void; /** @@ -39447,8 +39497,8 @@ declare namespace system{ *

    * This implementation returns true if the {@link yfiles.input.LabelPositionHandler#useFinder} property is true and the control key is pressed. *

    - * @param {yfiles.input.IInputModeContext} context The context that is currently being used - may be null if the method is called without context. - * @returns {boolean} + * @param context The context that is currently being used - may be null if the method is called without context. + * @returns * @protected */ useParameterFinder(context:yfiles.input.IInputModeContext):boolean; @@ -39511,7 +39561,7 @@ declare namespace system{ * during dragging of labels. * @see yfiles.input.LabelSnapContext * @see yfiles.graph.LabelDecorator#labelSnapContextHelperDecorator - * @class yfiles.input.LabelSnapContextHelper + * @class * @implements {yfiles.input.ILabelSnapContextHelper} */ export interface LabelSnapContextHelper extends Object,yfiles.input.ILabelSnapContextHelper{} @@ -39522,11 +39572,11 @@ declare namespace system{ * This method is not used by this class to create its snap lines. Instead, it can be called by custom sub-classes to * create this kind of snap lines. *

    - * @param {yfiles.input.LabelSnapContext} snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of + * @param snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of * the context explicitly. - * @param {yfiles.input.IInputModeContext} inputModeContext The context of the input mode that handles the dragging. - * @param {yfiles.graph.ILabel} label The edge label that is dragged. - * @param {number} distance The distance of the added snap lines from the edge path. + * @param inputModeContext The context of the input mode that handles the dragging. + * @param label The edge label that is dragged. + * @param distance The distance of the added snap lines from the edge path. * @protected */ addEdgePathSnapLines(snapContext:yfiles.input.LabelSnapContext,inputModeContext:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel,distance:number):void; @@ -39535,10 +39585,10 @@ declare namespace system{ *

    * The corresponding settings of the snapContext specify which snap lines are actually created. *

    - * @param {yfiles.input.LabelSnapContext} snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of + * @param snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of * the context explicitly. - * @param {yfiles.input.IInputModeContext} inputModeContext The context of the input mode that handles the dragging. - * @param {yfiles.graph.ILabel} label The edge label that is dragged. + * @param inputModeContext The context of the input mode that handles the dragging. + * @param label The edge label that is dragged. * @protected */ addEdgePathSnapLines(snapContext:yfiles.input.LabelSnapContext,inputModeContext:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel):void; @@ -39549,10 +39599,10 @@ declare namespace system{ * This method is called by {@link yfiles.input.LabelSnapContextHelper#addSnapLines} to add the snap lines for the initial position * label location. *

    - * @param {yfiles.input.LabelSnapContext} snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of + * @param snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of * the context explicitly. - * @param {yfiles.input.IInputModeContext} inputModeContext The context of the input mode that handles the dragging. - * @param {yfiles.graph.ILabel} label The label that is dragged. + * @param inputModeContext The context of the input mode that handles the dragging. + * @param label The label that is dragged. * @protected */ addInitialLocationSnapLines(snapContext:yfiles.input.LabelSnapContext,inputModeContext:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel):void; @@ -39561,28 +39611,28 @@ declare namespace system{ *

    * The corresponding settings of the snapContext specify which snap lines are actually created. *

    - * @param {yfiles.input.LabelSnapContext} snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of + * @param snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of * the context explicitly. - * @param {yfiles.input.IInputModeContext} inputModeContext The context of the input mode that handles the dragging. - * @param {yfiles.graph.ILabel} label The node label that is dragged. + * @param inputModeContext The context of the input mode that handles the dragging. + * @param label The node label that is dragged. * @protected */ addNodeShapeSnapLines(snapContext:yfiles.input.LabelSnapContext,inputModeContext:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel):void; /** * Called during {@link yfiles.input.IDragHandler#initializeDrag initialization} of a label dragging to add {@link yfiles.input.SnapLine snap lines} to which the label can potentially snap to the * snapContext. - * @param {yfiles.input.LabelSnapContext} snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of + * @param snapContext The snap context which manages the snap lines and the settings. Note that implementations should not change the state of * the context explicitly. - * @param {yfiles.input.IInputModeContext} inputModeContext The context of the input mode that handles the dragging. - * @param {yfiles.graph.ILabel} label The label that is dragged. + * @param inputModeContext The context of the input mode that handles the dragging. + * @param label The label that is dragged. */ addSnapLines(snapContext:yfiles.input.LabelSnapContext,inputModeContext:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel):void; /** * - * @param {yfiles.input.LabelSnapContext} context - * @param {yfiles.input.CollectSnapResultsEventArgs} evt - * @param {yfiles.geometry.IOrientedRectangle} suggestedLayout - * @param {yfiles.graph.ILabel} label + * @param context + * @param evt + * @param suggestedLayout + * @param label */ collectSnapResults(context:yfiles.input.LabelSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.IOrientedRectangle,label:yfiles.graph.ILabel):void; /** @@ -39605,7 +39655,7 @@ declare namespace system{ * Event handlers can set the {@link yfiles.input.LabelTextValidatingEventArgs#cancel} property to true to cancel label editing if validation failed, or set the {@link yfiles.input.LabelTextValidatingEventArgs#newText} property to a * changed, validated value. *

    - * @class yfiles.input.LabelTextValidatingEventArgs + * @class * @extends {yfiles.input.InputModeEventArgs} * @final */ @@ -39613,10 +39663,9 @@ declare namespace system{ export class LabelTextValidatingEventArgs { /** * Initializes a new instance of the {@link yfiles.input.LabelTextValidatingEventArgs} class. - * @param {yfiles.input.IInputModeContext} context The context. - * @param {yfiles.graph.ILabel} label The label. - * @param {string} newText The initial new text as entered by the user. - * @constructor + * @param context The context. + * @param label The label. + * @param newText The initial new text as entered by the user. */ constructor(context:yfiles.input.IInputModeContext,label:yfiles.graph.ILabel,newText:string); /** @@ -39646,7 +39695,7 @@ declare namespace system{ * This implementation shows the possible candidate positions for a given label and allows the user to drag the label to * one of these positions. *

    - * @class yfiles.input.MoveLabelInputMode + * @class * @extends {yfiles.input.MoveInputMode} */ export interface MoveLabelInputMode extends yfiles.input.MoveInputMode{} @@ -39654,7 +39703,6 @@ declare namespace system{ /** * Creates a new instance that will move labels in the graph retrieved from the {@link yfiles.input.MoveInputMode#inputModeContext}. * @see yfiles.input.MoveLabelInputMode#graph - * @constructor */ constructor(); /** @@ -39662,7 +39710,7 @@ declare namespace system{ *

    * This implementation returns an instance that delegates to {@link yfiles.input.MoveLabelInputMode#isValidLabelHit}. *

    - * @returns {yfiles.input.IHitTestable} A hit testable. + * @returns A hit testable. * @protected */ createLabelHitTestable():yfiles.input.IHitTestable; @@ -39672,8 +39720,8 @@ declare namespace system{ * First, this implementation checks for a position handler in the label's * {@link yfiles.graph.ILookup lookup}. If this fails, it creates a new label position handler for the given label. *

    - * @param {yfiles.graph.ILabel} label The label to create a position handler for. - * @returns {yfiles.input.IPositionHandler} A position handler for the given label. + * @param label The label to create a position handler for. + * @returns A position handler for the given label. * @protected */ createLabelPositionHandler(label:yfiles.graph.ILabel):yfiles.input.IPositionHandler; @@ -39683,9 +39731,9 @@ declare namespace system{ * This implementation checks the {@link yfiles.input.MoveLabelInputMode#graphSelection} to see if there is exactly one selected label. This label is returned if it is hit by * the mouse and {@link yfiles.input.MoveLabelInputMode#shouldMove} returns true. Otherwise, null is returned. *

    - * @param {yfiles.input.IInputModeContext} context The context for the hit test. - * @param {yfiles.geometry.Point} location The coordinates for the hit test. - * @returns {yfiles.graph.ILabel} The label hit at the given location or null. + * @param context The context for the hit test. + * @param location The coordinates for the hit test. + * @returns The label hit at the given location or null. * @see yfiles.input.MoveLabelInputMode#isValidLabelHit * @see yfiles.input.MoveLabelInputMode#shouldMove * @protected @@ -39698,9 +39746,9 @@ declare namespace system{ * label is hit, the {@link yfiles.input.IPositionHandler} is created by * {@link yfiles.input.MoveLabelInputMode#createLabelPositionHandler}. *

    - * @param {yfiles.input.IInputModeContext} context The context for the hit test. - * @param {yfiles.geometry.Point} location The coordinates for the hit test. - * @returns {boolean} true if a valid label is hit and the label moving should be started here. Otherwise, false. + * @param context The context for the hit test. + * @param location The coordinates for the hit test. + * @returns true if a valid label is hit and the label moving should be started here. Otherwise, false. * @protected */ isValidLabelHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; @@ -39710,9 +39758,9 @@ declare namespace system{ * This implementation returns false if the parent input mode {@link yfiles.input.GraphEditorInputMode#shouldMove forbids} moving the label. Overriding implementations should * query this implementation as base if this feature is desired. *

    - * @param {yfiles.input.IInputModeContext} context The context. - * @param {yfiles.graph.ILabel} label The label to be checked. - * @returns {boolean} true if the label is allowed to move. + * @param context The context. + * @param label The label to be checked. + * @returns true if the label is allowed to move. * @see yfiles.input.MoveLabelInputMode#getHitLabel * @protected */ @@ -39761,16 +39809,15 @@ declare namespace system{ * hierarchy. In this case the {@link yfiles.input.NodeDropInputMode#isValidParentPredicate} will be queried if the dropped upon node is actually a valid parent. *

    * @see yfiles.input.NodeDropInputMode#startDrag - * @class yfiles.input.NodeDropInputMode + * @class * @extends {yfiles.input.ItemDropInputMode.} */ export interface NodeDropInputMode extends yfiles.input.ItemDropInputMode{} export class NodeDropInputMode { /** * Initializes a new instance of the {@link yfiles.input.NodeDropInputMode} class for the expected data format. - * @param {string} expectedFormat This is a format that is used in {@link yfiles.input.NodeDropInputMode#startDrag}. + * @param expectedFormat This is a format that is used in {@link #startDrag}. * @protected - * @constructor */ constructor(expectedFormat:string); /** @@ -39779,7 +39826,6 @@ declare namespace system{ * This instance fires events only if the format of the data of the drag operation is the full name of the {@link yfiles.graph.INode} * type. Such a drag operation can be started for example with {@link yfiles.input.NodeDropInputMode#startDrag}. *

    - * @constructor */ constructor(); /** @@ -39787,12 +39833,12 @@ declare namespace system{ *

    * This method is called by the {@link yfiles.input.ItemDropInputMode.#itemCreator} that is set as default on this class. *

    - * @param {yfiles.input.IInputModeContext} context The context for which the node should be created. - * @param {yfiles.graph.IGraph} graph The {@link yfiles.graph.IGraph Graph} in which to create the item. - * @param {yfiles.graph.INode} node The node that was dragged and should therefore be created. - * @param {yfiles.graph.IModelItem} dropTarget The {@link yfiles.graph.IModelItem} on which the node is dropped. - * @param {yfiles.geometry.Rect} layout The bounds of the new node. - * @returns {yfiles.graph.INode} a newly created node. + * @param context The context for which the node should be created. + * @param graph The {@link Graph} in which to create the item. + * @param node The node that was dragged and should therefore be created. + * @param dropTarget The {@link } on which the node is dropped. + * @param layout The bounds of the new node. + * @returns a newly created node. * @protected */ createNode(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,node:yfiles.graph.INode,dropTarget:yfiles.graph.IModelItem,layout:yfiles.geometry.Rect):yfiles.graph.INode; @@ -39802,9 +39848,9 @@ declare namespace system{ * In this implementation the mouse location is used as center of the node. Can be overridden in child class to implement a * different layout. *

    - * @param {yfiles.geometry.Point} mouseLocation Current mouse position - * @param {yfiles.geometry.Size} size Size of the node - * @returns {yfiles.geometry.Rect} a {@link yfiles.geometry.Rect} with the given size and the mouse location as center. + * @param mouseLocation Current mouse position + * @param size Size of the node + * @returns a {@link } with the given size and the mouse location as center. * @protected */ getNodeLayout(mouseLocation:yfiles.geometry.Point,size:yfiles.geometry.Size):yfiles.geometry.Rect; @@ -39824,10 +39870,10 @@ declare namespace system{ *
  • yfiles-cursor-dragdrop-all
  • *
  • yfiles-cursor-dragdrop-no-drop
  • * - * @param {HTMLElement} dragSource The source of the drag operation. - * @param {yfiles.graph.INode} node The node to drag. - * @param {yfiles.view.DragDropEffects} [dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. - * @param {boolean} [useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. + * @param dragSource The source of the drag operation. + * @param node The node to drag. + * @param [dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. + * @param [useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. * @see yfiles.view.DragSource#startDrag * @see yfiles.view.DragDropItem * @static @@ -39850,10 +39896,10 @@ declare namespace system{ *
  • yfiles-cursor-dragdrop-no-drop
  • * * @param {Object} options The parameters to pass. - * @param {HTMLElement} options.dragSource The source of the drag operation. - * @param {yfiles.graph.INode} options.node The node to drag. - * @param {yfiles.view.DragDropEffects} [options.dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. - * @param {boolean} [options.useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. + * @param options.dragSource The source of the drag operation. + * @param options.node The node to drag. + * @param [options.dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. + * @param [options.useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. * @see yfiles.view.DragSource#startDrag * @see yfiles.view.DragDropItem * @static @@ -39933,13 +39979,12 @@ declare namespace system{ * @see yfiles.input.IOrthogonalEdgeHelper * @see yfiles.input.OrthogonalEdgeEditingContext#enabled * @see yfiles.input.OrthogonalEdgeEditingContext#movePorts - * @class yfiles.input.OrthogonalEdgeEditingContext + * @class */ export interface OrthogonalEdgeEditingContext extends Object{} export class OrthogonalEdgeEditingContext { /** * Initializes a new instance of the {@link yfiles.input.OrthogonalEdgeEditingContext} class that is initially {@link yfiles.input.OrthogonalEdgeEditingContext#enabled}. - * @constructor */ constructor(); /** @@ -39948,7 +39993,7 @@ declare namespace system{ * {@link yfiles.input.IDragHandler} implementations that are being used to explicitly move a bend during the edit should use this * method to register their edit while they are being {@link yfiles.input.IDragHandler#initializeDrag initialized}. *

    - * @param {yfiles.input.MovementInfo} movementInfo The movement info that describes the movement of the bend. + * @param movementInfo The movement info that describes the movement of the bend. */ addExplicitlyMovedBend(movementInfo:yfiles.input.MovementInfo):void; /** @@ -39957,8 +40002,8 @@ declare namespace system{ * The instance will be returned by {@link yfiles.input.OrthogonalEdgeEditingContext#createImplicitlyMovedBendInfo} and the {@link yfiles.input.MovementInfo#moveType} will * be combined with the requested move type. *

    - * @param {yfiles.input.MovementInfo} movementInfo The movement info for the bend. - * @returns {yfiles.input.MovementInfo} The info that has been registered with this instance. + * @param movementInfo The movement info for the bend. + * @returns The info that has been registered with this instance. */ addImplicitlyMovedBend(movementInfo:yfiles.input.MovementInfo):yfiles.input.MovementInfo; /** @@ -39967,8 +40012,8 @@ declare namespace system{ * {@link yfiles.input.IDragHandler} implementations that are being used to explicitly move the end of an edge during the edit * should use this method to register their edit while they are being {@link yfiles.input.IDragHandler#initializeDrag initialized}. *

    - * @param {yfiles.input.MovementInfo} movementInfo The movement info that describes the movement of the end of the edge. The {@link yfiles.input.MovementInfo#movedItem} must be an {@link yfiles.graph.IEdge}. - * @param {boolean} sourceEnd true if the movementInfo represents the source end of the edge. + * @param movementInfo The movement info that describes the movement of the end of the edge. The {@link #movedItem} must be an {@link }. + * @param sourceEnd true if the movementInfo represents the source end of the edge. * @see yfiles.input.IEdgePortHandleProvider */ addMovedEdgeEnd(movementInfo:yfiles.input.MovementInfo,sourceEnd:boolean):void; @@ -39978,7 +40023,7 @@ declare namespace system{ * {@link yfiles.input.IDragHandler} implementations that are being used to explicitly move a bend during the edit should use this * method to register their edit while they are being {@link yfiles.input.IDragHandler#initializeDrag initialized}. *

    - * @param {yfiles.input.MovementInfo} movementInfo The movement info that describes the movement of the port. + * @param movementInfo The movement info that describes the movement of the port. */ addMovedPort(movementInfo:yfiles.input.MovementInfo):void; /** @@ -39988,7 +40033,7 @@ declare namespace system{ * Normally this will be nodes that are being resized or moved in a non-linear way, or edges, whose bends or ports are * being changed. *

    - * @param {yfiles.graph.IPortOwner} owner The item that will be transformed. + * @param owner The item that will be transformed. */ addTransformedPortOwner(owner:yfiles.graph.IPortOwner):void; /** @@ -40014,15 +40059,15 @@ declare namespace system{ * This implementations delegates to the {@link yfiles.input.IOrthogonalEdgeHelper}'s {@link yfiles.input.IOrthogonalEdgeHelper#cleanUpEdge} * method. *

    - * @param {yfiles.graph.IGraph} graph The graph in which the edge resides. - * @param {yfiles.graph.IEdge} edge The modified edge. + * @param graph The graph in which the edge resides. + * @param edge The modified edge. * @see yfiles.input.OrthogonalEdgeEditingContext#getOrthogonalEdgeHelper * @protected */ cleanUpEdgePath(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge):void; /** * Called after a successfully {@link yfiles.input.OrthogonalEdgeEditingContext#dragFinished finished drag} to clean up artifacts of modified edges. - * @param {yfiles.graph.IGraph} graph The graph. + * @param graph The graph. * @see yfiles.input.OrthogonalEdgeEditingContext#cleanUpEdgePath * @protected */ @@ -40034,10 +40079,10 @@ declare namespace system{ * edit that need to move adjacent bends implicitly. Implementations should pass as the parameters the movement information * that controls the vertical or horizontal movement of the bend implicitly. *

    - * @param {yfiles.graph.IBend} bend The implicitly moved bend. - * @param {yfiles.input.MovementInfo} verticalAdjacentInfo The movement info that implicitly constrains the vertical movement of the bend or null. - * @param {yfiles.input.MovementInfo} horizontalAdjacentInfo The movement info that implicitly constrains the horizontal movement of the bend or null. - * @returns {yfiles.input.MovementInfo} The info to be used by clients that requested it. + * @param bend The implicitly moved bend. + * @param verticalAdjacentInfo The movement info that implicitly constrains the vertical movement of the bend or null. + * @param horizontalAdjacentInfo The movement info that implicitly constrains the horizontal movement of the bend or null. + * @returns The info to be used by clients that requested it. */ createImplicitlyMovedBendInfo(bend:yfiles.graph.IBend,horizontalAdjacentInfo:yfiles.input.MovementInfo,verticalAdjacentInfo:yfiles.input.MovementInfo):yfiles.input.MovementInfo; /** @@ -40059,8 +40104,8 @@ declare namespace system{ dragInitialized():void; /** * Gets the {@link yfiles.input.MovementInfo movement infos} that describe the orthogonal path of the edge. - * @param {yfiles.graph.IEdge} edge The edge to obtain the infos for. - * @returns {yfiles.collections.IListEnumerable.} An array that contains for the first entry the source end of the edge, then all bends and then as the final entry the + * @param edge The edge to obtain the infos for. + * @returns An array that contains for the first entry the source end of the edge, then all bends and then as the final entry the * target end of the edge. For the bends, this can be be null values if nothing is known about the bend, yet. * @protected */ @@ -40070,8 +40115,8 @@ declare namespace system{ *

    * This implementation obtains the helper instance from the {@link yfiles.graph.ILookup#lookup} of the edge. *

    - * @param {yfiles.graph.IEdge} edge The edge to obtain the helper instance for. - * @returns {yfiles.input.IOrthogonalEdgeHelper} The helper instance to use or null, in which case the default behavior will be used. + * @param edge The edge to obtain the helper instance for. + * @returns The helper instance to use or null, in which case the default behavior will be used. * @see yfiles.input.OrthogonalEdgeHelper * @protected */ @@ -40081,9 +40126,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.input.OrthogonalEdgeEditingContext#getOrthogonalEdgeHelper GetOrthogonalEdgeHelper()}.{@link yfiles.input.IOrthogonalEdgeHelper#getSegmentOrientation GetSegmentOrientation} method to yield the orientation. *

    - * @param {yfiles.graph.IEdge} edge The edge to determine the orientation of the segment. - * @param {number} segmentIndex Index of the segment. - * @returns {yfiles.input.SegmentOrientation} The orientation of the segment. + * @param edge The edge to determine the orientation of the segment. + * @param segmentIndex Index of the segment. + * @returns The orientation of the segment. */ getSegmentOrientation(edge:yfiles.graph.IEdge,segmentIndex:number):yfiles.input.SegmentOrientation; /** @@ -40094,7 +40139,7 @@ declare namespace system{ * that perform the actual edit need to be initialized and as soon as this has been done, {@link yfiles.input.OrthogonalEdgeEditingContext#dragInitialized} * should be called. *

    - * @param {yfiles.input.IInputModeContext} context The context in which the edit is going to be performed. + * @param context The context in which the edit is going to be performed. * @throws {Stubs.Exceptions.InvalidOperationError} If this context is already {@link yfiles.input.OrthogonalEdgeEditingContext#addInitializedListener Initialized} * or currently * {@link yfiles.input.OrthogonalEdgeEditingContext#addInitializingListener Initializing}. @@ -40109,9 +40154,9 @@ declare namespace system{ * This implementation will always yield false if it is {@link yfiles.input.OrthogonalEdgeEditingContext#enabled disabled}. Otherwise {@link yfiles.input.OrthogonalEdgeEditingContext#getOrthogonalEdgeHelper} * will be used to delegate the query to {@link yfiles.input.IOrthogonalEdgeHelper#shouldEditOrthogonally}. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context which is editing the edge. - * @param {yfiles.graph.IEdge} edge The edge that will be edited. - * @returns {boolean} true if this edge should be orthogonally edited for the specified input mode context; false otherwise. + * @param context The input mode context which is editing the edge. + * @param edge The edge that will be edited. + * @returns true if this edge should be orthogonally edited for the specified input mode context; false otherwise. * @see yfiles.input.OrthogonalEdgeEditingContext#enabled * @see yfiles.input.IOrthogonalEdgeHelper#shouldEditOrthogonally */ @@ -40122,21 +40167,21 @@ declare namespace system{ *

    * This state will be reset after the current edit. *

    - * @param {yfiles.graph.IEdge} edge The edge to lock the ports of. + * @param edge The edge to lock the ports of. * @see yfiles.input.OrthogonalEdgeEditingContext#lockedPortEdges */ lockPortMovement(edge:yfiles.graph.IEdge):void; /** * Raises the {@link yfiles.input.OrthogonalEdgeEditingContext#addCleanedUpListener CleanedUp} * event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onCleanedUp(evt:yfiles.input.InputModeEventArgs):void; /** * Raises the {@link yfiles.input.OrthogonalEdgeEditingContext#addInitializedListener Initialized} * event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.input.OrthogonalEdgeEditingContext#addInitializedListener * @see yfiles.input.OrthogonalEdgeEditingContext#dragInitialized * @protected @@ -40145,7 +40190,7 @@ declare namespace system{ /** * Raises the {@link yfiles.input.OrthogonalEdgeEditingContext#addInitializingListener Initializing} * event. - * @param {yfiles.input.InputModeEventArgs} evt The {@link yfiles.input.InputModeEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @see yfiles.input.OrthogonalEdgeEditingContext#addInitializingListener * @see yfiles.input.OrthogonalEdgeEditingContext#initializeDrag * @protected @@ -40154,7 +40199,8 @@ declare namespace system{ /** * Called during {@link yfiles.input.OrthogonalEdgeEditingContext#dragInitialized} to prepare the edge paths for orthogonal * editing. - * @param {yfiles.graph.IGraph} graph The graph that contains the edges to be edited. + * @param graph The graph that contains the edges to be edited. + * @see yfiles.input.OrthogonalEdgeEditingContext#prepareOrthogonalEdge * @protected */ prepareEdgePaths(graph:yfiles.graph.IGraph):void; @@ -40164,30 +40210,30 @@ declare namespace system{ * This method inspects an edge and possibly inserts new bends into an edge to assure that during editing the orthogonality * won't be lost. *

    - * @param {yfiles.graph.IGraph} graph The graph to use for modifying the bends. - * @param {yfiles.graph.IEdge} edge The edge to inspect. - * @param {yfiles.collections.IListEnumerable.} orientations The orientations of the segments - the array is of length (edge.Bends.Count + 1). - * @param {yfiles.collections.IListEnumerable.} infos The {@link yfiles.input.MovementInfo} instances for the source end, the bends, and the target end. This array contains {@link yfiles.input.MovementInfo} - * instances representing either edge ends or ports at the first and last position and {@link yfiles.input.MovementInfo}s or null + * @param graph The graph to use for modifying the bends. + * @param edge The edge to inspect. + * @param orientations The orientations of the segments - the array is of length (edge.Bends.Count + 1). + * @param infos The {@link } instances for the source end, the bends, and the target end. This array contains {@link } + * instances representing either edge ends or ports at the first and last position and {@link }s or null * entries for the bends. The length thus is (edge.Bends.Count + 2) and null entries indicate that there is no information * about the movement (in case the bend will only be moved implicitly later, if at all). * @protected */ prepareOrthogonalEdge(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,orientations:yfiles.collections.IListEnumerable,infos:yfiles.collections.IListEnumerable):void; /** - * Can be used by subclasses during PrepareOrthogonalEdge(IGraph,IEdge,SegmentOrientation[],MovementInfo[]) to register - * added bends that can later be {@link yfiles.input.OrthogonalEdgeEditingContext#removeAddedBends removed} in case the operation is canceled. + * Can be used by subclasses during {@link yfiles.input.OrthogonalEdgeEditingContext#prepareOrthogonalEdge} to register added bends + * that can later be {@link yfiles.input.OrthogonalEdgeEditingContext#removeAddedBends removed} in case the operation is canceled. *

    * This method will only record the addition of bends if this instance is {@link yfiles.input.OrthogonalEdgeEditingContext#isInitialized initialized} or {@link yfiles.input.OrthogonalEdgeEditingContext#addInitializingListener still initializing}. *

    - * @param {yfiles.graph.IBend} bend The bend that has been added to guarantee orthogonality. + * @param bend The bend that has been added to guarantee orthogonality. * @protected */ registerAddedBend(bend:yfiles.graph.IBend):void; /** * Removes previously {@link yfiles.input.OrthogonalEdgeEditingContext#registerAddedBend registered} added bends. - * @param {yfiles.graph.IGraph} graph The graph to use for removing the bends. - * @param {yfiles.collections.IEnumerable.} addedBends The added bends. + * @param graph The graph to use for removing the bends. + * @param addedBends The added bends. * @see yfiles.input.OrthogonalEdgeEditingContext#addedBends * @see yfiles.input.OrthogonalEdgeEditingContext#registerAddedBend * @protected @@ -40205,9 +40251,9 @@ declare namespace system{ * unless the side of the edge is connected to an {@link yfiles.graph.IPortOwner} instance that is marked as {@link yfiles.input.OrthogonalEdgeEditingContext#addTransformedPortOwner transformed} during the * edit. *

    - * @param {yfiles.graph.IEdge} edge The edge for which it should be determined whether the edge end can be moved. - * @param {boolean} sourceSide if set to true the source side of the end is queried, else the target side. - * @returns {boolean} true if the specified side of the edge can be moved; false otherwise, in which case the segment should be split to + * @param edge The edge for which it should be determined whether the edge end can be moved. + * @param sourceSide if set to true the source side of the end is queried, else the target side. + * @returns true if the specified side of the edge can be moved; false otherwise, in which case the segment should be split to * maintain orthogonality. * @see yfiles.input.OrthogonalEdgeEditingContext#getOrthogonalEdgeHelper * @see yfiles.input.IOrthogonalEdgeHelper#shouldMoveEndImplicitly @@ -40216,7 +40262,7 @@ declare namespace system{ shouldMoveEndImplicitly(edge:yfiles.graph.IEdge,sourceSide:boolean):boolean; /** * Adds the given listener for the CleanedUp event that occurs when the recent edit operation has been cleaned up. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.OrthogonalEdgeEditingContext#cleanUp * @see yfiles.input.OrthogonalEdgeEditingContext#onCleanedUp * @see yfiles.input.OrthogonalEdgeEditingContext#removeCleanedUpListener @@ -40224,7 +40270,7 @@ declare namespace system{ addCleanedUpListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the CleanedUp event that occurs when the recent edit operation has been cleaned up. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.OrthogonalEdgeEditingContext#cleanUp * @see yfiles.input.OrthogonalEdgeEditingContext#onCleanedUp * @see yfiles.input.OrthogonalEdgeEditingContext#addCleanedUpListener @@ -40232,7 +40278,7 @@ declare namespace system{ removeCleanedUpListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Initializing event that occurs when the edit is about to be initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.OrthogonalEdgeEditingContext#initializeDrag * @see yfiles.input.OrthogonalEdgeEditingContext#onInitializing * @see yfiles.input.OrthogonalEdgeEditingContext#removeInitializingListener @@ -40240,7 +40286,7 @@ declare namespace system{ addInitializingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Initializing event that occurs when the edit is about to be initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.OrthogonalEdgeEditingContext#initializeDrag * @see yfiles.input.OrthogonalEdgeEditingContext#onInitializing * @see yfiles.input.OrthogonalEdgeEditingContext#addInitializingListener @@ -40248,7 +40294,7 @@ declare namespace system{ removeInitializingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Initialized event that occurs when the edit has been initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.OrthogonalEdgeEditingContext#dragInitialized * @see yfiles.input.OrthogonalEdgeEditingContext#onInitialized * @see yfiles.input.OrthogonalEdgeEditingContext#removeInitializedListener @@ -40256,7 +40302,7 @@ declare namespace system{ addInitializedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Initialized event that occurs when the edit has been initialized. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.OrthogonalEdgeEditingContext#dragInitialized * @see yfiles.input.OrthogonalEdgeEditingContext#onInitialized * @see yfiles.input.OrthogonalEdgeEditingContext#addInitializedListener @@ -40339,7 +40385,7 @@ declare namespace system{ * This class inspects the edges in question and infers the * {@link yfiles.input.SegmentOrientation}s of the segments from the current geometry of the edge path. *

    - * @class yfiles.input.OrthogonalEdgeHelper + * @class * @implements {yfiles.input.IOrthogonalEdgeHelper} */ export interface OrthogonalEdgeHelper extends Object,yfiles.input.IOrthogonalEdgeHelper{} @@ -40349,9 +40395,9 @@ declare namespace system{ *

    * This implementation always returns true. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.graph.IBend} bend The bend that is designated for removal. - * @returns {boolean} + * @param context The input mode context. + * @param bend The bend that is designated for removal. + * @returns * @protected */ canRemoveBend(context:yfiles.input.IInputModeContext,bend:yfiles.graph.IBend):boolean; @@ -40360,9 +40406,9 @@ declare namespace system{ *

    * The default implementation in this class removes duplicate and collinear bends, as well as segments of zero length. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context which edited the edge. - * @param {yfiles.graph.IGraph} graph The graph to use for modifying the edge instance. - * @param {yfiles.graph.IEdge} edge The edge to clean up the path. + * @param context The input mode context which edited the edge. + * @param graph The graph to use for modifying the edge instance. + * @param edge The edge to clean up the path. */ cleanUpEdge(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge):void; /** @@ -40371,10 +40417,10 @@ declare namespace system{ * If the segment has a zero length, the adjacent segments will be inspected to infer the orientation such that the * orientation toggles between {@link yfiles.input.SegmentOrientation#VERTICAL} and {@link yfiles.input.SegmentOrientation#HORIZONTAL}. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context in which the orientation is needed. - * @param {yfiles.graph.IEdge} edge The edge to inspect. - * @param {number} segmentIndex The index of the segment. - * @returns {yfiles.input.SegmentOrientation} The declared orientation of the segment. + * @param context The input mode context in which the orientation is needed. + * @param edge The edge to inspect. + * @param segmentIndex The index of the segment. + * @returns The declared orientation of the segment. */ getSegmentOrientation(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,segmentIndex:number):yfiles.input.SegmentOrientation; /** @@ -40385,9 +40431,9 @@ declare namespace system{ *

    * The default implementation in this class always returns true. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context in which the edge is about to be edited. - * @param {yfiles.graph.IEdge} edge The edge to inspect. - * @returns {boolean} true if the edge should be orthogonally edited in the specified input mode context; false otherwise. + * @param context The input mode context in which the edge is about to be edited. + * @param edge The edge to inspect. + * @returns true if the edge should be orthogonally edited in the specified input mode context; false otherwise. */ shouldEditOrthogonally(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge):boolean; /** @@ -40399,10 +40445,10 @@ declare namespace system{ *

    * The default implementation in this class always returns false. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context in which the segment is edited. - * @param {yfiles.graph.IEdge} edge The edge to inspect. - * @param {boolean} sourceEnd if set to true the source end of the edge is queried, otherwise the target end. - * @returns {boolean} true if the end of the edge can be moved for the specified input mode context; false otherwise, in which case the + * @param context The input mode context in which the segment is edited. + * @param edge The edge to inspect. + * @param sourceEnd if set to true the source end of the edge is queried, otherwise the target end. + * @returns true if the end of the edge can be moved for the specified input mode context; false otherwise, in which case the * corresponding segment needs to be split to keep the segment orientation orthogonal. */ shouldMoveEndImplicitly(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,sourceEnd:boolean):boolean; @@ -40415,7 +40461,7 @@ declare namespace system{ * This class also provides snapping facilities and can be used in conjunction with both * {@link yfiles.input.OrthogonalEdgeEditingContext}, as well as {@link yfiles.input.GraphSnapContext}. *

    - * @class yfiles.input.PortLocationModelParameterHandle + * @class * @implements {yfiles.input.IHandle} */ export interface PortLocationModelParameterHandle extends Object,yfiles.input.IHandle{} @@ -40423,14 +40469,13 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.input.PortLocationModelParameterHandle} class to change the {@link yfiles.graph.IPortLocationModelParameter} * of the given port - * @param {yfiles.graph.IPort} port The port to adjust the location parameter of. - * @constructor + * @param port The port to adjust the location parameter of. */ constructor(port:yfiles.graph.IPort); /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation + * @param context + * @param originalLocation */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** @@ -40439,22 +40484,22 @@ declare namespace system{ * This implementation will delegate to the {@link yfiles.input.IPortSnapResultProvider} that has been received from the port this * instance is bound to. *

    - * @param {Object} source The source of the event. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. + * @param source The source of the event. + * @param evt The {@link } instance containing the event data. * @protected */ collectSnapResults(source:Object,evt:yfiles.input.CollectSnapResultsEventArgs):void; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Gets the graph to use for {@link yfiles.graph.IGraph#setPortLocationParameter setting the parameter} from the context. - * @param {yfiles.input.IInputModeContext} context The input mode context to use. - * @returns {yfiles.graph.IGraph} The graph or null if the graph could not be obtained. + * @param context The input mode context to use. + * @returns The graph or null if the graph could not be obtained. * @see yfiles.input.IInputModeContext#graph * @protected */ @@ -40465,38 +40510,38 @@ declare namespace system{ * This is used for the {@link yfiles.input.MovementInfo} that is passed to the {@link yfiles.input.OrthogonalEdgeEditingContext#addMovedPort} * method. *

    - * @param {yfiles.graph.IPort} port The port to determine the move type for. - * @returns {yfiles.input.MoveTypes} This implementation returns {@link yfiles.input.MoveTypes#LINEAR_MOVE} for models of type {@link yfiles.graph.FreeNodePortLocationModel} - * and {@link yfiles.input.MoveTypes#ARBITRARY_MOVE} for all others. + * @param port The port to determine the move type for. + * @returns This implementation returns {@link #LINEAR_MOVE} for models of type {@link } + * and {@link #ARBITRARY_MOVE} for all others. * @protected */ getMoveType(port:yfiles.graph.IPort):yfiles.input.MoveTypes; /** * Callback method that obtains the new parameter for the given location and port. - * @param {yfiles.graph.IPort} port The port to obtain a parameter for. - * @param {yfiles.graph.IPortLocationModel} model The model to use. - * @param {yfiles.geometry.Point} location The new location. - * @returns {yfiles.graph.IPortLocationModelParameter} The new parameter to use. + * @param port The port to obtain a parameter for. + * @param model The model to use. + * @param location The new location. + * @returns The new parameter to use. * @protected */ getNewParameter(port:yfiles.graph.IPort,model:yfiles.graph.IPortLocationModel,location:yfiles.geometry.Point):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * - * @param {yfiles.input.IInputModeContext} context + * @param context */ initializeDrag(context:yfiles.input.IInputModeContext):void; /** * Callback method that applies the parameter. - * @param {yfiles.graph.IGraph} graph The graph to use for applying. - * @param {yfiles.graph.IPort} port The port to apply the parameter to. - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The new parameter to apply. + * @param graph The graph to use for applying. + * @param port The port to apply the parameter to. + * @param locationParameter The new parameter to apply. * @protected */ setParameter(graph:yfiles.graph.IGraph,port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):void; @@ -40526,7 +40571,7 @@ declare namespace system{ /** * Simple default implementation of {@link yfiles.input.IReparentNodeHandler} that treats shift key presses as reparent gestures * and allows for reparenting all nodes. - * @class yfiles.input.ReparentNodeHandler + * @class * @implements {yfiles.input.IReparentNodeHandler} */ export interface ReparentNodeHandler extends Object,yfiles.input.IReparentNodeHandler{} @@ -40534,31 +40579,31 @@ declare namespace system{ constructor(); /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.graph.INode} node - * @returns {boolean} + * @param context + * @param node + * @returns */ isReparentGesture(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.graph.INode} node - * @param {yfiles.graph.INode} newParent - * @returns {boolean} + * @param context + * @param node + * @param newParent + * @returns */ isValidParent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,newParent:yfiles.graph.INode):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.graph.INode} node - * @param {yfiles.graph.INode} newParent + * @param context + * @param node + * @param newParent */ reparent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,newParent:yfiles.graph.INode):void; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.graph.INode} node - * @returns {boolean} + * @param context + * @param node + * @returns */ shouldReparent(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode):boolean; /** @@ -40579,7 +40624,7 @@ declare namespace system{ * This implementation uses the {@link yfiles.input.GraphSnapContext} to create snap lines around the geometric border of the * node. *

    - * @class yfiles.input.NodeSnapLineProvider + * @class * @implements {yfiles.input.ISnapLineProvider} */ export interface NodeSnapLineProvider extends Object,yfiles.input.ISnapLineProvider{} @@ -40591,11 +40636,11 @@ declare namespace system{ * This method is called by {@link yfiles.input.NodeSnapLineProvider#addSnapLines} and by default used the {@link yfiles.input.NodeSnapLineProvider#createCenterSnapLine} * to add them to the {@link yfiles.input.CollectGraphSnapLinesEventArgs#addFixedNodeSnapLine fixed node} and {@link yfiles.input.CollectGraphSnapLinesEventArgs#addFixedSegmentSnapLine fixed segment} collections *

    - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.graph.INode} node The node to add snap lines for. - * @param {yfiles.geometry.Rect} layout The layout of the node to use for adding the snap lines. + * @param evt The argument to use for adding snap lines. + * @param node The node to add snap lines for. + * @param layout The layout of the node to use for adding the snap lines. * @protected */ addCenterSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; @@ -40604,11 +40649,11 @@ declare namespace system{ *

    * This method is called by {@link yfiles.input.NodeSnapLineProvider#addSnapLines} *

    - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.graph.INode} node The node to add snap lines for. - * @param {yfiles.geometry.Rect} layout The layout of the node to use for adding the snap lines. + * @param evt The argument to use for adding snap lines. + * @param node The node to add snap lines for. + * @param layout The layout of the node to use for adding the snap lines. * @protected */ addFixedNodeBorderSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; @@ -40618,11 +40663,11 @@ declare namespace system{ * This method is called by {@link yfiles.input.NodeSnapLineProvider#addSnapLines} and uses the {@link yfiles.input.GraphSnapContext#nodeToNodeDistance} to determine the location of the * segments to add around the layout. *

    - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.graph.INode} node The node to add snap lines for. - * @param {yfiles.geometry.Rect} layout The layout of the node to use for adding the snap lines. + * @param evt The argument to use for adding snap lines. + * @param node The node to add snap lines for. + * @param layout The layout of the node to use for adding the snap lines. * @protected */ addNodeToNodeSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; @@ -40632,11 +40677,11 @@ declare namespace system{ * This method is called by {@link yfiles.input.NodeSnapLineProvider#addSnapLines} and uses the {@link yfiles.input.GraphSnapContext#nodeToEdgeDistance} to determine the location of the * segments to add around the layout. *

    - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.graph.INode} node The node to add snap lines for. - * @param {yfiles.geometry.Rect} layout The layout of the node to use for adding the snap lines. + * @param evt The argument to use for adding snap lines. + * @param node The node to add snap lines for. + * @param layout The layout of the node to use for adding the snap lines. * @protected */ addNodeToSegmentSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; @@ -40646,11 +40691,11 @@ declare namespace system{ *

    * This method is called by {@link yfiles.input.NodeSnapLineProvider#addSnapLines} *

    - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.graph.INode} node The node to add snap lines for. - * @param {yfiles.geometry.Rect} layout The layout of the node to use for adding the snap lines. + * @param evt The argument to use for adding snap lines. + * @param node The node to add snap lines for. + * @param layout The layout of the node to use for adding the snap lines. * @protected */ addPortSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; @@ -40662,20 +40707,20 @@ declare namespace system{ * {@link yfiles.input.NodeSnapLineProvider#addFixedNodeBorderSnapLines}, {@link yfiles.input.NodeSnapLineProvider#addPortSnapLines}, * {@link yfiles.input.NodeSnapLineProvider#addNodeToNodeSnapLines}, and {@link yfiles.input.NodeSnapLineProvider#addCenterSnapLines}. *

    - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.graph.IModelItem} item The item to add snap lines for. + * @param evt The argument to use for adding snap lines. + * @param item The item to add snap lines for. */ addSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,item:yfiles.graph.IModelItem):void; /** * Convenience method that creates a snap line for the center of nodes. - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.graph.INode} node The node to add snap lines for. - * @param {yfiles.input.SnapLineOrientation} orientation The snap line orientation. - * @param {yfiles.geometry.Point} location The location of the snap line. - * @returns {yfiles.input.OrthogonalSnapLine} A snap line that other centers can snap to. + * @param node The node to add snap lines for. + * @param orientation The snap line orientation. + * @param location The location of the snap line. + * @returns A snap line that other centers can snap to. * @protected */ createCenterSnapLine(context:yfiles.input.GraphSnapContext,node:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,location:yfiles.geometry.Point):yfiles.input.OrthogonalSnapLine; @@ -40688,19 +40733,19 @@ declare namespace system{ * This implementation can be put into the {@link yfiles.graph.ILookup#lookup} of an {@link yfiles.graph.IEdge}. *

    * @see yfiles.graph.EdgeDecorator#snapLineProviderDecorator - * @class yfiles.input.EdgeSnapLineProvider + * @class * @implements {yfiles.input.ISnapLineProvider} */ export interface EdgeSnapLineProvider extends Object,yfiles.input.ISnapLineProvider{} export class EdgeSnapLineProvider { /** * Adds horizontal snap lines for a horizontally oriented fixed segment snap lines. - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.graph.IEdge} edge The edge to add snap lines for. - * @param {yfiles.geometry.Point} segmentStart The start of the segment. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. - * @param {yfiles.geometry.Point} segmentEnd The end of the segment. + * @param edge The edge to add snap lines for. + * @param segmentStart The start of the segment. + * @param evt The argument to use for adding snap lines. + * @param segmentEnd The end of the segment. * @see yfiles.input.EdgeSnapLineProvider#addVerticalSegmentSnapLines * @protected */ @@ -40712,20 +40757,20 @@ declare namespace system{ * For each fixed segment, it will call {@link yfiles.input.EdgeSnapLineProvider#addVerticalSegmentSnapLines} or {@link yfiles.input.EdgeSnapLineProvider#addHorizontalSegmentSnapLines} * respectively. *

    - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.graph.IModelItem} item The item to add snap lines for. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. + * @param item The item to add snap lines for. + * @param evt The argument to use for adding snap lines. */ addSnapLines(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectGraphSnapLinesEventArgs,item:yfiles.graph.IModelItem):void; /** * Adds vertical snap lines for a vertically oriented fixed segment snap lines. - * @param {yfiles.input.GraphSnapContext} context The context which holds the settings for the snap lines. Note that implementations should not change the state of the + * @param context The context which holds the settings for the snap lines. Note that implementations should not change the state of the * context explicitly. - * @param {yfiles.graph.IEdge} edge The edge to add snap lines for. - * @param {yfiles.geometry.Point} segmentStart The start of the segment. - * @param {yfiles.geometry.Point} segmentEnd The end of the segment. - * @param {yfiles.input.CollectGraphSnapLinesEventArgs} evt The argument to use for adding snap lines. + * @param edge The edge to add snap lines for. + * @param segmentStart The start of the segment. + * @param segmentEnd The end of the segment. + * @param evt The argument to use for adding snap lines. * @see yfiles.input.EdgeSnapLineProvider#addHorizontalSegmentSnapLines * @protected */ @@ -40734,7 +40779,7 @@ declare namespace system{ } /** * The default implementation of the {@link yfiles.input.INodeSnapResultProvider} interface. - * @class yfiles.input.NodeSnapResultProvider + * @class * @implements {yfiles.input.INodeSnapResultProvider} */ export interface NodeSnapResultProvider extends Object,yfiles.input.INodeSnapResultProvider{} @@ -40746,10 +40791,10 @@ declare namespace system{ * as the additional arguments. This method snaps the location to the next grid point or grid lines that are determined by * {@link yfiles.input.GraphSnapContext#nodeGridConstraintProvider} or obtained from the {@link yfiles.input.InputModeEventArgs#context}. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The arguments to add the results to. - * @param {yfiles.geometry.Point} location A location in the layout of the suggested layout of the node that will be snapped to a grid point location. - * @param {yfiles.graph.INode} node The node that is currently being processed. + * @param context The context in which the snapping is performed. + * @param evt The arguments to add the results to. + * @param location A location in the layout of the suggested layout of the node that will be snapped to a grid point location. + * @param node The node that is currently being processed. * @protected */ addGridSnapResult(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,location:yfiles.geometry.Point,node:yfiles.graph.INode):void; @@ -40758,13 +40803,13 @@ declare namespace system{ *

    * This method snaps the location to the next grid point or grid lines that are determined by {@link yfiles.input.GraphSnapContext#nodeGridConstraintProvider} or obtained from the {@link yfiles.input.InputModeEventArgs#context}. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The arguments to add the results to. - * @param {yfiles.geometry.Point} location A location in the layout of the suggested layout of the node that will be snapped to a grid point location. - * @param {yfiles.graph.INode} node The node that is currently being processed. - * @param {yfiles.input.GridSnapTypes} gridSnapType The type of snapping that should be performed. - * @param {yfiles.input.SnapPolicy} xSnapPolicy How to snap the x coordinate. - * @param {yfiles.input.SnapPolicy} ySnapPolicy How to snap the y coordinate. + * @param context The context in which the snapping is performed. + * @param evt The arguments to add the results to. + * @param location A location in the layout of the suggested layout of the node that will be snapped to a grid point location. + * @param node The node that is currently being processed. + * @param gridSnapType The type of snapping that should be performed. + * @param xSnapPolicy How to snap the x coordinate. + * @param ySnapPolicy How to snap the y coordinate. * @protected */ addGridSnapResultCore(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,location:yfiles.geometry.Point,node:yfiles.graph.INode,gridSnapType:yfiles.input.GridSnapTypes,xSnapPolicy:yfiles.input.SnapPolicy,ySnapPolicy:yfiles.input.SnapPolicy):void; @@ -40774,10 +40819,10 @@ declare namespace system{ * This implementation simply delegates to {@link yfiles.input.NodeSnapResultProvider#addGridSnapResult} using the center of the * suggestedLayout. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The arguments to add the results to. - * @param {yfiles.geometry.Rect} suggestedLayout The layout of the node if it would move without snapping. - * @param {yfiles.graph.INode} node The node that is currently being processed. + * @param context The context in which the snapping is performed. + * @param evt The arguments to add the results to. + * @param suggestedLayout The layout of the node if it would move without snapping. + * @param node The node that is currently being processed. * @protected */ collectGridSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.Rect,node:yfiles.graph.INode):void; @@ -40787,19 +40832,19 @@ declare namespace system{ * For each snap line that could be snapped to, this method calls * {@link yfiles.input.NodeSnapResultProvider#collectSnapResultsForSnapLine}. *

    - * @param {yfiles.input.GraphSnapContext} context The context for which the results are being queried. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance to which the results should be {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult added}. - * @param {yfiles.geometry.Rect} suggestedLayout The suggested layout of the node. - * @param {yfiles.graph.INode} node The node that is being dragged. + * @param context The context for which the results are being queried. + * @param evt The {@link } instance to which the results should be {@link #addSnapResult added}. + * @param suggestedLayout The suggested layout of the node. + * @param node The node that is being dragged. * @protected */ collectSnapLineSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.Rect,node:yfiles.graph.INode):void; /** * - * @param {yfiles.input.GraphSnapContext} context - * @param {yfiles.input.CollectSnapResultsEventArgs} evt - * @param {yfiles.geometry.Rect} suggestedLayout - * @param {yfiles.graph.INode} node + * @param context + * @param evt + * @param suggestedLayout + * @param node */ collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,suggestedLayout:yfiles.geometry.Rect,node:yfiles.graph.INode):void; /** @@ -40808,10 +40853,10 @@ declare namespace system{ * If the node will snap, a {@link yfiles.input.SnapResult} for a {@link yfiles.input.SnapLine} will be created and added to the event * argument. *

    - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The arguments to add the results to. - * @param {yfiles.input.OrthogonalSnapLine} snapLine The snap line to test snapping for. - * @param {yfiles.geometry.Rect} suggestedLayout The layout of the node if it would move without snapping. - * @param {yfiles.graph.INode} node The node that is currently being processed. + * @param evt The arguments to add the results to. + * @param snapLine The snap line to test snapping for. + * @param suggestedLayout The layout of the node if it would move without snapping. + * @param node The node that is currently being processed. * @protected */ collectSnapResultsForSnapLine(evt:yfiles.input.CollectSnapResultsEventArgs,snapLine:yfiles.input.OrthogonalSnapLine,suggestedLayout:yfiles.geometry.Rect,node:yfiles.graph.INode):void; @@ -40826,7 +40871,7 @@ declare namespace system{ } /** * The default implementation of the {@link yfiles.input.INodeReshapeSnapResultProvider} interface. - * @class yfiles.input.NodeReshapeSnapResultProvider + * @class * @implements {yfiles.input.INodeReshapeSnapResultProvider} */ export interface NodeReshapeSnapResultProvider extends Object,yfiles.input.INodeReshapeSnapResultProvider{} @@ -40836,16 +40881,16 @@ declare namespace system{ *

    * This method is called by {@link yfiles.input.NodeReshapeSnapResultProvider#collectGridSnapResults} for each grid line snap. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {number} delta The amount the mouse needs to be moved in order to get to the snapping location. - * @param {yfiles.geometry.Point} snappedLocation The location of the mouse that is associated with the grid point. - * @param {yfiles.input.SnapLineSnapTypes} snapLineType The type of snap line. - * @param {yfiles.geometry.IPoint} snapLineLocation The point at which the snap line is anchored. - * @param {number} from Where the snap line starts. - * @param {number} to Where the snap line ends. - * @param {yfiles.geometry.Point} snapLinePoint A point of interest on the snap line that can be highlighted. + * @param context The context in which the snapping is performed. + * @param evt The {@link } instance containing the event data. + * @param node The node that is being reshaped. + * @param delta The amount the mouse needs to be moved in order to get to the snapping location. + * @param snappedLocation The location of the mouse that is associated with the grid point. + * @param snapLineType The type of snap line. + * @param snapLineLocation The point at which the snap line is anchored. + * @param from Where the snap line starts. + * @param to Where the snap line ends. + * @param snapLinePoint A point of interest on the snap line that can be highlighted. * @protected */ addGridLineSnapResult(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,snapLineType:yfiles.input.SnapLineSnapTypes,snapLineLocation:yfiles.geometry.IPoint,delta:number,snappedLocation:yfiles.geometry.Point,from:number,to:number,snapLinePoint:yfiles.geometry.Point):void; @@ -40854,12 +40899,12 @@ declare namespace system{ *

    * This method is called by {@link yfiles.input.NodeReshapeSnapResultProvider#collectGridSnapResults} for each grid snap. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.IGridConstraintProvider.} provider The provider that is associated with the grid snapping. - * @param {yfiles.geometry.Point} gridSnappedPoint The point on the grid that should be highlighted. - * @param {yfiles.geometry.Point} snappedLocation The location of the mouse that is associated with the grid point. + * @param context The context in which the snapping is performed. + * @param evt The {@link } instance containing the event data. + * @param node The node that is being reshaped. + * @param provider The provider that is associated with the grid snapping. + * @param gridSnappedPoint The point on the grid that should be highlighted. + * @param snappedLocation The location of the mouse that is associated with the grid point. * @protected */ addGridSnapResult(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,provider:yfiles.input.IGridConstraintProvider,gridSnappedPoint:yfiles.geometry.Point,snappedLocation:yfiles.geometry.Point):void; @@ -40868,15 +40913,15 @@ declare namespace system{ *

    * This method is called by {@link yfiles.input.NodeReshapeSnapResultProvider#collectSameSizeSnapResults} for each result found. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. This will be used to {@link yfiles.input.CollectSnapResultsEventArgs#addSnapResult add} the result + * @param context The context in which the snapping is performed. + * @param evt The {@link } instance containing the event data. This will be used to {@link #addSnapResult add} the result * to. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.SnapLineOrientation} orientation The orientation of the result - indicates whether width or height have been snapped. - * @param {yfiles.collections.IEnumerable.} rectangles The rectangles that have the same width or height as the node will - this does not yet includes the rectangle of the + * @param node The node that is being reshaped. + * @param orientation The orientation of the result - indicates whether width or height have been snapped. + * @param rectangles The rectangles that have the same width or height as the node will - this does not yet includes the rectangle of the * node being reshaped. - * @param {number} finalSize The target size to which the node will snap. - * @param {number} snapDelta The snap delta that the mouse needs to be moved in order to snap. + * @param finalSize The target size to which the node will snap. + * @param snapDelta The snap delta that the mouse needs to be moved in order to snap. * @protected */ addSameSizeSnapResult(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,orientation:yfiles.input.SnapLineOrientation,rectangles:yfiles.collections.IEnumerable,finalSize:number,snapDelta:number):void; @@ -40885,22 +40930,22 @@ declare namespace system{ *

    * This method is called by {@link yfiles.input.NodeReshapeSnapResultProvider#collectSnapLineResults} for each snap line snap. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.OrthogonalSnapLine} snapLine The snap line to which the node can be snapped - * @param {number} delta The amount the mouse needs to be moved in order to get to the snapping location. - * @param {yfiles.geometry.Point} snapPoint The point of interest that can be highlighted on the snap line. + * @param context The context in which the snapping is performed. + * @param evt The {@link } instance containing the event data. + * @param node The node that is being reshaped. + * @param snapLine The snap line to which the node can be snapped + * @param delta The amount the mouse needs to be moved in order to get to the snapping location. + * @param snapPoint The point of interest that can be highlighted on the snap line. * @protected */ addSnaplineSnapResult(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,snapLine:yfiles.input.OrthogonalSnapLine,delta:number,snapPoint:yfiles.geometry.Point):void; /** * Collects the snap results for the grid. - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.ReshapeRectangleContext} reshapeContext The reshape context that describes how the node's layout is reshaped. - * @param {yfiles.geometry.Rect} suggestedLayout The suggested layout of the node. + * @param context The context in which the snapping is performed. + * @param evt The {@link } instance containing the event data. + * @param node The node that is being reshaped. + * @param reshapeContext The reshape context that describes how the node's layout is reshaped. + * @param suggestedLayout The suggested layout of the node. * @protected */ collectGridSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,reshapeContext:yfiles.input.ReshapeRectangleContext,suggestedLayout:yfiles.geometry.Rect):void; @@ -40910,11 +40955,11 @@ declare namespace system{ * This method ultimately delegates to {@link yfiles.input.NodeReshapeSnapResultProvider#addSameSizeSnapResult} to add the results * to the event argument. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.ReshapeRectangleContext} reshapeContext The reshape context that contains information about the nature of the resize. - * @param {yfiles.geometry.Rect} suggestedLayout The layout of the node as it would be if the mouse location would not be snapped. + * @param context The context in which the snapping is performed. + * @param evt The {@link } instance containing the event data. + * @param node The node that is being reshaped. + * @param reshapeContext The reshape context that contains information about the nature of the resize. + * @param suggestedLayout The layout of the node as it would be if the mouse location would not be snapped. * @protected */ collectSameSizeSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,reshapeContext:yfiles.input.ReshapeRectangleContext,suggestedLayout:yfiles.geometry.Rect):void; @@ -40925,11 +40970,11 @@ declare namespace system{ * to the event argument. Method {@link yfiles.input.NodeReshapeSnapResultProvider#getSnapLines} is used to query the snap lines * that will be checked by this method. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The {@link yfiles.input.CollectSnapResultsEventArgs} instance containing the event data. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.ReshapeRectangleContext} reshapeContext The reshape context that contains information about the nature of the resize. - * @param {yfiles.geometry.Rect} suggestedLayout The layout of the node as it would be if the mouse location would not be snapped. + * @param context The context in which the snapping is performed. + * @param evt The {@link } instance containing the event data. + * @param node The node that is being reshaped. + * @param reshapeContext The reshape context that contains information about the nature of the resize. + * @param suggestedLayout The layout of the node as it would be if the mouse location would not be snapped. * @protected */ collectSnapLineResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,reshapeContext:yfiles.input.ReshapeRectangleContext,suggestedLayout:yfiles.geometry.Rect):void; @@ -40944,10 +40989,10 @@ declare namespace system{ *
  • {@link yfiles.input.NodeReshapeSnapResultProvider#collectSameSizeSnapResults}
  • *
  • {@link yfiles.input.NodeReshapeSnapResultProvider#collectSnapLineResults}
  • * - * @param {yfiles.input.GraphSnapContext} context The snap context which manages the snap lines and the settings. - * @param {yfiles.input.CollectSnapResultsEventArgs} evt The event argument to obtain the context from and add the results to. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.ReshapeRectangleContext} reshapeContext Carries information about the reshape process. + * @param context The snap context which manages the snap lines and the settings. + * @param evt The event argument to obtain the context from and add the results to. + * @param node The node that is being reshaped. + * @param reshapeContext Carries information about the reshape process. */ collectSnapResults(context:yfiles.input.GraphSnapContext,evt:yfiles.input.CollectSnapResultsEventArgs,node:yfiles.graph.INode,reshapeContext:yfiles.input.ReshapeRectangleContext):void; /** @@ -40956,11 +41001,11 @@ declare namespace system{ *

    * This method aggregates the {@link yfiles.input.GraphSnapContext#getFixedNodeSnapLines fixed nodes' snaplines} and the {@link yfiles.input.GraphSnapContext#getAdditionalSnapLines additional snap lines} that are relevant to the node. *

    - * @param {yfiles.input.GraphSnapContext} context The context in which the snapping is performed. - * @param {yfiles.graph.INode} node The node that is being reshaped. - * @param {yfiles.input.ReshapeRectangleContext} reshapeContext The reshape context that contains information about the nature of the resize. - * @param {yfiles.geometry.Rect} suggestedLayout The layout of the node as it would be if the mouse location would not be snapped. - * @returns {yfiles.collections.IEnumerable.} + * @param context The context in which the snapping is performed. + * @param node The node that is being reshaped. + * @param reshapeContext The reshape context that contains information about the nature of the resize. + * @param suggestedLayout The layout of the node as it would be if the mouse location would not be snapped. + * @returns * @protected */ getSnapLines(context:yfiles.input.GraphSnapContext,node:yfiles.graph.INode,reshapeContext:yfiles.input.ReshapeRectangleContext,suggestedLayout:yfiles.geometry.Rect):yfiles.collections.IEnumerable; @@ -40978,69 +41023,69 @@ declare namespace system{ *

    * An instance of this class can be found in the {@link yfiles.graph.ILookup#lookup} of an edge, e.g. *

    - * @class yfiles.input.DefaultBendCreator + * @class * @implements {yfiles.input.IBendCreator} */ export interface DefaultBendCreator extends Object,yfiles.input.IBendCreator{} export class DefaultBendCreator { /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.graph.IGraph} graph - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.geometry.Point} location - * @returns {number} + * @param context + * @param graph + * @param edge + * @param location + * @returns */ createBend(context:yfiles.input.IInputModeContext,graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,location:yfiles.geometry.Point):number; static $class:yfiles.lang.Class; } /** * An abstract convenience implementation of the {@link yfiles.input.IPortCandidateProvider} interface. - * @class yfiles.input.PortCandidateProviderBase + * @class * @implements {yfiles.input.IPortCandidateProvider} */ export interface PortCandidateProviderBase extends Object,yfiles.input.IPortCandidateProvider{} export class PortCandidateProviderBase { /** * Convenience method for subclasses that adds all existing {@link yfiles.graph.IPortOwner#ports} of the owner to the provided list. - * @param {yfiles.graph.IPortOwner} owner The port owner whose ports should be added. - * @param {yfiles.collections.IList.} list The list to add candidates for existing ports to. + * @param owner The port owner whose ports should be added. + * @param list The list to add candidates for existing ports to. * @protected */ addExistingPorts(owner:yfiles.graph.IPortOwner,list:yfiles.collections.IList):void; /** * Factory method that creates a simple candidate that will use the {@link yfiles.input.PortCandidateProviderBase#createInstance} * method of this instance to delegate {@link yfiles.input.IPortCandidate#createPort} queries to. - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The location of the candidate. This instance is assigned by reference to the candidate. - * @param {yfiles.graph.IPortOwner} owner The owner to use for the candidate. - * @param {boolean} [valid=true] Whether the port should be {@link yfiles.input.PortCandidateValidity#VALID}. - * @returns {yfiles.input.DefaultPortCandidate} A candidate whose {@link yfiles.input.IPortCandidate#createPort} method delegates to this instance's - * {@link yfiles.input.PortCandidateProviderBase#createInstance}. + * @param locationParameter The location of the candidate. This instance is assigned by reference to the candidate. + * @param owner The owner to use for the candidate. + * @param [valid=true] Whether the port should be {@link #VALID}. + * @returns A candidate whose {@link #createPort} method delegates to this instance's + * {@link #createInstance}. * @protected */ createCandidate(owner:yfiles.graph.IPortOwner,locationParameter:yfiles.graph.IPortLocationModelParameter,valid?:boolean):yfiles.input.DefaultPortCandidate; /** * Callback method used by the ports created using the factory methods - * CreateCandidate(IPortOwner,IPortLocationModelParameter). + * {@link yfiles.input.PortCandidateProviderBase#createCandidate}. *

    * This method can be overridden by subclasses to perform more sophisticated port creation logic. *

    - * @param {yfiles.input.IInputModeContext} context The context in which the instance is created. - * @param {yfiles.input.DefaultPortCandidate} candidate The candidate to create a port for. - * @returns {yfiles.graph.IPort} The new port. + * @param context The context in which the instance is created. + * @param candidate The candidate to create a port for. + * @returns The new port. * @protected */ createInstance(context:yfiles.input.IInputModeContext,candidate:yfiles.input.DefaultPortCandidate):yfiles.graph.IPort; /** * Callback method used by the ports created using the factory methods - * CreateCandidate(IPortOwner,IPortLocationModelParameter). + * {@link yfiles.input.PortCandidateProviderBase#createCandidate}. *

    * This method can be overridden by subclasses to perform more sophisticated candidate creation logic. *

    - * @param {yfiles.input.IInputModeContext} context The context in which the instance is created. - * @param {yfiles.input.DefaultPortCandidate} candidate The candidate to create a port for. - * @param {yfiles.geometry.Point} suggestedLocation The location to get a candidate for. - * @returns {yfiles.input.IPortCandidate} The new candidate whose {@link yfiles.input.IPortCandidate#validity} may not be {@link yfiles.input.PortCandidateValidity#DYNAMIC}. + * @param context The context in which the instance is created. + * @param candidate The candidate to create a port for. + * @param suggestedLocation The location to get a candidate for. + * @returns The new candidate whose {@link #validity} may not be {@link #DYNAMIC}. * @protected */ getPortCandidateAt(context:yfiles.input.IInputModeContext,candidate:yfiles.input.DefaultPortCandidate,suggestedLocation:yfiles.geometry.Point):yfiles.input.IPortCandidate; @@ -41050,36 +41095,36 @@ declare namespace system{ * This method is used as a callback by most of the getter methods in this class. Subclasses should override this method to * provide the same candidates for all use-cases. *

    - * @param {yfiles.input.IInputModeContext} context The context for which the candidates should be provided. - * @returns {yfiles.collections.IEnumerable.} An enumerable collection of port candidates. + * @param context The context for which the candidates should be provided. + * @returns An enumerable collection of port candidates. * @protected * @abstract */ getPortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; /** * Convenience implementation that simply delegates to {@link yfiles.input.PortCandidateProviderBase#getPortCandidates}. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.input.IPortCandidate} target - * @returns {yfiles.collections.IEnumerable.} + * @param context + * @param target + * @returns */ getSourcePortCandidates(context:yfiles.input.IInputModeContext,target:yfiles.input.IPortCandidate):yfiles.collections.IEnumerable; /** * Convenience implementation that simply delegates to {@link yfiles.input.PortCandidateProviderBase#getPortCandidates}. - * @param {yfiles.input.IInputModeContext} context - * @returns {yfiles.collections.IEnumerable.} + * @param context + * @returns */ getSourcePortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; /** * Convenience implementation that simply delegates to {@link yfiles.input.PortCandidateProviderBase#getPortCandidates}. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.input.IPortCandidate} source - * @returns {yfiles.collections.IEnumerable.} + * @param context + * @param source + * @returns */ getTargetPortCandidates(context:yfiles.input.IInputModeContext,source:yfiles.input.IPortCandidate):yfiles.collections.IEnumerable; /** * Convenience implementation that simply delegates to {@link yfiles.input.PortCandidateProviderBase#getPortCandidates}. - * @param {yfiles.input.IInputModeContext} context - * @returns {yfiles.collections.IEnumerable.} + * @param context + * @returns */ getTargetPortCandidates(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; /** @@ -41108,53 +41153,52 @@ declare namespace system{ *

    * @see yfiles.input.PortRelocationHandle#getPortCandidates * @see yfiles.graph.EdgeDecorator#edgeReconnectionPortCandidateProviderDecorator - * @class yfiles.input.PortRelocationHandle + * @class * @implements {yfiles.input.IHandle} */ export interface PortRelocationHandle extends Object,yfiles.input.IHandle{} export class PortRelocationHandle { /** * Creates a new instance of the {@link yfiles.input.PortRelocationHandle} class. - * @param {yfiles.graph.IGraph} graph The graph or null. If the graph instance is not specified, the handle will try to receive the graph from the {@link yfiles.input.IInputModeContext} - * it is passed in during {@link yfiles.input.PortRelocationHandle#initializeDrag}. - * @param {yfiles.graph.IEdge} edge The edge. - * @param {boolean} sourceEnd if set to true the source end will be subject to relocation, otherwise it will be the target port. - * @constructor + * @param graph The graph or null. If the graph instance is not specified, the handle will try to receive the graph from the {@link } + * it is passed in during {@link #initializeDrag}. + * @param edge The edge. + * @param sourceEnd if set to true the source end will be subject to relocation, otherwise it will be the target port. */ constructor(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,sourceEnd:boolean); /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation + * @param context + * @param originalLocation */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** * Factory method that creates the {@link yfiles.view.ICanvasObjectDescriptor} that will be used to paint the "current" * {@link yfiles.input.IPortCandidate}. - * @returns {yfiles.view.ICanvasObjectDescriptor} The descriptor to use for the rendering in the {@link yfiles.view.CanvasComponent}. + * @returns The descriptor to use for the rendering in the {@link }. * @protected */ createCurrentPortCandidateDescriptor():yfiles.view.ICanvasObjectDescriptor; /** * Factory method that creates the dummy edge that will be shown during the drag operation. - * @param {yfiles.graph.IEdge} edge The edge to be represented by the dummy edge. - * @returns {yfiles.graph.SimpleEdge} The dummy edge instance to use. + * @param edge The edge to be represented by the dummy edge. + * @returns The dummy edge instance to use. * @see yfiles.input.PortRelocationHandle#showDummyEdge * @protected */ createDummyEdge(edge:yfiles.graph.IEdge):yfiles.graph.SimpleEdge; /** * Factory method that creates a dummy paintable for the dummy edge during the drag operation. - * @param {yfiles.graph.SimpleEdge} dummy The dummy to create a paintable for. - * @returns {yfiles.view.IVisualCreator} A paintable that shows the dummy. + * @param dummy The dummy to create a paintable for. + * @returns A paintable that shows the dummy. * @see yfiles.input.PortRelocationHandle#showDummyEdge * @protected */ createDummyEdgeVisualCreator(dummy:yfiles.graph.SimpleEdge):yfiles.view.IVisualCreator; /** * Factory method that creates the candidate for the existing port. - * @param {yfiles.graph.IPort} port The port to create a candidate for. - * @returns {yfiles.input.IPortCandidate} The candidate or null. + * @param port The port to create a candidate for. + * @returns The candidate or null. * @see yfiles.input.PortRelocationHandle#getPortCandidates * @see yfiles.input.PortRelocationHandle#addExistingPort * @protected @@ -41163,30 +41207,30 @@ declare namespace system{ /** * Factory method that creates the {@link yfiles.view.ICanvasObjectDescriptor} that will be used to paint the * {@link yfiles.input.IPortCandidate}s. - * @returns {yfiles.view.ICanvasObjectDescriptor} The descriptor to use for the rendering in the {@link yfiles.view.CanvasComponent}. + * @returns The descriptor to use for the rendering in the {@link }. * @protected */ createPortCandidateDescriptor():yfiles.view.ICanvasObjectDescriptor; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Finds the closest candidate from the given set of candidates. - * @param {yfiles.input.IInputModeContext} context The context in for which the closest handle candidate is sought. - * @param {yfiles.geometry.Point} location The location for which to find a candidate. - * @param {yfiles.collections.IEnumerable.} candidates The list of possible candidates. - * @returns {yfiles.input.IPortCandidate} The closes candidate or null. + * @param context The context in for which the closest handle candidate is sought. + * @param location The location for which to find a candidate. + * @param candidates The list of possible candidates. + * @returns The closes candidate or null. * @protected */ getClosestCandidate(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,candidates:yfiles.collections.IEnumerable):yfiles.input.IPortCandidate; /** * Gets the graph to use from the context. - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @returns {yfiles.graph.IGraph} A graph instance or null. + * @param context The input mode context. + * @returns A graph instance or null. * @protected */ getGraph(context:yfiles.input.IInputModeContext):yfiles.graph.IGraph; @@ -41197,10 +41241,10 @@ declare namespace system{ * This implementation returns the result of {@link yfiles.input.IPortCandidate#createPort} or calls {@link yfiles.graph.IGraph#addPort} if * the result was null. *

    - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.input.IPortCandidate} portCandidate The candidate to get a port instance from. - * @param {yfiles.geometry.Point} suggestedLocation The suggested location for the port. - * @returns {yfiles.graph.IPort} A non-null port instance. + * @param context + * @param portCandidate The candidate to get a port instance from. + * @param suggestedLocation The suggested location for the port. + * @returns A non-null port instance. * @see yfiles.input.PortRelocationHandle#setPorts * @protected */ @@ -41211,24 +41255,24 @@ declare namespace system{ * This implementation uses the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} from the edge's {@link yfiles.graph.ILookup#lookup} * to retrieve the candidate sets. If {@link yfiles.input.PortRelocationHandle#addExistingPort} is enabled, the existing port will be part of the candidates. *

    - * @param {yfiles.input.IInputModeContext} context The context that is used to retrieve the candidates for. - * @param {yfiles.graph.IEdge} edge The edge. - * @param {boolean} sourcePort Whether to look for source port candidates. - * @returns {yfiles.collections.IEnumerable.} A non-null enumerable over the candidates. + * @param context The context that is used to retrieve the candidates for. + * @param edge The edge. + * @param sourcePort Whether to look for source port candidates. + * @returns A non-null enumerable over the candidates. * @protected */ getPortCandidates(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,sourcePort:boolean):yfiles.collections.IEnumerable; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Hides the original edge that during the drag operation. - * @param {yfiles.graph.IEdge} edge The edge to hide. - * @param {yfiles.input.IInputModeContext} context The context to get the canvas the edge should be hidden from. + * @param edge The edge to hide. + * @param context The context to get the canvas the edge should be hidden from. * @see yfiles.input.PortRelocationHandle#unhideOriginalEdge * @see yfiles.input.PortRelocationHandle#showDummyEdge * @protected @@ -41236,7 +41280,7 @@ declare namespace system{ hideOriginalEdge(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge):void; /** * - * @param {yfiles.input.IInputModeContext} context + * @param context */ initializeDrag(context:yfiles.input.IInputModeContext):void; /** @@ -41245,63 +41289,63 @@ declare namespace system{ * This implementation checks whether the the parent input mode is an instance of {@link yfiles.input.HandleInputMode}, the {@link yfiles.input.PortRelocationHandle#portCandidateResolutionRecognizer} * recognizes its {@link yfiles.view.MouseEventArgs}, and the {@link yfiles.input.HandleInputMode#currentHandle}'s location is equal to this {@link yfiles.input.PortRelocationHandle#location}. *

    - * @param {yfiles.input.IInputModeContext} context The context to inspect. - * @returns {boolean} true if port candidates may be resolved; false otherwise. + * @param context The context to inspect. + * @returns true if port candidates may be resolved; false otherwise. * @protected */ isPortCandidateResolutionEnabled(context:yfiles.input.IInputModeContext):boolean; /** * Tries to {@link yfiles.input.IPortCandidate#getPortCandidateAt resolve} a dynamic port candidate for the given location. - * @param {yfiles.input.IInputModeContext} context The context in which the candidate is resolved. - * @param {yfiles.input.IPortCandidate} portCandidate The candidate. - * @param {yfiles.geometry.Point} location The current location. - * @returns {yfiles.input.IPortCandidate} A candidate. + * @param context The context in which the candidate is resolved. + * @param portCandidate The candidate. + * @param location The current location. + * @returns A candidate. * @protected */ resolveCandidate(context:yfiles.input.IInputModeContext,portCandidate:yfiles.input.IPortCandidate,location:yfiles.geometry.Point):yfiles.input.IPortCandidate; /** * Updates the closest candidate for visual feedback. - * @param {yfiles.input.IPortCandidate} portCandidate + * @param portCandidate * @protected */ setClosestCandidate(portCandidate:yfiles.input.IPortCandidate):void; /** * Callback that is triggered by {@link yfiles.input.PortRelocationHandle#dragFinished} to actually change the port. - * @param {yfiles.input.IInputModeContext} context The context. - * @param {yfiles.graph.IEdge} edge The edge to change ports. - * @param {boolean} setSourcePort Whether to set the source port. false for target ports. - * @param {yfiles.input.IPortCandidate} portCandidate The candidate that has been chosen. - * @param {yfiles.geometry.Point} suggestedLocation The suggested location for the port. + * @param context The context. + * @param edge The edge to change ports. + * @param setSourcePort Whether to set the source port. false for target ports. + * @param portCandidate The candidate that has been chosen. + * @param suggestedLocation The suggested location for the port. * @protected */ setPort(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,setSourcePort:boolean,portCandidate:yfiles.input.IPortCandidate,suggestedLocation:yfiles.geometry.Point):void; /** * Finally sets the ports for the edge to the new values. - * @param {yfiles.input.IInputModeContext} context The context in which the ports are set. - * @param {yfiles.graph.IEdge} edge The edge to set the ports for. - * @param {yfiles.graph.IPort} sourcePort The (possibly) new source port. - * @param {yfiles.graph.IPort} targetPort The (possibly) new target port. + * @param context The context in which the ports are set. + * @param edge The edge to set the ports for. + * @param sourcePort The (possibly) new source port. + * @param targetPort The (possibly) new target port. * @protected */ setPorts(context:yfiles.input.IInputModeContext,edge:yfiles.graph.IEdge,sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort):void; /** * Updates the position of the handle. - * @param {yfiles.geometry.Point} location The new location of the handle. + * @param location The new location of the handle. * @protected */ setPosition(location:yfiles.geometry.Point):void; /** * Updates the dummy edge's visual appearance to reflect the new port candidate. - * @param {yfiles.graph.SimpleEdge} dummy The dummy edge. - * @param {boolean} source Whether to update the source or target port. - * @param {yfiles.input.IPortCandidate} portCandidate The new candidate to indicate. + * @param dummy The dummy edge. + * @param source Whether to update the source or target port. + * @param portCandidate The new candidate to indicate. * @protected */ setToPortCandidate(dummy:yfiles.graph.SimpleEdge,source:boolean,portCandidate:yfiles.input.IPortCandidate):void; /** * Unhides the original edge that was hidden during the drag operation. - * @param {yfiles.graph.IEdge} edge The edge to unhide. - * @param {yfiles.view.CanvasComponent} canvas The canvas the edge was hidden from. + * @param edge The edge to unhide. + * @param canvas The canvas the edge was hidden from. * @see yfiles.input.PortRelocationHandle#hideOriginalEdge * @see yfiles.input.PortRelocationHandle#showDummyEdge * @protected @@ -41440,7 +41484,7 @@ declare namespace system{ * {@link yfiles.graph.IEdge}s (see {@link yfiles.graph.DefaultGraph#DEFAULT_EDGE_LOOKUP}) will use the {@link yfiles.input.IEdgeReconnectionPortCandidateProvider} interface to collect the * source and target port handles. *

    - * @class yfiles.input.PortRelocationHandleProvider + * @class * @implements {yfiles.input.IHandleProvider} * @implements {yfiles.input.IEdgePortHandleProvider} */ @@ -41448,25 +41492,24 @@ declare namespace system{ export class PortRelocationHandleProvider { /** * Initializes a new instance of the {@link yfiles.input.PortRelocationHandleProvider} class using the given graph and edge. - * @param {yfiles.graph.IGraph} graph The graph or null. If the graph is null, the handles will try to receive the graph from the {@link yfiles.input.IInputModeContext} + * @param graph The graph or null. If the graph is null, the handles will try to receive the graph from the {@link } * it is used in. - * @param {yfiles.graph.IEdge} edge The edge. - * @constructor + * @param edge The edge. */ constructor(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge); /** * Factory method that creates the handle for this provider. - * @param {yfiles.graph.IGraph} graph The graph that contains the edge. - * @param {yfiles.graph.IEdge} edge The edge. - * @param {boolean} sourcePort if set to true the handle for the source port is sought. - * @returns {yfiles.input.IHandle} A handle or null. + * @param graph The graph that contains the edge. + * @param edge The edge. + * @param sourcePort if set to true the handle for the source port is sought. + * @returns A handle or null. * @protected */ createPortRelocationHandle(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,sourcePort:boolean):yfiles.input.IHandle; /** * - * @param {yfiles.input.IInputModeContext} context - * @returns {yfiles.collections.IEnumerable.} + * @param context + * @returns */ getHandles(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; /** @@ -41495,29 +41538,28 @@ declare namespace system{ * {@link yfiles.graph.IGraph#remove}. In that case, you need to query the handles again before interacting with the graph, for * example by temporarily unselecting and reselecting the port-owning nodes. *

    - * @class yfiles.input.PortsHandleProvider + * @class * @implements {yfiles.input.IHandleProvider} */ export interface PortsHandleProvider extends Object,yfiles.input.IHandleProvider{} export class PortsHandleProvider { /** * Creates an instance using the given owner as the provider for the ports. - * @param {yfiles.graph.IPortOwner} owner - * @constructor + * @param owner */ constructor(owner:yfiles.graph.IPortOwner); /** * Retrieves the handle implementation from the port's lookup. - * @param {yfiles.graph.IPort} port - * @returns {yfiles.input.IHandle} + * @param port + * @returns * @protected */ getHandle(port:yfiles.graph.IPort):yfiles.input.IHandle; /** * Returns a collection of zero or more {@link yfiles.input.IHandle} implementations that are associated with the ports of this * context. - * @param {yfiles.input.IInputModeContext} context - * @returns {yfiles.collections.IEnumerable.} A collection of handles. + * @param context + * @returns A collection of handles. */ getHandles(context:yfiles.input.IInputModeContext):yfiles.collections.IEnumerable; /** @@ -41539,14 +41581,13 @@ declare namespace system{ *

    * This mode is {@link yfiles.input.ResizeStripeInputMode#exclusive} by default. *

    - * @class yfiles.input.ResizeStripeInputMode + * @class * @implements {yfiles.input.IInputMode} */ export interface ResizeStripeInputMode extends Object,yfiles.input.IInputMode{} export class ResizeStripeInputMode { /** * Creates a new instance of this input mode. - * @constructor */ constructor(); /** @@ -41570,10 +41611,10 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation, first. *

    - * @param {yfiles.input.IInputModeContext} context The context that this instance shall be installed into. The same instance will be passed to this instance during - * {@link yfiles.input.IInputMode#uninstall}. A reference to the context may be kept and queried during the time the mode is + * @param context The context that this instance shall be installed into. The same instance will be passed to this instance during + * {@link #uninstall}. A reference to the context may be kept and queried during the time the mode is * installed. - * @param {yfiles.input.ConcurrencyController} controller The {@link yfiles.input.ResizeStripeInputMode#controller} for this mode. + * @param controller The {@link #controller} for this mode. * @see yfiles.input.IInputMode#uninstall */ install(context:yfiles.input.IInputModeContext,controller:yfiles.input.ConcurrencyController):void; @@ -41582,9 +41623,9 @@ declare namespace system{ *

    * This implementation checks whether a stripe border has been hit at the latest {@link yfiles.view.MouseEventArgs} *

    - * @param {Object} source - * @param {yfiles.lang.EventArgs} evt - * @returns {boolean} true iff a stripe border has been hit at the latest {@link yfiles.view.MouseEventArgs} + * @param source + * @param evt + * @returns true iff a stripe border has been hit at the latest {@link } * @protected */ isValidBegin(source:Object,evt:yfiles.lang.EventArgs):boolean; @@ -41623,13 +41664,13 @@ declare namespace system{ onConcurrencyControllerDeactivated():void; /** * Triggers the {@link yfiles.input.ResizeStripeInputMode#addDragCanceledListener DragCanceled} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceled(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.ResizeStripeInputMode#addDragCancelingListener DragCanceling} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragCanceling(evt:yfiles.input.InputModeEventArgs):void; @@ -41639,7 +41680,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.ResizeStripeInputMode#addDragFinishedListener DragFinished} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinished(evt:yfiles.input.InputModeEventArgs):void; @@ -41649,7 +41690,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.ResizeStripeInputMode#addDragFinishingListener DragFinishing} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragFinishing(evt:yfiles.input.InputModeEventArgs):void; @@ -41659,7 +41700,7 @@ declare namespace system{ * This method triggers the {@link yfiles.input.ResizeStripeInputMode#addDraggedListener Dragged} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragged(evt:yfiles.input.InputModeEventArgs):void; @@ -41669,19 +41710,19 @@ declare namespace system{ * This method triggers the {@link yfiles.input.ResizeStripeInputMode#addDraggingListener Dragging} * event. *

    - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragging(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.ResizeStripeInputMode#addDragStartedListener DragStarted} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarted(evt:yfiles.input.InputModeEventArgs):void; /** * Triggers the {@link yfiles.input.ResizeStripeInputMode#addDragStartingListener DragStarting} event. - * @param {yfiles.input.InputModeEventArgs} evt The event argument that contains context information. + * @param evt The event argument that contains context information. * @protected */ onDragStarting(evt:yfiles.input.InputModeEventArgs):void; @@ -41698,7 +41739,7 @@ declare namespace system{ onStopped():void; /** * - * @returns {boolean} + * @returns */ tryStop():boolean; /** @@ -41710,7 +41751,7 @@ declare namespace system{ *

    * Overriding implementations should call the base implementation after their own code. *

    - * @param {yfiles.input.IInputModeContext} context The context to deregister from. This is the same instance that had been passed to {@link yfiles.input.IInputMode#install} during + * @param context The context to deregister from. This is the same instance that had been passed to {@link #install} during * installation. */ uninstall(context:yfiles.input.IInputModeContext):void; @@ -41827,97 +41868,97 @@ declare namespace system{ ignoreContentRecognizer:(eventSource:Object,evt:yfiles.lang.EventArgs)=>boolean; /** * Adds the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDragFinishingListener */ addDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinishing event that occurs before the drag will be finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDragFinishingListener */ removeDragFinishingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDragFinishedListener */ addDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragFinished event that occurs once the drag has been finished. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDragFinishedListener */ removeDragFinishedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDragStartingListener */ addDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarting event that occurs once the drag is starting. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDragStartingListener */ removeDragStartingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDragStartedListener */ addDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragStarted event that occurs once the drag is initialized and has started. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDragStartedListener */ removeDragStartedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDraggingListener */ addDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragging event that occurs at the start of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDraggingListener */ removeDraggingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDraggedListener */ addDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the Dragged event that occurs at the end of every drag. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDraggedListener */ removeDraggedListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDragCanceledListener */ addDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceled event that occurs when the drag has been canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDragCanceledListener */ removeDragCanceledListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Adds the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ResizeStripeInputMode#removeDragCancelingListener */ addDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; /** * Removes the given listener for the DragCanceling event that occurs before the drag will be canceled. - * @param {function(Object, yfiles.input.InputModeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ResizeStripeInputMode#addDragCancelingListener */ removeDragCancelingListener(listener:(sender:Object,evt:yfiles.input.InputModeEventArgs)=>void):void; @@ -41936,34 +41977,35 @@ declare namespace system{ * This method is called to determine whether a {@link yfiles.input.IReparentStripeHandler#reparent} operation should actually be * executed. *

    - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.IStripe} stripe The stripe that will be reparented. - * @param {yfiles.graph.IStripe} newParent The potential new parent. - * @param {number} index The index where the stripe would be {@link yfiles.input.IReparentStripeHandler#reparent reparented} - * @param {yfiles.input.StripeReparentPolicy} reparentPosition Where to place the stripe as a result of the gesture that would be used for the {@link yfiles.input.IReparentStripeHandler#reparent } + * @param context The context that provides information about the user input. + * @param stripe The stripe that will be reparented. + * @param newParent The potential new parent. + * @param index The index where the stripe would be {@link #reparent reparented} + * @param reparentPosition Where to place the stripe as a result of the gesture that would be used for the {@link #reparent } * operation. - * @returns {boolean} Whether newParent is a valid new parent for stripe for the given index and gesture. + * @returns Whether newParent is a valid new parent for stripe for the given index and gesture. * @abstract */ isValidParent(context:yfiles.input.IInputModeContext,stripe:yfiles.graph.IStripe,newParent:yfiles.graph.IStripe,index:number,reparentPosition:yfiles.input.StripeReparentPolicy):boolean; /** * Performs the actual reparenting after the reparent gesture has been finalized. *

    - * Implementations should use SetParent or SetParent to set the parent of movedStripe to newParent. + * Implementations should use {@link yfiles.graph.ITable#setParent} or {@link yfiles.graph.ITable#setParent} to set the parent of movedStripe + * to newParent. *

    - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.IStripe} movedStripe The stripe that will be reparented. - * @param {yfiles.graph.IStripe} newParent The potential new parent. - * @param {number} index The index where the stripe should be inserted. - * @param {yfiles.input.StripeReparentPolicy} reparentPosition Where to place the stripe as a result of the gesture that triggered the reparent operation. + * @param context The context that provides information about the user input. + * @param movedStripe The stripe that will be reparented. + * @param newParent The potential new parent. + * @param index The index where the stripe should be inserted. + * @param reparentPosition Where to place the stripe as a result of the gesture that triggered the reparent operation. * @abstract */ reparent(context:yfiles.input.IInputModeContext,movedStripe:yfiles.graph.IStripe,newParent:yfiles.graph.IStripe,index:number,reparentPosition:yfiles.input.StripeReparentPolicy):void; /** * Determines whether the user may detach the given stripe from its current parent in order to reparent it. - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.IStripe} stripe The stripe that is about to be detached from its current parent. - * @returns {boolean} Whether the stripe may be detached and reparented. + * @param context The context that provides information about the user input. + * @param stripe The stripe that is about to be detached from its current parent. + * @returns Whether the stripe may be detached and reparented. * @abstract */ shouldReparent(context:yfiles.input.IInputModeContext,stripe:yfiles.graph.IStripe):boolean; @@ -41977,7 +42019,7 @@ declare namespace system{ *

    * This implementation allows to specify a maximal nesting depth for reparent operations. *

    - * @class yfiles.input.ReparentStripeHandler + * @class * @implements {yfiles.input.IReparentStripeHandler} */ export interface ReparentStripeHandler extends Object,yfiles.input.IReparentStripeHandler{} @@ -41989,25 +42031,25 @@ declare namespace system{ * This implementation adjusts the size of stripe to Math.Max(originalStripeSize, originalParentSize) if reparentPosition * is an {@link yfiles.input.StripeReparentPolicy#ADD_CHILD} operation *

    - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.IStripe} stripe The stripe that will be reparented. - * @param {yfiles.graph.IStripe} newParent The potential new parent. - * @param {number} index The index where the stripe should be inserted. - * @param {yfiles.input.StripeReparentPolicy} reparentPosition Where to place the stripe as a result of the gesture that triggered the reparent operation. - * @param {number} originalStripeSize The original size of stripe - * @param {number} originalParentSize The original size of newParent + * @param context The context that provides information about the user input. + * @param stripe The stripe that will be reparented. + * @param newParent The potential new parent. + * @param index The index where the stripe should be inserted. + * @param reparentPosition Where to place the stripe as a result of the gesture that triggered the reparent operation. + * @param originalStripeSize The original size of stripe + * @param originalParentSize The original size of newParent * @protected */ adjustSize(context:yfiles.input.IInputModeContext,stripe:yfiles.graph.IStripe,newParent:yfiles.graph.IStripe,reparentPosition:yfiles.input.StripeReparentPolicy,index:number,originalStripeSize:number,originalParentSize:number):void; /** * Checks the constraints imposed by {@link yfiles.input.ReparentStripeHandler#maxRowLevel} or {@link yfiles.input.ReparentStripeHandler#maxColumnLevel} for a valid gesture. - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.IStripe} stripe The stripe that will be reparented. - * @param {yfiles.graph.IStripe} newParent The potential new parent. - * @param {number} index The index where the stripe would be {@link yfiles.input.ReparentStripeHandler#reparent reparented} - * @param {yfiles.input.StripeReparentPolicy} reparentPosition Where to place the stripe as a result of the gesture that would be used for the {@link yfiles.input.ReparentStripeHandler#reparent } + * @param context The context that provides information about the user input. + * @param stripe The stripe that will be reparented. + * @param newParent The potential new parent. + * @param index The index where the stripe would be {@link #reparent reparented} + * @param reparentPosition Where to place the stripe as a result of the gesture that would be used for the {@link #reparent } * operation. - * @returns {boolean} true iff the resulting nesting depth is smaller than {@link yfiles.input.ReparentStripeHandler#maxRowLevel} or {@link yfiles.input.ReparentStripeHandler#maxColumnLevel}, or if the nesting depth would not increase by the operation. + * @returns true iff the resulting nesting depth is smaller than {@link #maxRowLevel} or {@link #maxColumnLevel}, or if the nesting depth would not increase by the operation. */ isValidParent(context:yfiles.input.IInputModeContext,stripe:yfiles.graph.IStripe,newParent:yfiles.graph.IStripe,index:number,reparentPosition:yfiles.input.StripeReparentPolicy):boolean; /** @@ -42016,18 +42058,18 @@ declare namespace system{ * This implementation adjusts the size of the moved and/or the target stripe by calling {@link yfiles.input.ReparentStripeHandler#adjustSize} * . *

    - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.IStripe} stripe The stripe that will be reparented. - * @param {yfiles.graph.IStripe} newParent The potential new parent. - * @param {number} index The index where the stripe should be inserted. - * @param {yfiles.input.StripeReparentPolicy} reparentPosition Where to place the stripe as a result of the gesture that triggered the reparent operation. + * @param context The context that provides information about the user input. + * @param stripe The stripe that will be reparented. + * @param newParent The potential new parent. + * @param index The index where the stripe should be inserted. + * @param reparentPosition Where to place the stripe as a result of the gesture that triggered the reparent operation. */ reparent(context:yfiles.input.IInputModeContext,stripe:yfiles.graph.IStripe,newParent:yfiles.graph.IStripe,index:number,reparentPosition:yfiles.input.StripeReparentPolicy):void; /** * Determines whether the user may detach the given stripe from its current parent in order to reparent it. - * @param {yfiles.input.IInputModeContext} context The context that provides information about the user input. - * @param {yfiles.graph.IStripe} stripe The stripe that is about to be detached from its current parent. - * @returns {boolean} This implementation returns always true. + * @param context The context that provides information about the user input. + * @param stripe The stripe that is about to be detached from its current parent. + * @returns This implementation returns always true. */ shouldReparent(context:yfiles.input.IInputModeContext,stripe:yfiles.graph.IStripe):boolean; /** @@ -42057,7 +42099,7 @@ declare namespace system{ *

    * This implementation delegates most work to an instance of {@link yfiles.input.ReparentStripePositionHandler} *

    - * @class yfiles.input.ReparentStripeInputMode + * @class * @extends {yfiles.input.MoveInputMode} */ export interface ReparentStripeInputMode extends yfiles.input.MoveInputMode{} @@ -42071,7 +42113,7 @@ declare namespace system{ * A dragged {@link yfiles.graph.IStripe} is optionally visualized during the drag operation. *

    * @see yfiles.input.StripeDropInputMode#startDrag - * @class yfiles.input.StripeDropInputMode + * @class * @extends {yfiles.input.ItemDropInputMode.} */ export interface StripeDropInputMode extends yfiles.input.ItemDropInputMode{} @@ -42081,9 +42123,8 @@ declare namespace system{ *

    * You might want to adjust the {@link yfiles.input.StripeDropInputMode#draggedItem} getter, too. *

    - * @param {string} expectedFormat This is a format that is used in {@link yfiles.input.StripeDropInputMode#startDrag}. + * @param expectedFormat This is a format that is used in {@link #startDrag}. * @protected - * @constructor */ constructor(expectedFormat:string); /** @@ -42092,12 +42133,11 @@ declare namespace system{ * This instance fires events only if the format of the data of the drag operation is the full name of the {@link yfiles.graph.IStripe} * type. Such a drag operation can be started for example with {@link yfiles.input.StripeDropInputMode#startDrag}. *

    - * @constructor */ constructor(); /** * Create a preview version of the table that is temporarily used to show the dragged stripe. - * @returns {yfiles.graph.ITable} + * @returns * @protected */ createPreviewTable():yfiles.graph.ITable; @@ -42106,9 +42146,9 @@ declare namespace system{ *

    * This method is called by the {@link yfiles.input.ItemDropInputMode.#itemCreator} that is set as default on this class. *

    - * @param {yfiles.graph.IStripe} newParent The parent for which to create the stripe. - * @param {yfiles.input.IInputModeContext} context The context for which the stripe should be created. - * @returns {yfiles.graph.IStripe} a newly created stripe. + * @param newParent The parent for which to create the stripe. + * @param context The context for which the stripe should be created. + * @returns a newly created stripe. * @protected */ createStripe(context:yfiles.input.IInputModeContext,newParent:yfiles.graph.IStripe):yfiles.graph.IStripe; @@ -42118,15 +42158,15 @@ declare namespace system{ * In this implementation the mouse location is used as center of the table. Can be overridden in child class to implement * a different layout. *

    - * @param {yfiles.geometry.Point} location Current mouse position - * @param {yfiles.geometry.Size} size Size of the table - * @returns {yfiles.geometry.Rect} a {@link yfiles.geometry.Rect} with the given size and the mouse location as center. + * @param location Current mouse position + * @param size Size of the table + * @returns a {@link } with the given size and the mouse location as center. * @protected */ getPreviewTableLayout(location:yfiles.geometry.Point,size:yfiles.geometry.Size):yfiles.geometry.Rect; /** * Called whenever a new stripe is created - * @param {yfiles.collections.ItemEventArgs.} evt + * @param evt * @protected */ onStripeCreated(evt:yfiles.collections.ItemEventArgs):void; @@ -42146,10 +42186,10 @@ declare namespace system{ *
  • yfiles-cursor-dragdrop-all
  • *
  • yfiles-cursor-dragdrop-no-drop
  • * - * @param {HTMLElement} dragSource The source of the drag operation. - * @param {yfiles.graph.IStripe} stripe The stripe to drag. - * @param {yfiles.view.DragDropEffects} [dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. - * @param {boolean} [useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. + * @param dragSource The source of the drag operation. + * @param stripe The stripe to drag. + * @param [dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. + * @param [useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. * @see yfiles.view.DragSource#startDrag * @see yfiles.view.DragDropItem * @static @@ -42172,10 +42212,10 @@ declare namespace system{ *
  • yfiles-cursor-dragdrop-no-drop
  • * * @param {Object} options The parameters to pass. - * @param {HTMLElement} options.dragSource The source of the drag operation. - * @param {yfiles.graph.IStripe} options.stripe The stripe to drag. - * @param {yfiles.view.DragDropEffects} [options.dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. - * @param {boolean} [options.useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. + * @param options.dragSource The source of the drag operation. + * @param options.stripe The stripe to drag. + * @param [options.dragDropEffects=yfiles.view.DragDropEffects.ALL] The allowed drag drop effects. + * @param [options.useCssCursors=true] Whether to adjust the classes of elements being hovered over during the drag. The default is true. * @see yfiles.view.DragSource#startDrag * @see yfiles.view.DragDropItem * @static @@ -42192,13 +42232,13 @@ declare namespace system{ draggedItem:yfiles.graph.IStripe; /** * Adds the given listener for the StripeCreated event that occurs when a new stripe gets created by this input mode. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.StripeDropInputMode#removeStripeCreatedListener */ addStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the StripeCreated event that occurs when a new stripe gets created by this input mode. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.StripeDropInputMode#addStripeCreatedListener */ removeStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; @@ -42211,21 +42251,20 @@ declare namespace system{ * This class is used by default by both {@link yfiles.input.ReparentStripeInputMode} and {@link yfiles.input.StripeDropInputMode} to * perform the actual reparenting and insertion. *

    - * @class yfiles.input.ReparentStripePositionHandler + * @class * @implements {yfiles.input.IPositionHandler} */ export interface ReparentStripePositionHandler extends Object,yfiles.input.IPositionHandler{} export class ReparentStripePositionHandler { /** * Creates a new instance of this position handler which moves movedStripe - * @param {yfiles.graph.IStripe} movedStripe - * @constructor + * @param movedStripe */ constructor(movedStripe:yfiles.graph.IStripe); /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation + * @param context + * @param originalLocation */ cancelDrag(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point):void; /** @@ -42234,8 +42273,8 @@ declare namespace system{ * The default implementation uses the return value of {@link yfiles.input.IStripeInputVisualizationHelper#getVisualCreator} with * type {@link yfiles.input.StripeVisualizationType#DRAG_SOURCE}. *

    - * @param {yfiles.input.IInputModeContext} context The current input mode context - * @returns {yfiles.view.ICanvasObject} A canvas object that is used to visualize the target region. + * @param context The current input mode context + * @returns A canvas object that is used to visualize the target region. * @see yfiles.input.ReparentStripePositionHandler#updateSourceVisualization * @protected */ @@ -42246,9 +42285,9 @@ declare namespace system{ * The default implementation uses the return value of {@link yfiles.input.IStripeInputVisualizationHelper#getVisualCreator} with * type {@link yfiles.input.StripeVisualizationType#DROP_TARGET}. *

    - * @param {yfiles.input.IInputModeContext} context The current input mode context - * @param {yfiles.graph.IStripe} stripe The stripe for which the visualization should be created. - * @returns {yfiles.view.ICanvasObject} A canvas object that is used to visualize the target region. + * @param context The current input mode context + * @param stripe The stripe for which the visualization should be created. + * @returns A canvas object that is used to visualize the target region. * @see yfiles.input.ReparentStripePositionHandler#updateTargetVisualization * @protected */ @@ -42258,50 +42297,50 @@ declare namespace system{ *

    * The target region has already been determined by {@link yfiles.input.ReparentStripePositionHandler#getTargetSubregion} *

    - * @param {yfiles.input.IInputModeContext} context The current input mode context - * @param {yfiles.geometry.IPoint} location The current drag location - * @param {yfiles.graph.IStripe} sourceStripe The stripe that is moved - * @param {yfiles.input.StripeSubregion} targetSubregion The stripe subregion for the target. - * @param {yfiles.geometry.Rect} targetBounds The target bounds - * @returns {yfiles.input.StripeReparentPolicy} A {@link yfiles.input.StripeReparentPolicy} that specifies the operation to perform. + * @param context The current input mode context + * @param location The current drag location + * @param sourceStripe The stripe that is moved + * @param targetSubregion The stripe subregion for the target. + * @param targetBounds The target bounds + * @returns A {@link } that specifies the operation to perform. * @protected */ determineGesture(context:yfiles.input.IInputModeContext,location:yfiles.geometry.IPoint,sourceStripe:yfiles.graph.IStripe,targetSubregion:yfiles.input.StripeSubregion,targetBounds:yfiles.geometry.Rect):yfiles.input.StripeReparentPolicy; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ dragFinished(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * Finds the target stripe subregion at location and its associated owner node. - * @param {yfiles.geometry.Point} location The hit location. - * @returns {yfiles.input.StripeSubregion} A {@link yfiles.input.StripeSubregion} that lies at location, or null if no such region could be found. + * @param location The hit location. + * @returns A {@link } that lies at location, or null if no such region could be found. * @protected */ getTargetSubregion(location:yfiles.geometry.Point):yfiles.input.StripeSubregion; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} originalLocation - * @param {yfiles.geometry.Point} newLocation + * @param context + * @param originalLocation + * @param newLocation */ handleMove(context:yfiles.input.IInputModeContext,originalLocation:yfiles.geometry.Point,newLocation:yfiles.geometry.Point):void; /** * - * @param {yfiles.input.IInputModeContext} context + * @param context */ initializeDrag(context:yfiles.input.IInputModeContext):void; /** * Called whenever a change in the oldTable hierarchy occurs through this position handler - * @param {yfiles.graph.StripeEventArgs} evt + * @param evt * @protected */ onStripeChanged(evt:yfiles.graph.StripeEventArgs):void; /** * - * @param {yfiles.geometry.Point} location + * @param location */ setPosition(location:yfiles.geometry.Point):void; /** @@ -42309,11 +42348,11 @@ declare namespace system{ *

    * The default does not change targetVisualization. *

    - * @param {yfiles.input.IInputModeContext} context The current input mode context. - * @param {yfiles.view.ICanvasObject} targetVisualization The canvas object for the target visualization - * @param {yfiles.graph.IStripe} targetStripe The target for the reparent gesture - * @param {yfiles.input.StripeReparentPolicy} reparentPosition Where to place the stripe after reparenting. - * @returns {yfiles.view.ICanvasObject} + * @param context The current input mode context. + * @param targetVisualization The canvas object for the target visualization + * @param targetStripe The target for the reparent gesture + * @param reparentPosition Where to place the stripe after reparenting. + * @returns * @protected */ updateSourceVisualization(context:yfiles.input.IInputModeContext,targetVisualization:yfiles.view.ICanvasObject,targetStripe:yfiles.graph.IStripe,reparentPosition:yfiles.input.StripeReparentPolicy):yfiles.view.ICanvasObject; @@ -42323,22 +42362,22 @@ declare namespace system{ * The default implementation only hides targetVisualization iff reparentPosition is * {@link yfiles.input.StripeReparentPolicy#INVALID}. *

    - * @param {yfiles.input.IInputModeContext} context The current input mode context. - * @param {yfiles.view.ICanvasObject} targetVisualization The canvas object for the target visualization. - * @param {yfiles.graph.IStripe} targetStripe The target for the reparent gesture. - * @param {yfiles.input.StripeReparentPolicy} reparentPosition The mode the describes the results of the reparent gesture. - * @param {yfiles.geometry.Rect} targetBounds The current visualization bounds that have been computed with - * {@link yfiles.input.ReparentStripePositionHandler#updateTargetVisualizationBounds} - * @returns {yfiles.view.ICanvasObject} + * @param context The current input mode context. + * @param targetVisualization The canvas object for the target visualization. + * @param targetStripe The target for the reparent gesture. + * @param reparentPosition The mode the describes the results of the reparent gesture. + * @param targetBounds The current visualization bounds that have been computed with + * {@link #updateTargetVisualizationBounds} + * @returns * @protected */ updateTargetVisualization(context:yfiles.input.IInputModeContext,targetVisualization:yfiles.view.ICanvasObject,targetStripe:yfiles.graph.IStripe,reparentPosition:yfiles.input.StripeReparentPolicy,targetBounds:yfiles.geometry.Rect):yfiles.view.ICanvasObject; /** * Updates the visualization bounds for the target visualization depending on the provided values. - * @param {yfiles.geometry.Rect} originalTargetBounds The target bounds prior to this method call. - * @param {yfiles.input.StripeReparentPolicy} reparentPosition Where to place the stripe after the reparenting operations according to the reparent gesture. - * @param {yfiles.graph.IStripe} targetStripe The target stripe which has been determined by the input mode. - * @returns {yfiles.geometry.Rect} Updated bounds for the target visualization. + * @param originalTargetBounds The target bounds prior to this method call. + * @param reparentPosition Where to place the stripe after the reparenting operations according to the reparent gesture. + * @param targetStripe The target stripe which has been determined by the input mode. + * @returns Updated bounds for the target visualization. * @protected */ updateTargetVisualizationBounds(originalTargetBounds:yfiles.geometry.Rect,reparentPosition:yfiles.input.StripeReparentPolicy,targetStripe:yfiles.graph.IStripe):yfiles.geometry.Rect; @@ -42360,13 +42399,13 @@ declare namespace system{ inputModeContext:yfiles.input.IInputModeContext; /** * Adds the given listener for the StripeChanged event that occurs when a stripe state is changed by this input mode. - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.ReparentStripePositionHandler#removeStripeChangedListener */ addStripeChangedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; /** * Removes the given listener for the StripeChanged event that occurs when a stripe state is changed by this input mode. - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.ReparentStripePositionHandler#addStripeChangedListener */ removeStripeChangedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; @@ -42386,14 +42425,13 @@ declare namespace system{ *

    * In addition, the {@link yfiles.input.TableEditorInputMode#stripeSelection stripe selection} is optionally synchronized with the {@link yfiles.input.GraphInputMode#graphSelection}. *

    - * @class yfiles.input.TableEditorInputMode + * @class * @extends {yfiles.input.MultiplexingInputMode} */ export interface TableEditorInputMode extends yfiles.input.MultiplexingInputMode{} export class TableEditorInputMode { /** * Default constructor. - * @constructor */ constructor(); /** @@ -42410,8 +42448,8 @@ declare namespace system{ * event is handled or the owner has an {@link yfiles.input.IEditLabelHelper} requests editing an existing label instead of * creating a new one. In this case, this method will edit that label instead of adding a new one. *

    - * @param {yfiles.graph.ILabelOwner} owner The item. - * @returns {Promise.} A future of the label that will be notified of the newly created label or a null if the creation was canceled. + * @param owner The item. + * @returns A future of the label that will be notified of the newly created label or a null if the creation was canceled. */ addLabel(owner:yfiles.graph.ILabelOwner):Promise; /** @@ -42421,13 +42459,13 @@ declare namespace system{ clearSelection():void; /** * Factory method that creates the {@link yfiles.input.TableEditorInputMode#keyboardInputMode} instance. - * @returns {yfiles.input.ClickInputMode} + * @returns * @protected */ createClickInputMode():yfiles.input.ClickInputMode; /** * Factory method that creates the {@link yfiles.input.TableEditorInputMode#keyboardInputMode} instance. - * @returns {yfiles.input.KeyboardInputMode} + * @returns * @protected */ createKeyboardInputMode():yfiles.input.KeyboardInputMode; @@ -42445,8 +42483,8 @@ declare namespace system{ * event is handled or the stripe has an {@link yfiles.input.IEditLabelHelper} requests editing an existing label instead of * creating a new one. In both cases, this method will do nothing and neither adds a new label nor edits an existing one. *

    - * @param {yfiles.graph.IStripe} stripe The item to create a new label for. - * @returns {Promise.} A future of the label that will be notified of the newly created label or a null if the creation was canceled. + * @param stripe The item to create a new label for. + * @returns A future of the label that will be notified of the newly created label or a null if the creation was canceled. */ createLabel(stripe:yfiles.graph.IStripe):Promise; /** @@ -42454,25 +42492,25 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.TableEditorInputMode#reparentStripeHandler} property. *

    - * @returns {yfiles.input.IReparentStripeHandler} a new instance of {@link yfiles.input.IReparentStripeHandler} + * @returns a new instance of {@link } * @protected */ createReparentStripeHandler():yfiles.input.IReparentStripeHandler; /** * Factory method that creates the {@link yfiles.input.TableEditorInputMode#reparentStripeInputMode} lazily the first time the property is accessed. - * @returns {yfiles.input.ReparentStripeInputMode} A plain new instance of the {@link yfiles.input.ReparentStripeInputMode} type, which is initially {@link yfiles.input.MoveInputMode#enabled enabled}. + * @returns A plain new instance of the {@link } type, which is initially {@link #enabled enabled}. * @protected */ createReparentStripeInputMode():yfiles.input.ReparentStripeInputMode; /** * Factory method that creates the {@link yfiles.input.TableEditorInputMode#resizeStripeInputMode} lazily the first time the property is accessed. - * @returns {yfiles.input.ResizeStripeInputMode} A plain new instance of the {@link yfiles.input.ResizeStripeInputMode} type, which is initially {@link yfiles.input.ResizeStripeInputMode#enabled enabled}. + * @returns A plain new instance of the {@link } type, which is initially {@link #enabled enabled}. * @protected */ createResizeStripeInputMode():yfiles.input.ResizeStripeInputMode; /** * Factory method that creates the {@link yfiles.input.TableEditorInputMode#stripeDropInputMode} lazily the first time the property is accessed. - * @returns {yfiles.input.StripeDropInputMode} A plain new instance of the {@link yfiles.input.StripeDropInputMode} type, which is initially {@link yfiles.input.DropInputMode#enabled disabled}. + * @returns A plain new instance of the {@link } type, which is initially {@link #enabled disabled}. * @protected */ createStripeDropInputMode():yfiles.input.StripeDropInputMode; @@ -42481,7 +42519,7 @@ declare namespace system{ *

    * By default, the {@link yfiles.view.IStripeSelection#allowMixedSelection} property is false. *

    - * @returns {yfiles.view.IStripeSelection} A new {@link yfiles.view.IStripeSelection} instance. + * @returns A new {@link } instance. * @protected */ createStripeSelection():yfiles.view.IStripeSelection; @@ -42490,7 +42528,7 @@ declare namespace system{ *

    * This method will be called upon first access to the {@link yfiles.input.TableEditorInputMode#textEditorInputMode} property. *

    - * @returns {yfiles.input.TextEditorInputMode} a new instance of {@link yfiles.input.TextEditorInputMode} + * @returns a new instance of {@link } * @protected */ createTextEditorInputMode():yfiles.input.TextEditorInputMode; @@ -42508,7 +42546,7 @@ declare namespace system{ deleteSelection():void; /** * Deletes a single stripe - * @param {yfiles.graph.IStripe} stripe The stripe to delete. + * @param stripe The stripe to delete. */ deleteStripe(stripe:yfiles.graph.IStripe):void; /** @@ -42526,27 +42564,27 @@ declare namespace system{ * {@link yfiles.input.LabelEditingEventArgs#textEditorInputModeConfigurator} property on the {@link yfiles.input.LabelEditingEventArgs}. Thus editing a label via this method cannot be prevented by event * handlers or {@link yfiles.input.IEditLabelHelper}s. *

    - * @param {yfiles.graph.ILabel} label The label to edit. - * @returns {Promise.} + * @param label The label to edit. + * @returns * @see yfiles.input.TableEditorInputMode#onLabelTextEdited */ editLabel(label:yfiles.graph.ILabel):Promise; /** * Used as a callback to find the items underneath a certain point. - * @param {yfiles.geometry.Point} location The location to test. - * @param {yfiles.graph.StripeTypes} stripeTypes An enumeration value of {@link yfiles.graph.StripeTypes} to specify the stripe type. - * @param {yfiles.input.StripeSubregionTypes} subregionTypes An enumeration value of {@link yfiles.input.StripeSubregionTypes} to further restrict the stripe region. - * @param {function(yfiles.input.StripeSubregion): boolean} [filter=null] Additional predicate to further restrict the hit test results. - * @returns {yfiles.input.StripeSubregion} The stripe subregions that have been found for the location or null. + * @param location The location to test. + * @param stripeTypes An enumeration value of {@link } to specify the stripe type. + * @param subregionTypes An enumeration value of {@link } to further restrict the stripe region. + * @param [filter=null] Additional predicate to further restrict the hit test results. + * @returns The stripe subregions that have been found for the location or null. */ findStripe(location:yfiles.geometry.Point,stripeTypes:yfiles.graph.StripeTypes,subregionTypes:yfiles.input.StripeSubregionTypes,filter?:(obj:yfiles.input.StripeSubregion)=>boolean):yfiles.input.StripeSubregion; /** * Used as a callback to find the items underneath a certain point. - * @param {yfiles.geometry.Point} location The location to test. - * @param {yfiles.graph.StripeTypes} stripeTypes An enumeration value of {@link yfiles.graph.StripeTypes} to specify the stripe type. - * @param {yfiles.input.StripeSubregionTypes} subregionTypes An enumeration value of {@link yfiles.input.StripeSubregionTypes} to further restrict the stripe region. - * @param {function(yfiles.input.StripeSubregion): boolean} [filter=null] Additional predicate to further restrict the hit test results. - * @returns {yfiles.collections.IEnumerable.} The stripe subregions that have been found for the location. + * @param location The location to test. + * @param stripeTypes An enumeration value of {@link } to specify the stripe type. + * @param subregionTypes An enumeration value of {@link } to further restrict the stripe region. + * @param [filter=null] Additional predicate to further restrict the hit test results. + * @returns The stripe subregions that have been found for the location. */ findStripes(location:yfiles.geometry.Point,stripeTypes:yfiles.graph.StripeTypes,subregionTypes:yfiles.input.StripeSubregionTypes,filter?:(obj:yfiles.input.StripeSubregion)=>boolean):yfiles.collections.IEnumerable; /** @@ -42556,10 +42594,10 @@ declare namespace system{ * created with an initial size and otherwise the default settings of the table where owner belongs to. If size is entered * as 0, the owners default size is used. *

    - * @param {yfiles.graph.IStripe} owner The parent of the new stripe. - * @param {number} index The index where to insert the new stripe. - * @param {number} [size=null] The initial size of the stripe - * @returns {yfiles.graph.IStripe} A new stripe at the given index. + * @param owner The parent of the new stripe. + * @param index The index where to insert the new stripe. + * @param [size=null] The initial size of the stripe + * @returns A new stripe at the given index. */ insertChild(owner:yfiles.graph.IStripe,index:number,size?:number):yfiles.graph.IStripe; /** @@ -42567,48 +42605,48 @@ declare namespace system{ *

    * This method determines the label owner to add to and delegates to {@link yfiles.input.TableEditorInputMode#createLabel}. *

    - * @returns {boolean} + * @returns * @protected */ onAddLabel():boolean; /** * Called when the {@link yfiles.input.TableEditorInputMode#clickInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.ClickInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.ClickInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onClickInputModeChanged(oldMode:yfiles.input.ClickInputMode,newMode:yfiles.input.ClickInputMode):void; /** * Callback that gets triggered once {@link yfiles.input.TableEditorInputMode#clickInputMode} triggers the {@link yfiles.input.ClickInputMode#addClickedListener Clicked} * event. - * @param {Object} sender - * @param {yfiles.input.ClickEventArgs} evt + * @param sender + * @param evt * @protected */ onClickInputModeClicked(sender:Object,evt:yfiles.input.ClickEventArgs):void; /** * Callback that gets triggered once {@link yfiles.input.TableEditorInputMode#clickInputMode} triggers the {@link yfiles.input.ClickInputMode#addDoubleClickedListener DoubleClicked} * event. - * @param {Object} sender - * @param {yfiles.input.ClickEventArgs} evt + * @param sender + * @param evt * @protected */ onClickInputModeDoubleClicked(sender:Object,evt:yfiles.input.ClickEventArgs):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addDeletedItemListener DeletedItem} event. - * @param {yfiles.collections.ItemEventArgs.} evt The instance containing the event data. + * @param evt The instance containing the event data. * @protected */ onDeletedItem(evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addDeletedSelectionListener DeletedSelection} event. - * @param {yfiles.input.SelectionEventArgs.} evt The {@link yfiles.input.SelectionEventArgs.} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onDeletedSelection(evt:yfiles.input.SelectionEventArgs):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addDeletingSelectionListener DeletingSelection} event. - * @param {yfiles.input.SelectionEventArgs.} evt The {@link yfiles.input.SelectionEventArgs.} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onDeletingSelection(evt:yfiles.input.SelectionEventArgs):void; @@ -42618,20 +42656,20 @@ declare namespace system{ * This method determines the label to edit and delegates to either {@link yfiles.input.TableEditorInputMode#editLabel} or {@link yfiles.input.TableEditorInputMode#createLabel} * if no label could be found. *

    - * @returns {boolean} + * @returns * @protected */ onEditLabel():boolean; /** * Called when the {@link yfiles.input.TableEditorInputMode#keyboardInputMode} changed. - * @param {yfiles.input.KeyboardInputMode} oldMode The old {@link yfiles.input.TableEditorInputMode#keyboardInputMode}. - * @param {yfiles.input.KeyboardInputMode} newMode The new {@link yfiles.input.TableEditorInputMode#keyboardInputMode}. + * @param oldMode The old {@link #keyboardInputMode}. + * @param newMode The new {@link #keyboardInputMode}. * @protected */ onKeyboardInputModeChanged(oldMode:yfiles.input.KeyboardInputMode,newMode:yfiles.input.KeyboardInputMode):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addLabelAddedListener LabelAdded} event. - * @param {yfiles.graph.LabelEventArgs} evt The {@link yfiles.collections.ItemEventArgs.} instance that contains the {@link yfiles.graph.ILabel} that has been added. + * @param evt The {@link } instance that contains the {@link } that has been added. * @protected */ onLabelAdded(evt:yfiles.graph.LabelEventArgs):void; @@ -42640,7 +42678,7 @@ declare namespace system{ *

    * Invoking the event handlers stops once one event marks the args as handled. *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The event arguments. + * @param evt The event arguments. * @protected */ onLabelAdding(evt:yfiles.input.LabelEditingEventArgs):void; @@ -42649,13 +42687,13 @@ declare namespace system{ *

    * Invoking the event handlers stops once one event marks the args as handled. *

    - * @param {yfiles.input.LabelEditingEventArgs} evt The event arguments. + * @param evt The event arguments. * @protected */ onLabelEditing(evt:yfiles.input.LabelEditingEventArgs):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addLabelTextChangedListener LabelTextChanged} event. - * @param {yfiles.collections.ItemEventArgs.} evt The {@link yfiles.collections.ItemEventArgs.} instance that contains the {@link yfiles.graph.ILabel} that has changed the text. + * @param evt The {@link } instance that contains the {@link } that has changed the text. * @protected */ onLabelTextChanged(evt:yfiles.collections.ItemEventArgs):void; @@ -42664,63 +42702,63 @@ declare namespace system{ *

    * This method {@link yfiles.input.TableEditorInputMode#addValidateLabelTextListener validates the label text} and if successful sets the label text. *

    - * @param {yfiles.graph.ILabel} label The label that was edited. - * @param {string} text The new text. + * @param label The label that was edited. + * @param text The new text. * @protected */ onLabelTextEdited(label:yfiles.graph.ILabel,text:string):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addLabelTextEditingCanceledListener LabelTextEditingCanceled} * event. - * @param {yfiles.graph.LabelEventArgs} evt The {@link yfiles.graph.LabelEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onLabelTextEditingCanceled(evt:yfiles.graph.LabelEventArgs):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addLabelTextEditingStartedListener LabelTextEditingStarted} * event. - * @param {yfiles.graph.LabelEventArgs} evt The {@link yfiles.graph.LabelEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onLabelTextEditingStarted(evt:yfiles.graph.LabelEventArgs):void; /** * Called when the {@link yfiles.input.TableEditorInputMode#reparentStripeHandler} property value changes and after initialization of the field. - * @param {yfiles.input.IReparentStripeHandler} oldHandler the old value, which may be null the first time - * @param {yfiles.input.IReparentStripeHandler} newHandler the new value + * @param oldHandler the old value, which may be null the first time + * @param newHandler the new value * @protected */ onReparentStripeHandlerChanged(oldHandler:yfiles.input.IReparentStripeHandler,newHandler:yfiles.input.IReparentStripeHandler):void; /** * Called when the {@link yfiles.input.TableEditorInputMode#reparentStripeInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.ReparentStripeInputMode} oldHandler the old value, which may be null the first time - * @param {yfiles.input.ReparentStripeInputMode} newHandler the new value + * @param oldHandler the old value, which may be null the first time + * @param newHandler the new value * @protected */ onReparentStripeInputModeChanged(oldHandler:yfiles.input.ReparentStripeInputMode,newHandler:yfiles.input.ReparentStripeInputMode):void; /** * Called when the {@link yfiles.input.TableEditorInputMode#resizeStripeInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.ResizeStripeInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.ResizeStripeInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onResizeStripeInputModeChanged(oldMode:yfiles.input.ResizeStripeInputMode,newMode:yfiles.input.ResizeStripeInputMode):void; /** * Called when the {@link yfiles.input.TableEditorInputMode#stripeDropInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.StripeDropInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.StripeDropInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onStripeDropInputModeChanged(oldMode:yfiles.input.StripeDropInputMode,newMode:yfiles.input.StripeDropInputMode):void; /** * Called when the {@link yfiles.input.TableEditorInputMode#textEditorInputMode} property value changes and after initialization of the field. - * @param {yfiles.input.TextEditorInputMode} oldMode the old value, which may be null the first time - * @param {yfiles.input.TextEditorInputMode} newMode the new value + * @param oldMode the old value, which may be null the first time + * @param newMode the new value * @protected */ onTextEditorInputModeChanged(oldMode:yfiles.input.TextEditorInputMode,newMode:yfiles.input.TextEditorInputMode):void; /** * Raises the {@link yfiles.input.TableEditorInputMode#addValidateLabelTextListener ValidateLabelText} event. - * @param {yfiles.input.LabelTextValidatingEventArgs} evt The {@link yfiles.input.LabelTextValidatingEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onValidateLabelText(evt:yfiles.input.LabelTextValidatingEventArgs):void; @@ -42739,8 +42777,8 @@ declare namespace system{ * This is overridden if the item has a {@link yfiles.input.IEditLabelHelper} that returns false for its {@link yfiles.input.IEditLabelHelper#onLabelAdding} * method. *

    - * @param {yfiles.graph.IModelItem} item The item to query - * @returns {boolean} true iff a label may be added + * @param item The item to query + * @returns true iff a label may be added * @protected */ shouldAddLabel(item:yfiles.graph.IModelItem):boolean; @@ -42751,8 +42789,8 @@ declare namespace system{ * This implementation deletes an item if it is of one of the {@link yfiles.input.TableEditorInputMode#deletableItems} type and if it is not the last stripe of a given type in the * table (e.g. the only row or the only column). *

    - * @param {yfiles.graph.IStripe} stripe The item. - * @returns {boolean} Whether to delete that item. + * @param stripe The item. + * @returns Whether to delete that item. * @protected */ shouldDelete(stripe:yfiles.graph.IStripe):boolean; @@ -42760,8 +42798,8 @@ declare namespace system{ * Callback method that determines whether the label or the labels of the provided item should be edited in response to a * command or explicit method call to {@link yfiles.input.TableEditorInputMode#editLabel} or * {@link yfiles.input.TableEditorInputMode#createLabel}. - * @param {yfiles.graph.IModelItem} item The item. - * @returns {boolean} Whether to edit the label or the labels for that item. + * @param item The item. + * @returns Whether to edit the label or the labels for that item. * @protected */ shouldEditLabel(item:yfiles.graph.IModelItem):boolean; @@ -42771,8 +42809,8 @@ declare namespace system{ *

    * This implementation unconditionally returns true, subclasses may override this method to adjust the behavior. *

    - * @param {yfiles.input.ICommand} command The command to install. - * @returns {boolean} Whether to install this command. + * @param command The command to install. + * @returns Whether to install this command. * @protected */ shouldInstallCommand(command:yfiles.input.ICommand):boolean; @@ -42880,7 +42918,7 @@ declare namespace system{ * forbidden entirely, or the properties of the added label can be changed, by setting the appropriate properties on the * {@link yfiles.input.LabelEditingEventArgs}. It is even possible to forbid adding a label, but edit an existing one instead. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#removeLabelAddingListener */ addLabelAddingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; @@ -42891,7 +42929,7 @@ declare namespace system{ * forbidden entirely, or the properties of the added label can be changed, by setting the appropriate properties on the * {@link yfiles.input.LabelEditingEventArgs}. It is even possible to forbid adding a label, but edit an existing one instead. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#addLabelAddingListener */ removeLabelAddingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; @@ -42902,7 +42940,7 @@ declare namespace system{ * entirely, or redirected to a different label, even on a different owner. In case editing existing labels is unwanted, * event handlers can also specify that instead of editing a label, a new one should be added. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#removeLabelEditingListener */ addLabelEditingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; @@ -42913,35 +42951,35 @@ declare namespace system{ * entirely, or redirected to a different label, even on a different owner. In case editing existing labels is unwanted, * event handlers can also specify that instead of editing a label, a new one should be added. *

    - * @param {function(Object, yfiles.input.LabelEditingEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#addLabelEditingListener */ removeLabelEditingListener(listener:(sender:Object,evt:yfiles.input.LabelEditingEventArgs)=>void):void; /** * Adds the given listener for the LabelAdded event that occurs when this mode has triggered the addition of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.TableEditorInputMode#createLabel}. - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#removeLabelAddedListener */ addLabelAddedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * Removes the given listener for the LabelAdded event that occurs when this mode has triggered the addition of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.TableEditorInputMode#createLabel}. - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#addLabelAddedListener */ removeLabelAddedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * Adds the given listener for the LabelTextChanged event that occurs when this mode has triggered the edit of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.TableEditorInputMode#editLabel}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#removeLabelTextChangedListener */ addLabelTextChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the LabelTextChanged event that occurs when this mode has triggered the edit of an * {@link yfiles.graph.ILabel}, for instance, in response to {@link yfiles.input.TableEditorInputMode#editLabel}. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#addLabelTextChangedListener */ removeLabelTextChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; @@ -42951,7 +42989,7 @@ declare namespace system{ *

    * This allows to customize the actual label editing process further. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#onValidateLabelText * @see yfiles.input.TableEditorInputMode#removeLabelTextEditingStartedListener */ @@ -42962,7 +43000,7 @@ declare namespace system{ *

    * This allows to customize the actual label editing process further. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#onValidateLabelText * @see yfiles.input.TableEditorInputMode#addLabelTextEditingStartedListener */ @@ -42973,7 +43011,7 @@ declare namespace system{ *

    * This allows to unconfigure temporary customizations for the actual label editing process. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#onValidateLabelText * @see yfiles.input.TableEditorInputMode#removeLabelTextEditingCanceledListener */ @@ -42984,7 +43022,7 @@ declare namespace system{ *

    * This allows to unconfigure temporary customizations for the actual label editing process. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#onValidateLabelText * @see yfiles.input.TableEditorInputMode#addLabelTextEditingCanceledListener */ @@ -42995,7 +43033,7 @@ declare namespace system{ *

    * Note that the {@link yfiles.input.LabelTextValidatingEventArgs#label} may only a dummy instance, i.e. not bound to a live stripe instance. *

    - * @param {function(Object, yfiles.input.LabelTextValidatingEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#onValidateLabelText * @see yfiles.input.TableEditorInputMode#removeValidateLabelTextListener */ @@ -43006,7 +43044,7 @@ declare namespace system{ *

    * Note that the {@link yfiles.input.LabelTextValidatingEventArgs#label} may only a dummy instance, i.e. not bound to a live stripe instance. *

    - * @param {function(Object, yfiles.input.LabelTextValidatingEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#onValidateLabelText * @see yfiles.input.TableEditorInputMode#addValidateLabelTextListener */ @@ -43045,7 +43083,7 @@ declare namespace system{ * method starts its work and will be followed by any number of {@link yfiles.input.TableEditorInputMode#addDeletedItemListener DeletedItem} * events and finalized by a {@link yfiles.input.TableEditorInputMode#addDeletedSelectionListener DeletedSelection} * event. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#deleteSelection * @see yfiles.input.TableEditorInputMode#removeDeletingSelectionListener */ @@ -43055,28 +43093,28 @@ declare namespace system{ * method starts its work and will be followed by any number of {@link yfiles.input.TableEditorInputMode#addDeletedItemListener DeletedItem} * events and finalized by a {@link yfiles.input.TableEditorInputMode#addDeletedSelectionListener DeletedSelection} * event. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#deleteSelection * @see yfiles.input.TableEditorInputMode#addDeletingSelectionListener */ removeDeletingSelectionListener(listener:(sender:Object,evt:yfiles.input.SelectionEventArgs)=>void):void; /** * Adds the given listener for the DeletedItem event that occurs when an item has been deleted interactively by this mode. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#removeDeletedItemListener */ addDeletedItemListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the DeletedItem event that occurs when an item has been deleted interactively by this * mode. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#addDeletedItemListener */ removeDeletedItemListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Adds the given listener for the DeletedSelection event that occurs just before the {@link yfiles.input.TableEditorInputMode#deleteSelection} * method has deleted the selection after all selected items have been removed. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.input.TableEditorInputMode#deleteSelection * @see yfiles.input.TableEditorInputMode#removeDeletedSelectionListener */ @@ -43084,7 +43122,7 @@ declare namespace system{ /** * Removes the given listener for the DeletedSelection event that occurs just before the {@link yfiles.input.TableEditorInputMode#deleteSelection} * method has deleted the selection after all selected items have been removed. - * @param {function(Object, yfiles.input.SelectionEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.input.TableEditorInputMode#deleteSelection * @see yfiles.input.TableEditorInputMode#addDeletedSelectionListener */ @@ -43156,7 +43194,7 @@ declare namespace system{ *

    * This is independent to {@link yfiles.input.TableEditorInputMode#clickSelectableItems}. By default, only clicks on a stripe {@link yfiles.input.StripeSubregionTypes#HEADER} are handled. *

    - * @default 6 + * @default yfiles.input.StripeSubregionTypes.HEADER * @type {yfiles.input.StripeSubregionTypes} */ clickSelectableRegions:yfiles.input.StripeSubregionTypes; @@ -43196,7 +43234,7 @@ declare namespace system{ * The constraints are applied in addition to any constraints imposed by the {@link yfiles.input.IReshapeHandler} which is wrapped * by this implementation. *

    - * @class yfiles.input.TableReshapeHandler + * @class * @implements {yfiles.input.IReshapeHandler} */ export interface TableReshapeHandler extends Object,yfiles.input.IReshapeHandler{} @@ -43210,35 +43248,34 @@ declare namespace system{ *

    * table should be associated to tableNode *

    - * @param {yfiles.input.IReshapeHandler} coreHandler The handler that is wrapped by this instance. - * @param {yfiles.graph.INode} tableNode The node for which this handler is used - * @param {yfiles.graph.ITable} table The table that is used for additional constraints. - * @constructor + * @param coreHandler The handler that is wrapped by this instance. + * @param tableNode The node for which this handler is used + * @param table The table that is used for additional constraints. */ constructor(coreHandler:yfiles.input.IReshapeHandler,tableNode:yfiles.graph.INode,table:yfiles.graph.ITable); /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} originalBounds + * @param context + * @param originalBounds */ cancelReshape(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect):void; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} originalBounds - * @param {yfiles.geometry.Rect} newBounds + * @param context + * @param originalBounds + * @param newBounds */ handleReshape(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; /** * - * @param {yfiles.input.IInputModeContext} context + * @param context */ initializeReshape(context:yfiles.input.IInputModeContext):void; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} originalBounds - * @param {yfiles.geometry.Rect} newBounds + * @param context + * @param originalBounds + * @param newBounds */ reshapeFinished(context:yfiles.input.IInputModeContext,originalBounds:yfiles.geometry.Rect,newBounds:yfiles.geometry.Rect):void; /** @@ -43298,7 +43335,7 @@ declare namespace system{ * stripe to the bottom or the right. This is typically the bottom border for an {@link yfiles.graph.IRow} instance and the right * border for an {@link yfiles.graph.IColumn}. *

    - * @returns {yfiles.input.IHitTestable} a {@link yfiles.input.IHitTestable} that should report hits on the far border region of the stripe. + * @returns a {@link } that should report hits on the far border region of the stripe. * @see yfiles.input.StripeSubregion * @see yfiles.input.StripeSubregionTypes#FAR_BORDER * @abstract @@ -43311,7 +43348,7 @@ declare namespace system{ * Typically, this is the area occupied by the left insets for an {@link yfiles.graph.IRow} instance and by the top insets for an {@link yfiles.graph.IColumn} * instance. *

    - * @returns {yfiles.input.IHitTestable} a {@link yfiles.input.IHitTestable} that should report hits on the header region of the stripe. + * @returns a {@link } that should report hits on the header region of the stripe. * @see yfiles.input.StripeSubregion * @see yfiles.input.StripeSubregionTypes#HEADER * @abstract @@ -43324,7 +43361,7 @@ declare namespace system{ * stripe to the top or the left. This is typically the upper border for an {@link yfiles.graph.IRow} instance and the left border * for an {@link yfiles.graph.IColumn}. *

    - * @returns {yfiles.input.IHitTestable} a {@link yfiles.input.IHitTestable} that should report hits on the near border region of the stripe. + * @returns a {@link } that should report hits on the near border region of the stripe. * @see yfiles.input.StripeSubregion * @see yfiles.input.StripeSubregionTypes#NEAR_BORDER * @abstract @@ -43332,7 +43369,7 @@ declare namespace system{ getNearBorderHitTestable():yfiles.input.IHitTestable; /** * Return a {@link yfiles.input.IHitTestable} that should report hits on the whole stripe. - * @returns {yfiles.input.IHitTestable} a {@link yfiles.input.IHitTestable} that should report hits on the whole stripe. + * @returns a {@link } that should report hits on the whole stripe. * @see yfiles.input.StripeSubregion * @see yfiles.input.StripeSubregionTypes#STRIPE * @abstract @@ -43345,7 +43382,7 @@ declare namespace system{ * Typically, this is the area occupied by the right insets for an {@link yfiles.graph.IRow} instance and by the bottom insets for * an {@link yfiles.graph.IColumn} instance. *

    - * @returns {yfiles.input.IHitTestable} a {@link yfiles.input.IHitTestable} that should report hits on the header region of the stripe. + * @returns a {@link } that should report hits on the header region of the stripe. * @see yfiles.input.StripeSubregion * @see yfiles.input.StripeSubregionTypes#HEADER * @abstract @@ -43425,16 +43462,15 @@ declare namespace system{ *

    * Instances of this class are returned by the default {@link yfiles.input.StripeHitTester} implementation. *

    - * @class yfiles.input.StripeSubregion + * @class * @final */ export interface StripeSubregion extends Object{} export class StripeSubregion { /** * Create a new instance that describes the specific subregion. - * @param {yfiles.input.StripeSubregionTypes} subregionType The specific subregion - * @param {yfiles.graph.IStripe} stripe The stripe - * @constructor + * @param subregionType The specific subregion + * @param stripe The stripe */ constructor(subregionType:yfiles.input.StripeSubregionTypes,stripe:yfiles.graph.IStripe); /** @@ -43462,22 +43498,21 @@ declare namespace system{ * predefined template keys in the application resources. If you want to override the visualization for a specific stripe * only, assign a different {@link yfiles.view.IVisualTemplate} to the instance that is already present in the stripe's lookup. *

    - * @class yfiles.input.DefaultStripeInputVisualizationHelper + * @class * @implements {yfiles.input.IStripeInputVisualizationHelper} */ export interface DefaultStripeInputVisualizationHelper extends Object,yfiles.input.IStripeInputVisualizationHelper{} export class DefaultStripeInputVisualizationHelper { /** * Default constructor - * @param {yfiles.graph.IStripe} stripe The stripe for which the visualizations are intended - * @constructor + * @param stripe The stripe for which the visualizations are intended */ constructor(stripe:yfiles.graph.IStripe); /** * Provide a {@link yfiles.view.IVisualTemplate} that is used to visualize type. - * @param {yfiles.input.IInputModeContext} context The input mode context. Allows you to access the {@link yfiles.view.CanvasComponent} to retrieve the resources. - * @param {yfiles.input.StripeVisualizationType} type The visualization type - * @returns {yfiles.view.IVisualTemplate} A {@link yfiles.view.IVisualTemplate} that is used to visualize type. + * @param context The input mode context. Allows you to access the {@link } to retrieve the resources. + * @param type The visualization type + * @returns A {@link } that is used to visualize type. * @protected */ findTemplate(context:yfiles.input.IInputModeContext,type:yfiles.input.StripeVisualizationType):yfiles.view.IVisualTemplate; @@ -43486,10 +43521,10 @@ declare namespace system{ *

    * This implementation uses {@link yfiles.view.IVisualTemplate}s for the actual visualization. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context which provides further information. - * @param {yfiles.graph.INode} tableNode The node where the stripe's owner is currently bound to. - * @param {yfiles.input.StripeVisualizationType} type The actual visualization type - * @returns {yfiles.view.IVisualCreator} A {@link yfiles.view.IVisualCreator} instance that renders a representation for the current operation. + * @param context The input mode context which provides further information. + * @param tableNode The node where the stripe's owner is currently bound to. + * @param type The actual visualization type + * @returns A {@link } instance that renders a representation for the current operation. * @see yfiles.input.DefaultStripeInputVisualizationHelper#resizeStripeTemplate */ getVisualCreator(context:yfiles.input.IInputModeContext,tableNode:yfiles.graph.INode,type:yfiles.input.StripeVisualizationType):yfiles.view.IVisualCreator; @@ -43506,7 +43541,7 @@ declare namespace system{ */ static RESIZE_STRIPE_TEMPLATE_KEY:string; /** - * Data template that is used to visualize the current stripe resize operation. + * {@link yfiles.view.IVisualTemplate} that is used to visualize the current stripe resize operation. *

    * This template is used for {@link yfiles.input.StripeVisualizationType#RESIZE} *

    @@ -43527,7 +43562,7 @@ declare namespace system{ */ static SELECTED_STRIPE_TEMPLATE_KEY:string; /** - * Data template that is used to visualize the current stripe resize operation. + * {@link yfiles.view.IVisualTemplate} that is used to visualize the current stripe resize operation. *

    * This template is used for {@link yfiles.input.StripeVisualizationType#SELECTION} *

    @@ -43548,7 +43583,7 @@ declare namespace system{ */ static DRAG_SOURCE_STRIPE_TEMPLATE_KEY:string; /** - * Data template that is used to visualize the current source of a stripe reparent operation. + * {@link yfiles.view.IVisualTemplate} that is used to visualize the current source of a stripe reparent operation. *

    * This template is used for {@link yfiles.input.StripeVisualizationType#DRAG_SOURCE} *

    @@ -43569,7 +43604,7 @@ declare namespace system{ */ static DROP_TARGET_STRIPE_TEMPLATE_KEY:string; /** - * Data template that is used to visualize the current target of a stripe reparent operation. + * {@link yfiles.view.IVisualTemplate} that is used to visualize the current target of a stripe reparent operation. *

    * This template is used for {@link yfiles.input.StripeVisualizationType#DROP_TARGET} *

    @@ -43611,10 +43646,10 @@ declare namespace system{ export interface IStripeInputVisualizationHelper extends Object{ /** * Return an {@link yfiles.view.IVisualCreator} that is used to visualize the input operation specified by type. - * @param {yfiles.input.IInputModeContext} context The input mode context which provides further information. - * @param {yfiles.graph.INode} tableNode The node where the stripe's owner is currently bound to. - * @param {yfiles.input.StripeVisualizationType} type The actual visualization type - * @returns {yfiles.view.IVisualCreator} A {@link yfiles.view.IVisualCreator} instance that renders a representation for the current operation. + * @param context The input mode context which provides further information. + * @param tableNode The node where the stripe's owner is currently bound to. + * @param type The actual visualization type + * @returns A {@link } instance that renders a representation for the current operation. * @abstract */ getVisualCreator(context:yfiles.input.IInputModeContext,tableNode:yfiles.graph.INode,type:yfiles.input.StripeVisualizationType):yfiles.view.IVisualCreator; @@ -43625,17 +43660,16 @@ declare namespace system{ }; /** * Support class that allows to iterate over hits on table elements or subregions of table elements. - * @class yfiles.input.StripeHitTester + * @class */ export interface StripeHitTester extends Object{} export class StripeHitTester { /** * Create a new instance for a specific table instance that use the order specified by tableRenderingOrder to determine the * order of the hit test results. - * @param {yfiles.graph.ITable} table The table to use - * @param {yfiles.styles.TableRenderingOrder} tableRenderingOrder The hit test order. This determines the order in which stripes are returned by - * {@link yfiles.input.StripeHitTester#enumerateHits} - * @constructor + * @param table The table to use + * @param tableRenderingOrder The hit test order. This determines the order in which stripes are returned by + * {@link #enumerateHits} */ constructor(table:yfiles.graph.ITable,tableRenderingOrder:yfiles.styles.TableRenderingOrder); /** @@ -43653,10 +43687,10 @@ declare namespace system{ * returned before a hit on the whole stripe. * * - * @param {yfiles.input.IInputModeContext} context The input mode context to use. - * @param {yfiles.geometry.Point} location The location in absolute coordinates. - * @param {yfiles.graph.INode} node The node where the table instance is currently bound to. - * @returns {yfiles.collections.IEnumerable.} A collection of {@link yfiles.input.StripeSubregion}s at location + * @param context The input mode context to use. + * @param location The location in absolute coordinates. + * @param node The node where the table instance is currently bound to. + * @returns A collection of {@link }s at location */ enumerateHits(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,node:yfiles.graph.INode):yfiles.collections.IEnumerable; /** @@ -43690,1101 +43724,10 @@ declare namespace system{ $class:yfiles.lang.Class; isInstance(o:Object):boolean; }; - /** - * A group of {@link yfiles.graph.IUndoUnit}s that are undone/redone as a single unit. - *

    - * Clients can use this class to build an {@link yfiles.graph.IUndoUnit} that groups together multiple {@link yfiles.graph.IUndoUnit}s. The - * {@link yfiles.graph.IUndoUnit}s added to this unit are undone/redone in the order in which they were added. This implementation - * will try to {@link yfiles.graph.IUndoUnit#tryMergeUnit merge} or {@link yfiles.graph.IUndoUnit#tryReplaceUnit replace} units that are {@link yfiles.graph.CompositeUndoUnit#add added}. - *

    - * @class yfiles.graph.CompositeUndoUnit - * @implements {yfiles.graph.IUndoUnit} - */ - export interface CompositeUndoUnit extends Object,yfiles.graph.IUndoUnit{} - export class CompositeUndoUnit { - /** - * Creates a new instance using the provided names. - * @param {string} [undoName=null] - * @param {string} [redoName=null] - * @constructor - */ - constructor(undoName?:string,redoName?:string); - /** - * Creates a new instance using the provided names. - * @param {Object} options The parameters to pass. - * @param {string} [options.undoName=null] - * @param {string} [options.redoName=null] - * @constructor - */ - constructor(options:{undoName?:string,redoName?:string}); - /** - * Adds a new {@link yfiles.graph.IUndoUnit} to the queue. - * @param {yfiles.graph.IUndoUnit} unit The unit of work to add. - */ - add(unit:yfiles.graph.IUndoUnit):void; - /** - * Determines whether a call to {@link yfiles.graph.CompositeUndoUnit#redo} can be made. - * @returns {boolean} - */ - canRedo():boolean; - /** - * Determines whether a call to {@link yfiles.graph.CompositeUndoUnit#undo} can be made. - * @returns {boolean} - */ - canUndo():boolean; - /** - * Clears the internal collection of units. - */ - clear():void; - /** - * Disposes this unit and all of its contents. - *

    - * This unit cannot be used anymore after this has been invoked. - *

    - */ - dispose():void; - /** - * Redoes the next {@link yfiles.graph.IUndoUnit}. - * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. - * @throws {yfiles.lang.Exception} If {@link yfiles.graph.CompositeUndoUnit#canRedo} would yield false. - */ - redo():void; - /** - * Tries to remove a given unit from this compound unit. - *

    - * This method will throw an exception if this unit has been undone or an undo or redo is in progress or this unit has - * already been disposed. This method will not automatically {@link yfiles.graph.IUndoUnit#dispose Dispose} removed units. - *

    - * @param {yfiles.graph.IUndoUnit} unit The unit to remove. - * @returns {boolean} true iff the unit has been removed from this instance. - */ - removeUnit(unit:yfiles.graph.IUndoUnit):boolean; - /** - * Undoes the next {@link yfiles.graph.IUndoUnit}. - * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. - * @throws {yfiles.lang.Exception} If {@link yfiles.graph.CompositeUndoUnit#canUndo} would yield false. - */ - undo():void; - /** - * Yields the number of units that are contained in this compound unit. - * @type {number} - */ - count:number; - /** - * Returns the current redo name. - * @type {string} - */ - redoName:string; - /** - * Returns the current redo name. - * @type {string} - */ - undoName:string; - /** - * Determines whether this instance has been {@link yfiles.graph.CompositeUndoUnit#dispose disposed.} - *

    - * An instance that has been disposed cannot be {@link yfiles.graph.CompositeUndoUnit#undo undone} or {@link yfiles.graph.CompositeUndoUnit#redo redone}. - *

    - * @type {boolean} - */ - disposed:boolean; - static $class:yfiles.lang.Class; - } - /** - * This interface is a means to bracket several - * {@link yfiles.graph.IUndoUnit}s, that is a collection of units that are treated as one (e.g. they are always undone or redone as - * a single unit). - *

    - * {@link yfiles.graph.ICompoundEdit}s have two states: active and settled. Whenever an {@link yfiles.graph.ICompoundEdit} is retrieved from the {@link yfiles.graph.UndoEngine} - * or the graph instance, it automatically is active. While an edit is in the active state, it gathers {@link yfiles.graph.IUndoUnit}s until - * the {@link yfiles.graph.ICompoundEdit#commit} or {@link yfiles.graph.ICompoundEdit#cancel} methods are called. Calling the {@link yfiles.graph.ICompoundEdit#commit} - * method commits all gathered {@link yfiles.graph.IUndoUnit}s to the {@link yfiles.graph.UndoEngine}, while canceling will {@link yfiles.graph.IUndoUnit#dispose dispose} them. - * Calling either method will put the edit in the settled state. In this state, the edit does not gather units anymore and is not - * reusable. - *

    - *

    - * {@link yfiles.graph.ICompoundEdit}s can also be nested, in this case the changes of the inner edit are not committed directly to - * the {@link yfiles.graph.UndoEngine} but to the outer edit. Only when the outer edit is committed, the units are committed to the - * {@link yfiles.graph.UndoEngine}. - *

    - * @see yfiles.graph.UndoEngine - * @see yfiles.graph.IUndoUnit - * @interface - */ - export interface ICompoundEdit extends Object{ - /** - * This method cancels the compound editing process. - *

    - * The recorded {@link yfiles.graph.IUndoUnit}s are {@link yfiles.graph.IUndoUnit#dispose disposed} and the edit is not usable anymore. - *

    - * @abstract - */ - cancel():void; - /** - * This method commits the compound editing process. - *

    - * The {@link yfiles.graph.IUndoUnit}s are enqueued into the corresponding {@link yfiles.graph.UndoEngine} instance and the edit is not - * usable anymore. - *

    - * @abstract - */ - commit():void; - } - var ICompoundEdit:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * The basic lookup interface that allows for retrieving implementations for different aspects of the current instance. - *

    - * The lookup idiom allows for dynamically providing, adding, changing, and removing implementation aspects of an instance - * that would not be possible to achieve using ordinary object oriented methods. - *

    - * @interface - */ - export interface ILookup extends Object{ - /** - * Returns an instance that implements the given type or null. - *

    - * Typically, this method will be called in order to obtain a different view or aspect of the current instance. This is - * quite similar to casting or using a super type or interface of this instance, but is not limited to inheritance or - * compile time constraints. An instance implementing this method is not required to return non-null implementations for - * the types, nor does it have to return the same instance any time. Also it depends on the type and context whether the - * instance returned stays up to date or needs to be reobtained for subsequent use. - *

    - * @param {yfiles.lang.Class} type the type for which an instance shall be returned - * @returns {Object} an instance that is assignable to type or null - * @abstract - */ - lookup(type:yfiles.lang.Class):Object; - } - var ILookup:{ - /** - * Creates a lookup implementation that wraps an existing ILookup instance using an additional lookup implementations. - *

    - * For each lookup call that the additionalLookup would yield null, the basicLookup will be queried instead. - *

    - * @param {yfiles.graph.ILookup} basicLookup the fallback lookup implementation - * @param {yfiles.graph.ILookup} additionalLookup the lookup that has precedence over the fallback - * @returns {yfiles.graph.ILookup} an implementation that decorates the first with the latter - * @static - */ - createCascadingLookup?(basicLookup:yfiles.graph.ILookup,additionalLookup:yfiles.graph.ILookup):yfiles.graph.ILookup; - /** - * Creates a dynamic lookup implementation that for each type that the given subject can be assigned to yields that - * subject. - * @param {Object} subject the subject to yield if it is assignable to the type in the lookup query - * @returns {yfiles.graph.ILookup} an instance that will either yield subject or null - * @static - */ - createDynamicLookup?(subject:Object):yfiles.graph.ILookup; - /** - * Creates a simple mutable {@link yfiles.graph.ILookup} implementation that is backed by an {@link yfiles.collections.IMap.}. - *

    - * The {@link yfiles.graph.ILookup#lookup lookup} method uses the specified type as key when delegating to the backingDictionary. - *

    - * @param {yfiles.collections.Map.} backingDictionary The backing {@link yfiles.collections.Map.} that is used in the {@link yfiles.graph.ILookup#lookup lookup} calls. - * @returns {yfiles.graph.ILookup} A simple mutable {@link yfiles.graph.ILookup} implementation that is backed by a dictionary. - * @static - */ - createMapLookup?(backingDictionary:yfiles.collections.Map):yfiles.graph.ILookup; - /** - * Creates a simple lookup implementation that yields subject if type is queried. - * @param {Object} subject the subject to yield - * @param {yfiles.lang.Class} type the type that should yield the subject - * @returns {yfiles.graph.ILookup} an ILookup implementation - * @static - */ - createSingleLookup?(subject:Object,type:yfiles.lang.Class):yfiles.graph.ILookup; - /** - * An ILookup instance that always returns null. - * @const - * @static - * @type {yfiles.graph.ILookup} - */ - EMPTY?:yfiles.graph.ILookup; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * An interface for instances that can provide a {@link yfiles.graph.ILookup} capabilities for a given object. - *

    - * This is useful in the case where lookup functionality is not intrinsic to an item or where an existing object cannot - * implement the interface or when an item needs to be decorated externally with new lookup functionality. - *

    - * @see yfiles.graph.ILookup - * @interface - */ - export interface IContextLookup extends Object{ - /** - * Tries to create or retrieve an implementation of the given type for a given item. - * @param {Object} item the item to lookup a type for - * @param {yfiles.lang.Class} type the type to look up - * @returns {Object} an implementation or null - * @see yfiles.graph.ILookup#lookup - * @abstract - */ - contextLookup(item:Object,type:yfiles.lang.Class):Object; - } - var IContextLookup:{ - /** - * An ILookupContext instance that always returns null. - * @const - * @static - * @type {yfiles.graph.IContextLookup} - */ - EMPTY_CONTEXT_LOOKUP?:yfiles.graph.IContextLookup; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * An interface for instances that can be used to chain lookup operations. - *

    - * Implementations will perform the lookup in the {@link yfiles.graph.IContextLookup#contextLookup} method and delegate to the next - * implementation in the chain if they cannot satisfy the request. - *

    - * @interface - * @implements {yfiles.graph.IContextLookup} - */ - export interface IContextLookupChainLink extends Object,yfiles.graph.IContextLookup{ - /** - * This method is called by the framework to register the fallback lookup implementation that should be used during a call - * to {@link yfiles.graph.IContextLookup#contextLookup}. - *

    - * If the implementation cannot satisfy the query, it will use the provided context as a fallback. Note that - * implementations can also use the results returned by the next lookup and decorate it appropriately. - *

    - * @param {yfiles.graph.IContextLookup} next The context to use as a fallback. - * @abstract - */ - setNext(next:yfiles.graph.IContextLookup):void; - } - var IContextLookupChainLink:{ - /** - * Factory method for a lookup chain element that simply adds an entry to a lookup chain. - * @param {yfiles.lang.Class} type The type to add to the lookup. - * @param {Object} instance The instance to return if the type is being looked up. - * @returns {yfiles.graph.IContextLookupChainLink} An instance that can be used in a lookup chain. - * @static - */ - addingLookupChainLink?(type:yfiles.lang.Class,instance:Object):yfiles.graph.IContextLookupChainLink; - /** - * Factory method for a lookup chain element that adds an {@link yfiles.graph.ILookup} layer to a lookup chain. - *

    - * If the lookup returns null, the call will be propagated to the chain. - *

    - * @param {yfiles.graph.ILookup} lookup The lookup to use. - * @returns {yfiles.graph.IContextLookupChainLink} An instance that can be used in a lookup chain. - * @static - */ - addingLookupChainLink?(lookup:yfiles.graph.ILookup):yfiles.graph.IContextLookupChainLink; - /** - * Factory method for a lookup chain element that adds an dynamic instance to a lookup chain. - *

    - * The instance returned will check whether instance is of the queried type and will then return the instance. - *

    - * @param {Object} instance The instance to query the type from dynamically. - * @returns {yfiles.graph.IContextLookupChainLink} An instance that can be used in a lookup chain. - * @static - */ - addingLookupChainLink?(instance:Object):yfiles.graph.IContextLookupChainLink; - /** - * Creates a lookup chain link that is backed by the given callback. - *

    - * If the callback returns null the request is passed to the chain. - *

    - * @param {function(Object, yfiles.lang.Class): Object} callback The callback to invoke. - * @returns {yfiles.graph.IContextLookupChainLink} The implementation of the link that uses the callback. - * @static - */ - createContextLookupChainLink?(callback:(subject:Object,type:yfiles.lang.Class)=>Object):yfiles.graph.IContextLookupChainLink; - /** - * Factory method for a lookup chain element that uses a function of type function(TContext) to yield a TResult for a specific TContext. - *

    - * If the resulting link is {@link yfiles.graph.IContextLookup#contextLookup queried} for TResult and the context is of type TContext, the factory method will be queried and the result - * will be returned. Otherwise the {@link yfiles.graph.IContextLookupChainLink#setNext next} chain link will be delegated the request to. - *

    - * Type parameter TContext. - * Type parameter TResult. - * @param {function(TContext): TResult} factory The factory delegate to use that yields the result for a given context. - * @returns {yfiles.graph.IContextLookupChainLink} An instance that can be used in a lookup chain. - * @template TContext,TResult - * @static - */ - factoryLookupChainLink?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,factory:(arg:TContext)=>TResult):yfiles.graph.IContextLookupChainLink; - /** - * Factory method for a lookup chain element that removes the entry from the lookup chain for a given type. - * @param {yfiles.lang.Class} type The type to hide from the lookup. - * @returns {yfiles.graph.IContextLookupChainLink} An instance that can be used in a lookup chain. - * @static - */ - hidingLookupChainLink?(type:yfiles.lang.Class):yfiles.graph.IContextLookupChainLink; - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface that can be used to decorate the lookup result for a set of types. - * @see yfiles.graph.ILookup - * @see yfiles.graph.IContextLookupChainLink - * @interface - */ - export interface ILookupDecorator extends Object{ - /** - * Adds a lookup implementation for a given type using a function of type function(TContext, TResult). - *

    - * This method is closely related to the {@link yfiles.graph.ILookupDecorator#add} method, however it passes the result of the - * remaining chain to the delegate for convenient wrapping of the result. Note that if the implementation does not depend - * on the previous result in order to wrap it, it is better to use that variant, in order to avoid the possibly costly - * evaluation of the remainder of the lookup chain. - *

    - * Type parameter TContext: The type of the context subject. - * Type parameter TResult: The type of the query, which is a base type or the type of the result. - * @param {function(TContext, TResult): TResult} wrapperFactory The factory delegate that will be used to satisfy queries of type TResult - * @param {boolean} [decorateNull=true] Whether to actually decorate null results of remainder of the chain. If this is set to false, the wrapperFactory will - * never be called with null as the second argument but the result of the query for this chain link will be the null - * value. - * @returns {yfiles.graph.IContextLookupChainLink} The {@link yfiles.graph.IContextLookupChainLink} instance as returned by the {@link yfiles.graph.ILookupDecorator#addLookup} call or - * null, if either decorator was null, or it {@link yfiles.graph.ILookupDecorator#canDecorate could not decorate} the TContext type. - * @template TContext,TResult - */ - add?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,wrapperFactory:(arg1:TContext,arg2:TResult)=>TResult,decorateNull?:boolean):yfiles.graph.IContextLookupChainLink; - /** - * Adds a lookup implementation for a given type using a func. - * Type parameter TContext: The type of the context subject. - * Type parameter TResult: The type of the query, which is a base type or the type of the result. - * @param {function(TContext): TResult} factory The factory delegate that will be used to satisfy queries of type TResult. - * @param {boolean} [nullIsFallback=true] Whether to treat null-results of the factory as hints to use the remainder of the chain link or to actually yield the - * value as the final result. - * @returns {yfiles.graph.IContextLookupChainLink} The {@link yfiles.graph.IContextLookupChainLink} instance as returned by the {@link yfiles.graph.ILookupDecorator#addLookup} call or - * null, if either decorator was null, or it {@link yfiles.graph.ILookupDecorator#canDecorate could not decorate} the TContext type. - * @template TContext,TResult - */ - add?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,factory:(arg:TContext)=>TResult,nullIsFallback?:boolean):yfiles.graph.IContextLookupChainLink; - /** - * Add a lookup implementation for a given type that always yields a constant result. - * Type parameter TContext: The type of the context subject. - * Type parameter TResult: The type of the query, which is a base type or the type of the result. - * @param {TResult} result The constant value to yield if the chain is queried for an implementation of type TResult. - * @returns {yfiles.graph.IContextLookupChainLink} The {@link yfiles.graph.IContextLookupChainLink} instance as returned by the {@link yfiles.graph.ILookupDecorator#addLookup} call or - * null, if either decorator was null, or it {@link yfiles.graph.ILookupDecorator#canDecorate could not decorate} the TContext type. - * @template TContext,TResult - */ - addConstant?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,result:TResult):yfiles.graph.IContextLookupChainLink; - /** - * Adds a lookup chain element to the chain of lookups for a given type. - *

    - * The lookup chain is context specific. This method will not generally decorate the lookup of all instances of type t, but - * only those that stand in context of this instance. This method will only succeed if {@link yfiles.graph.ILookupDecorator#canDecorate} - * yields true for t. - *

    - * @param {yfiles.lang.Class} t The type to decorate the lookup. - * @param {yfiles.graph.IContextLookupChainLink} lookup The chain element to add to the lookup of the given type. - * @see yfiles.graph.ILookupDecorator#removeLookup - * @see yfiles.graph.ILookupDecorator#add - * @see yfiles.graph.ILookupDecorator#add - * @see yfiles.graph.ILookupDecorator#addConstant - * @abstract - */ - addLookup(t:yfiles.lang.Class,lookup:yfiles.graph.IContextLookupChainLink):void; - /** - * Determines whether this instance can be used to decorate the lookup for a certain type. - * @param {yfiles.lang.Class} t The type to decorate the lookup for. - * @returns {boolean} - * @abstract - */ - canDecorate(t:yfiles.lang.Class):boolean; - /** - * Removes a previously registered lookup chain element from the chain of lookups for a given type. - * @param {yfiles.lang.Class} t The type to remove the decorator from. - * @param {yfiles.graph.IContextLookupChainLink} lookup The chain element to remove from the lookup of the given type. - * @see yfiles.graph.ILookupDecorator#addLookup - * @abstract - */ - removeLookup(t:yfiles.lang.Class,lookup:yfiles.graph.IContextLookupChainLink):void; - } - var ILookupDecorator:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Interface implemented by items that can be tagged with arbitrary objects. - *

    - * The object held by implementations of this interface is usually a user defined object. Implementations don't depend on - * this tag. They just serve as a storage for the tag that will be used by other parts of the implementation. - *

    - * @interface - */ - export interface ITagOwner extends Object{ - /** - * Gets or sets the tag associated with this instance. - *

    - * The implementation itself does not normally depend on the tag associated with it. It serves as storage for the object - * only. - *

    - * @abstract - * @type {Object} - */ - tag:Object; - } - var ITagOwner:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * An implementation of a chain of {@link yfiles.graph.IContextLookupChainLink}s. - * @class yfiles.graph.LookupChain - * @implements {yfiles.graph.IContextLookup} - * @implements {yfiles.lang.IPropertyObservable} - */ - export interface LookupChain extends Object,yfiles.graph.IContextLookup,yfiles.lang.IPropertyObservable{} - export class LookupChain { - constructor(); - /** - * A convenience method that adds a {@link yfiles.graph.IContextLookupChainLink} to the given chain that is based on a function of - * type function(TContext, TResult). - *

    - * Depending on decorateNull, null results of the underlying chain will be passed to the - * wrapperFactory, or simply yielded as the final result. - *

    - * Type parameter TContext: The type of the context. - * Type parameter TResult: The type of the result. - * @param {function(TContext, TResult): TResult} wrapperFactory The wrapper factory that will be called for queries to TResult to wrap the result of the query to the remainder of the chain. - * @param {boolean} [decorateNull=false] if set to true null return values of the remainder of the chain will be passed to the wrapper factory so that it can - * decorate the null, otherwise null will be yielded as the final result. - * @returns {yfiles.graph.IContextLookupChainLink} The link that has been registered with the chain. - * @template TContext,TResult - */ - add(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,wrapperFactory:(arg1:TContext,arg2:TResult)=>TResult,decorateNull?:boolean):yfiles.graph.IContextLookupChainLink; - /** - * A convenience method that adds a {@link yfiles.graph.IContextLookupChainLink} to the given chain that is based on a function of - * type function(TContext). - *

    - * Depending on nullIsFallback, null return values of the factory will be interpreted as the final result or indicate to - * the implementation that the chain should be queried for the result. - *

    - * Type parameter TContext: The type of the context. - * Type parameter TResult: The type of the result. - * @param {function(TContext): TResult} factory The factory that will be called for queries to TResult. - * @param {boolean} [nullIsFallback=true] If set to true, null return values of the factory method will be interpreted as the final result, otherwise the request - * will propagate down the chain. - * @returns {yfiles.graph.IContextLookupChainLink} The link that has been registered with the chain. - * @template TContext,TResult - */ - add(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,factory:(arg:TContext)=>TResult,nullIsFallback?:boolean):yfiles.graph.IContextLookupChainLink; - /** - * Adds the given link to the end of the chain. - * @param {yfiles.graph.IContextLookupChainLink} lookup The link to add. - * @see yfiles.graph.LookupChain#remove - */ - add(lookup:yfiles.graph.IContextLookupChainLink):void; - /** - * Convenience method that can be used instead of the {@link yfiles.graph.LookupChain#add} method to easily add a lookup - * implementation for a given type that always yields a constant result. - * Type parameter TResult: The type of the query, which is a base type or the type of the result. - * @param {TResult} result The constant value to yield if the chain is queried for an implementation of type TResult. - * @returns {yfiles.graph.IContextLookupChainLink} The {@link yfiles.graph.IContextLookupChainLink} instance that has been added to the chain. - * @template TResult - */ - addConstant(resultType:yfiles.lang.Class,result:TResult):yfiles.graph.IContextLookupChainLink; - /** - * Performs the actual lookup operation. - *

    - * This call will traverse the chain to satisfy the query. - *

    - * @param {Object} item The item to use as the context. - * @param {yfiles.lang.Class} type The type of the query. - * @returns {Object} The result of the query. - */ - contextLookup(item:Object,type:yfiles.lang.Class):Object; - /** - * Can be called by client code to trigger the {@link yfiles.graph.LookupChain#addPropertyChangedListener PropertyChanged} - * event manually. - */ - notifyChange():void; - /** - * Notifies client code that the lookup of this instance might have changed. - * @param {yfiles.lang.PropertyChangedEventArgs} evt The arguments - * @protected - */ - onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; - /** - * Removes the link that has previously been added to this instance from this chain. - * @param {yfiles.graph.IContextLookupChainLink} link The link to remove. - */ - remove(link:yfiles.graph.IContextLookupChainLink):void; - /** - * Adds the given listener for the PropertyChanged event that occurs when the lookup of this instance has changed for some - * or all of the types or items. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. - * @see yfiles.graph.LookupChain#removePropertyChangedListener - */ - addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Removes the given listener for the PropertyChanged event that occurs when the lookup of this instance has changed for - * some or all of the types or items. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. - * @see yfiles.graph.LookupChain#addPropertyChangedListener - */ - removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - static $class:yfiles.lang.Class; - } - /** - * The main class to provide undo and redo functionality. - *

    - * The {@link yfiles.graph.UndoEngine} is in charge of {@link yfiles.graph.UndoEngine#beginCompoundEdit recording}, {@link yfiles.graph.UndoEngine#addUnit managing} and {@link yfiles.graph.UndoEngine#undo executing} single units of work that can be undone - * and redone, represented by the interface {@link yfiles.graph.IUndoUnit}. - *

    - *

    - * These units are managed in a queue-like structure and can be added manually to the queue by calling the {@link yfiles.graph.UndoEngine#addUnit} - * method. - *

    - *

    - * Executing the units is done by client code or commands by calling {@link yfiles.graph.UndoEngine#undo} or - * {@link yfiles.graph.UndoEngine#redo}. The engine automatically manages the queue so that calling these two methdos will - * consistently move the units in the queue. - *

    - *

    - * The {@link yfiles.graph.UndoEngine#beginCompoundEdit} method allows to record units by bracketing serveral changes in an - * {@link yfiles.graph.ICompoundEdit}. Implementations of the {@link yfiles.graph.ICompoundEdit} interface record all subsequent changes - * until it is {@link yfiles.graph.ICompoundEdit#commit committed} and therefore all recorded units are added to the engine. For more information and examples see - * {@link yfiles.graph.ICompoundEdit}. - *

    - *

    - * Depending on the properties {@link yfiles.graph.UndoEngine#mergeUnits} and {@link yfiles.graph.UndoEngine#autoMergeTime}, the engine tries to collapse added {@link yfiles.graph.IUndoUnit}s if possible. This enhances - * the performance and reduces the required memory for undo changes. For example, when a node is moved interactively, - * instead of saving every position that the node had when being dragged the engine will only hold one {@link yfiles.graph.IUndoUnit} - * at the end to undo the entire movement. - *

    - *

    - *
    Customizing Undo/Redo - *

      - *
    • - * In general, to be able to undo or redo certain work client code can implement {@link yfiles.graph.IUndoUnit} or subclass - * {@link yfiles.graph.UndoUnitBase UndoUnitBase}. The client application needs to encapsulate - * changes in this implementation and provide the logic to completely undo and redo these changes. - * Instances of your custom {@link yfiles.graph.IUndoUnit} implementations need to be added to the {@link yfiles.graph.UndoEngine} - * manually via {@link yfiles.graph.UndoEngine#addUnit}. - *
    • - *
    • - * In certain cases it is difficult or not efficient to track and save the changes between certain states, - * and better to save the states themselves and to restore these. For example when there are potentially - * many intermediate steps between two states of interest and it would be complicated - * to produce {@link yfiles.graph.IUndoUnit}s for each intermediate step and merge them in the end. - * In such cases client code should implement {@link yfiles.graph.IMementoSupport} instead. - * See the documentation of {@link yfiles.graph.IMementoSupport} for examples and guidelines on how to implement - * this memento design pattern concept. - *
    • - *
    • - * It is generally not necessary to subclass {@link yfiles.graph.UndoEngine} unless you want to customize the internal - * handling of the units, which is both complicated and prone to errors. In most use cases it is sufficient - * to provide custom {@link yfiles.graph.IUndoUnit}s or {@link yfiles.graph.IMementoSupport}. - *
    • - *
    - *

    - * @see yfiles.graph.IUndoUnit - * @see yfiles.graph.UndoUnitBase - * @see yfiles.graph.IMementoSupport - * @see yfiles.graph.ICompoundEdit - * @class yfiles.graph.UndoEngine - * @implements {yfiles.lang.IPropertyObservable} - */ - export interface UndoEngine extends Object,yfiles.lang.IPropertyObservable{} - export class UndoEngine { - /** - * Initializes a new instance of the {@link yfiles.graph.UndoEngine} class. - * @param {Object} [options=null] The parameters to pass. - * @param {boolean} options.mergeUnits A value that indicates whether or not this instance should try to merge newly added units. - *

    - * This option sets the {@link yfiles.graph.UndoEngine#mergeUnits} property on the created object. - *

    - * @param {yfiles.lang.TimeSpan} options.autoMergeTime The duration during which the engine will try to merge newly added units. - *

    - * This option sets the {@link yfiles.graph.UndoEngine#autoMergeTime} property on the created object. - *

    - * @param {number} options.size The maximum size of the undo queue this instance is managing. - *

    - * This option sets the {@link yfiles.graph.UndoEngine#size} property on the created object. - *

    - * @constructor - */ - constructor(options?:{mergeUnits?:boolean,autoMergeTime?:yfiles.lang.TimeSpan,size?:number}); - /** - * Adds a new {@link yfiles.graph.IUndoUnit} to the queue. - *

    - * This implementation will automatically group multiple units into a single unit if the time since the last add is less - * than {@link yfiles.graph.UndoEngine#autoMergeTime}. - *

    - * @param {yfiles.graph.IUndoUnit} unit The unit of work to add. - */ - addUnit(unit:yfiles.graph.IUndoUnit):void; - /** - * Begins a compound edit that will use the provided name. - *

    - * This will create a new edit that can independently be {@link yfiles.graph.ICompoundEdit#cancel canceled} or {@link yfiles.graph.ICompoundEdit#commit committed}. Note that only if the outer-most instances - * is committed, the corresponding {@link yfiles.graph.IUndoUnit} units will be enqueued into this instance. - *

    - * @param {string} undoName The undo name to use for the edit. - * @param {string} redoName The redo name to use for the edit. - * @returns {yfiles.graph.ICompoundEdit} A compound edit implementation that needs to be {@link yfiles.graph.ICompoundEdit#cancel canceled} or {@link yfiles.graph.ICompoundEdit#commit committed} later. - */ - beginCompoundEdit(undoName:string,redoName:string):yfiles.graph.ICompoundEdit; - /** - * Determines whether a call to {@link yfiles.graph.UndoEngine#redo} can be made. - * @returns {boolean} - */ - canRedo():boolean; - /** - * Determines whether a call to {@link yfiles.graph.UndoEngine#undo} can be made. - * @returns {boolean} - */ - canUndo():boolean; - /** - * Clears the internal queue and {@link yfiles.graph.IUndoUnit#dispose disposes} all units in it. - */ - clear():void; - /** - * Returns a token that can be used to store and compare the state of the undo queue. - *

    - * E.g. an application can retrieve the token once the user has saved his document. Comparing the token returned by this - * instance with another one retrieved at a later point in time enables the application to determine whether the document - * is in the same state. - *

    - * @returns {Object} An object that can be checked against other tokens via the {@link Object#equals} method. - */ - getToken():Object; - /** - * This will trigger the corresponding {@link yfiles.graph.UndoEngine#addPropertyChangedListener PropertyChanged} event. - * @param {string} name The name of the property that changed. - * @protected - */ - onPropertyChanged(name:string):void; - /** - * Redoes the next {@link yfiles.graph.IUndoUnit}. - * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. - * @throws {yfiles.lang.Exception} If {@link yfiles.graph.UndoEngine#canRedo} would yield false. - */ - redo():void; - /** - * Undoes the next {@link yfiles.graph.IUndoUnit}. - * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. - * @throws {yfiles.lang.Exception} If {@link yfiles.graph.UndoEngine#canUndo} would yield false. - */ - undo():void; - /** - * Gets or sets a value that indicates whether or not this instance should try to merge newly added units. - *

    - * If true this instance will try to {@link yfiles.graph.IUndoUnit#tryMergeUnit merge} or {@link yfiles.graph.IUndoUnit#tryReplaceUnit replace} units in the queue. Note that when the {@link yfiles.graph.UndoEngine#autoMergeTime} property is set to {@link yfiles.lang.TimeSpan#ZERO} - * and this property is set to true, the engine will always try to merge incoming units. Otherwise the {@link yfiles.graph.UndoEngine#autoMergeTime} dictates whether - * the engine will try to merge a unit or not. - *

    - * @see yfiles.graph.UndoEngine#autoMergeTime - * @type {boolean} - */ - mergeUnits:boolean; - /** - * Gets or sets the duration during which the engine will try to merge newly added units. - *

    - * If this is set to {@link yfiles.lang.TimeSpan#ZERO}, the engine will try to merge incoming units depending on the {@link yfiles.graph.UndoEngine#mergeUnits} property. - * Otherwise, if the time span between the last added unit and the new unit exceeds the set value, the engine does not try - * to merge the units regardless what the {@link yfiles.graph.UndoEngine#mergeUnits} property is set to. Likewise, if the time span is smaller than the set value, - * the engine will always try to merge units. - *

    - * @type {yfiles.lang.TimeSpan} - */ - autoMergeTime:yfiles.lang.TimeSpan; - /** - * Gets or sets the maximum size of the undo queue this instance is managing. - *

    - * A size of 0 effectively disables this implementation. - *

    - * @type {number} - */ - size:number; - /** - * Returns the {@link yfiles.graph.IUndoUnit#undoName} of the next {@link yfiles.graph.UndoEngine#undo} operation. - * @type {string} - */ - undoName:string; - /** - * Returns the {@link yfiles.graph.IUndoUnit#redoName} of the next {@link yfiles.graph.UndoEngine#redo} operation. - * @type {string} - */ - redoName:string; - /** - * Indicates whether this instance is currently performing an undo operation. - * @type {boolean} - */ - performingUndo:boolean; - /** - * Indicates whether this instance is currently performing a redo operation. - * @type {boolean} - */ - performingRedo:boolean; - /** - * Adds the given listener for the PropertyChanged event that occurs when {@link yfiles.graph.UndoEngine#canUndo}, - * {@link yfiles.graph.UndoEngine#canRedo}, {@link yfiles.graph.UndoEngine#undoName}, or {@link yfiles.graph.UndoEngine#redoName} changed its value. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. - * @see yfiles.graph.UndoEngine#removePropertyChangedListener - */ - addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Removes the given listener for the PropertyChanged event that occurs when {@link yfiles.graph.UndoEngine#canUndo}, - * {@link yfiles.graph.UndoEngine#canRedo}, {@link yfiles.graph.UndoEngine#undoName}, or {@link yfiles.graph.UndoEngine#redoName} changed its value. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. - * @see yfiles.graph.UndoEngine#addPropertyChangedListener - */ - removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Adds the given listener for the UnitUndone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#undo} - * operation of an {@link yfiles.graph.IUndoUnit}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. - * @see yfiles.graph.UndoEngine#removeUnitUndoneListener - */ - addUnitUndoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; - /** - * Removes the given listener for the UnitUndone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#undo} - * operation of an {@link yfiles.graph.IUndoUnit}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. - * @see yfiles.graph.UndoEngine#addUnitUndoneListener - */ - removeUnitUndoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; - /** - * Adds the given listener for the UnitRedone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#redo} - * operation of an {@link yfiles.graph.IUndoUnit}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. - * @see yfiles.graph.UndoEngine#removeUnitRedoneListener - */ - addUnitRedoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; - /** - * Removes the given listener for the UnitRedone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#redo} - * operation of an {@link yfiles.graph.IUndoUnit}. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. - * @see yfiles.graph.UndoEngine#addUnitRedoneListener - */ - removeUnitRedoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; - static $class:yfiles.lang.Class; - } - /** - * Represents a unit of work that can be undone and redone. - *

    - * Clients should use this interface when certain actions, changes or events should be monitored and have undoability - * provided for them. If you simply want to track the state of certain items between two states of interest, you should - * consider using {@link yfiles.graph.IMementoSupport mementos} instead. - *

    - *

    - * The central methods of this interface are {@link yfiles.graph.IUndoUnit#undo} and {@link yfiles.graph.IUndoUnit#redo} which contain the - * logic to undo or redo a unit of work. Keep in mind that undo/redo are sensible operations and should maintain a - * consistent state before and after each operation since they may be executed potentially often one after another. - *

    - *

    - * The requirement for an {@link yfiles.graph.IUndoUnit} is that when a program is in a certain state and a call to {@link yfiles.graph.IUndoUnit#undo} - * is followed by a call to {@link yfiles.graph.IUndoUnit#redo} then the program is in the exact same state as before (the same - * holds true for the other way around). - *

    - *

    - * A default implementation of this interface is the abstract class {@link yfiles.graph.UndoUnitBase} which forces only the - * implementation of the undo/redo logic and defaults the other methods. Clients should primarily extend this class instead - * of implementing the whole interface. - *

    - *

    - * IUndoUnits are managed by the {@link yfiles.graph.UndoEngine}. Custom units can always be added to the engine using the method - * {@link yfiles.graph.UndoEngine#addUnit}. Also consider to use one of the convenience implementations: {@link yfiles.graph.DelegateUndoUnit.} takes delegates for the - * undo/redo operations and {@link yfiles.graph.CompositeUndoUnit} creates a bracketing unit comprising several other units. - *

    - *

    - * Also note that in order to keep a consistent state, methods of objects of this type should not be called by clientcode - * directly but use the {@link yfiles.graph.UndoEngine} instead. - *

    - * @interface - */ - export interface IUndoUnit extends Object{ - /** - * Called by the {@link yfiles.graph.UndoEngine} and client code to let the unit dispose of references aren't needed anymore. - *

    - * When this method is called, the other methods of this interface will not be called anymore by the undo engine. The undo - * engine calls this method on instances that it will not use anymore to enable the instances to release instances and - * memory actively. - *

    - * @abstract - */ - dispose():void; - /** - * Redoes the work that is represented by this unit. - *

    - * Undo/redo are sensible operations and should maintain a consistent state before and after each operation since they may - * be executed potentially often one after another. - *

    - * @see yfiles.graph.IUndoUnit#redoName - * @abstract - */ - redo():void; - /** - * Tries to merge the given unit with this one. - *

    - * This method is called when this unit is the head of an {@link yfiles.graph.UndoEngine}'s or {@link yfiles.graph.CompositeUndoUnit}'s - * queue and a new unit is added. It is meant to try to incorporate the change of the given unit into this and if - * successful return true. This should be the case when the end state of this unit is equal to the start state of the given - * unit. - *

    - *

    - * For example, if this unit is the head of the queue and represents the work from state A to state B and the given unit - * the work from state B to state C, then this method should try to make this unit shift from state A to state C. If this - * is successful, the method is expected to return true. The other unit is then {@link yfiles.graph.IUndoUnit#dispose disposed} by the {@link yfiles.graph.UndoEngine} - * afterwards. - *

    - *

    - * Clients don't necessarily have to implement this method if the unit doesn't happen very often. In fact, the default - * implementation of {@link yfiles.graph.UndoUnitBase#tryMergeUnit} simply returns false. Implementing this method faithfully will - * cause multiple units of work to inseparably appear as one and undoing/redoing it will undo/redo the work of all - * collapsed units. Depending on the situation this may be reasonable, for example when there are potentially a lot of - * changes where not every intermediate step is required to be recorded. In this case implementing this method faithfully - * will greatly improve the performance and reduce the required amount of memory of the undo process. If you want to group - * together multiple units as a single block but still want to be able to separate each step, consider to use a {@link yfiles.graph.CompositeUndoUnit} - * instead. - *

    - * @param {yfiles.graph.IUndoUnit} unit The unit to incorporate that happened after this unit. - * @returns {boolean} Whether the state change of unit has been incorporated into this unit and unit can be disposed of. - * @abstract - */ - tryMergeUnit(unit:yfiles.graph.IUndoUnit):boolean; - /** - * Tries to replace the given unit with this one. - *

    - * This method is called if a newly added unit couldn't be {@link yfiles.graph.IUndoUnit#tryMergeUnit merged} with the head unit of the queue (i.e. returned false). - * Instead of trying to merge a newly added unit, this method tries to replace the given unit (which is the head of the - * queue) with this by incorporating the change of the given unit into this and if successful return true. This should be - * the case when the start state of this unit is equal to the end state of the given unit. - *

    - *

    - * For example, if the given unit represents the work from state A to state B and this unit the work from state B to state - * C, then this method should try to make this unit shift from state A to state C. If this is successful, the method is - * expected to return true. The given unit is then {@link yfiles.graph.IUndoUnit#dispose disposed} by the {@link yfiles.graph.UndoEngine} afterwards and replaced with this - * unit in the queue. - *

    - *

    - * Clients don't necessarily have to implement this method if the unit doesn't happen very often. In fact, the default - * implementation of {@link yfiles.graph.UndoUnitBase#tryReplaceUnit} simply returns false. Implementing this method faithfully - * will cause multiple units of work to inseparably appear as one and undoing/redoing it will undo/redo the work of all - * collapsed units. Depending on the situation this may be reasonable, for example when there are potentially a lot of - * changes where not every intermediate step is required to be recorded. In this case implementing this method faithfully - * will greatly improve the performance and reduce the required amount of memory of the undo process. If you want to group - * together multiple units as a single block but still want to be able to separate each step, consider to use a {@link yfiles.graph.CompositeUndoUnit} - * instead. - *

    - * @param {yfiles.graph.IUndoUnit} unit The unit to incorporate that happened before this unit. - * @returns {boolean} Whether the state change of this unit has been incorporated into the given unit and this can be disposed of. - * @abstract - */ - tryReplaceUnit(unit:yfiles.graph.IUndoUnit):boolean; - /** - * Undoes the work that is represented by this unit. - *

    - * Undo/redo are sensible operations and should maintain a consistent state before and after each operation since they may - * be executed potentially often one after another. - *

    - * @see yfiles.graph.IUndoUnit#undoName - * @abstract - */ - undo():void; - /** - * Returns the name of the undo unit. - *

    - * Depending on the implementation and context this might be a human readable representation of the undo action or a - * symbolic name that needs localization. - *

    - * @abstract - * @type {string} - */ - undoName:string; - /** - * Returns the name of the redo unit. - *

    - * Depending on the implementation and context this might be a human readable representation of the redo action or a - * symbolic name that needs localization. - *

    - * @abstract - * @type {string} - */ - redoName:string; - } - var IUndoUnit:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * This interface provides access to the memento design pattern to provide undoability for arbitrary models. - *

    - * By implementing this interface as well as {@link yfiles.graph.ILookup}, clients can add undoability for changes to their model - * classes. The yFiles undo mechanism uses the return value of {@link yfiles.graph.IMementoSupport#getState} to retrieve a state of - * an item at the beginning of the compound editing process. When the process ends, another state will be retrieved of the - * same item and compared to the original state. If they differ, an {@link yfiles.graph.IUndoUnit} is created that uses the {@link yfiles.graph.IMementoSupport#applyState} - * method to apply either state to the item in case of {@link yfiles.graph.IUndoUnit#undo undo} or {@link yfiles.graph.IUndoUnit#redo redo}. This represents an abstraction to the undo mechanism - * where it is only needed to define "states" of items and hides the more complicated mechanism of creating and inserting - * {@link yfiles.graph.IUndoUnit}s. - *

    - *

    - * The following is an example implementation of an item that is being managed using {@link yfiles.graph.IMementoSupport}: - *

    - *

    - * A collection of items from this type can then be watched using the following code snippet: - *

    - *

    - * Implementing the {@link yfiles.graph.IMementoSupport} interface is quite unrestrained, the type of the state returned by {@link yfiles.graph.IMementoSupport#getState} - * method can by anything as long as the {@link yfiles.graph.IMementoSupport#applyState} and {@link yfiles.graph.IMementoSupport#stateEquals} - * methods can deal with it: - *

    - *

    - * In summary, use this concept when you want to track the state of items during certain operations for undo/redo. This is - * efficient if it's easier to handle an item's state than the changes to the item themselves. If you want to focus on the - * changes or on certain events, you should use custom {@link yfiles.graph.IUndoUnit} implementations instead. - *

    - * @see yfiles.graph.ILookup - * @see yfiles.graph.ICompoundEdit - * @see yfiles.graph.UndoEngine - * @interface - */ - export interface IMementoSupport extends Object{ - /** - * Reapplies a previously queried state object to a given subject. - *

    - * The state object has been created using the {@link yfiles.graph.IMementoSupport#getState} method. - *

    - * @param {Object} subject The subject to modify the state. - * @param {Object} state The state object as returned by {@link yfiles.graph.IMementoSupport#getState} - * @abstract - */ - applyState(subject:Object,state:Object):void; - /** - * Retrieves an object representing the state at the moment this method is called. - *

    - * The returned state may be reapplied later to the subject in the {@link yfiles.graph.IMementoSupport#applyState} method. - *

    - * @param {Object} subject The subject to read the state from - * @returns {Object} An object that describes the current state of subject. - * @abstract - */ - getState(subject:Object):Object; - /** - * Determines whether two state objects are equal. - *

    - * The undo mechanism in yFiles calls this method to determine if the subject has changed and whether an {@link yfiles.graph.IUndoUnit} - * should be created for these changes. If this method returns false, an {@link yfiles.graph.IUndoUnit} is created for the two - * states that can reapply either state (for either undo or redo). If this method returns true the state is considered not - * to have changed and no undo unit will be created. Conservative implementations my simply return false. - *

    - * @param {Object} state1 The first state as obtained from {@link yfiles.graph.IMementoSupport#getState} - * @param {Object} state2 The second state as obtained from {@link yfiles.graph.IMementoSupport#getState} - * @returns {boolean} true if the states are equal; false otherwise. - * @abstract - */ - stateEquals(state1:Object,state2:Object):boolean; - } - var IMementoSupport:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A convenience implementation of the {@link yfiles.graph.IUndoUnit} interface that uses simple delegates for the actual undo and - * redo operations. - * Type parameter T: The type of the single parameter that is passed to the delegate. - * @class yfiles.graph.DelegateUndoUnit. - * @extends {yfiles.graph.UndoUnitBase} - * @template T - * @final - */ - export interface DelegateUndoUnit extends yfiles.graph.UndoUnitBase{} - export class DelegateUndoUnit { - /** - * Creates a new instance using the provided name and a undo and redo handler as well as the parameters to pass to the - * delegates. - * @param {string} undoName The name of the undo. - * @param {function(T): void} undo The undo handler delegate. - * @param {function(T): void} redo The redo handler delegate. - * @param {T} undoParam The undo parameter to pass to the delegate. - * @param {T} redoParam The redo parameter to pass to the delegate. - * @constructor - */ - constructor(undoName:string,undo:(param:T)=>void,redo:(param:T)=>void,undoParam:T,redoParam:T); - /** - * Creates a new instance using the provided name and a undo/redo handler as well as the parameters to pass to the - * delegates. - * @param {string} undoName The name of the undo. - * @param {function(T): void} undoRedo The undo and redo handler delegate. - * @param {T} undoParam The undo parameter to pass to the delegate. - * @param {T} redoParam The redo parameter to pass to the delegate. - * @constructor - */ - constructor(undoName:string,undoRedo:(param:T)=>void,undoParam:T,redoParam:T); - static $class:yfiles.lang.Class; - } - /** - * An abstract convenience implementation of {@link yfiles.graph.IUndoUnit}. - *

    - * This class defaults most methods required by the {@link yfiles.graph.IUndoUnit} interface. Subclasses only have to implement the - * undo/redo logic. Most notably, {@link yfiles.graph.IUndoUnit#tryMergeUnit} and {@link yfiles.graph.IUndoUnit#tryReplaceUnit} are - * implemented to return - * false. Subclasses are of course allowed to override more methods if clients want to enable additional functionality. - *

    - *

    - * Use this class for simple custom implementations of {@link yfiles.graph.IUndoUnit}. - *

    - * @see yfiles.graph.IUndoUnit - * @see yfiles.graph.UndoEngine - * @class yfiles.graph.UndoUnitBase - * @implements {yfiles.graph.IUndoUnit} - */ - export interface UndoUnitBase extends Object,yfiles.graph.IUndoUnit{} - export class UndoUnitBase { - /** - * Creates a new instance using the given name as undo and redo name. - * @param {string} undoName The undo name. - * @param {string} [redoName=null] The redo name. - * @protected - * @constructor - */ - constructor(undoName:string,redoName?:string); - /** - * - */ - dispose():void; - /** - * - * @abstract - */ - redo():void; - /** - * - * @param {yfiles.graph.IUndoUnit} unit - * @returns {boolean} - */ - tryMergeUnit(unit:yfiles.graph.IUndoUnit):boolean; - /** - * - * @param {yfiles.graph.IUndoUnit} unit - * @returns {boolean} - */ - tryReplaceUnit(unit:yfiles.graph.IUndoUnit):boolean; - /** - * - * @abstract - */ - undo():void; - /** - * - * @type {string} - */ - undoName:string; - /** - * - * @type {string} - */ - redoName:string; - static $class:yfiles.lang.Class; - } /** * An implementation of the {@link yfiles.graph.IPortLocationModel} that can create {@link yfiles.graph.IPortLocationModelParameter}s that * describe the location of ports that are attached to the bends of {@link yfiles.graph.IEdge}s. - * @class yfiles.graph.BendAnchoredPortLocationModel + * @class * @implements {yfiles.graph.IPortLocationModel} * @final */ @@ -44792,41 +43735,41 @@ declare namespace system{ export class BendAnchoredPortLocationModel { /** * Creates a parameter that indicates the location of the bend with index bendIndex starting from the source side. - * @param {number} bendIndex The index of the bend counting from the source side. - * @returns {yfiles.graph.IPortLocationModelParameter} A parameter that anchors the port at a bend. + * @param bendIndex The index of the bend counting from the source side. + * @returns A parameter that anchors the port at a bend. */ createFromSource(bendIndex:number):yfiles.graph.IPortLocationModelParameter; /** * Creates a parameter that indicates the location of the bend with index bendIndex starting from the target side. - * @param {number} bendIndex The index of the bend counting from the target side. - * @returns {yfiles.graph.IPortLocationModelParameter} A parameter that anchors the port at a bend. + * @param bendIndex The index of the bend counting from the target side. + * @returns A parameter that anchors the port at a bend. */ createFromTarget(bendIndex:number):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.graph.IPortOwner} owner - * @param {yfiles.geometry.Point} location - * @returns {yfiles.graph.IPortLocationModelParameter} + * @param owner + * @param location + * @returns */ createParameter(owner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.graph.ILookup} + * @param port + * @param locationParameter + * @returns */ getContext(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.geometry.Point} + * @param port + * @param locationParameter + * @returns */ getLocation(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.geometry.Point; /** * This implementation has nothing in its lookup and will always yield null - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -44861,7 +43804,7 @@ declare namespace system{ * This class holds a number of models and can provide all of their parameters in * {@link yfiles.graph.CompositeLabelModel#getParameters}. A custom model can easily be created that way: *

    - * @class yfiles.graph.CompositeLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} * @implements {yfiles.graph.ILabelModelParameterFinder} @@ -44870,7 +43813,6 @@ declare namespace system{ export class CompositeLabelModel { /** * Creates a new instance of this label model with an empty {@link yfiles.graph.CompositeLabelModel#labelModels} collection. - * @constructor */ constructor(); /** @@ -44879,7 +43821,7 @@ declare namespace system{ * If {@link yfiles.graph.CompositeLabelModel#labelModels} is not empty, the default parameter for the first model in that list is returned. Otherwise, the default parameter * for {@link yfiles.graph.FreeLabelModel#createDefaultParameter} is returned. *

    - * @returns {yfiles.graph.ILabelModelParameter} a parameter for this model instance + * @returns a parameter for this model instance */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** @@ -44887,24 +43829,24 @@ declare namespace system{ *

    * This implementation tests all parameters from all models in {@link yfiles.graph.CompositeLabelModel#labelModels}. *

    - * @param {yfiles.graph.ILabel} label The label to find a parameter for. - * @param {yfiles.graph.ILabelModel} model The model instance to use. This should be the instance this instance has been obtained from. - * @param {yfiles.geometry.IOrientedRectangle} layout The anticipated layout for the label. - * @returns {yfiles.graph.ILabelModelParameter} A non-null parameter that can be used for the label to approximate the provided layout. + * @param label The label to find a parameter for. + * @param model The model instance to use. This should be the instance this instance has been obtained from. + * @param layout The anticipated layout for the label. + * @returns A non-null parameter that can be used for the label to approximate the provided layout. */ findBestParameter(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel,layout:yfiles.geometry.IOrientedRectangle):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** @@ -44913,15 +43855,15 @@ declare namespace system{ *

    * This implementation returns all parameters from all models in {@link yfiles.graph.CompositeLabelModel#labelModels} *

    - * @param {yfiles.graph.ILabel} label The label instance to use. - * @param {yfiles.graph.ILabelModel} model The model to provide parameters for. - * @returns {yfiles.collections.IEnumerable.} A possibly empty enumerator over a set of label model parameters. + * @param label The label instance to use. + * @param model The model to provide parameters for. + * @returns A possibly empty enumerator over a set of label model parameters. */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -44941,26 +43883,28 @@ declare namespace system{ * {@link yfiles.graph.SimpleEdge} to connect the two nodes and add instances of this class to the edge's {@link yfiles.graph.SimpleEdge#bends} model. Then render the * edge. *

    - * @class yfiles.graph.SimpleBend + * @class * @implements {yfiles.graph.IBend} */ export interface SimpleBend extends Object,yfiles.graph.IBend{} export class SimpleBend { /** * Initializes a new instance of the {@link yfiles.graph.SimpleBend} class using the given owner and location. - * @param {yfiles.graph.IEdge} owner The owner of the bend. - * @param {yfiles.geometry.IPoint} location The bend's location. - * @constructor + * @param owner The owner of the bend. + * @param location The bend's location. */ constructor(owner:yfiles.graph.IEdge,location:yfiles.geometry.IPoint); /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** - * + * Gets or sets the edge this bend instance belongs to. + *

    + * This implies that Owner.Bends contains this instance. + *

    * @type {yfiles.graph.IEdge} */ owner:yfiles.graph.IEdge; @@ -45009,7 +43953,7 @@ declare namespace system{ * {@link yfiles.graph.SimpleEdge}, associate a style with it and use the style's renderer instance to obtain a rendering for the * edge. *

    - * @class yfiles.graph.SimpleEdge + * @class * @implements {yfiles.graph.IEdge} */ export interface SimpleEdge extends Object,yfiles.graph.IEdge{} @@ -45020,44 +43964,56 @@ declare namespace system{ * While technically the source and target port can be null here, this will cause all kinds of issues, e.g. with {@link yfiles.styles.IEdgeStyle styles} or * {@link yfiles.graph.ILabelModel label models} that require the ports to be non-null to work properly. *

    - * @param {yfiles.graph.IPort} sourcePort The source port for the edge. - * @param {yfiles.graph.IPort} targetPort The target port for the edge. - * @constructor + * @param sourcePort The source port for the edge. + * @param targetPort The target port for the edge. */ constructor(sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort); /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** - * + * Gets or sets the style that is responsible for the visual representation of this edge in a {@link yfiles.view.CanvasComponent}. + *

    + * Note that the style instance associated with an edge instance may be shared between multiple edge instances and that the + * modification of this style will result in a change of the appearance of all edges that are associated with the same + * style instance. + *

    * @type {yfiles.styles.IEdgeStyle} */ style:yfiles.styles.IEdgeStyle; /** - * + * Gets or sets the collection of {@link yfiles.graph.IBend bends} that describe the geometry of this edge. * @type {yfiles.collections.IListEnumerable.} */ bends:yfiles.collections.IListEnumerable; /** - * + * Gets or sets the source port instance this edge is connected to. + *

    + * Although the notion of source and target port is used for directed edges, it is still up to the client to decide whether + * the edge should be treated as such. + *

    * @type {yfiles.graph.IPort} */ sourcePort:yfiles.graph.IPort; /** - * + * Gets or sets the target port instance this edge is connected to. + *

    + * Although the notion of source and target port is used for directed edges, it is still up to the client to decide whether + * the edge should be treated as such. + *

    * @type {yfiles.graph.IPort} */ targetPort:yfiles.graph.IPort; /** - * + * Gets or sets the collection of {@link yfiles.graph.IPort ports} that are owned by this instance. * @type {yfiles.collections.IListEnumerable.} */ ports:yfiles.collections.IListEnumerable; /** - * Gets or sets the collection for the labels. + * Gets or sets the collection of {@link yfiles.graph.ILabel labels} that are owned by this instance. * @type {yfiles.collections.IListEnumerable.} */ labels:yfiles.collections.IListEnumerable; @@ -45100,7 +44056,7 @@ declare namespace system{ * @see yfiles.graph.DefaultGraph#lookup * @see yfiles.graph.DefaultGraph * @see yfiles.graph.FoldingManager - * @class yfiles.graph.DefaultGraph + * @class * @implements {yfiles.graph.IGraph} */ export interface DefaultGraph extends Object,yfiles.graph.IGraph{} @@ -45108,7 +44064,7 @@ declare namespace system{ /** * Creates a new instance of a graph that provides an {@link yfiles.graph.ILookupDecorator} for all of its entities. * @param {Object} [options=null] The parameters to pass. - * @param options.nodes An array of nodes to create in this graph. Each item will be passed to the {@link yfiles.graph.DefaultGraph#createNode} method. + * @param options.nodes An array of nodes to create in this graph. Each item will be passed to the {@link #createNode} method. * @param {yfiles.graph.IEdgeDefaults} [options.edgeDefaults=null] Sets the edgeDefaults property. * @param {yfiles.graph.INodeDefaults} [options.groupNodeDefaults=null] Sets the groupNodeDefaults property. * @param {yfiles.graph.IMapperRegistry} options.mapperRegistry The mapper registry that is associated with this graph instance. @@ -45116,96 +44072,96 @@ declare namespace system{ * This option sets the {@link yfiles.graph.DefaultGraph#mapperRegistry} property on the created object. *

    * @param {yfiles.graph.INodeDefaults} [options.nodeDefaults=null] Sets the nodeDefaults property. - * @param {Object} [options.tag=null] Sets the tag property. * @param {boolean} options.undoEngineEnabled Whether or not the {@link yfiles.graph.UndoEngine} used for this instance should be enabled. *

    * This option sets the {@link yfiles.graph.DefaultGraph#undoEngineEnabled} property on the created object. *

    - * @constructor */ - constructor(options?:{edgeDefaults?:yfiles.graph.IEdgeDefaults,groupNodeDefaults?:yfiles.graph.INodeDefaults,mapperRegistry?:yfiles.graph.IMapperRegistry,nodeDefaults?:yfiles.graph.INodeDefaults,tag?:Object,undoEngineEnabled?:boolean,nodes?:Array}); + constructor(options?:{edgeDefaults?:yfiles.graph.IEdgeDefaults,groupNodeDefaults?:yfiles.graph.INodeDefaults,mapperRegistry?:yfiles.graph.IMapperRegistry,nodeDefaults?:yfiles.graph.INodeDefaults,undoEngineEnabled?:boolean,nodes?:Array}); /** * - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.geometry.Point} location - * @param {number} [index=-1] - * @returns {yfiles.graph.IBend} + * @param edge + * @param location + * @param [index=-1] + * @returns */ addBend(edge:yfiles.graph.IEdge,location:yfiles.geometry.Point,index?:number):yfiles.graph.IBend; /** * - * @param {yfiles.graph.ILabelOwner} owner - * @param {string} text - * @param {yfiles.graph.ILabelModelParameter} [layoutParameter=null] - * @param {yfiles.styles.ILabelStyle} [style=null] - * @param {yfiles.geometry.Size} [preferredSize=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.ILabel} + * @param owner + * @param text + * @param [layoutParameter=null] + * @param [style=null] + * @param [preferredSize=null] + * @param [tag=null] + * @returns */ addLabel(owner:yfiles.graph.ILabelOwner,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object):yfiles.graph.ILabel; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.ILabelOwner} options.owner - * @param {string} options.text - * @param {yfiles.graph.ILabelModelParameter} [options.layoutParameter=null] - * @param {yfiles.styles.ILabelStyle} [options.style=null] - * @param {yfiles.geometry.Size} [options.preferredSize=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.ILabel} + * @param options.owner + * @param options.text + * @param [options.layoutParameter=null] + * @param [options.style=null] + * @param [options.preferredSize=null] + * @param [options.tag=null] + * @returns */ addLabel(options:{owner:yfiles.graph.ILabelOwner,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object}):yfiles.graph.ILabel; /** * Adds the chain element to the lookup for this instance. - * @param {yfiles.graph.IContextLookupChainLink} lookup The lookup to decorate the current instance with. + * @param lookup The lookup to decorate the current instance with. */ addLookup(lookup:yfiles.graph.IContextLookupChainLink):void; /** * Add a port to the given port owner using the coordinates as the new initial position of the port anchor. - * @param {yfiles.graph.IPortOwner} owner the owner to add the port instance to. - * @param {yfiles.graph.IPortLocationModelParameter} [locationParameter=null] the parameter to use for the port to determine its location. - * @param {yfiles.styles.IPortStyle} [style=null] the style to assign initially to the port, e.g. {@link yfiles.styles.VoidPortStyle#INSTANCE}. - * @param {Object} [tag=null] The tag to associate with the port, may be null. - * @returns {yfiles.graph.IPort} the newly created port + * @param owner the owner to add the port instance to. + * @param [locationParameter=null] the parameter to use for the port to determine its location. + * @param [style=null] the style to assign initially to the port, e.g. {@link #INSTANCE}. + * @param [tag=null] The tag to associate with the port, may be null. + * @returns the newly created port * @throws {Stubs.Exceptions.NotSupportedError} If this instance cannot add a port to owner. + * @throws {Stubs.Exceptions.ArgumentError} If owner is not in this graph. * @see yfiles.graph.DefaultGraph#addPortAddedListener */ addPort(owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,style?:yfiles.styles.IPortStyle,tag?:Object):yfiles.graph.IPort; /** * Add a port to the given port owner using the coordinates as the new initial position of the port anchor. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPortOwner} options.owner the owner to add the port instance to. - * @param {yfiles.graph.IPortLocationModelParameter} [options.locationParameter=null] the parameter to use for the port to determine its location. - * @param {yfiles.styles.IPortStyle} [options.style=null] the style to assign initially to the port, e.g. {@link yfiles.styles.VoidPortStyle#INSTANCE}. - * @param {Object} [options.tag=null] The tag to associate with the port, may be null. - * @returns {yfiles.graph.IPort} the newly created port + * @param options.owner the owner to add the port instance to. + * @param [options.locationParameter=null] the parameter to use for the port to determine its location. + * @param [options.style=null] the style to assign initially to the port, e.g. {@link #INSTANCE}. + * @param [options.tag=null] The tag to associate with the port, may be null. + * @returns the newly created port * @throws {Stubs.Exceptions.NotSupportedError} If this instance cannot add a port to owner. + * @throws {Stubs.Exceptions.ArgumentError} If owner is not in this graph. * @see yfiles.graph.DefaultGraph#addPortAddedListener */ addPort(options:{owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,style?:yfiles.styles.IPortStyle,tag?:Object}):yfiles.graph.IPort; /** * Determines whether this graph contains the specified item. - * @param {yfiles.graph.IModelItem} item The item. - * @returns {boolean} true if this graph contains the specified item; otherwise, false. + * @param item The item. + * @returns true if this graph contains the specified item; otherwise, false. */ contains(item:yfiles.graph.IModelItem):boolean; /** * - * @param {yfiles.graph.IPort} sourcePort - * @param {yfiles.graph.IPort} targetPort - * @param {yfiles.styles.IEdgeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.IEdge} + * @param sourcePort + * @param targetPort + * @param [style=null] + * @param [tag=null] + * @returns */ createEdge(sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort,style?:yfiles.styles.IEdgeStyle,tag?:Object):yfiles.graph.IEdge; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPort} options.sourcePort - * @param {yfiles.graph.IPort} options.targetPort - * @param {yfiles.styles.IEdgeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.IEdge} + * @param options.sourcePort + * @param options.targetPort + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createEdge(options:{sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort,style?:yfiles.styles.IEdgeStyle,tag?:Object}):yfiles.graph.IEdge; /** @@ -45216,13 +44172,14 @@ declare namespace system{ * instances to which the edge will be connected. The edge will be a part of this graph after the method returns. This will * trigger the corresponding events. *

    - * @param {yfiles.graph.INode} source The source node the created edge will connect to. This implementation queries the {@link yfiles.graph.DefaultGraph#getNewSourcePort} + * @param source The source node the created edge will connect to. This implementation queries the {@link #getNewSourcePort} * method to determine which port to use. - * @param {yfiles.graph.INode} target The target node the created edge will connect to. This implementation queries the {@link yfiles.graph.DefaultGraph#getNewSourcePort} + * @param target The target node the created edge will connect to. This implementation queries the {@link #getNewSourcePort} * method to determine which port to use. - * @param {yfiles.styles.IEdgeStyle} [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.IEdge} the newly created edge instance + * @param [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [tag=null] the initial {@link #tag} to assign. + * @returns the newly created edge instance + * @throws {Stubs.Exceptions.ArgumentError} If source or target is not in this graph. * @see yfiles.graph.DefaultGraph#addEdgeCreatedListener * @see yfiles.graph.DefaultGraph#getNewSourcePort * @see yfiles.graph.DefaultGraph#getNewTargetPort @@ -45238,13 +44195,14 @@ declare namespace system{ * trigger the corresponding events. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} options.source The source node the created edge will connect to. This implementation queries the {@link yfiles.graph.DefaultGraph#getNewSourcePort} + * @param options.source The source node the created edge will connect to. This implementation queries the {@link #getNewSourcePort} * method to determine which port to use. - * @param {yfiles.graph.INode} options.target The target node the created edge will connect to. This implementation queries the {@link yfiles.graph.DefaultGraph#getNewSourcePort} + * @param options.target The target node the created edge will connect to. This implementation queries the {@link #getNewSourcePort} * method to determine which port to use. - * @param {yfiles.styles.IEdgeStyle} [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [options.tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.IEdge} the newly created edge instance + * @param [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [options.tag=null] the initial {@link #tag} to assign. + * @returns the newly created edge instance + * @throws {Stubs.Exceptions.ArgumentError} If source or target is not in this graph. * @see yfiles.graph.DefaultGraph#addEdgeCreatedListener * @see yfiles.graph.DefaultGraph#getNewSourcePort * @see yfiles.graph.DefaultGraph#getNewTargetPort @@ -45253,188 +44211,188 @@ declare namespace system{ createEdge(options:{source:yfiles.graph.INode,target:yfiles.graph.INode,style?:yfiles.styles.IEdgeStyle,tag?:Object}):yfiles.graph.IEdge; /** * - * @param {yfiles.graph.INode} [parent=null] - * @param {yfiles.geometry.Rect} [layout=null] - * @param {yfiles.styles.INodeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.INode} + * @param [parent=null] + * @param [layout=null] + * @param [style=null] + * @param [tag=null] + * @returns */ createGroupNode(parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.parent=null] - * @param {yfiles.geometry.Rect} [options.layout=null] - * @param {yfiles.styles.INodeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.INode} + * @param [options.parent=null] + * @param [options.layout=null] + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createGroupNode(options:{parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object}):yfiles.graph.INode; /** * - * @param {yfiles.geometry.Rect} layout - * @param {yfiles.styles.INodeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.INode} + * @param layout + * @param [style=null] + * @param [tag=null] + * @returns */ createNode(layout:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.Rect} options.layout - * @param {yfiles.styles.INodeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.INode} + * @param options.layout + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createNode(options:{layout:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object}):yfiles.graph.INode; /** * - * @param {yfiles.graph.INode} [parent=null] - * @param {yfiles.geometry.Rect} [layout=null] - * @param {yfiles.styles.INodeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.INode} + * @param [parent=null] + * @param [layout=null] + * @param [style=null] + * @param [tag=null] + * @returns */ createNode(parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.parent=null] - * @param {yfiles.geometry.Rect} [options.layout=null] - * @param {yfiles.styles.INodeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.INode} + * @param [options.parent=null] + * @param [options.layout=null] + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createNode(options:{parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object}):yfiles.graph.INode; /** * Creates an {@link yfiles.graph.UndoEngine} instance that automatically triggers {@link yfiles.graph.DefaultGraph#invalidateDisplays} * upon each invocation of {@link yfiles.graph.UndoEngine#undo} and {@link yfiles.graph.UndoEngine#redo} - * @returns {yfiles.graph.UndoEngine} An {@link yfiles.graph.UndoEngine} instance. + * @returns An {@link } instance. * @protected */ createUndoEngine():yfiles.graph.UndoEngine; /** * Creates the bend addition {@link yfiles.graph.IUndoUnit undo unit} for the given bend. - * @param {yfiles.graph.IBend} bend The bend that has been added. - * @param {number} index The index at which the bend has been added. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the creation. + * @param bend The bend that has been added. + * @param index The index at which the bend has been added. + * @returns The unit that can be used to undo and redo the creation. * @protected */ createUndoUnitForBendAddition(bend:yfiles.graph.IBend,index:number):yfiles.graph.IUndoUnit; /** * Creates the bend removal {@link yfiles.graph.IUndoUnit undo unit} for the given bend. - * @param {yfiles.graph.IBend} bend The bend that will be removed. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the removal. + * @param bend The bend that will be removed. + * @returns The unit that can be used to undo and redo the removal. * @protected */ createUndoUnitForBendRemoval(bend:yfiles.graph.IBend):yfiles.graph.IUndoUnit; /** * Creates the edge creation {@link yfiles.graph.IUndoUnit undo unit} for the given edge. - * @param {yfiles.graph.IEdge} edge The edge that has been created. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the creation. + * @param edge The edge that has been created. + * @returns The unit that can be used to undo and redo the creation. * @protected */ createUndoUnitForEdgeCreation(edge:yfiles.graph.IEdge):yfiles.graph.IUndoUnit; /** * Creates the edge reconnection {@link yfiles.graph.IUndoUnit undo unit} for the given edge. - * @param {yfiles.graph.IEdge} edge The edge that has been reconnected to other ports. - * @param {yfiles.graph.IPort} oldSource The old source port the edge connected to before the change. - * @param {yfiles.graph.IPort} oldTarget The old target port the edge connected to before the change. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the port change operation. + * @param edge The edge that has been reconnected to other ports. + * @param oldSource The old source port the edge connected to before the change. + * @param oldTarget The old target port the edge connected to before the change. + * @returns The unit that can be used to undo and redo the port change operation. * @protected */ createUndoUnitForEdgeReconnection(edge:yfiles.graph.IEdge,oldSource:yfiles.graph.IPort,oldTarget:yfiles.graph.IPort):yfiles.graph.IUndoUnit; /** * Creates the edge removal {@link yfiles.graph.IUndoUnit undo unit} for the given edge. - * @param {yfiles.graph.IEdge} edge The edge that will be removed. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the removal. + * @param edge The edge that will be removed. + * @returns The unit that can be used to undo and redo the removal. * @protected */ createUndoUnitForEdgeRemoval(edge:yfiles.graph.IEdge):yfiles.graph.IUndoUnit; /** * Creates the {@link yfiles.graph.IUndoUnit undo unit} for changing whether the given node is a group node. - * @param {yfiles.graph.INode} node The node whose group node status has been changed. - * @param {boolean} isGroupNode The new group node status. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the group node status change. + * @param node The node whose group node status has been changed. + * @param isGroupNode The new group node status. + * @returns The unit that can be used to undo and redo the group node status change. * @protected */ createUndoUnitForIsGroupNodeChange(node:yfiles.graph.INode,isGroupNode:boolean):yfiles.graph.IUndoUnit; /** * Creates the label addition {@link yfiles.graph.IUndoUnit undo unit} for the given label. - * @param {yfiles.graph.ILabel} label The label that has been added. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the creation. + * @param label The label that has been added. + * @returns The unit that can be used to undo and redo the creation. * @protected */ createUndoUnitForLabelAddition(label:yfiles.graph.ILabel):yfiles.graph.IUndoUnit; /** * Creates the label removal {@link yfiles.graph.IUndoUnit undo unit} for the given label. - * @param {yfiles.graph.ILabel} label The label that will be removed. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the removal. + * @param label The label that will be removed. + * @returns The unit that can be used to undo and redo the removal. * @protected */ createUndoUnitForLabelRemoval(label:yfiles.graph.ILabel):yfiles.graph.IUndoUnit; /** * Creates the node creation {@link yfiles.graph.IUndoUnit undo unit} for the given node. - * @param {yfiles.graph.INode} node The node that has been created. - * @param {yfiles.graph.INode} parent - * @param {boolean} isGroupNode - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the creation. + * @param node The node that has been created. + * @param parent + * @param isGroupNode + * @returns The unit that can be used to undo and redo the creation. * @protected */ createUndoUnitForNodeCreation(node:yfiles.graph.INode,parent:yfiles.graph.INode,isGroupNode:boolean):yfiles.graph.IUndoUnit; /** * Creates the node removal {@link yfiles.graph.IUndoUnit undo unit} for the given node. - * @param {yfiles.graph.INode} node The node that will be removed. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the removal. + * @param node The node that will be removed. + * @returns The unit that can be used to undo and redo the removal. * @protected */ createUndoUnitForNodeRemoval(node:yfiles.graph.INode):yfiles.graph.IUndoUnit; /** * Creates the parent change {@link yfiles.graph.IUndoUnit undo unit} for the given node. - * @param {yfiles.graph.INode} node The node whose parent has been changed. - * @param {yfiles.graph.INode} oldParent - * @param {yfiles.graph.INode} newParent The node which is the new parent. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the parent change. + * @param node The node whose parent has been changed. + * @param oldParent + * @param newParent The node which is the new parent. + * @returns The unit that can be used to undo and redo the parent change. * @protected */ createUndoUnitForParentChange(node:yfiles.graph.INode,oldParent:yfiles.graph.INode,newParent:yfiles.graph.INode):yfiles.graph.IUndoUnit; /** * Creates the port addition {@link yfiles.graph.IUndoUnit undo unit} for the given port. - * @param {yfiles.graph.IPort} port The port that has been added. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the creation. + * @param port The port that has been added. + * @returns The unit that can be used to undo and redo the creation. * @protected */ createUndoUnitForPortAddition(port:yfiles.graph.IPort):yfiles.graph.IUndoUnit; /** * Creates the port removal {@link yfiles.graph.IUndoUnit undo unit} for the given port. - * @param {yfiles.graph.IPort} port The port that will be removed. - * @returns {yfiles.graph.IUndoUnit} The unit that can be used to undo and redo the removal. + * @param port The port that will be removed. + * @returns The unit that can be used to undo and redo the removal. * @protected */ createUndoUnitForPortRemoval(port:yfiles.graph.IPort):yfiles.graph.IUndoUnit; /** * - * @param {yfiles.graph.IPortOwner} owner - * @param {yfiles.graph.AdjacencyTypes} [type=3] - * @returns {yfiles.collections.IListEnumerable.} + * @param owner + * @param [type=yfiles.graph.AdjacencyTypes.ALL] + * @returns */ edgesAt(owner:yfiles.graph.IPortOwner,type?:yfiles.graph.AdjacencyTypes):yfiles.collections.IListEnumerable; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.AdjacencyTypes} [type=3] - * @returns {yfiles.collections.IListEnumerable.} + * @param port + * @param [type=yfiles.graph.AdjacencyTypes.ALL] + * @returns */ edgesAt(port:yfiles.graph.IPort,type?:yfiles.graph.AdjacencyTypes):yfiles.collections.IListEnumerable; /** * - * @param {yfiles.graph.INode} node - * @returns {yfiles.collections.IListEnumerable.} + * @param node + * @returns */ getChildren(node:yfiles.graph.INode):yfiles.collections.IListEnumerable; /** * Returns the lookup implementation that is used for {@link yfiles.graph.DefaultGraph#lookup} calls. - * @returns {yfiles.graph.ILookup} The replacing lookup instance or null if the internal lookup mechanism is used. + * @returns The replacing lookup instance or null if the internal lookup mechanism is used. * @see yfiles.graph.DefaultGraph#setLookupImplementation */ getLookup():yfiles.graph.ILookup; @@ -45444,8 +44402,8 @@ declare namespace system{ *

    * This implementation will {@link yfiles.graph.DefaultGraph#addPort add a new center anchored port} to the node. *

    - * @param {yfiles.graph.IPortOwner} source The source node to find a port for. - * @returns {yfiles.graph.IPort} The port to use for a newly created edge. + * @param source The source node to find a port for. + * @returns The port to use for a newly created edge. * @see yfiles.graph.DefaultGraph#createEdge * @protected */ @@ -45456,22 +44414,22 @@ declare namespace system{ *

    * This implementation will {@link yfiles.graph.DefaultGraph#addPort add a new center anchored port} to the node. *

    - * @param {yfiles.graph.IPortOwner} targetOwner The target node to find a port for. - * @returns {yfiles.graph.IPort} The port to use for a newly created edge. + * @param targetOwner The target node to find a port for. + * @returns The port to use for a newly created edge. * @see yfiles.graph.DefaultGraph#createEdge * @protected */ getNewTargetPort(targetOwner:yfiles.graph.IPortOwner):yfiles.graph.IPort; /** * - * @param {yfiles.graph.INode} node - * @returns {yfiles.graph.INode} + * @param node + * @returns */ getParent(node:yfiles.graph.INode):yfiles.graph.INode; /** * The last element in the lookup chain is implemented by this method. - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns * @protected */ innerLookup(type:yfiles.lang.Class):Object; @@ -45485,8 +44443,8 @@ declare namespace system{ invalidateDisplays():void; /** * - * @param {yfiles.graph.INode} node - * @returns {boolean} + * @param node + * @returns */ isGroupNode(node:yfiles.graph.INode):boolean; /** @@ -45500,36 +44458,36 @@ declare namespace system{ * been set or an internal {@link yfiles.graph.LookupChain lookup chain}, that can be customized using the {@link yfiles.graph.DefaultGraph#addLookup} and {@link yfiles.graph.DefaultGraph#removeLookup} * methods. *

    - * @param {yfiles.lang.Class} type the type for which an instance shall be returned - * @returns {Object} An instance that is assignable to type or null + * @param type the type for which an instance shall be returned + * @returns An instance that is assignable to type or null */ lookup(type:yfiles.lang.Class):Object; /** * Callback that is invoked before a bend is added to this graph's structure. - * @param {yfiles.graph.IEdge} edge The edge the bend will be added to. - * @param {yfiles.graph.IBend} bend The bend that will be added to the edge. - * @param {number} index The index where the bend will be added to the edge. + * @param edge The edge the bend will be added to. + * @param bend The bend that will be added to the edge. + * @param index The index where the bend will be added to the edge. * @protected */ onAddingBend(edge:yfiles.graph.IEdge,bend:yfiles.graph.IBend,index:number):void; /** * Callback method that will be called just before an edge label is added to an edge. - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.graph.ILabel} label + * @param edge + * @param label * @protected */ onAddingEdgeLabel(edge:yfiles.graph.IEdge,label:yfiles.graph.ILabel):void; /** * Callback method that will be called just before a node label is added to a node. - * @param {yfiles.graph.INode} node - * @param {yfiles.graph.ILabel} label + * @param node + * @param label * @protected */ onAddingNodeLabel(node:yfiles.graph.INode,label:yfiles.graph.ILabel):void; /** * Called when a port is going to be added to a node. - * @param {yfiles.graph.IPortOwner} owner The node. - * @param {yfiles.graph.IPort} port The port to be added. + * @param owner The node. + * @param port The port to be added. * @protected */ onAddingPort(owner:yfiles.graph.IPortOwner,port:yfiles.graph.IPort):void; @@ -45538,7 +44496,7 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.IBend} bend The bend that has been added to the edge. + * @param bend The bend that has been added to the edge. * @protected */ onBendAdded(bend:yfiles.graph.IBend):void; @@ -45547,8 +44505,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addBendLocationChangedListener BendLocationChanged} event. *

    - * @param {yfiles.graph.IBend} bend The bend whose location has changed. - * @param {yfiles.geometry.Point} oldLocation The bend location before the change + * @param bend The bend whose location has changed. + * @param oldLocation The bend location before the change * @protected */ onBendLocationChanged(bend:yfiles.graph.IBend,oldLocation:yfiles.geometry.Point):void; @@ -45557,9 +44515,9 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.IEdge} owner The old edge. - * @param {yfiles.graph.IBend} bend The bend. - * @param {number} index The former index of the bend in the {@link yfiles.graph.IEdge#bends} list. + * @param owner The old edge. + * @param bend The bend. + * @param index The former index of the bend in the {@link #bends} list. * @protected */ onBendRemoved(owner:yfiles.graph.IEdge,bend:yfiles.graph.IBend,index:number):void; @@ -45568,98 +44526,98 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addBendTagChangedListener BendTagChanged} event. *

    - * @param {yfiles.graph.IBend} bend The bend whose tag has changed. - * @param {Object} oldTag The bend tag before the change + * @param bend The bend whose tag has changed. + * @param oldTag The bend tag before the change * @protected */ onBendTagChanged(bend:yfiles.graph.IBend,oldTag:Object):void; /** * Callback that is invoked before the ports of an edge are being changed. - * @param {yfiles.graph.IEdge} edge An edge whose the ports are to be changed. - * @param {yfiles.graph.IPort} newSource The new source port - * @param {yfiles.graph.IPort} newTarget The new target port + * @param edge An edge whose the ports are to be changed. + * @param newSource The new source port + * @param newTarget The new target port * @protected */ onChangingEdgePorts(edge:yfiles.graph.IEdge,newSource:yfiles.graph.IPort,newTarget:yfiles.graph.IPort):void; /** * Callback that is invoked before an edge style is being changed. - * @param {yfiles.graph.IEdge} edge An edge whose the style is going to be changed. - * @param {yfiles.styles.IEdgeStyle} newStyle The new edge style. + * @param edge An edge whose the style is going to be changed. + * @param newStyle The new edge style. * @protected */ onChangingEdgeStyle(edge:yfiles.graph.IEdge,newStyle:yfiles.styles.IEdgeStyle):void; /** * Callback that is invoked before the graph's tag is being changed. - * @param {Object} newTag The new port tag + * @param newTag The new port tag * @protected */ onChangingGraphTag(newTag:Object):void; /** * Callback that is invoked before the {@link yfiles.graph.ILabel#layoutParameter} of a label is being changed. - * @param {yfiles.graph.ILabel} label A label whose {@link yfiles.graph.ILabel#layoutParameter} is to be changed. - * @param {yfiles.graph.ILabelModelParameter} newLayoutParameter The new label model parameter + * @param label A label whose {@link #layoutParameter} is to be changed. + * @param newLayoutParameter The new label model parameter * @protected */ onChangingLabelLayoutParameter(label:yfiles.graph.ILabel,newLayoutParameter:yfiles.graph.ILabelModelParameter):void; /** * Callback that is invoked before the preferred size of a label is being changed. - * @param {yfiles.graph.ILabel} label A label whose preferred size is going to be changed. - * @param {yfiles.geometry.Size} newSize The new preferred size + * @param label A label whose preferred size is going to be changed. + * @param newSize The new preferred size * @protected */ onChangingLabelPreferredSize(label:yfiles.graph.ILabel,newSize:yfiles.geometry.Size):void; /** * Callback that is invoked before a label style is being changed. - * @param {yfiles.graph.ILabel} label A label whose the style is going to be changed. - * @param {yfiles.styles.ILabelStyle} newStyle The new label style. + * @param label A label whose the style is going to be changed. + * @param newStyle The new label style. * @protected */ onChangingLabelStyle(label:yfiles.graph.ILabel,newStyle:yfiles.styles.ILabelStyle):void; /** * Callback that is invoked before the text of a label is being changed. - * @param {yfiles.graph.ILabel} label A label whose text is going to be changed. - * @param {string} newText The new label text + * @param label A label whose text is going to be changed. + * @param newText The new label text * @protected */ onChangingLabelText(label:yfiles.graph.ILabel,newText:string):void; /** * Callback that is invoked before a node style is being changed. - * @param {yfiles.graph.INode} node A node whose the style is going to be changed. - * @param {yfiles.styles.INodeStyle} newStyle The new node style. + * @param node A node whose the style is going to be changed. + * @param newStyle The new node style. * @protected */ onChangingNodeStyle(node:yfiles.graph.INode,newStyle:yfiles.styles.INodeStyle):void; /** * Callback that is invoked before the {@link yfiles.graph.IPort#locationParameter} of a port is being changed. - * @param {yfiles.graph.IPort} port A port whose {@link yfiles.graph.IPort#locationParameter} is to be changed. - * @param {yfiles.graph.IPortLocationModelParameter} newLocationParameter The new location model parameter + * @param port A port whose {@link #locationParameter} is to be changed. + * @param newLocationParameter The new location model parameter * @protected */ onChangingPortLocationModelParameter(port:yfiles.graph.IPort,newLocationParameter:yfiles.graph.IPortLocationModelParameter):void; /** * Callback that is invoked before a port style is being changed. - * @param {yfiles.graph.IPort} port A port whose the style is going to be changed. - * @param {yfiles.styles.IPortStyle} newStyle The new port style. + * @param port A port whose the style is going to be changed. + * @param newStyle The new port style. * @protected */ onChangingPortStyle(port:yfiles.graph.IPort,newStyle:yfiles.styles.IPortStyle):void; /** * Callback that is invoked before the edge is added to this graph's structure. - * @param {yfiles.graph.IEdge} edge An edge that is not yet contained in this graph. - * @param {yfiles.graph.IPort} sourcePort The source port this edge will connect to. - * @param {yfiles.graph.IPort} targetPort The target port this edge will connect to. + * @param edge An edge that is not yet contained in this graph. + * @param sourcePort The source port this edge will connect to. + * @param targetPort The target port this edge will connect to. * @protected */ onCreatingEdge(edge:yfiles.graph.IEdge,sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort):void; /** * Callback that is invoked before the node is added to this graph's structure. - * @param {yfiles.graph.INode} node A node that is not yet contained in this graph. + * @param node A node that is not yet contained in this graph. * @protected */ onCreatingNode(node:yfiles.graph.INode):void; /** * Callback that triggers the {@link yfiles.graph.DefaultGraph#addEdgeCreatedListener EdgeCreated} event. - * @param {yfiles.graph.IEdge} edge The edge that has been created. + * @param edge The edge that has been created. * @protected */ onEdgeCreated(edge:yfiles.graph.IEdge):void; @@ -45671,7 +44629,7 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.ILabel} label The label that has just been added. + * @param label The label that has just been added. * @protected */ onEdgeLabelAdded(label:yfiles.graph.ILabel):void; @@ -45680,8 +44638,8 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.ILabel} label The label that has just been removed. - * @param {yfiles.graph.ILabelOwner} owner The previous owner of the label. + * @param label The label that has just been removed. + * @param owner The previous owner of the label. * @protected */ onEdgeLabelRemoved(owner:yfiles.graph.ILabelOwner,label:yfiles.graph.ILabel):void; @@ -45690,17 +44648,17 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addEdgePortsChangedListener EdgePortsChanged} event. *

    - * @param {yfiles.graph.IEdge} edge The edge whose ports have changed. - * @param {yfiles.graph.IPort} oldSource The source port that the edge had been connected to before the change. - * @param {yfiles.graph.IPort} oldTarget The target port that the edge had been connected to before the change. + * @param edge The edge whose ports have changed. + * @param oldSource The source port that the edge had been connected to before the change. + * @param oldTarget The target port that the edge had been connected to before the change. * @protected */ onEdgePortsChanged(edge:yfiles.graph.IEdge,oldSource:yfiles.graph.IPort,oldTarget:yfiles.graph.IPort):void; /** * Callback that triggers the {@link yfiles.graph.DefaultGraph#addEdgeRemovedListener EdgeRemoved} event. - * @param {yfiles.graph.IEdge} edge The edge that got removed - * @param {yfiles.graph.IPort} oldSource The source port that the edge had been connected to. - * @param {yfiles.graph.IPort} oldTarget The target port that the edge had been connected to. + * @param edge The edge that got removed + * @param oldSource The source port that the edge had been connected to. + * @param oldTarget The target port that the edge had been connected to. * @protected */ onEdgeRemoved(edge:yfiles.graph.IEdge,oldSource:yfiles.graph.IPort,oldTarget:yfiles.graph.IPort):void; @@ -45709,8 +44667,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addEdgeStyleChangedListener EdgeStyleChanged} event. *

    - * @param {yfiles.graph.IEdge} edge The edge whose style that has changed. - * @param {yfiles.styles.IEdgeStyle} oldStyle The edge style before the change + * @param edge The edge whose style that has changed. + * @param oldStyle The edge style before the change * @protected */ onEdgeStyleChanged(edge:yfiles.graph.IEdge,oldStyle:yfiles.styles.IEdgeStyle):void; @@ -45719,20 +44677,20 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addEdgeTagChangedListener EdgeTagChanged} event. *

    - * @param {yfiles.graph.IEdge} edge The edge whose tag has changed. - * @param {Object} oldTag The edge tag before the change. + * @param edge The edge whose tag has changed. + * @param oldTag The edge tag before the change. * @protected */ onEdgeTagChanged(edge:yfiles.graph.IEdge,oldTag:Object):void; /** * Callback that triggers the {@link yfiles.graph.DefaultGraph#addGraphTagChangedListener GraphTagChanged} event. - * @param {Object} oldTag The graph tag before the change. + * @param oldTag The graph tag before the change. * @protected */ onGraphTagChanged(oldTag:Object):void; /** * Triggers the {@link yfiles.graph.DefaultGraph#addDisplaysInvalidatedListener DisplaysInvalidated} event. - * @param {yfiles.lang.EventArgs} evt The event arguments. + * @param evt The event arguments. * @protected */ onInvalidateDisplays(evt:yfiles.lang.EventArgs):void; @@ -45741,8 +44699,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addLabelLayoutParameterChangedListener LabelLayoutParameterChanged} event. *

    - * @param {yfiles.graph.ILabel} label The label whose model parameter has changed. - * @param {yfiles.graph.ILabelModelParameter} oldLayoutParamater The label model parameter before the change + * @param label The label whose model parameter has changed. + * @param oldLayoutParamater The label model parameter before the change * @protected */ onLabelLayoutParameterChanged(label:yfiles.graph.ILabel,oldLayoutParamater:yfiles.graph.ILabelModelParameter):void; @@ -45751,8 +44709,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addLabelPreferredSizeChangedListener LabelPreferredSizeChanged} event. *

    - * @param {yfiles.graph.ILabel} label The label whose preferred size has changed. - * @param {yfiles.geometry.Size} oldSize The preferred size of the label before the change + * @param label The label whose preferred size has changed. + * @param oldSize The preferred size of the label before the change */ onLabelPreferredSizeChanged(label:yfiles.graph.ILabel,oldSize:yfiles.geometry.Size):void; /** @@ -45760,8 +44718,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addLabelStyleChangedListener LabelStyleChanged} event. *

    - * @param {yfiles.graph.ILabel} label The label whose style has changed. - * @param {yfiles.styles.ILabelStyle} oldStyle The label style before the change. + * @param label The label whose style has changed. + * @param oldStyle The label style before the change. * @protected */ onLabelStyleChanged(label:yfiles.graph.ILabel,oldStyle:yfiles.styles.ILabelStyle):void; @@ -45770,8 +44728,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addLabelTagChangedListener LabelTagChanged} event. *

    - * @param {yfiles.graph.ILabel} label The label whose tag has changed. - * @param {Object} oldTag The label tag before the change + * @param label The label whose tag has changed. + * @param oldTag The label tag before the change */ onLabelTagChanged(label:yfiles.graph.ILabel,oldTag:Object):void; /** @@ -45779,13 +44737,13 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addLabelTextChangedListener LabelTextChanged} event. *

    - * @param {yfiles.graph.ILabel} label The label whose text has changed. - * @param {string} oldText The label text before the change. + * @param label The label whose text has changed. + * @param oldText The label text before the change. */ onLabelTextChanged(label:yfiles.graph.ILabel,oldText:string):void; /** * Callback that triggers the {@link yfiles.graph.DefaultGraph#addNodeCreatedListener NodeCreated} event. - * @param {yfiles.graph.INode} node The node that has been created. + * @param node The node that has been created. * @protected */ onNodeCreated(node:yfiles.graph.INode):void; @@ -45797,7 +44755,7 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.ILabel} label The label that has just been added. + * @param label The label that has just been added. * @protected */ onNodeLabelAdded(label:yfiles.graph.ILabel):void; @@ -45806,8 +44764,8 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.ILabel} label The label that has just been removed. - * @param {yfiles.graph.ILabelOwner} owner The old owner of the label. + * @param label The label that has just been removed. + * @param owner The old owner of the label. * @protected */ onNodeLabelRemoved(owner:yfiles.graph.ILabelOwner,label:yfiles.graph.ILabel):void; @@ -45816,16 +44774,16 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addNodeLayoutChangedListener NodeLayoutChanged} event. *

    - * @param {yfiles.graph.INode} node The node whose layout has changed. - * @param {yfiles.geometry.Rect} oldLayout The node layout before the change + * @param node The node whose layout has changed. + * @param oldLayout The node layout before the change * @protected */ onNodeLayoutChanged(node:yfiles.graph.INode,oldLayout:yfiles.geometry.Rect):void; /** * Callback that triggers the {@link yfiles.graph.DefaultGraph#addNodeRemovedListener NodeRemoved} event. - * @param {yfiles.graph.INode} node The node that got removed - * @param {yfiles.graph.INode} oldParent - * @param {boolean} oldIsGroupNode + * @param node The node that got removed + * @param oldParent + * @param oldIsGroupNode * @protected */ onNodeRemoved(node:yfiles.graph.INode,oldParent:yfiles.graph.INode,oldIsGroupNode:boolean):void; @@ -45834,8 +44792,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addNodeStyleChangedListener NodeStyleChanged} event. *

    - * @param {yfiles.graph.INode} node The node whose style has changed. - * @param {yfiles.styles.INodeStyle} oldStyle The node style before the change + * @param node The node whose style has changed. + * @param oldStyle The node style before the change * @protected */ onNodeStyleChanged(node:yfiles.graph.INode,oldStyle:yfiles.styles.INodeStyle):void; @@ -45844,8 +44802,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addNodeTagChangedListener NodeTagChanged} event. *

    - * @param {yfiles.graph.INode} node The node whose tag has changed. - * @param {Object} oldTag The node tag before the change + * @param node The node whose tag has changed. + * @param oldTag The node tag before the change * @protected */ onNodeTagChanged(node:yfiles.graph.INode,oldTag:Object):void; @@ -45854,7 +44812,7 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.IPort} port The port that has just been added to its owner. + * @param port The port that has just been added to its owner. * @protected */ onPortAdded(port:yfiles.graph.IPort):void; @@ -45864,8 +44822,8 @@ declare namespace system{ * This will trigger the {@link yfiles.graph.DefaultGraph#addPortLocationParameterChangedListener PortLocationParameterChanged} * event. *

    - * @param {yfiles.graph.IPort} port The port whose location model parameter has changed. - * @param {yfiles.graph.IPortLocationModelParameter} oldLocationParameter The port location model parameter before the change + * @param port The port whose location model parameter has changed. + * @param oldLocationParameter The port location model parameter before the change */ onPortLocationParameterChanged(port:yfiles.graph.IPort,oldLocationParameter:yfiles.graph.IPortLocationModelParameter):void; /** @@ -45873,8 +44831,8 @@ declare namespace system{ *

    * When overriding this method it is mandatory to call the base implementation. *

    - * @param {yfiles.graph.IPort} port The port that has been removed. - * @param {yfiles.graph.IPortOwner} oldOwner The previous owner of the port. + * @param port The port that has been removed. + * @param oldOwner The previous owner of the port. * @protected */ onPortRemoved(oldOwner:yfiles.graph.IPortOwner,port:yfiles.graph.IPort):void; @@ -45883,8 +44841,8 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addPortStyleChangedListener PortStyleChanged} event. *

    - * @param {yfiles.graph.IPort} port The port whose style has changed. - * @param {yfiles.styles.IPortStyle} oldStyle The port style before the change + * @param port The port whose style has changed. + * @param oldStyle The port style before the change * @protected */ onPortStyleChanged(port:yfiles.graph.IPort,oldStyle:yfiles.styles.IPortStyle):void; @@ -45893,55 +44851,55 @@ declare namespace system{ *

    * This will trigger the {@link yfiles.graph.DefaultGraph#addPortTagChangedListener PortTagChanged} event. *

    - * @param {yfiles.graph.IPort} port The port whose tag has changed. - * @param {Object} oldTag The port tag before the change + * @param port The port whose tag has changed. + * @param oldTag The port tag before the change * @protected */ onPortTagChanged(port:yfiles.graph.IPort,oldTag:Object):void; /** * Callback method that is invoked just before a bend is removed. - * @param {yfiles.graph.IBend} bend The bend that will be removed. + * @param bend The bend that will be removed. * @protected */ onRemovingBend(bend:yfiles.graph.IBend):void; /** * Callback that will be invoked before the node will be removed. - * @param {yfiles.graph.IEdge} edge That edge that is going to be removed. + * @param edge That edge that is going to be removed. * @protected */ onRemovingEdge(edge:yfiles.graph.IEdge):void; /** * Callback method that will be called just before an edge label is removed from its edge. - * @param {yfiles.graph.ILabel} label + * @param label * @protected */ onRemovingEdgeLabel(label:yfiles.graph.ILabel):void; /** * Callback that will be invoked before the node will be removed. - * @param {yfiles.graph.INode} node That node that is going to be removed. + * @param node That node that is going to be removed. * @protected */ onRemovingNode(node:yfiles.graph.INode):void; /** * Callback method that will be called just before a node label is removed from its node. - * @param {yfiles.graph.ILabel} label + * @param label * @protected */ onRemovingNodeLabel(label:yfiles.graph.ILabel):void; /** * Callback method that is called just before a port will be removed. - * @param {yfiles.graph.IPort} port The port that is about to be removed. + * @param port The port that is about to be removed. * @protected */ onRemovingPort(port:yfiles.graph.IPort):void; /** * - * @param {yfiles.graph.IModelItem} item + * @param item */ remove(item:yfiles.graph.IModelItem):void; /** * Removes a previously added lookup chain element from the lookup of this. - * @param {yfiles.graph.IContextLookupChainLink} lookup The element to remove. + * @param lookup The element to remove. */ removeLookup(lookup:yfiles.graph.IContextLookupChainLink):void; /** @@ -45949,8 +44907,9 @@ declare namespace system{ *

    * This implementation will also trigger an {@link yfiles.graph.DefaultGraph#invalidateDisplays} call. *

    - * @param {yfiles.graph.IBend} bend the bend whose location is to be modified - * @param {yfiles.geometry.Point} location the new coordinates of the bend + * @param bend the bend whose location is to be modified + * @param location the new coordinates of the bend + * @throws {Stubs.Exceptions.ArgumentError} If bend is not in this graph. * @see yfiles.graph.DefaultGraph#addBend */ setBendLocation(bend:yfiles.graph.IBend,location:yfiles.geometry.Point):void; @@ -45961,27 +44920,27 @@ declare namespace system{ * target ports differ from the current ones. Both ports and the edge must belong to the current graph instance. If {@link yfiles.graph.IPortDefaults#autoCleanup} is * enabled, this method will remove unoccupied ports after they have been changed. *

    - * @param {yfiles.graph.IEdge} edge The edge to change the ports. - * @param {yfiles.graph.IPort} sourcePort The new source port instance. - * @param {yfiles.graph.IPort} targetPort The new target port instance. + * @param edge The edge to change the ports. + * @param sourcePort The new source port instance. + * @param targetPort The new target port instance. */ setEdgePorts(edge:yfiles.graph.IEdge,sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort):void; /** * - * @param {yfiles.graph.INode} node - * @param {boolean} isGroupNode + * @param node + * @param isGroupNode */ setIsGroupNode(node:yfiles.graph.INode,isGroupNode:boolean):void; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter + * @param label + * @param layoutParameter */ setLabelLayoutParameter(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):void; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.geometry.Size} size + * @param label + * @param size */ setLabelPreferredSize(label:yfiles.graph.ILabel,size:yfiles.geometry.Size):void; /** @@ -45989,8 +44948,10 @@ declare namespace system{ *

    * This implementation will {@link yfiles.graph.IGraph#adjustLabelPreferredSize adjust the preferred size} for the label if {@link yfiles.graph.ILabelDefaults#autoAdjustPreferredSize} is enabled. *

    - * @param {yfiles.graph.ILabel} label the label to modify - * @param {string} text the new text of the label + * @param label the label to modify + * @param text the new text of the label + * @throws {Stubs.Exceptions.ArgumentError} If label is not in this graph. + * @throws {Stubs.Exceptions.ArgumentError} If text is null. * @see yfiles.graph.ILabel#text */ setLabelText(label:yfiles.graph.ILabel,text:string):void; @@ -45999,7 +44960,7 @@ declare namespace system{ *

    * A value of null will revert to the default behavior. *

    - * @param {yfiles.graph.ILookup} lookup The lookup instance to delegate lookup calls to. + * @param lookup The lookup instance to delegate lookup calls to. * @see yfiles.graph.DefaultGraph#addLookup * @see yfiles.graph.DefaultGraph#getLookup * @protected @@ -46010,39 +44971,50 @@ declare namespace system{ *

    * This will trigger a call to {@link yfiles.graph.DefaultGraph#invalidateDisplays}. *

    - * @param {yfiles.graph.INode} node a live node that belongs to this graph - * @param {yfiles.geometry.Rect} layout the new absolute layout in world coordinates of the node + * @param node a live node that belongs to this graph + * @param layout the new absolute layout in world coordinates of the node * @see yfiles.graph.INode#layout */ setNodeLayout(node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; /** * - * @param {yfiles.graph.INode} node - * @param {yfiles.graph.INode} parent + * @param node + * @param parent */ setParent(node:yfiles.graph.INode,parent:yfiles.graph.INode):void; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter + * @param port + * @param locationParameter */ setPortLocationParameter(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):void; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style + * @param port + * @param style */ setStyle(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):void; /** * - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style + * @param edge + * @param style */ setStyle(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):void; /** - * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style + * Assigns the given style instance by reference to the label. + *

    + * Style instances can be shared. + *

    + *

    + * This implementation will {@link yfiles.graph.IGraph#adjustLabelPreferredSize adjust the preferred size} for the label if {@link yfiles.graph.ILabelDefaults#autoAdjustPreferredSize} is enabled. + *

    + * @param label The label that will be assigned the new style + * @param style The style instance that will be assigned to the label. + * @throws {Stubs.Exceptions.ArgumentError} If label is not in this graph. + * @throws {Stubs.Exceptions.ArgumentError} If style is null. + * @see yfiles.graph.ILabel#style + * @see yfiles.graph.DefaultGraph#onChangingLabelStyle + * @see yfiles.graph.DefaultGraph#addLabelStyleChangedListener */ setStyle(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):void; /** @@ -46050,8 +45022,10 @@ declare namespace system{ *

    * Style instances can be shared. *

    - * @param {yfiles.graph.INode} node The node that will be assigned the new style - * @param {yfiles.styles.INodeStyle} style The style instance that will be assigned to the node. + * @param node The node that will be assigned the new style + * @param style The style instance that will be assigned to the node. + * @throws {Stubs.Exceptions.ArgumentError} If node is not in this graph. + * @throws {Stubs.Exceptions.ArgumentError} If style is null. * @see yfiles.graph.INode#style * @see yfiles.graph.DefaultGraph#onChangingNodeStyle * @see yfiles.graph.DefaultGraph#addNodeStyleChangedListener @@ -46162,282 +45136,282 @@ declare namespace system{ edges:yfiles.collections.IListEnumerable; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addGraphTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeGraphTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addNodeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeNodeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ addNodeRemovedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ removeNodeRemovedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addNodeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeNodeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.INode, yfiles.geometry.Rect): void} listener + * @param listener */ addNodeLayoutChangedListener(listener:(source:Object,node:yfiles.graph.INode,oldLayout:yfiles.geometry.Rect)=>void):void; /** * - * @param {function(Object, yfiles.graph.INode, yfiles.geometry.Rect): void} listener + * @param listener */ removeNodeLayoutChangedListener(listener:(source:Object,node:yfiles.graph.INode,oldLayout:yfiles.geometry.Rect)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addNodeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeNodeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addEdgeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeEdgeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ addEdgeRemovedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ removeEdgeRemovedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addEdgeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeEdgeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ addEdgePortsChangedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ removeEdgePortsChangedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addEdgeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeEdgeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addBendAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeBendAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener + * @param listener */ addBendRemovedListener(listener:(sender:Object,evt:yfiles.graph.BendEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener + * @param listener */ removeBendRemovedListener(listener:(sender:Object,evt:yfiles.graph.BendEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.IBend, yfiles.geometry.Point): void} listener + * @param listener */ addBendLocationChangedListener(listener:(source:Object,bend:yfiles.graph.IBend,oldLocation:yfiles.geometry.Point)=>void):void; /** * - * @param {function(Object, yfiles.graph.IBend, yfiles.geometry.Point): void} listener + * @param listener */ removeBendLocationChangedListener(listener:(source:Object,bend:yfiles.graph.IBend,oldLocation:yfiles.geometry.Point)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addBendTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeBendTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener + * @param listener */ addLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener + * @param listener */ removeLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelPreferredSizeChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelPreferredSizeChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelTextChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelTextChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelLayoutParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelLayoutParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addPortAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removePortAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.PortEventArgs): void} listener + * @param listener */ addPortRemovedListener(listener:(sender:Object,evt:yfiles.graph.PortEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.PortEventArgs): void} listener + * @param listener */ removePortRemovedListener(listener:(sender:Object,evt:yfiles.graph.PortEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addPortStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removePortStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addPortLocationParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removePortLocationParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addPortTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removePortTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.lang.EventArgs): void} listener + * @param listener */ addDisplaysInvalidatedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * - * @param {function(Object, yfiles.lang.EventArgs): void} listener + * @param listener */ removeDisplaysInvalidatedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** @@ -46447,22 +45421,22 @@ declare namespace system{ groupNodeDefaults:yfiles.graph.INodeDefaults; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ addParentChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ removeParentChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ addIsGroupNodeChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ removeIsGroupNodeChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** @@ -46482,7 +45456,7 @@ declare namespace system{ * {@link yfiles.graph.SimpleLabel}, associate a style with it and use the style's renderer instance to obtain a rendering for the * label. *

    - * @class yfiles.graph.SimpleLabel + * @class * @implements {yfiles.graph.ILabel} */ export interface SimpleLabel extends Object,yfiles.graph.ILabel{} @@ -46490,10 +45464,9 @@ declare namespace system{ /** * Creates an instance of the {@link yfiles.graph.SimpleLabel} class with default {@link yfiles.graph.DefaultGraph#DEFAULT_LABEL_LOOKUP lookup}, an instance of {@link yfiles.styles.VoidLabelStyle} * and the given {@link yfiles.graph.ILabelModelParameter parameter}, text, and owner. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter that describes the label's layout. - * @param {string} text The label's text. - * @param {yfiles.graph.ILabelOwner} owner The label's owner. - * @constructor + * @param layoutParameter The parameter that describes the label's layout. + * @param text The label's text. + * @param owner The label's owner. */ constructor(owner:yfiles.graph.ILabelOwner,text:string,layoutParameter:yfiles.graph.ILabelModelParameter); /** @@ -46502,32 +45475,54 @@ declare namespace system{ adoptPreferredSizeFromStyle():void; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** - * + * Gets or sets the label model's parameter that determines the positioning of this label. + *

    + * Note that the label model parameter instance associated with a label instance may be shared between multiple label + * instances and that the modification of this instance or its {@link yfiles.graph.ILabelModelParameter#model} will result in a change of the positioning of all labels + * that are associated with the same parameter or model instance. + *

    * @type {yfiles.graph.ILabelModelParameter} */ layoutParameter:yfiles.graph.ILabelModelParameter; /** - * + * Gets or sets the text string associated with this label. + *

    + * It is up to the visualization engine to interpret this property for the visualization of the label. Normally, it will + * render the text into the {@link yfiles.graph.ILabel#layout layout} of this instance. + *

    * @type {string} */ text:string; /** - * + * Gets or sets the style that is responsible for the visual representation of this node in a {@link yfiles.view.CanvasComponent}. + *

    + * Note that the style instance associated with a label instance may be shared between multiple label instances and that + * the modification of this style will result in a change of the appearance of all labels that are associated with the same + * style instance. + *

    * @type {yfiles.styles.ILabelStyle} */ style:yfiles.styles.ILabelStyle; /** - * + * Gets or sets the owner of this label. + *

    + * Typically this will yield an instance of {@link yfiles.graph.INode} or {@link yfiles.graph.IEdge}. + *

    * @type {yfiles.graph.ILabelOwner} */ owner:yfiles.graph.ILabelOwner; /** - * + * Gets or sets the preferred size of the label with respect to its current contents and the implementation of the + * visualization. + *

    + * Often times the {@link yfiles.graph.ILabel#layout layout's} size will be the same as the preferred size, but it's up to the implementation of the {@link yfiles.graph.ILabelModel} + * to interpret it differently. + *

    * @type {yfiles.geometry.Size} */ preferredSize:yfiles.geometry.Size; @@ -46556,7 +45551,7 @@ declare namespace system{ * {@link yfiles.graph.SimpleNode}, associate a style with it and use the style's renderer instance to obtain a rendering for the * node. *

    - * @class yfiles.graph.SimpleNode + * @class * @implements {yfiles.graph.INode} */ export interface SimpleNode extends Object,yfiles.graph.INode{} @@ -46567,32 +45562,40 @@ declare namespace system{ * The instances assigned to {@link yfiles.graph.SimpleNode#layout}, {@link yfiles.graph.SimpleNode#ports} and {@link yfiles.graph.SimpleNode#labels} are immutable by default. To modify the values of those properties, first assign an * instance of a mutable class. *

    - * @constructor */ constructor(); /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** - * + * Gets or sets the layout of the node. + *

    + * The layout of a node is a rectangle in the world coordinate system that describes the bounding box of the representation + * of a node. + *

    * @type {yfiles.geometry.IRectangle} */ layout:yfiles.geometry.IRectangle; /** - * + * Gets or sets the style that is responsible for the visual representation of this node in a {@link yfiles.view.CanvasComponent}. + *

    + * Note that the style instance associated with a node instance may be shared between multiple node instances and that the + * modification of this style will result in a change of the appearance of all nodes that are associated with the same + * style instance. + *

    * @type {yfiles.styles.INodeStyle} */ style:yfiles.styles.INodeStyle; /** - * + * Gets or sets the collection of {@link yfiles.graph.IPort ports} that are owned by this instance. * @type {yfiles.collections.IListEnumerable.} */ ports:yfiles.collections.IListEnumerable; /** - * Gets or sets the collection for the labels. + * Gets or sets the collection of {@link yfiles.graph.ILabel labels} that are owned by this instance. * @type {yfiles.collections.IListEnumerable.} */ labels:yfiles.collections.IListEnumerable; @@ -46618,7 +45621,7 @@ declare namespace system{ * {@link yfiles.graph.SimplePort}, associate a style with it and use the style's renderer instance to obtain a rendering for the * port. *

    - * @class yfiles.graph.SimplePort + * @class * @implements {yfiles.graph.IPort} */ export interface SimplePort extends Object,yfiles.graph.IPort{} @@ -46629,34 +45632,48 @@ declare namespace system{ * While technically the owner can be null here, this can cause issues, e.g. with {@link yfiles.graph.IPortLocationModel port location models} that position the * port relative to its owner. *

    - * @param {yfiles.graph.IPortOwner} owner The port's owner. - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The port's location model parameter. - * @constructor + * @param owner The port's owner. + * @param locationParameter The port's location model parameter. */ constructor(owner:yfiles.graph.IPortOwner,locationParameter:yfiles.graph.IPortLocationModelParameter); /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * Sets the location of this port. - * @param {yfiles.geometry.Point} location + * @param location */ setLocation(location:yfiles.geometry.Point):void; /** - * + * Gets or sets the style that is responsible for the visual representation of this port in a {@link yfiles.view.CanvasComponent}. + *

    + * Note that the style instance associated with a port instance may be shared between multiple port instances and that the + * modification of this style will result in a change of the appearance of all ports that are associated with the same + * style instance. + *

    * @type {yfiles.styles.IPortStyle} */ style:yfiles.styles.IPortStyle; /** - * + * Gets or sets the {@link yfiles.graph.IPortLocationModelParameter} that is used to determine the location of this port. + *

    + * The port location can be calculated using the {@link yfiles.graph.IPortLocationModelParameter#model}'s {@link yfiles.graph.IPortLocationModel#getLocation} method or the convenience + * methods {@link yfiles.graph.IPort#location} and {@link yfiles.graph.IPort#dynamicLocation}. + *

    + *

    + * Note that parameters may be shared across port instances. + *

    + * @see yfiles.graph.IGraph#setPortLocationParameter + * @see yfiles.graph.IPort#location + * @see yfiles.graph.IPort#dynamicLocation * @type {yfiles.graph.IPortLocationModelParameter} */ locationParameter:yfiles.graph.IPortLocationModelParameter; /** - * + * Gets or sets the owner of this port. * @type {yfiles.graph.IPortOwner} */ owner:yfiles.graph.IPortOwner; @@ -46674,7 +45691,7 @@ declare namespace system{ } /** * A label model that wraps an existing label model and decorates it with a {@link yfiles.graph.ILabelCandidateDescriptor descriptor}. - * @class yfiles.graph.DescriptorWrapperLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelCandidateDescriptorProvider} * @implements {yfiles.graph.ILabelModelParameterProvider} @@ -46683,19 +45700,17 @@ declare namespace system{ export class DescriptorWrapperLabelModel { /** * Initializes a new instance of the {@link yfiles.graph.DescriptorWrapperLabelModel} class. - * @param {yfiles.graph.ILabelModel} innerModel The wrapped label model. - * @constructor + * @param innerModel The wrapped label model. */ constructor(innerModel:yfiles.graph.ILabelModel); /** * Initializes a new instance of the {@link yfiles.graph.DescriptorWrapperLabelModel} class. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.ILabelModel} options.innerModel The wrapped label model. + * @param options.innerModel The wrapped label model. * @param {yfiles.graph.ILabelCandidateDescriptor} options.descriptor The descriptor. *

    * This option sets the {@link yfiles.graph.DescriptorWrapperLabelModel#descriptor} property on the created object. *

    - * @constructor */ constructor(options:{innerModel:yfiles.graph.ILabelModel,descriptor?:yfiles.graph.ILabelCandidateDescriptor}); /** @@ -46709,46 +45724,45 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.DescriptorWrapperLabelModel#innerModel} property on the created object. *

    - * @constructor */ constructor(options?:{descriptor?:yfiles.graph.ILabelCandidateDescriptor,innerModel?:yfiles.graph.ILabelModel}); /** * Creates a default parameter that can be used for this model. - * @returns {yfiles.graph.ILabelModelParameter} The default parameter from {@link yfiles.graph.DescriptorWrapperLabelModel#innerModel} + * @returns The default parameter from {@link #innerModel} */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILabelCandidateDescriptor} + * @param label + * @param layoutParameter + * @returns */ getDescriptor(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILabelCandidateDescriptor; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} + * @param label + * @param model + * @returns */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -46779,7 +45793,7 @@ declare namespace system{ * @see yfiles.graph.FoldingManager#hasFoldingEdgeState * @see yfiles.graph.FoldingManager#getFoldingEdgeState * @see yfiles.graph.IFoldingView#isInFoldingState - * @class yfiles.graph.FoldingEdgeStateId + * @class */ export interface FoldingEdgeStateId extends Object{} export class FoldingEdgeStateId { @@ -46788,21 +45802,19 @@ declare namespace system{ *

    * All of the arguments need to be entities of the {@link yfiles.graph.FoldingManager#masterGraph master graph}. *

    - * @param {yfiles.graph.IEdge} masterEdge An edge in the {@link yfiles.graph.FoldingManager#masterGraph} that is represented by the folding edge. - * @param {yfiles.graph.INode} currentMasterSource The source node of the edge or one of its ancestors to which the folding edge connects in the view, if the actual parent - * is currently {@link yfiles.graph.IFoldingView#collapse collapsed in an ancestor node}. - * @param {boolean} sourceCollapsed true if the currentMasterSource is the true source of the masterEdge, but is in its {@link yfiles.graph.IFoldingView#collapse collapsed/dummy} state. - * @param {boolean} targetCollapsed true if the currentMasterTarget is the true target of the masterEdge, but is in its {@link yfiles.graph.IFoldingView#collapse collapsed/dummy} state. - * @param {yfiles.graph.INode} currentMasterTarget The target node of the edge or one of its ancestors to which the folding edge connects in the view, if the actual parent - * is currently {@link yfiles.graph.IFoldingView#collapse collapsed in an ancestor node}. - * @constructor + * @param masterEdge An edge in the {@link #masterGraph} that is represented by the folding edge. + * @param currentMasterSource The source node of the edge or one of its ancestors to which the folding edge connects in the view, if the actual parent + * is currently {@link #collapse collapsed in an ancestor node}. + * @param sourceCollapsed true if the currentMasterSource is the true source of the masterEdge, but is in its {@link #collapse collapsed/dummy} state. + * @param targetCollapsed true if the currentMasterTarget is the true target of the masterEdge, but is in its {@link #collapse collapsed/dummy} state. + * @param currentMasterTarget The target node of the edge or one of its ancestors to which the folding edge connects in the view, if the actual parent + * is currently {@link #collapse collapsed in an ancestor node}. */ constructor(masterEdge:yfiles.graph.IEdge,currentMasterSource:yfiles.graph.INode,sourceCollapsed:boolean,currentMasterTarget:yfiles.graph.INode,targetCollapsed:boolean); /** * Initializes an id for a folding edge that is currently part of the given view. - * @param {yfiles.graph.IFoldingView} foldingView The view the folding edge is part of. - * @param {yfiles.graph.IEdge} foldingEdge The instance that is part of the {@link yfiles.graph.IFoldingView#graph folding view graph}. - * @constructor + * @param foldingView The view the folding edge is part of. + * @param foldingEdge The instance that is part of the {@link #graph folding view graph}. */ constructor(foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge); /** @@ -46867,7 +45879,7 @@ declare namespace system{ * The label placements use a {@link yfiles.graph.EdgePathLabelModel#createRatioParameter ratio} value as fraction of the full edge path length. This is the main difference to the {@link yfiles.graph.EdgePathLabelModel} * which uses a specified segment index from the {@link yfiles.graph.EdgeSegmentLabelModel#createParameterFromSource source} or {@link yfiles.graph.EdgeSegmentLabelModel#createParameterFromTarget target} side and a ratio on this segment. *

    - * @class yfiles.graph.EdgePathLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} * @implements {yfiles.graph.ILabelModelParameterFinder} @@ -46876,12 +45888,11 @@ declare namespace system{ export class EdgePathLabelModel { /** * Initializes a new instance of the {@link yfiles.graph.EdgePathLabelModel} class. - * @param {number} distance the distance to the edge. - * @param {number} offset the offset to the default placement. - * @param {number} angle the angle of the label's rotation in radians. - * @param {boolean} autoRotationEnabled if set to true auto rotation is enabled. - * @param {yfiles.graph.EdgeSides} sideOfEdge the side of the edge labels. - * @constructor + * @param distance the distance to the edge. + * @param offset the offset to the default placement. + * @param angle the angle of the label's rotation in radians. + * @param autoRotationEnabled if set to true auto rotation is enabled. + * @param sideOfEdge the side of the edge labels. */ constructor(distance:number,offset:number,angle:number,autoRotationEnabled:boolean,sideOfEdge:yfiles.graph.EdgeSides); /** @@ -46907,7 +45918,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.EdgePathLabelModel#sideOfEdge} property on the created object. *

    - * @constructor */ constructor(options?:{angle?:number,autoRotationEnabled?:boolean,distance?:number,offset?:number,sideOfEdge?:yfiles.graph.EdgeSides}); /** @@ -46915,28 +45925,28 @@ declare namespace system{ *

    * Returns a model parameter that encodes the default position of this model's allowed edge label positions. *

    - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates a parameter at the provided edge path ratio. - * @param {number} edgePathRatio The ratio at which to place the label at the edge path. A ratio of 0.0 will place the label at the source side of the + * @param edgePathRatio The ratio at which to place the label at the edge path. A ratio of 0.0 will place the label at the source side of the * edge path, a ratio of 1.0 at the target side. - * @param {yfiles.graph.EdgeSides} sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. - * @returns {yfiles.graph.ILabelModelParameter} A label parameter at the provided edge path ratio for this model instance. + * @param sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. + * @returns A label parameter at the provided edge path ratio for this model instance. */ createRatioParameter(edgePathRatio:number,sideOfEdge:yfiles.graph.EdgeSides):yfiles.graph.ILabelModelParameter; /** * Returns an empty context. - * @param {yfiles.graph.ILabel} label The label to use in the context. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use for the label in the context. - * @returns {yfiles.graph.ILookup} An empty context. + * @param label The label to use in the context. + * @param layoutParameter The parameter to use for the label in the context. + * @returns An empty context. */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -47014,7 +46024,7 @@ declare namespace system{ * The label placements use a specified segment index from the {@link yfiles.graph.EdgeSegmentLabelModel#createParameterFromSource source} or {@link yfiles.graph.EdgeSegmentLabelModel#createParameterFromTarget target} side and a ratio on this segment. This is * the main difference to the {@link yfiles.graph.EdgePathLabelModel} which only uses a ratio value of the full edge path. *

    - * @class yfiles.graph.EdgeSegmentLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} * @implements {yfiles.graph.ILabelModelParameterFinder} @@ -47023,12 +46033,11 @@ declare namespace system{ export class EdgeSegmentLabelModel { /** * Initializes a new instance of the {@link yfiles.graph.EdgeSegmentLabelModel} class. - * @param {number} distance the distance to the edge. - * @param {number} offset the offset to the default placement. - * @param {number} angle the angle of the label's rotation in radians. - * @param {boolean} autoRotationEnabled if set to true auto rotation is enabled. - * @param {yfiles.graph.EdgeSides} sideOfEdge the side of the edge labels. - * @constructor + * @param distance the distance to the edge. + * @param offset the offset to the default placement. + * @param angle the angle of the label's rotation in radians. + * @param autoRotationEnabled if set to true auto rotation is enabled. + * @param sideOfEdge the side of the edge labels. */ constructor(distance:number,offset:number,angle:number,autoRotationEnabled:boolean,sideOfEdge:yfiles.graph.EdgeSides); /** @@ -47054,7 +46063,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.EdgeSegmentLabelModel#sideOfEdge} property on the created object. *

    - * @constructor */ constructor(options?:{angle?:number,autoRotationEnabled?:boolean,distance?:number,offset?:number,sideOfEdge?:yfiles.graph.EdgeSides}); /** @@ -47062,49 +46070,49 @@ declare namespace system{ *

    * Returns a model parameter that encodes the default position of this model's allowed edge label positions. *

    - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates a parameter where the label is attached to the edge segment that contains the edge's midpoint. - * @param {number} segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the source side of the + * @param segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the source side of the * segment, a ratio of 1.0 at the target side. Ratios < 0.0 or > 1.0 will be interpreted as absolute values in world * coordinates. - * @param {yfiles.graph.EdgeSides} sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. - * @returns {yfiles.graph.ILabelModelParameter} A label parameter that describes the provided parameters for this model instance. + * @param sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. + * @returns A label parameter that describes the provided parameters for this model instance. */ createParameterFromCenter(segmentRatio:number,sideOfEdge:yfiles.graph.EdgeSides):yfiles.graph.ILabelModelParameter; /** * Creates a parameter that measures the provided segment index from the source side of the edge path. - * @param {number} segmentIndex The zero-based index of the segment beginning from the source side. - * @param {number} segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the source side of the + * @param segmentIndex The zero-based index of the segment beginning from the source side. + * @param segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the source side of the * segment, a ratio of 1.0 at the target side. Ratios < 0.0 or > 1.0 will be interpreted as absolute values in world * coordinates. - * @param {yfiles.graph.EdgeSides} sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. - * @returns {yfiles.graph.ILabelModelParameter} A label parameter that describes the provided parameters for this model instance. + * @param sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. + * @returns A label parameter that describes the provided parameters for this model instance. */ createParameterFromSource(segmentIndex:number,segmentRatio:number,sideOfEdge:yfiles.graph.EdgeSides):yfiles.graph.ILabelModelParameter; /** * Creates a parameter that measures the provided segment index from the target side of the edge path. - * @param {number} segmentIndex The zero-based index of the segment beginning from the target side. - * @param {number} segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the target side of the + * @param segmentIndex The zero-based index of the segment beginning from the target side. + * @param segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the target side of the * segment, a ratio of 1.0 at the source side. Ratios < 0.0 or > 1.0 will be interpreted as absolute values in world * coordinates. - * @param {yfiles.graph.EdgeSides} sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. - * @returns {yfiles.graph.ILabelModelParameter} A label parameter that describes the provided parameters for this model instance. + * @param sideOfEdge The side of the edge the label is placed on. Note that only single enum values but no combined ones are allowed. + * @returns A label parameter that describes the provided parameters for this model instance. */ createParameterFromTarget(segmentIndex:number,segmentRatio:number,sideOfEdge:yfiles.graph.EdgeSides):yfiles.graph.ILabelModelParameter; /** * Returns an empty context. - * @param {yfiles.graph.ILabel} label The label to use in the context. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use for the label in the context. - * @returns {yfiles.graph.ILookup} An empty context. + * @param label The label to use in the context. + * @param layoutParameter The parameter to use for the label in the context. + * @returns An empty context. */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -47242,7 +46250,7 @@ declare namespace system{ *

    * This label model supports eight positions outside of the layout's bounds. *

    - * @class yfiles.graph.ExteriorLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} */ @@ -47255,51 +46263,50 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.ExteriorLabelModel#insets} property on the created object. *

    - * @constructor */ constructor(options?:{insets?:yfiles.geometry.Insets}); /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates a new parameter that is associated with this instance for the provided position. - * @param {yfiles.graph.ExteriorLabelModelPosition} position The position constant that describes the position of the label. - * @returns {yfiles.graph.ILabelModelParameter} A new parameter instance. + * @param position The position constant that describes the position of the label. + * @returns A new parameter instance. */ createParameter(position:yfiles.graph.ExteriorLabelModelPosition):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} + * @param label + * @param model + * @returns */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47309,7 +46316,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47319,7 +46326,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47329,7 +46336,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47339,7 +46346,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47349,7 +46356,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47359,7 +46366,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47369,7 +46376,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.ExteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -47409,7 +46416,7 @@ declare namespace system{ *
  • Demo: OrgChart, Demo.yFiles.Graph.OrgChart
  • *
  • Demo: Collapsible Tree, Demo.yFiles.Graph.Collapse
  • * - * @class yfiles.graph.FilteredGraphWrapper + * @class * @extends {yfiles.graph.GraphWrapperBase} * @final */ @@ -47422,15 +46429,14 @@ declare namespace system{ * Note that this instance will register listeners with the graph, so {@link yfiles.graph.FilteredGraphWrapper#dispose} should be * called if this instance is not used any more. *

    - * @param {yfiles.graph.IGraph} graph The graph to wrap - * @param {function(yfiles.graph.INode): boolean} nodePredicate The predicate that determines which nodes to keep. - * @param {function(yfiles.graph.IEdge): boolean} edgePredicate The predicate that determines which edges to keep. - * @constructor + * @param graph The graph to wrap + * @param nodePredicate The predicate that determines which nodes to keep. + * @param edgePredicate The predicate that determines which edges to keep. */ constructor(graph:yfiles.graph.IGraph,nodePredicate:(obj:yfiles.graph.INode)=>boolean,edgePredicate:(obj:yfiles.graph.IEdge)=>boolean); /** * Should be called by the client if the {@link yfiles.graph.FilteredGraphWrapper#edgePredicate} changed for the given edge in the graph. - * @param {yfiles.graph.IEdge} edge + * @param edge */ edgePredicateChanged(edge:yfiles.graph.IEdge):void; /** @@ -47439,7 +46445,7 @@ declare namespace system{ edgePredicateChanged():void; /** * Should be called by clients if the {@link yfiles.graph.FilteredGraphWrapper#nodePredicate} changed for the given node. - * @param {yfiles.graph.INode} node The node. + * @param node The node. */ nodePredicateChanged(node:yfiles.graph.INode):void; /** @@ -47483,7 +46489,7 @@ declare namespace system{ *

    * The position of the label is stored relative to the positions of the ports of the edge the label belongs to. *

    - * @class yfiles.graph.FreeEdgeLabelModel + * @class * @implements {yfiles.graph.ILabelModelParameterFinder} * @implements {yfiles.graph.ILabelModel} */ @@ -47491,16 +46497,16 @@ declare namespace system{ export class FreeEdgeLabelModel { /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates a parameter for the given location. - * @param {number} ratio The ratio at which the label will be anchored between the location of the source port and the location of the target + * @param ratio The ratio at which the label will be anchored between the location of the source port and the location of the target * port. - * @param {number} distance The distance orthogonally to the connection between the source and target point. - * @param {number} angle The angle by which the label should be rotated. - * @returns {yfiles.graph.ILabelModelParameter} A parameter that describes the position. + * @param distance The distance orthogonally to the connection between the source and target point. + * @param angle The angle by which the label should be rotated. + * @returns A parameter that describes the position. * @see yfiles.graph.FreeEdgeLabelModel#edgeRelativeAngle */ createEdgeAnchored(ratio:number,distance:number,angle:number):yfiles.graph.ILabelModelParameter; @@ -47509,30 +46515,30 @@ declare namespace system{ *

    * This implementation will match the provided layout perfectly. *

    - * @param {yfiles.graph.ILabel} label The label to find a parameter for. - * @param {yfiles.graph.ILabelModel} model The model instance to use. This should be this instance. - * @param {yfiles.geometry.IOrientedRectangle} layout The anticipated layout for the label. - * @returns {yfiles.graph.ILabelModelParameter} A non-null parameter that can be used for the label to approximate the provided layout. + * @param label The label to find a parameter for. + * @param model The model instance to use. This should be this instance. + * @param layout The anticipated layout for the label. + * @returns A non-null parameter that can be used for the label to approximate the provided layout. */ findBestParameter(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel,layout:yfiles.geometry.IOrientedRectangle):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -47560,7 +46566,7 @@ declare namespace system{ * The position of the label is stored absolutely and is not influenced by the layout or position of the owner of the * label. In fact the owner is not even queried during a call to {@link yfiles.graph.FreeLabelModel#getGeometry}. *

    - * @class yfiles.graph.FreeLabelModel + * @class * @implements {yfiles.graph.ILabelModelParameterFinder} * @implements {yfiles.graph.ILabelModel} */ @@ -47568,47 +46574,47 @@ declare namespace system{ export class FreeLabelModel { /** * Creates a new label model parameter that places the label at the given absolute position using the provided angle. - * @param {yfiles.geometry.Point} anchorLocation The location for the parameter. - * @param {number} angle The angle of rotation. - * @returns {yfiles.graph.ILabelModelParameter} A new parameter that is associated with this instance. + * @param anchorLocation The location for the parameter. + * @param angle The angle of rotation. + * @returns A new parameter that is associated with this instance. */ createAbsolute(anchorLocation:yfiles.geometry.Point,angle:number):yfiles.graph.ILabelModelParameter; /** * Creates a new label at the given dynamic location using the provided angle. - * @param {yfiles.geometry.IPoint} location The location to place the parameter at. That instance is stored by reference. - * @param {number} angle The angle of rotation. - * @returns {yfiles.graph.ILabelModelParameter} A new parameter that is associated with this instance. + * @param location The location to place the parameter at. That instance is stored by reference. + * @param angle The angle of rotation. + * @returns A new parameter that is associated with this instance. */ createAnchored(location:yfiles.geometry.IPoint,angle:number):yfiles.graph.ILabelModelParameter; /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates a new label model parameter that dynamically reads the label layout from the provided instance. - * @param {yfiles.geometry.IOrientedRectangle} layout The oriented rectangle to dynamically retrieve the values from. - * @returns {yfiles.graph.ILabelModelParameter} A new parameter that is associated with this instance. + * @param layout The oriented rectangle to dynamically retrieve the values from. + * @returns A new parameter that is associated with this instance. */ createDynamic(layout:yfiles.geometry.IOrientedRectangle):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -47625,7 +46631,7 @@ declare namespace system{ *

    * The position of the label is stored relative to the layout of the node the label belongs to. *

    - * @class yfiles.graph.FreeNodeLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterFinder} */ @@ -47645,15 +46651,15 @@ declare namespace system{ * the start or end coordinate of the label matches the start, center or end coordinate of the node, that coordinate is the * reference. Otherwise, the center of the label specifies the reference. *

    - * @param {yfiles.geometry.Rect} nodeLayout The node layout. - * @param {yfiles.geometry.IOrientedRectangle} labelLayout The label layout. - * @param {yfiles.geometry.Point} [referenceLocation=null] The reference location. - * @returns {yfiles.graph.ILabelModelParameter} The canonical parameter for the specified node and label layout. + * @param nodeLayout The node layout. + * @param labelLayout The label layout. + * @param [referenceLocation=null] The reference location. + * @returns The canonical parameter for the specified node and label layout. */ createCanonicalParameter(nodeLayout:yfiles.geometry.Rect,labelLayout:yfiles.geometry.IOrientedRectangle,referenceLocation?:yfiles.geometry.Point):yfiles.graph.ILabelModelParameter; /** * Creates a parameter that is anchored at the node center and has no rotation. - * @returns {yfiles.graph.ILabelModelParameter} A parameter that is anchored at the node center and has no rotation. + * @returns A parameter that is anchored at the node center and has no rotation. */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** @@ -47662,13 +46668,13 @@ declare namespace system{ * The parameter will use the ratio and offset values to determine a point on both the label and the node. It will place * the label in such a way that both points coincide. *

    - * @param {yfiles.geometry.Point} layoutRatio The ratio that describes the point on the node's layout relative to its size. - * @param {yfiles.geometry.Point} layoutOffset The offset to apply to the point on the node after the ratio has been determined. - * @param {yfiles.geometry.Point} labelRatio The ratio that describes the point on the label's layout relative to its size. - * @param {yfiles.geometry.Point} labelOffset The offset to apply to the point on the label after the ratio has been determined. - * @param {number} angle The angle by which the label should be rotated around the point described using the ratio and offset, measured in + * @param layoutRatio The ratio that describes the point on the node's layout relative to its size. + * @param layoutOffset The offset to apply to the point on the node after the ratio has been determined. + * @param labelRatio The ratio that describes the point on the label's layout relative to its size. + * @param labelOffset The offset to apply to the point on the label after the ratio has been determined. + * @param angle The angle by which the label should be rotated around the point described using the ratio and offset, measured in * radians. - * @returns {yfiles.graph.ILabelModelParameter} A parameter that exactly fits the described location. + * @returns A parameter that exactly fits the described location. */ createParameter(layoutRatio:yfiles.geometry.Point,layoutOffset:yfiles.geometry.Point,labelRatio:yfiles.geometry.Point,labelOffset:yfiles.geometry.Point,angle:number):yfiles.graph.ILabelModelParameter; /** @@ -47676,30 +46682,30 @@ declare namespace system{ *

    * This implementation will match the provided layout perfectly. *

    - * @param {yfiles.graph.ILabel} label The label to find a parameter for. - * @param {yfiles.graph.ILabelModel} model The model instance to use. This should be this instance. - * @param {yfiles.geometry.IOrientedRectangle} layout The anticipated layout for the label. - * @returns {yfiles.graph.ILabelModelParameter} A non-null parameter that can be used for the label to approximate the provided layout. + * @param label The label to find a parameter for. + * @param model The model instance to use. This should be this instance. + * @param layout The anticipated layout for the label. + * @returns A non-null parameter that can be used for the label to approximate the provided layout. */ findBestParameter(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel,layout:yfiles.geometry.IOrientedRectangle):yfiles.graph.ILabelModelParameter; /** * Returns an empty context. - * @param {yfiles.graph.ILabel} label The label to use in the context. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use for the label in the context. - * @returns {yfiles.graph.ILookup} An empty context. + * @param label The label to use in the context. + * @param layoutParameter The parameter to use for the label in the context. + * @returns An empty context. */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * Returns this instance if an instance of {@link yfiles.graph.ILabelModelParameterFinder} is requested and null otherwise. - * @param {yfiles.lang.Class} type The type for which an instance is requested. - * @returns {Object} An instance that is assignable to the given type or null. + * @param type The type for which an instance is requested. + * @returns An instance that is assignable to the given type or null. */ lookup(type:yfiles.lang.Class):Object; /** @@ -47718,7 +46724,7 @@ declare namespace system{ * Internally the location is stored as the ratios by which the {@link yfiles.geometry.ISize#width} and {@link yfiles.geometry.ISize#height} of the {@link yfiles.graph.INode#layout} need to be scaled and additional offsets to * obtain the offset to the top-left corner of the node layout. *

    - * @class yfiles.graph.FreeNodePortLocationModel + * @class * @implements {yfiles.graph.IPortLocationModel} * @final */ @@ -47726,9 +46732,9 @@ declare namespace system{ export class FreeNodePortLocationModel { /** * - * @param {yfiles.graph.IPortOwner} owner - * @param {yfiles.geometry.Point} location - * @returns {yfiles.graph.IPortLocationModelParameter} + * @param owner + * @param location + * @returns */ createParameter(owner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point):yfiles.graph.IPortLocationModelParameter; /** @@ -47737,29 +46743,29 @@ declare namespace system{ * The ratios will be scaled by the node layout's size and added to the node's top left corner and the offset to determine * the port location. *

    - * @param {yfiles.geometry.Point} ratios The ratios of the node layout's size. - * @param {yfiles.geometry.Point} [offset=null] The offset that is added after the ratios are applied. - * @returns {yfiles.graph.IPortLocationModelParameter} A new parameter that matches the specification. + * @param ratios The ratios of the node layout's size. + * @param [offset=null] The offset that is added after the ratios are applied. + * @returns A new parameter that matches the specification. */ createParameterForRatios(ratios:yfiles.geometry.Point,offset?:yfiles.geometry.Point):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.graph.ILookup} + * @param port + * @param locationParameter + * @returns */ getContext(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.geometry.Point} + * @param port + * @param locationParameter + * @returns */ getLocation(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.geometry.Point; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -47772,7 +46778,7 @@ declare namespace system{ /** * A read only immutable singleton instance of a parameter that locates the port at the center of the node layout. *

    - * This is the same as creating a parameter using (0.5,0.5) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (0.5,0.5) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47783,7 +46789,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the center of the left border of the * node layout. *

    - * This is the same as creating a parameter using (0,0.5) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (0,0.5) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47794,7 +46800,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the center of the right border of the * node layout. *

    - * This is the same as creating a parameter using (1,0.5) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (1,0.5) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47805,7 +46811,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the center of the top border of the * node layout. *

    - * This is the same as creating a parameter using (0.5,0) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (0.5,0) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47816,7 +46822,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the center of the bottom border of the * node layout. *

    - * This is the same as creating a parameter using (0.5,1) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (0.5,1) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47827,7 +46833,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the top left corner of the node * layout. *

    - * This is the same as creating a parameter using (0,0) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (0,0) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47838,7 +46844,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the top right corner of the node * layout. *

    - * This is the same as creating a parameter using (1,0) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (1,0) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47849,7 +46855,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the bottom right corner of the node * layout. *

    - * This is the same as creating a parameter using (1,1) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (1,1) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47860,7 +46866,7 @@ declare namespace system{ * A read only immutable singleton instance of a parameter that locates the port at the bottom left corner of the node * layout. *

    - * This is the same as creating a parameter using (0,1) as ratios and (0,0) as offsets. + * This is the same as {@link yfiles.graph.FreeNodePortLocationModel#createParameterForRatios creating a parameter} using (0,1) as ratios and (0,0) as offsets. *

    * @const * @static @@ -47876,7 +46882,7 @@ declare namespace system{ * This class holds a number of parameters and serves as a container for these parameters. Custom models can easily be * created that way: *

    - * @class yfiles.graph.GenericLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} * @implements {yfiles.graph.ILabelCandidateDescriptorProvider} @@ -47889,11 +46895,10 @@ declare namespace system{ *

    * The parameter is stored by reference. *

    - * @param {yfiles.graph.ILabelModelParameter} defaultLayoutParameter The parameter to use as the default. - * @param {yfiles.graph.ILabelCandidateDescriptor} [descriptor=null] The descriptor to associate with the parameter. + * @param defaultLayoutParameter The parameter to use as the default. + * @param [descriptor=null] The descriptor to associate with the parameter. * @throws {Stubs.Exceptions.ArgumentError} defaultParameter is null. * @see yfiles.graph.GenericLabelModel#getDescriptor - * @constructor */ constructor(defaultLayoutParameter:yfiles.graph.ILabelModelParameter,descriptor?:yfiles.graph.ILabelCandidateDescriptor); /** @@ -47904,35 +46909,35 @@ declare namespace system{ * associated model will be reflected by this instance. Also the methods allows for associating a {@link yfiles.graph.ILabelCandidateDescriptor} * with each parameter that can later be retrieved via the {@link yfiles.graph.GenericLabelModel#getDescriptor} method. *

    - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to add to this instance. - * @param {yfiles.graph.ILabelCandidateDescriptor} [descriptor=null] The descriptor to associate with the parameter. - * @returns {yfiles.graph.ILabelModelParameter} A new parameter that wraps the provided parameter and uses this instance as its model. + * @param layoutParameter The parameter to add to this instance. + * @param [descriptor=null] The descriptor to associate with the parameter. + * @returns A new parameter that wraps the provided parameter and uses this instance as its model. */ addParameter(layoutParameter:yfiles.graph.ILabelModelParameter,descriptor?:yfiles.graph.ILabelCandidateDescriptor):yfiles.graph.ILabelModelParameter; /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * Yields the {@link yfiles.graph.ILabelCandidateDescriptor} that has been associated with the instance during * {@link yfiles.graph.GenericLabelModel#addParameter}. - * @param {yfiles.graph.ILabel} label The label instance to use. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to get the descriptor for. - * @returns {yfiles.graph.ILabelCandidateDescriptor} The descriptor instance that had been added to this instance during {@link yfiles.graph.GenericLabelModel#addParameter}. + * @param label The label instance to use. + * @param layoutParameter The parameter to get the descriptor for. + * @returns The descriptor instance that had been added to this instance during {@link #addParameter}. */ getDescriptor(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILabelCandidateDescriptor; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; static $class:yfiles.lang.Class; @@ -47950,7 +46955,7 @@ declare namespace system{ * Note that in order to work, this model needs to have at least one {@link yfiles.graph.GenericPortLocationModel#addParameter parameter added}. *

    * @see yfiles.graph.GenericPortLocationModel#addParameter - * @class yfiles.graph.GenericPortLocationModel + * @class * @implements {yfiles.graph.IPortLocationModel} * @implements {yfiles.collections.IEnumerable.} * @implements {yfiles.graphml.IMarkupExtensionConverter} @@ -47960,7 +46965,6 @@ declare namespace system{ export class GenericPortLocationModel { /** * Initializes a new instance of the {@link yfiles.graph.GenericPortLocationModel} class. - * @constructor */ constructor(); /** @@ -47971,7 +46975,7 @@ declare namespace system{ *

    * This method is used by the compiler if the collection initializer syntax is used. *

    - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The parameter to add to this instance. + * @param locationParameter The parameter to add to this instance. * @see yfiles.graph.GenericPortLocationModel#addParameter */ add(locationParameter:yfiles.graph.IPortLocationModelParameter):void; @@ -47981,8 +46985,8 @@ declare namespace system{ * Note that this will create a new parameter instance that is then actually bound to this instance and returned. The * instance is stored by reference so if this is a mutable instance this instance will be modified, implicitly, too. *

    - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The parameter to add to this instance. - * @returns {yfiles.graph.IPortLocationModelParameter} The parameter to use with this model that wraps the given parameter. + * @param locationParameter The parameter to add to this instance. + * @returns The parameter to use with this model that wraps the given parameter. * @see yfiles.graph.GenericPortLocationModel#add */ addParameter(locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.graph.IPortLocationModelParameter; @@ -47992,29 +46996,29 @@ declare namespace system{ *

    * This implementation iterates over all {@link yfiles.graph.GenericPortLocationModel#locationParameters} to return the one that matches the given location the best. *

    - * @param {yfiles.graph.IPortOwner} owner The port owner that will own the port for which the parameter shall be created. - * @param {yfiles.geometry.Point} location The location in the world coordinate system that should be matched as best as possible. - * @returns {yfiles.graph.IPortLocationModelParameter} A new instance that can be used to describe the location of an {@link yfiles.graph.IPort} at the given owner. + * @param owner The port owner that will own the port for which the parameter shall be created. + * @param location The location in the world coordinate system that should be matched as best as possible. + * @returns A new instance that can be used to describe the location of an {@link } at the given owner. */ createParameter(owner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.graph.ILookup} + * @param port + * @param locationParameter + * @returns */ getContext(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.geometry.Point} + * @param port + * @param locationParameter + * @returns */ getLocation(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.geometry.Point; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -48051,9 +47055,9 @@ declare namespace system{ *

    * If the source graph is a managed folding view, the item is always a master item. *

    - * @param {yfiles.graph.IGraphClipboardContext} context The context in which this interface is used, can be null - * @param {yfiles.graph.IModelItem} item The item to copy to the clipboard. - * @returns {Object} A custom user object that will later be provided to {@link yfiles.graph.IClipboardHelper#paste}. + * @param context The context in which this interface is used, can be null + * @param item The item to copy to the clipboard. + * @returns A custom user object that will later be provided to {@link #paste}. * @abstract */ copy(context:yfiles.graph.IGraphClipboardContext,item:yfiles.graph.IModelItem):Object; @@ -48063,9 +47067,9 @@ declare namespace system{ *

    * If the source graph is a managed folding view, the item is always a master item. *

    - * @param {yfiles.graph.IGraphClipboardContext} context The context in which this interface is used, can be null - * @param {yfiles.graph.IModelItem} item The item to cut to the clipboard. - * @returns {Object} A custom user object that will later be provided to {@link yfiles.graph.IClipboardHelper#paste}. + * @param context The context in which this interface is used, can be null + * @param item The item to cut to the clipboard. + * @returns A custom user object that will later be provided to {@link #paste}. * @abstract */ cut(context:yfiles.graph.IGraphClipboardContext,item:yfiles.graph.IModelItem):Object; @@ -48074,9 +47078,9 @@ declare namespace system{ *

    * The item is always a master item since the clipboard graph is not a managed folding view. *

    - * @param {yfiles.graph.IGraphClipboardContext} context The context in which this interface is used, can be null - * @param {yfiles.graph.IModelItem} item The item that has been created during the paste operation. - * @param {Object} userData The data that had been queried during {@link yfiles.graph.IClipboardHelper#cut} or {@link yfiles.graph.IClipboardHelper#copy} + * @param context The context in which this interface is used, can be null + * @param item The item that has been created during the paste operation. + * @param userData The data that had been queried during {@link #cut} or {@link #copy} * respectively. * @abstract */ @@ -48088,9 +47092,9 @@ declare namespace system{ * copied, this method will be queried with the collapsed group node as item for each "hidden" node that is currently not * visible. *

    - * @param {yfiles.graph.IGraphClipboardContext} context The context in which this interface is used, can be null - * @param {yfiles.graph.IModelItem} item The item in question. - * @returns {boolean} Whether this item should be copied. + * @param context The context in which this interface is used, can be null + * @param item The item in question. + * @returns Whether this item should be copied. * @abstract */ shouldCopy(context:yfiles.graph.IGraphClipboardContext,item:yfiles.graph.IModelItem):boolean; @@ -48101,9 +47105,9 @@ declare namespace system{ * cut, this method will be queried with the collapsed group node as item for each "hidden" node that is currently not * visible. *

    - * @param {yfiles.graph.IGraphClipboardContext} context The context in which this interface is used, can be null - * @param {yfiles.graph.IModelItem} item The item in question. - * @returns {boolean} Whether this item should be cut. + * @param context The context in which this interface is used, can be null + * @param item The item in question. + * @returns Whether this item should be cut. * @abstract */ shouldCut(context:yfiles.graph.IGraphClipboardContext,item:yfiles.graph.IModelItem):boolean; @@ -48112,10 +47116,10 @@ declare namespace system{ *

    * The item is always a master item since the clipboard graph is not a managed folding view. *

    - * @param {yfiles.graph.IGraphClipboardContext} context The context in which this interface is used, can be null - * @param {yfiles.graph.IModelItem} item The item in the clipboard graph. - * @param {Object} userData The state memento that had been created during {@link yfiles.graph.IClipboardHelper#cut} or {@link yfiles.graph.IClipboardHelper#copy}. - * @returns {boolean} Whether this item should be pasted. + * @param context The context in which this interface is used, can be null + * @param item The item in the clipboard graph. + * @param userData The state memento that had been created during {@link #cut} or {@link #copy}. + * @returns Whether this item should be pasted. * @abstract */ shouldPaste(context:yfiles.graph.IGraphClipboardContext,item:yfiles.graph.IModelItem,userData:Object):boolean; @@ -48169,17 +47173,17 @@ declare namespace system{ export interface IClipboardIdProvider extends Object{ /** * Gets the ID for the given originalItem. - * @param {yfiles.graph.IGraphClipboardContext} context The clipboard context - * @param {yfiles.graph.IModelItem} originalItem The original item which is copied. The item is part of the original graph from which the item is copied. - * @returns {Object} An ID for the given item. The object should be suitable for use in a {@link yfiles.collections.Map.}. + * @param context The clipboard context + * @param originalItem The original item which is copied. The item is part of the original graph from which the item is copied. + * @returns An ID for the given item. The object should be suitable for use in a {@link }. * @abstract */ getId(context:yfiles.graph.IGraphClipboardContext,originalItem:yfiles.graph.IModelItem):Object; /** * Gets the item which is represented by the given id. - * @param {yfiles.graph.IGraphClipboardContext} context The clipboard context. - * @param {Object} id The ID to get the item for. - * @returns {yfiles.graph.IModelItem} The item which is represented by the given ID or null if the item cannot be located or is invalid. The item needs to be + * @param context The clipboard context. + * @param id The ID to get the item for. + * @returns The item which is represented by the given ID or null if the item cannot be located or is invalid. The item needs to be * part of the target graph for paste operations. * @abstract */ @@ -48273,9 +47277,10 @@ declare namespace system{ * * @see yfiles.graph.IClipboardHelper * @see yfiles.graph.GraphClipboard#cut - * @see yfiles.graph.GraphClipboard#copy + * @see yfiles.graph.GraphClipboard#onCopy + * @see yfiles.graph.GraphClipboard#paste * @see yfiles.graph.GraphClipboard#clipboardGraph - * @class yfiles.graph.GraphClipboard + * @class */ export interface GraphClipboard extends Object{} export class GraphClipboard { @@ -48322,68 +47327,54 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.GraphClipboard#copyItems} property on the created object. *

    - * @constructor */ constructor(options?:{pasteDelta?:yfiles.geometry.Point,toClipboardCopier?:yfiles.graph.GraphCopier,fromClipboardCopier?:yfiles.graph.GraphCopier,duplicateCopier?:yfiles.graph.GraphCopier,idProvider?:yfiles.graph.IClipboardIdProvider,clipboardGraph?:yfiles.graph.IGraph,parentNodeDetection?:yfiles.graph.ParentNodeDetectionModes,dependentCopyItems?:yfiles.graph.GraphItemTypes,independentCopyItems?:yfiles.graph.GraphItemTypes,copyItems?:yfiles.graph.GraphItemTypes}); /** * Clears the clipboard's contents. */ clear():void; - /** - * Calls {@link yfiles.graph.GraphCopier#copy} on the current {@link yfiles.graph.GraphClipboard#toClipboardCopier} instance or {@link yfiles.graph.GraphClipboard#fromClipboardCopier} instance, depending on whether the targetGraph is the {@link yfiles.graph.GraphClipboard#clipboardGraph} - * instance. - * @param {yfiles.graph.IGraph} sourceGraph The source graph to pass to {@link yfiles.graph.GraphCopier#copy} - * @param {function(yfiles.graph.IModelItem): boolean} filter The predicate to pass on. - * @param {yfiles.graph.IGraph} targetGraph The target graph to pass on. - * @param {yfiles.graph.INode} targetRootNode The node to use as the root node in the grouped targetGraph. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} elementCopiedCallback The delegate to pass on. For each element that is copied during the operation to the clipboard, this callback will be - * passed the original and the copy of the item. In case the sourceGraph is a {@link yfiles.graph.FoldingManager#views folding view graph} both elements are passed - * as {@link yfiles.graph.FoldingManager#masterGraph master} elements or {@link yfiles.graph.FoldingManager#getFolderNodeState folding state elements} if a master element does not exist. - * @protected - */ - copy(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,targetGraph:yfiles.graph.IGraph,targetRootNode:yfiles.graph.INode,elementCopiedCallback:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void):void; /** * Copies the elements indicated by the filter to the clipboard graph. *

    * For each element copied to the clipboard graph the {@link yfiles.graph.GraphClipboard#onElementCopied} delegate will be called. * The actual work of this method is delegated to the {@link yfiles.graph.GraphClipboard#toClipboardCopier}'s {@link yfiles.graph.GraphCopier#copy} method. *

    - * @param {yfiles.graph.IGraph} sourceGraph The graph to copy the contents from. - * @param {function(yfiles.graph.IModelItem): boolean} filter The filter to apply to the source graph's elements. + * @param sourceGraph The graph to copy the contents from. + * @param filter The filter to apply to the source graph's elements. */ copy(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean):void; /** * Creates the graph used for the clipboard. - * @returns {yfiles.graph.IGraph} A new readily configured {@link yfiles.graph.DefaultGraph} instance. + * @returns A new readily configured {@link } instance. * @protected */ createClipboardGraph():yfiles.graph.IGraph; /** * Convenience method that creates a predicate that is based upon the outcome of the {@link yfiles.graph.IClipboardHelper#shouldCopy} * method that can be found in the {@link yfiles.graph.ILookup#lookup} of the provided {@link yfiles.graph.IModelItem}. - * @returns {function(yfiles.graph.IModelItem): boolean} A predicate that uses {@link yfiles.graph.IClipboardHelper#shouldCopy}. - * @see yfiles.graph.GraphClipboard#copy + * @returns A predicate that uses {@link #shouldCopy}. + * @see yfiles.graph.GraphClipboard#onCopy */ createClipBoardHelperCopyFilter():(obj:yfiles.graph.IModelItem)=>boolean; /** * Convenience method that creates a predicate that is based upon the outcome of the {@link yfiles.graph.IClipboardHelper#shouldCut} * method that can be found in the {@link yfiles.graph.ILookup#lookup} of the provided {@link yfiles.graph.IModelItem}. - * @returns {function(yfiles.graph.IModelItem): boolean} A predicate that uses {@link yfiles.graph.IClipboardHelper#shouldCut}. + * @returns A predicate that uses {@link #shouldCut}. * @see yfiles.graph.GraphClipboard#cut */ createClipBoardHelperCutFilter():(obj:yfiles.graph.IModelItem)=>boolean; /** * Convenience method that creates a predicate that is based upon the outcome of the {@link yfiles.graph.IClipboardHelper#shouldPaste} * method that can be found in the {@link yfiles.graph.ILookup#lookup} of the provided {@link yfiles.graph.IModelItem}. - * @returns {function(yfiles.graph.IModelItem): boolean} A predicate that uses {@link yfiles.graph.IClipboardHelper#shouldPaste}. + * @returns A predicate that uses {@link #shouldPaste}. * @see yfiles.graph.GraphClipboard#cut */ createClipBoardHelperPasteFilter():(obj:yfiles.graph.IModelItem)=>boolean; /** * Factory method that creates the context for the upcoming calls to the {@link yfiles.graph.IClipboardHelper} methods. - * @param {yfiles.graph.IGraph} sourceGraph The source graph of the operation. - * @param {yfiles.graph.IGraph} targetGraph The target graph of the operation. - * @returns {yfiles.graph.IGraphClipboardContext} A context that has the properties configured according to the parameters. + * @param sourceGraph The source graph of the operation. + * @param targetGraph The target graph of the operation. + * @returns A context that has the properties configured according to the parameters. * @protected */ createContext(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph):yfiles.graph.IGraphClipboardContext; @@ -48395,12 +47386,12 @@ declare namespace system{ *

    * Custom ID can be used to map between elements in different graphs. *

    - * @returns {yfiles.graph.IClipboardIdProvider} + * @returns * @protected */ createDefaultClipboardIdProvider():yfiles.graph.IClipboardIdProvider; /** - * Creates a predicate for use in the {@link yfiles.graph.GraphClipboard#copy} method. + * Creates a predicate for use in the {@link yfiles.graph.GraphClipboard#onCopy} method. *

    * This filter uses two predicates to decide whether a graph item can be copied. The base set of items specified by this * filter is induced by the {@link yfiles.graph.GraphClipboard#createSelectionFilter}. Optionally, this set can be restricted @@ -48408,9 +47399,9 @@ declare namespace system{ * or any item this item depends on, then the item will not be copied. Items without such a predicate are handled solely * according to their selection state. *

    - * @param {yfiles.view.IGraphSelection} selection The selection model to base the filter on. - * @param {yfiles.graph.IGraph} graph The graph to use for determining adjacency. - * @returns {function(yfiles.graph.IModelItem): boolean} A predicate that filters subgraph induced by the selection of nodes and restricted by an optional {@link yfiles.graph.IClipboardHelper#shouldCopy} + * @param selection The selection model to base the filter on. + * @param graph The graph to use for determining adjacency. + * @returns A predicate that filters subgraph induced by the selection of nodes and restricted by an optional {@link #shouldCopy} * predicate. */ createDefaultCopyFilter(selection:yfiles.view.IGraphSelection,graph:yfiles.graph.IGraph):(obj:yfiles.graph.IModelItem)=>boolean; @@ -48423,9 +47414,9 @@ declare namespace system{ * or any item this item depends on, then the item will not be cut. Items without such a predicate are handled solely * according to their selection state. *

    - * @param {yfiles.view.IGraphSelection} selection The selection model to base the filter on. - * @param {yfiles.graph.IGraph} graph The graph to use for determining adjacency. - * @returns {function(yfiles.graph.IModelItem): boolean} A predicate that filters subgraph induced by the selection of nodes and restricted by an optional {@link yfiles.graph.IClipboardHelper#shouldCut} + * @param selection The selection model to base the filter on. + * @param graph The graph to use for determining adjacency. + * @returns A predicate that filters subgraph induced by the selection of nodes and restricted by an optional {@link #shouldCut} * predicate. */ createDefaultCutFilter(selection:yfiles.view.IGraphSelection,graph:yfiles.graph.IGraph):(obj:yfiles.graph.IModelItem)=>boolean; @@ -48439,44 +47430,44 @@ declare namespace system{ * or any item this item depends on, then the item will not be copied. Items without such a predicate are handled solely * according to their selection state. *

    - * @param {yfiles.view.IGraphSelection} selection The selection model to base the filter on. - * @param {yfiles.graph.IGraph} graph The graph to use for determining adjacency. - * @returns {function(yfiles.graph.IModelItem): boolean} A predicate that filters subgraph induced by the selection of nodes and restricted by an optional {@link yfiles.graph.IClipboardHelper#shouldCopy} + * @param selection The selection model to base the filter on. + * @param graph The graph to use for determining adjacency. + * @returns A predicate that filters subgraph induced by the selection of nodes and restricted by an optional {@link #shouldCopy} * predicate. */ createDefaultDuplicateFilter(selection:yfiles.view.IGraphSelection,graph:yfiles.graph.IGraph):(obj:yfiles.graph.IModelItem)=>boolean; /** * Factory method that creates the {@link yfiles.graph.GraphClipboard#duplicateCopier}. - * @returns {yfiles.graph.GraphCopier} A new {@link yfiles.graph.GraphCopier} instance. + * @returns A new {@link } instance. * @protected */ createDuplicateCopier():yfiles.graph.GraphCopier; /** * Factory method that creates the {@link yfiles.graph.GraphClipboard#fromClipboardCopier}. - * @returns {yfiles.graph.GraphCopier} A new {@link yfiles.graph.GraphCopier} instance. + * @returns A new {@link } instance. * @protected */ createFromClipboardCopier():yfiles.graph.GraphCopier; /** - * Creates a predicate for use in the {@link yfiles.graph.GraphClipboard#cut} and {@link yfiles.graph.GraphClipboard#copy} methods. + * Creates a predicate for use in the {@link yfiles.graph.GraphClipboard#cut} and {@link yfiles.graph.GraphClipboard#onCopy} methods. *

    * This predicate is based on the element induced by the set of selected nodes, e.g. each edge that has both of its * adjacent port owners selected will be included as well as each label and port whose owner is included. Also ports where * no adjacent edge is included (but edges exist), will not be included, unless the {@link yfiles.graph.IPortDefaults#autoCleanup} is set to false. *

    - * @param {yfiles.view.IGraphSelection} selection The selection model to base the filter on. - * @param {yfiles.graph.IGraph} graph The graph to use for determining adjacency. - * @returns {function(yfiles.graph.IModelItem): boolean} A predicate that filters subgraph induced by the selection of nodes. + * @param selection The selection model to base the filter on. + * @param graph The graph to use for determining adjacency. + * @returns A predicate that filters subgraph induced by the selection of nodes. */ createSelectionFilter(selection:yfiles.view.IGraphSelection,graph:yfiles.graph.IGraph):(obj:yfiles.graph.IModelItem)=>boolean; /** * Factory method that creates the {@link yfiles.graph.GraphClipboard#toClipboardCopier}. - * @returns {yfiles.graph.GraphCopier} A new {@link yfiles.graph.GraphCopier} instance. + * @returns A new {@link } instance. * @protected */ createToClipboardCopier():yfiles.graph.GraphCopier; /** - * Creates an induced predicate from coreFilter for use in the {@link yfiles.graph.GraphClipboard#cut} and {@link yfiles.graph.GraphClipboard#copy} + * Creates an induced predicate from coreFilter for use in the {@link yfiles.graph.GraphClipboard#cut} and {@link yfiles.graph.GraphClipboard#onCopy} * methods that takes dependent items into account. *

    * This method can create a predicate for only a core set of items which is then extended or restricted depending on the @@ -48495,21 +47486,21 @@ declare namespace system{ * (e.g. label/port owner, source/target port etc.) is forbidden by coreFilter. * * - * @param {function(yfiles.graph.IModelItem): boolean} coreFilter The core predicate for the base set of elements. - * @param {yfiles.graph.IGraph} graph The graph to use for determining adjacency. - * @param {boolean} restrictive Whether to create a restriction or extension for the coreFilter predicate - * @returns {function(yfiles.graph.IModelItem): boolean} + * @param coreFilter The core predicate for the base set of elements. + * @param graph The graph to use for determining adjacency. + * @param restrictive Whether to create a restriction or extension for the coreFilter predicate + * @returns * @static */ static createWrappedFilter(coreFilter:(obj:yfiles.graph.IModelItem)=>boolean,graph:yfiles.graph.IGraph,restrictive:boolean):(obj:yfiles.graph.IModelItem)=>boolean; /** * Cuts the items indicated by filter to the clipboard and removes them from the graph. *

    - * This method delegates the core work to {@link yfiles.graph.GraphClipboard#copy} which will use the {@link yfiles.graph.GraphClipboard#toClipboardCopier} to copy the cut elements to - * the clipboard. + * This method delegates the core work to {@link yfiles.graph.GraphClipboard#onCopy} which will use the {@link yfiles.graph.GraphClipboard#toClipboardCopier} to copy the cut elements + * to the clipboard. *

    - * @param {yfiles.graph.IGraph} sourceGraph The graph to cut the items from. - * @param {function(yfiles.graph.IModelItem): boolean} filter The filter to use. + * @param sourceGraph The graph to cut the items from. + * @param filter The filter to use. * @see yfiles.graph.GraphClipboard#createSelectionFilter */ cut(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean):void; @@ -48518,10 +47509,10 @@ declare namespace system{ *

    * The {@link yfiles.graph.GraphClipboard#clipboardGraph} is not altered by this operation. *

    - * @param {yfiles.input.IInputModeContext} context The current {@link yfiles.input.IInputModeContext}. - * @param {yfiles.graph.IGraph} sourceGraph The graph whose elements should be duplicated. - * @param {function(yfiles.graph.IModelItem): boolean} filter A predicate which returns true for elements which should be duplicated. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} elementDuplicated An element copied callback which gets invoked for each element which has been duplicated. The two parameters passed into + * @param context The current {@link }. + * @param sourceGraph The graph whose elements should be duplicated. + * @param filter A predicate which returns true for elements which should be duplicated. + * @param elementDuplicated An element copied callback which gets invoked for each element which has been duplicated. The two parameters passed into * the callback are guaranteed to be part of the sourceGraph. */ duplicate(context:yfiles.input.IInputModeContext,sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,elementDuplicated:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void):void; @@ -48530,8 +47521,8 @@ declare namespace system{ *

    * This implementation uses the item's {@link yfiles.graph.ILookup#lookup} method to retrieve the helper instance. *

    - * @param {yfiles.graph.IModelItem} item The item to find the clipboard helper for. - * @returns {yfiles.graph.IClipboardHelper} An instance or null. + * @param item The item to find the clipboard helper for. + * @returns An instance or null. * @protected */ getClipboardHelper(item:yfiles.graph.IModelItem):yfiles.graph.IClipboardHelper; @@ -48541,10 +47532,10 @@ declare namespace system{ * This method might be overridden to map folding states for edges whose source or target node's hierarchy might have * changed during a paste operation. *

    - * @param {yfiles.graph.IEdge} edge The edge to get the folding state for. - * @param {yfiles.graph.FoldingEdgeStateId} id The original {@link yfiles.graph.FoldingEdgeStateId} to get the folding state for. Passing null will return the folding state + * @param edge The edge to get the folding state for. + * @param id The original {@link } to get the folding state for. Passing null will return the folding state * which was visible when the edge was copied into the clipboard. - * @returns {yfiles.graph.IEdge} The folding state which is mapped to the given id. May be null. + * @returns The folding state which is mapped to the given id. May be null. * @protected */ getFoldingEdgeState(edge:yfiles.graph.IEdge,id:yfiles.graph.FoldingEdgeStateId):yfiles.graph.IEdge; @@ -48554,20 +47545,20 @@ declare namespace system{ * Implementations might delegate to {@link yfiles.graph.GraphCopier#copyLabelLayoutParameter} to copy the existing parameter or * use the {@link yfiles.graph.IGraph#nodeDefaults} or {@link yfiles.graph.IGraph#edgeDefaults} to create a new one. Note that the type of the owner might have changed during the copy operation. *

    - * @param {yfiles.graph.GraphCopier} copier The {@link yfiles.graph.GraphCopier} whose {@link yfiles.graph.GraphCopier#copyLabelLayoutParameter} method can be used to copy the + * @param copier The {@link } whose {@link #copyLabelLayoutParameter} method can be used to copy the * existing parameter. - * @param {yfiles.graph.IGraph} graph The {@link yfiles.graph.IGraph} whose {@link yfiles.graph.IGraph#nodeDefaults} or {@link yfiles.graph.IGraph#edgeDefaults} can be used to create a new parameter. - * @param {yfiles.graph.ILabel} label The label to be copied. - * @param {yfiles.graph.ILabelOwner} newOwner The new owner for the label. - * @returns {yfiles.graph.ILabelModelParameter} An {@link yfiles.graph.ILabelModelParameter} for the copied label. + * @param graph The {@link } whose {@link #nodeDefaults} or {@link #edgeDefaults} can be used to create a new parameter. + * @param label The label to be copied. + * @param newOwner The new owner for the label. + * @returns An {@link } for the copied label. * @protected */ getLabelLayoutParameter(copier:yfiles.graph.GraphCopier,graph:yfiles.graph.IGraph,label:yfiles.graph.ILabel,newOwner:yfiles.graph.ILabelOwner):yfiles.graph.ILabelModelParameter; /** * Retrieves the memento associated with an item in the clipboard graph that has been stored with the item during {@link yfiles.graph.GraphClipboard#onElementCopied} * and {@link yfiles.graph.GraphClipboard#onElementCut}. - * @param {yfiles.graph.IModelItem} clipboardItem The item in the clipboard graph. - * @returns {Object} The object returned by the {@link yfiles.graph.IClipboardHelper} methods or null. + * @param clipboardItem The item in the clipboard graph. + * @returns The object returned by the {@link } methods or null. */ getMemento(clipboardItem:yfiles.graph.IModelItem):Object; /** @@ -48576,12 +47567,12 @@ declare namespace system{ * Implementations might delegate to {@link yfiles.graph.GraphCopier#copyPortLocationParameter} to copy the existing parameter or * use the {@link yfiles.graph.IGraph#nodeDefaults} or {@link yfiles.graph.IGraph#edgeDefaults} to create a new one. Note that the type of the owner might have changed during the copy operation. *

    - * @param {yfiles.graph.GraphCopier} copier The {@link yfiles.graph.GraphCopier} whose {@link yfiles.graph.GraphCopier#copyPortLocationParameter} method can be used to copy the + * @param copier The {@link } whose {@link #copyPortLocationParameter} method can be used to copy the * existing parameter. - * @param {yfiles.graph.IGraph} graph The {@link yfiles.graph.IGraph} whose {@link yfiles.graph.IGraph#nodeDefaults} or {@link yfiles.graph.IGraph#edgeDefaults} can be used to create a new parameter. - * @param {yfiles.graph.IPort} originalPort The port to be copied. - * @param {yfiles.graph.IPortOwner} newOwner The new owner for the port. - * @returns {yfiles.graph.IPortLocationModelParameter} An {@link yfiles.graph.IPortLocationModelParameter} for the copied port. + * @param graph The {@link } whose {@link #nodeDefaults} or {@link #edgeDefaults} can be used to create a new parameter. + * @param originalPort The port to be copied. + * @param newOwner The new owner for the port. + * @returns An {@link } for the copied port. * @protected */ getPortLocationParameter(copier:yfiles.graph.GraphCopier,graph:yfiles.graph.IGraph,originalPort:yfiles.graph.IPort,newOwner:yfiles.graph.IPortOwner):yfiles.graph.IPortLocationModelParameter; @@ -48591,8 +47582,8 @@ declare namespace system{ * Called for {@link yfiles.graph.IBend}s whose edge is not copied to provide a new owner. Might return null if no target for the * given originalBend is found. In this case the bend will not be copied. *

    - * @param {yfiles.graph.IBend} originalBend The bend to be copied. - * @returns {yfiles.graph.IEdge} An {@link yfiles.graph.IEdge} for the bend to be added to or null if the bend should not be copied. + * @param originalBend The bend to be copied. + * @returns An {@link } for the bend to be added to or null if the bend should not be copied. * @protected */ getTargetEdge(originalBend:yfiles.graph.IBend):yfiles.graph.IEdge; @@ -48602,8 +47593,8 @@ declare namespace system{ * Called for {@link yfiles.graph.ILabel}s whose owners are not copied to provide a new owner. Might return null if no target for * the given originalLabel is found. In this case the label will not be copied. *

    - * @param {yfiles.graph.ILabel} originalLabel The label to be copied. - * @returns {yfiles.graph.ILabelOwner} An {@link yfiles.graph.ILabelOwner} for the label to be added to or null if the label should not be copied. + * @param originalLabel The label to be copied. + * @returns An {@link } for the label to be added to or null if the label should not be copied. * @protected */ getTargetLabeledItem(originalLabel:yfiles.graph.ILabel):yfiles.graph.ILabelOwner; @@ -48613,8 +47604,8 @@ declare namespace system{ * Called for {@link yfiles.graph.INode}s to place them inside a group node. Might return null if the given node should be placed * at the root or if the graph is not grouped. *

    - * @param {yfiles.graph.INode} originalNode The node to be copied. - * @returns {yfiles.graph.INode} The new parent group of the node or null if the node should be placed at the root of the hierarchy or if the graph is + * @param originalNode The node to be copied. + * @returns The new parent group of the node or null if the node should be placed at the root of the hierarchy or if the graph is * not grouped. * @see yfiles.graph.GraphClipboard#parentNodeDetection * @protected @@ -48626,9 +47617,9 @@ declare namespace system{ * Called for {@link yfiles.graph.IEdge}s whose source or target ports are not copied to provide a new port. Might return null if * no target for the given originalEdge is found. In this case the edge will not be copied. *

    - * @param {yfiles.graph.IEdge} originalEdge The edge to be copied. - * @param {boolean} atSource Whether to look for a source port. - * @returns {yfiles.graph.IPort} An {@link yfiles.graph.IPort} for the edge to be added to or null if the edge should not be copied. + * @param originalEdge The edge to be copied. + * @param atSource Whether to look for a source port. + * @returns An {@link } for the edge to be added to or null if the edge should not be copied. * @protected */ getTargetPort(originalEdge:yfiles.graph.IEdge,atSource:boolean):yfiles.graph.IPort; @@ -48638,8 +47629,8 @@ declare namespace system{ * Called for {@link yfiles.graph.IPort}s whose owners are not copied to provide a new owner. Might return null if no target for * the given originalPort is found. In this case the port will not be copied. *

    - * @param {yfiles.graph.IPort} originalPort The port to be copied. - * @returns {yfiles.graph.IPortOwner} An {@link yfiles.graph.IPortOwner} for the port to be added to or null if the port should not be copied. + * @param originalPort The port to be copied. + * @returns An {@link } for the port to be added to or null if the port should not be copied. * @protected */ getTargetPortOwner(originalPort:yfiles.graph.IPort):yfiles.graph.IPortOwner; @@ -48649,30 +47640,43 @@ declare namespace system{ * A dummy item is used to keep {@link yfiles.graph.IModelItem}s which cannot exist without an owner in the {@link yfiles.graph.GraphClipboard#clipboardGraph} (e.g. * {@link yfiles.graph.ILabel}s). *

    - * @param {yfiles.graph.IModelItem} item The item to test. - * @returns {boolean} true if the item is a "dummy" item. + * @param item The item to test. + * @returns true if the item is a "dummy" item. */ isDummy(item:yfiles.graph.IModelItem):boolean; /** * Whether the given item exists in a folding state of its owner. - * @param {yfiles.graph.IModelItem} owner The owner of the given item. - * @param {yfiles.graph.IModelItem} item An {@link yfiles.graph.ILabel}, {@link yfiles.graph.IPort}, or {@link yfiles.graph.IBend}. - * @returns {boolean} true if the given item exists in a folding state. + * @param owner The owner of the given item. + * @param item An {@link }, {@link }, or {@link }. + * @returns true if the given item exists in a folding state. * @protected * @static */ static isFoldingStateElement(owner:yfiles.graph.IModelItem,item:yfiles.graph.IModelItem):boolean; /** - * A callback that will be invoked for each item that has been copied into the clipboard graph in response to a {@link yfiles.graph.GraphClipboard#copy} + * Calls {@link yfiles.graph.GraphCopier#copy} on the current {@link yfiles.graph.GraphClipboard#toClipboardCopier} instance or {@link yfiles.graph.GraphClipboard#fromClipboardCopier} instance, depending on whether the targetGraph is the {@link yfiles.graph.GraphClipboard#clipboardGraph} + * instance. + * @param sourceGraph The source graph to pass to {@link #copy} + * @param filter The predicate to pass on. + * @param targetGraph The target graph to pass on. + * @param targetRootNode The node to use as the root node in the grouped targetGraph. + * @param elementCopiedCallback The delegate to pass on. For each element that is copied during the operation to the clipboard, this callback will be + * passed the original and the copy of the item. In case the sourceGraph is a {@link #views folding view graph} both elements are passed + * as {@link #masterGraph master} elements or {@link #getFolderNodeState folding state elements} if a master element does not exist. + * @protected + */ + onCopy(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,targetGraph:yfiles.graph.IGraph,targetRootNode:yfiles.graph.INode,elementCopiedCallback:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void):void; + /** + * A callback that will be invoked for each item that has been copied into the clipboard graph in response to a {@link yfiles.graph.GraphClipboard#onCopy} * operation. *

    * This implementation will {@link yfiles.graph.ILookup#lookup} a {@link yfiles.graph.IClipboardHelper} for each item in the original graph * and remember the memento retrieved by the {@link yfiles.graph.IClipboardHelper#copy} method for later use during the {@link yfiles.graph.GraphClipboard#onElementPasted} * operation. *

    - * @param {yfiles.graph.IModelItem} original The original element from the source graph instance. If the source graph is a managed folding view, this is always a + * @param original The original element from the source graph instance. If the source graph is a managed folding view, this is always a * master item. - * @param {yfiles.graph.IModelItem} copy The copy from the clipboard graph. + * @param copy The copy from the clipboard graph. * @protected */ onElementCopied(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem):void; @@ -48684,9 +47688,9 @@ declare namespace system{ * and remember the memento retrieved by the {@link yfiles.graph.IClipboardHelper#cut} method for later use during the {@link yfiles.graph.GraphClipboard#onElementPasted} * operation. *

    - * @param {yfiles.graph.IModelItem} original The original element from the source graph instance. If the source graph is a managed folding view, this is always a + * @param original The original element from the source graph instance. If the source graph is a managed folding view, this is always a * master item. - * @param {yfiles.graph.IModelItem} copy The copy from the clipboard graph. + * @param copy The copy from the clipboard graph. * @protected */ onElementCut(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem):void; @@ -48696,34 +47700,34 @@ declare namespace system{ *

    * This method will use a previously stored {@link yfiles.graph.IClipboardHelper} to let it {@link yfiles.graph.IClipboardHelper#paste finish} its work. *

    - * @param {yfiles.graph.IModelItem} original The original element from the clipboard graph instance. If the target graph is a managed folding view, this is always a + * @param original The original element from the clipboard graph instance. If the target graph is a managed folding view, this is always a * master item. - * @param {yfiles.graph.IModelItem} copy The copy from the target graph. + * @param copy The copy from the target graph. * @protected */ onElementPasted(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem):void; /** * Calls {@link yfiles.graph.GraphCopier#copy} on the current {@link yfiles.graph.GraphClipboard#fromClipboardCopier} instance, depending on whether the targetGraph is the {@link yfiles.graph.GraphClipboard#clipboardGraph} instance. - * @param {yfiles.graph.IGraph} sourceGraph The source graph to pass to {@link yfiles.graph.GraphCopier#copy} - * @param {function(yfiles.graph.IModelItem): boolean} filter The predicate to pass on. - * @param {yfiles.graph.IGraph} targetGraph The target graph to pass on. - * @param {yfiles.graph.INode} targetRootNode The node to use as the root node in the grouped targetGraph. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} elementCopiedCallback The delegate to pass on. For each element that is copied during the operation to the clipboard, this callback will be - * passed the original and the copy of the item. In case the targetGraph is a {@link yfiles.graph.FoldingManager#views folding view graph} the original element is - * passed as {@link yfiles.graph.FoldingManager#masterGraph master} elements or {@link yfiles.graph.FoldingManager#getFolderNodeState folding state elements} if a master element does not exist. The copied element is always + * @param sourceGraph The source graph to pass to {@link #copy} + * @param filter The predicate to pass on. + * @param targetGraph The target graph to pass on. + * @param targetRootNode The node to use as the root node in the grouped targetGraph. + * @param elementCopiedCallback The delegate to pass on. For each element that is copied during the operation to the clipboard, this callback will be + * passed the original and the copy of the item. In case the targetGraph is a {@link #views folding view graph} the original element is + * passed as {@link #masterGraph master} elements or {@link #getFolderNodeState folding state elements} if a master element does not exist. The copied element is always * part of the targetGraph. - * @param {function(yfiles.graph.IModelItem): boolean} targetFilter This predicate is used to determine which {@link yfiles.graph.INode}s and {@link yfiles.graph.IEdge}s can be used as targets for paste + * @param targetFilter This predicate is used to determine which {@link }s and {@link }s can be used as targets for paste * operations, e.g. if a labels or ports are copied without their owners. If null all model items can be used as targets. * @protected */ - paste(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,targetGraph:yfiles.graph.IGraph,targetRootNode:yfiles.graph.INode,elementCopiedCallback:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void,targetFilter:(obj:yfiles.graph.IModelItem)=>boolean):void; + onPaste(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,targetGraph:yfiles.graph.IGraph,targetRootNode:yfiles.graph.INode,elementCopiedCallback:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void,targetFilter:(obj:yfiles.graph.IModelItem)=>boolean):void; /** * Pastes the {@link yfiles.graph.GraphClipboard#clipboardGraph}'s contents into the targetGraph, selecting all pasted elements. *

    * The actual work of this method is delegated to the {@link yfiles.graph.GraphClipboard#fromClipboardCopier}'s {@link yfiles.graph.GraphCopier#copy} method. *

    - * @param {yfiles.graph.IGraph} targetGraph The graph to paste into. - * @param {yfiles.view.IGraphSelection} selection The selection model to set the selection on. + * @param targetGraph The graph to paste into. + * @param selection The selection model to set the selection on. */ paste(targetGraph:yfiles.graph.IGraph,selection:yfiles.view.IGraphSelection):void; /** @@ -48735,16 +47739,16 @@ declare namespace system{ * Providing a valid targetFilter allows for pasting {@link yfiles.graph.ILabel}s, {@link yfiles.graph.IPort}s, and * {@link yfiles.graph.IEdge}s without valid owners. *

    - * @param {yfiles.input.IInputModeContext} context A valid input mode context. Passing a valid input mode context is required for keeping orthogonal edges at group nodes + * @param context A valid input mode context. Passing a valid input mode context is required for keeping orthogonal edges at group nodes * whose size might be adjusted after the paste operation. - * @param {yfiles.graph.IGraph} targetGraph The graph to paste the contents in. - * @param {function(yfiles.graph.IModelItem): boolean} filter The filter to apply to the clipboard graph. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} elementPasted The callback to use for each element that has been pasted. For each element that is copied during the operation to the - * clipboard, this callback will be passed the original and the copy of the item. In case the targetGraph is a {@link yfiles.graph.FoldingManager#views folding view graph} - * the original element is passed as {@link yfiles.graph.FoldingManager#masterGraph master} elements or {@link yfiles.graph.FoldingManager#getFolderNodeState folding state elements} if a master element does not exist. The + * @param targetGraph The graph to paste the contents in. + * @param filter The filter to apply to the clipboard graph. + * @param elementPasted The callback to use for each element that has been pasted. For each element that is copied during the operation to the + * clipboard, this callback will be passed the original and the copy of the item. In case the targetGraph is a {@link #views folding view graph} + * the original element is passed as {@link #masterGraph master} elements or {@link #getFolderNodeState folding state elements} if a master element does not exist. The * copied element is always part of the targetGraph. - * @param {function(yfiles.graph.IModelItem): boolean} targetFilter A filter which returns true for model items which can be used as target for clipboard items which need an owner (e.g. - * {@link yfiles.graph.ILabel}s which were copied without their owner). If null all model items can be used as targets. + * @param targetFilter A filter which returns true for model items which can be used as target for clipboard items which need an owner (e.g. + * {@link }s which were copied without their owner). If null all model items can be used as targets. */ paste(context:yfiles.input.IInputModeContext,targetGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,elementPasted:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void,targetFilter:(obj:yfiles.graph.IModelItem)=>boolean):void; /** @@ -48753,11 +47757,11 @@ declare namespace system{ * For each element pasted into the graph the elementPasted delegate will be invoked and the {@link yfiles.graph.GraphClipboard#onElementPasted} * method will be called. The actual work of this method is delegated to the {@link yfiles.graph.GraphClipboard#fromClipboardCopier}'s {@link yfiles.graph.GraphCopier#copy} method. *

    - * @param {yfiles.graph.IGraph} targetGraph The graph to paste the contents in. - * @param {function(yfiles.graph.IModelItem): boolean} [filter=null] The filter to apply to the clipboard graph. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} [elementPasted=null] The callback to use for each element that has been pasted. For each element that is copied during the operation to the - * clipboard, this callback will be passed the original and the copy of the item. In case the targetGraph is a {@link yfiles.graph.FoldingManager#views folding view graph} - * the original element is passed as {@link yfiles.graph.FoldingManager#masterGraph master} elements or {@link yfiles.graph.FoldingManager#getFolderNodeState folding state elements} if a master element does not exist. The + * @param targetGraph The graph to paste the contents in. + * @param [filter=null] The filter to apply to the clipboard graph. + * @param [elementPasted=null] The callback to use for each element that has been pasted. For each element that is copied during the operation to the + * clipboard, this callback will be passed the original and the copy of the item. In case the targetGraph is a {@link #views folding view graph} + * the original element is passed as {@link #masterGraph master} elements or {@link #getFolderNodeState folding state elements} if a master element does not exist. The * copied element is always part of the targetGraph. */ paste(targetGraph:yfiles.graph.IGraph,filter?:(obj:yfiles.graph.IModelItem)=>boolean,elementPasted?:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void):void; @@ -48768,18 +47772,18 @@ declare namespace system{ * method will be called. The actual work of this method is delegated to the {@link yfiles.graph.GraphClipboard#fromClipboardCopier}'s {@link yfiles.graph.GraphCopier#copy} method. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IGraph} options.targetGraph The graph to paste the contents in. - * @param {function(yfiles.graph.IModelItem): boolean} [options.filter=null] The filter to apply to the clipboard graph. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} [options.elementPasted=null] The callback to use for each element that has been pasted. For each element that is copied during the operation to the - * clipboard, this callback will be passed the original and the copy of the item. In case the targetGraph is a {@link yfiles.graph.FoldingManager#views folding view graph} - * the original element is passed as {@link yfiles.graph.FoldingManager#masterGraph master} elements or {@link yfiles.graph.FoldingManager#getFolderNodeState folding state elements} if a master element does not exist. The + * @param options.targetGraph The graph to paste the contents in. + * @param [options.filter=null] The filter to apply to the clipboard graph. + * @param [options.elementPasted=null] The callback to use for each element that has been pasted. For each element that is copied during the operation to the + * clipboard, this callback will be passed the original and the copy of the item. In case the targetGraph is a {@link #views folding view graph} + * the original element is passed as {@link #masterGraph master} elements or {@link #getFolderNodeState folding state elements} if a master element does not exist. The * copied element is always part of the targetGraph. */ paste(options:{targetGraph:yfiles.graph.IGraph,filter?:(obj:yfiles.graph.IModelItem)=>boolean,elementPasted?:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void}):void; /** * Removes elements from the graph based on a predicate. - * @param {yfiles.graph.IGraph} sourceGraph The graph to remove elements from. - * @param {function(yfiles.graph.IModelItem): boolean} predicate The predicate that decides which elements to remove. + * @param sourceGraph The graph to remove elements from. + * @param predicate The predicate that decides which elements to remove. * @see yfiles.graph.GraphClipboard#cut * @protected */ @@ -48894,7 +47898,7 @@ declare namespace system{ * Technically owning elements are still part of the clipboard as * {@link yfiles.graph.GraphClipboard#isDummy dummy elements}, but these elements will not be pasted to the target during paste or duplicate operations. *

    - * @default 63 + * @default yfiles.graph.GraphItemTypes.ALL * @type {yfiles.graph.GraphItemTypes} */ independentCopyItems:yfiles.graph.GraphItemTypes; @@ -48911,7 +47915,7 @@ declare namespace system{ *

    * The default is {@link yfiles.graph.GraphItemTypes#ALL}. *

    - * @default 63 + * @default yfiles.graph.GraphItemTypes.ALL * @type {yfiles.graph.GraphItemTypes} */ copyItems:yfiles.graph.GraphItemTypes; @@ -48927,42 +47931,42 @@ declare namespace system{ /** * Adds the given listener for the ElementsCut event that occurs when the {@link yfiles.graph.GraphClipboard#cut} operation * finished successfully. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphClipboard#removeElementsCutListener */ addElementsCutListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the ElementsCut event that occurs when the {@link yfiles.graph.GraphClipboard#cut} operation * finished successfully. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphClipboard#addElementsCutListener */ removeElementsCutListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Adds the given listener for the ElementsCopied event that occurs when the {@link yfiles.graph.GraphClipboard#copy} operation * finished successfully. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphClipboard#removeElementsCopiedListener */ addElementsCopiedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the ElementsCopied event that occurs when the {@link yfiles.graph.GraphClipboard#copy} operation * finished successfully. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphClipboard#addElementsCopiedListener */ removeElementsCopiedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Adds the given listener for the ElementsPasted event that occurs when the {@link yfiles.graph.GraphClipboard#paste} operation * finished successfully. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphClipboard#removeElementsPastedListener */ addElementsPastedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * Removes the given listener for the ElementsPasted event that occurs when the {@link yfiles.graph.GraphClipboard#paste} operation * finished successfully. - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphClipboard#addElementsPastedListener */ removeElementsPastedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; @@ -49007,20 +48011,20 @@ declare namespace system{ *

    * Instances of this class can be used in {@link yfiles.graph.GraphClipboard}, e.g. *

    - * @class yfiles.graph.GraphCopier + * @class */ export interface GraphCopier extends Object{} export class GraphCopier { constructor(); /** * Callback method that adds a bend to the targetEdge in the targetGraph as a copy of the source bend. - * @param {yfiles.graph.IGraph} sourceGraph The source graph. - * @param {yfiles.graph.IGraph} targetGraph The target graph. - * @param {yfiles.graph.IEdge} targetEdge The target edge to add the bend to. - * @param {yfiles.graph.IBend} sourceBend The source bend to copy the values from. - * @param {yfiles.geometry.Point} offset The offset to apply to the copied bend. - * @param {number} index The index to add the bend at. - * @returns {yfiles.graph.IBend} The newly created bend. + * @param sourceGraph The source graph. + * @param targetGraph The target graph. + * @param targetEdge The target edge to add the bend to. + * @param sourceBend The source bend to copy the values from. + * @param offset The offset to apply to the copied bend. + * @param index The index to add the bend at. + * @returns The newly created bend. * @protected */ addBend(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph,targetEdge:yfiles.graph.IEdge,sourceBend:yfiles.graph.IBend,offset:yfiles.geometry.Point,index:number):yfiles.graph.IBend; @@ -49030,11 +48034,11 @@ declare namespace system{ * This implementation uses {@link yfiles.graph.GraphCopier#copyLabelLayoutParameter}, {@link yfiles.graph.GraphCopier#copyLabelStyle}, and * {@link yfiles.graph.GraphCopier#copyLabelTag} as callbacks. *

    - * @param {yfiles.graph.IGraph} sourceGraph The source graph. - * @param {yfiles.graph.IGraph} targetGraph The target graph. - * @param {yfiles.graph.ILabelOwner} targetOwner The item owner in the target graph to add the label to. - * @param {yfiles.graph.ILabel} sourceLabel The source label in the source graph. - * @returns {yfiles.graph.ILabel} The newly created label. + * @param sourceGraph The source graph. + * @param targetGraph The target graph. + * @param targetOwner The item owner in the target graph to add the label to. + * @param sourceLabel The source label in the source graph. + * @returns The newly created label. * @protected */ addLabel(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph,targetOwner:yfiles.graph.ILabelOwner,sourceLabel:yfiles.graph.ILabel):yfiles.graph.ILabel; @@ -49045,11 +48049,11 @@ declare namespace system{ * {@link yfiles.graph.GraphCopier#copyPortLocationParameter}, {@link yfiles.graph.GraphCopier#copyPortStyle}, and {@link yfiles.graph.GraphCopier#copyPortTag} * as callbacks. *

    - * @param {yfiles.graph.IGraph} sourceGraph The source graph. - * @param {yfiles.graph.IGraph} targetGraph The target graph. - * @param {yfiles.graph.IPortOwner} targetOwner The port owner in the target graph to add the port to. - * @param {yfiles.graph.IPort} sourcePort The source port in the source graph. - * @returns {yfiles.graph.IPort} The newly created port. + * @param sourceGraph The source graph. + * @param targetGraph The target graph. + * @param targetOwner The port owner in the target graph to add the port to. + * @param sourcePort The source port in the source graph. + * @returns The newly created port. */ addPort(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph,targetOwner:yfiles.graph.IPortOwner,sourcePort:yfiles.graph.IPort):yfiles.graph.IPort; /** @@ -49059,8 +48063,8 @@ declare namespace system{ * is called. *

    * Type parameter T: The type of the item to cache. - * @param {T} original The original item. - * @param {T} copy The copy of the item. + * @param original The original item. + * @param copy The copy of the item. * @see yfiles.graph.GraphCopier#getOrCreateCopy * @protected * @template T @@ -49079,13 +48083,13 @@ declare namespace system{ *

    * For each element that has been copied, the elementCopiedCallback will be invoked. *

    - * @param {yfiles.graph.IGraph} sourceGraph The graph to copy the elements from. - * @param {function(yfiles.graph.IModelItem): boolean} filter The filter that decides which elements to copy. - * @param {yfiles.graph.IGraph} targetGraph The graph to copy the elements to. - * @param {yfiles.graph.INode} targetRootNode The group node that should act as the root node for the pasted elements. May be null if there is no such node. - * @param {yfiles.geometry.Point} offset The offset to apply to the copied items. Only nodes and bends will be offset explicitly, while other items will move + * @param sourceGraph The graph to copy the elements from. + * @param filter The filter that decides which elements to copy. + * @param targetGraph The graph to copy the elements to. + * @param targetRootNode The group node that should act as the root node for the pasted elements. May be null if there is no such node. + * @param offset The offset to apply to the copied items. Only nodes and bends will be offset explicitly, while other items will move * implicitly. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} elementCopiedCallback A delegate to invoke for each element being copied. + * @param elementCopiedCallback A delegate to invoke for each element being copied. * @throws {Stubs.Exceptions.ArgumentError} if targetRootNode is not in targetGraph */ copy(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,targetGraph:yfiles.graph.IGraph,targetRootNode:yfiles.graph.INode,offset:yfiles.geometry.Point,elementCopiedCallback:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void):void; @@ -49095,12 +48099,12 @@ declare namespace system{ * For each element that has been copied, the elementCopiedCallback will be invoked. This method actually delegates to {@link yfiles.graph.GraphCopier#copy} * and provides the root as the "targetGraph" parameter if there is a hierarchy associated with targetGraph. *

    - * @param {yfiles.graph.IGraph} sourceGraph The graph to copy the elements from. - * @param {function(yfiles.graph.IModelItem): boolean} filter The filter that decides which elements to copy. - * @param {yfiles.graph.IGraph} targetGraph The graph to copy the elements to. - * @param {yfiles.geometry.Point} offset The offset to apply to the copied items. Only nodes and bends will be offset explicitly, while other items will move + * @param sourceGraph The graph to copy the elements from. + * @param filter The filter that decides which elements to copy. + * @param targetGraph The graph to copy the elements to. + * @param offset The offset to apply to the copied items. Only nodes and bends will be offset explicitly, while other items will move * implicitly. - * @param {function(yfiles.graph.IModelItem, yfiles.graph.IModelItem): void} elementCopiedCallback A delegate to invoke for each element being copied. + * @param elementCopiedCallback A delegate to invoke for each element being copied. */ copy(sourceGraph:yfiles.graph.IGraph,filter:(obj:yfiles.graph.IModelItem)=>boolean,targetGraph:yfiles.graph.IGraph,offset:yfiles.geometry.Point,elementCopiedCallback:(original:yfiles.graph.IModelItem,copy:yfiles.graph.IModelItem)=>void):void; /** @@ -49109,8 +48113,8 @@ declare namespace system{ * This method actually delegates to {@link yfiles.graph.GraphCopier#copy} and provides the root as the "targetGraph" parameter if * there is a hierarchy associated with targetGraph. *

    - * @param {yfiles.graph.IGraph} sourceGraph The graph to copy. - * @param {yfiles.graph.IGraph} targetGraph The graph to copy to. + * @param sourceGraph The graph to copy. + * @param targetGraph The graph to copy to. */ copy(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph):void; /** @@ -49120,12 +48124,12 @@ declare namespace system{ * {@link yfiles.graph.IPort}s or {@link yfiles.graph.ILabel}s. This implementation uses {@link yfiles.graph.GraphCopier#copyEdgeStyle} and {@link yfiles.graph.GraphCopier#copyEdgeTag} * as callbacks. *

    - * @param {yfiles.graph.IGraph} sourceGraph The source graph. - * @param {yfiles.graph.IGraph} targetGraph The target graph. - * @param {yfiles.graph.IEdge} sourceEdge The edge in the source graph. - * @param {yfiles.graph.IPort} targetSourcePort The new source port in the target graph. - * @param {yfiles.graph.IPort} targetTargetPort The new target port in the target graph. - * @returns {yfiles.graph.IEdge} The newly created edge. + * @param sourceGraph The source graph. + * @param targetGraph The target graph. + * @param sourceEdge The edge in the source graph. + * @param targetSourcePort The new source port in the target graph. + * @param targetTargetPort The new target port in the target graph. + * @returns The newly created edge. * @protected */ copyEdge(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph,sourceEdge:yfiles.graph.IEdge,targetSourcePort:yfiles.graph.IPort,targetTargetPort:yfiles.graph.IPort):yfiles.graph.IEdge; @@ -49134,9 +48138,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.lang.ICloneable#clone} method to create a copy. *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the edge. - * @param {yfiles.graph.IEdge} edge The edge to copy the style from. - * @returns {yfiles.styles.IEdgeStyle} The style to apply for the copy. + * @param graph The graph that contains the edge. + * @param edge The edge to copy the style from. + * @returns The style to apply for the copy. * @see yfiles.graph.GraphCopier#copy */ copyEdgeStyle(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge):yfiles.styles.IEdgeStyle; @@ -49145,9 +48149,9 @@ declare namespace system{ *

    * This implementation simply delegates to {@link yfiles.graph.GraphCopier#copyTag} *

    - * @param {yfiles.graph.IEdge} edge The old edge. - * @param {Object} tag The tag to copy. - * @returns {Object} The copy of the tag. + * @param edge The old edge. + * @param tag The tag to copy. + * @returns The copy of the tag. * @protected */ copyEdgeTag(edge:yfiles.graph.IEdge,tag:Object):Object; @@ -49157,12 +48161,12 @@ declare namespace system{ * This implementation does not need to copy {@link yfiles.graph.IPort}s or {@link yfiles.graph.ILabel}s. This implementation uses {@link yfiles.graph.GraphCopier#copyNodeStyle} * and {@link yfiles.graph.GraphCopier#copyNodeTag} as callbacks. *

    - * @param {yfiles.graph.IGraph} sourceGraph The source graph. - * @param {yfiles.graph.IGraph} targetGraph The target graph. - * @param {yfiles.graph.INode} sourceGroupNode The source node to create a copy of in the targetGraph. - * @param {yfiles.graph.INode} targetParent The parent of the group node in the target graph. - * @param {yfiles.geometry.Point} offset The offset to apply to the copied node. - * @returns {yfiles.graph.INode} The newly created node. + * @param sourceGraph The source graph. + * @param targetGraph The target graph. + * @param sourceGroupNode The source node to create a copy of in the targetGraph. + * @param targetParent The parent of the group node in the target graph. + * @param offset The offset to apply to the copied node. + * @returns The newly created node. * @protected */ copyGroupNode(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph,sourceGroupNode:yfiles.graph.INode,targetParent:yfiles.graph.INode,offset:yfiles.geometry.Point):yfiles.graph.INode; @@ -49171,9 +48175,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.lang.ICloneable#clone} method to create a copy. *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the label. - * @param {yfiles.graph.ILabel} label The label to copy the label model parameter from. - * @returns {yfiles.graph.ILabelModelParameter} The copy of the parameter to apply for the copy. + * @param graph The graph that contains the label. + * @param label The label to copy the label model parameter from. + * @returns The copy of the parameter to apply for the copy. * @see yfiles.graph.GraphCopier#copy */ copyLabelLayoutParameter(graph:yfiles.graph.IGraph,label:yfiles.graph.ILabel):yfiles.graph.ILabelModelParameter; @@ -49182,9 +48186,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.lang.ICloneable#clone} method to create a copy. *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the label. - * @param {yfiles.graph.ILabel} label The label to copy the style from. - * @returns {yfiles.styles.ILabelStyle} The style to apply for the copy. + * @param graph The graph that contains the label. + * @param label The label to copy the style from. + * @returns The style to apply for the copy. * @see yfiles.graph.GraphCopier#copy */ copyLabelStyle(graph:yfiles.graph.IGraph,label:yfiles.graph.ILabel):yfiles.styles.ILabelStyle; @@ -49193,9 +48197,9 @@ declare namespace system{ *

    * This implementation simply delegates to {@link yfiles.graph.GraphCopier#copyTag} *

    - * @param {yfiles.graph.ILabel} label The old label. - * @param {Object} tag The tag to copy. - * @returns {Object} The copy of the tag. + * @param label The old label. + * @param tag The tag to copy. + * @returns The copy of the tag. */ copyLabelTag(label:yfiles.graph.ILabel,tag:Object):Object; /** @@ -49204,12 +48208,12 @@ declare namespace system{ * This implementation does not need to copy {@link yfiles.graph.IPort}s or {@link yfiles.graph.ILabel}s. This implementation uses {@link yfiles.graph.GraphCopier#copyNodeStyle} * and {@link yfiles.graph.GraphCopier#copyNodeTag} as callbacks. *

    - * @param {yfiles.graph.IGraph} sourceGraph The source graph. - * @param {yfiles.graph.IGraph} targetGraph The target graph. - * @param {yfiles.graph.INode} targetParent The parent of the group node in the target graph. - * @param {yfiles.graph.INode} node The source node to create a copy of in the targetGraph. - * @param {yfiles.geometry.Point} offset The offset to apply to the copied node. - * @returns {yfiles.graph.INode} The newly created node. + * @param sourceGraph The source graph. + * @param targetGraph The target graph. + * @param targetParent The parent of the group node in the target graph. + * @param node The source node to create a copy of in the targetGraph. + * @param offset The offset to apply to the copied node. + * @returns The newly created node. * @protected */ copyNode(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph,node:yfiles.graph.INode,targetParent:yfiles.graph.INode,offset:yfiles.geometry.Point):yfiles.graph.INode; @@ -49219,11 +48223,11 @@ declare namespace system{ * This implementation does not need to copy {@link yfiles.graph.IPort}s or {@link yfiles.graph.ILabel}s. This implementation uses {@link yfiles.graph.GraphCopier#copyNodeStyle} * and {@link yfiles.graph.GraphCopier#copyNodeTag} as callbacks. *

    - * @param {yfiles.graph.IGraph} sourceGraph The source graph. - * @param {yfiles.graph.IGraph} targetGraph The target graph. - * @param {yfiles.graph.INode} node The source node to create a copy of in the targetGraph. - * @param {yfiles.geometry.Point} offset The offset to apply to the copied node. - * @returns {yfiles.graph.INode} The newly created node. + * @param sourceGraph The source graph. + * @param targetGraph The target graph. + * @param node The source node to create a copy of in the targetGraph. + * @param offset The offset to apply to the copied node. + * @returns The newly created node. * @protected */ copyNode(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph,node:yfiles.graph.INode,offset:yfiles.geometry.Point):yfiles.graph.INode; @@ -49232,9 +48236,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.lang.ICloneable#clone} method to create a copy. *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the node. - * @param {yfiles.graph.INode} node The node to copy the style from. - * @returns {yfiles.styles.INodeStyle} The style to apply for the copy. + * @param graph The graph that contains the node. + * @param node The node to copy the style from. + * @returns The style to apply for the copy. * @see yfiles.graph.GraphCopier#copy */ copyNodeStyle(graph:yfiles.graph.IGraph,node:yfiles.graph.INode):yfiles.styles.INodeStyle; @@ -49243,9 +48247,9 @@ declare namespace system{ *

    * This implementation simply delegates to {@link yfiles.graph.GraphCopier#copyTag} *

    - * @param {yfiles.graph.INode} node The old node. - * @param {Object} tag The tag to copy. - * @returns {Object} The copy of the tag. + * @param node The old node. + * @param tag The tag to copy. + * @returns The copy of the tag. * @protected */ copyNodeTag(node:yfiles.graph.INode,tag:Object):Object; @@ -49254,9 +48258,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.lang.ICloneable#clone} method to create a copy. *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the port. - * @param {yfiles.graph.IPort} port The port to copy the model parameter from. - * @returns {yfiles.graph.IPortLocationModelParameter} The copy of the parameter to apply for the copy. + * @param graph The graph that contains the port. + * @param port The port to copy the model parameter from. + * @returns The copy of the parameter to apply for the copy. * @see yfiles.graph.GraphCopier#copy */ copyPortLocationParameter(graph:yfiles.graph.IGraph,port:yfiles.graph.IPort):yfiles.graph.IPortLocationModelParameter; @@ -49265,9 +48269,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.lang.ICloneable#clone} method to create a copy. *

    - * @param {yfiles.graph.IGraph} graph The graph that contains the port. - * @param {yfiles.graph.IPort} port The port to copy the style from. - * @returns {yfiles.styles.IPortStyle} The style to apply for the copy. + * @param graph The graph that contains the port. + * @param port The port to copy the style from. + * @returns The style to apply for the copy. * @see yfiles.graph.GraphCopier#copy */ copyPortStyle(graph:yfiles.graph.IGraph,port:yfiles.graph.IPort):yfiles.styles.IPortStyle; @@ -49276,9 +48280,9 @@ declare namespace system{ *

    * This implementation simply delegates to {@link yfiles.graph.GraphCopier#copyTag} *

    - * @param {yfiles.graph.IPort} port The old port. - * @param {Object} tag The tag to copy. - * @returns {Object} The copy of the tag. + * @param port The old port. + * @param tag The tag to copy. + * @returns The copy of the tag. * @protected */ copyPortTag(port:yfiles.graph.IPort,tag:Object):Object; @@ -49288,9 +48292,9 @@ declare namespace system{ * This implementation will try to {@link yfiles.lang.ICloneable#clone} the tag if the {@link yfiles.graph.GraphCopier#clone} property has the {@link yfiles.graph.CloneTypes#TAGS} * flag set. If this is not the case or the tag is not {@link yfiles.lang.ICloneable}, the instance will be returned. *

    - * @param {yfiles.graph.IModelItem} owner The old owner of the tag. - * @param {Object} tag The tag to copy. - * @returns {Object} A copy of the tag. + * @param owner The old owner of the tag. + * @param tag The tag to copy. + * @returns A copy of the tag. */ copyTag(owner:yfiles.graph.IModelItem,tag:Object):Object; /** @@ -49301,9 +48305,9 @@ declare namespace system{ * return value that is the copied value of the original. *

    * Type parameter T: The type of the item to copy. - * @param {yfiles.lang.Class} itemType The type of the item to copy. - * @param {T} original The original item. - * @returns {T} The copy of original or {@link yfiles.graph.GraphCopier#NO_COPY} if no copy has been found. + * @param itemType The type of the item to copy. + * @param original The original item. + * @returns The copy of original or {@link #NO_COPY} if no copy has been found. * @see yfiles.graph.GraphCopier#cacheCopy * @see yfiles.graph.GraphCopier#getOrCreateCopy * @protected @@ -49317,10 +48321,10 @@ declare namespace system{ * If there is a cache miss, the delegate will be used to create the copy and the copy will be placed into the {@link yfiles.graph.GraphCopier#cacheCopy cache}. *

    * Type parameter T: The type of the item to copy. - * @param {yfiles.lang.Class} tType The type of the item to copy. - * @param {T} original The original item. - * @param {function(T): T} copyDelegate The copy delegate to create the copy. - * @returns {T} A copy of the original, either cached, or newly created and then cached. + * @param tType The type of the item to copy. + * @param original The original item. + * @param copyDelegate The copy delegate to create the copy. + * @returns A copy of the original, either cached, or newly created and then cached. * @template T */ getOrCreateCopy(tType:yfiles.lang.Class,original:T,copyDelegate:(arg:T)=>T):T; @@ -49329,8 +48333,8 @@ declare namespace system{ *

    * Raises the {@link yfiles.graph.GraphCopier#addBendCopiedListener BendCopied} event. *

    - * @param {yfiles.graph.IBend} original The original of the copied bend. - * @param {yfiles.graph.IBend} copy The copied bend. + * @param original The original of the copied bend. + * @param copy The copied bend. */ onBendCopied(original:yfiles.graph.IBend,copy:yfiles.graph.IBend):void; /** @@ -49338,8 +48342,8 @@ declare namespace system{ *

    * Raises the {@link yfiles.graph.GraphCopier#addEdgeCopiedListener EdgeCopied} event. *

    - * @param {yfiles.graph.IEdge} original The original of the copied edge. - * @param {yfiles.graph.IEdge} copy The copied edge. + * @param original The original of the copied edge. + * @param copy The copied edge. * @protected */ onEdgeCopied(original:yfiles.graph.IEdge,copy:yfiles.graph.IEdge):void; @@ -49348,8 +48352,8 @@ declare namespace system{ *

    * Raises the {@link yfiles.graph.GraphCopier#addGraphCopiedListener GraphCopied} event. *

    - * @param {yfiles.graph.IGraph} sourceGraph The source graph from which the elements have been copied. - * @param {yfiles.graph.IGraph} targetGraph The graph to which the elements have been copied. + * @param sourceGraph The source graph from which the elements have been copied. + * @param targetGraph The graph to which the elements have been copied. * @protected */ onGraphCopied(sourceGraph:yfiles.graph.IGraph,targetGraph:yfiles.graph.IGraph):void; @@ -49358,8 +48362,8 @@ declare namespace system{ *

    * Raises the {@link yfiles.graph.GraphCopier#addLabelCopiedListener LabelCopied} event. *

    - * @param {yfiles.graph.ILabel} original The original of the copied label. - * @param {yfiles.graph.ILabel} copy The copied label. + * @param original The original of the copied label. + * @param copy The copied label. */ onLabelCopied(original:yfiles.graph.ILabel,copy:yfiles.graph.ILabel):void; /** @@ -49367,14 +48371,14 @@ declare namespace system{ *

    * Raises the {@link yfiles.graph.GraphCopier#addNodeCopiedListener NodeCopied} event. *

    - * @param {yfiles.graph.INode} original The original of the copied node. - * @param {yfiles.graph.INode} copy The copied node. + * @param original The original of the copied node. + * @param copy The copied node. * @protected */ onNodeCopied(original:yfiles.graph.INode,copy:yfiles.graph.INode):void; /** * Emits the {@link yfiles.graph.GraphCopier#addObjectCopiedListener ObjectCopied} event. - * @param {yfiles.graph.ItemCopiedEventArgs.} evt The argument to use. + * @param evt The argument to use. * @protected */ onObjectCopied(evt:yfiles.graph.ItemCopiedEventArgs):void; @@ -49383,8 +48387,8 @@ declare namespace system{ *

    * Raises the {@link yfiles.graph.GraphCopier#addPortCopiedListener PortCopied} event. *

    - * @param {yfiles.graph.IPort} original The original of the copied port. - * @param {yfiles.graph.IPort} copy The copied port. + * @param original The original of the copied port. + * @param copy The copied port. */ onPortCopied(original:yfiles.graph.IPort,copy:yfiles.graph.IPort):void; /** @@ -49451,7 +48455,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy copied} item is a master item, i.e. it belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphCopier#removeNodeCopiedListener */ addNodeCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49468,7 +48472,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy copied} item is a master item, i.e. it belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphCopier#addNodeCopiedListener */ removeNodeCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49489,7 +48493,7 @@ declare namespace system{ * For {@link yfiles.graph.FoldingManager#getFoldingEdgeState folding edge} bends, their view state representation is passed. These elements are neither part of the {@link yfiles.graph.FoldingManager#masterGraph} nor the * {@link yfiles.graph.FoldingManager#views view graph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphCopier#removeBendCopiedListener */ addBendCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49510,7 +48514,7 @@ declare namespace system{ * For {@link yfiles.graph.FoldingManager#getFoldingEdgeState folding edge} bends, their view state representation is passed. These elements are neither part of the {@link yfiles.graph.FoldingManager#masterGraph} nor the * {@link yfiles.graph.FoldingManager#views view graph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphCopier#addBendCopiedListener */ removeBendCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49524,7 +48528,7 @@ declare namespace system{ * This event will not be triggered for the graph items themselves and will not be triggered if the object reference is * reused, i.e. it will only be triggered if the old and new references actually differ. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphCopier#removeObjectCopiedListener */ addObjectCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49538,7 +48542,7 @@ declare namespace system{ * This event will not be triggered for the graph items themselves and will not be triggered if the object reference is * reused, i.e. it will only be triggered if the old and new references actually differ. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphCopier#addObjectCopiedListener */ removeObjectCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49555,7 +48559,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy copied} item is a master item, i.e. it belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphCopier#removeEdgeCopiedListener */ addEdgeCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49572,7 +48576,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy copied} item is a master item, i.e. it belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphCopier#addEdgeCopiedListener */ removeEdgeCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49589,7 +48593,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy copied} item is a master item, i.e. it belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphCopier#removePortCopiedListener */ addPortCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49606,7 +48610,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy copied} item is a master item, i.e. it belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphCopier#addPortCopiedListener */ removePortCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49627,7 +48631,7 @@ declare namespace system{ * For {@link yfiles.graph.FoldingManager#getFoldingEdgeState folding edge} or dummy node labels, their view state representation is passed. These elements are neither part of the * {@link yfiles.graph.FoldingManager#masterGraph} nor the {@link yfiles.graph.FoldingManager#views view graph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphCopier#removeLabelCopiedListener */ addLabelCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49648,7 +48652,7 @@ declare namespace system{ * For {@link yfiles.graph.FoldingManager#getFoldingEdgeState folding edge} or dummy node labels, their view state representation is passed. These elements are neither part of the * {@link yfiles.graph.FoldingManager#masterGraph} nor the {@link yfiles.graph.FoldingManager#views view graph}. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphCopier#addLabelCopiedListener */ removeLabelCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49665,7 +48669,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy target graph} is the {@link yfiles.graph.FoldingManager#masterGraph master graph} of the folding view. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.GraphCopier#removeGraphCopiedListener */ addGraphCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49682,7 +48686,7 @@ declare namespace system{ * If this GraphCopier instance is used as {@link yfiles.graph.GraphClipboard}'s {@link yfiles.graph.GraphClipboard#fromClipboardCopier} (Paste) and the target graph is a folding view * graph the {@link yfiles.graph.ItemCopiedEventArgs.#copy target graph} is the {@link yfiles.graph.FoldingManager#masterGraph master graph} of the folding view. *

    - * @param {function(Object, yfiles.graph.ItemCopiedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.GraphCopier#addGraphCopiedListener */ removeGraphCopiedListener(listener:(sender:Object,evt:yfiles.graph.ItemCopiedEventArgs)=>void):void; @@ -49699,7 +48703,7 @@ declare namespace system{ * events. This event holds references to the {@link yfiles.graph.ItemCopiedEventArgs.#original original} of the copied item and the {@link yfiles.graph.ItemCopiedEventArgs.#copy copied item} itself. *

    * Type parameter T: The logical base type of the copied item. - * @class yfiles.graph.ItemCopiedEventArgs. + * @class * @extends {yfiles.lang.EventArgs} * @template T */ @@ -49707,9 +48711,8 @@ declare namespace system{ export class ItemCopiedEventArgs { /** * Creates a new argument for the given item and its original. - * @param {T} original The {@link yfiles.graph.ItemCopiedEventArgs.#original original} of the copied item. - * @param {T} copy The {@link yfiles.graph.ItemCopiedEventArgs.#copy copied item}. - * @constructor + * @param original The {@link #original original} of the copied item. + * @param copy The {@link #copy copied item}. */ constructor(original:T,copy:T); /** @@ -49741,15 +48744,14 @@ declare namespace system{ * @see yfiles.graph.PortDecorator * @see yfiles.graph.GraphDecorator#bendDecorator * @see yfiles.graph.BendDecorator - * @class yfiles.graph.GraphDecorator + * @class * @final */ export interface GraphDecorator extends Object{} export class GraphDecorator { /** * Initializes a new instance of the {@link yfiles.graph.GraphDecorator} class. - * @param {yfiles.graph.IGraph} graph The graph. - * @constructor + * @param graph The graph. */ constructor(graph:yfiles.graph.IGraph); /** @@ -49815,24 +48817,23 @@ declare namespace system{ *

    * @see yfiles.graph.GraphDecorator * @see yfiles.graph.LookupDecorator. - * @class yfiles.graph.LabelDecorator + * @class * @final */ export interface LabelDecorator extends Object{} export class LabelDecorator { /** * Initializes a new instance of the {@link yfiles.graph.LabelDecorator} class. - * @param {yfiles.graph.ILookupDecorator} decorator The decorator to use, which can be null. - * @constructor + * @param decorator The decorator to use, which can be null. */ constructor(decorator:yfiles.graph.ILookupDecorator); /** * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.ILabel}s that can be used to decorate TInterface types of the labels. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {yfiles.lang.Class} type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean):yfiles.graph.LookupDecorator; @@ -49840,10 +48841,10 @@ declare namespace system{ * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.ILabel}s that can be used to decorate TInterface types of the labels. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. * @param {Object} options The parameters to pass. - * @param {yfiles.lang.Class} options.type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param options.type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(options:{type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean}):yfiles.graph.LookupDecorator; @@ -50013,24 +49014,23 @@ declare namespace system{ *

    * @see yfiles.graph.GraphDecorator * @see yfiles.graph.LookupDecorator. - * @class yfiles.graph.EdgeDecorator + * @class * @final */ export interface EdgeDecorator extends Object{} export class EdgeDecorator { /** * Initializes a new instance of the {@link yfiles.graph.EdgeDecorator} class. - * @param {yfiles.graph.ILookupDecorator} decorator The decorator to use, which can be null. - * @constructor + * @param decorator The decorator to use, which can be null. */ constructor(decorator:yfiles.graph.ILookupDecorator); /** * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.IEdge}s that can be used to decorate TInterface types of the edges. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {yfiles.lang.Class} type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean):yfiles.graph.LookupDecorator; @@ -50038,10 +49038,10 @@ declare namespace system{ * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.IEdge}s that can be used to decorate TInterface types of the edges. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. * @param {Object} options The parameters to pass. - * @param {yfiles.lang.Class} options.type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param options.type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(options:{type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean}):yfiles.graph.LookupDecorator; @@ -50278,24 +49278,23 @@ declare namespace system{ *

    * @see yfiles.graph.GraphDecorator * @see yfiles.graph.LookupDecorator. - * @class yfiles.graph.BendDecorator + * @class * @final */ export interface BendDecorator extends Object{} export class BendDecorator { /** * Initializes a new instance of the {@link yfiles.graph.BendDecorator} class. - * @param {yfiles.graph.ILookupDecorator} decorator The decorator to use, which can be null. - * @constructor + * @param decorator The decorator to use, which can be null. */ constructor(decorator:yfiles.graph.ILookupDecorator); /** * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.IBend}s that can be used to decorate TInterface types of the bends. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {yfiles.lang.Class} type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean):yfiles.graph.LookupDecorator; @@ -50303,10 +49302,10 @@ declare namespace system{ * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.IBend}s that can be used to decorate TInterface types of the bends. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. * @param {Object} options The parameters to pass. - * @param {yfiles.lang.Class} options.type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param options.type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(options:{type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean}):yfiles.graph.LookupDecorator; @@ -50451,24 +49450,23 @@ declare namespace system{ *

    * @see yfiles.graph.GraphDecorator * @see yfiles.graph.LookupDecorator. - * @class yfiles.graph.PortDecorator + * @class * @final */ export interface PortDecorator extends Object{} export class PortDecorator { /** * Initializes a new instance of the {@link yfiles.graph.PortDecorator} class. - * @param {yfiles.graph.ILookupDecorator} decorator The decorator to use, which can be null. - * @constructor + * @param decorator The decorator to use, which can be null. */ constructor(decorator:yfiles.graph.ILookupDecorator); /** * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.IPort}s that can be used to decorate TInterface types of the ports. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {yfiles.lang.Class} type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean):yfiles.graph.LookupDecorator; @@ -50476,10 +49474,10 @@ declare namespace system{ * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.IPort}s that can be used to decorate TInterface types of the ports. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. * @param {Object} options The parameters to pass. - * @param {yfiles.lang.Class} options.type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param options.type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(options:{type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean}):yfiles.graph.LookupDecorator; @@ -50652,24 +49650,23 @@ declare namespace system{ *

    * @see yfiles.graph.GraphDecorator * @see yfiles.graph.LookupDecorator. - * @class yfiles.graph.NodeDecorator + * @class * @final */ export interface NodeDecorator extends Object{} export class NodeDecorator { /** * Initializes a new instance of the {@link yfiles.graph.NodeDecorator} class. - * @param {yfiles.graph.ILookupDecorator} decorator The decorator to use, which can be null. - * @constructor + * @param decorator The decorator to use, which can be null. */ constructor(decorator:yfiles.graph.ILookupDecorator); /** * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.INode}s that can be used to decorate TInterface types of the nodes. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {yfiles.lang.Class} type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean):yfiles.graph.LookupDecorator; @@ -50677,10 +49674,10 @@ declare namespace system{ * Creates a {@link yfiles.graph.LookupDecorator.} for {@link yfiles.graph.INode}s that can be used to decorate TInterface types of the nodes. * Type parameter TInterface: The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. * @param {Object} options The parameters to pass. - * @param {yfiles.lang.Class} options.type The type of the interface that should be decorated of the instances' {@link yfiles.graph.ILookup#lookup}. - * @param {boolean} [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. - * @param {boolean} [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. - * @returns {yfiles.graph.LookupDecorator.} A new {@link yfiles.graph.LookupDecorator.} for the specified interface. + * @param options.type The type of the interface that should be decorated of the instances' {@link #lookup}. + * @param [options.decorateNulls=true] if set to true null values will be decorated, otherwise not. + * @param [options.nullIsFallback=false] if set to true null values will be treated as fallback values, otherwise they will be used as the final result. + * @returns A new {@link } for the specified interface. * @template TInterface */ getDecoratorFor(options:{type:yfiles.lang.Class,decorateNulls?:boolean,nullIsFallback?:boolean}):yfiles.graph.LookupDecorator; @@ -50936,7 +49933,7 @@ declare namespace system{ * interface and not the implementation of the interface since client code will use the interface for the query. * @see yfiles.graph.ILookup * @see yfiles.graph.GraphDecorator - * @class yfiles.graph.LookupDecorator. + * @class * @template TDecoratedType,TInterface * @final */ @@ -50944,19 +49941,18 @@ declare namespace system{ export class LookupDecorator { /** * Initializes a new instance of the {@link yfiles.graph.LookupDecorator.} class. - * @param {yfiles.lang.Class} decoratedType The type of the instances whose {@link yfiles.graph.ILookup#lookup} behavior should be modified. - * @param {yfiles.lang.Class} interfaceType The interface or type that clients will use during the {@link yfiles.graph.ILookup#lookup} call. Note that this is normally an + * @param decoratedType The type of the instances whose {@link #lookup} behavior should be modified. + * @param interfaceType The interface or type that clients will use during the {@link #lookup} call. Note that this is normally an * interface and not the implementation of the interface since client code will use the interface for the query. - * @param {yfiles.graph.ILookupDecorator} decorator The decorator instance that will be used to {@link yfiles.graph.ILookupDecorator#addLookup extend the Lookup mechanism}. - * @param {boolean} decorateNulls The initial value of the {@link yfiles.graph.LookupDecorator.#decorateNulls} property. - * @param {boolean} nullIsFallback The initial value of the {@link yfiles.graph.LookupDecorator.#nullIsFallback} property. - * @constructor + * @param decorator The decorator instance that will be used to {@link #addLookup extend the Lookup mechanism}. + * @param decorateNulls The initial value of the {@link #decorateNulls} property. + * @param nullIsFallback The initial value of the {@link #nullIsFallback} property. */ constructor(decoratedType:yfiles.lang.Class,interfaceType:yfiles.lang.Class,decorator:yfiles.graph.ILookupDecorator,decorateNulls:boolean,nullIsFallback:boolean); /** * Simple helper method that tries to add the provided chain link to the {@link yfiles.graph.LookupDecorator.#decorator}. - * @param {yfiles.graph.IContextLookupChainLink} lookup The link to add. - * @returns {yfiles.graph.IContextLookupChainLink} The lookup that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if the decoration was unsuccessful. + * @param lookup The link to add. + * @returns The lookup that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if the decoration was unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup */ addChainLink(lookup:yfiles.graph.IContextLookupChainLink):yfiles.graph.IContextLookupChainLink; @@ -50971,8 +49967,8 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {function(TDecoratedType): boolean} [predicate=null] The predicate that determines for which items the implementation shall be hidden. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param [predicate=null] The predicate that determines for which items the implementation shall be hidden. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup */ @@ -50996,9 +49992,9 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {function(TDecoratedType): boolean} predicate The predicate that determines for which items the factory shall be called. - * @param {function(TDecoratedType): TInterface} factory The factory that is queried to create the result. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param predicate The predicate that determines for which items the factory shall be called. + * @param factory The factory that is queried to create the result. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup * @see yfiles.graph.LookupDecorator.#nullIsFallback @@ -51023,8 +50019,8 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {function(TDecoratedType): TInterface} factory The factory that is queried to create the result. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param factory The factory that is queried to create the result. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup * @see yfiles.graph.LookupDecorator.#nullIsFallback @@ -51044,9 +50040,9 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {function(TDecoratedType): boolean} predicate A predicate that determines which items are affected. - * @param {TInterface} implementation The implementation to return if the predicate matches and TInterface is queried. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param predicate A predicate that determines which items are affected. + * @param implementation The implementation to return if the predicate matches and TInterface is queried. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup */ @@ -51065,9 +50061,9 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {TDecoratedType} item The item for which the implementation shall be returned. - * @param {TInterface} implementation The implementation to return if item is queried for TInterface. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param item The item for which the implementation shall be returned. + * @param implementation The implementation to return if item is queried for TInterface. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup */ @@ -51086,8 +50082,8 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {TInterface} implementation The implementation to return unconditionally. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param implementation The implementation to return unconditionally. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup */ @@ -51110,9 +50106,9 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {function(TDecoratedType): boolean} predicate The predicate that determines for which items the wrapping shall be performed. - * @param {function(TDecoratedType, TInterface): TInterface} factory The factory that will be passed the underlying implementation and that is queried to create the result. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param predicate The predicate that determines for which items the wrapping shall be performed. + * @param factory The factory that will be passed the underlying implementation and that is queried to create the result. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup */ @@ -51135,8 +50131,8 @@ declare namespace system{ * The effects of this method call can be undone by passing the return value to * {@link yfiles.graph.ILookupDecorator#removeLookup}. *

    - * @param {function(TDecoratedType, TInterface): TInterface} factory The factory that will be passed the underlying implementation and that is queried to create the result. - * @returns {yfiles.graph.IContextLookupChainLink} An {@link yfiles.graph.IContextLookupChainLink} that has been {@link yfiles.graph.ILookupDecorator#addLookup added} to the {@link yfiles.graph.LookupDecorator.#decorator} as a result of this call, or null if decoration was + * @param factory The factory that will be passed the underlying implementation and that is queried to create the result. + * @returns An {@link } that has been {@link #addLookup added} to the {@link #decorator} as a result of this call, or null if decoration was * unsuccessful. * @see yfiles.graph.ILookupDecorator#addLookup */ @@ -51173,6 +50169,122 @@ declare namespace system{ nullIsFallback:boolean; static $class:yfiles.lang.Class; } + /** + * Provides less frequently used methods for analyzing and managing grouped graphs. + *

    + * An instance of this class which is configured for a given {@link yfiles.graph.IGraph} instance can be obtained via {@link yfiles.graph.IGraph#groupingSupport}. + *

    + * @class + */ + export interface GroupingSupport extends Object{} + export class GroupingSupport { + /** + * Creates a new instance which operates on the given graph. + * @param graph The graph to use for operations on this instance. + */ + constructor(graph:yfiles.graph.IGraph); + /** + * Calculates the minimum area to enclose by the given group node with respect to its {@link yfiles.graph.IGroupBoundsCalculator}. + * @param groupNode The group node to calculate the minimum enclosed area of. + * @returns The area to enclose for the given group node. This is {@link #EMPTY} if the node is not a group node, or if + * it hasn't any children. + */ + calculateMinimumEnclosedArea(groupNode:yfiles.graph.INode):yfiles.geometry.Rect; + /** + * Enlarges all group nodes in the graph in an interactive scenario, so that the {@link yfiles.graph.GroupingSupport#calculateMinimumEnclosedArea minimum enclosed area} is respected. + *

    + * This method should be used in an interactive editing scenario. It records an {@link yfiles.graph.ICompoundEdit} to support + * undoability and uses the {@link yfiles.input.IReshapeHandler} for the resizing of the nodes. That way, e.g. orthogonally edited + * edges will be properly reshaped. + *

    + * @param context The context to use for the {@link }s. + * @see yfiles.graph.GroupingSupport#enlargeGroupNode + */ + enlargeAllGroupNodes(context:yfiles.input.IInputModeContext):void; + /** + * Enlarges all group nodes in the graph so that the {@link yfiles.graph.GroupingSupport#calculateMinimumEnclosedArea minimum enclosed area} is respected. + * @see yfiles.graph.GroupingSupport#enlargeGroupNode + */ + enlargeAllGroupNodes():void; + /** + * Enlarges the group nodes in an interactive scenario, using {@link yfiles.input.IReshapeHandler} implementations of the group + * nodes to perform the actual resizing. + *

    + * This method should be used in an interactive editing scenario. It records an {@link yfiles.graph.ICompoundEdit} to support + * undoability and uses the {@link yfiles.input.IReshapeHandler} for the resizing of the nodes. That way, e.g. orthogonally edited + * edges will be properly reshaped. + *

    + * @param context The context to use for the {@link }s. + * @param node The node to enlarge appropriately. + * @param ancestors if set to true ancestors the ancestor group nodes will be adjusted, too, if necessary. + * @see yfiles.input.IReshapeHandler + */ + enlargeGroupNode(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,ancestors:boolean):void; + /** + * Enlarges the given group node to ensure that the {@link yfiles.graph.GroupingSupport#calculateMinimumEnclosedArea minimum enclosed} area is inside of its bounds. + *

    + * This method can be used to resize a group node and all of its parent group nodes to fully contain its children, e.g. + * after a child node has changed its bounds. Note that this method will only enlarge the bounds of the group nodes, it + * will never reduce the size of a group node. + *

    + * @param groupNode The group node to resize. + * @param ancestors if set to true all ancestor group nodes will be resized, too, if necessary + * @see yfiles.graph.GroupingSupport#enlargeGroupNode + */ + enlargeGroupNode(groupNode:yfiles.graph.INode,ancestors:boolean):void; + /** + * Returns all descendants of the provided node that are part of the grouped graph. + *

    + * The enumeration will be top down, i.e. all of a node's ancestors will be enumerated before the respective node. + *

    + * @param node The root node to get the descendants from. + * @returns An enumeration of the children of the node at the time of this invocation in reverse DFS prefix order. + */ + getDescendants(node:yfiles.graph.INode):yfiles.collections.IEnumerable; + /** + * Returns all descendants of the provided node that are part of the grouped graph. + *

    + * The enumeration will be bottom up, i.e. all of a node's children will be enumerated before the respective node. + *

    + * @param node The root node to get the descendants from. + * @returns An enumeration of the children of the node at the time of this invocation in DFS postfix order. + */ + getDescendantsBottomUp(node:yfiles.graph.INode):yfiles.collections.IEnumerable; + /** + * Determines the nearest common ancestor of the provided nodes in the graph. + * @param nodes The nodes to find the nearest common ancestor of. + * @returns + */ + getNearestCommonAncestor(...nodes:yfiles.graph.INode[]):yfiles.graph.INode; + /** + * Determines the nearest common ancestor of the provided nodes in the graph. + * @param nodes The nodes to find the nearest common ancestor of. + * @returns + */ + getNearestCommonAncestor(nodes:yfiles.collections.IEnumerable):yfiles.graph.INode; + /** + * Gets the path to root traversing all {@link yfiles.graph.IGraph#getParent parents} of the given item. + * @param node The node to start. + * @returns A list that includes the node but not the root, unless they are identical and all parents in between them. + */ + getPathToRoot(node:yfiles.graph.INode):yfiles.collections.IList; + /** + * Determines whether there are group nodes in the graph. + *

    + * This methods considers all {@link yfiles.graph.IGraph#isGroupNode group} nodes, that is, nodes that could have children. + *

    + * @returns true if there are {@link #isGroupNode group}. + */ + hasGroupNodes():boolean; + /** + * Determines whether ancestor is an ancestor of node in the grouped graph. + * @param node The node to check. + * @param ancestor The ancestor to check. + * @returns Whether ancestor is an ancestor of node. + */ + isDescendant(node:yfiles.graph.INode,ancestor:yfiles.graph.INode):boolean; + static $class:yfiles.lang.Class; + } /** * An abstract {@link yfiles.graph.IGraph} implementation that delegates all of its work to an existing implementation. *

    @@ -51180,7 +50292,7 @@ declare namespace system{ * register listeners with the wrapped graph instance, so {@link yfiles.graph.GraphWrapperBase#dispose} should be called if this * instance is not used any more. *

    - * @class yfiles.graph.GraphWrapperBase + * @class * @implements {yfiles.graph.IGraph} */ export interface GraphWrapperBase extends Object,yfiles.graph.IGraph{} @@ -51191,164 +50303,163 @@ declare namespace system{ * Note that this instance will {@link yfiles.graph.GraphWrapperBase#addEventHandlers register listeners} with the graph, so {@link yfiles.graph.GraphWrapperBase#dispose} should be * called if this instance is not used any more. *

    - * @param {yfiles.graph.IGraph} graph The graph to wrap. + * @param graph The graph to wrap. * @protected - * @constructor */ constructor(graph:yfiles.graph.IGraph); /** * - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.geometry.Point} location - * @param {number} [index=-1] - * @returns {yfiles.graph.IBend} + * @param edge + * @param location + * @param [index=-1] + * @returns */ addBend(edge:yfiles.graph.IEdge,location:yfiles.geometry.Point,index?:number):yfiles.graph.IBend; /** * Adds event handlers that propagate graph events from graph to listeners on this instance. - * @param {yfiles.graph.IGraph} graph The graph for which event propagators should be created + * @param graph The graph for which event propagators should be created * @protected */ addEventHandlers(graph:yfiles.graph.IGraph):void; /** * - * @param {yfiles.graph.ILabelOwner} owner - * @param {string} text - * @param {yfiles.graph.ILabelModelParameter} [layoutParameter=null] - * @param {yfiles.styles.ILabelStyle} [style=null] - * @param {yfiles.geometry.Size} [preferredSize=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.ILabel} + * @param owner + * @param text + * @param [layoutParameter=null] + * @param [style=null] + * @param [preferredSize=null] + * @param [tag=null] + * @returns */ addLabel(owner:yfiles.graph.ILabelOwner,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object):yfiles.graph.ILabel; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.ILabelOwner} options.owner - * @param {string} options.text - * @param {yfiles.graph.ILabelModelParameter} [options.layoutParameter=null] - * @param {yfiles.styles.ILabelStyle} [options.style=null] - * @param {yfiles.geometry.Size} [options.preferredSize=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.ILabel} + * @param options.owner + * @param options.text + * @param [options.layoutParameter=null] + * @param [options.style=null] + * @param [options.preferredSize=null] + * @param [options.tag=null] + * @returns */ addLabel(options:{owner:yfiles.graph.ILabelOwner,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object}):yfiles.graph.ILabel; /** * - * @param {yfiles.graph.IPortOwner} owner - * @param {yfiles.graph.IPortLocationModelParameter} [locationParameter=null] - * @param {yfiles.styles.IPortStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.IPort} + * @param owner + * @param [locationParameter=null] + * @param [style=null] + * @param [tag=null] + * @returns */ addPort(owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,style?:yfiles.styles.IPortStyle,tag?:Object):yfiles.graph.IPort; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPortOwner} options.owner - * @param {yfiles.graph.IPortLocationModelParameter} [options.locationParameter=null] - * @param {yfiles.styles.IPortStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.IPort} + * @param options.owner + * @param [options.locationParameter=null] + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ addPort(options:{owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,style?:yfiles.styles.IPortStyle,tag?:Object}):yfiles.graph.IPort; /** * - * @param {yfiles.graph.IModelItem} item - * @returns {boolean} + * @param item + * @returns */ contains(item:yfiles.graph.IModelItem):boolean; /** * - * @param {yfiles.graph.INode} source - * @param {yfiles.graph.INode} target - * @param {yfiles.styles.IEdgeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.IEdge} + * @param source + * @param target + * @param [style=null] + * @param [tag=null] + * @returns */ createEdge(source:yfiles.graph.INode,target:yfiles.graph.INode,style?:yfiles.styles.IEdgeStyle,tag?:Object):yfiles.graph.IEdge; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} options.source - * @param {yfiles.graph.INode} options.target - * @param {yfiles.styles.IEdgeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.IEdge} + * @param options.source + * @param options.target + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createEdge(options:{source:yfiles.graph.INode,target:yfiles.graph.INode,style?:yfiles.styles.IEdgeStyle,tag?:Object}):yfiles.graph.IEdge; /** * - * @param {yfiles.graph.IPort} sourcePort - * @param {yfiles.graph.IPort} targetPort - * @param {yfiles.styles.IEdgeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.IEdge} + * @param sourcePort + * @param targetPort + * @param [style=null] + * @param [tag=null] + * @returns */ createEdge(sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort,style?:yfiles.styles.IEdgeStyle,tag?:Object):yfiles.graph.IEdge; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPort} options.sourcePort - * @param {yfiles.graph.IPort} options.targetPort - * @param {yfiles.styles.IEdgeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.IEdge} + * @param options.sourcePort + * @param options.targetPort + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createEdge(options:{sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort,style?:yfiles.styles.IEdgeStyle,tag?:Object}):yfiles.graph.IEdge; /** * - * @param {yfiles.graph.INode} [parent=null] - * @param {yfiles.geometry.Rect} [layout=null] - * @param {yfiles.styles.INodeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.INode} + * @param [parent=null] + * @param [layout=null] + * @param [style=null] + * @param [tag=null] + * @returns */ createGroupNode(parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.parent=null] - * @param {yfiles.geometry.Rect} [options.layout=null] - * @param {yfiles.styles.INodeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.INode} + * @param [options.parent=null] + * @param [options.layout=null] + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createGroupNode(options:{parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object}):yfiles.graph.INode; /** * - * @param {yfiles.geometry.Rect} layout - * @param {yfiles.styles.INodeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.INode} + * @param layout + * @param [style=null] + * @param [tag=null] + * @returns */ createNode(layout:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.Rect} options.layout - * @param {yfiles.styles.INodeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.INode} + * @param options.layout + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createNode(options:{layout:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object}):yfiles.graph.INode; /** * - * @param {yfiles.graph.INode} [parent=null] - * @param {yfiles.geometry.Rect} [layout=null] - * @param {yfiles.styles.INodeStyle} [style=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.INode} + * @param [parent=null] + * @param [layout=null] + * @param [style=null] + * @param [tag=null] + * @returns */ createNode(parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; /** * * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.parent=null] - * @param {yfiles.geometry.Rect} [options.layout=null] - * @param {yfiles.styles.INodeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.INode} + * @param [options.parent=null] + * @param [options.layout=null] + * @param [options.style=null] + * @param [options.tag=null] + * @returns */ createNode(options:{parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object}):yfiles.graph.INode; /** @@ -51361,33 +50472,33 @@ declare namespace system{ dispose():void; /** * - * @param {yfiles.graph.IPortOwner} owner - * @param {yfiles.graph.AdjacencyTypes} [type=3] - * @returns {yfiles.collections.IListEnumerable.} + * @param owner + * @param [type=yfiles.graph.AdjacencyTypes.ALL] + * @returns */ edgesAt(owner:yfiles.graph.IPortOwner,type?:yfiles.graph.AdjacencyTypes):yfiles.collections.IListEnumerable; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.AdjacencyTypes} [type=3] - * @returns {yfiles.collections.IListEnumerable.} + * @param port + * @param [type=yfiles.graph.AdjacencyTypes.ALL] + * @returns */ edgesAt(port:yfiles.graph.IPort,type?:yfiles.graph.AdjacencyTypes):yfiles.collections.IListEnumerable; /** * - * @param {yfiles.graph.INode} node - * @returns {yfiles.collections.IListEnumerable.} + * @param node + * @returns */ getChildren(node:yfiles.graph.INode):yfiles.collections.IListEnumerable; /** * Gets the lookup instance to use in {@link yfiles.graph.GraphWrapperBase#lookup} - * @returns {yfiles.graph.ILookup} + * @returns */ getLookup():yfiles.graph.ILookup; /** * - * @param {yfiles.graph.INode} node - * @returns {yfiles.graph.INode} + * @param node + * @returns */ getParent(node:yfiles.graph.INode):yfiles.graph.INode; /** @@ -51396,68 +50507,68 @@ declare namespace system{ invalidateDisplays():void; /** * - * @param {yfiles.graph.INode} node - * @returns {boolean} + * @param node + * @returns */ isGroupNode(node:yfiles.graph.INode):boolean; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addBendAddedListener BendAdded} event - * @param {yfiles.collections.ItemEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onBendAdded(evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addBendLocationChangedListener BendLocationChanged} event - * @param {yfiles.graph.IBend} bend The bend whose location changed - * @param {yfiles.geometry.Point} oldLocation The bend location before the change + * @param bend The bend whose location changed + * @param oldLocation The bend location before the change * @protected */ onBendLocationChanged(bend:yfiles.graph.IBend,oldLocation:yfiles.geometry.Point):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addBendRemovedListener BendRemoved} event - * @param {yfiles.graph.BendEventArgs} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onBendRemoved(evt:yfiles.graph.BendEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addBendTagChangedListener BendTagChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onBendTagChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addEdgeCreatedListener EdgeCreated} event - * @param {yfiles.collections.ItemEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onEdgeCreated(evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addEdgePortsChangedListener EdgePortsChanged} event - * @param {yfiles.graph.EdgeEventArgs} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onEdgePortsChanged(evt:yfiles.graph.EdgeEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addEdgeRemovedListener EdgeRemoved} event - * @param {yfiles.graph.EdgeEventArgs} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onEdgeRemoved(evt:yfiles.graph.EdgeEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addEdgeStyleChangedListener EdgeStyleChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onEdgeStyleChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addEdgeTagChangedListener EdgeTagChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onEdgeTagChanged(evt:yfiles.graph.ItemChangedEventArgs):void; @@ -51467,231 +50578,231 @@ declare namespace system{ * Delegates to {@link yfiles.graph.GraphWrapperBase#addEventHandlers} for newGraph and to {@link yfiles.graph.GraphWrapperBase#removeEventHandlers} * for oldGraph. *

    - * @param {yfiles.graph.IGraph} oldGraph the old value, which may be null the first time - * @param {yfiles.graph.IGraph} newGraph the new value + * @param oldGraph the old value, which may be null the first time + * @param newGraph the new value * @protected */ onGraphChanged(oldGraph:yfiles.graph.IGraph,newGraph:yfiles.graph.IGraph):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addGraphTagChangedListener GraphTagChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onGraphTagChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addDisplaysInvalidatedListener DisplaysInvalidated} event - * @param {yfiles.lang.EventArgs} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onInvalidateDisplays(evt:yfiles.lang.EventArgs):void; /** * Dispatches the {@link yfiles.graph.GraphWrapperBase#addIsGroupNodeChangedListener IsGroupNodeChanged} event. - * @param {yfiles.graph.NodeEventArgs} evt The event args to dispatch. + * @param evt The event args to dispatch. * @protected */ onIsGroupNodeChanged(evt:yfiles.graph.NodeEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addLabelAddedListener LabelAdded} event - * @param {yfiles.collections.ItemEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onLabelAdded(evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addLabelLayoutParameterChangedListener LabelLayoutParameterChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onLabelLayoutParameterChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addLabelPreferredSizeChangedListener LabelPreferredSizeChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onLabelPreferredSizeChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addLabelRemovedListener LabelRemoved} event - * @param {yfiles.graph.LabelEventArgs} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onLabelRemoved(evt:yfiles.graph.LabelEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addLabelStyleChangedListener LabelStyleChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onLabelStyleChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addLabelTagChangedListener LabelTagChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onLabelTagChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addLabelTextChangedListener LabelTextChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onLabelTextChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addNodeCreatedListener NodeCreated} event - * @param {yfiles.collections.ItemEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onNodeCreated(evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addNodeLayoutChangedListener NodeLayoutChanged} event - * @param {yfiles.graph.INode} node The node whose layout changed - * @param {yfiles.geometry.Rect} oldLayout The node layout before the change + * @param node The node whose layout changed + * @param oldLayout The node layout before the change * @protected */ onNodeLayoutChanged(node:yfiles.graph.INode,oldLayout:yfiles.geometry.Rect):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addNodeRemovedListener NodeRemoved} event - * @param {yfiles.graph.NodeEventArgs} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onNodeRemoved(evt:yfiles.graph.NodeEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addNodeStyleChangedListener NodeStyleChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onNodeStyleChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addNodeTagChangedListener NodeTagChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onNodeTagChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Dispatches the {@link yfiles.graph.GraphWrapperBase#addParentChangedListener ParentChanged} event. - * @param {yfiles.graph.NodeEventArgs} evt The event args to dispatch. + * @param evt The event args to dispatch. * @protected */ onParentChanged(evt:yfiles.graph.NodeEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addPortAddedListener PortAdded} event - * @param {yfiles.collections.ItemEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onPortAdded(evt:yfiles.collections.ItemEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addPortLocationParameterChangedListener PortLocationParameterChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onPortLocationParameterChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addPortRemovedListener PortRemoved} event - * @param {yfiles.graph.PortEventArgs} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onPortRemoved(evt:yfiles.graph.PortEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addPortStyleChangedListener PortStyleChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onPortStyleChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * Raises the {@link yfiles.graph.GraphWrapperBase#addPortTagChangedListener PortTagChanged} event - * @param {yfiles.graph.ItemChangedEventArgs.} evt The parameters for the event + * @param evt The parameters for the event * @protected */ onPortTagChanged(evt:yfiles.graph.ItemChangedEventArgs):void; /** * - * @param {yfiles.graph.IModelItem} item + * @param item */ remove(item:yfiles.graph.IModelItem):void; /** * Removes event handlers for graph that have been added with {@link yfiles.graph.GraphWrapperBase#addEventHandlers}. - * @param {yfiles.graph.IGraph} graph The graph for which event propagators should be removed + * @param graph The graph for which event propagators should be removed * @protected */ removeEventHandlers(graph:yfiles.graph.IGraph):void; /** * - * @param {yfiles.graph.IBend} bend - * @param {yfiles.geometry.Point} location + * @param bend + * @param location */ setBendLocation(bend:yfiles.graph.IBend,location:yfiles.geometry.Point):void; /** * - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.graph.IPort} sourcePort - * @param {yfiles.graph.IPort} targetPort + * @param edge + * @param sourcePort + * @param targetPort */ setEdgePorts(edge:yfiles.graph.IEdge,sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort):void; /** * - * @param {yfiles.graph.INode} node - * @param {boolean} isGroupNode + * @param node + * @param isGroupNode */ setIsGroupNode(node:yfiles.graph.INode,isGroupNode:boolean):void; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter + * @param label + * @param layoutParameter */ setLabelLayoutParameter(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):void; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.geometry.Size} preferredSize + * @param label + * @param preferredSize */ setLabelPreferredSize(label:yfiles.graph.ILabel,preferredSize:yfiles.geometry.Size):void; /** * - * @param {yfiles.graph.ILabel} label - * @param {string} text + * @param label + * @param text */ setLabelText(label:yfiles.graph.ILabel,text:string):void; /** * Sets the lookup instance to use in {@link yfiles.graph.GraphWrapperBase#lookup} - * @param {yfiles.graph.ILookup} lookup + * @param lookup */ setLookup(lookup:yfiles.graph.ILookup):void; /** * - * @param {yfiles.graph.INode} node - * @param {yfiles.geometry.Rect} layout + * @param node + * @param layout */ setNodeLayout(node:yfiles.graph.INode,layout:yfiles.geometry.Rect):void; /** * - * @param {yfiles.graph.INode} node - * @param {yfiles.graph.INode} parent + * @param node + * @param parent */ setParent(node:yfiles.graph.INode,parent:yfiles.graph.INode):void; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter + * @param port + * @param locationParameter */ setPortLocationParameter(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):void; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style + * @param port + * @param style */ setStyle(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):void; /** * - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style + * @param edge + * @param style */ setStyle(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):void; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style + * @param label + * @param style */ setStyle(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):void; /** * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style + * @param node + * @param style */ setStyle(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):void; /** @@ -51731,282 +50842,282 @@ declare namespace system{ nodeDefaults:yfiles.graph.INodeDefaults; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addGraphTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeGraphTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addNodeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeNodeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ addNodeRemovedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ removeNodeRemovedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addNodeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeNodeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.INode, yfiles.geometry.Rect): void} listener + * @param listener */ addNodeLayoutChangedListener(listener:(source:Object,node:yfiles.graph.INode,oldLayout:yfiles.geometry.Rect)=>void):void; /** * - * @param {function(Object, yfiles.graph.INode, yfiles.geometry.Rect): void} listener + * @param listener */ removeNodeLayoutChangedListener(listener:(source:Object,node:yfiles.graph.INode,oldLayout:yfiles.geometry.Rect)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addNodeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeNodeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addEdgeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeEdgeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ addEdgeRemovedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ removeEdgeRemovedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addEdgeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeEdgeStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ addEdgePortsChangedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener + * @param listener */ removeEdgePortsChangedListener(listener:(sender:Object,evt:yfiles.graph.EdgeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addEdgeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeEdgeTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addBendAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeBendAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener + * @param listener */ addBendRemovedListener(listener:(sender:Object,evt:yfiles.graph.BendEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener + * @param listener */ removeBendRemovedListener(listener:(sender:Object,evt:yfiles.graph.BendEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.IBend, yfiles.geometry.Point): void} listener + * @param listener */ addBendLocationChangedListener(listener:(source:Object,bend:yfiles.graph.IBend,oldLocation:yfiles.geometry.Point)=>void):void; /** * - * @param {function(Object, yfiles.graph.IBend, yfiles.geometry.Point): void} listener + * @param listener */ removeBendLocationChangedListener(listener:(source:Object,bend:yfiles.graph.IBend,oldLocation:yfiles.geometry.Point)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addBendTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeBendTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removeLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener + * @param listener */ addLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener + * @param listener */ removeLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelPreferredSizeChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelPreferredSizeChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelTextChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelTextChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelLayoutParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelLayoutParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addLabelTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removeLabelTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ addPortAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener + * @param listener */ removePortAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.PortEventArgs): void} listener + * @param listener */ addPortRemovedListener(listener:(sender:Object,evt:yfiles.graph.PortEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.PortEventArgs): void} listener + * @param listener */ removePortRemovedListener(listener:(sender:Object,evt:yfiles.graph.PortEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addPortStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removePortStyleChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addPortLocationParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removePortLocationParameterChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ addPortTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener + * @param listener */ removePortTagChangedListener(listener:(sender:Object,evt:yfiles.graph.ItemChangedEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.lang.EventArgs): void} listener + * @param listener */ addDisplaysInvalidatedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** * - * @param {function(Object, yfiles.lang.EventArgs): void} listener + * @param listener */ removeDisplaysInvalidatedListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; /** @@ -52021,22 +51132,22 @@ declare namespace system{ groupNodeDefaults:yfiles.graph.INodeDefaults; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ addParentChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ removeParentChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ addIsGroupNodeChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener + * @param listener */ removeIsGroupNodeChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** @@ -52087,7 +51198,6 @@ declare namespace system{ location:yfiles.geometry.IPoint; /** * Gets the index of the bend at its {@link yfiles.graph.IBend#owner}. - * @returns The zero based index of the bend in the {@link yfiles.graph.IEdge#bends} list; -1 if the bend is not part of an edge. * @type {number} */ index?:number; @@ -52120,15 +51230,15 @@ declare namespace system{ export interface IEdge extends Object,yfiles.graph.IPortOwner,yfiles.graph.ILabelOwner,yfiles.graph.IModelItem{ /** * Gets the opposite port of an {@link yfiles.graph.IEdge}. - * @param {yfiles.graph.IPort} port The port that the {@link yfiles.graph.IEdge} is connected to. - * @returns {yfiles.graph.IPort} The opposite port. + * @param port The port that the {@link } is connected to. + * @returns The opposite port. * @throws {Stubs.Exceptions.ArgumentError} If port is neither the source or target of the edge. */ opposite?(port:yfiles.graph.IPort):yfiles.graph.IPort; /** * Gets the opposite port owner of an {@link yfiles.graph.IEdge}. - * @param {yfiles.graph.IPortOwner} owner The owner of the port that the {@link yfiles.graph.IEdge} is connected to. - * @returns {yfiles.graph.IPortOwner} The owner of the opposite port. + * @param owner The owner of the port that the {@link } is connected to. + * @returns The owner of the opposite port. * @throws {Stubs.Exceptions.ArgumentError} If owner is neither the source or target of the edge. */ opposite?(owner:yfiles.graph.IPortOwner):yfiles.graph.IPortOwner; @@ -52176,19 +51286,16 @@ declare namespace system{ style:yfiles.styles.IEdgeStyle; /** * Gets the source node for the given edge or null. - * @returns The source node or null. * @type {yfiles.graph.INode} */ sourceNode?:yfiles.graph.INode; /** * Gets the target node for the given edge or null. - * @returns The target node or null. * @type {yfiles.graph.INode} */ targetNode?:yfiles.graph.INode; /** - * Returns whether an {@link yfiles.graph.IEdge edge} is a self loop. - * @returns true, if the edge is a self loop + * Determines whether an {@link yfiles.graph.IEdge edge} is a self-loop, that is, it starts and ends at the same port owner. * @type {boolean} */ isSelfloop?:boolean; @@ -52213,7 +51320,7 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IEdgeDefaults#style} property, if {@link yfiles.graph.IEdgeDefaults#shareStyleInstance} is enabled, but they might use more complicated * logic, too. *

    - * @returns {yfiles.styles.IEdgeStyle} The style to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IEdgeDefaults#style} property, if {@link yfiles.graph.IEdgeDefaults#shareStyleInstance} is enabled. + * @returns The style to use, which for most implementations is either a {@link #clone clone} of or the {@link #style} property, if {@link #shareStyleInstance} is enabled. * @abstract */ getStyleInstance():yfiles.styles.IEdgeStyle; @@ -52259,19 +51366,19 @@ declare namespace system{ isInstance(o:Object):boolean; }; /** - * Interface that is used for manipulating a managed view of an {@link yfiles.graph.IGraph} that supports folding operations like {@link yfiles.graph.IFoldingView#expand expanding} + * Interface that is used for manipulating a {@link yfiles.graph.FoldingManager#createFoldingView managed view} of an {@link yfiles.graph.IGraph} that supports folding operations like {@link yfiles.graph.IFoldingView#expand expanding} * and {@link yfiles.graph.IFoldingView#collapse collapsing} of nodes. *

    * The {@link yfiles.graph.FoldingManager} creates views of a {@link yfiles.graph.FoldingManager#masterGraph} which is created using copies of the original "master" entities. The * views are being synchronized via the {@link yfiles.graph.FoldingManager#masterGraph}, but may contain additional {@link yfiles.graph.FoldingManager#getFolderNodeState view state}. Typically nodes and edges are being copied * from the {@link yfiles.graph.FoldingManager#masterGraph} and they share many of their properties by reference (e.g. {@link yfiles.graph.INode#style}). However if group nodes are being represented by * {@link yfiles.graph.IFoldingView#collapse collapsed} group nodes in this view, they maintain a separate set of {@link yfiles.graph.ILabel labels}, {@link yfiles.graph.IPort ports}, {@link yfiles.graph.IBend bends}, and {@link yfiles.graph.INode#layout geometry}. This view-local - * state is shared between all views that have been created by the same Manager and can be obtained and modified via the + * state is shared between all views that have been {@link yfiles.graph.FoldingManager#createFoldingView created} by the same Manager and can be obtained and modified via the * {@link yfiles.graph.FoldingManager}'s GetFoldingEdgeState methods for {@link yfiles.graph.FoldingManager#getFoldingEdgeState folding edges} and {@link yfiles.graph.FoldingManager#getFolderNodeState folder nodes} in the absence of a * corresponding {@link yfiles.graph.IFoldingView} view instance. Developers typically don't need to implement this interface - * themselves, rather an implementation is provided by the framework and can be obtained from the {@link yfiles.graph.FoldingManager} - * implementation. Use CreateFoldingView to obtain an {@link yfiles.graph.IGraph} implementation that contains an implementation of - * this class in its {@link yfiles.graph.ILookup#lookup} method: + * themselves, rather an implementation is provided by the framework and can be obtained from the + * {@link yfiles.graph.FoldingManager}. Use {@link yfiles.graph.FoldingManager#createFoldingView} to obtain an {@link yfiles.graph.IGraph} + * implementation that contains an implementation of this class in its {@link yfiles.graph.ILookup#lookup} method: *

    *

    * This interface extends the {@link yfiles.lang.IPropertyObservable} interface. This can be used to easily monitor the {@link yfiles.graph.IFoldingView#invalid validity} of @@ -52303,7 +51410,7 @@ declare namespace system{ * In addition to that this method can also be used for {@link yfiles.graph.FoldingManager#masterGraph master} nodes which are currently not represented in this view. In * this case these nodes will be displayed as collapsed the next time they will be included in this view. *

    - * @param {yfiles.graph.INode} groupNode A group node that is part of the {@link yfiles.graph.IFoldingView#graph} or the {@link yfiles.graph.FoldingManager#masterGraph master graph}. + * @param groupNode A group node that is part of the {@link #graph} or the {@link #masterGraph master graph}. * @see yfiles.graph.IFoldingView#isExpanded * @abstract */ @@ -52315,11 +51422,11 @@ declare namespace system{ * part of the {@link yfiles.graph.IFoldingView#graph Folded Graph View} or null to create a folder at the root of the current hierarchy. It will be converted into * a group node if necessary. The returned {@link yfiles.graph.INode} is also part of the {@link yfiles.graph.IFoldingView#graph Folded Graph View}. *

    - * @param {yfiles.graph.INode} [parent=null] The parent node in the {@link yfiles.graph.IFoldingView#graph}, or null - * @param {yfiles.geometry.Rect} [layout=null] The layout for the collapsed node. - * @param {yfiles.styles.INodeStyle} [style=null] The style for the collapsed node - * @param {Object} [tag=null] The tag of the node. - * @returns {yfiles.graph.INode} A collapsed (folder) node that lives in {@link yfiles.graph.IFoldingView#graph} + * @param [parent=null] The parent node in the {@link #graph}, or null + * @param [layout=null] The layout for the collapsed node. + * @param [style=null] The style for the collapsed node + * @param [tag=null] The tag of the node. + * @returns A collapsed (folder) node that lives in {@link #graph} * @abstract */ createFolderNode(parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; @@ -52331,11 +51438,11 @@ declare namespace system{ * a group node if necessary. The returned {@link yfiles.graph.INode} is also part of the {@link yfiles.graph.IFoldingView#graph Folded Graph View}. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.parent=null] The parent node in the {@link yfiles.graph.IFoldingView#graph}, or null - * @param {yfiles.geometry.Rect} [options.layout=null] The layout for the collapsed node. - * @param {yfiles.styles.INodeStyle} [options.style=null] The style for the collapsed node - * @param {Object} [options.tag=null] The tag of the node. - * @returns {yfiles.graph.INode} A collapsed (folder) node that lives in {@link yfiles.graph.IFoldingView#graph} + * @param [options.parent=null] The parent node in the {@link #graph}, or null + * @param [options.layout=null] The layout for the collapsed node. + * @param [options.style=null] The style for the collapsed node + * @param [options.tag=null] The tag of the node. + * @returns A collapsed (folder) node that lives in {@link #graph} * @abstract */ createFolderNode(options:{parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object}):yfiles.graph.INode; @@ -52368,7 +51475,7 @@ declare namespace system{ * In addition to that this method can also be used for {@link yfiles.graph.FoldingManager#masterGraph master} nodes which are currently not represented in this view. In * this case these nodes will be displayed as expanded the next time they will be included in this view. *

    - * @param {yfiles.graph.INode} groupNode A group node that is part of the {@link yfiles.graph.IFoldingView#graph} or the {@link yfiles.graph.FoldingManager#masterGraph master graph}. + * @param groupNode A group node that is part of the {@link #graph} or the {@link #masterGraph master graph}. * @see yfiles.graph.IFoldingView#isExpanded * @see yfiles.graph.IFoldingView#collapse * @abstract @@ -52382,8 +51489,8 @@ declare namespace system{ * that the provided folding edge represents. If the folding edge corresponds to a single master edge, the result will * enumerate that edge, only. *

    - * @param {yfiles.graph.IEdge} foldingEdge The folding edge for which the master edges should be returned. - * @returns {yfiles.collections.IEnumerable.} An enumerable that can enumerate all of the edges in the {@link yfiles.graph.FoldingManager#masterGraph} that are being represented by the folding edge in this {@link yfiles.graph.IFoldingView#graph view}. + * @param foldingEdge The folding edge for which the master edges should be returned. + * @returns An enumerable that can enumerate all of the edges in the {@link #masterGraph} that are being represented by the folding edge in this {@link #graph view}. * @see yfiles.graph.IFoldingEdgeFactory#addToExistingFoldingEdge * @see yfiles.graph.IFoldingView#getViewItem * @abstract @@ -52404,8 +51511,8 @@ declare namespace system{ *

    * Type parameter T: The type of the argument, which is typically {@link yfiles.graph.INode}, {@link yfiles.graph.IEdge}, {@link yfiles.graph.ILabel}, * {@link yfiles.graph.IBend}, or {@link yfiles.graph.IPort}. - * @param {T} item The item that is part of this {@link yfiles.graph.IFoldingView#graph} for which the original "master" item in the {@link yfiles.graph.FoldingManager#masterGraph} will be returned. - * @returns {T} An item in the {@link yfiles.graph.FoldingManager#masterGraph} that corresponds to the item or null, if there is no such item. + * @param item The item that is part of this {@link #graph} for which the original "master" item in the {@link #masterGraph} will be returned. + * @returns An item in the {@link #masterGraph} that corresponds to the item or null, if there is no such item. * @see yfiles.graph.IFoldingView#getViewItem * @template T * @abstract @@ -52427,8 +51534,8 @@ declare namespace system{ *

    * Type parameter T: The type of the argument, which is typically {@link yfiles.graph.INode}, {@link yfiles.graph.IEdge}, {@link yfiles.graph.ILabel}, * {@link yfiles.graph.IBend}, or {@link yfiles.graph.IPort}. - * @param {T} item An item that is part of the {@link yfiles.graph.FoldingManager#masterGraph} that is associated with the Manager of this instance. - * @returns {T} An item in the {@link yfiles.graph.IFoldingView#graph local graph view} that corresponds to the item or + * @param item An item that is part of the {@link #masterGraph} that is associated with the Manager of this instance. + * @returns An item in the {@link #graph local graph view} that corresponds to the item or * null, if the item is not currently being represented in this view. * @see yfiles.graph.IFoldingView#getMasterItem * @see yfiles.graph.IFoldingView#getMasterEdges @@ -52447,8 +51554,8 @@ declare namespace system{ * currently not represented in this view, this method will return the * {@link yfiles.graph.IFoldingView#expand}ed state it will have the next time it will be included in this view. *

    - * @param {yfiles.graph.INode} groupNode The group node for which the {@link yfiles.graph.IFoldingView#expand expanded} state will be returned. - * @returns {boolean} true, if the group node can be {@link yfiles.graph.IFoldingView#collapse collapsed}. + * @param groupNode The group node for which the {@link #expand expanded} state will be returned. + * @returns true, if the group node can be {@link #collapse collapsed}. * @abstract */ isExpanded(groupNode:yfiles.graph.INode):boolean; @@ -52461,15 +51568,15 @@ declare namespace system{ * folding edges always have at least one * {@link yfiles.graph.IFoldingView#getMasterEdges master edge}, while all other folding items don't have a corresponding master item in the master graph. *

    - * @param {yfiles.graph.IModelItem} item One of the items that are {@link yfiles.graph.IGraph#contains contained} in the {@link yfiles.graph.IFoldingView#graph}. - * @returns {boolean} Whether the item is in folding state and is not an exact copy of an item in the {@link yfiles.graph.FoldingManager#masterGraph}. + * @param item One of the items that are {@link #contains contained} in the {@link #graph}. + * @returns Whether the item is in folding state and is not an exact copy of an item in the {@link #masterGraph}. * @abstract */ isInFoldingState(item:yfiles.graph.IModelItem):boolean; /** * Adds the given listener for the GroupCollapsed event that occurs whenever a group has been * {@link yfiles.graph.IFoldingView#collapse}d. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IFoldingView#removeGroupCollapsedListener * @abstract */ @@ -52477,7 +51584,7 @@ declare namespace system{ /** * Removes the given listener for the GroupCollapsed event that occurs whenever a group has been * {@link yfiles.graph.IFoldingView#collapse}d. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IFoldingView#addGroupCollapsedListener * @abstract */ @@ -52485,7 +51592,7 @@ declare namespace system{ /** * Adds the given listener for the GroupExpanded event that occurs whenever a group has been * {@link yfiles.graph.IFoldingView#expand}ed. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IFoldingView#removeGroupExpandedListener * @abstract */ @@ -52493,7 +51600,7 @@ declare namespace system{ /** * Removes the given listener for the GroupExpanded event that occurs whenever a group has been * {@link yfiles.graph.IFoldingView#expand}ed. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IFoldingView#addGroupExpandedListener * @abstract */ @@ -52502,9 +51609,9 @@ declare namespace system{ * Provides a reference to the {@link yfiles.graph.IGraph} implementation that provides the actual view data. *

    * The instance has an implementation of this interface in its {@link yfiles.graph.ILookup} that has been obtained from the - * {@link yfiles.graph.FoldingManager}'s CreateFoldingView set of methods. The instance holds the elements in the view only, which - * in general is a subset of the {@link yfiles.graph.FoldingManager#masterGraph}. Also note that the elements are not the same references as their - * {@link yfiles.graph.IFoldingView#getMasterItem masters}, they are copies that may share the same attributes. + * {@link yfiles.graph.FoldingManager}'s {@link yfiles.graph.FoldingManager#createFoldingView} set of methods. The instance holds the + * elements in the view only, which in general is a subset of the {@link yfiles.graph.FoldingManager#masterGraph}. Also note that the elements are not the same references + * as their {@link yfiles.graph.IFoldingView#getMasterItem masters}, they are copies that may share the same attributes. *

    * @abstract * @type {yfiles.graph.IGraph} @@ -52714,11 +51821,12 @@ declare namespace system{ *

    * The added instance will be returned. *

    - * @param {yfiles.graph.IEdge} edge The edge to which the bend will be added. - * @param {yfiles.geometry.Point} location the coordinates to use for the newly created bend - * @param {number} [index=-1] The index for the newly added bend; a negative value (which is the default) indicates that the bend should be appended + * @param edge The edge to which the bend will be added. + * @param location the coordinates to use for the newly created bend + * @param [index=-1] The index for the newly added bend; a negative value (which is the default) indicates that the bend should be appended * to the end of the list of bends. - * @returns {yfiles.graph.IBend} a newly created live bend + * @returns a newly created live bend + * @throws {Stubs.Exceptions.ArgumentError} edge is not in this graph. * @see yfiles.graph.IGraph#remove * @see yfiles.graph.IGraph#setBendLocation * @abstract @@ -52726,19 +51834,22 @@ declare namespace system{ addBend(edge:yfiles.graph.IEdge,location:yfiles.geometry.Point,index?:number):yfiles.graph.IBend; /** * Adds bends with the given locations to the end of the bend list of the given edge. - * @param {yfiles.graph.IEdge} edge The edge to add the bends to. - * @param {yfiles.collections.IEnumerable.} locations The locations of the bends. + * @param edge The edge to add the bends to. + * @param locations The locations of the bends. + * @throws {Stubs.Exceptions.ArgumentError} edge is not in this graph. */ addBends?(edge:yfiles.graph.IEdge,locations:yfiles.collections.IEnumerable):void; /** - * Add a label to the given item using the text as the initial label text and label model parameter, style and tag. - * @param {yfiles.graph.ILabelOwner} owner the item to add the label to. - * @param {string} text the initial text of the label - * @param {yfiles.graph.ILabelModelParameter} [layoutParameter=null] The label model parameter instance to use. - * @param {yfiles.styles.ILabelStyle} [style=null] The style to use for the label - * @param {yfiles.geometry.Size} [preferredSize=null] The initial values to use for the {@link yfiles.graph.ILabel#preferredSize}. - * @param {Object} [tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.ILabel} the newly created label + * Add a label to the given node or edge using the text as the initial label text and label model parameter, style and + * tag. + * @param owner The node or edge to add the label to. + * @param text The initial text of the label + * @param [layoutParameter=null] The label model parameter instance to use. + * @param [style=null] The style to use for the label + * @param [preferredSize=null] The initial values to use for the {@link #preferredSize}. + * @param [tag=null] The initial {@link #tag} to assign. + * @returns the newly created label + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. * @see yfiles.graph.IGraph#addLabelAddedListener * @see yfiles.graph.IGraph#setLabelText * @see yfiles.graph.IGraph#setLabelLayoutParameter @@ -52748,15 +51859,17 @@ declare namespace system{ */ addLabel(owner:yfiles.graph.ILabelOwner,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object):yfiles.graph.ILabel; /** - * Add a label to the given item using the text as the initial label text and label model parameter, style and tag. + * Add a label to the given node or edge using the text as the initial label text and label model parameter, style and + * tag. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.ILabelOwner} options.owner the item to add the label to. - * @param {string} options.text the initial text of the label - * @param {yfiles.graph.ILabelModelParameter} [options.layoutParameter=null] The label model parameter instance to use. - * @param {yfiles.styles.ILabelStyle} [options.style=null] The style to use for the label - * @param {yfiles.geometry.Size} [options.preferredSize=null] The initial values to use for the {@link yfiles.graph.ILabel#preferredSize}. - * @param {Object} [options.tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.ILabel} the newly created label + * @param options.owner The node or edge to add the label to. + * @param options.text The initial text of the label + * @param [options.layoutParameter=null] The label model parameter instance to use. + * @param [options.style=null] The style to use for the label + * @param [options.preferredSize=null] The initial values to use for the {@link #preferredSize}. + * @param [options.tag=null] The initial {@link #tag} to assign. + * @returns the newly created label + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. * @see yfiles.graph.IGraph#addLabelAddedListener * @see yfiles.graph.IGraph#setLabelText * @see yfiles.graph.IGraph#setLabelLayoutParameter @@ -52771,15 +51884,16 @@ declare namespace system{ * The locationParameter determines the location of the port. *

    *

    - * Depending on the implementation this method may throw an {@link Stubs.Exceptions.NotSupportedError} if the type of the owner - * instance does not support adding of ports. + * Depending on the implementation this method may throw an {@link yfiles.lang.Exception} if the type of the owner instance does + * not support adding of ports. *

    - * @param {yfiles.graph.IPortOwner} owner the owner to add the port instance to. - * @param {yfiles.graph.IPortLocationModelParameter} [locationParameter=null] the parameter to use for the port to determine its location. - * @param {yfiles.styles.IPortStyle} [style=null] the style to initially assign to the {@link yfiles.graph.IPort#style} property, e.g. {@link yfiles.styles.VoidPortStyle#INSTANCE}. - * @param {Object} [tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.IPort} the newly created port + * @param owner the owner to add the port instance to. + * @param [locationParameter=null] the parameter to use for the port to determine its location. + * @param [style=null] the style to initially assign to the {@link #style} property, e.g. {@link #INSTANCE}. + * @param [tag=null] the initial {@link #tag} to assign. + * @returns the newly created port * @throws {Stubs.Exceptions.NotSupportedError} If this instance cannot add a port to owner. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. * @see yfiles.graph.IGraph#addPortAddedListener * @see yfiles.styles.VoidPortStyle#INSTANCE * @abstract @@ -52791,16 +51905,17 @@ declare namespace system{ * The locationParameter determines the location of the port. *

    *

    - * Depending on the implementation this method may throw an {@link Stubs.Exceptions.NotSupportedError} if the type of the owner - * instance does not support adding of ports. + * Depending on the implementation this method may throw an {@link yfiles.lang.Exception} if the type of the owner instance does + * not support adding of ports. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPortOwner} options.owner the owner to add the port instance to. - * @param {yfiles.graph.IPortLocationModelParameter} [options.locationParameter=null] the parameter to use for the port to determine its location. - * @param {yfiles.styles.IPortStyle} [options.style=null] the style to initially assign to the {@link yfiles.graph.IPort#style} property, e.g. {@link yfiles.styles.VoidPortStyle#INSTANCE}. - * @param {Object} [options.tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.IPort} the newly created port + * @param options.owner the owner to add the port instance to. + * @param [options.locationParameter=null] the parameter to use for the port to determine its location. + * @param [options.style=null] the style to initially assign to the {@link #style} property, e.g. {@link #INSTANCE}. + * @param [options.tag=null] the initial {@link #tag} to assign. + * @returns the newly created port * @throws {Stubs.Exceptions.NotSupportedError} If this instance cannot add a port to owner. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. * @see yfiles.graph.IGraph#addPortAddedListener * @see yfiles.styles.VoidPortStyle#INSTANCE * @abstract @@ -52808,25 +51923,27 @@ declare namespace system{ addPort(options:{owner:yfiles.graph.IPortOwner,locationParameter?:yfiles.graph.IPortLocationModelParameter,style?:yfiles.styles.IPortStyle,tag?:Object}):yfiles.graph.IPort; /** * Add a port to the given port owner using the absolute coordinates as the new initial position of the port anchor. - * @param {yfiles.graph.IPortOwner} owner the owner to add the port instance to. - * @param {yfiles.geometry.Point} location the location to use for the port to determine its location. This is passed to the {@link yfiles.graph.IGraph#createDefaultPortLocationParameter} - * method to determine the initial {@link yfiles.graph.IPortLocationModelParameter} to use. - * @param {yfiles.styles.IPortStyle} [style=null] the style to initially assign to the {@link yfiles.graph.IPort#style} property, e.g. {@link yfiles.styles.VoidPortStyle#INSTANCE}. - * @param {Object} [tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.IPort} the newly created port + * @param owner the owner to add the port instance to. + * @param location the location to use for the port to determine its location. This is passed to the {@link #createDefaultPortLocationParameter} + * method to determine the initial {@link } to use. + * @param [style=null] the style to initially assign to the {@link #style} property, e.g. {@link #INSTANCE}. + * @param [tag=null] the initial {@link #tag} to assign. + * @returns the newly created port * @throws {Stubs.Exceptions.NotSupportedError} If this instance cannot add a port to owner. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. */ addPortAt?(owner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point,style?:yfiles.styles.IPortStyle,tag?:Object):yfiles.graph.IPort; /** * Add a port to the given port owner using the absolute coordinates as the new initial position of the port anchor. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPortOwner} options.owner the owner to add the port instance to. - * @param {yfiles.geometry.Point} options.location the location to use for the port to determine its location. This is passed to the {@link yfiles.graph.IGraph#createDefaultPortLocationParameter} - * method to determine the initial {@link yfiles.graph.IPortLocationModelParameter} to use. - * @param {yfiles.styles.IPortStyle} [options.style=null] the style to initially assign to the {@link yfiles.graph.IPort#style} property, e.g. {@link yfiles.styles.VoidPortStyle#INSTANCE}. - * @param {Object} [options.tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.IPort} the newly created port + * @param options.owner the owner to add the port instance to. + * @param options.location the location to use for the port to determine its location. This is passed to the {@link #createDefaultPortLocationParameter} + * method to determine the initial {@link } to use. + * @param [options.style=null] the style to initially assign to the {@link #style} property, e.g. {@link #INSTANCE}. + * @param [options.tag=null] the initial {@link #tag} to assign. + * @returns the newly created port * @throws {Stubs.Exceptions.NotSupportedError} If this instance cannot add a port to owner. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. */ addPortAt?(options:{owner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point,style?:yfiles.styles.IPortStyle,tag?:Object}):yfiles.graph.IPort; /** @@ -52835,18 +51952,19 @@ declare namespace system{ * The port style for the newly-created port is taken from the graph's defaults. The location parameter is determined by * delegating to {@link yfiles.graph.IGraph#addPortAt}. *

    - * @param {yfiles.graph.INode} node The owner of the port. - * @param {yfiles.geometry.Point} relativeLocation The offset of the port relative to the center of the {@link yfiles.graph.INode#layout}. - * @returns {yfiles.graph.IPort} The newly added port instance. + * @param node The owner of the port. + * @param relativeLocation The offset of the port relative to the center of the {@link #layout}. + * @returns The newly added port instance. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. */ addRelativePort?(node:yfiles.graph.INode,relativeLocation:yfiles.geometry.Point):yfiles.graph.IPort; /** * Convenience method that uses the {@link yfiles.graph.UndoEngine} from the {@link yfiles.graph.IGraph}'s {@link yfiles.graph.ILookup} to * {@link yfiles.graph.UndoEngine#addUnit add a unit}. - * @param {string} undoName The name of the undo operation. - * @param {string} redoName The name of the redo operation. - * @param {function(): void} undo The undo action. - * @param {function(): void} redo The redo action. + * @param undoName The name of the undo operation. + * @param redoName The name of the redo operation. + * @param undo The undo action. + * @param redo The redo action. */ addUndoUnit?(undoName:string,redoName:string,undo:()=>void,redo:()=>void):void; /** @@ -52856,7 +51974,8 @@ declare namespace system{ * any {@link yfiles.graph.IGraph#getChildren children}, its bounds will be left unchanged. This will also respect any {@link yfiles.input.INodeSizeConstraintProvider}s * for {@link yfiles.graph.INode}s, that are available in the lookup of the groupNode. *

    - * @param {yfiles.graph.INode} groupNode The group node to adjust the size of. + * @param groupNode The group node to adjust the size of. + * @throws {Stubs.Exceptions.ArgumentError} groupNode is not in this graph. * @see yfiles.graph.IGroupBoundsCalculator * @see yfiles.input.INodeSizeConstraintProvider * @see yfiles.graph.GroupingSupport#calculateMinimumEnclosedArea @@ -52870,14 +51989,14 @@ declare namespace system{ * This implementation uses the {@link yfiles.graph.ILabel#style style's} renderer for the label to determine the preferred rendering size. This is useful * after the label's content or style have been changed. *

    - * @param {yfiles.graph.ILabel} label The label to adjust the size for. + * @param label The label to adjust the size for. * @see yfiles.graph.ILabelDefaults#autoAdjustPreferredSize */ adjustLabelPreferredSize?(label:yfiles.graph.ILabel):void; /** * Convenience method that runs a layout on a graph using {@link yfiles.layout.LayoutGraphAdapter#applyLayout}. - * @param {yfiles.layout.ILayoutAlgorithm} layout The layout. - * @param {yfiles.layout.LayoutData} [layoutData=null] The layout data. + * @param layout The layout. + * @param [layoutData=null] The layout data. * @see yfiles.view.GraphComponent#morphLayout */ applyLayout?(layout:yfiles.layout.ILayoutAlgorithm,layoutData?:yfiles.layout.LayoutData):void; @@ -52922,14 +52041,14 @@ declare namespace system{ * changes or on certain events, you should use custom {@link yfiles.graph.IUndoUnit} *

    * Type parameter T: The type of the items that will be modified subsequently. - * @param {string} undoName The {@link yfiles.graph.IUndoUnit#undoName} of the {@link yfiles.graph.IUndoUnit} that will be placed into the undo queue after {@link yfiles.graph.ICompoundEdit#commit} has + * @param undoName The {@link #undoName} of the {@link } that will be placed into the undo queue after {@link #commit} has * been called. - * @param {string} redoName The {@link yfiles.graph.IUndoUnit#redoName} of the {@link yfiles.graph.IUndoUnit} that will be placed into the undo queue after {@link yfiles.graph.ICompoundEdit#commit} has + * @param redoName The {@link #redoName} of the {@link } that will be placed into the undo queue after {@link #commit} has * been called. - * @param {yfiles.collections.IEnumerable.} items The items that will be changed after this call and before the call to {@link yfiles.graph.ICompoundEdit#commit}. - * @param {function(T): yfiles.graph.IMementoSupport} [provider=null] The provider for the {@link yfiles.graph.IMementoSupport} of the items. if the provider returns null for a given item, changes + * @param items The items that will be changed after this call and before the call to {@link #commit}. + * @param [provider=null] The provider for the {@link } of the items. if the provider returns null for a given item, changes * to this item are not being recorded. - * @returns {yfiles.graph.ICompoundEdit} An implementation of the {@link yfiles.graph.ICompoundEdit} interface whose {@link yfiles.graph.ICompoundEdit#commit} or {@link yfiles.graph.ICompoundEdit#cancel} + * @returns An implementation of the {@link } interface whose {@link #commit} or {@link #cancel} * methods need to be called after the items have been modified. * @see yfiles.graph.IMementoSupport * @template T @@ -52945,36 +52064,35 @@ declare namespace system{ * Client code needs to make sure that either the {@link yfiles.graph.ICompoundEdit#cancel} or {@link yfiles.graph.ICompoundEdit#commit} * method is called on the returned instance. *

    - * @param {string} undoName The undo name for the compound edit. - * @param {string} redoName The redo name for the compound edit. - * @returns {yfiles.graph.ICompoundEdit} The handle to stop the recording by calling {@link yfiles.graph.ICompoundEdit#cancel} or {@link yfiles.graph.ICompoundEdit#commit} on + * @param undoName The undo name for the compound edit. + * @param redoName The redo name for the compound edit. + * @returns The handle to stop the recording by calling {@link #cancel} or {@link #commit} on * it. */ beginEdit?(undoName:string,redoName:string):yfiles.graph.ICompoundEdit; /** * Calculates the preferred size of a label with the given properties. - * @param {yfiles.graph.ILabelOwner} owner The item that will own the label. - * @param {string} text The text. - * @param {yfiles.graph.ILabelModelParameter} [layoutParameter=null] The label model parameter. - * @param {yfiles.styles.ILabelStyle} [style=null] The label style. - * @param {Object} [tag=null] The tag for the label. - * @returns {yfiles.geometry.Size} The size as calculated by the {@link yfiles.styles.ILabelStyleRenderer}. + * @param owner The item that will own the label. + * @param text The text. + * @param [layoutParameter=null] The label model parameter. + * @param [style=null] The label style. + * @param [tag=null] The tag for the label. + * @returns The size as calculated by the {@link }. */ calculateLabelPreferredSize?(owner:yfiles.graph.ILabelOwner,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,tag?:Object):yfiles.geometry.Size; /** * Calculates the preferred size of a label with the given properties. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.ILabelOwner} options.owner The item that will own the label. - * @param {string} options.text The text. - * @param {yfiles.graph.ILabelModelParameter} [options.layoutParameter=null] The label model parameter. - * @param {yfiles.styles.ILabelStyle} [options.style=null] The label style. - * @param {Object} [options.tag=null] The tag for the label. - * @returns {yfiles.geometry.Size} The size as calculated by the {@link yfiles.styles.ILabelStyleRenderer}. + * @param options.owner The item that will own the label. + * @param options.text The text. + * @param [options.layoutParameter=null] The label model parameter. + * @param [options.style=null] The label style. + * @param [options.tag=null] The tag for the label. + * @returns The size as calculated by the {@link }. */ calculateLabelPreferredSize?(options:{owner:yfiles.graph.ILabelOwner,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,tag?:Object}):yfiles.geometry.Size; /** - * Clears the graph instance, removing all entities in proper order. - * @see yfiles.graph.IGraph#remove + * Clears the graph, removing all items in proper order. * @see yfiles.graph.IGraph#remove */ clear?():void; @@ -52983,15 +52101,16 @@ declare namespace system{ *

    * The edge must be part of this graph at the time of the invocation. This will trigger the corresponding events. *

    - * @param {yfiles.graph.IEdge} edge the edge whose bends will be removed + * @param edge the edge whose bends will be removed + * @throws {Stubs.Exceptions.ArgumentError} edge is not in this graph. * @see yfiles.graph.IGraph#remove * @see yfiles.graph.IGraph#addBendRemovedListener */ clearBends?(edge:yfiles.graph.IEdge):void; /** * Determines whether this graph contains the specified item. - * @param {yfiles.graph.IModelItem} item The item. - * @returns {boolean} true if this graph contains the specified item; otherwise, false. + * @param item The item. + * @returns true if this graph contains the specified item; otherwise, false. * @abstract */ contains(item:yfiles.graph.IModelItem):boolean; @@ -53000,8 +52119,8 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.graph.IGraph#getLabelDefaults label defaults} for the graph to {@link yfiles.graph.ILabelDefaults#getLayoutParameterInstance obtain the parameter instance}. *

    - * @param {yfiles.graph.ILabelOwner} owner The item that is the {@link yfiles.graph.ILabel#owner} of the label in question. - * @returns {yfiles.graph.ILabelModelParameter} The default label layout parameter to use for newly created labels at the item. + * @param owner The item that is the {@link #owner} of the label in question. + * @returns The default label layout parameter to use for newly created labels at the item. * @see yfiles.graph.ILabelDefaults#getLayoutParameterInstance * @see yfiles.graph.IGraph#getLabelDefaults */ @@ -53011,10 +52130,10 @@ declare namespace system{ *

    * If location is null, this method uses the {@link yfiles.graph.IGraph#getPortDefaults port defaults} for the owner to obtain the {@link yfiles.graph.IPortDefaults#getLocationParameterInstance location parameter}. *

    - * @param {yfiles.graph.IPortOwner} owner The owner of the port. - * @param {yfiles.geometry.Point} [location=null] The location in the world coordinate system where the port should be added. - * @returns {yfiles.graph.IPortLocationModelParameter} Either a location model parameter that matches the location, or the default parameter to use for the {@link yfiles.graph.IPortOwner} - * as returned by {@link yfiles.graph.IPortDefaults#getLocationParameterInstance}. + * @param owner The owner of the port. + * @param [location=null] The location in the world coordinate system where the port should be added. + * @returns Either a location model parameter that matches the location, or the default parameter to use for the {@link } + * as returned by {@link #getLocationParameterInstance}. * @see yfiles.graph.IPortLocationModel#createParameter * @see yfiles.graph.IGraph#getPortDefaults */ @@ -53027,13 +52146,13 @@ declare namespace system{ * instances to which the edge will be connected. The edge will be a part of this graph after the method returns. This will * trigger the corresponding events. *

    - * @param {yfiles.graph.INode} source The source node the created edge will connect to. It is up to the implementation to decide which port to use at the + * @param source The source node the created edge will connect to. It is up to the implementation to decide which port to use at the * given node. The implementation may create a new port of the edge. - * @param {yfiles.graph.INode} target The target node the created edge will connect to. It is up to the implementation to decide which port to use at the + * @param target The target node the created edge will connect to. It is up to the implementation to decide which port to use at the * given node. The implementation may create a new port of the edge. - * @param {yfiles.styles.IEdgeStyle} [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new edge. - * @returns {yfiles.graph.IEdge} the newly created edge instance + * @param [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [tag=null] The initial value of the {@link #tag} that will be assigned to the new edge. + * @returns the newly created edge instance * @see yfiles.graph.IGraph#addEdgeCreatedListener * @see yfiles.styles.VoidEdgeStyle#INSTANCE * @abstract @@ -53048,17 +52167,17 @@ declare namespace system{ * trigger the corresponding events. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} options.source The source node the created edge will connect to. It is up to the implementation to decide which port to use at the + * @param options.source The source node the created edge will connect to. It is up to the implementation to decide which port to use at the * given node. The implementation may create a new port of the edge. - * @param {yfiles.graph.INode} options.target The target node the created edge will connect to. It is up to the implementation to decide which port to use at the + * @param options.target The target node the created edge will connect to. It is up to the implementation to decide which port to use at the * given node. The implementation may create a new port of the edge. - * @param {yfiles.styles.IEdgeStyle} [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [options.tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new edge. - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addLabel} + * @param [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [options.tag=null] The initial value of the {@link #tag} that will be assigned to the new edge. + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addPort} method. - * @param options.bends An array of bends to add to the newly created edge. Each item will be passed to the {@link yfiles.graph.IGraph#addBend} method. - * @returns {yfiles.graph.IEdge} the newly created edge instance + * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link #addPort} method. + * @param options.bends An array of bends to add to the newly created edge. Each item will be passed to the {@link #addBend} method. + * @returns the newly created edge instance * @see yfiles.graph.IGraph#addEdgeCreatedListener * @see yfiles.styles.VoidEdgeStyle#INSTANCE * @abstract @@ -53070,11 +52189,11 @@ declare namespace system{ * The ports must be part of this graph at the time of the invocation. The edge will be a part of this graph after the * method returns. This will trigger the corresponding events. *

    - * @param {yfiles.graph.IPort} sourcePort The source port the created edge will connect to. - * @param {yfiles.graph.IPort} targetPort The target port the created edge will connect to. - * @param {yfiles.styles.IEdgeStyle} [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new edge. - * @returns {yfiles.graph.IEdge} the newly created edge instance + * @param sourcePort The source port the created edge will connect to. + * @param targetPort The target port the created edge will connect to. + * @param [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [tag=null] The initial value of the {@link #tag} that will be assigned to the new edge. + * @returns the newly created edge instance * @see yfiles.graph.IGraph#addEdgeCreatedListener * @see yfiles.styles.VoidEdgeStyle#INSTANCE * @abstract @@ -53087,15 +52206,15 @@ declare namespace system{ * method returns. This will trigger the corresponding events. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IPort} options.sourcePort The source port the created edge will connect to. - * @param {yfiles.graph.IPort} options.targetPort The target port the created edge will connect to. - * @param {yfiles.styles.IEdgeStyle} [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [options.tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new edge. - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addLabel} + * @param options.sourcePort The source port the created edge will connect to. + * @param options.targetPort The target port the created edge will connect to. + * @param [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [options.tag=null] The initial value of the {@link #tag} that will be assigned to the new edge. + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addPort} method. - * @param options.bends An array of bends to add to the newly created edge. Each item will be passed to the {@link yfiles.graph.IGraph#addBend} method. - * @returns {yfiles.graph.IEdge} the newly created edge instance + * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link #addPort} method. + * @param options.bends An array of bends to add to the newly created edge. Each item will be passed to the {@link #addBend} method. + * @returns the newly created edge instance * @see yfiles.graph.IGraph#addEdgeCreatedListener * @see yfiles.styles.VoidEdgeStyle#INSTANCE * @abstract @@ -53110,11 +52229,11 @@ declare namespace system{ * To create group nodes interactively use the {@link yfiles.input.GraphEditorInputMode} as input mode and enable the * {@link yfiles.input.GraphEditorInputMode#allowGroupingOperations grouping operations}. *

    - * @param {yfiles.graph.INode} [parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. - * @param {yfiles.geometry.Rect} [layout=null] The initial layout to use for the new node. - * @param {yfiles.styles.INodeStyle} [style=null] The style to use for the new node. - * @param {Object} [tag=null] The {@link yfiles.graph.ITagOwner#tag} to assign to the {@link yfiles.graph.INode}. - * @returns {yfiles.graph.INode} The newly created group node. + * @param [parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. + * @param [layout=null] The initial layout to use for the new node. + * @param [style=null] The style to use for the new node. + * @param [tag=null] The {@link #tag} to assign to the {@link }. + * @returns The newly created group node. * @abstract */ createGroupNode(parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; @@ -53128,16 +52247,16 @@ declare namespace system{ * {@link yfiles.input.GraphEditorInputMode#allowGroupingOperations grouping operations}. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. - * @param {yfiles.geometry.Rect} [options.layout=null] The initial layout to use for the new node. - * @param {yfiles.styles.INodeStyle} [options.style=null] The style to use for the new node. - * @param {Object} [options.tag=null] The {@link yfiles.graph.ITagOwner#tag} to assign to the {@link yfiles.graph.INode}. - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addLabel} + * @param [options.parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. + * @param [options.layout=null] The initial layout to use for the new node. + * @param [options.style=null] The style to use for the new node. + * @param [options.tag=null] The {@link #tag} to assign to the {@link }. + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addPort} method. - * @param options.children An array of nodes to create as child nodes of this group node. Each item will be passed to the {@link yfiles.graph.IGraph#createNode} + * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link #addPort} method. + * @param options.children An array of nodes to create as child nodes of this group node. Each item will be passed to the {@link #createNode} * method. - * @returns {yfiles.graph.INode} The newly created group node. + * @returns The newly created group node. * @abstract */ createGroupNode(options:{parent?:yfiles.graph.INode,layout?:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object,labels?:Array,ports?:Array,children?:Array}):yfiles.graph.INode; @@ -53146,10 +52265,10 @@ declare namespace system{ *

    * The node will be a part of this graph after the method returns. This will trigger the corresponding events. *

    - * @param {yfiles.geometry.Rect} layout The layout to use initially. The values will be copied to the node's {@link yfiles.graph.INode#layout Layout} field - * @param {yfiles.styles.INodeStyle} [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new node. - * @returns {yfiles.graph.INode} A newly created node instance + * @param layout The layout to use initially. The values will be copied to the node's {@link #layout Layout} field + * @param [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [tag=null] The initial value of the {@link #tag} that will be assigned to the new node. + * @returns A newly created node instance * @see yfiles.graph.IGraph#addNodeCreatedListener * @see yfiles.styles.VoidNodeStyle#INSTANCE * @abstract @@ -53161,13 +52280,13 @@ declare namespace system{ * The node will be a part of this graph after the method returns. This will trigger the corresponding events. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.Rect} options.layout The layout to use initially. The values will be copied to the node's {@link yfiles.graph.INode#layout Layout} field - * @param {yfiles.styles.INodeStyle} [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [options.tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new node. - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addLabel} + * @param options.layout The layout to use initially. The values will be copied to the node's {@link #layout Layout} field + * @param [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [options.tag=null] The initial value of the {@link #tag} that will be assigned to the new node. + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addPort} method. - * @returns {yfiles.graph.INode} A newly created node instance + * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link #addPort} method. + * @returns A newly created node instance * @see yfiles.graph.IGraph#addNodeCreatedListener * @see yfiles.styles.VoidNodeStyle#INSTANCE * @abstract @@ -53175,11 +52294,12 @@ declare namespace system{ createNode(options:{layout:yfiles.geometry.Rect,style?:yfiles.styles.INodeStyle,tag?:Object,labels?:Array,ports?:Array}):yfiles.graph.INode; /** * Creates a new ordinary node as a direct descendant of parent using the given layout and style. - * @param {yfiles.graph.INode} [parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. - * @param {yfiles.geometry.Rect} [layout=null] The layout to use initially. The values will be copied to the node's {@link yfiles.graph.INode#layout Layout} field. - * @param {yfiles.styles.INodeStyle} [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [tag=null] The {@link yfiles.graph.ITagOwner#tag} to assign to the {@link yfiles.graph.INode}. - * @returns {yfiles.graph.INode} The newly created node. + * @param [parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. + * @param [layout=null] The layout to use initially. The values will be copied to the node's {@link #layout Layout} field. + * @param [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [tag=null] The {@link #tag} to assign to the {@link }. + * @returns The newly created node. + * @throws {Stubs.Exceptions.ArgumentError} parent is not in this graph. * @see yfiles.graph.IGraph#setParent * @see yfiles.graph.IGraph#createNode * @see yfiles.graph.IGraph#createGroupNode @@ -53189,14 +52309,15 @@ declare namespace system{ /** * Creates a new ordinary node as a direct descendant of parent using the given layout and style. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. - * @param {yfiles.geometry.Rect} [options.layout=null] The layout to use initially. The values will be copied to the node's {@link yfiles.graph.INode#layout Layout} field. - * @param {yfiles.styles.INodeStyle} [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [options.tag=null] The {@link yfiles.graph.ITagOwner#tag} to assign to the {@link yfiles.graph.INode}. - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addLabel} + * @param [options.parent=null] The node to use as the parent in the grouping hierarchy or null if the new node should become a top-level node. + * @param [options.layout=null] The layout to use initially. The values will be copied to the node's {@link #layout Layout} field. + * @param [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [options.tag=null] The {@link #tag} to assign to the {@link }. + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addPort} method. - * @returns {yfiles.graph.INode} The newly created node. + * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link #addPort} method. + * @returns The newly created node. + * @throws {Stubs.Exceptions.ArgumentError} parent is not in this graph. * @see yfiles.graph.IGraph#setParent * @see yfiles.graph.IGraph#createNode * @see yfiles.graph.IGraph#createGroupNode @@ -53208,10 +52329,10 @@ declare namespace system{ *

    * The node will be a part of this graph after the method returns. This will trigger the corresponding events. *

    - * @param {yfiles.geometry.Point} location the initial coordinates of the center of the node's {@link yfiles.graph.INode#layout Layout} property - * @param {yfiles.styles.INodeStyle} [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new node. - * @returns {yfiles.graph.INode} A newly created node instance + * @param location the initial coordinates of the center of the node's {@link #layout Layout} property + * @param [style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [tag=null] The initial value of the {@link #tag} that will be assigned to the new node. + * @returns A newly created node instance * @see yfiles.graph.IGraph#addNodeCreatedListener */ createNodeAt?(location:yfiles.geometry.Point,style?:yfiles.styles.INodeStyle,tag?:Object):yfiles.graph.INode; @@ -53221,13 +52342,13 @@ declare namespace system{ * The node will be a part of this graph after the method returns. This will trigger the corresponding events. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.Point} options.location the initial coordinates of the center of the node's {@link yfiles.graph.INode#layout Layout} property - * @param {yfiles.styles.INodeStyle} [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. - * @param {Object} [options.tag=null] The initial value of the {@link yfiles.graph.ITagOwner#tag} that will be assigned to the new node. - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addLabel} + * @param options.location the initial coordinates of the center of the node's {@link #layout Layout} property + * @param [options.style=null] The style instance that will be assigned to the newly created instance. This is done by reference. + * @param [options.tag=null] The initial value of the {@link #tag} that will be assigned to the new node. + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addPort} method. - * @returns {yfiles.graph.INode} A newly created node instance + * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link #addPort} method. + * @returns A newly created node instance * @see yfiles.graph.IGraph#addNodeCreatedListener */ createNodeAt?(options:{location:yfiles.geometry.Point,style?:yfiles.styles.INodeStyle,tag?:Object,labels?:Array,ports?:Array}):yfiles.graph.INode; @@ -53236,8 +52357,9 @@ declare namespace system{ *

    * Note that an edge that is both incoming and outgoing will be counted twice. *

    - * @param {yfiles.graph.IPort} port The port owner to count the degree of. - * @returns {number} The number of edges that are incident to the port. + * @param port The port owner to count the degree of. + * @returns The number of edges that are incident to the port. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. */ degree?(port:yfiles.graph.IPort):number; /** @@ -53245,8 +52367,9 @@ declare namespace system{ *

    * Note that an edge that is both incoming and outgoing will be counted twice. *

    - * @param {yfiles.graph.IPortOwner} owner The port owner to count the degree of. - * @returns {number} The number of edges that are incident to the port owner. + * @param owner The port owner to count the degree of. + * @returns The number of edges that are incident to the port owner. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. */ degree?(owner:yfiles.graph.IPortOwner):number; /** @@ -53258,10 +52381,10 @@ declare namespace system{ * your own list, if possible. This is not necessary for the first or last element or when iterating over the adjacent * edges via a foreach loop. *

    - * @param {yfiles.graph.AdjacencyTypes} [type=yfiles.graph.AdjacencyTypes.ALL] The type of adjacency to consider. - * @param {yfiles.graph.IPortOwner} owner the port owner to check - * @returns {yfiles.collections.IListEnumerable.} An enumeration of all adjacent edges of the given type. - * @throws {Stubs.Exceptions.ArgumentError} If owner is not in this graph + * @param [type=yfiles.graph.AdjacencyTypes.ALL] The type of adjacency to consider. + * @param owner the port owner to check + * @returns An enumeration of all adjacent edges of the given type. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. * @see yfiles.graph.IGraph#inEdgesAt * @see yfiles.graph.IGraph#outEdgesAt * @see yfiles.graph.AdjacencyTypes @@ -53276,10 +52399,10 @@ declare namespace system{ * your own list, if possible. This is not necessary for the first or last element or when iterating over the adjacent * edges via a foreach loop. *

    - * @param {yfiles.graph.IPort} port the port to check - * @param {yfiles.graph.AdjacencyTypes} [type=yfiles.graph.AdjacencyTypes.ALL] The type of adjacency to consider. - * @returns {yfiles.collections.IListEnumerable.} An enumeration of all adjacent edges of the given type. - * @throws {Stubs.Exceptions.ArgumentError} If port is not in this graph + * @param port the port to check + * @param [type=yfiles.graph.AdjacencyTypes.ALL] The type of adjacency to consider. + * @returns An enumeration of all adjacent edges of the given type. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. * @see yfiles.graph.IGraph#inEdgesAt * @see yfiles.graph.IGraph#outEdgesAt * @see yfiles.graph.AdjacencyTypes @@ -53288,56 +52411,59 @@ declare namespace system{ edgesAt(port:yfiles.graph.IPort,type?:yfiles.graph.AdjacencyTypes):yfiles.collections.IListEnumerable; /** * Returns an enumerable over the children of the provided node. - * @param {yfiles.graph.INode} node The node for which to return the children or null if the top-level nodes should be returned. - * @returns {yfiles.collections.IListEnumerable.} All nodes that have node as their {@link yfiles.graph.IGraph#getParent parent}. - * @throws {Stubs.Exceptions.ArgumentError} If node is not in this graph + * @param node The node for which to return the children or null if the top-level nodes should be returned. + * @returns All nodes that have node as their {@link #getParent parent}. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. * @abstract */ getChildren(node:yfiles.graph.INode):yfiles.collections.IListEnumerable; /** * Finds an edge that connects sourcePort and targetPort in the given graph. - * @param {yfiles.graph.IPort} sourcePort The {@link yfiles.graph.IEdge#sourcePort} of the edge to find. - * @param {yfiles.graph.IPort} targetPort The {@link yfiles.graph.IEdge#targetPort} of the edge to find. - * @returns {yfiles.graph.IEdge} An edge that satisfies the constraints or null, if none was found. + * @param sourcePort The {@link #sourcePort} of the edge to find. + * @param targetPort The {@link #targetPort} of the edge to find. + * @returns An edge that satisfies the constraints or null, if none was found. + * @throws {Stubs.Exceptions.ArgumentError} sourcePort or targetPort are not in this graph. */ getEdge?(sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort):yfiles.graph.IEdge; /** * Finds an edge that connects from and to in the given graph. - * @param {yfiles.graph.IPortOwner} from The {@link yfiles.graph.IEdge#sourcePort} owner of the edge to find. - * @param {yfiles.graph.IPortOwner} to The {@link yfiles.graph.IEdge#targetPort} owner of the edge to find. - * @returns {yfiles.graph.IEdge} An edge that satisfies the constraints or null, if none was found. + * @param from The {@link #sourcePort} owner of the edge to find. + * @param to The {@link #targetPort} owner of the edge to find. + * @returns An edge that satisfies the constraints or null, if none was found. + * @throws {Stubs.Exceptions.ArgumentError} from or to are not in this graph. */ getEdge?(from:yfiles.graph.IPortOwner,to:yfiles.graph.IPortOwner):yfiles.graph.IEdge; /** * Gets the {@link yfiles.graph.ILabelDefaults label defaults} for a given {@link yfiles.graph.ILabelOwner} in the context of the graph. - * @param {yfiles.graph.ILabelOwner} owner The item that the label defaults are returned for. If this is a group node, the {@link yfiles.graph.IGraph#groupNodeDefaults}'s {@link yfiles.graph.INodeDefaults#labels label defaults} will be returned, - * otherwise the {@link yfiles.graph.IGraph#nodeDefaults} or {@link yfiles.graph.IGraph#edgeDefaults} {@link yfiles.graph.INodeDefaults#labels labels} will be returned. - * @returns {yfiles.graph.ILabelDefaults} Appropriate {@link yfiles.graph.ILabelDefaults} for the provided owner. + * @param owner The item that the label defaults are returned for. If this is a group node, the {@link #groupNodeDefaults}'s {@link #labels label defaults} will be returned, + * otherwise the {@link #nodeDefaults} or {@link #edgeDefaults} {@link #labels labels} will be returned. + * @returns Appropriate {@link } for the provided owner. */ getLabelDefaults?(owner:yfiles.graph.ILabelOwner):yfiles.graph.ILabelDefaults; /** * Returns the parent node of the node or null if node is a top-level node. - * @param {yfiles.graph.INode} node The node to retrieve the parent node for. - * @returns {yfiles.graph.INode} The parent node in this hierarchy or null if node is a top-level node. - * @throws {Stubs.Exceptions.ArgumentError} If node is not in this graph or is null. + * @param node The node to retrieve the parent node for. + * @returns The parent node in this hierarchy or null if node is a top-level node. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. * @abstract */ getParent(node:yfiles.graph.INode):yfiles.graph.INode; /** * Gets the {@link yfiles.graph.IPortDefaults port defaults} for a given {@link yfiles.graph.IPortOwner} in the context of the graph. - * @param {yfiles.graph.IPortOwner} owner The item that the label defaults are returned for. If this is a group node, the {@link yfiles.graph.IGraph#groupNodeDefaults}'s {@link yfiles.graph.INodeDefaults#ports port defaults} will be returned, - * otherwise the {@link yfiles.graph.IGraph#nodeDefaults} or {@link yfiles.graph.IGraph#edgeDefaults} {@link yfiles.graph.INodeDefaults#ports ports} will be returned. - * @returns {yfiles.graph.IPortDefaults} Appropriate {@link yfiles.graph.IPortDefaults} for the provided owner. + * @param owner The item that the label defaults are returned for. If this is a group node, the {@link #groupNodeDefaults}'s {@link #ports port defaults} will be returned, + * otherwise the {@link #nodeDefaults} or {@link #edgeDefaults} {@link #ports ports} will be returned. + * @returns Appropriate {@link } for the provided owner. */ getPortDefaults?(owner:yfiles.graph.IPortOwner):yfiles.graph.IPortDefaults; /** * Groups the nodes in children into the provided group node. *

    * The parent needs to be a group node at the time of the invocation. This operation is basically the same as calling {@link yfiles.graph.IGraph#setParent} - * for each node in the children enumerable whose parent is not part of the set. + * for each node in children whose parent is not part of the set. *

    - * @param {yfiles.graph.INode} parent The node to use as the parent in the grouping hierarchy. - * @param {yfiles.collections.IEnumerable.} children The children to group into the group node. + * @param parent The node to use as the parent in the grouping hierarchy. + * @param children The children to group into the group node. + * @throws {Stubs.Exceptions.ArgumentError} parent or one of children is not in this graph. * @see yfiles.graph.IGraph#groupNodes * @see yfiles.graph.IGraph#setParent * @see yfiles.graph.IGraph#createGroupNode @@ -53348,8 +52474,9 @@ declare namespace system{ *

    * The group node will be created at the common ancestor level of all nodes in children. *

    - * @param {yfiles.collections.IEnumerable.} children The children to group into the new group node. - * @returns {yfiles.graph.INode} The newly created group node. + * @param children The children to group into the new group node. + * @returns The newly created group node. + * @throws {Stubs.Exceptions.ArgumentError} One of children is not in this graph. * @see yfiles.graph.GroupingSupport#getNearestCommonAncestor * @see yfiles.graph.IGraph#groupNodes */ @@ -53360,25 +52487,28 @@ declare namespace system{ * The group node will be created at the common ancestor level of all nodes in children. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.collections.IEnumerable.} options.children The children to group into the new group node. - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addLabel} + * @param options.children The children to group into the new group node. + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link yfiles.graph.IGraph#addPort} method. - * @returns {yfiles.graph.INode} The newly created group node. + * @param options.ports An array of ports to add to the newly created node. Each item will be passed to the {@link #addPort} method. + * @returns The newly created group node. + * @throws {Stubs.Exceptions.ArgumentError} One of children is not in this graph. * @see yfiles.graph.GroupingSupport#getNearestCommonAncestor * @see yfiles.graph.IGraph#groupNodes */ groupNodes?(options:{children:yfiles.collections.IEnumerable,labels?:Array,ports?:Array}):yfiles.graph.INode; /** * Calculates the number of incoming edges at the given {@link yfiles.graph.IPort} for this graph. - * @param {yfiles.graph.IPort} port The port to count the incoming edges of. - * @returns {number} The number of edges that have the port as their target port. + * @param port The port to count the incoming edges of. + * @returns The number of edges that have the port as their target port. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. */ inDegree?(port:yfiles.graph.IPort):number; /** * Calculates the number of incoming edges at the given {@link yfiles.graph.IPortOwner} for this graph. - * @param {yfiles.graph.IPortOwner} owner The port owner to count the incoming edges of. - * @returns {number} The number of edges that have the port owner as their target port's owner. + * @param owner The port owner to count the incoming edges of. + * @returns The number of edges that have the port owner as their target port's owner. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. */ inDegree?(owner:yfiles.graph.IPortOwner):number; /** @@ -53392,8 +52522,9 @@ declare namespace system{ * your own list, if possible. This is not necessary for the first or last element or when iterating over the incoming * edges via a foreach loop. *

    - * @param {yfiles.graph.IPort} port The port of the edges. - * @returns {yfiles.collections.IListEnumerable.} An enumerable for the edges. + * @param port The port of the edges. + * @returns An enumerable for the edges. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. */ inEdgesAt?(port:yfiles.graph.IPort):yfiles.collections.IListEnumerable; /** @@ -53407,8 +52538,9 @@ declare namespace system{ * your own list, if possible. This is not necessary for the first or last element or when iterating over the incoming * edges via a foreach loop. *

    - * @param {yfiles.graph.IPortOwner} owner The owner of the edges. - * @returns {yfiles.collections.IListEnumerable.} An enumerable for the edges. + * @param owner The owner of the edges. + * @returns An enumerable for the edges. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. */ inEdgesAt?(owner:yfiles.graph.IPortOwner):yfiles.collections.IListEnumerable; /** @@ -53424,11 +52556,11 @@ declare namespace system{ /** * Returns whether the given node is considered a group node. *

    - * Group nodes may have children but do not necessarily need to have {@link yfiles.graph.IGraph#getChildren children}. + * Group nodes may have {@link yfiles.graph.IGraph#getChildren children} but do not necessarily have to. *

    - * @param {yfiles.graph.INode} node The node to check. - * @returns {boolean} Whether the node is considered a group node. - * @throws {Stubs.Exceptions.ArgumentError} If node is not in this graph. + * @param node The node to check. + * @returns Whether the node is considered a group node. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. * @see yfiles.graph.IGraph#getChildren * @see yfiles.graph.IGraph#setIsGroupNode * @abstract @@ -53440,20 +52572,23 @@ declare namespace system{ * Neighbors are calculated by going through all {@link yfiles.graph.IPortOwner#ports} and inspecting the {@link yfiles.graph.IGraph#edgesAt edges at these ports}, collecting the * {@link yfiles.graph.IEdge#opposite}s. *

    - * @param {yfiles.graph.INode} node The node. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all neighbor nodes. + * @param node The node. + * @returns An enumerable over all neighbors. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. */ neighbors?(node:yfiles.graph.INode):yfiles.collections.IEnumerable; /** * Calculates the number of outgoing edges at the given {@link yfiles.graph.IPort} for this graph. - * @param {yfiles.graph.IPort} port The port to count the outgoing edges of. - * @returns {number} The number of edges that have the port as their source port. + * @param port The port to count the outgoing edges of. + * @returns The number of edges that have the port as their source port. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. */ outDegree?(port:yfiles.graph.IPort):number; /** * Calculates the number of outgoing edges at the given {@link yfiles.graph.IPortOwner} for this graph. - * @param {yfiles.graph.IPortOwner} owner The port owner to count the outgoing edges of. - * @returns {number} The number of edges that have the port owner as their source port's owner. + * @param owner The port owner to count the outgoing edges of. + * @returns The number of edges that have the port owner as their source port's owner. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. */ outDegree?(owner:yfiles.graph.IPortOwner):number; /** @@ -53467,8 +52602,9 @@ declare namespace system{ * your own list, if possible. This is not necessary for the first or last element or when iterating over the outgoing * edges via a foreach loop. *

    - * @param {yfiles.graph.IPort} port The owner of the edges. - * @returns {yfiles.collections.IListEnumerable.} An enumerable for the edges. + * @param port The owner of the edges. + * @returns An enumerable for the edges. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. */ outEdgesAt?(port:yfiles.graph.IPort):yfiles.collections.IListEnumerable; /** @@ -53482,8 +52618,9 @@ declare namespace system{ * your own list, if possible. This is not necessary for the first or last element or when iterating over the outgoing * edges via a foreach loop. *

    - * @param {yfiles.graph.IPortOwner} owner The owner of the edges. - * @returns {yfiles.collections.IListEnumerable.} An enumerable for the edges. + * @param owner The owner of the edges. + * @returns An enumerable for the edges. + * @throws {Stubs.Exceptions.ArgumentError} owner is not in this graph. */ outEdgesAt?(owner:yfiles.graph.IPortOwner):yfiles.collections.IListEnumerable; /** @@ -53491,8 +52628,9 @@ declare namespace system{ *

    * Predecessors are calculated by going through all {@link yfiles.graph.IPortOwner#ports} and inspecting the {@link yfiles.graph.IGraph#inEdgesAt incoming edges at these ports}, collecting the {@link yfiles.graph.IEdge#sourcePort} {@link yfiles.graph.IPort#owner}s. *

    - * @param {yfiles.graph.INode} node The node. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all predecessors. + * @param node The node. + * @returns An enumerable over all predecessors. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. */ predecessors?(node:yfiles.graph.INode):yfiles.collections.IEnumerable; /** @@ -53520,24 +52658,25 @@ declare namespace system{ *

    * If the item is a {@link yfiles.graph.ILabel label} the {@link yfiles.graph.IGraph#addLabelRemovedListener LabelRemoved} event will be triggered. *

    - * @param {yfiles.graph.IModelItem} item the live item to be removed from this graph instance - * @throws {Stubs.Exceptions.ArgumentError} item is not part of the graph. + * @param item the live item to be removed from this graph instance + * @throws {Stubs.Exceptions.ArgumentError} item is not in this graph. * @abstract */ remove(item:yfiles.graph.IModelItem):void; /** * Reverses an edge by {@link yfiles.graph.IGraph#setEdgePorts setting source and target port} to {@link yfiles.graph.IEdge#targetPort} and {@link yfiles.graph.IEdge#sourcePort}. *

    - * Also, this method will reverse the bends by clearing them and reinserting them in reverse order if there is more than - * one bend. + * This also reverses the bends by clearing them and reinserting them in reverse order if there is more than one bend. *

    - * @param {yfiles.graph.IEdge} edge The edge to reverse. + * @param edge The edge to reverse. + * @throws {Stubs.Exceptions.ArgumentError} edge is not in this graph. */ reverse?(edge:yfiles.graph.IEdge):void; /** * Modifies the location of the given bend. - * @param {yfiles.graph.IBend} bend the bend whose location is to be modified - * @param {yfiles.geometry.Point} location the new location of the bend + * @param bend the bend whose location is to be modified + * @param location the new location of the bend + * @throws {Stubs.Exceptions.ArgumentError} bend is not in this graph. * @see yfiles.graph.IGraph#addBend * @abstract */ @@ -53548,9 +52687,10 @@ declare namespace system{ * This will trigger an {@link yfiles.graph.IGraph#addEdgePortsChangedListener EdgePortsChanged} event if source or target ports * differ from the current ones. Both ports and the edge must belong to the current graph instance. *

    - * @param {yfiles.graph.IEdge} edge The edge to change the ports. - * @param {yfiles.graph.IPort} sourcePort The new source port instance. - * @param {yfiles.graph.IPort} targetPort The new target port instance. + * @param edge The edge to change the ports. + * @param sourcePort The new source port instance. + * @param targetPort The new target port instance. + * @throws {Stubs.Exceptions.ArgumentError} Either edge, sourcePort, or targetPort are not in this graph. * @abstract */ setEdgePorts(edge:yfiles.graph.IEdge,sourcePort:yfiles.graph.IPort,targetPort:yfiles.graph.IPort):void; @@ -53558,12 +52698,12 @@ declare namespace system{ * Determines whether the given node should be considered a group node. *

    * Group nodes may have {@link yfiles.graph.IGraph#getChildren children} but do not necessarily need to have one. Attempting to set a node to the - * non-group-node-status while it has children at the same time will result in an {@link Stubs.Exceptions.InvalidOperationError}. + * non-group-node-status while it has children at the same time will result in an {@link yfiles.lang.Exception}. *

    - * @param {yfiles.graph.INode} node The node to set the group node status for. - * @param {boolean} isGroupNode Whether to make the node a group node. - * @throws {Stubs.Exceptions.InvalidOperationError} If node is the root or currently has children and isGroupNode is false. - * @throws {Stubs.Exceptions.ArgumentError} If node is not in this graph. + * @param node The node to set the group node status for. + * @param isGroupNode Whether to make the node a group node. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. + * @throws {Stubs.Exceptions.InvalidOperationError} node is null or currently has children and isGroupNode is false. * @see yfiles.graph.IGraph#getChildren * @see yfiles.graph.IGraph#isGroupNode * @abstract @@ -53571,25 +52711,26 @@ declare namespace system{ setIsGroupNode(node:yfiles.graph.INode,isGroupNode:boolean):void; /** * Sets the label model parameter for the given label. - * @param {yfiles.graph.ILabel} label The label. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The new parameter. - * @throws {Stubs.Exceptions.ArgumentError} If the layoutParameter cannot be used for this label. - * @throws {Stubs.Exceptions.ArgumentError} If the label does not belong to this graph. + * @param label The label. + * @param layoutParameter The new parameter. + * @throws {Stubs.Exceptions.ArgumentError} label is not in this graph, or layoutParameter cannot be used for label. * @abstract */ setLabelLayoutParameter(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):void; /** * Sets the preferred size of the label. - * @param {yfiles.graph.ILabel} label The label. - * @param {yfiles.geometry.Size} preferredSize The new preferred size. + * @param label The label. + * @param preferredSize The new preferred size. + * @throws {Stubs.Exceptions.ArgumentError} label is not in this graph. * @see yfiles.graph.ILabel#preferredSize * @abstract */ setLabelPreferredSize(label:yfiles.graph.ILabel,preferredSize:yfiles.geometry.Size):void; /** * Sets the label text of the given label. - * @param {yfiles.graph.ILabel} label the label to modify - * @param {string} text the new text of the label + * @param label the label to modify + * @param text the new text of the label + * @throws {Stubs.Exceptions.ArgumentError} label is not in this graph. * @see yfiles.graph.ILabel#text * @abstract */ @@ -53599,14 +52740,15 @@ declare namespace system{ *

    * This implementation delegates to {@link yfiles.graph.IGraph#setNodeLayout} *

    - * @param {yfiles.graph.INode} node The node to recenter. - * @param {yfiles.geometry.Point} center The new center coordinates of the node in the world coordinate system. + * @param node The node to recenter. + * @param center The new center coordinates of the node in the world coordinate system. */ setNodeCenter?(node:yfiles.graph.INode,center:yfiles.geometry.Point):void; /** * Sets the layout of the given node to the new value. - * @param {yfiles.graph.INode} node a live node that belongs to this graph - * @param {yfiles.geometry.Rect} layout The new layout of the node to assign to its {@link yfiles.graph.INode#layout}. + * @param node a live node that belongs to this graph + * @param layout The new layout of the node to assign to its {@link #layout}. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. * @see yfiles.graph.INode#layout * @abstract */ @@ -53616,10 +52758,9 @@ declare namespace system{ *

    * Use null as parent to make node a top-level node for this graph. *

    - * @param {yfiles.graph.INode} node The node to assign a new parent. - * @param {yfiles.graph.INode} parent The parent group node to assign to node or null to make node a top-level node. - * @throws {Stubs.Exceptions.ArgumentError} If node is null. - * @throws {Stubs.Exceptions.ArgumentError} If node is not in this graph + * @param node The node to assign a new parent. + * @param parent The parent group node to assign to node or null to make node a top-level node. + * @throws {Stubs.Exceptions.ArgumentError} Either node or parent are not in this graph. * @see yfiles.graph.IGraph#getParent * @abstract */ @@ -53632,27 +52773,29 @@ declare namespace system{ * method. This might result in the port using a different location, because the model might not support parameters that * result in the given location. This will also trigger an {@link yfiles.graph.IGraph#invalidateDisplays} call. *

    - * @param {yfiles.graph.IPort} port The port to modify - * @param {yfiles.geometry.Point} location the new absolute coordinates of the port + * @param port The port to modify + * @param location the new absolute coordinates of the port + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. * @see yfiles.graph.IGraph#addPort */ setPortLocation?(port:yfiles.graph.IPort,location:yfiles.geometry.Point):void; /** * Sets a new {@link yfiles.graph.IPortLocationModelParameter} for the given port. - * @param {yfiles.graph.IPort} port The port to modify - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter the new parameter that determines the coordinates of the port + * @param port The port to modify + * @param locationParameter the new parameter that determines the coordinates of the port + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph, or locationParameter cannot be used for port. * @abstract */ setPortLocationParameter(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):void; /** * Tries to set the location of the port relative to its {@link yfiles.graph.IPort#owner owner} if the owner is a {@link yfiles.graph.INode node}. *

    - * If the port is not owned by a node that is part of this graph, this method will throw an {@link Stubs.Exceptions.ArgumentError}. - * This method will delegate to {@link yfiles.graph.IGraph#setPortLocation}. + * If the port is not owned by a node that is part of this graph, this method will throw an {@link yfiles.lang.Exception}. This + * method will delegate to {@link yfiles.graph.IGraph#setPortLocation}. *

    - * @param {yfiles.graph.IPort} port the port - * @param {yfiles.geometry.Point} relativeLocation the new coordinate offsets relative to the center of the node's {@link yfiles.graph.INode#layout}'s center. - * @throws {Stubs.Exceptions.ArgumentError} If the port is not owned by a node + * @param port the port + * @param relativeLocation the new coordinate offsets relative to the center of the node's {@link #layout}'s center. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph or has no owner. * @see yfiles.graph.INode#layout */ setRelativePortLocation?(port:yfiles.graph.IPort,relativeLocation:yfiles.geometry.Point):void; @@ -53661,8 +52804,9 @@ declare namespace system{ *

    * Style instances can be shared. *

    - * @param {yfiles.graph.IPort} port The port that will be assigned the new style - * @param {yfiles.styles.IPortStyle} style The style instance that will be assigned to the port. + * @param port The port that will be assigned the new style + * @param style The style instance that will be assigned to the port. + * @throws {Stubs.Exceptions.ArgumentError} port is not in this graph. * @see yfiles.graph.IPort#style * @see yfiles.graph.IGraph#addPortStyleChangedListener * @see yfiles.styles.VoidPortStyle#INSTANCE @@ -53674,8 +52818,9 @@ declare namespace system{ *

    * Style instances can be shared. *

    - * @param {yfiles.graph.IEdge} edge The edge that will be assigned the new style - * @param {yfiles.styles.IEdgeStyle} style The style instance that will be assigned to the edge. + * @param edge The edge that will be assigned the new style + * @param style The style instance that will be assigned to the edge. + * @throws {Stubs.Exceptions.ArgumentError} edge is not in this graph. * @see yfiles.graph.IEdge#style * @see yfiles.graph.IGraph#addEdgeStyleChangedListener * @see yfiles.styles.VoidEdgeStyle#INSTANCE @@ -53687,8 +52832,9 @@ declare namespace system{ *

    * Style instances can be shared. *

    - * @param {yfiles.graph.ILabel} label The label that will be assigned the new style - * @param {yfiles.styles.ILabelStyle} style The style instance that will be assigned to the label. + * @param label The label that will be assigned the new style + * @param style The style instance that will be assigned to the label. + * @throws {Stubs.Exceptions.ArgumentError} label is not in this graph. * @see yfiles.graph.ILabel#style * @see yfiles.graph.IGraph#addLabelStyleChangedListener * @see yfiles.styles.VoidLabelStyle#INSTANCE @@ -53700,8 +52846,9 @@ declare namespace system{ *

    * Style instances can be shared. *

    - * @param {yfiles.graph.INode} node The node that will be assigned the new style - * @param {yfiles.styles.INodeStyle} style The style instance that will be assigned to the node. + * @param node The node that will be assigned the new style + * @param style The style instance that will be assigned to the node. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. * @see yfiles.graph.INode#style * @see yfiles.graph.IGraph#addNodeStyleChangedListener * @see yfiles.styles.VoidNodeStyle#INSTANCE @@ -53713,8 +52860,9 @@ declare namespace system{ *

    * Successors are calculated by going through all {@link yfiles.graph.IPortOwner#ports} and inspecting the {@link yfiles.graph.IGraph#outEdgesAt outgoing edges at these ports}, collecting the {@link yfiles.graph.IEdge#targetPort} {@link yfiles.graph.IPort#owner}s. *

    - * @param {yfiles.graph.INode} node The node. - * @returns {yfiles.collections.IEnumerable.} An enumerable over all successors. + * @param node The node. + * @returns An enumerable over all successors. + * @throws {Stubs.Exceptions.ArgumentError} node is not in this graph. */ successors?(node:yfiles.graph.INode):yfiles.collections.IEnumerable; /** @@ -53819,7 +52967,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#removeGraphTagChangedListener * @abstract @@ -53831,7 +52979,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#addGraphTagChangedListener * @abstract @@ -53845,7 +52993,8 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the node creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. + * @see yfiles.graph.IGraph#createNode * @see yfiles.graph.IGraph#createNode * @see yfiles.graph.IGraph#createGroupNode * @see yfiles.input.GraphEditorInputMode#addNodeCreatedListener @@ -53861,7 +53010,8 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the node creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. + * @see yfiles.graph.IGraph#createNode * @see yfiles.graph.IGraph#createNode * @see yfiles.graph.IGraph#createGroupNode * @see yfiles.input.GraphEditorInputMode#addNodeCreatedListener @@ -53875,7 +53025,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#removeDisplaysInvalidatedListener * @abstract */ @@ -53886,7 +53036,7 @@ declare namespace system{ *

    * This event is invoked with {@link yfiles.lang.EventArgs#EMPTY} per default. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#addDisplaysInvalidatedListener * @abstract */ @@ -53899,7 +53049,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the node removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#removeNodeRemovedListener @@ -53914,7 +53064,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the node removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#addNodeRemovedListener @@ -53927,7 +53077,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#removeNodeStyleChangedListener * @abstract @@ -53939,7 +53089,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#addNodeStyleChangedListener * @abstract @@ -53951,7 +53101,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.INode, yfiles.geometry.Rect): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setNodeLayout * @see yfiles.graph.IGraph#removeNodeLayoutChangedListener * @abstract @@ -53963,7 +53113,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.INode, yfiles.geometry.Rect): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setNodeLayout * @see yfiles.graph.IGraph#addNodeLayoutChangedListener * @abstract @@ -53975,7 +53125,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#removeNodeTagChangedListener * @abstract @@ -53987,7 +53137,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#addNodeTagChangedListener * @abstract @@ -54001,7 +53151,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the edge creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#createEdge * @see yfiles.input.CreateEdgeInputMode#addEdgeCreatedListener * @see yfiles.graph.IGraph#removeEdgeCreatedListener @@ -54016,7 +53166,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the edge creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#createEdge * @see yfiles.input.CreateEdgeInputMode#addEdgeCreatedListener * @see yfiles.graph.IGraph#addEdgeCreatedListener @@ -54034,7 +53184,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the edge removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#removeEdgeRemovedListener @@ -54052,7 +53202,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the edge removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#addEdgeRemovedListener @@ -54065,7 +53215,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#removeEdgeStyleChangedListener * @abstract @@ -54077,7 +53227,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#addEdgeStyleChangedListener * @abstract @@ -54089,7 +53239,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setEdgePorts * @see yfiles.graph.IGraph#removeEdgePortsChangedListener * @abstract @@ -54101,7 +53251,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.EdgeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setEdgePorts * @see yfiles.graph.IGraph#addEdgePortsChangedListener * @abstract @@ -54113,7 +53263,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#removeEdgeTagChangedListener * @abstract @@ -54125,7 +53275,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#addEdgeTagChangedListener * @abstract @@ -54139,7 +53289,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the bend creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#addBend * @see yfiles.input.CreateBendInputMode#addBendCreatedListener * @see yfiles.graph.IGraph#removeBendAddedListener @@ -54154,7 +53304,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the bend creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#addBend * @see yfiles.input.CreateBendInputMode#addBendCreatedListener * @see yfiles.graph.IGraph#addBendAddedListener @@ -54173,7 +53323,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the bend removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#removeBendRemovedListener @@ -54193,7 +53343,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the bend removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.BendEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#addBendRemovedListener @@ -54206,7 +53356,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.IBend, yfiles.geometry.Point): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setBendLocation * @see yfiles.graph.IGraph#removeBendLocationChangedListener * @abstract @@ -54218,7 +53368,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.IBend, yfiles.geometry.Point): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setBendLocation * @see yfiles.graph.IGraph#addBendLocationChangedListener * @abstract @@ -54230,7 +53380,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#removeBendTagChangedListener * @abstract @@ -54242,7 +53392,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#addBendTagChangedListener * @abstract @@ -54256,7 +53406,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the label creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#addLabel * @see yfiles.input.GraphEditorInputMode#addLabelAddedListener * @see yfiles.graph.IGraph#removeLabelAddedListener @@ -54271,7 +53421,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the label creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#addLabel * @see yfiles.input.GraphEditorInputMode#addLabelAddedListener * @see yfiles.graph.IGraph#addLabelAddedListener @@ -54289,7 +53439,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the label removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.input.GraphEditorInputMode#addLabelTextChangedListener @@ -54309,7 +53459,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the label removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.input.GraphEditorInputMode#addLabelTextChangedListener @@ -54323,7 +53473,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#removeLabelStyleChangedListener * @abstract @@ -54335,7 +53485,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#addLabelStyleChangedListener * @abstract @@ -54348,7 +53498,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setLabelPreferredSize * @see yfiles.graph.IGraph#removeLabelPreferredSizeChangedListener * @abstract @@ -54361,7 +53511,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setLabelPreferredSize * @see yfiles.graph.IGraph#addLabelPreferredSizeChangedListener * @abstract @@ -54373,7 +53523,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setLabelText * @see yfiles.graph.IGraph#removeLabelTextChangedListener * @abstract @@ -54385,7 +53535,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setLabelText * @see yfiles.graph.IGraph#addLabelTextChangedListener * @abstract @@ -54398,7 +53548,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setLabelLayoutParameter * @see yfiles.graph.IGraph#removeLabelLayoutParameterChangedListener * @abstract @@ -54411,7 +53561,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setLabelLayoutParameter * @see yfiles.graph.IGraph#addLabelLayoutParameterChangedListener * @abstract @@ -54423,7 +53573,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#removeLabelTagChangedListener * @abstract @@ -54435,7 +53585,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#addLabelTagChangedListener * @abstract @@ -54448,7 +53598,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the port creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#addPort * @see yfiles.graph.IGraph#createEdge * @see yfiles.graph.IGraph#removePortAddedListener @@ -54462,7 +53612,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the port creation * that has triggered this event. *

    - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#addPort * @see yfiles.graph.IGraph#createEdge * @see yfiles.graph.IGraph#addPortAddedListener @@ -54480,7 +53630,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the port removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.PortEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#removePortRemovedListener @@ -54498,7 +53648,7 @@ declare namespace system{ * Note:You may not modify the graph in the event handler for this event. Especially you may not prevent/undo the port removal * that has triggered this event. *

    - * @param {function(Object, yfiles.graph.PortEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#remove * @see yfiles.input.GraphEditorInputMode#addDeletedItemListener * @see yfiles.graph.IGraph#addPortRemovedListener @@ -54511,7 +53661,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#removePortStyleChangedListener * @abstract @@ -54523,7 +53673,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setStyle * @see yfiles.graph.IGraph#addPortStyleChangedListener * @abstract @@ -54536,7 +53686,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#setPortLocationParameter * @see yfiles.graph.IGraph#removePortLocationParameterChangedListener * @abstract @@ -54549,7 +53699,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#setPortLocationParameter * @see yfiles.graph.IGraph#addPortLocationParameterChangedListener * @abstract @@ -54561,7 +53711,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#removePortTagChangedListener * @abstract @@ -54573,7 +53723,7 @@ declare namespace system{ * This event is intended to provide notification of low level changes in the graph structure. * Note:You may not modify the graph in the event handler for this event. *

    - * @param {function(Object, yfiles.graph.ItemChangedEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITagOwner#tag * @see yfiles.graph.IGraph#addPortTagChangedListener * @abstract @@ -54590,7 +53740,7 @@ declare namespace system{ * event. *
    * Event that will be triggered if an node has been reparented in the model. - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#removeParentChangedListener * @abstract */ @@ -54600,7 +53750,7 @@ declare namespace system{ * event. *
    * Event that will be triggered if an node has been reparented in the model. - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#addParentChangedListener * @abstract */ @@ -54610,7 +53760,7 @@ declare namespace system{ * event. *
    * Event that will be triggered if the group node status of a node has changed. - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.IGraph#removeIsGroupNodeChangedListener * @abstract */ @@ -54620,14 +53770,13 @@ declare namespace system{ * event. *
    * Event that will be triggered if the group node status of a node has changed. - * @param {function(Object, yfiles.graph.NodeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.IGraph#addIsGroupNodeChangedListener * @abstract */ removeIsGroupNodeChangedListener(listener:(sender:Object,evt:yfiles.graph.NodeEventArgs)=>void):void; /** * Gets a {@link yfiles.graph.GraphDecorator} instance for use with the given graph. - * @returns A new {@link yfiles.graph.GraphDecorator} * @type {yfiles.graph.GraphDecorator} */ decorator?:yfiles.graph.GraphDecorator; @@ -54637,7 +53786,6 @@ declare namespace system{ * {@link yfiles.graph.GroupingSupport} provides less frequently used methods for grouped graphs, such as methods for analyzing and * walking the grouping hierarchy. *

    - * @returns * @type {yfiles.graph.GroupingSupport} */ groupingSupport?:yfiles.graph.GroupingSupport; @@ -54647,9 +53795,8 @@ declare namespace system{ * This convenience method uses the {@link yfiles.graph.ILookup#lookup} of the {@link yfiles.graph.IGraph} to obtain the * {@link yfiles.graph.IFoldingView}. *

    - * @returns The implementation of the {@link yfiles.graph.IFoldingView} or null if the graph has not been created by a - * {@link yfiles.graph.FoldingManager}. * @see yfiles.graph.FoldingManager + * @see yfiles.graph.FoldingManager#createFoldingView * @type {yfiles.graph.IFoldingView} */ foldingView?:yfiles.graph.IFoldingView; @@ -54660,7 +53807,6 @@ declare namespace system{ * This convenience method uses the {@link yfiles.graph.ILookup#lookup} of the {@link yfiles.graph.IGraph} to obtain the * {@link yfiles.graph.UndoEngine}. *

    - * @returns The implementation of the {@link yfiles.graph.UndoEngine} or null if {@link yfiles.graph.DefaultGraph#undoEngineEnabled undo is not supported}. * @type {yfiles.graph.UndoEngine} */ undoEngine?:yfiles.graph.UndoEngine; @@ -54699,7 +53845,7 @@ declare namespace system{ * {@link yfiles.graph.IGraph#addParentChangedListener ParentChanged}) it is unclear which {@link yfiles.graph.NodeEventArgs#parent} or {@link yfiles.graph.NodeEventArgs#isGroupNode} the node had before the event * this event can be used to carry exactly that information. *

    - * @class yfiles.graph.NodeEventArgs + * @class * @extends {yfiles.collections.ItemEventArgs.} * @final */ @@ -54707,10 +53853,9 @@ declare namespace system{ export class NodeEventArgs { /** * Creates a new instance. - * @param {yfiles.graph.INode} item The node that has changed. - * @param {yfiles.graph.INode} oldParent The parent the node had before this event. - * @param {boolean} oldIsGroupNode Whether the node was a group node before this event. - * @constructor + * @param item The node that has changed. + * @param oldParent The parent the node had before this event. + * @param oldIsGroupNode Whether the node was a group node before this event. */ constructor(item:yfiles.graph.INode,oldParent:yfiles.graph.INode,oldIsGroupNode:boolean); /** @@ -54733,7 +53878,7 @@ declare namespace system{ * {@link yfiles.graph.IGraph#addEdgeRemovedListener EdgeRemoved}) it is unclear what {@link yfiles.graph.IEdge#sourcePort} and {@link yfiles.graph.IEdge#targetPort} the edge had been connected to * before the event, this event can be used to carry exactly that information. *

    - * @class yfiles.graph.EdgeEventArgs + * @class * @extends {yfiles.collections.ItemEventArgs.} * @final */ @@ -54741,23 +53886,21 @@ declare namespace system{ export class EdgeEventArgs { /** * Initializes a new instance of the {@link yfiles.graph.EdgeEventArgs} class. - * @param {yfiles.graph.IEdge} edge The edge to assign to the {@link yfiles.collections.ItemEventArgs.#item} property. - * @param {yfiles.graph.IPort} [sourcePort=null] The source port the edge was connected to before the event happened. - * @param {yfiles.graph.IPort} [targetPort=null] The target port the edge was connected to before the event happened. - * @param {yfiles.graph.IPortOwner} [sourcePortOwner=null] The owner of the source port the edge was connected to before the event happened. - * @param {yfiles.graph.IPortOwner} [targetPortOwner=null] The owner of the target port the edge was connected to before the event happened. - * @constructor + * @param edge The edge to assign to the {@link #item} property. + * @param [sourcePort=null] The source port the edge was connected to before the event happened. + * @param [targetPort=null] The target port the edge was connected to before the event happened. + * @param [sourcePortOwner=null] The owner of the source port the edge was connected to before the event happened. + * @param [targetPortOwner=null] The owner of the target port the edge was connected to before the event happened. */ constructor(edge:yfiles.graph.IEdge,sourcePort?:yfiles.graph.IPort,targetPort?:yfiles.graph.IPort,sourcePortOwner?:yfiles.graph.IPortOwner,targetPortOwner?:yfiles.graph.IPortOwner); /** * Initializes a new instance of the {@link yfiles.graph.EdgeEventArgs} class. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IEdge} options.edge The edge to assign to the {@link yfiles.collections.ItemEventArgs.#item} property. - * @param {yfiles.graph.IPort} [options.sourcePort=null] The source port the edge was connected to before the event happened. - * @param {yfiles.graph.IPort} [options.targetPort=null] The target port the edge was connected to before the event happened. - * @param {yfiles.graph.IPortOwner} [options.sourcePortOwner=null] The owner of the source port the edge was connected to before the event happened. - * @param {yfiles.graph.IPortOwner} [options.targetPortOwner=null] The owner of the target port the edge was connected to before the event happened. - * @constructor + * @param options.edge The edge to assign to the {@link #item} property. + * @param [options.sourcePort=null] The source port the edge was connected to before the event happened. + * @param [options.targetPort=null] The target port the edge was connected to before the event happened. + * @param [options.sourcePortOwner=null] The owner of the source port the edge was connected to before the event happened. + * @param [options.targetPortOwner=null] The owner of the target port the edge was connected to before the event happened. */ constructor(options:{edge:yfiles.graph.IEdge,sourcePort?:yfiles.graph.IPort,targetPort?:yfiles.graph.IPort,sourcePortOwner?:yfiles.graph.IPortOwner,targetPortOwner?:yfiles.graph.IPortOwner}); /** @@ -54789,7 +53932,7 @@ declare namespace system{ * Since for some events ({@link yfiles.graph.IGraph#addPortRemovedListener PortRemoved}) it is unclear what {@link yfiles.graph.IPort#owner} the port had * been attached to before the event, this event can be used to carry exactly that information. *

    - * @class yfiles.graph.PortEventArgs + * @class * @extends {yfiles.collections.ItemEventArgs.} * @final */ @@ -54797,9 +53940,8 @@ declare namespace system{ export class PortEventArgs { /** * Initializes a new instance of the {@link yfiles.graph.PortEventArgs} class. - * @param {yfiles.graph.IPort} port The port to assign to the {@link yfiles.collections.ItemEventArgs.#item} property. - * @param {yfiles.graph.IPortOwner} owner The owner of the port the port was attached to. - * @constructor + * @param port The port to assign to the {@link #item} property. + * @param owner The owner of the port the port was attached to. */ constructor(port:yfiles.graph.IPort,owner:yfiles.graph.IPortOwner); /** @@ -54816,7 +53958,7 @@ declare namespace system{ * Since for some events ({@link yfiles.graph.IGraph#addLabelRemovedListener LabelRemoved}) it is unclear what {@link yfiles.graph.ILabel#owner} the label * was owned by before the event, this event can be used to carry exactly that information. *

    - * @class yfiles.graph.LabelEventArgs + * @class * @extends {yfiles.collections.ItemEventArgs.} * @final */ @@ -54824,9 +53966,8 @@ declare namespace system{ export class LabelEventArgs { /** * Initializes a new instance of the {@link yfiles.graph.LabelEventArgs} class. - * @param {yfiles.graph.ILabel} label The label to assign to the {@link yfiles.collections.ItemEventArgs.#item} property. - * @param {yfiles.graph.ILabelOwner} owner The previous owner of the label. - * @constructor + * @param label The label to assign to the {@link #item} property. + * @param owner The previous owner of the label. */ constructor(label:yfiles.graph.ILabel,owner:yfiles.graph.ILabelOwner); /** @@ -54843,7 +53984,7 @@ declare namespace system{ * Since for some events ({@link yfiles.graph.IGraph#addBendRemovedListener BendRemoved}) it is unclear what {@link yfiles.graph.IBend#owner} the bend was * owned by before the event, this event can be used to carry exactly that information. *

    - * @class yfiles.graph.BendEventArgs + * @class * @extends {yfiles.collections.ItemEventArgs.} * @final */ @@ -54851,10 +53992,9 @@ declare namespace system{ export class BendEventArgs { /** * Initializes a new instance of the {@link yfiles.graph.BendEventArgs} class. - * @param {yfiles.graph.IBend} bend The bend to assign to the {@link yfiles.collections.ItemEventArgs.#item} property. - * @param {yfiles.graph.IEdge} owner The previous owner of the bend. - * @param {number} index The previous index of the bend in the {@link yfiles.graph.IEdge#bends} list. - * @constructor + * @param bend The bend to assign to the {@link #item} property. + * @param owner The previous owner of the bend. + * @param index The previous index of the bend in the {@link #bends} list. */ constructor(bend:yfiles.graph.IBend,owner:yfiles.graph.IEdge,index:number); /** @@ -54873,7 +54013,7 @@ declare namespace system{ * Event argument class used by {@link yfiles.graph.IGraph} if a model item's property has been changed. * Type parameter TItem: The type of the item contained in the event. * Type parameter TValue: The type of the item's property that has been changed. - * @class yfiles.graph.ItemChangedEventArgs. + * @class * @extends {yfiles.collections.ItemEventArgs.} * @template TItem,TValue */ @@ -54881,9 +54021,8 @@ declare namespace system{ export class ItemChangedEventArgs { /** * Initializes a new instance of the {@link yfiles.graph.ItemChangedEventArgs.} class. - * @param {TItem} item The item whose property has been changed. - * @param {TValue} oldValue The value of the property before the change. - * @constructor + * @param item The item whose property has been changed. + * @param oldValue The value of the property before the change. */ constructor(item:TItem,oldValue:TValue); /** @@ -54967,7 +54106,6 @@ declare namespace system{ layoutParameter:yfiles.graph.ILabelModelParameter; /** * Gets the index of the label at its {@link yfiles.graph.ILabel#owner}. - * @returns The zero based index of the label in the {@link yfiles.graph.ILabelOwner#labels} list; -1 if the label is not part of a label owner. * @type {number} */ index?:number; @@ -54980,7 +54118,6 @@ declare namespace system{ * determined using a pair of {@link yfiles.graph.ILabelModel} and {@link yfiles.graph.ILabelModelParameter}. In order to modify the layout * of a label instance, set another {@link yfiles.graph.ILabel#layoutParameter} for this label or modify its associated instance. *

    - * @returns The current label layout. * @type {yfiles.geometry.IOrientedRectangle} */ layout?:yfiles.geometry.IOrientedRectangle; @@ -55009,8 +54146,8 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.ILabelDefaults#layoutParameter} property, if {@link yfiles.graph.ILabelDefaults#shareLayoutParameterInstance} is enabled, but they might use more complicated * logic, too. *

    - * @param {yfiles.graph.ILabelOwner} owner The owner of the label that will be created. - * @returns {yfiles.graph.ILabelModelParameter} The parameter to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.ILabelDefaults#layoutParameter} property, if {@link yfiles.graph.ILabelDefaults#shareLayoutParameterInstance} is enabled. + * @param owner The owner of the label that will be created. + * @returns The parameter to use, which for most implementations is either a {@link #clone clone} of or the {@link #layoutParameter} property, if {@link #shareLayoutParameterInstance} is enabled. * @abstract */ getLayoutParameterInstance(owner:yfiles.graph.ILabelOwner):yfiles.graph.ILabelModelParameter; @@ -55020,8 +54157,8 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.ILabelDefaults#style} property, if {@link yfiles.graph.ILabelDefaults#shareStyleInstance} is enabled, but they might use more complicated * logic, too. *

    - * @param {yfiles.graph.ILabelOwner} owner The owner of the label that will be created. - * @returns {yfiles.styles.ILabelStyle} The style to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.ILabelDefaults#style} property, if {@link yfiles.graph.ILabelDefaults#shareStyleInstance} is enabled. + * @param owner The owner of the label that will be created. + * @returns The style to use, which for most implementations is either a {@link #clone clone} of or the {@link #style} property, if {@link #shareStyleInstance} is enabled. * @abstract */ getStyleInstance(owner:yfiles.graph.ILabelOwner):yfiles.styles.ILabelStyle; @@ -55111,15 +54248,15 @@ declare namespace system{ export interface ILabelModel extends Object,yfiles.graph.ILookup{ /** * Creates a default parameter that can be used for this model. - * @returns {yfiles.graph.ILabelModelParameter} a parameter for this model instance + * @returns a parameter for this model instance * @abstract */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Provides a {@link yfiles.graph.ILookup lookup context} for the given combination of label and parameter. - * @param {yfiles.graph.ILabel} label The label to use in the context. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use for the label in the context. - * @returns {yfiles.graph.ILookup} An implementation of the {@link yfiles.graph.ILookup} interface that can be used to query additional aspects of the + * @param label The label to use in the context. + * @param layoutParameter The parameter to use for the label in the context. + * @returns An implementation of the {@link } interface that can be used to query additional aspects of the * label/parameter combination. * @see yfiles.graph.ILookup#EMPTY * @abstract @@ -55127,10 +54264,10 @@ declare namespace system{ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * Calculates the {@link yfiles.geometry.IOrientedRectangle geometry} of the given label using the given model parameter. - * @param {yfiles.graph.ILabel} label The label to calculate the geometry for. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter A parameter that is compatible with this model. Typically, this is a parameter that has been created by this model, and - * its property {@link yfiles.graph.ILabelModelParameter#model} returns this instance. - * @returns {yfiles.geometry.IOrientedRectangle} An {@link yfiles.geometry.IOrientedRectangle} that describes the geometry of the label. This is typically designed as a + * @param label The label to calculate the geometry for. + * @param layoutParameter A parameter that is compatible with this model. Typically, this is a parameter that has been created by this model, and + * its property {@link #model} returns this instance. + * @returns An {@link } that describes the geometry of the label. This is typically designed as a * flyweight, therefore clients should not cache the instance but store the values if they need a snapshot for later use. * @abstract */ @@ -55212,9 +54349,9 @@ declare namespace system{ export interface ILabelCandidateDescriptorProvider extends Object{ /** * Gets the descriptor for a given pair of a label and a {@link yfiles.graph.ILabelModelParameter}. - * @param {yfiles.graph.ILabel} label The label to possibly assign the layoutParameter. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to provide a descriptor for if applied to the given label. - * @returns {yfiles.graph.ILabelCandidateDescriptor} A descriptor or null. + * @param label The label to possibly assign the layoutParameter. + * @param layoutParameter The parameter to provide a descriptor for if applied to the given label. + * @returns A descriptor or null. * @abstract */ getDescriptor(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILabelCandidateDescriptor; @@ -55226,7 +54363,7 @@ declare namespace system{ /** * An implementation of the {@link yfiles.graph.ILabelCandidateDescriptorProvider} interface that always yields a constant * {@link yfiles.graph.ILabelCandidateDescriptor}. - * @class yfiles.graph.ConstantLabelCandidateDescriptorProvider + * @class * @implements {yfiles.graph.ILabelCandidateDescriptorProvider} * @final */ @@ -55235,15 +54372,14 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.graph.ConstantLabelCandidateDescriptorProvider} class that always yields descriptor * in {@link yfiles.graph.ConstantLabelCandidateDescriptorProvider#getDescriptor}. - * @param {yfiles.graph.ILabelCandidateDescriptor} descriptor The descriptor to yield in {@link yfiles.graph.ConstantLabelCandidateDescriptorProvider#getDescriptor}. - * @constructor + * @param descriptor The descriptor to yield in {@link #getDescriptor}. */ constructor(descriptor:yfiles.graph.ILabelCandidateDescriptor); /** * Always yields the parameter that has been passed to the constructor. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILabelCandidateDescriptor} + * @param label + * @param layoutParameter + * @returns */ getDescriptor(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILabelCandidateDescriptor; /** @@ -55269,7 +54405,7 @@ declare namespace system{ *

    * All properties are read/write in this implementation. *

    - * @class yfiles.graph.LabelCandidateDescriptor + * @class * @implements {yfiles.graph.ILabelCandidateDescriptor} */ export interface LabelCandidateDescriptor extends Object,yfiles.graph.ILabelCandidateDescriptor{} @@ -55336,8 +54472,8 @@ declare namespace system{ * A parameter must not necessarily support all types of labels. This method returns whether it supports the given label. * For example, a parameter might only support labels that are owned by an {@link yfiles.graph.INode}. *

    - * @param {yfiles.graph.ILabel} label The label to test. - * @returns {boolean} true if this instance can be used for the given label, false otherwise. + * @param label The label to test. + * @returns true if this instance can be used for the given label, false otherwise. * @abstract */ supports(label:yfiles.graph.ILabel):boolean; @@ -55369,10 +54505,10 @@ declare namespace system{ * This method may not necessarily find a parameter that matches the provided layout exactly. Implementations may choose to * simply return the model's {@link yfiles.graph.ILabelModel#createDefaultParameter default parameter} but may never return null. *

    - * @param {yfiles.graph.ILabel} label The label to find a parameter for. - * @param {yfiles.graph.ILabelModel} model The model instance to use. This should be the instance this instance has been obtained from. - * @param {yfiles.geometry.IOrientedRectangle} layout The anticipated layout for the label. - * @returns {yfiles.graph.ILabelModelParameter} A non-null parameter that can be used for the label to approximate the provided layout. + * @param label The label to find a parameter for. + * @param model The model instance to use. This should be the instance this instance has been obtained from. + * @param layout The anticipated layout for the label. + * @returns A non-null parameter that can be used for the label to approximate the provided layout. * @abstract */ findBestParameter(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel,layout:yfiles.geometry.IOrientedRectangle):yfiles.graph.ILabelModelParameter; @@ -55388,7 +54524,7 @@ declare namespace system{ * This implementation uses a metric to find the closest of the provided parameter candidates to the layout provided in * {@link yfiles.graph.DefaultLabelModelParameterFinder#selectBestParameter}. *

    - * @class yfiles.graph.DefaultLabelModelParameterFinder + * @class * @implements {yfiles.graph.ILabelModelParameterFinder} */ export interface DefaultLabelModelParameterFinder extends Object,yfiles.graph.ILabelModelParameterFinder{} @@ -55399,10 +54535,10 @@ declare namespace system{ * This implementation gets the geometry from the parameter's model's {@link yfiles.graph.ILabelModel#getGeometry} method and * returns the result of a call to {@link yfiles.graph.DefaultLabelModelParameterFinder#distance}. *

    - * @param {yfiles.graph.ILabel} label The label to apply the parameter to. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter candidate. - * @param {yfiles.geometry.IOrientedRectangle} layout The targeted layout rectangle. - * @returns {number} A metric that indicates the distance between the candidate's layout and the target layout. + * @param label The label to apply the parameter to. + * @param layoutParameter The parameter candidate. + * @param layout The targeted layout rectangle. + * @returns A metric that indicates the distance between the candidate's layout and the target layout. * @protected */ calculateMetric(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter,layout:yfiles.geometry.IOrientedRectangle):number; @@ -55412,9 +54548,9 @@ declare namespace system{ * The distance is calculated using the Euclidean distance between the two centers and the angular deviation between the * two up vectors. *

    - * @param {yfiles.geometry.IOrientedRectangle} rectangle1 The first geometry. - * @param {yfiles.geometry.IOrientedRectangle} rectangle2 The geometry to compare the first one with. - * @returns {number} A value indicating the distance between the two instances. + * @param rectangle1 The first geometry. + * @param rectangle2 The geometry to compare the first one with. + * @returns A value indicating the distance between the two instances. * @protected */ distance(rectangle1:yfiles.geometry.IOrientedRectangle,rectangle2:yfiles.geometry.IOrientedRectangle):number; @@ -55426,17 +54562,17 @@ declare namespace system{ * {@link yfiles.graph.DefaultLabelModelParameterFinder#calculateMetric}. If no parameter can be found this method returns the {@link yfiles.graph.ILabelModel#createDefaultParameter default parameter} * for the model. *

    - * @param {yfiles.graph.ILabel} label The label to find a parameter for. - * @param {yfiles.graph.ILabelModel} model The model instance to use. This should be the instance this instance has been obtained from. - * @param {yfiles.geometry.IOrientedRectangle} layout The anticipated layout for the label. - * @returns {yfiles.graph.ILabelModelParameter} A non-null parameter that can be used for the label to approximate the provided layout. + * @param label The label to find a parameter for. + * @param model The model instance to use. This should be the instance this instance has been obtained from. + * @param layout The anticipated layout for the label. + * @returns A non-null parameter that can be used for the label to approximate the provided layout. */ findBestParameter(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel,layout:yfiles.geometry.IOrientedRectangle):yfiles.graph.ILabelModelParameter; /** * Retrieves an enumerator over all candidates for a given label and model. - * @param {yfiles.graph.ILabel} label The label. - * @param {yfiles.graph.ILabelModel} model The model of the label. - * @returns {yfiles.collections.IEnumerable.} An enumerator over the candidates. The enumerator may be empty. + * @param label The label. + * @param model The model of the label. + * @returns An enumerator over the candidates. The enumerator may be empty. * @protected */ getCandidateParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; @@ -55446,10 +54582,10 @@ declare namespace system{ *

    * Null may be returned if an empty enumerable is passed. *

    - * @param {yfiles.graph.ILabel} label The label to find a parameter for. - * @param {yfiles.geometry.IOrientedRectangle} layout The anticipated layout for the label. - * @param {yfiles.collections.IEnumerable.} layoutParameters A set of parameters to choose from. - * @returns {yfiles.graph.ILabelModelParameter} A parameter that can be used for the label to approximate the provided layout. + * @param label The label to find a parameter for. + * @param layout The anticipated layout for the label. + * @param layoutParameters A set of parameters to choose from. + * @returns A parameter that can be used for the label to approximate the provided layout. */ selectBestParameter(label:yfiles.graph.ILabel,layout:yfiles.geometry.IOrientedRectangle,layoutParameters:yfiles.collections.IEnumerable):yfiles.graph.ILabelModelParameter; /** @@ -55474,9 +54610,9 @@ declare namespace system{ /** * Returns an enumerator over a set of possible {@link yfiles.graph.ILabelModelParameter} instances that can be used for the given * label and model. - * @param {yfiles.graph.ILabel} label The label instance to use. - * @param {yfiles.graph.ILabelModel} model The model to provide parameters for. - * @returns {yfiles.collections.IEnumerable.} A possibly empty enumerator over a set of label model parameters. + * @param label The label instance to use. + * @param model The model to provide parameters for. + * @returns A possibly empty enumerator over a set of label model parameters. * @abstract */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; @@ -55533,10 +54669,10 @@ declare namespace system{ *

    * Type parameter K: The key type for the mapper. * Type parameter V: The value type for the mapper. - * @param {yfiles.lang.Class} valueType The value type for the mapper. - * @param {yfiles.lang.Class} keyType The key type for the mapper. - * @param {Object} tag The tag to use. - * @param {yfiles.collections.IMapper.} mapper The mapper to register. + * @param valueType The value type for the mapper. + * @param keyType The key type for the mapper. + * @param tag The tag to use. + * @param mapper The mapper to register. * @template K,V * @abstract */ @@ -55549,9 +54685,9 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.ILabelLayoutDpKey.} tag The tag. - * @param {V} constant The value to yield during {@link yfiles.collections.IMapper.} reads. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param constant The value to yield during {@link } reads. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromDelegate * @template V */ @@ -55564,9 +54700,9 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.EdgeDpKey.} tag The tag. - * @param {V} constant The value to yield during {@link yfiles.collections.IMapper.} reads. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param constant The value to yield during {@link } reads. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromDelegate * @template V */ @@ -55579,9 +54715,9 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.NodeDpKey.} tag The tag. - * @param {V} constant The value to yield during {@link yfiles.collections.IMapper.} reads. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param constant The value to yield during {@link } reads. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromDelegate * @template V */ @@ -55593,9 +54729,9 @@ declare namespace system{ *

    * Type parameter K: The type of the keys of the mapper. * Type parameter V: The type of the values of the mapper. - * @param {Object} tag The tag. - * @param {V} constant The value to yield during {@link yfiles.collections.IMapper.} reads. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param constant The value to yield during {@link } reads. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromConstant * @template K,V */ @@ -55608,9 +54744,9 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.ILabelLayoutDpKey.} tag The tag. - * @param {function(yfiles.graph.ILabel): V} getter The getter delegate to which {@link yfiles.collections.IMapper.} reads will be delegated. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param getter The getter delegate to which {@link } reads will be delegated. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromDelegate * @template V */ @@ -55623,9 +54759,9 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.EdgeDpKey.} tag The tag. - * @param {function(yfiles.graph.IEdge): V} getter The getter delegate to which {@link yfiles.collections.IMapper.} reads will be delegated. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param getter The getter delegate to which {@link } reads will be delegated. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromDelegate * @template V */ @@ -55638,9 +54774,9 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.NodeDpKey.} tag The tag. - * @param {function(yfiles.graph.INode): V} getter The getter delegate to which {@link yfiles.collections.IMapper.} reads will be delegated. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param getter The getter delegate to which {@link } reads will be delegated. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromDelegate * @template V */ @@ -55652,9 +54788,9 @@ declare namespace system{ *

    * Type parameter K: The type of the keys of the mapper. * Type parameter V: The type of the values of the mapper. - * @param {Object} tag The tag. - * @param {function(K): V} getter The getter delegate to which {@link yfiles.collections.IMapper.} reads will be delegated. - * @returns {yfiles.collections.IMapper.} The newly created mapper instance. + * @param tag The tag. + * @param getter The getter delegate to which {@link } reads will be delegated. + * @returns The newly created mapper instance. * @see yfiles.collections.IMapper.#fromDelegate * @template K,V */ @@ -55666,8 +54802,8 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.EdgeDpKey.} tag The tag. - * @returns {yfiles.collections.Mapper.} The newly created mapper instance. + * @param tag The tag. + * @returns The newly created mapper instance. * @see yfiles.collections.Mapper. * @template V */ @@ -55679,8 +54815,8 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.ILabelLayoutDpKey.} tag The tag. - * @returns {yfiles.collections.Mapper.} The newly created mapper instance. + * @param tag The tag. + * @returns The newly created mapper instance. * @see yfiles.collections.Mapper. * @template V */ @@ -55692,8 +54828,8 @@ declare namespace system{ * tag, it will be replaced. *

    * Type parameter V: The type of the values of the mapper. - * @param {yfiles.algorithms.NodeDpKey.} tag The tag. - * @returns {yfiles.collections.Mapper.} The newly created mapper instance. + * @param tag The tag. + * @returns The newly created mapper instance. * @see yfiles.collections.Mapper. * @template V */ @@ -55705,8 +54841,8 @@ declare namespace system{ *

    * Type parameter K: The type of the keys of the mapper. * Type parameter V: The type of the values of the mapper. - * @param {Object} tag The tag. - * @returns {yfiles.collections.Mapper.} The newly created mapper instance. + * @param tag The tag. + * @returns The newly created mapper instance. * @see yfiles.collections.Mapper. * @template K,V */ @@ -55715,29 +54851,29 @@ declare namespace system{ * Returns a mapper that has previously been registered with this instance for the given tag. * Type parameter K: The key type for the mapper. * Type parameter V: The value type for the mapper. - * @param {Object} tag The tag to use to look up the mapper. - * @returns {yfiles.collections.IMapper.} The previously registered instance or null. + * @param tag The tag to use to look up the mapper. + * @returns The previously registered instance or null. * @template K,V * @abstract */ getMapper(tag:Object):yfiles.collections.IMapper; /** * Gets the mapper {@link yfiles.graph.MapperMetadata meta data} for the mapper that is registered using the tag. - * @param {Object} tag The tag. - * @returns {yfiles.graph.MapperMetadata} The meta data or null if there is no such mapper registered for the given tag. + * @param tag The tag. + * @returns The meta data or null if there is no such mapper registered for the given tag. * @abstract */ getMapperMetadata(tag:Object):yfiles.graph.MapperMetadata; /** * Removes a previously registered mapper for the given tag. - * @param {Object} tag The tag that has been used for registering the mapper. + * @param tag The tag that has been used for registering the mapper. * @abstract */ removeMapper(tag:Object):void; /** * Sets the mapper meta data for the mapper that has been {@link yfiles.graph.IMapperRegistry#addMapper registered} using the provided tag. - * @param {Object} tag The tag. - * @param {yfiles.graph.MapperMetadata} metadata The meta data to store with the mapper. + * @param tag The tag. + * @param metadata The meta data to store with the mapper. * @throws {Stubs.Exceptions.ArgumentError} If the {@link yfiles.graph.MapperMetadata#keyType} or {@link yfiles.graph.MapperMetadata#valueType} mismatch the mapper instance in the registry. * @abstract */ @@ -55824,7 +54960,7 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.INodeDefaults#style} property, if {@link yfiles.graph.INodeDefaults#shareStyleInstance} is enabled, but they might use more complicated * logic, too. *

    - * @returns {yfiles.styles.INodeStyle} The style to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.INodeDefaults#style} property, if {@link yfiles.graph.INodeDefaults#shareStyleInstance} is enabled. + * @returns The style to use, which for most implementations is either a {@link #clone clone} of or the {@link #style} property, if {@link #shareStyleInstance} is enabled. * @abstract */ getStyleInstance():yfiles.styles.INodeStyle; @@ -55863,7 +54999,8 @@ declare namespace system{ /** * Gets or sets the default node size. *

    - * The values of this size will be used by the CreateNode and CreateNode methods. + * The values of this size will be used by the {@link yfiles.graph.IGraph#createNodeAt} and {@link yfiles.graph.IGraph#createNodeAt} + * methods. *

    * @abstract * @type {yfiles.geometry.Size} @@ -55938,7 +55075,6 @@ declare namespace system{ *

    * Unlike {@link yfiles.graph.IPort#dynamicLocation} this does not return a dynamic point that always refers to the current location. *

    - * @returns The current port location. * @type {yfiles.geometry.Point} */ location?:yfiles.geometry.Point; @@ -56008,8 +55144,8 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IPortDefaults#locationParameter} property, if {@link yfiles.graph.IPortDefaults#shareLocationParameterInstance} is enabled, but they might use more complicated * logic, too. *

    - * @param {yfiles.graph.IPortOwner} owner The owner of the port that will be created. - * @returns {yfiles.graph.IPortLocationModelParameter} The parameter to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IPortDefaults#locationParameter} property, if {@link yfiles.graph.IPortDefaults#shareLocationParameterInstance} is enabled. + * @param owner The owner of the port that will be created. + * @returns The parameter to use, which for most implementations is either a {@link #clone clone} of or the {@link #locationParameter} property, if {@link #shareLocationParameterInstance} is enabled. * @abstract */ getLocationParameterInstance(owner:yfiles.graph.IPortOwner):yfiles.graph.IPortLocationModelParameter; @@ -56019,8 +55155,8 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IPortDefaults#style} property, if {@link yfiles.graph.IPortDefaults#shareStyleInstance} is enabled, but they might use more complicated * logic, too. *

    - * @param {yfiles.graph.IPortOwner} owner The owner of the port that will be created. - * @returns {yfiles.styles.IPortStyle} The style to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IPortDefaults#style} property, if {@link yfiles.graph.IPortDefaults#shareStyleInstance} is enabled. + * @param owner The owner of the port that will be created. + * @returns The style to use, which for most implementations is either a {@link #clone clone} of or the {@link #style} property, if {@link #shareStyleInstance} is enabled. * @abstract */ getStyleInstance(owner:yfiles.graph.IPortOwner):yfiles.styles.IPortStyle; @@ -56108,27 +55244,27 @@ declare namespace system{ /** * Factory method that creates a parameter for the given port that tries to match the provided location in absolute world * coordinates. - * @param {yfiles.graph.IPortOwner} owner The port owner that will own the port for which the parameter shall be created. - * @param {yfiles.geometry.Point} location The location in the world coordinate system that should be matched as best as possible. - * @returns {yfiles.graph.IPortLocationModelParameter} A new instance that can be used to describe the location of an {@link yfiles.graph.IPort} at the given owner. + * @param owner The port owner that will own the port for which the parameter shall be created. + * @param location The location in the world coordinate system that should be matched as best as possible. + * @returns A new instance that can be used to describe the location of an {@link } at the given owner. * @abstract */ createParameter(owner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point):yfiles.graph.IPortLocationModelParameter; /** * Provides a {@link yfiles.graph.ILookup lookup context} for the given combination of port and parameter. - * @param {yfiles.graph.IPort} port The port to use in the context. - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The parameter to use for the port in the context. - * @returns {yfiles.graph.ILookup} An implementation of the {@link yfiles.graph.ILookup} interface that can be used to query additional aspects of the + * @param port The port to use in the context. + * @param locationParameter The parameter to use for the port in the context. + * @returns An implementation of the {@link } interface that can be used to query additional aspects of the * port/parameter combination. * @abstract */ getContext(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.graph.ILookup; /** * Determines the location of the port for the given parameter. - * @param {yfiles.graph.IPort} port The port to determine the location for. - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter The parameter to use. The parameter can be expected to be created by this instance having the {@link yfiles.graph.IPortLocationModelParameter#model} property set to this + * @param port The port to determine the location for. + * @param locationParameter The parameter to use. The parameter can be expected to be created by this instance having the {@link #model} property set to this * instance.. - * @returns {yfiles.geometry.Point} The calculated location of the port. + * @returns The calculated location of the port. * @abstract */ getLocation(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.geometry.Point; @@ -56158,8 +55294,8 @@ declare namespace system{ * A parameter must not necessarily support all types of ports. This method returns whether it supports ports at the given * owner. *

    - * @param {yfiles.graph.IPortOwner} owner The port owner to test. - * @returns {boolean} true if this instance can be used for ports of the given port owner, false otherwise. + * @param owner The port owner to test. + * @returns true if this instance can be used for ports of the given port owner, false otherwise. * @abstract */ supports(owner:yfiles.graph.IPortOwner):boolean; @@ -56201,7 +55337,7 @@ declare namespace system{ *

    * This label model supports 5 positions inside of the layout's bounds. *

    - * @class yfiles.graph.InteriorStretchLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} */ @@ -56214,67 +55350,66 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.InteriorStretchLabelModel#insets} property on the created object. *

    - * @constructor */ constructor(options?:{insets?:yfiles.geometry.Insets}); /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates the parameter for the given position. - * @param {yfiles.graph.InteriorStretchLabelModelPosition} position The position. - * @returns {yfiles.graph.ILabelModelParameter} + * @param position The position. + * @returns */ createParameter(position:yfiles.graph.InteriorStretchLabelModelPosition):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * Returns the minimum size this model would require for the node owner of the label if the the given label was used with * the provided parameter. - * @param {yfiles.graph.ILabel} label The label to use. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use. - * @returns {yfiles.geometry.Size} The minimum size requirements for this label. + * @param label The label to use. + * @param layoutParameter The parameter to use. + * @returns The minimum size requirements for this label. */ getMinimumNodeSize(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.Size; /** * Returns the insets this model would require for the node owner of the label if the the given label was used with the * provided parameter. - * @param {yfiles.graph.ILabel} label The label to use. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use. - * @returns {yfiles.geometry.Insets} The insets rectangle. + * @param label The label to use. + * @param layoutParameter The parameter to use. + * @returns The insets rectangle. */ getNodeInsets(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.Insets; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} + * @param label + * @param model + * @returns */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56284,7 +55419,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56294,7 +55429,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56304,7 +55439,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56314,7 +55449,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instance's {@link yfiles.graph.InteriorStretchLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56372,7 +55507,7 @@ declare namespace system{ *

    * This label model supports nine positions inside of the layout's bounds. *

    - * @class yfiles.graph.InteriorLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} */ @@ -56385,67 +55520,66 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.InteriorLabelModel#insets} property on the created object. *

    - * @constructor */ constructor(options?:{insets?:yfiles.geometry.Insets}); /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates the parameter for the given position. - * @param {yfiles.graph.InteriorLabelModelPosition} position The position. - * @returns {yfiles.graph.ILabelModelParameter} + * @param position The position. + * @returns */ createParameter(position:yfiles.graph.InteriorLabelModelPosition):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * Returns the minimum size this model would require for the node owner of the label if the the given label was used with * the provided parameter. - * @param {yfiles.graph.ILabel} label The label to use. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use. - * @returns {yfiles.geometry.Size} The minimum size requirements for this label. + * @param label The label to use. + * @param layoutParameter The parameter to use. + * @returns The minimum size requirements for this label. */ getMinimumNodeSize(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.Size; /** * Returns the insets this model would require for the node owner of the label if the the given label was used with the * provided parameter. - * @param {yfiles.graph.ILabel} label The label to use. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to use. - * @returns {yfiles.geometry.Insets} The insets rectangle. + * @param label The label to use. + * @param layoutParameter The parameter to use. + * @returns The insets rectangle. */ getNodeInsets(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.Insets; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} + * @param label + * @param model + * @returns */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56455,7 +55589,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56465,7 +55599,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56475,7 +55609,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56485,7 +55619,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56495,7 +55629,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56505,7 +55639,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56515,7 +55649,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56525,7 +55659,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.InteriorLabelModel#insets} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56544,32 +55678,30 @@ declare namespace system{ * The meta data that is associated with {@link yfiles.collections.IMapper.}s in a {@link yfiles.graph.IMapperRegistry}. * @see yfiles.graph.IMapperRegistry#getMapperMetadata * @see yfiles.graph.IMapperRegistry#setMapperMetadata - * @class yfiles.graph.MapperMetadata + * @class */ export interface MapperMetadata extends Object{} export class MapperMetadata { /** * Initializes a new instance of the {@link yfiles.graph.MapperMetadata} class. - * @param {yfiles.lang.Class} keyType Type of the keys. - * @param {yfiles.lang.Class} valueType Type of the values. - * @constructor + * @param keyType Type of the keys. + * @param valueType Type of the values. */ constructor(keyType:yfiles.lang.Class,valueType:yfiles.lang.Class); /** * Initializes a new instance of the {@link yfiles.graph.MapperMetadata} from the given instance class. - * @param {yfiles.graph.MapperMetadata} metadata The metadata to copy key and value type from. + * @param metadata The metadata to copy key and value type from. * @protected - * @constructor */ constructor(metadata:yfiles.graph.MapperMetadata); /** * Creates an instance for the specified mapper. * Type parameter TKey: The type of the keys. * Type parameter TValue: The type of the values. - * @param {yfiles.lang.Class} valueType The type of the values. - * @param {yfiles.lang.Class} keyType The type of the keys. - * @param {yfiles.collections.IMapper.} mapper The mapper instance to create the metadata for. - * @returns {yfiles.graph.MapperMetadata} An instance that uses the {@link yfiles.graph.MapperMetadata#keyType} and {@link yfiles.graph.MapperMetadata#valueType} of the mapper. + * @param valueType The type of the values. + * @param keyType The type of the keys. + * @param mapper The mapper instance to create the metadata for. + * @returns An instance that uses the {@link #keyType} and {@link #valueType} of the mapper. * @template TKey,TValue * @static */ @@ -56588,7 +55720,7 @@ declare namespace system{ } /** * A simple {@link yfiles.collections.Map.}-based implementation of the {@link yfiles.graph.IMapperRegistry} interface. - * @class yfiles.graph.MapperRegistry + * @class * @implements {yfiles.graph.IMapperRegistry} * @final */ @@ -56599,10 +55731,10 @@ declare namespace system{ * * Type parameter K. * Type parameter V. - * @param {yfiles.lang.Class} valueType - * @param {yfiles.lang.Class} keyType - * @param {Object} tag - * @param {yfiles.collections.IMapper.} mapper + * @param valueType + * @param keyType + * @param tag + * @param mapper * @template K,V */ addMapper(keyType:yfiles.lang.Class,valueType:yfiles.lang.Class,tag:Object,mapper:yfiles.collections.IMapper):void; @@ -56610,26 +55742,26 @@ declare namespace system{ * * Type parameter K. * Type parameter V. - * @param {Object} tag - * @returns {yfiles.collections.IMapper.} + * @param tag + * @returns * @template K,V */ getMapper(tag:Object):yfiles.collections.IMapper; /** * - * @param {Object} tag - * @returns {yfiles.graph.MapperMetadata} + * @param tag + * @returns */ getMapperMetadata(tag:Object):yfiles.graph.MapperMetadata; /** * - * @param {Object} tag + * @param tag */ removeMapper(tag:Object):void; /** * - * @param {Object} tag - * @param {yfiles.graph.MapperMetadata} metadata + * @param tag + * @param metadata */ setMapperMetadata(tag:Object,metadata:yfiles.graph.MapperMetadata):void; /** @@ -56683,7 +55815,7 @@ declare namespace system{ * The possible positions are near the source port, at the center of the edge, or near the target port, each above, below, * or centered on the edge. The distance to the edge and the absolute angular orientation of the label can be specified. *

    - * @class yfiles.graph.NinePositionsEdgeLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} */ @@ -56691,9 +55823,8 @@ declare namespace system{ export class NinePositionsEdgeLabelModel { /** * Initializes a new instance of the {@link yfiles.graph.NinePositionsEdgeLabelModel} class. - * @param {number} distance The distance. - * @param {number} angle The angle. - * @constructor + * @param distance The distance. + * @param angle The angle. */ constructor(distance:number,angle:number); /** @@ -56707,51 +55838,50 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} property on the created object. *

    - * @constructor */ constructor(options?:{angle?:number,distance?:number}); /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Create a model parameter for the specified position - * @param {yfiles.graph.NinePositionsEdgeLabelModelPosition} position The position for this parameter - * @returns {yfiles.graph.ILabelModelParameter} a model parameter for the specified position + * @param position The position for this parameter + * @returns a model parameter for the specified position */ createParameter(position:yfiles.graph.NinePositionsEdgeLabelModelPosition):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} + * @param label + * @param model + * @returns */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56761,7 +55891,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56771,7 +55901,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56781,7 +55911,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56791,7 +55921,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56801,7 +55931,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56811,7 +55941,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56821,7 +55951,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56831,7 +55961,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.NinePositionsEdgeLabelModel#angle} or {@link yfiles.graph.NinePositionsEdgeLabelModel#distance} properties will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56860,7 +55990,7 @@ declare namespace system{ *

    * The label will be placed centered on top or below the node's {@link yfiles.graph.INode#layout} using a specifiable {@link yfiles.graph.SandwichLabelModel#yOffset}. *

    - * @class yfiles.graph.SandwichLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterProvider} */ @@ -56873,55 +56003,54 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.SandwichLabelModel#yOffset} property on the created object. *

    - * @constructor */ constructor(options?:{yOffset?:number}); /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates a parameter for the north side of the node. - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createNorthParameter():yfiles.graph.ILabelModelParameter; /** * Creates a parameter for the south side of the node. - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createSouthParameter():yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} + * @param label + * @param model + * @returns */ getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.SandwichLabelModel#yOffset} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.SandwichLabelModel#yOffset} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56931,7 +56060,7 @@ declare namespace system{ /** * A convenience parameter instance that can be shared between label instances. *

    - * Trying to change that instances' {@link yfiles.graph.SandwichLabelModel#yOffset} will raise an {@link Stubs.Exceptions.InvalidOperationError}. + * Trying to change that instances' {@link yfiles.graph.SandwichLabelModel#yOffset} will raise an {@link yfiles.lang.Exception}. *

    * @const * @static @@ -56948,7 +56077,7 @@ declare namespace system{ } /** * A port location model that places the port on a certain edge segment at a specified ratio. - * @class yfiles.graph.SegmentRatioPortLocationModel + * @class * @implements {yfiles.graph.IPortLocationModel} * @final */ @@ -56956,44 +56085,44 @@ declare namespace system{ export class SegmentRatioPortLocationModel { /** * Creates the a new parameter for the specified segment index and ratio. - * @param {number} ratio The ratio for the segment, with 0 being at the start of the segment and 1 at the end. - * @param {number} segmentIndex The index of the segment. - * @returns {yfiles.graph.IPortLocationModelParameter} A parameter for the given ratio and segment. + * @param ratio The ratio for the segment, with 0 being at the start of the segment and 1 at the end. + * @param segmentIndex The index of the segment. + * @returns A parameter for the given ratio and segment. */ createFromSource(ratio:number,segmentIndex:number):yfiles.graph.IPortLocationModelParameter; /** * Creates the a new parameter for the specified segment index counted from the target end of the edge and the provided * ratio. - * @param {number} ratio The ratio for the segment, with 0 being at the start of the segment and 1 at the end. - * @param {number} segmentIndex The index of the segment counted from the target end. - * @returns {yfiles.graph.IPortLocationModelParameter} A parameter for the given ratio and segment. + * @param ratio The ratio for the segment, with 0 being at the start of the segment and 1 at the end. + * @param segmentIndex The index of the segment counted from the target end. + * @returns A parameter for the given ratio and segment. */ createFromTarget(ratio:number,segmentIndex:number):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.graph.IPortOwner} owner - * @param {yfiles.geometry.Point} location - * @returns {yfiles.graph.IPortLocationModelParameter} + * @param owner + * @param location + * @returns */ createParameter(owner:yfiles.graph.IPortOwner,location:yfiles.geometry.Point):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.graph.ILookup} + * @param port + * @param locationParameter + * @returns */ getContext(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.graph.ILookup; /** * - * @param {yfiles.graph.IPort} port - * @param {yfiles.graph.IPortLocationModelParameter} locationParameter - * @returns {yfiles.geometry.Point} + * @param port + * @param locationParameter + * @returns */ getLocation(port:yfiles.graph.IPort,locationParameter:yfiles.graph.IPortLocationModelParameter):yfiles.geometry.Point; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -57026,7 +56155,7 @@ declare namespace system{ * During movements, labels with this model snap to noteable positions if the {@link yfiles.input.MoveLabelInputMode} provides a {@link yfiles.input.LabelSnapContext} * that is enabled and has a suitable configuration. *

    - * @class yfiles.graph.SmartEdgeLabelModel + * @class * @implements {yfiles.graph.ILabelModel} * @implements {yfiles.graph.ILabelModelParameterFinder} */ @@ -57043,66 +56172,65 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.SmartEdgeLabelModel#autoRotation} property on the created object. *

    - * @constructor */ constructor(options?:{angle?:number,autoRotation?:boolean}); /** * - * @returns {yfiles.graph.ILabelModelParameter} + * @returns */ createDefaultParameter():yfiles.graph.ILabelModelParameter; /** * Creates a parameter that measures the provided segment index from the source side of the edge path. - * @param {number} segmentIndex The zero-based index of the segment beginning from the source side. - * @param {number} distance The distance between the label's box and the edge's path. - * @param {number} segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the source side of the + * @param segmentIndex The zero-based index of the segment beginning from the source side. + * @param distance The distance between the label's box and the edge's path. + * @param segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the source side of the * segment, a ratio of 1.0 at the target side. Ratios lesser than 0.0 or greater than 1.0 will be interpreted as absolute * values in world coordinates. - * @returns {yfiles.graph.ILabelModelParameter} A label parameter that describes the provided parameters for this model instance. + * @returns A label parameter that describes the provided parameters for this model instance. */ createParameterFromSource(segmentIndex:number,distance:number,segmentRatio:number):yfiles.graph.ILabelModelParameter; /** * Creates a parameter that measures the provided segment index from the target side of the edge path. - * @param {number} segmentIndex The zero-based index of the segment beginning from the target side. - * @param {number} distance The distance between the label's box and the edge's path. - * @param {number} segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the target side of the + * @param segmentIndex The zero-based index of the segment beginning from the target side. + * @param distance The distance between the label's box and the edge's path. + * @param segmentRatio The ratio at which to place the label at the segment. A ratio of 0.0 will place the label at the target side of the * segment, a ratio of 1.0 at the source side. Ratios lesser than 0.0 or greater than 1.0 will be interpreted as absolute * values in world coordinates. - * @returns {yfiles.graph.ILabelModelParameter} A label parameter that describes the provided parameters for this model instance. + * @returns A label parameter that describes the provided parameters for this model instance. */ createParameterFromTarget(segmentIndex:number,distance:number,segmentRatio:number):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @param {yfiles.geometry.IOrientedRectangle} layout - * @returns {yfiles.graph.ILabelModelParameter} + * @param label + * @param model + * @param layout + * @returns */ findBestParameter(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel,layout:yfiles.geometry.IOrientedRectangle):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} + * @param label + * @param layoutParameter + * @returns */ getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; /** * Gets the distance from the edge path described by the specified parameter. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to get the edge path distance for. - * @returns {number} The distance from the edge path + * @param layoutParameter The parameter to get the edge path distance for. + * @returns The distance from the edge path */ getDistance(layoutParameter:yfiles.graph.ILabelModelParameter):number; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.geometry.IOrientedRectangle} + * @param label + * @param layoutParameter + * @returns */ getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -57151,7 +56279,7 @@ declare namespace system{ } /** * A canonic implementation of the {@link yfiles.graph.IPortDefaults} interface. - * @class yfiles.graph.PortDefaults + * @class * @implements {yfiles.graph.IPortDefaults} */ export interface PortDefaults extends Object,yfiles.graph.IPortDefaults{} @@ -57164,7 +56292,6 @@ declare namespace system{ * @param {boolean} [options.shareLocationParameterInstance=null] Sets the shareLocationParameterInstance property. * @param {yfiles.styles.IPortStyle} [options.style=null] Sets the style property. * @param {boolean} [options.shareStyleInstance=null] Sets the shareStyleInstance property. - * @constructor */ constructor(options?:{autoCleanup?:boolean,locationParameter?:yfiles.graph.IPortLocationModelParameter,shareLocationParameterInstance?:boolean,style?:yfiles.styles.IPortStyle,shareStyleInstance?:boolean}); /** @@ -57173,19 +56300,19 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.PortDefaults#style} property, if {@link yfiles.graph.PortDefaults#shareStyleInstance} is enabled, but they might use more complicated * logic, too. *

    - * @returns {yfiles.styles.IPortStyle} The style to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.PortDefaults#style} property, if {@link yfiles.graph.PortDefaults#shareStyleInstance} is enabled. + * @returns The style to use, which for most implementations is either a {@link #clone clone} of or the {@link #style} property, if {@link #shareStyleInstance} is enabled. */ GetDefaultStyleInstance():yfiles.styles.IPortStyle; /** * - * @param {yfiles.graph.IPortOwner} owner - * @returns {yfiles.graph.IPortLocationModelParameter} + * @param owner + * @returns */ getLocationParameterInstance(owner:yfiles.graph.IPortOwner):yfiles.graph.IPortLocationModelParameter; /** * - * @param {yfiles.graph.IPortOwner} owner - * @returns {yfiles.styles.IPortStyle} + * @param owner + * @returns */ getStyleInstance(owner:yfiles.graph.IPortOwner):yfiles.styles.IPortStyle; /** @@ -57220,7 +56347,7 @@ declare namespace system{ } /** * A canonic implementation of the {@link yfiles.graph.INodeDefaults} interface. - * @class yfiles.graph.NodeDefaults + * @class * @implements {yfiles.graph.INodeDefaults} */ export interface NodeDefaults extends Object,yfiles.graph.INodeDefaults{} @@ -57233,12 +56360,11 @@ declare namespace system{ * @param {yfiles.graph.IPortDefaults} [options.ports=null] Sets the ports property. * @param {yfiles.styles.INodeStyle} [options.style=null] Sets the style property. * @param {boolean} [options.shareStyleInstance=null] Sets the shareStyleInstance property. - * @constructor */ constructor(options?:{size?:yfiles.geometry.Size,labels?:yfiles.graph.ILabelDefaults,ports?:yfiles.graph.IPortDefaults,style?:yfiles.styles.INodeStyle,shareStyleInstance?:boolean}); /** * - * @returns {yfiles.styles.INodeStyle} + * @returns */ getStyleInstance():yfiles.styles.INodeStyle; /** @@ -57271,7 +56397,7 @@ declare namespace system{ } /** * A canonic implementation of the {@link yfiles.graph.IEdgeDefaults} interface - * @class yfiles.graph.EdgeDefaults + * @class * @implements {yfiles.graph.IEdgeDefaults} */ export interface EdgeDefaults extends Object,yfiles.graph.IEdgeDefaults{} @@ -57283,12 +56409,11 @@ declare namespace system{ * @param {yfiles.graph.IPortDefaults} [options.ports=null] Sets the ports property. * @param {yfiles.styles.IEdgeStyle} [options.style=null] Sets the style property. * @param {boolean} [options.shareStyleInstance=null] Sets the shareStyleInstance property. - * @constructor */ constructor(options?:{labels?:yfiles.graph.ILabelDefaults,ports?:yfiles.graph.IPortDefaults,style?:yfiles.styles.IEdgeStyle,shareStyleInstance?:boolean}); /** * - * @returns {yfiles.styles.IEdgeStyle} + * @returns */ getStyleInstance():yfiles.styles.IEdgeStyle; /** @@ -57316,7 +56441,7 @@ declare namespace system{ } /** * A canonic implementation of the {@link yfiles.graph.ILabelDefaults} interface - * @class yfiles.graph.LabelDefaults + * @class * @implements {yfiles.graph.ILabelDefaults} */ export interface LabelDefaults extends Object,yfiles.graph.ILabelDefaults{} @@ -57329,19 +56454,18 @@ declare namespace system{ * @param {yfiles.graph.ILabelModelParameter} [options.layoutParameter=null] Sets the layoutParameter property. * @param {boolean} [options.shareStyleInstance=null] Sets the shareStyleInstance property. * @param {yfiles.styles.ILabelStyle} [options.style=null] Sets the style property. - * @constructor */ constructor(options?:{autoAdjustPreferredSize?:boolean,shareLayoutParameterInstance?:boolean,layoutParameter?:yfiles.graph.ILabelModelParameter,shareStyleInstance?:boolean,style?:yfiles.styles.ILabelStyle}); /** * - * @param {yfiles.graph.ILabelOwner} owner - * @returns {yfiles.graph.ILabelModelParameter} + * @param owner + * @returns */ getLayoutParameterInstance(owner:yfiles.graph.ILabelOwner):yfiles.graph.ILabelModelParameter; /** * - * @param {yfiles.graph.ILabelOwner} owner - * @returns {yfiles.styles.ILabelStyle} + * @param owner + * @returns */ getStyleInstance(owner:yfiles.graph.ILabelOwner):yfiles.styles.ILabelStyle; /** @@ -57381,9 +56505,9 @@ declare namespace system{ export interface IGroupBoundsCalculator extends Object{ /** * Calculates the bounds of the {@link yfiles.graph.INode#layout} for the given groupNode that is a group node in the graph. - * @param {yfiles.graph.IGraph} graph The graph which holds the groupNode. - * @param {yfiles.graph.INode} groupNode The node to calculate the bounds for. - * @returns {yfiles.geometry.Rect} The minimum bounds to use for the given group node. + * @param graph The graph which holds the groupNode. + * @param groupNode The node to calculate the bounds for. + * @returns The minimum bounds to use for the given group node. * @abstract */ calculateBounds(graph:yfiles.graph.IGraph,groupNode:yfiles.graph.INode):yfiles.geometry.Rect; @@ -57393,120 +56517,1093 @@ declare namespace system{ isInstance(o:Object):boolean; }; /** - * Contains less frequently used methods for analyzing and managing grouped graphs. + * A group of {@link yfiles.graph.IUndoUnit}s that are undone/redone as a single unit. *

    - * An instance of this class which is configured for a given {@link yfiles.graph.IGraph} instance can be obtained via {@link yfiles.graph.IGraph#groupingSupport}. + * Clients can use this class to build an {@link yfiles.graph.IUndoUnit} that groups together multiple {@link yfiles.graph.IUndoUnit}s. The + * {@link yfiles.graph.IUndoUnit}s added to this unit are undone/redone in the order in which they were added. This implementation + * will try to {@link yfiles.graph.IUndoUnit#tryMergeUnit merge} or {@link yfiles.graph.IUndoUnit#tryReplaceUnit replace} units that are {@link yfiles.graph.CompositeUndoUnit#add added}. *

    - * @class yfiles.graph.GroupingSupport + * @class + * @implements {yfiles.graph.IUndoUnit} */ - export interface GroupingSupport extends Object{} - export class GroupingSupport { + export interface CompositeUndoUnit extends Object,yfiles.graph.IUndoUnit{} + export class CompositeUndoUnit { /** - * Creates a new instance which operates on the given graph. - * @param {yfiles.graph.IGraph} graph The graph to operate on. - * @constructor + * Creates a new instance using the provided names. + * @param [undoName=null] + * @param [redoName=null] */ - constructor(graph:yfiles.graph.IGraph); + constructor(undoName?:string,redoName?:string); /** - * Calculates the minimum area to enclose by the given group node with respect to its {@link yfiles.graph.IGroupBoundsCalculator}. - * @param {yfiles.graph.INode} groupNode The group node to calculate the minimum enclosed area of. - * @returns {yfiles.geometry.Rect} The area to enclose for the given group node. This is {@link yfiles.geometry.Rect#EMPTY} if the node is not a group node, or if - * it hasn't any children. + * Creates a new instance using the provided names. + * @param {Object} options The parameters to pass. + * @param [options.undoName=null] + * @param [options.redoName=null] */ - calculateMinimumEnclosedArea(groupNode:yfiles.graph.INode):yfiles.geometry.Rect; + constructor(options:{undoName?:string,redoName?:string}); /** - * Enlarges all group nodes in the graph in an interactive scenario, so that the {@link yfiles.graph.GroupingSupport#calculateMinimumEnclosedArea minimum enclosed area} is respected. + * Adds a new {@link yfiles.graph.IUndoUnit} to the queue. + * @param unit The unit of work to add. + */ + add(unit:yfiles.graph.IUndoUnit):void; + /** + * Determines whether a call to {@link yfiles.graph.CompositeUndoUnit#redo} can be made. + * @returns + */ + canRedo():boolean; + /** + * Determines whether a call to {@link yfiles.graph.CompositeUndoUnit#undo} can be made. + * @returns + */ + canUndo():boolean; + /** + * Clears the internal collection of units. + */ + clear():void; + /** + * Disposes this unit and all of its contents. *

    - * This method should be used in an interactive editing scenario. It records an {@link yfiles.graph.ICompoundEdit} to support - * undoability and uses the {@link yfiles.input.IReshapeHandler} for the resizing of the nodes. That way, e.g. orthogonally edited - * edges will be properly reshaped. + * This unit cannot be used anymore after this has been invoked. *

    - * @param {yfiles.input.IInputModeContext} context The context to use for the {@link yfiles.input.IReshapeHandler}s. - * @see yfiles.graph.GroupingSupport#enlargeGroupNode */ - enlargeAllGroupNodes(context:yfiles.input.IInputModeContext):void; + dispose():void; /** - * Enlarges all group nodes in the graph so that the {@link yfiles.graph.GroupingSupport#calculateMinimumEnclosedArea minimum enclosed area} is respected. - * @see yfiles.graph.GroupingSupport#enlargeGroupNode + * Redoes the next {@link yfiles.graph.IUndoUnit}. + * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. + * @throws {yfiles.lang.Exception} If {@link yfiles.graph.CompositeUndoUnit#canRedo} would yield false. */ - enlargeAllGroupNodes():void; + redo():void; /** - * Enlarges the group nodes in an interactive scenario, using {@link yfiles.input.IReshapeHandler} implementations of the group - * nodes to perform the actual resizing. + * Tries to remove a given unit from this compound unit. *

    - * This method should be used in an interactive editing scenario. It records an {@link yfiles.graph.ICompoundEdit} to support - * undoability and uses the {@link yfiles.input.IReshapeHandler} for the resizing of the nodes. That way, e.g. orthogonally edited - * edges will be properly reshaped. + * This method will throw an exception if this unit has been undone or an undo or redo is in progress or this unit has + * already been disposed. This method will not automatically {@link yfiles.graph.IUndoUnit#dispose Dispose} removed units. *

    - * @param {yfiles.input.IInputModeContext} context The context to use for the {@link yfiles.input.IReshapeHandler}s. - * @param {yfiles.graph.INode} node The node to enlarge appropriately. - * @param {boolean} ancestors if set to true ancestors the ancestor group nodes will be adjusted, too, if necessary. - * @see yfiles.input.IReshapeHandler + * @param unit The unit to remove. + * @returns true iff the unit has been removed from this instance. */ - enlargeGroupNode(context:yfiles.input.IInputModeContext,node:yfiles.graph.INode,ancestors:boolean):void; + removeUnit(unit:yfiles.graph.IUndoUnit):boolean; /** - * Enlarges the given group node to ensure that the {@link yfiles.graph.GroupingSupport#calculateMinimumEnclosedArea minimum enclosed} area is inside of its bounds. + * Undoes the next {@link yfiles.graph.IUndoUnit}. + * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. + * @throws {yfiles.lang.Exception} If {@link yfiles.graph.CompositeUndoUnit#canUndo} would yield false. + */ + undo():void; + /** + * Yields the number of units that are contained in this compound unit. + * @type {number} + */ + count:number; + /** + * Returns the current redo name. + * @type {string} + */ + redoName:string; + /** + * Returns the current redo name. + * @type {string} + */ + undoName:string; + /** + * Determines whether this instance has been {@link yfiles.graph.CompositeUndoUnit#dispose disposed.} *

    - * This method can be used to resize a group node and all of its parent group nodes to fully contain its children, e.g. - * after a child node has changed its bounds. Note that this method will only enlarge the bounds of the group nodes, it - * will never reduce the size of a group node. + * An instance that has been disposed cannot be {@link yfiles.graph.CompositeUndoUnit#undo undone} or {@link yfiles.graph.CompositeUndoUnit#redo redone}. *

    - * @param {yfiles.graph.INode} groupNode The group node to resize. - * @param {boolean} ancestors if set to true all ancestor group nodes will be resized, too, if necessary - * @see yfiles.graph.GroupingSupport#enlargeGroupNode + * @type {boolean} */ - enlargeGroupNode(groupNode:yfiles.graph.INode,ancestors:boolean):void; + disposed:boolean; + static $class:yfiles.lang.Class; + } + /** + * This interface is a means to bracket several + * {@link yfiles.graph.IUndoUnit}s, that is a collection of units that are treated as one (for example they are always undone or + * redone as a single unit). + *

    + * {@link yfiles.graph.ICompoundEdit}s have two states: active and settled. Whenever an {@link yfiles.graph.ICompoundEdit} is retrieved from the {@link yfiles.graph.UndoEngine} + * or the graph instance, it automatically is active. While an edit is in the active state, it gathers {@link yfiles.graph.IUndoUnit}s until + * the {@link yfiles.graph.ICompoundEdit#commit} or {@link yfiles.graph.ICompoundEdit#cancel} methods are called. Calling the {@link yfiles.graph.ICompoundEdit#commit} + * method commits all gathered {@link yfiles.graph.IUndoUnit}s to the {@link yfiles.graph.UndoEngine}, while canceling will {@link yfiles.graph.IUndoUnit#dispose dispose} them. + * Calling either method will put the edit in the settled state. In this state, the edit does not gather units anymore and is not + * reusable. + *

    + *

    + * {@link yfiles.graph.ICompoundEdit}s can also be nested, in this case the changes of the inner edit are not committed directly to + * the {@link yfiles.graph.UndoEngine} but to the outer edit. Only when the outer edit is committed, the units are committed to the + * {@link yfiles.graph.UndoEngine}. + *

    + * @see yfiles.graph.UndoEngine + * @see yfiles.graph.IUndoUnit + * @interface + */ + export interface ICompoundEdit extends Object{ /** - * Returns all descendants of the provided node that are part of the grouped graph. + * This method cancels the compound editing process. *

    - * The enumeration will be top down, i.e. all of a node's ancestors will be enumerated before the respective node. + * The recorded {@link yfiles.graph.IUndoUnit}s are {@link yfiles.graph.IUndoUnit#dispose disposed} and the edit is not usable anymore. *

    - * @param {yfiles.graph.INode} node The root node to get the descendants from. - * @returns {yfiles.collections.IEnumerable.} An enumeration of the children of the node at the time of this invocation in reverse DFS prefix order. + * @abstract */ - getDescendants(node:yfiles.graph.INode):yfiles.collections.IEnumerable; + cancel():void; /** - * Returns all descendants of the provided node that are part of the grouped graph. + * This method commits the compound editing process. *

    - * The enumeration will be bottom up, i.e. all of a node's children will be enumerated before the respective node. + * The {@link yfiles.graph.IUndoUnit}s are enqueued into the corresponding {@link yfiles.graph.UndoEngine} instance and the edit is not + * usable anymore. *

    - * @param {yfiles.graph.INode} node The root node to get the descendants from. - * @returns {yfiles.collections.IEnumerable.} An enumeration of the children of the node at the time of this invocation in DFS postfix order. + * @abstract */ - getDescendantsBottomUp(node:yfiles.graph.INode):yfiles.collections.IEnumerable; + commit():void; + } + var ICompoundEdit:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * The basic lookup interface that allows for retrieving implementations for different aspects of the current instance. + *

    + * The lookup idiom allows for dynamically providing, adding, changing, and removing implementation aspects of an instance + * that would not be possible to achieve using ordinary object oriented methods. + *

    + * @interface + */ + export interface ILookup extends Object{ /** - * Determines the nearest common ancestor of the provided nodes in the graph. - * @param {...yfiles.graph.INode} nodes The nodes to find the nearest common ancestor of. - * @returns {yfiles.graph.INode} - */ - getNearestCommonAncestor(...nodes:yfiles.graph.INode[]):yfiles.graph.INode; - /** - * Determines the nearest common ancestor of the provided nodes in the graph. - * @param {yfiles.collections.IEnumerable.} nodes The nodes to find the nearest common ancestor of. - * @returns {yfiles.graph.INode} - */ - getNearestCommonAncestor(nodes:yfiles.collections.IEnumerable):yfiles.graph.INode; - /** - * Gets the path to root traversing all {@link yfiles.graph.IGraph#getParent parents} of the given item. - * @param {yfiles.graph.INode} node The node to start. - * @returns {yfiles.collections.IList.} A list that includes the node but not the root, unless they are identical and all parents in between them. - */ - getPathToRoot(node:yfiles.graph.INode):yfiles.collections.IList; - /** - * Whether there are group nodes in the graph. + * Returns an instance that implements the given type or null. *

    - * This methods considers all {@link yfiles.graph.IGraph#isGroupNode group} nodes with {@link yfiles.graph.IGraph#getChildren children} as group nodes. + * Typically, this method will be called in order to obtain a different view or aspect of the current instance. This is + * quite similar to casting or using a super type or interface of this instance, but is not limited to inheritance or + * compile time constraints. An instance implementing this method is not required to return non-null implementations for + * the types, nor does it have to return the same instance any time. Also it depends on the type and context whether the + * instance returned stays up to date or needs to be reobtained for subsequent use. *

    - * @returns {boolean} true if there are {@link yfiles.graph.IGraph#isGroupNode group} nodes with {@link yfiles.graph.IGraph#getChildren children}. + * @param type the type for which an instance shall be returned + * @returns an instance that is assignable to type or null + * @abstract */ - hasGroupNodes():boolean; + lookup(type:yfiles.lang.Class):Object; + } + var ILookup:{ /** - * Determines whether ancestor is an ancestor of node in the grouped graph. - * @param {yfiles.graph.INode} node The node to check. - * @param {yfiles.graph.INode} ancestor The ancestor to check. - * @returns {boolean} Whether ancestor is an ancestor of node. + * Creates a lookup implementation that wraps an existing ILookup instance using an additional lookup implementations. + *

    + * For each lookup call that the additionalLookup would yield null, the basicLookup will be queried instead. + *

    + * @param basicLookup the fallback lookup implementation + * @param additionalLookup the lookup that has precedence over the fallback + * @returns an implementation that decorates the first with the latter + * @static */ - isDescendant(node:yfiles.graph.INode,ancestor:yfiles.graph.INode):boolean; + createCascadingLookup?(basicLookup:yfiles.graph.ILookup,additionalLookup:yfiles.graph.ILookup):yfiles.graph.ILookup; + /** + * Creates a dynamic lookup implementation that for each type that the given subject can be assigned to yields that + * subject. + * @param subject the subject to yield if it is assignable to the type in the lookup query + * @returns an instance that will either yield subject or null + * @static + */ + createDynamicLookup?(subject:Object):yfiles.graph.ILookup; + /** + * Creates a simple mutable {@link yfiles.graph.ILookup} implementation that is backed by an {@link yfiles.collections.IMap.}. + *

    + * The {@link yfiles.graph.ILookup#lookup lookup} method uses the specified type as key when delegating to the backingDictionary. + *

    + * @param backingDictionary The backing {@link } that is used in the {@link #lookup lookup} calls. + * @returns A simple mutable {@link } implementation that is backed by a dictionary. + * @static + */ + createMapLookup?(backingDictionary:yfiles.collections.Map):yfiles.graph.ILookup; + /** + * Creates a simple lookup implementation that yields subject if type is queried. + * @param subject the subject to yield + * @param type the type that should yield the subject + * @returns an ILookup implementation + * @static + */ + createSingleLookup?(subject:Object,type:yfiles.lang.Class):yfiles.graph.ILookup; + /** + * An ILookup instance that always returns null. + * @const + * @static + * @type {yfiles.graph.ILookup} + */ + EMPTY?:yfiles.graph.ILookup; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An interface for instances that can provide a {@link yfiles.graph.ILookup} capabilities for a given object. + *

    + * This is useful in the case where lookup functionality is not intrinsic to an item or where an existing object cannot + * implement the interface or when an item needs to be decorated externally with new lookup functionality. + *

    + * @see yfiles.graph.ILookup + * @interface + */ + export interface IContextLookup extends Object{ + /** + * Tries to create or retrieve an implementation of the given type for a given item. + * @param item the item to lookup a type for + * @param type the type to look up + * @returns an implementation or null + * @see yfiles.graph.ILookup#lookup + * @abstract + */ + contextLookup(item:Object,type:yfiles.lang.Class):Object; + } + var IContextLookup:{ + /** + * An ILookupContext instance that always returns null. + * @const + * @static + * @type {yfiles.graph.IContextLookup} + */ + EMPTY_CONTEXT_LOOKUP?:yfiles.graph.IContextLookup; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An interface for instances that can be used to chain lookup operations. + *

    + * Implementations will perform the lookup in the {@link yfiles.graph.IContextLookup#contextLookup} method and delegate to the next + * implementation in the chain if they cannot satisfy the request. + *

    + * @interface + * @implements {yfiles.graph.IContextLookup} + */ + export interface IContextLookupChainLink extends Object,yfiles.graph.IContextLookup{ + /** + * This method is called by the framework to register the fallback lookup implementation that should be used during a call + * to {@link yfiles.graph.IContextLookup#contextLookup}. + *

    + * If the implementation cannot satisfy the query, it will use the provided context as a fallback. Note that + * implementations can also use the results returned by the next lookup and decorate it appropriately. + *

    + * @param next The context to use as a fallback. + * @abstract + */ + setNext(next:yfiles.graph.IContextLookup):void; + } + var IContextLookupChainLink:{ + /** + * Factory method for a lookup chain element that simply adds an entry to a lookup chain. + * @param type The type to add to the lookup. + * @param instance The instance to return if the type is being looked up. + * @returns An instance that can be used in a lookup chain. + * @static + */ + addingLookupChainLink?(type:yfiles.lang.Class,instance:Object):yfiles.graph.IContextLookupChainLink; + /** + * Factory method for a lookup chain element that adds an {@link yfiles.graph.ILookup} layer to a lookup chain. + *

    + * If the lookup returns null, the call will be propagated to the chain. + *

    + * @param lookup The lookup to use. + * @returns An instance that can be used in a lookup chain. + * @static + */ + addingLookupChainLink?(lookup:yfiles.graph.ILookup):yfiles.graph.IContextLookupChainLink; + /** + * Factory method for a lookup chain element that adds an dynamic instance to a lookup chain. + *

    + * The instance returned will check whether instance is of the queried type and will then return the instance. + *

    + * @param instance The instance to query the type from dynamically. + * @returns An instance that can be used in a lookup chain. + * @static + */ + addingLookupChainLink?(instance:Object):yfiles.graph.IContextLookupChainLink; + /** + * Creates a lookup chain link that is backed by the given callback. + *

    + * If the callback returns null the request is passed to the chain. + *

    + * @param callback The callback to invoke. + * @returns The implementation of the link that uses the callback. + * @static + */ + createContextLookupChainLink?(callback:(subject:Object,type:yfiles.lang.Class)=>Object):yfiles.graph.IContextLookupChainLink; + /** + * Factory method for a lookup chain element that uses a function of type function(TContext) to yield a TResult for a specific TContext. + *

    + * If the resulting link is {@link yfiles.graph.IContextLookup#contextLookup queried} for TResult and the context is of type TContext, the factory method will be queried and the result + * will be returned. Otherwise the {@link yfiles.graph.IContextLookupChainLink#setNext next} chain link will be delegated the request to. + *

    + * Type parameter TContext. + * Type parameter TResult. + * @param factory The factory delegate to use that yields the result for a given context. + * @returns An instance that can be used in a lookup chain. + * @template TContext,TResult + * @static + */ + factoryLookupChainLink?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,factory:(arg:TContext)=>TResult):yfiles.graph.IContextLookupChainLink; + /** + * Factory method for a lookup chain element that removes the entry from the lookup chain for a given type. + * @param type The type to hide from the lookup. + * @returns An instance that can be used in a lookup chain. + * @static + */ + hidingLookupChainLink?(type:yfiles.lang.Class):yfiles.graph.IContextLookupChainLink; + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface that can be used to decorate the lookup result for a set of types. + * @see yfiles.graph.ILookup + * @see yfiles.graph.IContextLookupChainLink + * @interface + */ + export interface ILookupDecorator extends Object{ + /** + * Adds a lookup implementation for a given type using a function of type function(TContext, TResult). + *

    + * This method is closely related to the {@link yfiles.graph.ILookupDecorator#add} method, however it passes the result of the + * remaining chain to the delegate for convenient wrapping of the result. Note that if the implementation does not depend + * on the previous result in order to wrap it, it is better to use that variant, in order to avoid the possibly costly + * evaluation of the remainder of the lookup chain. + *

    + * Type parameter TContext: The type of the context subject. + * Type parameter TResult: The type of the query, which is a base type or the type of the result. + * @param wrapperFactory The factory delegate that will be used to satisfy queries of type TResult + * @param [decorateNull=true] Whether to actually decorate null results of remainder of the chain. If this is set to false, the wrapperFactory will + * never be called with null as the second argument but the result of the query for this chain link will be the null + * value. + * @returns The {@link } instance as returned by the {@link #addLookup} call or + * null, if either decorator was null, or it {@link #canDecorate could not decorate} the TContext type. + * @template TContext,TResult + */ + add?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,wrapperFactory:(arg1:TContext,arg2:TResult)=>TResult,decorateNull?:boolean):yfiles.graph.IContextLookupChainLink; + /** + * Adds a lookup implementation for a given type using a func. + * Type parameter TContext: The type of the context subject. + * Type parameter TResult: The type of the query, which is a base type or the type of the result. + * @param factory The factory delegate that will be used to satisfy queries of type TResult. + * @param [nullIsFallback=true] Whether to treat null-results of the factory as hints to use the remainder of the chain link or to actually yield the + * value as the final result. + * @returns The {@link } instance as returned by the {@link #addLookup} call or + * null, if either decorator was null, or it {@link #canDecorate could not decorate} the TContext type. + * @template TContext,TResult + */ + add?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,factory:(arg:TContext)=>TResult,nullIsFallback?:boolean):yfiles.graph.IContextLookupChainLink; + /** + * Add a lookup implementation for a given type that always yields a constant result. + * Type parameter TContext: The type of the context subject. + * Type parameter TResult: The type of the query, which is a base type or the type of the result. + * @param result The constant value to yield if the chain is queried for an implementation of type TResult. + * @returns The {@link } instance as returned by the {@link #addLookup} call or + * null, if either decorator was null, or it {@link #canDecorate could not decorate} the TContext type. + * @template TContext,TResult + */ + addConstant?(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,result:TResult):yfiles.graph.IContextLookupChainLink; + /** + * Adds a lookup chain element to the chain of lookups for a given type. + *

    + * The lookup chain is context specific. This method will not generally decorate the lookup of all instances of type t, but + * only those that stand in context of this instance. This method will only succeed if {@link yfiles.graph.ILookupDecorator#canDecorate} + * yields true for t. + *

    + * @param t The type to decorate the lookup. + * @param lookup The chain element to add to the lookup of the given type. + * @see yfiles.graph.ILookupDecorator#removeLookup + * @see yfiles.graph.ILookupDecorator#add + * @see yfiles.graph.ILookupDecorator#add + * @see yfiles.graph.ILookupDecorator#addConstant + * @abstract + */ + addLookup(t:yfiles.lang.Class,lookup:yfiles.graph.IContextLookupChainLink):void; + /** + * Determines whether this instance can be used to decorate the lookup for a certain type. + * @param t The type to decorate the lookup for. + * @returns + * @abstract + */ + canDecorate(t:yfiles.lang.Class):boolean; + /** + * Removes a previously registered lookup chain element from the chain of lookups for a given type. + * @param t The type to remove the decorator from. + * @param lookup The chain element to remove from the lookup of the given type. + * @see yfiles.graph.ILookupDecorator#addLookup + * @abstract + */ + removeLookup(t:yfiles.lang.Class,lookup:yfiles.graph.IContextLookupChainLink):void; + } + var ILookupDecorator:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Interface implemented by items that can be tagged with arbitrary objects. + *

    + * The object held by implementations of this interface is usually a user defined object. Implementations don't depend on + * this tag. They just serve as a storage for the tag that will be used by other parts of the implementation. + *

    + * @interface + */ + export interface ITagOwner extends Object{ + /** + * Gets or sets the tag associated with this instance. + *

    + * The implementation itself does not normally depend on the tag associated with it. It serves as storage for the object + * only. + *

    + * @abstract + * @type {Object} + */ + tag:Object; + } + var ITagOwner:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * An implementation of a chain of {@link yfiles.graph.IContextLookupChainLink}s. + * @class + * @implements {yfiles.graph.IContextLookup} + * @implements {yfiles.lang.IPropertyObservable} + */ + export interface LookupChain extends Object,yfiles.graph.IContextLookup,yfiles.lang.IPropertyObservable{} + export class LookupChain { + constructor(); + /** + * A convenience method that adds a {@link yfiles.graph.IContextLookupChainLink} to the given chain that is based on a function of + * type function(TContext, TResult). + *

    + * Depending on decorateNull, null results of the underlying chain will be passed to the + * wrapperFactory, or simply yielded as the final result. + *

    + * Type parameter TContext: The type of the context. + * Type parameter TResult: The type of the result. + * @param resultType The type of the result. + * @param contextType The type of the context. + * @param wrapperFactory The wrapper factory that will be called for queries to TResult to wrap the result of the query to the remainder of the chain. + * @param [decorateNull=false] if set to true null return values of the remainder of the chain will be passed to the wrapper factory so that it can + * decorate the null, otherwise null will be yielded as the final result. + * @returns The link that has been registered with the chain. + * @template TContext,TResult + */ + add(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,wrapperFactory:(arg1:TContext,arg2:TResult)=>TResult,decorateNull?:boolean):yfiles.graph.IContextLookupChainLink; + /** + * A convenience method that adds a {@link yfiles.graph.IContextLookupChainLink} to the given chain that is based on a function of + * type function(TContext). + *

    + * Depending on nullIsFallback, null return values of the factory will be interpreted as the final result or indicate to + * the implementation that the chain should be queried for the result. + *

    + * Type parameter TContext: The type of the context. + * Type parameter TResult: The type of the result. + * @param resultType The type of the result. + * @param contextType The type of the context. + * @param factory The factory that will be called for queries to TResult. + * @param [nullIsFallback=true] If set to true, null return values of the factory method will be interpreted as the final result, otherwise the request + * will propagate down the chain. + * @returns The link that has been registered with the chain. + * @template TContext,TResult + */ + add(contextType:yfiles.lang.Class,resultType:yfiles.lang.Class,factory:(arg:TContext)=>TResult,nullIsFallback?:boolean):yfiles.graph.IContextLookupChainLink; + /** + * Adds the given link to the end of the chain. + * @param lookup The link to add. + * @see yfiles.graph.LookupChain#remove + */ + add(lookup:yfiles.graph.IContextLookupChainLink):void; + /** + * Convenience method that can be used instead of the {@link yfiles.graph.LookupChain#add} method to easily add a lookup + * implementation for a given type that always yields a constant result. + * Type parameter TResult: The type of the query, which is a base type or the type of the result. + * @param result The constant value to yield if the chain is queried for an implementation of type TResult. + * @returns The {@link } instance that has been added to the chain. + * @template TResult + */ + addConstant(resultType:yfiles.lang.Class,result:TResult):yfiles.graph.IContextLookupChainLink; + /** + * Performs the actual lookup operation. + *

    + * This call will traverse the chain to satisfy the query. + *

    + * @param item The item to use as the context. + * @param type The type of the query. + * @returns The result of the query. + */ + contextLookup(item:Object,type:yfiles.lang.Class):Object; + /** + * Can be called by client code to trigger the {@link yfiles.graph.LookupChain#addPropertyChangedListener PropertyChanged} + * event manually. + */ + notifyChange():void; + /** + * Notifies client code that the lookup of this instance might have changed. + * @param evt The arguments + * @protected + */ + onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; + /** + * Removes the link that has previously been added to this instance from this chain. + * @param link The link to remove. + */ + remove(link:yfiles.graph.IContextLookupChainLink):void; + /** + * Adds the given listener for the PropertyChanged event that occurs when the lookup of this instance has changed for some + * or all of the types or items. + * @param listener The listener to add. + * @see yfiles.graph.LookupChain#removePropertyChangedListener + */ + addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Removes the given listener for the PropertyChanged event that occurs when the lookup of this instance has changed for + * some or all of the types or items. + * @param listener The listener to remove. + * @see yfiles.graph.LookupChain#addPropertyChangedListener + */ + removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + static $class:yfiles.lang.Class; + } + /** + * The main class to provide undo and redo functionality. + *

    + * The {@link yfiles.graph.UndoEngine} is in charge of {@link yfiles.graph.UndoEngine#beginCompoundEdit recording}, {@link yfiles.graph.UndoEngine#addUnit managing} and {@link yfiles.graph.UndoEngine#undo executing} single units of work that can be undone + * and redone, represented by the interface {@link yfiles.graph.IUndoUnit}. + *

    + *

    + * These units are managed in a queue-like structure and can be added manually to the queue by calling the {@link yfiles.graph.UndoEngine#addUnit} + * method. + *

    + *

    + * Executing the units is done by client code or commands by calling {@link yfiles.graph.UndoEngine#undo} or + * {@link yfiles.graph.UndoEngine#redo}. The engine automatically manages the queue so that calling these two methdos will + * consistently move the units in the queue. + *

    + *

    + * The {@link yfiles.graph.UndoEngine#beginCompoundEdit} method allows to record units by bracketing serveral changes in an + * {@link yfiles.graph.ICompoundEdit}. Implementations of the {@link yfiles.graph.ICompoundEdit} interface record all subsequent changes + * until it is {@link yfiles.graph.ICompoundEdit#commit committed} and therefore all recorded units are added to the engine. For more information and examples see + * {@link yfiles.graph.ICompoundEdit}. + *

    + *

    + * Depending on the properties {@link yfiles.graph.UndoEngine#mergeUnits} and {@link yfiles.graph.UndoEngine#autoMergeTime}, the engine tries to collapse added {@link yfiles.graph.IUndoUnit}s if possible. This enhances + * the performance and reduces the required memory for undo changes. For example, when a node is moved interactively, + * instead of saving every position that the node had when being dragged the engine will only hold one {@link yfiles.graph.IUndoUnit} + * at the end to undo the entire movement. + *

    + *

    + *
    Customizing Undo/Redo + *

      + *
    • + * In general, to be able to undo or redo certain work client code can implement {@link yfiles.graph.IUndoUnit} or subclass + * {@link yfiles.graph.UndoUnitBase UndoUnitBase}. The client application needs to encapsulate + * changes in this implementation and provide the logic to completely undo and redo these changes. + * Instances of your custom {@link yfiles.graph.IUndoUnit} implementations need to be added to the {@link yfiles.graph.UndoEngine} + * manually via {@link yfiles.graph.UndoEngine#addUnit}. + *
    • + *
    • + * In certain cases it is difficult or not efficient to track and save the changes between certain states, + * and better to save the states themselves and to restore these. For example when there are potentially + * many intermediate steps between two states of interest and it would be complicated + * to produce {@link yfiles.graph.IUndoUnit}s for each intermediate step and merge them in the end. + * In such cases client code should implement {@link yfiles.graph.IMementoSupport} instead. + * See the documentation of {@link yfiles.graph.IMementoSupport} for examples and guidelines on how to implement + * this memento design pattern concept. + *
    • + *
    • + * It is generally not necessary to subclass {@link yfiles.graph.UndoEngine} unless you want to customize the internal + * handling of the units, which is both complicated and prone to errors. In most use cases it is sufficient + * to provide custom {@link yfiles.graph.IUndoUnit}s or {@link yfiles.graph.IMementoSupport}. + *
    • + *
    + *

    + * @see yfiles.graph.IUndoUnit + * @see yfiles.graph.UndoUnitBase + * @see yfiles.graph.IMementoSupport + * @see yfiles.graph.ICompoundEdit + * @class + * @implements {yfiles.lang.IPropertyObservable} + */ + export interface UndoEngine extends Object,yfiles.lang.IPropertyObservable{} + export class UndoEngine { + /** + * Initializes a new instance of the {@link yfiles.graph.UndoEngine} class. + * @param {Object} [options=null] The parameters to pass. + * @param {boolean} options.mergeUnits A value that indicates whether or not this instance should try to merge newly added units. + *

    + * This option sets the {@link yfiles.graph.UndoEngine#mergeUnits} property on the created object. + *

    + * @param {yfiles.lang.TimeSpan} options.autoMergeTime The duration during which the engine will try to merge newly added units. + *

    + * This option sets the {@link yfiles.graph.UndoEngine#autoMergeTime} property on the created object. + *

    + * @param {number} options.size The maximum size of the undo queue this instance is managing. + *

    + * This option sets the {@link yfiles.graph.UndoEngine#size} property on the created object. + *

    + */ + constructor(options?:{mergeUnits?:boolean,autoMergeTime?:yfiles.lang.TimeSpan,size?:number}); + /** + * Adds a new {@link yfiles.graph.IUndoUnit} to the queue. + *

    + * This implementation will automatically group multiple units into a single unit if the time since the last add is less + * than {@link yfiles.graph.UndoEngine#autoMergeTime}. + *

    + * @param unit The unit of work to add. + */ + addUnit(unit:yfiles.graph.IUndoUnit):void; + /** + * Begins a compound edit that will use the provided name. + *

    + * This will create a new edit that can independently be {@link yfiles.graph.ICompoundEdit#cancel canceled} or {@link yfiles.graph.ICompoundEdit#commit committed}. Note that only if the outer-most instances + * is committed, the corresponding {@link yfiles.graph.IUndoUnit} units will be enqueued into this instance. + *

    + * @param undoName The undo name to use for the edit. + * @param redoName The redo name to use for the edit. + * @returns A compound edit implementation that needs to be {@link #cancel canceled} or {@link #commit committed} later. + */ + beginCompoundEdit(undoName:string,redoName:string):yfiles.graph.ICompoundEdit; + /** + * Determines whether a call to {@link yfiles.graph.UndoEngine#redo} can be made. + * @returns + */ + canRedo():boolean; + /** + * Determines whether a call to {@link yfiles.graph.UndoEngine#undo} can be made. + * @returns + */ + canUndo():boolean; + /** + * Clears the internal queue and {@link yfiles.graph.IUndoUnit#dispose disposes} all units in it. + */ + clear():void; + /** + * Returns a token that can be used to store and compare the state of the undo queue. + *

    + * E.g. an application can retrieve the token once the user has saved his document. Comparing the token returned by this + * instance with another one retrieved at a later point in time enables the application to determine whether the document + * is in the same state. + *

    + * @returns An object that can be checked against other tokens via the {@link #equals} method. + */ + getToken():Object; + /** + * This will trigger the corresponding {@link yfiles.graph.UndoEngine#addPropertyChangedListener PropertyChanged} event. + * @param name The name of the property that changed. + * @protected + */ + onPropertyChanged(name:string):void; + /** + * Redoes the next {@link yfiles.graph.IUndoUnit}. + * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. + * @throws {yfiles.lang.Exception} If {@link yfiles.graph.UndoEngine#canRedo} would yield false. + */ + redo():void; + /** + * Undoes the next {@link yfiles.graph.IUndoUnit}. + * @throws {Stubs.Exceptions.NotSupportedError} If an undo operation is already in progress. + * @throws {yfiles.lang.Exception} If {@link yfiles.graph.UndoEngine#canUndo} would yield false. + */ + undo():void; + /** + * Gets or sets a value that indicates whether or not this instance should try to merge newly added units. + *

    + * If true this instance will try to {@link yfiles.graph.IUndoUnit#tryMergeUnit merge} or {@link yfiles.graph.IUndoUnit#tryReplaceUnit replace} units in the queue. Note that when the {@link yfiles.graph.UndoEngine#autoMergeTime} property is set to {@link yfiles.lang.TimeSpan#ZERO} + * and this property is set to true, the engine will always try to merge incoming units. Otherwise the {@link yfiles.graph.UndoEngine#autoMergeTime} dictates whether + * the engine will try to merge a unit or not. + *

    + * @see yfiles.graph.UndoEngine#autoMergeTime + * @type {boolean} + */ + mergeUnits:boolean; + /** + * Gets or sets the duration during which the engine will try to merge newly added units. + *

    + * If this is set to {@link yfiles.lang.TimeSpan#ZERO}, the engine will try to merge incoming units depending on the {@link yfiles.graph.UndoEngine#mergeUnits} property. + * Otherwise, if the time span between the last added unit and the new unit exceeds the set value, the engine does not try + * to merge the units regardless what the {@link yfiles.graph.UndoEngine#mergeUnits} property is set to. Likewise, if the time span is smaller than the set value, + * the engine will always try to merge units. + *

    + * @see yfiles.graph.UndoEngine#mergeUnits + * @type {yfiles.lang.TimeSpan} + */ + autoMergeTime:yfiles.lang.TimeSpan; + /** + * Gets or sets the maximum size of the undo queue this instance is managing. + *

    + * A size of 0 effectively disables this implementation. + *

    + * @type {number} + */ + size:number; + /** + * Returns the {@link yfiles.graph.IUndoUnit#undoName} of the next {@link yfiles.graph.UndoEngine#undo} operation. + * @type {string} + */ + undoName:string; + /** + * Returns the {@link yfiles.graph.IUndoUnit#redoName} of the next {@link yfiles.graph.UndoEngine#redo} operation. + * @type {string} + */ + redoName:string; + /** + * Indicates whether this instance is currently performing an undo operation. + * @type {boolean} + */ + performingUndo:boolean; + /** + * Indicates whether this instance is currently performing a redo operation. + * @type {boolean} + */ + performingRedo:boolean; + /** + * Adds the given listener for the PropertyChanged event that occurs when {@link yfiles.graph.UndoEngine#canUndo}, + * {@link yfiles.graph.UndoEngine#canRedo}, {@link yfiles.graph.UndoEngine#undoName}, or {@link yfiles.graph.UndoEngine#redoName} changed its value. + * @param listener The listener to add. + * @see yfiles.graph.UndoEngine#removePropertyChangedListener + */ + addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Removes the given listener for the PropertyChanged event that occurs when {@link yfiles.graph.UndoEngine#canUndo}, + * {@link yfiles.graph.UndoEngine#canRedo}, {@link yfiles.graph.UndoEngine#undoName}, or {@link yfiles.graph.UndoEngine#redoName} changed its value. + * @param listener The listener to remove. + * @see yfiles.graph.UndoEngine#addPropertyChangedListener + */ + removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Adds the given listener for the UnitUndone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#undo} + * operation of an {@link yfiles.graph.IUndoUnit}. + * @param listener The listener to add. + * @see yfiles.graph.UndoEngine#removeUnitUndoneListener + */ + addUnitUndoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; + /** + * Removes the given listener for the UnitUndone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#undo} + * operation of an {@link yfiles.graph.IUndoUnit}. + * @param listener The listener to remove. + * @see yfiles.graph.UndoEngine#addUnitUndoneListener + */ + removeUnitUndoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; + /** + * Adds the given listener for the UnitRedone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#redo} + * operation of an {@link yfiles.graph.IUndoUnit}. + * @param listener The listener to add. + * @see yfiles.graph.UndoEngine#removeUnitRedoneListener + */ + addUnitRedoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; + /** + * Removes the given listener for the UnitRedone event that occurs when the engine has successfully executed the {@link yfiles.graph.IUndoUnit#redo} + * operation of an {@link yfiles.graph.IUndoUnit}. + * @param listener The listener to remove. + * @see yfiles.graph.UndoEngine#addUnitRedoneListener + */ + removeUnitRedoneListener(listener:(sender:Object,evt:yfiles.lang.EventArgs)=>void):void; + static $class:yfiles.lang.Class; + } + /** + * Represents a unit of work that can be undone and redone. + *

    + * Clients should use this interface when certain actions, changes or events should be monitored and have undoability + * provided for them. If you simply want to track the state of certain items between two states of interest, you should + * consider using {@link yfiles.graph.IMementoSupport mementos} instead. + *

    + *

    + * The central methods of this interface are {@link yfiles.graph.IUndoUnit#undo} and {@link yfiles.graph.IUndoUnit#redo} which contain the + * logic to undo or redo a unit of work. Keep in mind that undo/redo are sensible operations and should maintain a + * consistent state before and after each operation since they may be executed potentially often one after another. + *

    + *

    + * The requirement for an {@link yfiles.graph.IUndoUnit} is that when a program is in a certain state and a call to {@link yfiles.graph.IUndoUnit#undo} + * is followed by a call to {@link yfiles.graph.IUndoUnit#redo} then the program is in the exact same state as before (the same + * holds true for the other way around). + *

    + *

    + * A default implementation of this interface is the abstract class {@link yfiles.graph.UndoUnitBase} which forces only the + * implementation of the undo/redo logic and defaults the other methods. Clients should primarily extend this class instead + * of implementing the whole interface. + *

    + *

    + * IUndoUnits are managed by the {@link yfiles.graph.UndoEngine}. Custom units can always be added to the engine using the method + * {@link yfiles.graph.UndoEngine#addUnit}. Also consider to use one of the convenience implementations: {@link yfiles.graph.DelegateUndoUnit.} takes delegates for the + * undo/redo operations and {@link yfiles.graph.CompositeUndoUnit} creates a bracketing unit comprising several other units. + *

    + *

    + * Also note that in order to keep a consistent state, methods of objects of this type should not be called by clientcode + * directly but use the {@link yfiles.graph.UndoEngine} instead. + *

    + * @interface + */ + export interface IUndoUnit extends Object{ + /** + * Called by the {@link yfiles.graph.UndoEngine} and client code to let the unit dispose of references aren't needed anymore. + *

    + * When this method is called, the other methods of this interface will not be called anymore by the undo engine. The undo + * engine calls this method on instances that it will not use anymore to enable the instances to release instances and + * memory actively. + *

    + * @abstract + */ + dispose():void; + /** + * Redoes the work that is represented by this unit. + *

    + * Undo/redo are sensible operations and should maintain a consistent state before and after each operation since they may + * be executed potentially often one after another. + *

    + * @see yfiles.graph.IUndoUnit#redoName + * @abstract + */ + redo():void; + /** + * Tries to merge the given unit with this one. + *

    + * This method is called when this unit is the head of an {@link yfiles.graph.UndoEngine}'s or {@link yfiles.graph.CompositeUndoUnit}'s + * queue and a new unit is added. It is meant to try to incorporate the change of the given unit into this and if + * successful return true. This should be the case when the end state of this unit is equal to the start state of the given + * unit. + *

    + *

    + * For example, if this unit is the head of the queue and represents the work from state A to state B and the given unit + * the work from state B to state C, then this method should try to make this unit shift from state A to state C. If this + * is successful, the method is expected to return true. The other unit is then {@link yfiles.graph.IUndoUnit#dispose disposed} by the {@link yfiles.graph.UndoEngine} + * afterwards. + *

    + *

    + * Clients don't necessarily have to implement this method if the unit doesn't happen very often. In fact, the default + * implementation of {@link yfiles.graph.UndoUnitBase#tryMergeUnit} simply returns false. Implementing this method faithfully will + * cause multiple units of work to inseparably appear as one and undoing/redoing it will undo/redo the work of all + * collapsed units. Depending on the situation this may be reasonable, for example when there are potentially a lot of + * changes where not every intermediate step is required to be recorded. In this case implementing this method faithfully + * will greatly improve the performance and reduce the required amount of memory of the undo process. If you want to group + * together multiple units as a single block but still want to be able to separate each step, consider to use a {@link yfiles.graph.CompositeUndoUnit} + * instead. + *

    + * @param unit The unit to incorporate that happened after this unit. + * @returns Whether the state change of unit has been incorporated into this unit and unit can be disposed of. + * @abstract + */ + tryMergeUnit(unit:yfiles.graph.IUndoUnit):boolean; + /** + * Tries to replace the given unit with this one. + *

    + * This method is called if a newly added unit couldn't be {@link yfiles.graph.IUndoUnit#tryMergeUnit merged} with the head unit of the queue (i.e. returned false). + * Instead of trying to merge a newly added unit, this method tries to replace the given unit (which is the head of the + * queue) with this by incorporating the change of the given unit into this and if successful return true. This should be + * the case when the start state of this unit is equal to the end state of the given unit. + *

    + *

    + * For example, if the given unit represents the work from state A to state B and this unit the work from state B to state + * C, then this method should try to make this unit shift from state A to state C. If this is successful, the method is + * expected to return true. The given unit is then {@link yfiles.graph.IUndoUnit#dispose disposed} by the {@link yfiles.graph.UndoEngine} afterwards and replaced with this + * unit in the queue. + *

    + *

    + * Clients don't necessarily have to implement this method if the unit doesn't happen very often. In fact, the default + * implementation of {@link yfiles.graph.UndoUnitBase#tryReplaceUnit} simply returns false. Implementing this method faithfully + * will cause multiple units of work to inseparably appear as one and undoing/redoing it will undo/redo the work of all + * collapsed units. Depending on the situation this may be reasonable, for example when there are potentially a lot of + * changes where not every intermediate step is required to be recorded. In this case implementing this method faithfully + * will greatly improve the performance and reduce the required amount of memory of the undo process. If you want to group + * together multiple units as a single block but still want to be able to separate each step, consider to use a {@link yfiles.graph.CompositeUndoUnit} + * instead. + *

    + * @param unit The unit to incorporate that happened before this unit. + * @returns Whether the state change of this unit has been incorporated into the given unit and this can be disposed of. + * @abstract + */ + tryReplaceUnit(unit:yfiles.graph.IUndoUnit):boolean; + /** + * Undoes the work that is represented by this unit. + *

    + * Undo/redo are sensible operations and should maintain a consistent state before and after each operation since they may + * be executed potentially often one after another. + *

    + * @see yfiles.graph.IUndoUnit#undoName + * @abstract + */ + undo():void; + /** + * Returns the name of the undo unit. + *

    + * Depending on the implementation and context this might be a human readable representation of the undo action or a + * symbolic name that needs localization. + *

    + * @abstract + * @type {string} + */ + undoName:string; + /** + * Returns the name of the redo unit. + *

    + * Depending on the implementation and context this might be a human readable representation of the redo action or a + * symbolic name that needs localization. + *

    + * @abstract + * @type {string} + */ + redoName:string; + } + var IUndoUnit:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * This interface provides access to the memento design pattern to provide undoability for arbitrary models. + *

    + * By implementing this interface as well as {@link yfiles.graph.ILookup}, clients can add undoability for changes to their model + * classes. The yFiles undo mechanism uses the return value of {@link yfiles.graph.IMementoSupport#getState} to retrieve a state of + * an item at the beginning of the compound editing process. When the process ends, another state will be retrieved of the + * same item and compared to the original state. If they differ, an {@link yfiles.graph.IUndoUnit} is created that uses the {@link yfiles.graph.IMementoSupport#applyState} + * method to apply either state to the item in case of {@link yfiles.graph.IUndoUnit#undo undo} or {@link yfiles.graph.IUndoUnit#redo redo}. This represents an abstraction to the undo mechanism + * where it is only needed to define "states" of items and hides the more complicated mechanism of creating and inserting + * {@link yfiles.graph.IUndoUnit}s. + *

    + *

    + * The following is an example implementation of an item that is being managed using {@link yfiles.graph.IMementoSupport}: + *

    + *

    + * A collection of items from this type can then be watched using the following code snippet: + *

    + *

    + * Implementing the {@link yfiles.graph.IMementoSupport} interface is quite unrestrained, the type of the state returned by {@link yfiles.graph.IMementoSupport#getState} + * method can by anything as long as the {@link yfiles.graph.IMementoSupport#applyState} and {@link yfiles.graph.IMementoSupport#stateEquals} + * methods can deal with it: + *

    + *

    + * In summary, use this concept when you want to track the state of items during certain operations for undo/redo. This is + * efficient if it's easier to handle an item's state than the changes to the item themselves. If you want to focus on the + * changes or on certain events, you should use custom {@link yfiles.graph.IUndoUnit} implementations instead. + *

    + * @see yfiles.graph.ILookup + * @see yfiles.graph.ICompoundEdit + * @see yfiles.graph.UndoEngine + * @interface + */ + export interface IMementoSupport extends Object{ + /** + * Reapplies a previously queried state object to a given subject. + *

    + * The state object has been created using the {@link yfiles.graph.IMementoSupport#getState} method. + *

    + * @param subject The subject to modify the state. + * @param state The state object as returned by {@link #getState} + * @abstract + */ + applyState(subject:Object,state:Object):void; + /** + * Retrieves an object representing the state at the moment this method is called. + *

    + * The returned state may be reapplied later to the subject in the {@link yfiles.graph.IMementoSupport#applyState} method. + *

    + * @param subject The subject to read the state from + * @returns An object that describes the current state of subject. + * @abstract + */ + getState(subject:Object):Object; + /** + * Determines whether two state objects are equal. + *

    + * The undo mechanism in yFiles calls this method to determine if the subject has changed and whether an {@link yfiles.graph.IUndoUnit} + * should be created for these changes. If this method returns false, an {@link yfiles.graph.IUndoUnit} is created for the two + * states that can reapply either state (for either undo or redo). If this method returns true the state is considered not + * to have changed and no undo unit will be created. Conservative implementations my simply return false. + *

    + * @param state1 The first state as obtained from {@link #getState} + * @param state2 The second state as obtained from {@link #getState} + * @returns true if the states are equal; false otherwise. + * @abstract + */ + stateEquals(state1:Object,state2:Object):boolean; + } + var IMementoSupport:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A convenience implementation of the {@link yfiles.graph.IUndoUnit} interface that uses simple delegates for the actual undo and + * redo operations. + * Type parameter T: The type of the single parameter that is passed to the delegate. + * @class + * @extends {yfiles.graph.UndoUnitBase} + * @template T + * @final + */ + export interface DelegateUndoUnit extends yfiles.graph.UndoUnitBase{} + export class DelegateUndoUnit { + /** + * Creates a new instance using the provided name and a undo and redo handler as well as the parameters to pass to the + * delegates. + * @param undoName The name of the undo. + * @param undo The undo handler delegate. + * @param redo The redo handler delegate. + * @param undoParam The undo parameter to pass to the delegate. + * @param redoParam The redo parameter to pass to the delegate. + */ + constructor(undoName:string,undo:(param:T)=>void,redo:(param:T)=>void,undoParam:T,redoParam:T); + /** + * Creates a new instance using the provided name and a undo/redo handler as well as the parameters to pass to the + * delegates. + * @param undoName The name of the undo. + * @param undoRedo The undo and redo handler delegate. + * @param undoParam The undo parameter to pass to the delegate. + * @param redoParam The redo parameter to pass to the delegate. + */ + constructor(undoName:string,undoRedo:(param:T)=>void,undoParam:T,redoParam:T); + static $class:yfiles.lang.Class; + } + /** + * An abstract convenience implementation of {@link yfiles.graph.IUndoUnit}. + *

    + * This class defaults most methods required by the {@link yfiles.graph.IUndoUnit} interface. Subclasses only have to implement the + * undo/redo logic. Most notably, {@link yfiles.graph.IUndoUnit#tryMergeUnit} and {@link yfiles.graph.IUndoUnit#tryReplaceUnit} are + * implemented to return + * false. Subclasses are of course allowed to override more methods if clients want to enable additional functionality. + *

    + *

    + * Use this class for simple custom implementations of {@link yfiles.graph.IUndoUnit}. + *

    + * @see yfiles.graph.IUndoUnit + * @see yfiles.graph.UndoEngine + * @class + * @implements {yfiles.graph.IUndoUnit} + */ + export interface UndoUnitBase extends Object,yfiles.graph.IUndoUnit{} + export class UndoUnitBase { + /** + * Creates a new instance using the given name as undo and redo name. + * @param undoName The undo name. + * @param [redoName=null] The redo name. + * @protected + */ + constructor(undoName:string,redoName?:string); + /** + * + */ + dispose():void; + /** + * + * @abstract + */ + redo():void; + /** + * + * @param unit + * @returns + */ + tryMergeUnit(unit:yfiles.graph.IUndoUnit):boolean; + /** + * + * @param unit + * @returns + */ + tryReplaceUnit(unit:yfiles.graph.IUndoUnit):boolean; + /** + * + * @abstract + */ + undo():void; + /** + * + * @type {string} + */ + undoName:string; + /** + * + * @type {string} + */ + redoName:string; static $class:yfiles.lang.Class; } /** @@ -57519,31 +57616,31 @@ declare namespace system{ *

    * @see yfiles.graph.DefaultFoldingEdgeConverter * @see yfiles.graph.FoldingManager - * @class yfiles.graph.FoldingEdgeConverterBase + * @class * @implements {yfiles.graph.IFoldingEdgeConverter} */ export interface FoldingEdgeConverterBase extends Object,yfiles.graph.IFoldingEdgeConverter{} export class FoldingEdgeConverterBase { /** * - * @param {yfiles.graph.IFoldingEdgeFactory} factory - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.IEdge} masterEdge - * @param {yfiles.graph.INode} source - * @param {boolean} sourceIsCollapsed - * @param {yfiles.graph.INode} target - * @param {boolean} targetIsCollapsed - * @returns {yfiles.graph.IEdge} + * @param factory + * @param foldingView + * @param masterEdge + * @param source + * @param sourceIsCollapsed + * @param target + * @param targetIsCollapsed + * @returns * @abstract */ addFoldingEdge(factory:yfiles.graph.IFoldingEdgeFactory,foldingView:yfiles.graph.IFoldingView,masterEdge:yfiles.graph.IEdge,source:yfiles.graph.INode,sourceIsCollapsed:boolean,target:yfiles.graph.INode,targetIsCollapsed:boolean):yfiles.graph.IEdge; /** * Callback factory method that creates the {@link yfiles.styles.IEdgeStyle} for use in * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeStyle}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge in the view whose {@link yfiles.graph.IEdge#style} should be initialized. - * @param {yfiles.collections.IList.} masterEdges The edges that are being represented by the folding edge. - * @returns {yfiles.styles.IEdgeStyle} The {@link yfiles.graph.FoldingEdgeConverterBase#foldingEdgeStyle} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.FoldingEdgeConverterBase#cloneEdgeStyle} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param foldingEdge The folding edge in the view whose {@link #style} should be initialized. + * @param masterEdges The edges that are being represented by the folding edge. + * @returns The {@link #foldingEdgeStyle} or a {@link #clone} of it depending on the {@link #cloneEdgeStyle} property. This method may return null to indicate that * the default style should not be changed. * @protected */ @@ -57551,11 +57648,11 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.graph.ILabelModelParameter} for use in * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeLabels}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.ILabel} localLabel The local label in the view whose {@link yfiles.graph.ILabel#layoutParameter} should be initialized. May be null if the label layout parameter is requested for the + * @param foldingView The folding view instance. + * @param localLabel The local label in the view whose {@link #layoutParameter} should be initialized. May be null if the label layout parameter is requested for the * label creation. - * @param {yfiles.graph.ILabel} masterLabel The label that is being represented by the folding label. - * @returns {yfiles.graph.ILabelModelParameter} The {@link yfiles.graph.FoldingEdgeConverterBase#labelLayoutParameter} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.FoldingEdgeConverterBase#cloneLabelLayoutParameter} property. This method may return null to indicate that + * @param masterLabel The label that is being represented by the folding label. + * @returns The {@link #labelLayoutParameter} or a {@link #clone} of it depending on the {@link #cloneLabelLayoutParameter} property. This method may return null to indicate that * the default label layout parameter should not be changed. * @protected */ @@ -57563,11 +57660,11 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.styles.ILabelStyle} for use in * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeLabels}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.ILabel} localLabel The local label in the view whose {@link yfiles.graph.ILabel#style} should be initialized. May be null if the label style is requested for the label + * @param foldingView The folding view instance. + * @param localLabel The local label in the view whose {@link #style} should be initialized. May be null if the label style is requested for the label * creation. - * @param {yfiles.graph.ILabel} masterLabel The label that is being represented by the folding label. - * @returns {yfiles.styles.ILabelStyle} The {@link yfiles.graph.FoldingEdgeConverterBase#labelStyle} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.FoldingEdgeConverterBase#cloneLabelStyle} property. This method may return null to indicate that + * @param masterLabel The label that is being represented by the folding label. + * @returns The {@link #labelStyle} or a {@link #clone} of it depending on the {@link #cloneLabelStyle} property. This method may return null to indicate that * the default style should not be changed. * @protected */ @@ -57575,10 +57672,10 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.graph.IPortLocationModelParameter} of the source port for use in * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgePorts}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.IEdge} localEdge The local edge in the view whose source port's {@link yfiles.graph.IPort#locationParameter} should be initialized. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. - * @returns {yfiles.graph.IPortLocationModelParameter} The {@link yfiles.graph.FoldingEdgeConverterBase#sourcePortLocationParameter} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.FoldingEdgeConverterBase#cloneSourcePortLocationParameter} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param localEdge The local edge in the view whose source port's {@link #locationParameter} should be initialized. + * @param masterEdges The master edges that the folding edge represents. + * @returns The {@link #sourcePortLocationParameter} or a {@link #clone} of it depending on the {@link #cloneSourcePortLocationParameter} property. This method may return null to indicate that * the default port location parameter should not be changed. * @protected */ @@ -57586,10 +57683,10 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.styles.IPortStyle} of the source port for use in * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgePorts}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.IEdge} localEdge The local edge in the view whose source port's {@link yfiles.graph.IPort#style} should be initialized. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. - * @returns {yfiles.styles.IPortStyle} The {@link yfiles.graph.FoldingEdgeConverterBase#sourcePortStyle} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.FoldingEdgeConverterBase#cloneSourcePortStyle} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param localEdge The local edge in the view whose source port's {@link #style} should be initialized. + * @param masterEdges The master edges that the folding edge represents. + * @returns The {@link #sourcePortStyle} or a {@link #clone} of it depending on the {@link #cloneSourcePortStyle} property. This method may return null to indicate that * the default style should not be changed. * @protected */ @@ -57597,10 +57694,10 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.graph.IPortLocationModelParameter} of the target port for use in * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgePorts}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.IEdge} localEdge The local edge in the view whose target port's {@link yfiles.graph.IPort#locationParameter} should be initialized. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. - * @returns {yfiles.graph.IPortLocationModelParameter} The {@link yfiles.graph.FoldingEdgeConverterBase#targetPortLocationParameter} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.FoldingEdgeConverterBase#cloneTargetPortLocationParameter} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param localEdge The local edge in the view whose target port's {@link #locationParameter} should be initialized. + * @param masterEdges The master edges that the folding edge represents. + * @returns The {@link #targetPortLocationParameter} or a {@link #clone} of it depending on the {@link #cloneTargetPortLocationParameter} property. This method may return null to indicate that * the default port location parameter should not be changed. * @protected */ @@ -57608,10 +57705,10 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.styles.IPortStyle} of the target port for use in * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgePorts}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.IEdge} localEdge The local edge in the view whose target port's {@link yfiles.graph.IPort#style} should be initialized. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. - * @returns {yfiles.styles.IPortStyle} The {@link yfiles.graph.FoldingEdgeConverterBase#targetPortStyle} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.FoldingEdgeConverterBase#cloneTargetPortStyle} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param localEdge The local edge in the view whose target port's {@link #style} should be initialized. + * @param masterEdges The master edges that the folding edge represents. + * @returns The {@link #targetPortStyle} or a {@link #clone} of it depending on the {@link #cloneTargetPortStyle} property. This method may return null to indicate that * the default style should not be changed. * @protected */ @@ -57621,10 +57718,10 @@ declare namespace system{ *

    * This will call the {@link yfiles.graph.FoldingEdgeState#clearBends} callback if {@link yfiles.graph.FoldingEdgeConverterBase#resetBends} is enabled. *

    - * @param {yfiles.graph.FoldingEdgeState} state The viewstate to change. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance that has triggered the {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeState} call. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge in the view that may be changed using the state. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. + * @param state The viewstate to change. + * @param foldingView The folding view instance that has triggered the {@link #initializeFoldingEdgeState} call. + * @param foldingEdge The folding edge in the view that may be changed using the state. + * @param masterEdges The master edges that the folding edge represents. * @protected */ initializeFoldingEdgeBends(state:yfiles.graph.FoldingEdgeState,foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge,masterEdges:yfiles.collections.IList):void; @@ -57635,10 +57732,10 @@ declare namespace system{ * will call {@link yfiles.graph.FoldingEdgeConverterBase#createLabelStyle} and {@link yfiles.graph.FoldingEdgeConverterBase#createLabelLayoutParameter} * and use the returned style and layout parameter if they are non-null when {@link yfiles.graph.FoldingEdgeState#addLabel adding the label} on the folding edge. *

    - * @param {yfiles.graph.FoldingEdgeState} state The viewstate to change. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance that has triggered the {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeState} call. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge in the view that may be changed using the state. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. + * @param state The viewstate to change. + * @param foldingView The folding view instance that has triggered the {@link #initializeFoldingEdgeState} call. + * @param foldingEdge The folding edge in the view that may be changed using the state. + * @param masterEdges The master edges that the folding edge represents. * @see yfiles.graph.FoldingEdgeConverterBase#labelStyle * @see yfiles.graph.FoldingEdgeConverterBase#labelLayoutParameter * @protected @@ -57652,10 +57749,10 @@ declare namespace system{ * to the folding source port if non-null values have been returned. The same holds true for the target port where the {@link yfiles.graph.FoldingEdgeConverterBase#createTargetPortStyle} * and {@link yfiles.graph.FoldingEdgeConverterBase#createTargetPortLocationParameter} callbacks are used. *

    - * @param {yfiles.graph.FoldingEdgeState} state The viewState to change. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance that has triggered the {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeState} call. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge in the view that may be changed using the state. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. + * @param state The viewState to change. + * @param foldingView The folding view instance that has triggered the {@link #initializeFoldingEdgeState} call. + * @param foldingEdge The folding edge in the view that may be changed using the state. + * @param masterEdges The master edges that the folding edge represents. * @see yfiles.graph.FoldingEdgeConverterBase#sourcePortStyle * @see yfiles.graph.FoldingEdgeConverterBase#targetPortStyle * @see yfiles.graph.FoldingEdgeConverterBase#sourcePortLocationParameter @@ -57676,10 +57773,10 @@ declare namespace system{ * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeBends}, * {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeLabels}. *

    - * @param {yfiles.graph.FoldingEdgeState} state - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.IEdge} foldingEdge - * @param {yfiles.collections.IList.} masterEdges + * @param state + * @param foldingView + * @param foldingEdge + * @param masterEdges */ initializeFoldingEdgeState(state:yfiles.graph.FoldingEdgeState,foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge,masterEdges:yfiles.collections.IList):void; /** @@ -57688,10 +57785,10 @@ declare namespace system{ * This implementation calls {@link yfiles.graph.FoldingEdgeConverterBase#createEdgeStyle} and {@link yfiles.graph.FoldingEdgeState#style assigns} the style to the folding * edge if a non-null value has been returned. *

    - * @param {yfiles.graph.FoldingEdgeState} state The viewstate to change. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance that has triggered the {@link yfiles.graph.FoldingEdgeConverterBase#initializeFoldingEdgeState} call. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge in the view that may be changed using the state. - * @param {yfiles.collections.IList.} masterEdges The master edges that the folding edge represents. + * @param state The viewstate to change. + * @param foldingView The folding view instance that has triggered the {@link #initializeFoldingEdgeState} call. + * @param foldingEdge The folding edge in the view that may be changed using the state. + * @param masterEdges The master edges that the folding edge represents. * @protected */ initializeFoldingEdgeStyle(state:yfiles.graph.FoldingEdgeState,foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge,masterEdges:yfiles.collections.IList):void; @@ -57701,10 +57798,10 @@ declare namespace system{ * This will adjust the label's text, preferred size and tag properties or remove the label if there is no master label or * there is more than one master edge. *

    - * @param {yfiles.graph.FoldingEdgeState} state The viewstate of the edge to change. - * @param {yfiles.graph.IFoldingView} foldingView The folding view. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge. - * @param {yfiles.collections.IList.} masterEdges The master edges. + * @param state The viewstate of the edge to change. + * @param foldingView The folding view. + * @param foldingEdge The folding edge. + * @param masterEdges The master edges. * @protected */ synchronizeLabels(state:yfiles.graph.FoldingEdgeState,foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge,masterEdges:yfiles.collections.IList):void; @@ -57714,10 +57811,10 @@ declare namespace system{ *

    * This method calls {@link yfiles.graph.FoldingEdgeConverterBase#synchronizeLabels}, only. *

    - * @param {yfiles.graph.FoldingEdgeState} state - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.IEdge} foldingEdge - * @param {yfiles.collections.IList.} masterEdges + * @param state + * @param foldingView + * @param foldingEdge + * @param masterEdges */ updateFoldingEdgeState(state:yfiles.graph.FoldingEdgeState,foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge,masterEdges:yfiles.collections.IList):void; /** @@ -57734,7 +57831,7 @@ declare namespace system{ */ sourcePortStyle:yfiles.styles.IPortStyle; /** - * Gets or sets a value indicating whether the {@link yfiles.graph.FoldingEdgeConverterBase#sourcePortStyle} instance should be assigned as a {@link yfiles.lang.ICloneable#clone}clone or not. + * Gets or sets a value indicating whether the {@link yfiles.graph.FoldingEdgeConverterBase#sourcePortStyle} instance should be assigned as a {@link yfiles.lang.ICloneable#clone clone} or not. * @type {boolean} */ cloneSourcePortStyle:boolean; @@ -57852,7 +57949,7 @@ declare namespace system{ * initially and can be customized to suit the application's needs. * @see yfiles.graph.FoldingEdgeConverterBase * @see yfiles.graph.DefaultFoldingEdgeConverter#reuseMasterPorts - * @class yfiles.graph.DefaultFoldingEdgeConverter + * @class * @extends {yfiles.graph.FoldingEdgeConverterBase} */ export interface DefaultFoldingEdgeConverter extends yfiles.graph.FoldingEdgeConverterBase{} @@ -57903,21 +58000,20 @@ declare namespace system{ * @see yfiles.graph.FoldingManager * @see yfiles.graph.IFolderNodeConverter * @see yfiles.graph.DefaultFoldingEdgeConverter - * @class yfiles.graph.DefaultFolderNodeConverter + * @class * @implements {yfiles.graph.IFolderNodeConverter} */ export interface DefaultFolderNodeConverter extends Object,yfiles.graph.IFolderNodeConverter{} export class DefaultFolderNodeConverter { /** * Initializes a new instance of this class using the values provided by the folderNodeDefaults parameter. - * @param {yfiles.graph.INodeDefaults} folderNodeDefaults - * @constructor + * @param folderNodeDefaults */ constructor(folderNodeDefaults:yfiles.graph.INodeDefaults); /** * Initializes a new instance of this class using the values provided by the folderNodeDefaults parameter. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INodeDefaults} options.folderNodeDefaults + * @param options.folderNodeDefaults * @param {boolean} options.cloneLabelLayoutParameter A value indicating whether the {@link yfiles.graph.DefaultFolderNodeConverter#labelLayoutParameter} instance should be assigned as a {@link yfiles.lang.ICloneable#clone}clone or not. *

    * This option sets the {@link yfiles.graph.DefaultFolderNodeConverter#cloneLabelLayoutParameter} property on the created object. @@ -57962,7 +58058,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.DefaultFolderNodeConverter#portStyle} property on the created object. *

    - * @constructor */ constructor(options:{folderNodeDefaults:yfiles.graph.INodeDefaults,cloneLabelLayoutParameter?:boolean,cloneLabelStyle?:boolean,cloneNodeStyle?:boolean,clonePortStyle?:boolean,copyFirstLabel?:boolean,folderNodeSize?:yfiles.geometry.Size,folderNodeStyle?:yfiles.styles.INodeStyle,labelLayoutParameter?:yfiles.graph.ILabelModelParameter,labelStyle?:yfiles.styles.ILabelStyle,portLocationParameter?:yfiles.graph.IPortLocationModelParameter,portStyle?:yfiles.styles.IPortStyle}); /** @@ -58012,17 +58107,16 @@ declare namespace system{ *

    * This option sets the {@link yfiles.graph.DefaultFolderNodeConverter#portStyle} property on the created object. *

    - * @constructor */ constructor(options?:{cloneLabelLayoutParameter?:boolean,cloneLabelStyle?:boolean,cloneNodeStyle?:boolean,clonePortStyle?:boolean,copyFirstLabel?:boolean,folderNodeSize?:yfiles.geometry.Size,folderNodeStyle?:yfiles.styles.INodeStyle,labelLayoutParameter?:yfiles.graph.ILabelModelParameter,labelStyle?:yfiles.styles.ILabelStyle,portLocationParameter?:yfiles.graph.IPortLocationModelParameter,portStyle?:yfiles.styles.IPortStyle}); /** * Callback factory method that creates the {@link yfiles.graph.ILabelModelParameter} for use in * {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodeLabels}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.ILabel} localLabel The local label in the view whose {@link yfiles.graph.ILabel#layoutParameter} should be initialized. May be null if the label layout parameter is requested for the + * @param foldingView The folding view instance. + * @param localLabel The local label in the view whose {@link #layoutParameter} should be initialized. May be null if the label layout parameter is requested for the * label creation. - * @param {yfiles.graph.ILabel} masterLabel The label that is being represented by the folding label. - * @returns {yfiles.graph.ILabelModelParameter} The {@link yfiles.graph.DefaultFolderNodeConverter#labelLayoutParameter} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.DefaultFolderNodeConverter#cloneLabelLayoutParameter} property. This method may return null to indicate that + * @param masterLabel The label that is being represented by the folding label. + * @returns The {@link #labelLayoutParameter} or a {@link #clone} of it depending on the {@link #cloneLabelLayoutParameter} property. This method may return null to indicate that * the default label layout parameter should not be changed. * @protected */ @@ -58030,11 +58124,11 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.styles.ILabelStyle} for use in * {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodeLabels}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.ILabel} localLabel The local label in the view whose {@link yfiles.graph.ILabel#style} should be initialized. May be null if the label style is requested for the label + * @param foldingView The folding view instance. + * @param localLabel The local label in the view whose {@link #style} should be initialized. May be null if the label style is requested for the label * creation. - * @param {yfiles.graph.ILabel} masterLabel The label that is being represented by the folding label. - * @returns {yfiles.styles.ILabelStyle} The {@link yfiles.graph.DefaultFolderNodeConverter#labelStyle} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.DefaultFolderNodeConverter#cloneLabelStyle} property. This method may return null to indicate that + * @param masterLabel The label that is being represented by the folding label. + * @returns The {@link #labelStyle} or a {@link #clone} of it depending on the {@link #cloneLabelStyle} property. This method may return null to indicate that * the default style should not be changed. * @protected */ @@ -58042,10 +58136,10 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.styles.INodeStyle} for use in * {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodeStyle}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.INode} viewNode The local folder node in the view whose {@link yfiles.graph.INode#style} should be initialized. - * @param {yfiles.graph.INode} masterNode The node that is being represented by the folder node. - * @returns {yfiles.styles.INodeStyle} The {@link yfiles.graph.DefaultFolderNodeConverter#folderNodeStyle} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.DefaultFolderNodeConverter#cloneNodeStyle} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param viewNode The local folder node in the view whose {@link #style} should be initialized. + * @param masterNode The node that is being represented by the folder node. + * @returns The {@link #folderNodeStyle} or a {@link #clone} of it depending on the {@link #cloneNodeStyle} property. This method may return null to indicate that * the default style should not be changed. * @protected */ @@ -58053,10 +58147,10 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.graph.IPortLocationModelParameter} for use in * {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodePorts}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.IPort} localPort The local port in the view whose {@link yfiles.graph.IPort#locationParameter} should be initialized. - * @param {yfiles.graph.IPort} masterPort The port that is being represented by the folding port. - * @returns {yfiles.graph.IPortLocationModelParameter} The {@link yfiles.graph.DefaultFolderNodeConverter#portLocationParameter} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.DefaultFolderNodeConverter#clonePortLocationParameter} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param localPort The local port in the view whose {@link #locationParameter} should be initialized. + * @param masterPort The port that is being represented by the folding port. + * @returns The {@link #portLocationParameter} or a {@link #clone} of it depending on the {@link #clonePortLocationParameter} property. This method may return null to indicate that * the default port location parameter should not be changed. * @protected */ @@ -58064,10 +58158,10 @@ declare namespace system{ /** * Callback factory method that creates the {@link yfiles.styles.IPortStyle} for use in * {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodePorts}. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.IPort} localPort The local port in the view whose {@link yfiles.graph.IPort#style} should be initialized. - * @param {yfiles.graph.IPort} masterPort The port that is being represented by the folding port. - * @returns {yfiles.styles.IPortStyle} The {@link yfiles.graph.DefaultFolderNodeConverter#portStyle} or a {@link yfiles.lang.ICloneable#clone} of it depending on the {@link yfiles.graph.DefaultFolderNodeConverter#clonePortStyle} property. This method may return null to indicate that + * @param foldingView The folding view instance. + * @param localPort The local port in the view whose {@link #style} should be initialized. + * @param masterPort The port that is being represented by the folding port. + * @returns The {@link #portStyle} or a {@link #clone} of it depending on the {@link #clonePortStyle} property. This method may return null to indicate that * the default style should not be changed. * @protected */ @@ -58079,11 +58173,11 @@ declare namespace system{ * and {@link yfiles.graph.DefaultFolderNodeConverter#createLabelLayoutParameter} and use the returned style and layout parameter * if they are non-null when {@link yfiles.graph.FolderNodeState#addLabel adding the label} on the folder node. *

    - * @param {yfiles.graph.FolderNodeState} state The node view state whose labels should be synchronized. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance that has triggered the {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodeState} + * @param state The node view state whose labels should be synchronized. + * @param foldingView The folding view instance that has triggered the {@link #initializeFolderNodeState} * call. - * @param {yfiles.graph.INode} viewNode The collapsed group node in the view that may be changed using the {@link yfiles.graph.FolderNodeState}. - * @param {yfiles.graph.INode} masterNode The master node that the folder node represents. + * @param viewNode The collapsed group node in the view that may be changed using the {@link }. + * @param masterNode The master node that the folder node represents. * @see yfiles.graph.DefaultFolderNodeConverter#labelStyle * @see yfiles.graph.DefaultFolderNodeConverter#labelLayoutParameter * @see yfiles.graph.FoldingManager#getFolderNodeState @@ -58097,10 +58191,10 @@ declare namespace system{ * non-null) but not smaller than the {@link yfiles.input.INodeSizeConstraintProvider#getMinimumSize minimum} size that is reported by a potential {@link yfiles.input.INodeSizeConstraintProvider} * for {@link yfiles.graph.INode}s that has been found in the {@link yfiles.graph.ILookup} of the viewNode. *

    - * @param {yfiles.graph.FolderNodeState} state The node view state whose layout should be synchronized. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.INode} viewNode The local collapsed group node to change. - * @param {yfiles.graph.INode} masterNode The master node that is represented by the local group node. + * @param state The node view state whose layout should be synchronized. + * @param foldingView The folding view instance. + * @param viewNode The local collapsed group node to change. + * @param masterNode The master node that is represented by the local group node. * @protected */ initializeFolderNodeLayout(state:yfiles.graph.FolderNodeState,foldingView:yfiles.graph.IFoldingView,viewNode:yfiles.graph.INode,masterNode:yfiles.graph.INode):void; @@ -58111,10 +58205,10 @@ declare namespace system{ * This method will call {@link yfiles.graph.DefaultFolderNodeConverter#createPortStyle} and {@link yfiles.graph.DefaultFolderNodeConverter#createPortLocationParameter} * for each port at the group node and assign the returned style and location parameter if they are non-null. *

    - * @param {yfiles.graph.FolderNodeState} state The node view state whose ports should be synchronized. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance. - * @param {yfiles.graph.INode} viewNode The local group node. - * @param {yfiles.graph.INode} masterNode The master group node. + * @param state The node view state whose ports should be synchronized. + * @param foldingView The folding view instance. + * @param viewNode The local group node. + * @param masterNode The master group node. * @protected */ initializeFolderNodePorts(state:yfiles.graph.FolderNodeState,foldingView:yfiles.graph.IFoldingView,viewNode:yfiles.graph.INode,masterNode:yfiles.graph.INode):void; @@ -58127,10 +58221,10 @@ declare namespace system{ * {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodeLayout}, and * {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodePorts}. *

    - * @param {yfiles.graph.FolderNodeState} state - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.INode} viewNode - * @param {yfiles.graph.INode} masterNode + * @param state + * @param foldingView + * @param viewNode + * @param masterNode */ initializeFolderNodeState(state:yfiles.graph.FolderNodeState,foldingView:yfiles.graph.IFoldingView,viewNode:yfiles.graph.INode,masterNode:yfiles.graph.INode):void; /** @@ -58139,11 +58233,11 @@ declare namespace system{ * This implementation calls {@link yfiles.graph.DefaultFolderNodeConverter#createNodeStyle} and {@link yfiles.graph.FolderNodeState#style assigns} the style to the group * node if a non-null value has been returned. *

    - * @param {yfiles.graph.FolderNodeState} state The node view state whose style should be synchronized. - * @param {yfiles.graph.IFoldingView} foldingView The folding view instance that has triggered the {@link yfiles.graph.DefaultFolderNodeConverter#initializeFolderNodeState} + * @param state The node view state whose style should be synchronized. + * @param foldingView The folding view instance that has triggered the {@link #initializeFolderNodeState} * call. - * @param {yfiles.graph.INode} viewNode The local node in the view that may be changed using the {@link yfiles.graph.FolderNodeState}. - * @param {yfiles.graph.INode} masterNode The master node that the local folder node represents. + * @param viewNode The local node in the view that may be changed using the {@link }. + * @param masterNode The master node that the local folder node represents. * @see yfiles.graph.FoldingManager#getFolderNodeState * @protected */ @@ -58153,10 +58247,10 @@ declare namespace system{ *

    * This will adjust the label text property or remove the label if there is no master label. *

    - * @param {yfiles.graph.FolderNodeState} state The node view state whose labels should be synchronized. - * @param {yfiles.graph.IFoldingView} foldingView The folding view. - * @param {yfiles.graph.INode} viewNode The local node instance. - * @param {yfiles.graph.INode} masterNode The master node. + * @param state The node view state whose labels should be synchronized. + * @param foldingView The folding view. + * @param viewNode The local node instance. + * @param masterNode The master node. * @protected */ synchronizeLabels(state:yfiles.graph.FolderNodeState,foldingView:yfiles.graph.IFoldingView,viewNode:yfiles.graph.INode,masterNode:yfiles.graph.INode):void; @@ -58165,10 +58259,10 @@ declare namespace system{ *

    * This method calls {@link yfiles.graph.DefaultFolderNodeConverter#synchronizeLabels}, only. *

    - * @param {yfiles.graph.FolderNodeState} state - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.INode} viewNode - * @param {yfiles.graph.INode} masterNode + * @param state + * @param foldingView + * @param viewNode + * @param masterNode */ updateFolderNodeState(state:yfiles.graph.FolderNodeState,foldingView:yfiles.graph.IFoldingView,viewNode:yfiles.graph.INode,masterNode:yfiles.graph.INode):void; /** @@ -58270,7 +58364,7 @@ declare namespace system{ */ clonePortStyle:boolean; /** - * Gets or sets a value indicating whether the {@link yfiles.graph.DefaultFolderNodeConverter#portLocationParameter} instance should be assigned as a {@link yfiles.lang.ICloneable#clone}clone or not. + * Gets or sets a value indicating whether the {@link yfiles.graph.DefaultFolderNodeConverter#portLocationParameter} instance should be assigned as a {@link yfiles.lang.ICloneable#clone clone} or not. * @type {boolean} */ clonePortLocationParameter:boolean; @@ -58289,37 +58383,37 @@ declare namespace system{ /** * A simple implementation of the {@link yfiles.graph.IFoldingEdgeConverter} interface for use in the {@link yfiles.graph.FoldingManager#foldingEdgeConverter} property, that will prevent * folding edges from appearing in the {@link yfiles.graph.IFoldingView view}. - * @class yfiles.graph.ExcludingFoldingEdgeConverter + * @class * @implements {yfiles.graph.IFoldingEdgeConverter} */ export interface ExcludingFoldingEdgeConverter extends Object,yfiles.graph.IFoldingEdgeConverter{} export class ExcludingFoldingEdgeConverter { /** * Always calls {@link yfiles.graph.IFoldingEdgeFactory#excludeFoldingEdge} - * @param {yfiles.graph.IFoldingEdgeFactory} factory - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.IEdge} masterEdge - * @param {yfiles.graph.INode} source - * @param {boolean} sourceIsCollapsed - * @param {yfiles.graph.INode} target - * @param {boolean} targetIsCollapsed - * @returns {yfiles.graph.IEdge} + * @param factory + * @param foldingView + * @param masterEdge + * @param source + * @param sourceIsCollapsed + * @param target + * @param targetIsCollapsed + * @returns */ addFoldingEdge(factory:yfiles.graph.IFoldingEdgeFactory,foldingView:yfiles.graph.IFoldingView,masterEdge:yfiles.graph.IEdge,source:yfiles.graph.INode,sourceIsCollapsed:boolean,target:yfiles.graph.INode,targetIsCollapsed:boolean):yfiles.graph.IEdge; /** * Does nothing and should not normally be called by the view since all folding edges are excluded from it. - * @param {yfiles.graph.FoldingEdgeState} state - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.IEdge} foldingEdge - * @param {yfiles.collections.IList.} masterEdges + * @param state + * @param foldingView + * @param foldingEdge + * @param masterEdges */ initializeFoldingEdgeState(state:yfiles.graph.FoldingEdgeState,foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge,masterEdges:yfiles.collections.IList):void; /** * Does nothing and should not normally be called by the view since all folding edges are excluded from it. - * @param {yfiles.graph.FoldingEdgeState} state - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.IEdge} foldingEdge - * @param {yfiles.collections.IList.} masterEdges + * @param state + * @param foldingView + * @param foldingEdge + * @param masterEdges */ updateFoldingEdgeState(state:yfiles.graph.FoldingEdgeState,foldingView:yfiles.graph.IFoldingView,foldingEdge:yfiles.graph.IEdge,masterEdges:yfiles.collections.IList):void; static $class:yfiles.lang.Class; @@ -58331,27 +58425,26 @@ declare namespace system{ * This implementation by default, will have the {@link yfiles.graph.FoldingEdgeConverterBase#sourcePortLocationParameter} and the {@link yfiles.graph.FoldingEdgeConverterBase#targetPortLocationParameter} properties set to {@link yfiles.graph.FreeNodePortLocationModel#NODE_CENTER_ANCHORED} * and the {@link yfiles.graph.FoldingEdgeConverterBase#resetBends} property set to true. *

    - * @class yfiles.graph.MergingFoldingEdgeConverter + * @class * @extends {yfiles.graph.FoldingEdgeConverterBase} */ export interface MergingFoldingEdgeConverter extends yfiles.graph.FoldingEdgeConverterBase{} export class MergingFoldingEdgeConverter { /** * Initializes a new instance of the {@link yfiles.graph.MergingFoldingEdgeConverter} class. - * @constructor */ constructor(); /** * Adds the first separate edge to the source and target node pair using the {@link yfiles.graph.IFoldingEdgeFactory#addAsSeparateEdge} * method. - * @param {yfiles.graph.IFoldingEdgeFactory} factory - * @param {yfiles.graph.IFoldingView} foldingView - * @param {yfiles.graph.IEdge} masterEdge - * @param {yfiles.graph.INode} viewSourceNode - * @param {boolean} sourceIsCollapsed - * @param {yfiles.graph.INode} targetSourceNode - * @param {boolean} targetIsCollapsed - * @returns {yfiles.graph.IEdge} + * @param factory + * @param foldingView + * @param masterEdge + * @param viewSourceNode + * @param sourceIsCollapsed + * @param targetSourceNode + * @param targetIsCollapsed + * @returns * @protected */ addFirstSeparateEdge(factory:yfiles.graph.IFoldingEdgeFactory,foldingView:yfiles.graph.IFoldingView,masterEdge:yfiles.graph.IEdge,viewSourceNode:yfiles.graph.INode,sourceIsCollapsed:boolean,targetSourceNode:yfiles.graph.INode,targetIsCollapsed:boolean):yfiles.graph.IEdge; @@ -58387,21 +58480,20 @@ declare namespace system{ * * @see yfiles.graph.IFoldingView * @see yfiles.graph.FoldingManager#createFoldingView - * @class yfiles.graph.FoldingManager + * @class */ export interface FoldingManager extends Object{} export class FoldingManager { /** * Creates a manager instance for the given {@link yfiles.graph.FoldingManager#masterGraph} to create views on top of it that support folding operations. - * @param {yfiles.graph.IGraph} masterGraph The graph to use as the {@link yfiles.graph.FoldingManager#masterGraph}. + * @param masterGraph The graph to use as the {@link #masterGraph}. * @throws {Stubs.Exceptions.ArgumentError} masterGraph is null. - * @constructor */ constructor(masterGraph:yfiles.graph.IGraph); /** * Creates a manager instance for the given {@link yfiles.graph.FoldingManager#masterGraph} to create views on top of it that support folding operations. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IGraph} options.masterGraph The graph to use as the {@link yfiles.graph.FoldingManager#masterGraph}. + * @param options.masterGraph The graph to use as the {@link #masterGraph}. * @param {yfiles.graph.IFoldingEdgeConverter} options.foldingEdgeConverter The {@link yfiles.graph.IFoldingEdgeConverter} implementation that is used to create/convert and modify the {@link yfiles.graph.FoldingEdgeStateId folding edges} inside the view instances. *

    * This option sets the {@link yfiles.graph.FoldingManager#foldingEdgeConverter} property on the created object. @@ -58411,7 +58503,6 @@ declare namespace system{ * This option sets the {@link yfiles.graph.FoldingManager#folderNodeConverter} property on the created object. *

    * @throws {Stubs.Exceptions.ArgumentError} masterGraph is null. - * @constructor */ constructor(options:{masterGraph:yfiles.graph.IGraph,foldingEdgeConverter?:yfiles.graph.IFoldingEdgeConverter,folderNodeConverter?:yfiles.graph.IFolderNodeConverter}); /** @@ -58431,7 +58522,6 @@ declare namespace system{ *

    * @see yfiles.graph.FoldingManager#createFoldingView * @see yfiles.graph.FoldingManager#masterGraph - * @constructor */ constructor(options?:{foldingEdgeConverter?:yfiles.graph.IFoldingEdgeConverter,folderNodeConverter?:yfiles.graph.IFolderNodeConverter}); /** @@ -58451,10 +58541,10 @@ declare namespace system{ * method for edges and the {@link yfiles.graph.FoldingManager#getFolderNodeState} method for nodes provide access to that state * while it is not being displayed in a view. *

    - * @param {yfiles.graph.INode} [root=null] A group node or the root of the {@link yfiles.graph.FoldingManager#masterGraph} whose contents will be displayed in the view. - * @param {function(yfiles.graph.INode): boolean} [isExpanded=null] A predicate that can be provided to the view that will be used as a callback to determine the initial {@link yfiles.graph.IFoldingView#isExpanded expansion state} of + * @param [root=null] A group node or the root of the {@link #masterGraph} whose contents will be displayed in the view. + * @param [isExpanded=null] A predicate that can be provided to the view that will be used as a callback to determine the initial {@link #isExpanded expansion state} of * group nodes in the view. - * @returns {yfiles.graph.IFoldingView} A new graph instance that represents a synchronized view on the {@link yfiles.graph.FoldingManager#masterGraph}. + * @returns A new graph instance that represents a synchronized view on the {@link #masterGraph}. * @see yfiles.graph.FoldingManager#prepareFoldingView */ createFoldingView(root?:yfiles.graph.INode,isExpanded?:(obj:yfiles.graph.INode)=>boolean):yfiles.graph.IFoldingView; @@ -58476,10 +58566,10 @@ declare namespace system{ * while it is not being displayed in a view. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.INode} [options.root=null] A group node or the root of the {@link yfiles.graph.FoldingManager#masterGraph} whose contents will be displayed in the view. - * @param {function(yfiles.graph.INode): boolean} [options.isExpanded=null] A predicate that can be provided to the view that will be used as a callback to determine the initial {@link yfiles.graph.IFoldingView#isExpanded expansion state} of + * @param [options.root=null] A group node or the root of the {@link #masterGraph} whose contents will be displayed in the view. + * @param [options.isExpanded=null] A predicate that can be provided to the view that will be used as a callback to determine the initial {@link #isExpanded expansion state} of * group nodes in the view. - * @returns {yfiles.graph.IFoldingView} A new graph instance that represents a synchronized view on the {@link yfiles.graph.FoldingManager#masterGraph}. + * @returns A new graph instance that represents a synchronized view on the {@link #masterGraph}. * @see yfiles.graph.FoldingManager#prepareFoldingView */ createFoldingView(options:{root?:yfiles.graph.INode,isExpanded?:(obj:yfiles.graph.INode)=>boolean}):yfiles.graph.IFoldingView; @@ -58496,8 +58586,8 @@ declare namespace system{ * This method can be used to query the collapsed state of a node, even if the node is currently not present in any managed * view or the node is in fact expanded in all views. *

    - * @param {yfiles.graph.INode} masterNode The node in the {@link yfiles.graph.FoldingManager#masterGraph} for which the state should be returned. - * @returns {yfiles.graph.FolderNodeState} A state holder implementation of a node, which is not part of any graph. + * @param masterNode The node in the {@link #masterGraph} for which the state should be returned. + * @returns A state holder implementation of a node, which is not part of any graph. * @throws {Stubs.Exceptions.ArgumentError} The master node does not belong to the managed graph. */ getFolderNodeState(masterNode:yfiles.graph.INode):yfiles.graph.FolderNodeState; @@ -58508,8 +58598,8 @@ declare namespace system{ * This method can be used to query the state of an edge that is either not currently visible in any {@link yfiles.graph.FoldingManager#views view} or connects to * different source and target nodes because of the {@link yfiles.graph.IFoldingView#collapse collapsed} states of the nodes and their parents in the view. *

    - * @param {yfiles.graph.FoldingEdgeStateId} id The ID of the folding edge for which the folding state should be returned. - * @returns {yfiles.graph.FoldingEdgeState} A {@link yfiles.graph.FoldingEdgeState} that can be used to query and change the properties of the edge. + * @param id The ID of the folding edge for which the folding state should be returned. + * @returns A {@link } that can be used to query and change the properties of the edge. * @see yfiles.graph.FoldingManager#getFolderNodeState * @see yfiles.graph.FoldingEdgeStateId */ @@ -58521,8 +58611,8 @@ declare namespace system{ * by a {@link yfiles.graph.IFoldingView view} because it has never been visualized. This method indicates whether there is state information available for * the given master node. *

    - * @param {yfiles.graph.INode} masterNode The master node for which the state is requested. - * @returns {boolean} Whether {@link yfiles.graph.FoldingManager#getFolderNodeState} would return existing state information. + * @param masterNode The master node for which the state is requested. + * @returns Whether {@link #getFolderNodeState} would return existing state information. * @see yfiles.graph.FoldingManager#getFolderNodeState */ hasFolderNodeState(masterNode:yfiles.graph.INode):boolean; @@ -58533,8 +58623,8 @@ declare namespace system{ * never been requested by a {@link yfiles.graph.IFoldingView} because it has never been visualized. This method indicates whether * there is state information available for the given id. *

    - * @param {yfiles.graph.FoldingEdgeStateId} id The id for which state is requested. - * @returns {boolean} Whether {@link yfiles.graph.FoldingManager#getFoldingEdgeState} would return existing state information. + * @param id The id for which state is requested. + * @returns Whether {@link #getFoldingEdgeState} would return existing state information. * @see yfiles.graph.FoldingManager#getFoldingEdgeState */ hasFoldingEdgeState(id:yfiles.graph.FoldingEdgeStateId):boolean; @@ -58547,7 +58637,7 @@ declare namespace system{ * essential for the initial creation of the elements in the view instance. Overriding methods should always consider to * call the base class implementation, first. *

    - * @param {yfiles.graph.IFoldingView} foldingView The graph view that has just been created but is still empty. + * @param foldingView The graph view that has just been created but is still empty. * @protected */ prepareFoldingView(foldingView:yfiles.graph.IFoldingView):void; @@ -58566,7 +58656,7 @@ declare namespace system{ * to the converter. Using this method, the state of the collapsed nodes in the views can be synchronized according to the * logic in the {@link yfiles.graph.IFolderNodeConverter} implementation. *

    - * @param {yfiles.graph.INode} masterNode The master node that belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. + * @param masterNode The master node that belongs to the {@link #masterGraph}. * @throws {Stubs.Exceptions.ArgumentError} If the provided master node does not belong to the master graph. * @see yfiles.graph.FoldingManager#updateFoldingEdgeStates */ @@ -58583,7 +58673,7 @@ declare namespace system{ * to the converter. Using this method, the state of the representing edges in the views can be synchronized according to * the logic in the {@link yfiles.graph.IFoldingEdgeConverter} implementation. *

    - * @param {yfiles.graph.IEdge} masterEdge The master edge that belongs to the {@link yfiles.graph.FoldingManager#masterGraph}. + * @param masterEdge The master edge that belongs to the {@link #masterGraph}. * @throws {Stubs.Exceptions.ArgumentError} If the provided master edge does not belong to the master graph. * @see yfiles.graph.FoldingManager#updateFolderNodeStates */ @@ -58632,7 +58722,7 @@ declare namespace system{ *

    * When the properties of the state are changed, these changes are reflected immediately in the {@link yfiles.graph.FoldingManager#views}. *

    - * @class yfiles.graph.FoldingBendState + * @class * @final */ export interface FoldingBendState extends Object{} @@ -58643,7 +58733,7 @@ declare namespace system{ * The returned bend is not present in any graph but may be passed to {@link yfiles.graph.IFoldingView#getViewItem} to get the bend * state's view bend in the {@link yfiles.graph.IFoldingView#graph folding view graph}. *

    - * @returns {yfiles.graph.IBend} An {@link yfiles.graph.IBend} instance which represents this bend state. + * @returns An {@link } instance which represents this bend state. */ asBend():yfiles.graph.IBend; /** @@ -58670,7 +58760,7 @@ declare namespace system{ *

    * @see yfiles.graph.FoldingEdgeStateId * @see yfiles.graph.FoldingManager#getFoldingEdgeState - * @class yfiles.graph.FoldingEdgeState + * @class * @extends {yfiles.graph.FoldingLabelOwnerState} * @final */ @@ -58678,10 +58768,10 @@ declare namespace system{ export class FoldingEdgeState { /** * Adds a new {@link yfiles.graph.FoldingBendState} to this edge state at the given index and location. - * @param {yfiles.geometry.Point} location The location of the new bend state. - * @param {number} [index=-1] The index the bend state shall be inserted in the - * {@link yfiles.graph.FoldingEdgeState#bends}; a negative value (which is the default) indicates that the bend should be appended to the end of the list of bends. - * @returns {yfiles.graph.FoldingBendState} The newly added bend state. + * @param location The location of the new bend state. + * @param [index=-1] The index the bend state shall be inserted in the + * {@link #bends}; a negative value (which is the default) indicates that the bend should be appended to the end of the list of bends. + * @returns The newly added bend state. */ addBend(location:yfiles.geometry.Point,index?:number):yfiles.graph.FoldingBendState; /** @@ -58690,7 +58780,7 @@ declare namespace system{ * The returned edge is not present in any graph but may be passed to {@link yfiles.graph.IFoldingView#getViewItem} to get the edge * state's view edge in the {@link yfiles.graph.IFoldingView#graph folding view graph}. *

    - * @returns {yfiles.graph.IEdge} An {@link yfiles.graph.IEdge} instance which represents this edge state. + * @returns An {@link } instance which represents this edge state. */ asEdge():yfiles.graph.IEdge; /** @@ -58699,12 +58789,12 @@ declare namespace system{ clearBends():void; /** * - * @param {yfiles.graph.FoldingLabelState} label + * @param label */ remove(label:yfiles.graph.FoldingLabelState):void; /** * Removes the bend from this edge state. - * @param {yfiles.graph.FoldingBendState} bend The bend to remove. + * @param bend The bend to remove. * @throws {Stubs.Exceptions.ArgumentError} Thrown if the bend doesn't belong to this edge state. */ remove(bend:yfiles.graph.FoldingBendState):void; @@ -58742,7 +58832,7 @@ declare namespace system{ *

    * @see yfiles.graph.FoldingLabelOwnerState#labels * @see yfiles.graph.FoldingLabelOwnerState#addLabel - * @class yfiles.graph.FoldingLabelState + * @class * @final */ export interface FoldingLabelState extends Object{} @@ -58753,7 +58843,7 @@ declare namespace system{ * The returned label is not present in any graph but may be passed to {@link yfiles.graph.IFoldingView#getViewItem} to get the * label state's view label in the {@link yfiles.graph.IFoldingView#graph folding view graph}. *

    - * @returns {yfiles.graph.ILabel} An {@link yfiles.graph.ILabel} instance which represents this label state. + * @returns An {@link } instance which represents this label state. */ asLabel():yfiles.graph.ILabel; /** @@ -58795,19 +58885,19 @@ declare namespace system{ * @see yfiles.graph.FolderNodeState * @see yfiles.graph.FoldingEdgeState * @see yfiles.graph.FoldingLabelState - * @class yfiles.graph.FoldingLabelOwnerState + * @class */ export interface FoldingLabelOwnerState extends Object{} export class FoldingLabelOwnerState { constructor(); /** * Adds a {@link yfiles.graph.FoldingLabelState} to this state. - * @param {string} text The text of the new label. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The layout parameter of the new label. - * @param {yfiles.styles.ILabelStyle} style The style of the new label. - * @param {yfiles.geometry.Size} preferredSize The preferred size of the label. - * @param {Object} tag The tag of the label. - * @returns {yfiles.graph.FoldingLabelState} The newly added {@link yfiles.graph.FoldingLabelState}. + * @param text The text of the new label. + * @param layoutParameter The layout parameter of the new label. + * @param style The style of the new label. + * @param preferredSize The preferred size of the label. + * @param tag The tag of the label. + * @returns The newly added {@link }. * @abstract */ addLabel(text:string,layoutParameter:yfiles.graph.ILabelModelParameter,style:yfiles.styles.ILabelStyle,preferredSize:yfiles.geometry.Size,tag:Object):yfiles.graph.FoldingLabelState; @@ -58831,7 +58921,7 @@ declare namespace system{ * @see yfiles.graph.FoldingEdgeState#targetPort * @see yfiles.graph.FolderNodeState#ports * @see yfiles.graph.FolderNodeState#getFoldingPortState - * @class yfiles.graph.FoldingPortState + * @class */ export interface FoldingPortState extends Object{} export class FoldingPortState { @@ -58841,7 +58931,7 @@ declare namespace system{ * The returned port is not present in any graph but may be passed to {@link yfiles.graph.IFoldingView#getViewItem} to get the port * state's view port in the {@link yfiles.graph.IFoldingView#graph folding view graph}. *

    - * @returns {yfiles.graph.IPort} An {@link yfiles.graph.IPort} instance which represents this port state. + * @returns An {@link } instance which represents this port state. * @abstract */ asPort():yfiles.graph.IPort; @@ -58869,7 +58959,7 @@ declare namespace system{ * When the properties of the state are changed, these changes are reflected immediately in the {@link yfiles.graph.FoldingManager#views}. *

    * @see yfiles.graph.FoldingManager#getFolderNodeState - * @class yfiles.graph.FolderNodeState + * @class * @extends {yfiles.graph.FoldingLabelOwnerState} * @final */ @@ -58881,7 +58971,7 @@ declare namespace system{ * The returned node is not present in any graph but may be passed to {@link yfiles.graph.IFoldingView#getViewItem} to get the node * state's folder node in the {@link yfiles.graph.IFoldingView#graph folding view graph}. *

    - * @returns {yfiles.graph.INode} An {@link yfiles.graph.INode} instance which represents this folder node state. + * @returns An {@link } instance which represents this folder node state. */ asNode():yfiles.graph.INode; /** @@ -58889,15 +58979,15 @@ declare namespace system{ *

    * This method can be used to query the folding state of a port at the folder which is represented by this state. *

    - * @param {yfiles.graph.IPort} masterPort The master port for which the state should be returned. - * @returns {yfiles.graph.FoldingPortState} A state holder implementation of the masterPort, which reflects the port in the node's collapsed state. + * @param masterPort The master port for which the state should be returned. + * @returns A state holder implementation of the masterPort, which reflects the port in the node's collapsed state. * @see yfiles.graph.FoldingPortState#style * @see yfiles.graph.FoldingPortState#locationParameter */ getFoldingPortState(masterPort:yfiles.graph.IPort):yfiles.graph.FoldingPortState; /** * - * @param {yfiles.graph.FoldingLabelState} label + * @param label */ remove(label:yfiles.graph.FoldingLabelState):void; /** @@ -58926,9 +59016,10 @@ declare namespace system{ * Interface used by {@link yfiles.graph.FoldingManager} and {@link yfiles.graph.IFoldingView} which is responsible for managing edges * between folder nodes. *

    - * Since CreateFoldingView creates views that can potentially contain edges that connect to nodes which have a different - * set of attributes, these edges might need to have a separate set of attributes, too. Implementations of this interface - * are being called by the {@link yfiles.graph.IFoldingView}s to configure these kind of folding edges. + * Since {@link yfiles.graph.FoldingManager#createFoldingView} creates views that can potentially contain edges that connect to + * nodes which have a different set of attributes, these edges might need to have a separate set of attributes, too. + * Implementations of this interface are being called by the + * {@link yfiles.graph.IFoldingView}s to configure these kind of folding edges. *

    * @see yfiles.graph.DefaultFoldingEdgeConverter * @see yfiles.graph.FoldingManager#foldingEdgeConverter @@ -58946,18 +59037,18 @@ declare namespace system{ * and return the values that these implementation yields to the caller. The implementation can optionally query the {@link yfiles.graph.IFoldingEdgeFactory#getExistingFoldingEdges existing folding edges} * between the source and target node and decide whether to add the edge {@link yfiles.graph.IFoldingEdgeFactory#addToExistingFoldingEdge to the existing folding edge}. *

    - * @param {yfiles.graph.IFoldingEdgeFactory} factory The {@link yfiles.graph.IFoldingEdgeFactory} implementation that needs to be called in order to communicate the results of this + * @param factory The {@link } implementation that needs to be called in order to communicate the results of this * query. - * @param {yfiles.graph.IFoldingView} foldingView The instance into which the folding edge is going to be inserted. - * @param {yfiles.graph.IEdge} masterEdge The edge from the {@link yfiles.graph.FoldingManager#masterGraph} that needs to be represented by a folding edge. Note that you may not return this instance. - * @param {yfiles.graph.INode} source The source node that belongs to the {@link yfiles.graph.IFoldingView} graph that will act as the local view node of the actual + * @param foldingView The instance into which the folding edge is going to be inserted. + * @param masterEdge The edge from the {@link #masterGraph} that needs to be represented by a folding edge. Note that you may not return this instance. + * @param source The source node that belongs to the {@link } graph that will act as the local view node of the actual * source node. - * @param {boolean} sourceIsCollapsed Determines whether the source is currently a folder node. - * @param {yfiles.graph.INode} target The target node that belongs to the {@link yfiles.graph.IFoldingView} graph that will act as the local view node of the actual + * @param sourceIsCollapsed Determines whether the source is currently a folder node. + * @param target The target node that belongs to the {@link } graph that will act as the local view node of the actual * target node. - * @param {boolean} targetIsCollapsed Determines whether the target is currently a folder node. - * @returns {yfiles.graph.IEdge} The edge as returned by {@link yfiles.graph.IFoldingEdgeFactory#addAsSeparateEdge}, or - * {@link yfiles.graph.IFoldingEdgeFactory#addToExistingFoldingEdge}, or null if the edge will be {@link yfiles.graph.IFoldingEdgeFactory#excludeFoldingEdge excluded} from the view. + * @param targetIsCollapsed Determines whether the target is currently a folder node. + * @returns The edge as returned by {@link #addAsSeparateEdge}, or + * {@link #addToExistingFoldingEdge}, or null if the edge will be {@link #excludeFoldingEdge excluded} from the view. * @abstract */ addFoldingEdge(factory:yfiles.graph.IFoldingEdgeFactory,foldingView:yfiles.graph.IFoldingView,masterEdge:yfiles.graph.IEdge,source:yfiles.graph.INode,sourceIsCollapsed:boolean,target:yfiles.graph.INode,targetIsCollapsed:boolean):yfiles.graph.IEdge; @@ -58967,10 +59058,10 @@ declare namespace system{ * Implementations may not use the {@link yfiles.graph.IFoldingView}'s {@link yfiles.graph.IFoldingView#graph} instance to modify the foldingEdge, because this would * create and enqueue undo events. Rather the properties provided by the state implementation must be set. *

    - * @param {yfiles.graph.FoldingEdgeState} state The {@link yfiles.graph.FoldingEdgeState} of the edge to change. - * @param {yfiles.graph.IFoldingView} foldingView The graph to which the folding edge belongs. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge for which the appearance shall be determined. - * @param {yfiles.collections.IList.} masterEdges The list of {@link yfiles.graph.IFoldingView#getMasterEdges master edges}, that the folding edge initially represents. + * @param state The {@link } of the edge to change. + * @param foldingView The graph to which the folding edge belongs. + * @param foldingEdge The folding edge for which the appearance shall be determined. + * @param masterEdges The list of {@link #getMasterEdges master edges}, that the folding edge initially represents. * @see yfiles.graph.IFoldingEdgeConverter#updateFoldingEdgeState * @abstract */ @@ -58984,10 +59075,10 @@ declare namespace system{ * Implementations may not use the {@link yfiles.graph.IFoldingView}'s {@link yfiles.graph.IFoldingView#graph} instance to modify the foldingEdge, because this would * create and enqueue undo events. Rather the properties provided by the state implementation must be set. *

    - * @param {yfiles.graph.FoldingEdgeState} state The {@link yfiles.graph.FoldingEdgeState} of the edge to change. - * @param {yfiles.graph.IFoldingView} foldingView The graph to which the folding edge belongs. - * @param {yfiles.graph.IEdge} foldingEdge The folding edge for which the appearance might need an update. - * @param {yfiles.collections.IList.} masterEdges The list of {@link yfiles.graph.IFoldingView#getMasterEdges master edges}, that the folding edge currently represents. + * @param state The {@link } of the edge to change. + * @param foldingView The graph to which the folding edge belongs. + * @param foldingEdge The folding edge for which the appearance might need an update. + * @param masterEdges The list of {@link #getMasterEdges master edges}, that the folding edge currently represents. * @see yfiles.graph.IFoldingEdgeConverter#initializeFoldingEdgeState * @abstract */ @@ -59001,9 +59092,9 @@ declare namespace system{ * Interface used by {@link yfiles.graph.FoldingManager} and {@link yfiles.graph.IFoldingView} which is responsible for managing the * appearance of folder nodes. *

    - * Since CreateFoldingView creates views that can potentially contain nodes which have a different set of attributes, these - * attributes need to be determined somehow. Implementations of this interface are being called by the {@link yfiles.graph.IFoldingView view}s to configure - * the appearance of these {@link yfiles.graph.IFoldingView#isInFoldingState folder nodes}. + * Since {@link yfiles.graph.FoldingManager#createFoldingView} creates views that can potentially contain nodes which have a + * different set of attributes, these attributes need to be determined somehow. Implementations of this interface are being + * called by the {@link yfiles.graph.IFoldingView view}s to configure the appearance of these {@link yfiles.graph.IFoldingView#isInFoldingState folder nodes}. *

    * @see yfiles.graph.DefaultFolderNodeConverter * @see yfiles.graph.FoldingManager#folderNodeConverter @@ -59024,10 +59115,10 @@ declare namespace system{ *

    * Note that changing the appearance has to be done on state. *

    - * @param {yfiles.graph.FolderNodeState} state The folder node state to initialize. - * @param {yfiles.graph.IFoldingView} foldingView The graph instance for which the folder node has been created. - * @param {yfiles.graph.INode} viewNode The folder node instance in the view - * @param {yfiles.graph.INode} masterNode The node that represents the {@link yfiles.graph.IFoldingView#getMasterItem} of the viewstate to change. + * @param state The folder node state to initialize. + * @param foldingView The graph instance for which the folder node has been created. + * @param viewNode The folder node instance in the view + * @param masterNode The node that represents the {@link #getMasterItem} of the viewstate to change. * @see yfiles.graph.IFolderNodeConverter#updateFolderNodeState * @abstract */ @@ -59042,10 +59133,10 @@ declare namespace system{ *

    * Note that changing the appearance has to be done on state. *

    - * @param {yfiles.graph.FolderNodeState} state The folder node state to update. - * @param {yfiles.graph.IFoldingView} foldingView The graph instance for which the folder node can be changed. - * @param {yfiles.graph.INode} viewNode The folder node instance in the view - * @param {yfiles.graph.INode} masterNode The node that represents the {@link yfiles.graph.IFoldingView#getMasterItem} of the viewstate to change. + * @param state The folder node state to update. + * @param foldingView The graph instance for which the folder node can be changed. + * @param viewNode The folder node instance in the view + * @param masterNode The node that represents the {@link #getMasterItem} of the viewstate to change. * @see yfiles.graph.IFolderNodeConverter#initializeFolderNodeState * @abstract */ @@ -59092,11 +59183,11 @@ declare namespace system{ * folding edge. Existing ports at the provided source and target nodes may be specified to further influence the folding * edge creation. *

    - * @param {yfiles.graph.IPort} sourcePort The source port at the source node in the view to use or null if an extra {@link yfiles.graph.IFoldingView#isInFoldingState folding state} port should be added for the + * @param sourcePort The source port at the source node in the view to use or null if an extra {@link #isInFoldingState folding state} port should be added for the * edge to connect to at the source. - * @param {yfiles.graph.IPort} targetPort The target port at the target node in the view to use or null if an extra {@link yfiles.graph.IFoldingView#isInFoldingState folding state} port should be added for the + * @param targetPort The target port at the target node in the view to use or null if an extra {@link #isInFoldingState folding state} port should be added for the * edge to connect to at the target. - * @returns {yfiles.graph.IEdge} The folding edge that has been created in the view. Don't change the properties of the edge directly. + * @returns The folding edge that has been created in the view. Don't change the properties of the edge directly. * @see yfiles.graph.IFoldingEdgeConverter * @see yfiles.graph.IFoldingView#getViewItem * @abstract @@ -59113,8 +59204,8 @@ declare namespace system{ * method to retrieve the current set of existing folding edges that interconnect the same source and target nodes. The * range of valid parameters is constrained to this collection. *

    - * @param {yfiles.graph.IEdge} foldingEdge One of the {@link yfiles.graph.IFoldingEdgeFactory#getExistingFoldingEdges existing folding edges} from the view which has been chosen to represent the master edge in this view. - * @returns {yfiles.graph.IEdge} The folding edge that represents the edge in the view, which is the same as the foldingEdge parameter. Don't change the + * @param foldingEdge One of the {@link #getExistingFoldingEdges existing folding edges} from the view which has been chosen to represent the master edge in this view. + * @returns The folding edge that represents the edge in the view, which is the same as the foldingEdge parameter. Don't change the * properties of the edge directly. * @see yfiles.graph.IFoldingEdgeConverter * @see yfiles.graph.IFoldingEdgeFactory#getExistingFoldingEdges @@ -59129,7 +59220,7 @@ declare namespace system{ * null should be returned as the result of a {@link yfiles.graph.IFoldingEdgeConverter#addFoldingEdge} call, which is the same as * the return value of this method. So it is possible to just pass the return value on to the caller. *

    - * @returns {yfiles.graph.IEdge} This method will always return null. This is for symmetry reasons to be easily exchangeable with the other methods. + * @returns This method will always return null. This is for symmetry reasons to be easily exchangeable with the other methods. * @see yfiles.graph.IFoldingEdgeConverter * @abstract */ @@ -59143,8 +59234,8 @@ declare namespace system{ * would, if it was included in this view. One of the items in the returned collection can be passed to the {@link yfiles.graph.IFoldingEdgeFactory#addToExistingFoldingEdge} * method. *

    - * @param {boolean} ignoreDirection Whether the direction of the edges should be ignored so that reverse edges are included in the enumeration, too. - * @returns {yfiles.collections.IEnumerable.} An collection of currently existing folding edges in the view that interconnects the same source and target node. + * @param ignoreDirection Whether the direction of the edges should be ignored so that reverse edges are included in the enumeration, too. + * @returns An collection of currently existing folding edges in the view that interconnects the same source and target node. * @abstract */ getExistingFoldingEdges(ignoreDirection:boolean):yfiles.collections.IEnumerable; @@ -59153,801 +59244,6 @@ declare namespace system{ $class:yfiles.lang.Class; isInstance(o:Object):boolean; }; - export enum StretchStripeLabelModelPosition{ - /** - * Encodes a position at the top side of the node interior - */ - NORTH, - /** - * Encodes a position at the right side of the node interior - */ - EAST, - /** - * Encodes a position at the bottom side of the node interior - */ - SOUTH, - /** - * Encodes a position at the left side of the node interior - */ - WEST - } - /** - * A label model for labels that is especially tailored to be used as a model for the four default positions where the - * label of a stripe may lie. - *

    - * This label model supports four positions inside of the stripe bounds. The east and west positions are rotated - * automatically. The {@link yfiles.graph.ILabel#owner} is expected to be an {@link yfiles.graph.IStripe} instance, i.e. the parameter supports only {@link yfiles.graph.IStripe} - * instances. - *

    - * @class yfiles.graph.StretchStripeLabelModel - * @implements {yfiles.graph.ILabelModel} - * @implements {yfiles.graph.ILabelModelParameterProvider} - */ - export interface StretchStripeLabelModel extends Object,yfiles.graph.ILabelModel,yfiles.graph.ILabelModelParameterProvider{} - export class StretchStripeLabelModel { - /** - * Creates a new instance of this model with empty insets. - * @param {Object} [options=null] The parameters to pass. - * @param {yfiles.geometry.Insets} options.insets The insets to use within the stripe's {@link yfiles.graph.IStripe#layout}. - *

    - * This option sets the {@link yfiles.graph.StretchStripeLabelModel#insets} property on the created object. - *

    - * @param {boolean} options.useActualInsets Whether or not to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label inside the stripe header area. - *

    - * This option sets the {@link yfiles.graph.StretchStripeLabelModel#useActualInsets} property on the created object. - *

    - * @constructor - */ - constructor(options?:{insets?:yfiles.geometry.Insets,useActualInsets?:boolean}); - /** - * - * @returns {yfiles.graph.ILabelModelParameter} - */ - createDefaultParameter():yfiles.graph.ILabelModelParameter; - /** - * Creates the parameter for the given position. - * @param {yfiles.graph.StretchStripeLabelModelPosition} position The position. - * @returns {yfiles.graph.ILabelModelParameter} - */ - createParameter(position:yfiles.graph.StretchStripeLabelModelPosition):yfiles.graph.ILabelModelParameter; - /** - * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} - */ - getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; - /** - * Calculates the geometry in form of an {@link yfiles.geometry.IOrientedRectangle} for a given label using the given model - * parameter. - *

    - * The geometry is calculated in table coordinates, i.e. relative to {@link yfiles.graph.ITable#relativeLocation}. - *

    - * @param {yfiles.graph.ILabel} label the label to calculate the geometry for - * @param {yfiles.graph.ILabelModelParameter} layoutParameter A parameter that has been created by this model. This is typically the parameter that yielded this instance through its - * {@link yfiles.graph.ILabelModelParameter#model} property. - * @returns {yfiles.geometry.IOrientedRectangle} An instance that describes the geometry. This is typically an instance designed as a flyweight, so clients should not - * cache the instance but store the values if they need a snapshot for later use - */ - getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; - /** - * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} - */ - getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; - /** - * - * @param {yfiles.lang.Class} type - * @returns {Object} - */ - lookup(type:yfiles.lang.Class):Object; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static NORTH:yfiles.graph.ILabelModelParameter; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static SOUTH:yfiles.graph.ILabelModelParameter; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static EAST:yfiles.graph.ILabelModelParameter; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static WEST:yfiles.graph.ILabelModelParameter; - /** - * Gets or sets the insets to use within the stripe's {@link yfiles.graph.IStripe#layout}. - * @default '0' - * @type {yfiles.geometry.Insets} - */ - insets:yfiles.geometry.Insets; - /** - * Gets or sets whether or not to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label inside the - * stripe header area. - *

    - * If true the header insets are used. Default is false - *

    - * @default false - * @type {boolean} - */ - useActualInsets:boolean; - static $class:yfiles.lang.Class; - } - export enum StripeLabelModelPosition{ - /** - * Encodes a position at the top side of the node interior - */ - NORTH, - /** - * Encodes a position at the right side of the node interior - */ - EAST, - /** - * Encodes a position at the bottom side of the node interior - */ - SOUTH, - /** - * Encodes a position at the left side of the node interior - */ - WEST - } - /** - * A label model for labels that is especially tailored to be used as a model for the four default positions where the - * label of a stripe may lie. - *

    - * This label model supports four positions inside of the stripe bounds. The east and west positions are rotated - * automatically. The {@link yfiles.graph.ILabel#owner} is expected to be an {@link yfiles.graph.IStripe} instance, i.e. the parameter supports only {@link yfiles.graph.IStripe} - * instances. - *

    - * @class yfiles.graph.StripeLabelModel - * @implements {yfiles.graph.ILabelModel} - * @implements {yfiles.graph.ILabelModelParameterProvider} - */ - export interface StripeLabelModel extends Object,yfiles.graph.ILabelModel,yfiles.graph.ILabelModelParameterProvider{} - export class StripeLabelModel { - /** - * Creates a new instance of this model with empty insets. - * @param {Object} [options=null] The parameters to pass. - * @param {number} options.ratio The ratio how far the label should be positioned from the border in the header area. - *

    - * This option sets the {@link yfiles.graph.StripeLabelModel#ratio} property on the created object. - *

    - * @param {boolean} options.useActualInsets A value indicating whether to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label inside the stripe header area. - *

    - * This option sets the {@link yfiles.graph.StripeLabelModel#useActualInsets} property on the created object. - *

    - * @constructor - */ - constructor(options?:{ratio?:number,useActualInsets?:boolean}); - /** - * - * @returns {yfiles.graph.ILabelModelParameter} - */ - createDefaultParameter():yfiles.graph.ILabelModelParameter; - /** - * Creates the parameter for the given position. - * @param {yfiles.graph.StripeLabelModelPosition} position The position. - * @returns {yfiles.graph.ILabelModelParameter} - */ - createParameter(position:yfiles.graph.StripeLabelModelPosition):yfiles.graph.ILabelModelParameter; - /** - * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModelParameter} layoutParameter - * @returns {yfiles.graph.ILookup} - */ - getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; - /** - * Calculates the geometry in form of an {@link yfiles.geometry.IOrientedRectangle} for a given label using the given model - * parameter. - *

    - * The geometry is calculated in table coordinates, i.e. relative to {@link yfiles.graph.ITable#relativeLocation}. - *

    - * @param {yfiles.graph.ILabel} label the label to calculate the geometry for - * @param {yfiles.graph.ILabelModelParameter} layoutParameter A parameter that has been created by this model. This is typically the parameter that yielded this instance through its - * {@link yfiles.graph.ILabelModelParameter#model} property. - * @returns {yfiles.geometry.IOrientedRectangle} An instance that describes the geometry. This is typically an instance designed as a flyweight, so clients should not - * cache the instance but store the values if they need a snapshot for later use - */ - getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; - /** - * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.graph.ILabelModel} model - * @returns {yfiles.collections.IEnumerable.} - */ - getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; - /** - * - * @param {yfiles.lang.Class} type - * @returns {Object} - */ - lookup(type:yfiles.lang.Class):Object; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static NORTH:yfiles.graph.ILabelModelParameter; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static SOUTH:yfiles.graph.ILabelModelParameter; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static EAST:yfiles.graph.ILabelModelParameter; - /** - * A convenience parameter instance that can be shared between label instances. - *

    - * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link Stubs.Exceptions.InvalidOperationError}. - *

    - * @const - * @static - * @type {yfiles.graph.ILabelModelParameter} - */ - static WEST:yfiles.graph.ILabelModelParameter; - /** - * Gets or sets a value indicating whether to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label - * inside the stripe header area. - *

    - * If true the header insets are used. Default is false - *

    - * @default false - * @type {boolean} - */ - useActualInsets:boolean; - /** - * Gets or sets the ratio how far the label should be positioned from the border in the header area. - *

    - * 0 means the label is positioned on the outer border, 1 means it is positioned at the inner border of the header or inset - * area. Default value is 0.5 - *

    - * @default 0.5 - * @type {number} - */ - ratio:number; - static $class:yfiles.lang.Class; - } - /** - * Default implementation of the {@link yfiles.graph.ITable} interface. - * @class yfiles.graph.Table - * @implements {yfiles.graph.ITable} - * @implements {yfiles.lang.ICloneable} - */ - export interface Table extends Object,yfiles.graph.ITable,yfiles.lang.ICloneable{} - export class Table { - /** - * Default constructor that creates an empty table - * @param {Object} [options=null] The parameters to pass. - * @param {yfiles.geometry.Insets} [options.insets=null] Sets the insets property. - * @param {yfiles.geometry.Point} [options.relativeLocation=null] Sets the relativeLocation property. - * @param {yfiles.graph.IStripeDefaults} options.rowDefaults The defaults for rows. - *

    - * This option sets the {@link yfiles.graph.Table#rowDefaults} property on the created object. - *

    - * @param {yfiles.graph.IStripeDefaults} options.columnDefaults The defaults for Columns. - *

    - * This option sets the {@link yfiles.graph.Table#columnDefaults} property on the created object. - *

    - * @constructor - */ - constructor(options?:{insets?:yfiles.geometry.Insets,relativeLocation?:yfiles.geometry.Point,rowDefaults?:yfiles.graph.IStripeDefaults,columnDefaults?:yfiles.graph.IStripeDefaults}); - /** - * - * @param {yfiles.graph.IStripe} owner - * @param {string} text - * @param {yfiles.graph.ILabelModelParameter} [layoutParameter=null] - * @param {yfiles.styles.ILabelStyle} [style=null] - * @param {yfiles.geometry.Size} [preferredSize=null] - * @param {Object} [tag=null] - * @returns {yfiles.graph.ILabel} - */ - addLabel(owner:yfiles.graph.IStripe,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object):yfiles.graph.ILabel; - /** - * - * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IStripe} options.owner - * @param {string} options.text - * @param {yfiles.graph.ILabelModelParameter} [options.layoutParameter=null] - * @param {yfiles.styles.ILabelStyle} [options.style=null] - * @param {yfiles.geometry.Size} [options.preferredSize=null] - * @param {Object} [options.tag=null] - * @returns {yfiles.graph.ILabel} - */ - addLabel(options:{owner:yfiles.graph.IStripe,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object}):yfiles.graph.ILabel; - /** - * - * @returns {Object} - */ - clone():Object; - /** - * Called during {@link yfiles.graph.Table#clone} to create a copy of column - *

    - * If column implements the {@link yfiles.lang.ICloneable} interface, the column instance is - * {@link yfiles.lang.ICloneable#clone}d, otherwise, the original instance is returned unchanged. - *

    - * @param {yfiles.graph.IColumn} column The column that should be copied during a clone operation. - * @returns {yfiles.graph.IColumn} A clone of column if possible, otherwise the original reference to column - * @protected - */ - copyColumn(column:yfiles.graph.IColumn):yfiles.graph.IColumn; - /** - * Called during {@link yfiles.graph.Table#clone} to create a copy of originalDefaults - *

    - * This implementation returns an unchanged reference to originalDefaults. If you need to create a deep clone of - * originalDefaults, you'll have to perform the cloning yourself. - *

    - * @param {yfiles.graph.IStripeDefaults} originalDefaults The default settings that should be copied during a clone operation. - * @returns {yfiles.graph.IStripeDefaults} The original reference to originalDefaults - * @protected - */ - copyDefaults(originalDefaults:yfiles.graph.IStripeDefaults):yfiles.graph.IStripeDefaults; - /** - * Called during {@link yfiles.graph.Table#clone} to create a copy of row - *

    - * If row implements the {@link yfiles.lang.ICloneable} interface, the row instance is - * {@link yfiles.lang.ICloneable#clone}d, otherwise, the original instance is returned unchanged. - *

    - * @param {yfiles.graph.IRow} row The row that should be copied during a clone operation. - * @returns {yfiles.graph.IRow} A clone of row if possible, otherwise the original reference to row - * @protected - */ - copyRow(row:yfiles.graph.IRow):yfiles.graph.IRow; - /** - * - * @param {yfiles.graph.IColumn} owner - * @param {number} [width=null] - * @param {number} [minWidth=null] - * @param {yfiles.geometry.Insets} [insets=null] - * @param {yfiles.styles.IStripeStyle} [style=null] - * @param {Object} [tag=null] - * @param {number} [index=null] - * @returns {yfiles.graph.IColumn} - */ - createChildColumn(owner:yfiles.graph.IColumn,width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IColumn; - /** - * - * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IColumn} options.owner - * @param {number} [options.width=null] - * @param {number} [options.minWidth=null] - * @param {yfiles.geometry.Insets} [options.insets=null] - * @param {yfiles.styles.IStripeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @param {number} [options.index=null] - * @returns {yfiles.graph.IColumn} - */ - createChildColumn(options:{owner:yfiles.graph.IColumn,width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number}):yfiles.graph.IColumn; - /** - * - * @param {yfiles.graph.IRow} owner - * @param {number} [height=null] - * @param {number} [minHeight=null] - * @param {yfiles.geometry.Insets} [insets=null] - * @param {yfiles.styles.IStripeStyle} [style=null] - * @param {Object} [tag=null] - * @param {number} [index=null] - * @returns {yfiles.graph.IRow} - */ - createChildRow(owner:yfiles.graph.IRow,height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IRow; - /** - * - * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IRow} options.owner - * @param {number} [options.height=null] - * @param {number} [options.minHeight=null] - * @param {yfiles.geometry.Insets} [options.insets=null] - * @param {yfiles.styles.IStripeStyle} [options.style=null] - * @param {Object} [options.tag=null] - * @param {number} [options.index=null] - * @returns {yfiles.graph.IRow} - */ - createChildRow(options:{owner:yfiles.graph.IRow,height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number}):yfiles.graph.IRow; - /** - * Callback method that creates the Column defaults. - * @returns {yfiles.graph.IStripeDefaults} A new instance of the {@link yfiles.graph.StripeDefaults} class which is used for newly created columns. - * @protected - */ - createColumnDefaults():yfiles.graph.IStripeDefaults; - /** - * Callback method that creates the row defaults. - * @returns {yfiles.graph.IStripeDefaults} A new instance of the {@link yfiles.graph.StripeDefaults} class that is used for newly created rows. - * @protected - */ - createRowDefaults():yfiles.graph.IStripeDefaults; - /** - * Installs the undo support for use with all tables that are bound to nodes in graph. - *

    - * This method queries the graph for its undo support dynamically whenever undo support is queried in the table. In - * contrast to {@link yfiles.graph.Table#installStaticUndoSupport} the undo support installed with this method will thus always be - * the one which is the currently available support for the graph. - *

    - * @param {yfiles.graph.IGraph} graph The graph where the nodes exist or will be created/changed and where the undo support should come from. - * @see yfiles.graph.Table#uninstallDynamicUndoSupport - * @see yfiles.graph.Table#installStaticUndoSupport - * @static - */ - static installDynamicUndoSupport(graph:yfiles.graph.IGraph):void; - /** - * Installs the undo support for use with all tables that are bound to nodes in graph. - *

    - * This methods installs the undo support which manages the graph at the time this method is called. In contrast to {@link yfiles.graph.Table#installDynamicUndoSupport} - * the installed undo support will not change when the graph's undo support changes. - *

    - *

    - * This method adds undo support both for existing nodes in graph as well as for newly created or changed nodes. - *

    - * @param {yfiles.graph.IGraph} graph The graph where the nodes exist or will be created/changed. - * @see yfiles.graph.Table#uninstallStaticUndoSupport - * @see yfiles.graph.Table#installDynamicUndoSupport - * @static - */ - static installStaticUndoSupport(graph:yfiles.graph.IGraph):void; - /** - * - * @param {yfiles.lang.Class} type - * @returns {Object} - */ - lookup(type:yfiles.lang.Class):Object; - /** - * Called after a label has been added to a stripe. - *

    - * This method raises the {@link yfiles.graph.Table#addLabelAddedListener LabelAdded} event. - *

    - * @param {yfiles.graph.ILabel} label The label that has just been added. - * @protected - */ - onLabelAdded(label:yfiles.graph.ILabel):void; - /** - * Callback that is invoked after a label has changed. - *

    - * This method raises the {@link yfiles.graph.Table#addLabelChangedListener LabelChanged} event. - *

    - * @param {yfiles.graph.ILabel} label The label that has changed. - * @protected - */ - onLabelChanged(label:yfiles.graph.ILabel):void; - /** - * Called after a label has been removed from its stripe. - *

    - * This method raises the {@link yfiles.graph.Table#addLabelRemovedListener LabelRemoved} event. - *

    - * @param {yfiles.graph.ILabel} label The label that has just been removed. - * @param {yfiles.graph.ILabelOwner} owner The old owner of the label. - * @protected - */ - onLabelRemoved(owner:yfiles.graph.ILabelOwner,label:yfiles.graph.ILabel):void; - /** - * Callback that is invoked after a stripe has changed. - *

    - * This will trigger the {@link yfiles.graph.Table#addStripeChangedListener StripeChanged} event. - *

    - * @param {yfiles.graph.IStripe} owner The original owner - * @param {yfiles.graph.IStripe} stripe The stripe that has changed. - * @param {yfiles.graph.ITable} oldTable The original table owner, in case the stripe has been moved between different table instances - * @protected - */ - onStripeChanged(owner:yfiles.graph.IStripe,stripe:yfiles.graph.IStripe,oldTable:yfiles.graph.ITable):void; - /** - * Called after a stripe has been created and added to a table. - *

    - * This method raises the {@link yfiles.graph.Table#addStripeCreatedListener StripeCreated} event. - *

    - * @param {yfiles.graph.IStripe} stripe The stripe that has just been created. - * @protected - */ - onStripeCreated(stripe:yfiles.graph.IStripe):void; - /** - * Called after a stripe has been removed from its owner. - *

    - * This method raises the {@link yfiles.graph.Table#addStripeRemovedListener StripeRemoved} event. - *

    - * @param {yfiles.graph.IStripe} stripe The stripe that has just been removed. - * @param {yfiles.graph.IStripe} owner The old owner of the stripe. - * @protected - */ - onStripeRemoved(owner:yfiles.graph.IStripe,stripe:yfiles.graph.IStripe):void; - /** - * Removes the given label from its owner. - *

    - * This will trigger the corresponding event. - *

    - * @param {yfiles.graph.ILabel} label the label to remove - * @throws {Stubs.Exceptions.ArgumentError} If the label is not associated with this table instance. - */ - remove(label:yfiles.graph.ILabel):void; - /** - * - * @param {yfiles.graph.IStripe} stripe - */ - remove(stripe:yfiles.graph.IStripe):void; - /** - * Sets the label model parameter for the given label. - * @param {yfiles.graph.ILabel} label The label. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The new parameter. - * @throws {Stubs.Exceptions.ArgumentError} If the parameter cannot be used for this label or if the label is not associated with this table instance. - */ - setLabelLayoutParameter(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):void; - /** - * Sets the preferred size of the label. - * @param {yfiles.graph.ILabel} label The label. - * @param {yfiles.geometry.Size} preferredSize The new preferred size. - * @throws {Stubs.Exceptions.ArgumentError} If the label is not associated with this table instance. - * @see yfiles.graph.ILabel#preferredSize - */ - setLabelPreferredSize(label:yfiles.graph.ILabel,preferredSize:yfiles.geometry.Size):void; - /** - * Sets the label text of the given label. - * @param {yfiles.graph.ILabel} label the label to modify - * @param {string} text the new text of the label - * @throws {Stubs.Exceptions.ArgumentError} If the label is not associated with this table instance. - * @see yfiles.graph.ILabel#text - */ - setLabelText(label:yfiles.graph.ILabel,text:string):void; - /** - * - * @param {yfiles.graph.IStripe} stripe - * @param {number} minimumSize - */ - setMinimumSize(stripe:yfiles.graph.IStripe,minimumSize:number):void; - /** - * - * @param {yfiles.graph.IColumn} owner - * @param {yfiles.graph.IColumn} column - * @param {number} [index=null] - */ - setParent(owner:yfiles.graph.IColumn,column:yfiles.graph.IColumn,index?:number):void; - /** - * - * @param {yfiles.graph.IRow} owner - * @param {yfiles.graph.IRow} row - * @param {number} [index=null] - */ - setParent(owner:yfiles.graph.IRow,row:yfiles.graph.IRow,index?:number):void; - /** - * - * @param {yfiles.graph.IStripe} stripe - * @param {number} size - */ - setSize(stripe:yfiles.graph.IStripe,size:number):void; - /** - * - * @param {yfiles.graph.IStripe} stripe - * @param {yfiles.geometry.Insets} insets - */ - setStripeInsets(stripe:yfiles.graph.IStripe,insets:yfiles.geometry.Insets):void; - /** - * Assigns the given style instance by reference to the label. - *

    - * Style instances can be shared. - *

    - * @param {yfiles.graph.ILabel} label The label that will be assigned the new style - * @param {yfiles.styles.ILabelStyle} style The style instance that will be assigned to the label. - * @see yfiles.graph.ILabel#style - */ - setStyle(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):void; - /** - * - * @param {yfiles.graph.IStripe} stripe - * @param {yfiles.styles.IStripeStyle} style - */ - setStyle(stripe:yfiles.graph.IStripe,style:yfiles.styles.IStripeStyle):void; - /** - * Uninstalls the undo support that has previously been installed with {@link yfiles.graph.Table#installDynamicUndoSupport} - * @param {yfiles.graph.IGraph} graph The graph where the tables are installed for which the undo support should be cleared. - * @static - */ - static uninstallDynamicUndoSupport(graph:yfiles.graph.IGraph):void; - /** - * Uninstalls the undo support that has previously been installed with {@link yfiles.graph.Table#installStaticUndoSupport} - * @param {yfiles.graph.IGraph} graph The graph where the tables are installed for which the undo support should be cleared. - * @static - */ - static uninstallStaticUndoSupport(graph:yfiles.graph.IGraph):void; - /** - * Gets an {@link yfiles.graph.IContextLookup} that provides the default implementations returned by an - * {@link yfiles.graph.IStripe}'s lookup. - *

    - * The provided default implementations can for example be used as fallback when the stripe lookup is wrapped. - *

    - * @static - * @type {yfiles.graph.IContextLookup} - */ - static DEFAULT_STRIPE_LOOKUP:yfiles.graph.IContextLookup; - /** - * Gets an {@link yfiles.graph.IContextLookup} that provides the default implementations returned by an - * {@link yfiles.graph.IColumn}'s lookup. - *

    - * The provided default implementations can for example be used as fallback when the column lookup is wrapped. - *

    - * @static - * @type {yfiles.graph.IContextLookup} - */ - static DEFAULT_COLUMN_LOOKUP:yfiles.graph.IContextLookup; - /** - * Gets an {@link yfiles.graph.IContextLookup} that provides the default implementations returned by an - * {@link yfiles.graph.IRow}'s lookup. - *

    - * The provided default implementations can for example be used as fallback when the row lookup is wrapped. - *

    - * @static - * @type {yfiles.graph.IContextLookup} - */ - static DEFAULT_ROW_LOOKUP:yfiles.graph.IContextLookup; - /** - * The toplevel {@link yfiles.graph.IRow}s in this table. - * @type {yfiles.collections.IEnumerable.} - */ - rows:yfiles.collections.IEnumerable; - /** - * The toplevel {@link yfiles.graph.IColumn}s in this table. - * @type {yfiles.collections.IEnumerable.} - */ - columns:yfiles.collections.IEnumerable; - /** - * - * @default '0' - * @type {yfiles.geometry.Insets} - */ - insets:yfiles.geometry.Insets; - /** - * - * @default '0,0' - * @type {yfiles.geometry.Point} - */ - relativeLocation:yfiles.geometry.Point; - /** - * Gets the relative layout of the table. - *

    - * The upper left corner of the layout always coincides with {@link yfiles.graph.Table#relativeLocation}. - *

    - * @see yfiles.graph.Table#relativeLocation - * @type {yfiles.geometry.IRectangle} - */ - layout:yfiles.geometry.IRectangle; - /** - * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener - */ - addStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener - */ - removeStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener - */ - addStripeRemovedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener - */ - removeStripeRemovedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener - */ - addStripeChangedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener - */ - removeStripeChangedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener - */ - addLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener - */ - removeLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener - */ - addLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener - */ - removeLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener - */ - addLabelChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener - */ - removeLabelChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; - /** - * Gets or sets the defaults for rows. - *

    - * The settings that are obtained from the instance influence newly created elements only. Setting different defaults later - * does not influence existing elements. - *

    - *

    - * If no value is set explicitly a default will be created using {@link yfiles.graph.Table#createRowDefaults} upon first read - * access. - *

    - * @type {yfiles.graph.IStripeDefaults} - */ - rowDefaults:yfiles.graph.IStripeDefaults; - /** - * Gets or sets the defaults for Columns. - *

    - * The settings that are obtained from the instance influence newly created elements only. Setting different defaults later - * does not influence existing elements. - *

    - *

    - * If no value is set explicitly a default will be created using {@link yfiles.graph.Table#createColumnDefaults} upon first read - * access. - *

    - * @type {yfiles.graph.IStripeDefaults} - */ - columnDefaults:yfiles.graph.IStripeDefaults; - /** - * - * @type {yfiles.graph.IRow} - */ - rootRow:yfiles.graph.IRow; - /** - * - * @type {yfiles.graph.IColumn} - */ - rootColumn:yfiles.graph.IColumn; - static $class:yfiles.lang.Class; - } /** * This interface defines a child element of a table or a table element container * @interface @@ -59959,9 +59255,9 @@ declare namespace system{ *

    * Since {@link yfiles.graph.IStripe#layout} is relative to the owning node's left corner, you need to provide an node node to calculate the absolute layout. *

    - * @param {yfiles.graph.INode} node The node relative to which the stripe layout is calculated. This should be the same node where {@link yfiles.graph.IStripe#table} for stripe is associated + * @param node The node relative to which the stripe layout is calculated. This should be the same node where {@link #table} for stripe is associated * to. - * @returns {yfiles.geometry.Rect} + * @returns */ getAbsoluteBounds?(node:yfiles.graph.INode):yfiles.geometry.Rect; /** @@ -60018,7 +59314,6 @@ declare namespace system{ table:yfiles.graph.ITable; /** * Checks whether stripe is the root item of a stripe hierarchy. - * @returns true iff stripe is a root stripe. * @see yfiles.graph.IStripe#root * @type {boolean} */ @@ -60028,7 +59323,6 @@ declare namespace system{ *

    * The stripe is the GetIndexth child of its parent. *

    - * @returns the children of stripe * @see yfiles.graph.IColumn#childColumns * @see yfiles.graph.IRow#childRows * @type {number} @@ -60047,7 +59341,6 @@ declare namespace system{ *

    * For {@link yfiles.graph.IColumn} instances, this returns {@link yfiles.graph.IColumn#childColumns}, for {@link yfiles.graph.IRow} instances, this returns {@link yfiles.graph.IRow#childRows} *

    - * @returns the children of stripe * @see yfiles.graph.IColumn#childColumns * @see yfiles.graph.IRow#childRows * @type {yfiles.collections.IEnumerable.} @@ -60058,7 +59351,6 @@ declare namespace system{ *

    * For {@link yfiles.graph.IColumn} instances, this returns {@link yfiles.graph.IColumn#parentColumn}, for {@link yfiles.graph.IRow} instances, this returns {@link yfiles.graph.IRow#parentRow} *

    - * @returns the parent of stripe * @see yfiles.graph.IColumn#parentColumn * @see yfiles.graph.IRow#parentRow * @type {yfiles.graph.IStripe} @@ -60070,7 +59362,6 @@ declare namespace system{ * If the stripe is part of an {@link yfiles.graph.ITable} instance, this returns {@link yfiles.graph.ITable#rootColumn} for {@link yfiles.graph.IColumn} instances and {@link yfiles.graph.IRow#parentRow} for {@link yfiles.graph.ITable#rootRow} * instances. Otherwise null is returned. *

    - * @returns the root of stripe * @see yfiles.graph.ITable#rootColumn * @see yfiles.graph.ITable#rootRow * @see yfiles.graph.IStripe#isRoot @@ -60079,7 +59370,6 @@ declare namespace system{ root?:yfiles.graph.IStripe; /** * Returns a collection of all descendants of stripe that are leaves and therefore don't have any child stripes. - * @returns A collection of all leaf descendants of stripe * @type {yfiles.collections.IEnumerable.} */ leaves?:yfiles.collections.IEnumerable; @@ -60088,7 +59378,6 @@ declare namespace system{ *

    * The descendants are returned in top to bottom order. *

    - * @returns A collection of all descendants of stripe * @type {yfiles.collections.IEnumerable.} */ descendants?:yfiles.collections.IEnumerable; @@ -60098,7 +59387,6 @@ declare namespace system{ * This value is determined by the accumulated insets of all ancestor, sibling and descendant insets. These insets may be * larger than {@link yfiles.graph.IStripe#insets}. *

    - * @returns The actual insets of the stripe. * @type {yfiles.geometry.Insets} */ actualInsets?:yfiles.geometry.Insets; @@ -60108,7 +59396,6 @@ declare namespace system{ * This is always the stripe size which is actually used for the stripe. For leaf stripes, this is the same as * {@link yfiles.graph.IStripe#size}, otherwise, it is the accumulated size of all descendants with taking nested insets into account. *

    - * @returns The actual size of the stripe. * @type {number} */ actualSize?:number; @@ -60159,13 +59446,13 @@ declare namespace system{ export interface ITable extends Object,yfiles.graph.ILookup{ /** * Add a label to the given owner using the text as the initial label text and label model parameter and style. - * @param {yfiles.graph.IStripe} owner the owner to add the label to. - * @param {string} text the initial text of the label - * @param {yfiles.graph.ILabelModelParameter} [layoutParameter=null] The label model parameter instance to use. - * @param {yfiles.styles.ILabelStyle} [style=null] The style to use for the label - * @param {yfiles.geometry.Size} [preferredSize=null] The initial values to use for the {@link yfiles.graph.ILabel#preferredSize}. - * @param {Object} [tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.ILabel} the newly created label + * @param owner the owner to add the label to. + * @param text the initial text of the label + * @param [layoutParameter=null] The label model parameter instance to use. + * @param [style=null] The style to use for the label + * @param [preferredSize=null] The initial values to use for the {@link #preferredSize}. + * @param [tag=null] the initial {@link #tag} to assign. + * @returns the newly created label * @see yfiles.graph.ITable#setLabelText * @see yfiles.graph.ITable#setLabelLayoutParameter * @see yfiles.graph.ITable#setStyle @@ -60175,13 +59462,13 @@ declare namespace system{ /** * Add a label to the given owner using the text as the initial label text and label model parameter and style. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IStripe} options.owner the owner to add the label to. - * @param {string} options.text the initial text of the label - * @param {yfiles.graph.ILabelModelParameter} [options.layoutParameter=null] The label model parameter instance to use. - * @param {yfiles.styles.ILabelStyle} [options.style=null] The style to use for the label - * @param {yfiles.geometry.Size} [options.preferredSize=null] The initial values to use for the {@link yfiles.graph.ILabel#preferredSize}. - * @param {Object} [options.tag=null] the initial {@link yfiles.graph.ITagOwner#tag} to assign. - * @returns {yfiles.graph.ILabel} the newly created label + * @param options.owner the owner to add the label to. + * @param options.text the initial text of the label + * @param [options.layoutParameter=null] The label model parameter instance to use. + * @param [options.style=null] The style to use for the label + * @param [options.preferredSize=null] The initial values to use for the {@link #preferredSize}. + * @param [options.tag=null] the initial {@link #tag} to assign. + * @returns the newly created label * @see yfiles.graph.ITable#setLabelText * @see yfiles.graph.ITable#setLabelLayoutParameter * @see yfiles.graph.ITable#setStyle @@ -60194,18 +59481,18 @@ declare namespace system{ * This implementation uses the {@link yfiles.graph.ILabel#style style's} renderer for the label to determine the preferred rendering size. This is useful * after the label's content or style have been changed. *

    - * @param {yfiles.graph.ILabel} label The label to adjust the size for. + * @param label The label to adjust the size for. * @see yfiles.graph.ILabelDefaults#autoAdjustPreferredSize */ adjustLabelPreferredSize?(label:yfiles.graph.ILabel):void; /** * Calculates the preferred size of a label with the given properties. - * @param {yfiles.graph.IStripe} stripe The item that will own the label. - * @param {yfiles.styles.ILabelStyle} style The label style. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The label model parameter. - * @param {string} text The text. - * @param {Object} tag The tag for the label. - * @returns {yfiles.geometry.Size} The size as calculated by the {@link yfiles.styles.ILabelStyleRenderer}. + * @param stripe The item that will own the label. + * @param style The label style. + * @param layoutParameter The label model parameter. + * @param text The text. + * @param tag The tag for the label. + * @returns The size as calculated by the {@link }. */ calculateLabelPreferredSize?(stripe:yfiles.graph.IStripe,style:yfiles.styles.ILabelStyle,layoutParameter:yfiles.graph.ILabelModelParameter,text:string,tag:Object):yfiles.geometry.Size; /** @@ -60217,63 +59504,63 @@ declare namespace system{ clear?():void; /** * Create a new column as the indexth child of owner with the given parameters. - * @param {yfiles.graph.IColumn} owner The owner of the new column. - * @param {number} [index=null] The position in the child list. - * @param {number} [width=null] The actual width of the column. - * @param {number} [minWidth=null] The minimal width of the column. - * @param {yfiles.geometry.Insets} [insets=null] The insets of the column. - * @param {yfiles.styles.IStripeStyle} [style=null] The style of the column. - * @param {Object} [tag=null] The tag of the column - * @returns {yfiles.graph.IColumn} A new column instance + * @param owner The owner of the new column. + * @param [index=null] The position in the child list. + * @param [width=null] The actual width of the column. + * @param [minWidth=null] The minimal width of the column. + * @param [insets=null] The insets of the column. + * @param [style=null] The style of the column. + * @param [tag=null] The tag of the column + * @returns A new column instance * @abstract */ createChildColumn(owner:yfiles.graph.IColumn,width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IColumn; /** * Create a new column as the indexth child of owner with the given parameters. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IColumn} options.owner The owner of the new column. - * @param {number} [options.index=null] The position in the child list. - * @param {number} [options.width=null] The actual width of the column. - * @param {number} [options.minWidth=null] The minimal width of the column. - * @param {yfiles.geometry.Insets} [options.insets=null] The insets of the column. - * @param {yfiles.styles.IStripeStyle} [options.style=null] The style of the column. - * @param {Object} [options.tag=null] The tag of the column - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.ITable#addLabel} + * @param options.owner The owner of the new column. + * @param [options.index=null] The position in the child list. + * @param [options.width=null] The actual width of the column. + * @param [options.minWidth=null] The minimal width of the column. + * @param [options.insets=null] The insets of the column. + * @param [options.style=null] The style of the column. + * @param [options.tag=null] The tag of the column + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.childColumns An array of rows to create as children of this row. Each item will be passed to the {@link yfiles.graph.ITable#createChildColumn} + * @param options.childColumns An array of rows to create as children of this row. Each item will be passed to the {@link #createChildColumn} * method. - * @returns {yfiles.graph.IColumn} A new column instance + * @returns A new column instance * @abstract */ createChildColumn(options:{owner:yfiles.graph.IColumn,width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number,labels?:Array,childColumns?:Array}):yfiles.graph.IColumn; /** * Create a new row as the indexth child of owner with the given parameters. - * @param {yfiles.graph.IRow} owner The owner of the new row. - * @param {number} [index=null] The position in the child list. - * @param {number} [height=null] The actual height of the row. - * @param {number} [minHeight=null] The minimal height of the row. - * @param {yfiles.geometry.Insets} [insets=null] The insets of the row. - * @param {yfiles.styles.IStripeStyle} [style=null] The style of the row. - * @param {Object} [tag=null] The tag of the row - * @returns {yfiles.graph.IRow} A new row instance + * @param owner The owner of the new row. + * @param [index=null] The position in the child list. + * @param [height=null] The actual height of the row. + * @param [minHeight=null] The minimal height of the row. + * @param [insets=null] The insets of the row. + * @param [style=null] The style of the row. + * @param [tag=null] The tag of the row + * @returns A new row instance * @abstract */ createChildRow(owner:yfiles.graph.IRow,height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IRow; /** * Create a new row as the indexth child of owner with the given parameters. * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IRow} options.owner The owner of the new row. - * @param {number} [options.index=null] The position in the child list. - * @param {number} [options.height=null] The actual height of the row. - * @param {number} [options.minHeight=null] The minimal height of the row. - * @param {yfiles.geometry.Insets} [options.insets=null] The insets of the row. - * @param {yfiles.styles.IStripeStyle} [options.style=null] The style of the row. - * @param {Object} [options.tag=null] The tag of the row - * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link yfiles.graph.ITable#addLabel} + * @param options.owner The owner of the new row. + * @param [options.index=null] The position in the child list. + * @param [options.height=null] The actual height of the row. + * @param [options.minHeight=null] The minimal height of the row. + * @param [options.insets=null] The insets of the row. + * @param [options.style=null] The style of the row. + * @param [options.tag=null] The tag of the row + * @param options.labels An array of labels to add to the newly created node. Each item will be passed to the {@link #addLabel} * method. - * @param options.childRows An array of rows to create as children of this row. Each item will be passed to the {@link yfiles.graph.ITable#createChildRow} + * @param options.childRows An array of rows to create as children of this row. Each item will be passed to the {@link #createChildRow} * method. - * @returns {yfiles.graph.IRow} A new row instance + * @returns A new row instance * @abstract */ createChildRow(options:{owner:yfiles.graph.IRow,height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number,labels?:Array,childRows?:Array}):yfiles.graph.IRow; @@ -60282,13 +59569,13 @@ declare namespace system{ *

    * The column will be a part of this table after the method returns. This will trigger the corresponding events. *

    - * @param {number} [width=null] The actual width of the column. - * @param {number} [minWidth=null] The minimal width of the column. - * @param {yfiles.geometry.Insets} [insets=null] The insets of the column. - * @param {yfiles.styles.IStripeStyle} [style=null] The style of the column. - * @param {Object} [tag=null] The tag of the column - * @param {number} [index=null] The position in the child list. - * @returns {yfiles.graph.IColumn} A newly created column instance + * @param [width=null] The actual width of the column. + * @param [minWidth=null] The minimal width of the column. + * @param [insets=null] The insets of the column. + * @param [style=null] The style of the column. + * @param [tag=null] The tag of the column + * @param [index=null] The position in the child list. + * @returns A newly created column instance * @see yfiles.graph.ITable#addStripeCreatedListener */ createColumn?(width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IColumn; @@ -60298,13 +59585,13 @@ declare namespace system{ * The column will be a part of this table after the method returns. This will trigger the corresponding events. *

    * @param {Object} options The parameters to pass. - * @param {number} [options.width=null] The actual width of the column. - * @param {number} [options.minWidth=null] The minimal width of the column. - * @param {yfiles.geometry.Insets} [options.insets=null] The insets of the column. - * @param {yfiles.styles.IStripeStyle} [options.style=null] The style of the column. - * @param {Object} [options.tag=null] The tag of the column - * @param {number} [options.index=null] The position in the child list. - * @returns {yfiles.graph.IColumn} A newly created column instance + * @param [options.width=null] The actual width of the column. + * @param [options.minWidth=null] The minimal width of the column. + * @param [options.insets=null] The insets of the column. + * @param [options.style=null] The style of the column. + * @param [options.tag=null] The tag of the column + * @param [options.index=null] The position in the child list. + * @returns A newly created column instance * @see yfiles.graph.ITable#addStripeCreatedListener */ createColumn?(options:{width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number}):yfiles.graph.IColumn; @@ -60313,8 +59600,8 @@ declare namespace system{ *

    * All existing rows and columns are cleared from table *

    - * @param {number} columns The number of columns to test. - * @param {number} rows The number of rows to test. + * @param columns The number of columns to test. + * @param rows The number of rows to test. */ createGrid?(columns:number,rows:number):void; /** @@ -60322,15 +59609,15 @@ declare namespace system{ *

    * This implementation uses the label defaults for the table to {@link yfiles.graph.ILabelDefaults#getLayoutParameterInstance obtain the parameter instance}. *

    - * @param {yfiles.graph.IStripe} stripe The item that is the {@link yfiles.graph.ILabel#owner} of the label in question. - * @returns {yfiles.graph.ILabelModelParameter} The default label model parameter to use for newly created labels at the item. + * @param stripe The item that is the {@link #owner} of the label in question. + * @returns The default label model parameter to use for newly created labels at the item. * @see yfiles.graph.ILabelDefaults#getLayoutParameterInstance */ createLabelLayoutParameter?(stripe:yfiles.graph.IStripe):yfiles.graph.ILabelModelParameter; /** * Convenience method that delegates to the {@link yfiles.graph.ILabelDefaults#getStyleInstance} method for the given {@link yfiles.graph.IStripe stripe}. - * @param {yfiles.graph.IStripe} stripe The item the newly created label will belong to. - * @returns {yfiles.styles.ILabelStyle} The style instance to use for newly created stripes. + * @param stripe The item the newly created label will belong to. + * @returns The style instance to use for newly created stripes. */ createLabelStyle?(stripe:yfiles.graph.IStripe):yfiles.styles.ILabelStyle; /** @@ -60338,13 +59625,13 @@ declare namespace system{ *

    * The row will be a part of this table after the method returns. This will trigger the corresponding events. *

    - * @param {number} [height=null] The actual height of the row. - * @param {number} [minHeight=null] The minimal height of the row. - * @param {yfiles.geometry.Insets} [insets=null] The insets of the row. - * @param {yfiles.styles.IStripeStyle} [style=null] The style of the row. - * @param {Object} [tag=null] The tag of the row - * @param {number} [index=null] The position in the child list. - * @returns {yfiles.graph.IRow} A newly created row instance + * @param [height=null] The actual height of the row. + * @param [minHeight=null] The minimal height of the row. + * @param [insets=null] The insets of the row. + * @param [style=null] The style of the row. + * @param [tag=null] The tag of the row + * @param [index=null] The position in the child list. + * @returns A newly created row instance * @see yfiles.graph.ITable#addStripeCreatedListener */ createRow?(height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IRow; @@ -60354,13 +59641,13 @@ declare namespace system{ * The row will be a part of this table after the method returns. This will trigger the corresponding events. *

    * @param {Object} options The parameters to pass. - * @param {number} [options.height=null] The actual height of the row. - * @param {number} [options.minHeight=null] The minimal height of the row. - * @param {yfiles.geometry.Insets} [options.insets=null] The insets of the row. - * @param {yfiles.styles.IStripeStyle} [options.style=null] The style of the row. - * @param {Object} [options.tag=null] The tag of the row - * @param {number} [options.index=null] The position in the child list. - * @returns {yfiles.graph.IRow} A newly created row instance + * @param [options.height=null] The actual height of the row. + * @param [options.minHeight=null] The minimal height of the row. + * @param [options.insets=null] The insets of the row. + * @param [options.style=null] The style of the row. + * @param [options.tag=null] The tag of the row + * @param [options.index=null] The position in the child list. + * @returns A newly created row instance * @see yfiles.graph.ITable#addStripeCreatedListener */ createRow?(options:{height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number}):yfiles.graph.IRow; @@ -60369,10 +59656,10 @@ declare namespace system{ *

    * The column are tested in bottom up order. *

    - * @param {yfiles.graph.INode} node The node this table is currently bound to - * @param {yfiles.geometry.Point} location The location to test. - * @param {function(yfiles.graph.IStripe): boolean} filter Additional predicate to further restrict the results. - * @returns {yfiles.graph.IColumn} The topmost column that has been found for the location or null. + * @param node The node this table is currently bound to + * @param location The location to test. + * @param filter Additional predicate to further restrict the results. + * @returns The topmost column that has been found for the location or null. */ findColumn?(node:yfiles.graph.INode,location:yfiles.geometry.Point,filter:(obj:yfiles.graph.IStripe)=>boolean):yfiles.graph.IColumn; /** @@ -60380,10 +59667,10 @@ declare namespace system{ *

    * The rows are tested in bottom up order. *

    - * @param {yfiles.graph.INode} node The node this table is currently bound to - * @param {yfiles.geometry.Point} location The location to test. - * @param {function(yfiles.graph.IStripe): boolean} filter Additional predicate to further restrict the results. - * @returns {yfiles.graph.IRow} The topmost row that has been found for the location or null. + * @param node The node this table is currently bound to + * @param location The location to test. + * @param filter Additional predicate to further restrict the results. + * @returns The topmost row that has been found for the location or null. */ findRow?(node:yfiles.graph.INode,location:yfiles.geometry.Point,filter:(obj:yfiles.graph.IStripe)=>boolean):yfiles.graph.IRow; /** @@ -60391,26 +59678,26 @@ declare namespace system{ *

    * The stripes are always returned in bottom up, rows first order. Note that this method does not take any {@link yfiles.view.ICanvasContext#hitTestRadius} into account. *

    - * @param {yfiles.graph.INode} node The node this table is currently bound to - * @param {yfiles.geometry.Point} location The location to test. - * @param {yfiles.graph.StripeTypes} stripeTypes An enumeration value of {@link yfiles.graph.StripeTypes} to specify the stripe type. - * @param {function(yfiles.graph.IStripe): boolean} filter Additional predicate to further restrict the hit test results. - * @returns {yfiles.collections.IEnumerable.} The stripes that have been found for the location or null. + * @param node The node this table is currently bound to + * @param location The location to test. + * @param stripeTypes An enumeration value of {@link } to specify the stripe type. + * @param filter Additional predicate to further restrict the hit test results. + * @returns The stripes that have been found for the location or null. */ findStripes?(node:yfiles.graph.INode,location:yfiles.geometry.Point,stripeTypes:yfiles.graph.StripeTypes,filter:(obj:yfiles.graph.IStripe)=>boolean):yfiles.collections.IEnumerable; /** * Return the accumulated insets for the table. - * @returns {yfiles.geometry.Insets} + * @returns */ getAccumulatedInsets?():yfiles.geometry.Insets; /** * Calculates the relative bounds of a table cell that is determined by column and row *

    - * Both column and row must live in the provided table instance. Otherwise, an {@link Stubs.Exceptions.ArgumentError} is thrown. + * Both column and row must live in the provided table instance. Otherwise, an {@link yfiles.lang.Exception} is thrown. *

    - * @param {yfiles.graph.IColumn} column The column that determines the cell - * @param {yfiles.graph.IRow} row The row that determines the cell - * @returns {yfiles.geometry.Rect} The relative bounds of a the cell determined by column and row + * @param column The column that determines the cell + * @param row The row that determines the cell + * @returns The relative bounds of a the cell determined by column and row * @throws {Stubs.Exceptions.ArgumentError} If column and row are part of a different table instance. */ getCellBounds?(column:yfiles.graph.IColumn,row:yfiles.graph.IRow):yfiles.geometry.Rect; @@ -60419,7 +59706,7 @@ declare namespace system{ *

    * This method reparents all children of stripe to the parent of the stripe. *

    - * @param {yfiles.graph.IStripe} stripe The stripe to remove + * @param stripe The stripe to remove * @abstract */ remove(stripe:yfiles.graph.IStripe):void; @@ -60428,7 +59715,7 @@ declare namespace system{ *

    * This will trigger the corresponding event. *

    - * @param {yfiles.graph.ILabel} label the label to remove + * @param label the label to remove * @abstract */ remove(label:yfiles.graph.ILabel):void; @@ -60437,40 +59724,40 @@ declare namespace system{ *

    * This method does not resize any stripes, use {@link yfiles.graph.ITable#removeRecursivelyWithResize} instead. *

    - * @param {yfiles.graph.IStripe} stripe The stripe to remove + * @param stripe The stripe to remove */ removeRecursively?(stripe:yfiles.graph.IStripe):void; /** * {@link yfiles.graph.ITable#removeWithResize Removes} the given stripe and all of its descendants from table and resizes all affected stripes so that the table size * does not change if possible. - * @param {yfiles.graph.IStripe} stripe The stripe to remove + * @param stripe The stripe to remove */ removeRecursivelyWithResize?(stripe:yfiles.graph.IStripe):void; /** * {@link yfiles.graph.ITable#remove Removes} stripe from table and resizes all affected stripes so that the table size does not change if possible. - * @param {yfiles.graph.IStripe} stripe The stripe to remove + * @param stripe The stripe to remove */ removeWithResize?(stripe:yfiles.graph.IStripe):void; /** * Sets the label model parameter for the given label. - * @param {yfiles.graph.ILabel} label The label. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The new parameter. + * @param label The label. + * @param layoutParameter The new parameter. * @throws {Stubs.Exceptions.ArgumentError} If the parameter cannot be used for this label. * @abstract */ setLabelLayoutParameter(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):void; /** * Sets the preferred size of the label. - * @param {yfiles.graph.ILabel} label The label. - * @param {yfiles.geometry.Size} preferredSize The new preferred size. + * @param label The label. + * @param preferredSize The new preferred size. * @see yfiles.graph.ILabel#preferredSize * @abstract */ setLabelPreferredSize(label:yfiles.graph.ILabel,preferredSize:yfiles.geometry.Size):void; /** * Sets the label text of the given label. - * @param {yfiles.graph.ILabel} label the label to modify - * @param {string} text the new text of the label + * @param label the label to modify + * @param text the new text of the label * @see yfiles.graph.ILabel#text * @abstract */ @@ -60480,8 +59767,8 @@ declare namespace system{ *

    * This method sets the {@link yfiles.graph.IStripe#minimumSize} of stripe. *

    - * @param {yfiles.graph.IStripe} stripe The stripe to change - * @param {number} minimumSize The new minimum size of the stripe + * @param stripe The stripe to change + * @param minimumSize The new minimum size of the stripe * @abstract */ setMinimumSize(stripe:yfiles.graph.IStripe,minimumSize:number):void; @@ -60490,9 +59777,9 @@ declare namespace system{ *

    * The column will be inserted at position index in the child list of the new parent. *

    - * @param {yfiles.graph.IColumn} owner - * @param {yfiles.graph.IColumn} column - * @param {number} [index=null] + * @param owner + * @param column + * @param [index=null] * @abstract */ setParent(owner:yfiles.graph.IColumn,column:yfiles.graph.IColumn,index?:number):void; @@ -60501,9 +59788,9 @@ declare namespace system{ *

    * The row will be inserted at position index in the child list of the new parent. *

    - * @param {yfiles.graph.IRow} owner - * @param {yfiles.graph.IRow} row - * @param {number} [index=null] + * @param owner + * @param row + * @param [index=null] * @abstract */ setParent(owner:yfiles.graph.IRow,row:yfiles.graph.IRow,index?:number):void; @@ -60512,22 +59799,22 @@ declare namespace system{ *

    * This method sets the {@link yfiles.graph.IStripe#size} of stripe. *

    - * @param {yfiles.graph.IStripe} stripe The stripe to change - * @param {number} size The new size of the stripe + * @param stripe The stripe to change + * @param size The new size of the stripe * @abstract */ setSize(stripe:yfiles.graph.IStripe,size:number):void; /** * Sets the insets of stripe. - * @param {yfiles.graph.IStripe} stripe The stripe to change - * @param {yfiles.geometry.Insets} insets The new insets of the stripe + * @param stripe The stripe to change + * @param insets The new insets of the stripe * @abstract */ setStripeInsets(stripe:yfiles.graph.IStripe,insets:yfiles.geometry.Insets):void; /** * Sets the style of stripe. - * @param {yfiles.graph.IStripe} stripe The stripe to change - * @param {yfiles.styles.IStripeStyle} style The new style of the stripe + * @param stripe The stripe to change + * @param style The new style of the stripe * @abstract */ setStyle(stripe:yfiles.graph.IStripe,style:yfiles.styles.IStripeStyle):void; @@ -60536,8 +59823,8 @@ declare namespace system{ *

    * Style instances can be shared. *

    - * @param {yfiles.graph.ILabel} label The label that will be assigned the new style - * @param {yfiles.styles.ILabelStyle} style The style instance that will be assigned to the label. + * @param label The label that will be assigned the new style + * @param style The style instance that will be assigned to the label. * @see yfiles.graph.ILabel#style * @abstract */ @@ -60618,7 +59905,7 @@ declare namespace system{ rootColumn:yfiles.graph.IColumn; /** * Adds the given listener for the LabelAdded event that occurs when a label has been added to this graph instance. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITable#addLabel * @see yfiles.graph.ITable#removeLabelAddedListener * @abstract @@ -60626,7 +59913,7 @@ declare namespace system{ addLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the LabelAdded event that occurs when a label has been added to this graph instance. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITable#addLabel * @see yfiles.graph.ITable#addLabelAddedListener * @abstract @@ -60641,7 +59928,7 @@ declare namespace system{ * Implementations may choose to use the {@link yfiles.graph.LabelEventArgs} to carry additional label owner information. The {@link yfiles.graph.LabelEventArgs#owner} * property will be set to the the owner of the label that owned it before the removal. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITable#remove * @see yfiles.graph.ITable#removeLabelRemovedListener * @abstract @@ -60657,7 +59944,7 @@ declare namespace system{ * Implementations may choose to use the {@link yfiles.graph.LabelEventArgs} to carry additional label owner information. The {@link yfiles.graph.LabelEventArgs#owner} * property will be set to the the owner of the label that owned it before the removal. *

    - * @param {function(Object, yfiles.graph.LabelEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITable#remove * @see yfiles.graph.ITable#addLabelRemovedListener * @abstract @@ -60666,7 +59953,7 @@ declare namespace system{ /** * Adds the given listener for the LabelChanged event that occurs when a label has been changed, for instance, if its style * has been replaced. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITable#setStyle * @see yfiles.graph.ITable#removeLabelChangedListener * @abstract @@ -60675,7 +59962,7 @@ declare namespace system{ /** * Removes the given listener for the LabelChanged event that occurs when a label has been changed, for instance, if its * style has been replaced. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITable#setStyle * @see yfiles.graph.ITable#addLabelChangedListener * @abstract @@ -60683,7 +59970,7 @@ declare namespace system{ removeLabelChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Adds the given listener for the StripeCreated event that occurs when a stripe has been added. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITable#createChildRow * @see yfiles.graph.ITable#createChildColumn * @see yfiles.graph.ITable#removeStripeCreatedListener @@ -60692,7 +59979,7 @@ declare namespace system{ addStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Removes the given listener for the StripeCreated event that occurs when a stripe has been added. - * @param {function(Object, yfiles.collections.ItemEventArgs.): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITable#createChildRow * @see yfiles.graph.ITable#createChildColumn * @see yfiles.graph.ITable#addStripeCreatedListener @@ -60701,7 +59988,7 @@ declare namespace system{ removeStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; /** * Adds the given listener for the StripeRemoved event that occurs when a stripe has been removed from its parent. - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITable#remove * @see yfiles.graph.ITable#removeStripeRemovedListener * @abstract @@ -60709,7 +59996,7 @@ declare namespace system{ addStripeRemovedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; /** * Removes the given listener for the StripeRemoved event that occurs when a stripe has been removed from its parent. - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITable#remove * @see yfiles.graph.ITable#addStripeRemovedListener * @abstract @@ -60718,7 +60005,7 @@ declare namespace system{ /** * Adds the given listener for the StripeChanged event that occurs when a stripe has been changed, for instance, if its * style has been replaced. - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.graph.ITable#setStyle * @see yfiles.graph.ITable#setStripeInsets * @see yfiles.graph.ITable#setSize @@ -60730,7 +60017,7 @@ declare namespace system{ /** * Removes the given listener for the StripeChanged event that occurs when a stripe has been changed, for instance, if its * style has been replaced. - * @param {function(Object, yfiles.graph.StripeEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.graph.ITable#setStyle * @see yfiles.graph.ITable#setStripeInsets * @see yfiles.graph.ITable#setSize @@ -60743,23 +60030,23 @@ declare namespace system{ var ITable:{ /** * Convenience method to find a stripe underneath a certain point. - * @param {yfiles.geometry.Point} location The location to test. - * @param {yfiles.graph.StripeTypes} stripeTypes An enumeration value of {@link yfiles.graph.StripeTypes} to specify the stripe type. - * @param {yfiles.input.StripeSubregionTypes} subregionTypes An enumeration value of {@link yfiles.input.StripeSubregionTypes} to further restrict the stripe region. - * @param {yfiles.view.CanvasComponent} canvas The canvas that provides necessary context for hit determination, such as {@link yfiles.view.ICanvasContext#hitTestRadius}. - * @param {function(yfiles.input.StripeSubregion): boolean} filter Additional predicate to further restrict the hit test results. - * @returns {yfiles.input.StripeSubregion} The stripe subregions that have been found for the location or null. + * @param location The location to test. + * @param stripeTypes An enumeration value of {@link } to specify the stripe type. + * @param subregionTypes An enumeration value of {@link } to further restrict the stripe region. + * @param canvas The canvas that provides necessary context for hit determination, such as {@link #hitTestRadius}. + * @param filter Additional predicate to further restrict the hit test results. + * @returns The stripe subregions that have been found for the location or null. * @static */ findStripe?(location:yfiles.geometry.Point,stripeTypes:yfiles.graph.StripeTypes,subregionTypes:yfiles.input.StripeSubregionTypes,canvas:yfiles.view.CanvasComponent,filter:(obj:yfiles.input.StripeSubregion)=>boolean):yfiles.input.StripeSubregion; /** * Used as a callback to find the items underneath a certain point. - * @param {yfiles.geometry.Point} location The location to test. - * @param {yfiles.graph.StripeTypes} stripeTypes An enumeration value of {@link yfiles.graph.StripeTypes} to specify the stripe type. - * @param {yfiles.input.StripeSubregionTypes} subregionTypes An enumeration value of {@link yfiles.input.StripeSubregionTypes} to further restrict the stripe region. - * @param {yfiles.view.CanvasComponent} canvas The canvas that provides necessary context for hit determination, such as {@link yfiles.view.ICanvasContext#hitTestRadius}. - * @param {function(yfiles.input.StripeSubregion): boolean} filter Additional predicate to further restrict the hit test results. - * @returns {yfiles.collections.IEnumerable.} The stripe subregions that have been found for the location. + * @param location The location to test. + * @param stripeTypes An enumeration value of {@link } to specify the stripe type. + * @param subregionTypes An enumeration value of {@link } to further restrict the stripe region. + * @param canvas The canvas that provides necessary context for hit determination, such as {@link #hitTestRadius}. + * @param filter Additional predicate to further restrict the hit test results. + * @returns The stripe subregions that have been found for the location. * @static */ findStripes?(location:yfiles.geometry.Point,stripeTypes:yfiles.graph.StripeTypes,subregionTypes:yfiles.input.StripeSubregionTypes,canvas:yfiles.view.CanvasComponent,filter:(obj:yfiles.input.StripeSubregion)=>boolean):yfiles.collections.IEnumerable; @@ -60767,12 +60054,12 @@ declare namespace system{ * Calculates the absolute bounds of a table cell that is determined by column and row *

    * Both column and row must live in the same {@link yfiles.graph.ITable} instance that is also present in the tableNodes - * {@link yfiles.graph.ILookup}. Otherwise, an {@link Stubs.Exceptions.ArgumentError} is thrown. + * {@link yfiles.graph.ILookup}. Otherwise, an {@link yfiles.lang.Exception} is thrown. *

    - * @param {yfiles.graph.INode} tableNode The node where a table is bound to via the node's lookup - * @param {yfiles.graph.IColumn} column The column that determines the cell - * @param {yfiles.graph.IRow} row The row that determines the cell - * @returns {yfiles.geometry.Rect} The absolute bounds of a the cell determined by column and row + * @param tableNode The node where a table is bound to via the node's lookup + * @param column The column that determines the cell + * @param row The row that determines the cell + * @returns The absolute bounds of a the cell determined by column and row * @throws {Stubs.Exceptions.ArgumentError} If no table is present in the {@link yfiles.graph.ILookup} of tableNode, or if column and row are part of a different table * instance. * @static @@ -60782,7 +60069,7 @@ declare namespace system{ * Places node in the center of the table cell determined by column and row. *

    * Both column and row must live in the same {@link yfiles.graph.ITable} instance that is also present in the tableNodes - * {@link yfiles.graph.ILookup}. Otherwise, an {@link Stubs.Exceptions.ArgumentError} is thrown. The cell bounds are determined by + * {@link yfiles.graph.ILookup}. Otherwise, an {@link yfiles.lang.Exception} is thrown. The cell bounds are determined by * {@link yfiles.graph.ITable#getCellBounds}. *

    *

    @@ -60798,13 +60085,13 @@ declare namespace system{ * This method does not change the size of the target stripes if they would be too small to contain the whole node layout. * Callers must increase the stripe size before or after calling this method, if necessary. *

    - * @param {yfiles.graph.IGraph} graph The graph instance where the move should be performed - * @param {yfiles.graph.INode} node The node that should be moved into the given cell. - * @param {yfiles.graph.INode} tableNode The node where a table is bound to via the node's lookup - * @param {yfiles.graph.IColumn} column The column that determines the cell - * @param {yfiles.graph.IRow} row The row that determines the cell - * @param {boolean} [reparent=true] Whether node should also be made part of tableNode's grouping hierarchy if it is not yet contained in it. - * @param {boolean} [alwaysMove=false] Whether node should be moved even if it is already placed in the cell. + * @param graph The graph instance where the move should be performed + * @param node The node that should be moved into the given cell. + * @param tableNode The node where a table is bound to via the node's lookup + * @param column The column that determines the cell + * @param row The row that determines the cell + * @param [reparent=true] Whether node should also be made part of tableNode's grouping hierarchy if it is not yet contained in it. + * @param [alwaysMove=false] Whether node should be moved even if it is already placed in the cell. * @throws {Stubs.Exceptions.ArgumentError} If no table is present in the {@link yfiles.graph.ILookup} of tableNode, or if column and row are part of a different table * instance. * @static @@ -60814,7 +60101,7 @@ declare namespace system{ * Places node in the center of the table cell determined by column and row. *

    * Both column and row must live in the same {@link yfiles.graph.ITable} instance that is also present in the tableNodes - * {@link yfiles.graph.ILookup}. Otherwise, an {@link Stubs.Exceptions.ArgumentError} is thrown. The cell bounds are determined by + * {@link yfiles.graph.ILookup}. Otherwise, an {@link yfiles.lang.Exception} is thrown. The cell bounds are determined by * {@link yfiles.graph.ITable#getCellBounds}. *

    *

    @@ -60831,13 +60118,13 @@ declare namespace system{ * Callers must increase the stripe size before or after calling this method, if necessary. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.graph.IGraph} options.graph The graph instance where the move should be performed - * @param {yfiles.graph.INode} options.node The node that should be moved into the given cell. - * @param {yfiles.graph.INode} options.tableNode The node where a table is bound to via the node's lookup - * @param {yfiles.graph.IColumn} options.column The column that determines the cell - * @param {yfiles.graph.IRow} options.row The row that determines the cell - * @param {boolean} [options.reparent=true] Whether node should also be made part of tableNode's grouping hierarchy if it is not yet contained in it. - * @param {boolean} [options.alwaysMove=false] Whether node should be moved even if it is already placed in the cell. + * @param options.graph The graph instance where the move should be performed + * @param options.node The node that should be moved into the given cell. + * @param options.tableNode The node where a table is bound to via the node's lookup + * @param options.column The column that determines the cell + * @param options.row The row that determines the cell + * @param [options.reparent=true] Whether node should also be made part of tableNode's grouping hierarchy if it is not yet contained in it. + * @param [options.alwaysMove=false] Whether node should be moved even if it is already placed in the cell. * @throws {Stubs.Exceptions.ArgumentError} If no table is present in the {@link yfiles.graph.ILookup} of tableNode, or if column and row are part of a different table * instance. * @static @@ -60914,6 +60201,153 @@ declare namespace system{ $class:yfiles.lang.Class; isInstance(o:Object):boolean; }; + export enum StretchStripeLabelModelPosition{ + /** + * Encodes a position at the top side of the node interior + */ + NORTH, + /** + * Encodes a position at the right side of the node interior + */ + EAST, + /** + * Encodes a position at the bottom side of the node interior + */ + SOUTH, + /** + * Encodes a position at the left side of the node interior + */ + WEST + } + /** + * A label model for labels that is especially tailored to be used as a model for the four default positions where the + * label of a stripe may lie. + *

    + * This label model supports four positions inside of the stripe bounds. The east and west positions are rotated + * automatically. The {@link yfiles.graph.ILabel#owner} is expected to be an {@link yfiles.graph.IStripe} instance, i.e. the parameter supports only {@link yfiles.graph.IStripe} + * instances. + *

    + * @class + * @implements {yfiles.graph.ILabelModel} + * @implements {yfiles.graph.ILabelModelParameterProvider} + */ + export interface StretchStripeLabelModel extends Object,yfiles.graph.ILabelModel,yfiles.graph.ILabelModelParameterProvider{} + export class StretchStripeLabelModel { + /** + * Creates a new instance of this model with empty insets. + * @param {Object} [options=null] The parameters to pass. + * @param {yfiles.geometry.Insets} options.insets The insets to use within the stripe's {@link yfiles.graph.IStripe#layout}. + *

    + * This option sets the {@link yfiles.graph.StretchStripeLabelModel#insets} property on the created object. + *

    + * @param {boolean} options.useActualInsets Whether or not to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label inside the stripe header area. + *

    + * This option sets the {@link yfiles.graph.StretchStripeLabelModel#useActualInsets} property on the created object. + *

    + */ + constructor(options?:{insets?:yfiles.geometry.Insets,useActualInsets?:boolean}); + /** + * + * @returns + */ + createDefaultParameter():yfiles.graph.ILabelModelParameter; + /** + * Creates the parameter for the given position. + * @param position The position. + * @returns + */ + createParameter(position:yfiles.graph.StretchStripeLabelModelPosition):yfiles.graph.ILabelModelParameter; + /** + * + * @param label + * @param layoutParameter + * @returns + */ + getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; + /** + * Calculates the geometry in form of an {@link yfiles.geometry.IOrientedRectangle} for a given label using the given model + * parameter. + *

    + * The geometry is calculated in table coordinates, i.e. relative to {@link yfiles.graph.ITable#relativeLocation}. + *

    + * @param label the label to calculate the geometry for + * @param layoutParameter A parameter that has been created by this model. This is typically the parameter that yielded this instance through its + * {@link #model} property. + * @returns An instance that describes the geometry. This is typically an instance designed as a flyweight, so clients should not + * cache the instance but store the values if they need a snapshot for later use + */ + getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; + /** + * + * @param label + * @param model + * @returns + */ + getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; + /** + * + * @param type + * @returns + */ + lookup(type:yfiles.lang.Class):Object; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static NORTH:yfiles.graph.ILabelModelParameter; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static SOUTH:yfiles.graph.ILabelModelParameter; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static EAST:yfiles.graph.ILabelModelParameter; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StretchStripeLabelModel#insets} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static WEST:yfiles.graph.ILabelModelParameter; + /** + * Gets or sets the insets to use within the stripe's {@link yfiles.graph.IStripe#layout}. + * @default '0' + * @type {yfiles.geometry.Insets} + */ + insets:yfiles.geometry.Insets; + /** + * Gets or sets whether or not to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label inside the + * stripe header area. + *

    + * If true the header insets are used. Default is false + *

    + * @default false + * @type {boolean} + */ + useActualInsets:boolean; + static $class:yfiles.lang.Class; + } /** * A specialized subclass of the {@link yfiles.collections.ItemEventArgs.} class that is bound to the {@link yfiles.graph.IStripe} type and carries additional {@link yfiles.graph.IStripe owner} * information. @@ -60921,7 +60355,7 @@ declare namespace system{ * Since for some events ({@link yfiles.graph.ITable#addStripeRemovedListener StripeRemoved}) it is unclear what {@link yfiles.graph.IStripe#parentStripe parent} the * stripe was owned by before the event, this event can be used to carry exactly that information. *

    - * @class yfiles.graph.StripeEventArgs + * @class * @extends {yfiles.collections.ItemEventArgs.} * @final */ @@ -60929,10 +60363,9 @@ declare namespace system{ export class StripeEventArgs { /** * Initializes a new instance of the {@link yfiles.graph.StripeEventArgs} class. - * @param {yfiles.graph.IStripe} stripe The stripe to assign to the {@link yfiles.collections.ItemEventArgs.#item} property. - * @param {yfiles.graph.IStripe} parentStripe The previous parent of the stripe. - * @param {yfiles.graph.ITable} table The table the stripe belonged to previously. - * @constructor + * @param stripe The stripe to assign to the {@link #item} property. + * @param parentStripe The previous parent of the stripe. + * @param table The table the stripe belonged to previously. */ constructor(stripe:yfiles.graph.IStripe,parentStripe:yfiles.graph.IStripe,table:yfiles.graph.ITable); /** @@ -60947,6 +60380,651 @@ declare namespace system{ table:yfiles.graph.ITable; static $class:yfiles.lang.Class; } + export enum StripeLabelModelPosition{ + /** + * Encodes a position at the top side of the node interior + */ + NORTH, + /** + * Encodes a position at the right side of the node interior + */ + EAST, + /** + * Encodes a position at the bottom side of the node interior + */ + SOUTH, + /** + * Encodes a position at the left side of the node interior + */ + WEST + } + /** + * A label model for labels that is especially tailored to be used as a model for the four default positions where the + * label of a stripe may lie. + *

    + * This label model supports four positions inside of the stripe bounds. The east and west positions are rotated + * automatically. The {@link yfiles.graph.ILabel#owner} is expected to be an {@link yfiles.graph.IStripe} instance, i.e. the parameter supports only {@link yfiles.graph.IStripe} + * instances. + *

    + * @class + * @implements {yfiles.graph.ILabelModel} + * @implements {yfiles.graph.ILabelModelParameterProvider} + */ + export interface StripeLabelModel extends Object,yfiles.graph.ILabelModel,yfiles.graph.ILabelModelParameterProvider{} + export class StripeLabelModel { + /** + * Creates a new instance of this model with empty insets. + * @param {Object} [options=null] The parameters to pass. + * @param {number} options.ratio The ratio how far the label should be positioned from the border in the header area. + *

    + * This option sets the {@link yfiles.graph.StripeLabelModel#ratio} property on the created object. + *

    + * @param {boolean} options.useActualInsets A value indicating whether to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label inside the stripe header area. + *

    + * This option sets the {@link yfiles.graph.StripeLabelModel#useActualInsets} property on the created object. + *

    + */ + constructor(options?:{ratio?:number,useActualInsets?:boolean}); + /** + * + * @returns + */ + createDefaultParameter():yfiles.graph.ILabelModelParameter; + /** + * Creates the parameter for the given position. + * @param position The position. + * @returns + */ + createParameter(position:yfiles.graph.StripeLabelModelPosition):yfiles.graph.ILabelModelParameter; + /** + * + * @param label + * @param layoutParameter + * @returns + */ + getContext(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.graph.ILookup; + /** + * Calculates the geometry in form of an {@link yfiles.geometry.IOrientedRectangle} for a given label using the given model + * parameter. + *

    + * The geometry is calculated in table coordinates, i.e. relative to {@link yfiles.graph.ITable#relativeLocation}. + *

    + * @param label the label to calculate the geometry for + * @param layoutParameter A parameter that has been created by this model. This is typically the parameter that yielded this instance through its + * {@link #model} property. + * @returns An instance that describes the geometry. This is typically an instance designed as a flyweight, so clients should not + * cache the instance but store the values if they need a snapshot for later use + */ + getGeometry(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):yfiles.geometry.IOrientedRectangle; + /** + * + * @param label + * @param model + * @returns + */ + getParameters(label:yfiles.graph.ILabel,model:yfiles.graph.ILabelModel):yfiles.collections.IEnumerable; + /** + * + * @param type + * @returns + */ + lookup(type:yfiles.lang.Class):Object; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static NORTH:yfiles.graph.ILabelModelParameter; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static SOUTH:yfiles.graph.ILabelModelParameter; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static EAST:yfiles.graph.ILabelModelParameter; + /** + * A convenience parameter instance that can be shared between label instances. + *

    + * Trying to change that instances' {@link yfiles.graph.StripeLabelModel#ratio} will raise an {@link yfiles.lang.Exception}. + *

    + * @const + * @static + * @type {yfiles.graph.ILabelModelParameter} + */ + static WEST:yfiles.graph.ILabelModelParameter; + /** + * Gets or sets a value indicating whether to use the {@link yfiles.graph.IStripe#actualInsets actual insets} or the normal {@link yfiles.graph.IStripe#insets} of a stripe for centering the label + * inside the stripe header area. + *

    + * If true the header insets are used. Default is false + *

    + * @default false + * @type {boolean} + */ + useActualInsets:boolean; + /** + * Gets or sets the ratio how far the label should be positioned from the border in the header area. + *

    + * 0 means the label is positioned on the outer border, 1 means it is positioned at the inner border of the header or inset + * area. Default value is 0.5 + *

    + * @default 0.5 + * @type {number} + */ + ratio:number; + static $class:yfiles.lang.Class; + } + /** + * Default implementation of the {@link yfiles.graph.ITable} interface. + * @class + * @implements {yfiles.graph.ITable} + * @implements {yfiles.lang.ICloneable} + */ + export interface Table extends Object,yfiles.graph.ITable,yfiles.lang.ICloneable{} + export class Table { + /** + * Default constructor that creates an empty table + * @param {Object} [options=null] The parameters to pass. + * @param {yfiles.geometry.Insets} [options.insets=null] Sets the insets property. + * @param {yfiles.geometry.Point} [options.relativeLocation=null] Sets the relativeLocation property. + * @param {yfiles.graph.IStripeDefaults} options.rowDefaults The defaults for rows. + *

    + * This option sets the {@link yfiles.graph.Table#rowDefaults} property on the created object. + *

    + * @param {yfiles.graph.IStripeDefaults} options.columnDefaults The defaults for Columns. + *

    + * This option sets the {@link yfiles.graph.Table#columnDefaults} property on the created object. + *

    + */ + constructor(options?:{insets?:yfiles.geometry.Insets,relativeLocation?:yfiles.geometry.Point,rowDefaults?:yfiles.graph.IStripeDefaults,columnDefaults?:yfiles.graph.IStripeDefaults}); + /** + * + * @param owner + * @param text + * @param [layoutParameter=null] + * @param [style=null] + * @param [preferredSize=null] + * @param [tag=null] + * @returns + */ + addLabel(owner:yfiles.graph.IStripe,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object):yfiles.graph.ILabel; + /** + * + * @param {Object} options The parameters to pass. + * @param options.owner + * @param options.text + * @param [options.layoutParameter=null] + * @param [options.style=null] + * @param [options.preferredSize=null] + * @param [options.tag=null] + * @returns + */ + addLabel(options:{owner:yfiles.graph.IStripe,text:string,layoutParameter?:yfiles.graph.ILabelModelParameter,style?:yfiles.styles.ILabelStyle,preferredSize?:yfiles.geometry.Size,tag?:Object}):yfiles.graph.ILabel; + /** + * + * @returns + */ + clone():Object; + /** + * Called during {@link yfiles.graph.Table#clone} to create a copy of column + *

    + * If column implements the {@link yfiles.lang.ICloneable} interface, the column instance is + * {@link yfiles.lang.ICloneable#clone}d, otherwise, the original instance is returned unchanged. + *

    + * @param column The column that should be copied during a clone operation. + * @returns A clone of column if possible, otherwise the original reference to column + * @protected + */ + copyColumn(column:yfiles.graph.IColumn):yfiles.graph.IColumn; + /** + * Called during {@link yfiles.graph.Table#clone} to create a copy of originalDefaults + *

    + * This implementation returns an unchanged reference to originalDefaults. If you need to create a deep clone of + * originalDefaults, you'll have to perform the cloning yourself. + *

    + * @param originalDefaults The default settings that should be copied during a clone operation. + * @returns The original reference to originalDefaults + * @protected + */ + copyDefaults(originalDefaults:yfiles.graph.IStripeDefaults):yfiles.graph.IStripeDefaults; + /** + * Called during {@link yfiles.graph.Table#clone} to create a copy of row + *

    + * If row implements the {@link yfiles.lang.ICloneable} interface, the row instance is + * {@link yfiles.lang.ICloneable#clone}d, otherwise, the original instance is returned unchanged. + *

    + * @param row The row that should be copied during a clone operation. + * @returns A clone of row if possible, otherwise the original reference to row + * @protected + */ + copyRow(row:yfiles.graph.IRow):yfiles.graph.IRow; + /** + * + * @param owner + * @param [width=null] + * @param [minWidth=null] + * @param [insets=null] + * @param [style=null] + * @param [tag=null] + * @param [index=null] + * @returns + */ + createChildColumn(owner:yfiles.graph.IColumn,width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IColumn; + /** + * + * @param {Object} options The parameters to pass. + * @param options.owner + * @param [options.width=null] + * @param [options.minWidth=null] + * @param [options.insets=null] + * @param [options.style=null] + * @param [options.tag=null] + * @param [options.index=null] + * @returns + */ + createChildColumn(options:{owner:yfiles.graph.IColumn,width?:number,minWidth?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number}):yfiles.graph.IColumn; + /** + * + * @param owner + * @param [height=null] + * @param [minHeight=null] + * @param [insets=null] + * @param [style=null] + * @param [tag=null] + * @param [index=null] + * @returns + */ + createChildRow(owner:yfiles.graph.IRow,height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number):yfiles.graph.IRow; + /** + * + * @param {Object} options The parameters to pass. + * @param options.owner + * @param [options.height=null] + * @param [options.minHeight=null] + * @param [options.insets=null] + * @param [options.style=null] + * @param [options.tag=null] + * @param [options.index=null] + * @returns + */ + createChildRow(options:{owner:yfiles.graph.IRow,height?:number,minHeight?:number,insets?:yfiles.geometry.Insets,style?:yfiles.styles.IStripeStyle,tag?:Object,index?:number}):yfiles.graph.IRow; + /** + * Callback method that creates the Column defaults. + * @returns A new instance of the {@link } class which is used for newly created columns. + * @protected + */ + createColumnDefaults():yfiles.graph.IStripeDefaults; + /** + * Callback method that creates the row defaults. + * @returns A new instance of the {@link } class that is used for newly created rows. + * @protected + */ + createRowDefaults():yfiles.graph.IStripeDefaults; + /** + * Installs the undo support for use with all tables that are bound to nodes in graph. + *

    + * This method queries the graph for its undo support dynamically whenever undo support is queried in the table. In + * contrast to {@link yfiles.graph.Table#installStaticUndoSupport} the undo support installed with this method will thus always be + * the one which is the currently available support for the graph. + *

    + * @param graph The graph where the nodes exist or will be created/changed and where the undo support should come from. + * @see yfiles.graph.Table#uninstallDynamicUndoSupport + * @see yfiles.graph.Table#installStaticUndoSupport + * @static + */ + static installDynamicUndoSupport(graph:yfiles.graph.IGraph):void; + /** + * Installs the undo support for use with all tables that are bound to nodes in graph. + *

    + * This methods installs the undo support which manages the graph at the time this method is called. In contrast to {@link yfiles.graph.Table#installDynamicUndoSupport} + * the installed undo support will not change when the graph's undo support changes. + *

    + *

    + * This method adds undo support both for existing nodes in graph as well as for newly created or changed nodes. + *

    + * @param graph The graph where the nodes exist or will be created/changed. + * @see yfiles.graph.Table#uninstallStaticUndoSupport + * @see yfiles.graph.Table#installDynamicUndoSupport + * @static + */ + static installStaticUndoSupport(graph:yfiles.graph.IGraph):void; + /** + * + * @param type + * @returns + */ + lookup(type:yfiles.lang.Class):Object; + /** + * Called after a label has been added to a stripe. + *

    + * This method raises the {@link yfiles.graph.Table#addLabelAddedListener LabelAdded} event. + *

    + * @param label The label that has just been added. + * @protected + */ + onLabelAdded(label:yfiles.graph.ILabel):void; + /** + * Callback that is invoked after a label has changed. + *

    + * This method raises the {@link yfiles.graph.Table#addLabelChangedListener LabelChanged} event. + *

    + * @param label The label that has changed. + * @protected + */ + onLabelChanged(label:yfiles.graph.ILabel):void; + /** + * Called after a label has been removed from its stripe. + *

    + * This method raises the {@link yfiles.graph.Table#addLabelRemovedListener LabelRemoved} event. + *

    + * @param label The label that has just been removed. + * @param owner The old owner of the label. + * @protected + */ + onLabelRemoved(owner:yfiles.graph.ILabelOwner,label:yfiles.graph.ILabel):void; + /** + * Callback that is invoked after a stripe has changed. + *

    + * This will trigger the {@link yfiles.graph.Table#addStripeChangedListener StripeChanged} event. + *

    + * @param owner The original owner + * @param stripe The stripe that has changed. + * @param oldTable The original table owner, in case the stripe has been moved between different table instances + * @protected + */ + onStripeChanged(owner:yfiles.graph.IStripe,stripe:yfiles.graph.IStripe,oldTable:yfiles.graph.ITable):void; + /** + * Called after a stripe has been created and added to a table. + *

    + * This method raises the {@link yfiles.graph.Table#addStripeCreatedListener StripeCreated} event. + *

    + * @param stripe The stripe that has just been created. + * @protected + */ + onStripeCreated(stripe:yfiles.graph.IStripe):void; + /** + * Called after a stripe has been removed from its owner. + *

    + * This method raises the {@link yfiles.graph.Table#addStripeRemovedListener StripeRemoved} event. + *

    + * @param stripe The stripe that has just been removed. + * @param owner The old owner of the stripe. + * @protected + */ + onStripeRemoved(owner:yfiles.graph.IStripe,stripe:yfiles.graph.IStripe):void; + /** + * Removes the given label from its owner. + *

    + * This will trigger the corresponding event. + *

    + * @param label the label to remove + * @throws {Stubs.Exceptions.ArgumentError} If the label is not associated with this table instance. + */ + remove(label:yfiles.graph.ILabel):void; + /** + * + * @param stripe + */ + remove(stripe:yfiles.graph.IStripe):void; + /** + * Sets the label model parameter for the given label. + * @param label The label. + * @param layoutParameter The new parameter. + * @throws {Stubs.Exceptions.ArgumentError} If the parameter cannot be used for this label or if the label is not associated with this table instance. + */ + setLabelLayoutParameter(label:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter):void; + /** + * Sets the preferred size of the label. + * @param label The label. + * @param preferredSize The new preferred size. + * @throws {Stubs.Exceptions.ArgumentError} If the label is not associated with this table instance. + * @see yfiles.graph.ILabel#preferredSize + */ + setLabelPreferredSize(label:yfiles.graph.ILabel,preferredSize:yfiles.geometry.Size):void; + /** + * Sets the label text of the given label. + * @param label the label to modify + * @param text the new text of the label + * @throws {Stubs.Exceptions.ArgumentError} If the label is not associated with this table instance. + * @see yfiles.graph.ILabel#text + */ + setLabelText(label:yfiles.graph.ILabel,text:string):void; + /** + * + * @param stripe + * @param minimumSize + */ + setMinimumSize(stripe:yfiles.graph.IStripe,minimumSize:number):void; + /** + * + * @param owner + * @param column + * @param [index=null] + */ + setParent(owner:yfiles.graph.IColumn,column:yfiles.graph.IColumn,index?:number):void; + /** + * + * @param owner + * @param row + * @param [index=null] + */ + setParent(owner:yfiles.graph.IRow,row:yfiles.graph.IRow,index?:number):void; + /** + * + * @param stripe + * @param size + */ + setSize(stripe:yfiles.graph.IStripe,size:number):void; + /** + * + * @param stripe + * @param insets + */ + setStripeInsets(stripe:yfiles.graph.IStripe,insets:yfiles.geometry.Insets):void; + /** + * Assigns the given style instance by reference to the label. + *

    + * Style instances can be shared. + *

    + * @param label The label that will be assigned the new style + * @param style The style instance that will be assigned to the label. + * @see yfiles.graph.ILabel#style + */ + setStyle(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):void; + /** + * + * @param stripe + * @param style + */ + setStyle(stripe:yfiles.graph.IStripe,style:yfiles.styles.IStripeStyle):void; + /** + * Uninstalls the undo support that has previously been installed with {@link yfiles.graph.Table#installDynamicUndoSupport} + * @param graph The graph where the tables are installed for which the undo support should be cleared. + * @static + */ + static uninstallDynamicUndoSupport(graph:yfiles.graph.IGraph):void; + /** + * Uninstalls the undo support that has previously been installed with {@link yfiles.graph.Table#installStaticUndoSupport} + * @param graph The graph where the tables are installed for which the undo support should be cleared. + * @static + */ + static uninstallStaticUndoSupport(graph:yfiles.graph.IGraph):void; + /** + * Gets an {@link yfiles.graph.IContextLookup} that provides the default implementations returned by an + * {@link yfiles.graph.IStripe}'s lookup. + *

    + * The provided default implementations can for example be used as fallback when the stripe lookup is wrapped. + *

    + * @static + * @type {yfiles.graph.IContextLookup} + */ + static DEFAULT_STRIPE_LOOKUP:yfiles.graph.IContextLookup; + /** + * Gets an {@link yfiles.graph.IContextLookup} that provides the default implementations returned by an + * {@link yfiles.graph.IColumn}'s lookup. + *

    + * The provided default implementations can for example be used as fallback when the column lookup is wrapped. + *

    + * @static + * @type {yfiles.graph.IContextLookup} + */ + static DEFAULT_COLUMN_LOOKUP:yfiles.graph.IContextLookup; + /** + * Gets an {@link yfiles.graph.IContextLookup} that provides the default implementations returned by an + * {@link yfiles.graph.IRow}'s lookup. + *

    + * The provided default implementations can for example be used as fallback when the row lookup is wrapped. + *

    + * @static + * @type {yfiles.graph.IContextLookup} + */ + static DEFAULT_ROW_LOOKUP:yfiles.graph.IContextLookup; + /** + * The toplevel {@link yfiles.graph.IRow}s in this table. + * @type {yfiles.collections.IEnumerable.} + */ + rows:yfiles.collections.IEnumerable; + /** + * The toplevel {@link yfiles.graph.IColumn}s in this table. + * @type {yfiles.collections.IEnumerable.} + */ + columns:yfiles.collections.IEnumerable; + /** + * + * @default '0' + * @type {yfiles.geometry.Insets} + */ + insets:yfiles.geometry.Insets; + /** + * + * @default '0,0' + * @type {yfiles.geometry.Point} + */ + relativeLocation:yfiles.geometry.Point; + /** + * Gets the relative layout of the table. + *

    + * The upper left corner of the layout always coincides with {@link yfiles.graph.Table#relativeLocation}. + *

    + * @see yfiles.graph.Table#relativeLocation + * @type {yfiles.geometry.IRectangle} + */ + layout:yfiles.geometry.IRectangle; + /** + * + * @param listener + */ + addStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * + * @param listener + */ + removeStripeCreatedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * + * @param listener + */ + addStripeRemovedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; + /** + * + * @param listener + */ + removeStripeRemovedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; + /** + * + * @param listener + */ + addStripeChangedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; + /** + * + * @param listener + */ + removeStripeChangedListener(listener:(sender:Object,evt:yfiles.graph.StripeEventArgs)=>void):void; + /** + * + * @param listener + */ + addLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * + * @param listener + */ + removeLabelAddedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * + * @param listener + */ + addLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; + /** + * + * @param listener + */ + removeLabelRemovedListener(listener:(sender:Object,evt:yfiles.graph.LabelEventArgs)=>void):void; + /** + * + * @param listener + */ + addLabelChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * + * @param listener + */ + removeLabelChangedListener(listener:(sender:Object,evt:yfiles.collections.ItemEventArgs)=>void):void; + /** + * Gets or sets the defaults for rows. + *

    + * The settings that are obtained from the instance influence newly created elements only. Setting different defaults later + * does not influence existing elements. + *

    + *

    + * If no value is set explicitly a default will be created using {@link yfiles.graph.Table#createRowDefaults} upon first read + * access. + *

    + * @type {yfiles.graph.IStripeDefaults} + */ + rowDefaults:yfiles.graph.IStripeDefaults; + /** + * Gets or sets the defaults for Columns. + *

    + * The settings that are obtained from the instance influence newly created elements only. Setting different defaults later + * does not influence existing elements. + *

    + *

    + * If no value is set explicitly a default will be created using {@link yfiles.graph.Table#createColumnDefaults} upon first read + * access. + *

    + * @type {yfiles.graph.IStripeDefaults} + */ + columnDefaults:yfiles.graph.IStripeDefaults; + /** + * + * @type {yfiles.graph.IRow} + */ + rootRow:yfiles.graph.IRow; + /** + * + * @type {yfiles.graph.IColumn} + */ + rootColumn:yfiles.graph.IColumn; + static $class:yfiles.lang.Class; + } /** * Interface used by {@link yfiles.graph.ITable} and the like to declare and obtain the defaults for stripes and their labels. * @see yfiles.graph.ITable#rowDefaults @@ -60960,7 +61038,7 @@ declare namespace system{ * Most implementations will yield either, a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IStripeDefaults#style} property, if {@link yfiles.graph.IStripeDefaults#shareStyleInstance} is enabled, but they might use more complicated * logic, too. *

    - * @returns {yfiles.styles.IStripeStyle} The style to use, which for most implementations is either a {@link yfiles.lang.ICloneable#clone clone} of or the {@link yfiles.graph.IStripeDefaults#style} property, if {@link yfiles.graph.IStripeDefaults#shareStyleInstance} is enabled. + * @returns The style to use, which for most implementations is either a {@link #clone clone} of or the {@link #style} property, if {@link #shareStyleInstance} is enabled. * @abstract */ getStyleInstance():yfiles.styles.IStripeStyle; @@ -61017,7 +61095,7 @@ declare namespace system{ }; /** * A canonic implementation of the {@link yfiles.graph.IStripeDefaults} interface. - * @class yfiles.graph.StripeDefaults + * @class * @implements {yfiles.graph.IStripeDefaults} */ export interface StripeDefaults extends Object,yfiles.graph.IStripeDefaults{} @@ -61039,12 +61117,11 @@ declare namespace system{ * @param {yfiles.graph.ILabelDefaults} [options.labels=null] Sets the labels property. * @param {yfiles.styles.IStripeStyle} [options.style=null] Sets the style property. * @param {boolean} [options.shareStyleInstance=null] Sets the shareStyleInstance property. - * @constructor */ constructor(options?:{size?:number,minimumSize?:number,labels?:yfiles.graph.ILabelDefaults,style?:yfiles.styles.IStripeStyle,shareStyleInstance?:boolean}); /** * - * @returns {yfiles.styles.IStripeStyle} + * @returns */ getStyleInstance():yfiles.styles.IStripeStyle; /** @@ -61128,7 +61205,7 @@ declare namespace system{ /** * A class that is used by {@link yfiles.geometry.GeneralPath} to iterate over the elements the path is made up of. * @see yfiles.geometry.GeneralPath#createCursor - * @class yfiles.geometry.GeneralPathCursor + * @class */ export interface GeneralPathCursor extends Object{} export class GeneralPathCursor { @@ -61138,25 +61215,25 @@ declare namespace system{ * The array needs to have a length of at least 6, since {@link yfiles.geometry.PathType#CUBIC_TO} needs six coordinates. If the * path has been flattened a length of two suffices. *

    - * @param {Array.} coordinates - * @returns {yfiles.geometry.PathType} The current type of the path element. + * @param coordinates + * @returns The current type of the path element. * @see yfiles.geometry.GeneralPathCursor#getCurrentEndPoint */ getCurrent(coordinates:number[]):yfiles.geometry.PathType; /** * Places the current end coordinates of the last path element into the array. - * @param {Array.} coordinates An array with length at least 2. - * @returns {yfiles.geometry.PathType} The type of the current element. + * @param coordinates An array with length at least 2. + * @returns The type of the current element. */ getCurrentEndPoint(coordinates:number[]):yfiles.geometry.PathType; /** * Advances the cursor to the next position if possible. - * @returns {boolean} Whether the cursor has been moved successfully. false if the cursor has been moved beyond the end of the path. + * @returns Whether the cursor has been moved successfully. false if the cursor has been moved beyond the end of the path. */ moveNext():boolean; /** * Moves the cursor to the previous position in the path. - * @returns {boolean} Whether the move was successful. + * @returns Whether the move was successful. */ movePrevious():boolean; /** @@ -61165,7 +61242,7 @@ declare namespace system{ reset():void; /** * Resets the cursor to point to the last element in the path. - * @returns {boolean} Whether the cursor has been moved successfully. + * @returns Whether the cursor has been moved successfully. */ toLast():boolean; /** @@ -61203,7 +61280,7 @@ declare namespace system{ * calculating the bounds, hit tests, containment tests, curve flattening, path transformation, path modification, and path * iteration. *

    - * @class yfiles.geometry.GeneralPath + * @class * @implements {yfiles.lang.ICloneable} * @final */ @@ -61211,8 +61288,7 @@ declare namespace system{ export class GeneralPath { /** * Creates a new instance with given initial capacity. - * @param {number} [capacity=16] The number of elements for which storage will be allocated initially. - * @constructor + * @param [capacity=16] The number of elements for which storage will be allocated initially. */ constructor(capacity?:number); /** @@ -61221,10 +61297,10 @@ declare namespace system{ * If connect is true, an initial {@link yfiles.geometry.PathType#MOVE_TO} in other will be transformed into a * {@link yfiles.geometry.PathType#LINE_TO}. *

    - * @param {yfiles.geometry.GeneralPath} other The path to append to this path. - * @param {boolean} connect Whether to connect the path to the end of this path. - * @param {number} beginIndex The first element to be copied from other, inclusively. - * @param {number} endIndex The last element to be copied from other, exclusively. + * @param other The path to append to this path. + * @param connect Whether to connect the path to the end of this path. + * @param beginIndex The first element to be copied from other, inclusively. + * @param endIndex The last element to be copied from other, exclusively. */ append(other:yfiles.geometry.GeneralPath,beginIndex:number,endIndex:number,connect:boolean):void; /** @@ -61233,26 +61309,26 @@ declare namespace system{ * If connect is true, an initial {@link yfiles.geometry.PathType#MOVE_TO} in other will be transformed into a * {@link yfiles.geometry.PathType#LINE_TO}. *

    - * @param {yfiles.geometry.GeneralPath} other The path to append to this path. - * @param {boolean} connect Whether to connect the path to the end of this path. + * @param other The path to append to this path. + * @param connect Whether to connect the path to the end of this path. */ append(other:yfiles.geometry.GeneralPath,connect:boolean):void; /** * Appends an ellipse using the given bounding box to this instance. - * @param {yfiles.geometry.IRectangle} bounds The bounds of the ellipse. - * @param {boolean} connect Whether to initially {@link yfiles.geometry.GeneralPath#lineTo} the ellipses lowest point. + * @param bounds The bounds of the ellipse. + * @param connect Whether to initially {@link #lineTo} the ellipses lowest point. */ appendEllipse(bounds:yfiles.geometry.IRectangle,connect:boolean):void; /** * Appends an {@link yfiles.geometry.IOrientedRectangle} to this path instance. - * @param {yfiles.geometry.IOrientedRectangle} rectangle The {@link yfiles.geometry.IOrientedRectangle} to get the coordinates from. - * @param {boolean} connect Whether to use a {@link yfiles.geometry.GeneralPath#lineTo} to the anchor corner. + * @param rectangle The {@link } to get the coordinates from. + * @param connect Whether to use a {@link #lineTo} to the anchor corner. */ appendOrientedRectangle(rectangle:yfiles.geometry.IOrientedRectangle,connect:boolean):void; /** * Appends a rectangle to this path instance. - * @param {yfiles.geometry.IRectangle} rectangle The rectangle to get the coordinates from. - * @param {boolean} connect Whether to use a {@link yfiles.geometry.GeneralPath#lineTo} to the upper left corner. + * @param rectangle The rectangle to get the coordinates from. + * @param connect Whether to use a {@link #lineTo} to the upper left corner. */ appendRectangle(rectangle:yfiles.geometry.IRectangle,connect:boolean):void; /** @@ -61261,9 +61337,9 @@ declare namespace system{ * Note that this will only work as expected for closed paths. The epsilon is used for internally flattening Bézier * curves. *

    - * @param {yfiles.geometry.IPoint} point The coordinates of the point to test. - * @param {number} [eps=0.5] The value to use for flattening Bézier curves during the test. 0.5 is the default value. - * @returns {boolean} Whether the point lies within the area described by this path. + * @param point The coordinates of the point to test. + * @param [eps=0.5] The value to use for flattening Bézier curves during the test. 0.5 is the default value. + * @returns Whether the point lies within the area described by this path. */ areaContains(point:yfiles.geometry.IPoint,eps?:number):boolean; /** @@ -61272,7 +61348,7 @@ declare namespace system{ clear():void; /** * Creates a clone of this instance, copying the path information to the new instance. - * @returns {Object} An exact clone of this instance. + * @returns An exact clone of this instance. */ clone():Object; /** @@ -61295,33 +61371,33 @@ declare namespace system{ * The cursor is fail-fast, i.e. if the path's structure is modified after the construction of the cursor any cursor * operation will fail. *

    - * @returns {yfiles.geometry.GeneralPathCursor} A cursor to iterate over this path. + * @returns A cursor to iterate over this path. */ createCursor():yfiles.geometry.GeneralPathCursor; /** * Creates a new path based on this one where corners are smoothed with a quadratic Bézier arc starting at smoothingLength * away from the corner. - * @param {number} smoothingLength Distance from the corner where the arc begins. - * @returns {yfiles.geometry.GeneralPath} A new path, with its corners smoothed. + * @param smoothingLength Distance from the corner where the arc begins. + * @returns A new path, with its corners smoothed. */ createSmoothedPath(smoothingLength:number):yfiles.geometry.GeneralPath; /** * Creates an SVG path element using the provided parameters. - * @param {yfiles.geometry.Matrix} [transform=null] The matrix to apply to the path data. - * @returns {SVGPathElement} A {@link SVGPathElement path} that displays this instance using the provided attributes. + * @param [transform=null] The matrix to apply to the path data. + * @returns A {@link path} that displays this instance using the provided attributes. */ createSvgPath(transform?:yfiles.geometry.Matrix):SVGPathElement; /** * Creates the data for a SVG path element that corresponds to this instance with the provided transform. - * @param {yfiles.geometry.Matrix} [transform=null] The transform to apply to the created data. - * @returns {string} The path data for an SVG path element that corresponds to this instance with the provided transform. + * @param [transform=null] The transform to apply to the created data. + * @returns The path data for an SVG path element that corresponds to this instance with the provided transform. */ createSvgPathData(transform?:yfiles.geometry.Matrix):string; /** * Creates a new {@link yfiles.geometry.GeneralPath} that is a copy of this path with all geometry transformed using the supplied * matrix. - * @param {yfiles.geometry.Matrix} transform The matrix to multiply the geometry with. - * @returns {yfiles.geometry.GeneralPath} A new path. + * @param transform The matrix to multiply the geometry with. + * @returns A new path. */ createTransformedPath(transform:yfiles.geometry.Matrix):yfiles.geometry.GeneralPath; /** @@ -61329,7 +61405,7 @@ declare namespace system{ *

    * This will remove all path operations that follow the position indicated by the cursor. *

    - * @param {yfiles.geometry.GeneralPathCursor} cursor The cursor that depicts a position in this path. + * @param cursor The cursor that depicts a position in this path. */ cropAfter(cursor:yfiles.geometry.GeneralPathCursor):void; /** @@ -61337,7 +61413,7 @@ declare namespace system{ *

    * This will remove all path operations that precede the position indicated by the cursor. *

    - * @param {yfiles.geometry.GeneralPathCursor} cursor The cursor that depicts a position in this path. + * @param cursor The cursor that depicts a position in this path. */ cropBefore(cursor:yfiles.geometry.GeneralPathCursor):void; /** @@ -61345,12 +61421,12 @@ declare namespace system{ *

    * This draws a cubic Bézier curve from the current end point to the given position using the two given control points. *

    - * @param {number} c1x The x coordinate of the first Bézier control point. - * @param {number} c1y The y coordinate of the first Bézier control point. - * @param {number} c2x The x coordinate of the second Bézier control point. - * @param {number} c2y The y coordinate of the second Bézier control point. - * @param {number} x The x coordinate of the curve's end point. - * @param {number} y The y coordinate of the curve's end point. + * @param c1x The x coordinate of the first Bézier control point. + * @param c1y The y coordinate of the first Bézier control point. + * @param c2x The x coordinate of the second Bézier control point. + * @param c2y The y coordinate of the second Bézier control point. + * @param x The x coordinate of the curve's end point. + * @param y The y coordinate of the curve's end point. */ cubicTo(c1x:number,c1y:number,c2x:number,c2y:number,x:number,y:number):void; /** @@ -61358,9 +61434,9 @@ declare namespace system{ *

    * This draws a cubic Bézier curve from the current end point to the given position using the two given control points. *

    - * @param {yfiles.geometry.IPoint} c1 The coordinates of the first Bézier control point. - * @param {yfiles.geometry.IPoint} c2 The coordinates of the second Bézier control point. - * @param {yfiles.geometry.IPoint} end The coordinates of the curve's end point. + * @param c1 The coordinates of the first Bézier control point. + * @param c2 The coordinates of the second Bézier control point. + * @param end The coordinates of the curve's end point. */ cubicTo(c1:yfiles.geometry.IPoint,c2:yfiles.geometry.IPoint,end:yfiles.geometry.IPoint):void; /** @@ -61369,10 +61445,10 @@ declare namespace system{ * The value returned will be the smallest positive value smaller than 1 such that the point depicted by start + result * (end - start) * is an intersection point between the line and the path. *

    - * @param {yfiles.geometry.Point} start The coordinates of the first point of the line. - * @param {yfiles.geometry.Point} end The coordinates of the second point of the line. - * @param {number} [eps=0.5] The value to use for interpolating Bézier curves. - * @returns {number} The factor to calculate the intersection point or double.PositiveInfinity. + * @param start The coordinates of the first point of the line. + * @param end The coordinates of the second point of the line. + * @param [eps=0.5] The value to use for interpolating Bézier curves. + * @returns The factor to calculate the intersection point or double.PositiveInfinity. */ findLineIntersection(start:yfiles.geometry.Point,end:yfiles.geometry.Point,eps?:number):number; /** @@ -61384,11 +61460,11 @@ declare namespace system{ * the point depicted by (anchorX + result * rayX, anchorY + result * rayY) is an intersection point between the ray and * the path. *

    - * @param {yfiles.geometry.Point} anchor The coordinates of the anchor point of the ray. - * @param {yfiles.geometry.Point} direction The coordinates of the direction vector of the ray. - * @param {number} [eps=0.5] The epsilon value that is used for the accuracy with which the implementation should test Bézier curves within the path + * @param anchor The coordinates of the anchor point of the ray. + * @param direction The coordinates of the direction vector of the ray. + * @param [eps=0.5] The epsilon value that is used for the accuracy with which the implementation should test Bézier curves within the path * for intersections. - * @returns {number} The factor to calculate the intersection point or double.PositiveInfinity. + * @returns The factor to calculate the intersection point or double.PositiveInfinity. */ findRayIntersection(anchor:yfiles.geometry.Point,direction:yfiles.geometry.Point,eps?:number):number; /** @@ -61397,14 +61473,14 @@ declare namespace system{ * This will create a path that consists of {@link yfiles.geometry.PathType#MOVE_TO}, {@link yfiles.geometry.PathType#LINE_TO}, and {@link yfiles.geometry.PathType#CLOSE} * operations only. *

    - * @param {number} eps The maximum value the flattened path may diverge from the original path for the Bézier curve line interpolations. - * @returns {yfiles.geometry.GeneralPath} A new path that does not contain Bézier curves. + * @param eps The maximum value the flattened path may diverge from the original path for the Bézier curve line interpolations. + * @returns A new path that does not contain Bézier curves. */ flatten(eps:number):yfiles.geometry.GeneralPath; /** * Gets the bounds of a flattened version the path. - * @param {number} eps The epsilon to use for the flattening operation. - * @returns {yfiles.geometry.Rect} The bounds of the flattened path. + * @param eps The epsilon to use for the flattening operation. + * @returns The bounds of the flattened path. */ getBounds(eps:number):yfiles.geometry.Rect; /** @@ -61413,7 +61489,7 @@ declare namespace system{ * This will not yield tight bounds if the path contains Bézier curves. The bounds are calculated using the union of all * points and control points contained in this path. *

    - * @returns {yfiles.geometry.Rect} A rectangle that describes the geometric bounds of this path. + * @returns A rectangle that describes the geometric bounds of this path. * @see yfiles.geometry.GeneralPath#getBounds */ getBounds():yfiles.geometry.Rect; @@ -61422,7 +61498,7 @@ declare namespace system{ *

    * Note that Bézier curves are still treated as line segments. *

    - * @returns {number} The length of this path. + * @returns The length of this path. */ getLength():number; /** @@ -61430,14 +61506,14 @@ declare namespace system{ *

    * Note that this implementation still treats Bézier curves as linear segments. *

    - * @param {number} ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of this path. - * @returns {yfiles.geometry.Point} The coordinates of the point. + * @param ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of this path. + * @returns The coordinates of the point. */ getPoint(ratio:number):yfiles.geometry.Point; /** * Gets the number of segments in this path, that is the number of {@link yfiles.geometry.PathType#LINE_TO} and {@link yfiles.geometry.PathType#CLOSE} * operations. - * @returns {number} The number of segments. + * @returns The number of segments. */ getSegmentCount():number; /** @@ -61446,10 +61522,10 @@ declare namespace system{ * Note that this implementation still treats Bézier curves as linear segments. Also note that the tangent vector may not * be normalized. *

    - * @param {number} ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of the segment at segmentIndex + * @param ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of the segment at segmentIndex * for this path. - * @param {number} segmentIndex The segment index to determine a point at. - * @returns {yfiles.geometry.Tangent} The tangent, if any exists. The tangent vector may not be normalized. + * @param segmentIndex The segment index to determine a point at. + * @returns The tangent, if any exists. The tangent vector may not be normalized. */ getTangent(segmentIndex:number,ratio:number):yfiles.geometry.Tangent; /** @@ -61457,14 +61533,14 @@ declare namespace system{ *

    * Note that this implementation still treats Bézier curves as linear segments. *

    - * @param {number} ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of this path. - * @returns {yfiles.geometry.Tangent} The tangent, if any exists. The tangent vector may not be normalized. + * @param ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of this path. + * @returns The tangent, if any exists. The tangent vector may not be normalized. */ getTangent(ratio:number):yfiles.geometry.Tangent; /** * Determines whether this has the same values like path. - * @param {yfiles.geometry.GeneralPath} path The object to compare this to. Must be of the same type. - * @returns {boolean} true if this has the same values like the other object. + * @param path The object to compare this to. Must be of the same type. + * @returns true if this has the same values like the other object. */ hasSameValue(path:yfiles.geometry.GeneralPath):boolean; /** @@ -61472,9 +61548,9 @@ declare namespace system{ *

    * This will yield false if the rectangle is fully contained within the area of the path. *

    - * @param {yfiles.geometry.Rect} rectangle The rectangle to test. - * @param {number} eps The epsilon to use for fuzzy testing. - * @returns {boolean} Whether the path described by this instance intersects the rectangle. + * @param rectangle The rectangle to test. + * @param eps The epsilon to use for fuzzy testing. + * @returns Whether the path described by this instance intersects the rectangle. */ intersects(rectangle:yfiles.geometry.Rect,eps:number):boolean; /** @@ -61482,8 +61558,8 @@ declare namespace system{ *

    * This draws a line from the current end point to the given position. *

    - * @param {number} x The x coordinate of the line's end point. - * @param {number} y The y coordinate of the line's end point. + * @param x The x coordinate of the line's end point. + * @param y The y coordinate of the line's end point. */ lineTo(x:number,y:number):void; /** @@ -61491,7 +61567,7 @@ declare namespace system{ *

    * This draws a line from the current end point to the given position. *

    - * @param {yfiles.geometry.IPoint} point The coordinates of the line's end point. + * @param point The coordinates of the line's end point. */ lineTo(point:yfiles.geometry.IPoint):void; /** @@ -61500,9 +61576,9 @@ declare namespace system{ *

    * This method will return false if the clip is entirely inside the area of this path. *

    - * @param {yfiles.geometry.Rect} clip The clip to check for intersection. - * @param {number} width The width of the stroke. - * @returns {boolean} false if it is guaranteed that this instance would not intersect the given clip. + * @param clip The clip to check for intersection. + * @param width The width of the stroke. + * @returns false if it is guaranteed that this instance would not intersect the given clip. */ mayIntersectClip(clip:yfiles.geometry.Rect,width:number):boolean; /** @@ -61510,8 +61586,8 @@ declare namespace system{ *

    * This moves the pen to a new position without drawing a line. *

    - * @param {number} x The next x coordinate. - * @param {number} y The next y coordinate. + * @param x The next x coordinate. + * @param y The next y coordinate. */ moveTo(x:number,y:number):void; /** @@ -61519,14 +61595,14 @@ declare namespace system{ *

    * This moves the pen to a new position without drawing a line. *

    - * @param {yfiles.geometry.IPoint} point The next coordinate. + * @param point The next coordinate. */ moveTo(point:yfiles.geometry.IPoint):void; /** * Tests whether the line of the path is hit at the given point using an epsilon for fuzzy hit testing. - * @param {yfiles.geometry.IPoint} point The p coordinates of the point to test. - * @param {number} [eps=0.5] The allowed distance from the point to the path that is considered a hit.0.5 is the default value. - * @returns {boolean} Whether the point hits the path. + * @param point The p coordinates of the point to test. + * @param [eps=0.5] The allowed distance from the point to the path that is considered a hit.0.5 is the default value. + * @returns Whether the point hits the path. */ pathContains(point:yfiles.geometry.IPoint,eps?:number):boolean; /** @@ -61535,8 +61611,8 @@ declare namespace system{ * If connect is true, the initial {@link yfiles.geometry.PathType#MOVE_TO} in this will be transformed into a * {@link yfiles.geometry.PathType#LINE_TO}. *

    - * @param {yfiles.geometry.GeneralPath} other The path to append to this path. - * @param {boolean} connect Whether to connect the path to the end of this path. + * @param other The path to append to this path. + * @param connect Whether to connect the path to the end of this path. */ prepend(other:yfiles.geometry.GeneralPath,connect:boolean):void; /** @@ -61544,10 +61620,10 @@ declare namespace system{ *

    * This draws a quadratic Bézier curve from the current end point to the given position using the given control point. *

    - * @param {number} cx The x coordinate of the Bézier control point. - * @param {number} cy The y coordinate of the Bézier control point. - * @param {number} x The x coordinate of the curve's end point. - * @param {number} y The y coordinate of the curve's end point. + * @param cx The x coordinate of the Bézier control point. + * @param cy The y coordinate of the Bézier control point. + * @param x The x coordinate of the curve's end point. + * @param y The y coordinate of the curve's end point. */ quadTo(cx:number,cy:number,x:number,y:number):void; /** @@ -61555,13 +61631,13 @@ declare namespace system{ *

    * This draws a quadratic Bézier curve from the current end point to the given position using the given control point. *

    - * @param {yfiles.geometry.IPoint} center The coordinates of the Bézier control point. - * @param {yfiles.geometry.IPoint} point The coordinates of the curve's end point. + * @param center The coordinates of the Bézier control point. + * @param point The coordinates of the curve's end point. */ quadTo(center:yfiles.geometry.IPoint,point:yfiles.geometry.IPoint):void; /** * Transforms this {@link yfiles.geometry.GeneralPath} in place using the given transform. - * @param {yfiles.geometry.Matrix} transform The matrix to multiply the geometry with. + * @param transform The matrix to multiply the geometry with. */ transform(transform:yfiles.geometry.Matrix):void; /** @@ -61580,7 +61656,7 @@ declare namespace system{ */ lastY:number; /** - * Gets a value indicating whether this path contains elements other than an initial {@link yfiles.geometry.PathType#MOVE_TO}.. + * Gets a value indicating whether this path contains elements other than an initial {@link yfiles.geometry.PathType#MOVE_TO}. * @type {boolean} */ isEmpty:boolean; @@ -61598,7 +61674,7 @@ declare namespace system{ } /** * An immutable {@link yfiles.geometry.ISize} implementation to describe a size in two-dimensional space. - * @class yfiles.geometry.Size + * @class * @implements {yfiles.geometry.ISize} * @final */ @@ -61606,60 +61682,59 @@ declare namespace system{ export class Size { /** * Creates a new size using the provided width and height. - * @param {number} width The new width. - * @param {number} height The new height. - * @constructor + * @param width The new width. + * @param height The new height. */ constructor(width:number,height:number); /** * - * @returns {yfiles.geometry.Size} + * @returns */ clone():yfiles.geometry.Size; /** * Performs an implicit conversion from {@link yfiles.geometry.MutableSize} to {@link yfiles.geometry.Size}. - * @param {yfiles.geometry.MutableSize} size The size. - * @returns {yfiles.geometry.Size} The result of the conversion. + * @param size The size. + * @returns The result of the conversion. * @static */ static convertFrom(size:yfiles.geometry.MutableSize):yfiles.geometry.Size; /** * Performs an explicit conversion from {@link yfiles.geometry.Size} to {@link yfiles.geometry.MutableSize}. - * @param {yfiles.geometry.Size} size The size. - * @returns {yfiles.geometry.MutableSize} The result of the conversion. + * @param size The size. + * @returns The result of the conversion. * @static */ static convertToMutableSize(size:yfiles.geometry.Size):yfiles.geometry.MutableSize; /** * Returns a size whose {@link yfiles.geometry.Size#width} and {@link yfiles.geometry.Size#height} is the {@link Math#max} of the respecting properties of the two parameters. - * @param {yfiles.geometry.Size} size1 The first size. - * @param {yfiles.geometry.Size} size2 The second size. - * @returns {yfiles.geometry.Size} A size whose {@link yfiles.geometry.Size#width} and {@link yfiles.geometry.Size#height} is the {@link Math#max} of the respecting properties of the two parameters. + * @param size1 The first size. + * @param size2 The second size. + * @returns A size whose {@link #width} and {@link #height} is the {@link #max} of the respecting properties of the two parameters. * @static */ static max(size1:yfiles.geometry.Size,size2:yfiles.geometry.Size):yfiles.geometry.Size; /** * Returns a size whose {@link yfiles.geometry.Size#width} and {@link yfiles.geometry.Size#height} is the {@link Math#min} of the respecting properties of the two parameters. - * @param {yfiles.geometry.Size} size1 The first size. - * @param {yfiles.geometry.Size} size2 The second size. - * @returns {yfiles.geometry.Size} A size whose {@link yfiles.geometry.Size#width} and {@link yfiles.geometry.Size#height} is the {@link Math#min} of the respecting properties of the two parameters. + * @param size1 The first size. + * @param size2 The second size. + * @returns A size whose {@link #width} and {@link #height} is the {@link #min} of the respecting properties of the two parameters. * @static */ static min(size1:yfiles.geometry.Size,size2:yfiles.geometry.Size):yfiles.geometry.Size; /** * Multiplies the {@link yfiles.geometry.Size#width} and {@link yfiles.geometry.Size#height} by the given factor and returns the result. - * @param {number} factor The factor to multiply the width and height by. - * @returns {yfiles.geometry.Size} A new size that has the width and height multiplied by the factor. + * @param factor The factor to multiply the width and height by. + * @returns A new size that has the width and height multiplied by the factor. */ multiply(factor:number):yfiles.geometry.Size; /** * Converts this instance to an {@link yfiles.geometry.MutableSize} instance - * @returns {yfiles.geometry.MutableSize} The {@link yfiles.geometry.MutableSize} instance, whose attributes have been initialized with the values of this instance. + * @returns The {@link } instance, whose attributes have been initialized with the values of this instance. */ toMutableSize():yfiles.geometry.MutableSize; /** * Creates a {@link yfiles.algorithms.YDimension} from a given {@link yfiles.geometry.Size}. - * @returns {yfiles.algorithms.YDimension} The {@link yfiles.algorithms.YDimension}. + * @returns The {@link }. */ toYDimension():yfiles.algorithms.YDimension; /** @@ -61728,7 +61803,7 @@ declare namespace system{ * This class implements the {@link yfiles.geometry.IPoint} interface so that it can be used in methods that require that * interface. *

    - * @class yfiles.geometry.Point + * @class * @implements {yfiles.geometry.IPoint} * @final */ @@ -61736,9 +61811,8 @@ declare namespace system{ export class Point { /** * Initializes a new instance using the given values for the {@link yfiles.geometry.Point#x} and {@link yfiles.geometry.Point#y} properties. - * @param {number} x The x coordinate. - * @param {number} y The y coordinate. - * @constructor + * @param x The x coordinate. + * @param y The y coordinate. */ constructor(x:number,y:number); /** @@ -61746,41 +61820,41 @@ declare namespace system{ *

    * This operator is applied componentwise to {@link yfiles.geometry.Point#x} and {@link yfiles.geometry.Point#y}. *

    - * @param {yfiles.geometry.Point} otherPoint The second point. - * @returns {yfiles.geometry.Point} The result of the vector addition. + * @param otherPoint The second point. + * @returns The result of the vector addition. */ add(otherPoint:yfiles.geometry.Point):yfiles.geometry.Point; /** * - * @returns {yfiles.geometry.Point} + * @returns */ clone():yfiles.geometry.Point; /** * Performs an explicit conversion from {@link yfiles.geometry.MutablePoint} to {@link yfiles.geometry.Point}. - * @param {yfiles.geometry.MutablePoint} p The point to convert. - * @returns {yfiles.geometry.Point} The result of the conversion. + * @param p The point to convert. + * @returns The result of the conversion. * @static */ static convertFrom(p:yfiles.geometry.MutablePoint):yfiles.geometry.Point; /** * Performs an implicit conversion from {@link yfiles.geometry.Point} to {@link yfiles.geometry.MutablePoint}. - * @param {yfiles.geometry.Point} point The point to convert. - * @returns {yfiles.geometry.MutablePoint} + * @param point The point to convert. + * @returns * @static */ static convertToMutablePoint(point:yfiles.geometry.Point):yfiles.geometry.MutablePoint; /** * Determines the distance between this point and a line segment. - * @param {yfiles.geometry.Point} start The coordinates of the first point of the line. - * @param {yfiles.geometry.Point} end The coordinates of the second point of the line. - * @returns {number} The distance between this point and the closest point on the line segment. + * @param start The coordinates of the first point of the line. + * @param end The coordinates of the second point of the line. + * @returns The distance between this point and the closest point on the line segment. */ distanceToSegment(start:yfiles.geometry.Point,end:yfiles.geometry.Point):number; /** * Determines whether the two given points have the same coordinates with respect to a certain given eps. - * @param {yfiles.geometry.Point} other The other point to check for equality against this point. - * @param {number} eps The epsilon value. - * @returns {boolean} Whether both coordinates are equal with respect for the given epsilon. + * @param other The other point to check for equality against this point. + * @param eps The epsilon value. + * @returns Whether both coordinates are equal with respect for the given epsilon. */ equalsEps(other:yfiles.geometry.Point,eps:number):boolean; /** @@ -61788,15 +61862,15 @@ declare namespace system{ *

    * If the given rectangle is {@link yfiles.geometry.Rect#EMPTY}, this implementation will silently return. *

    - * @param {yfiles.geometry.Rect} rectangle The rectangle to constrain this instance by. - * @returns {yfiles.geometry.Point} A constrained copy of this instance. + * @param rectangle The rectangle to constrain this instance by. + * @returns A constrained copy of this instance. */ getConstrained(rectangle:yfiles.geometry.Rect):yfiles.geometry.Point; /** * Calculates the projection of this point onto a line. - * @param {yfiles.geometry.Point} anchor An anchor for the infinite line. - * @param {yfiles.geometry.Point} direction A direction vector for the infinite line. - * @returns {yfiles.geometry.Point} The point on the line that is closest to this point. + * @param anchor An anchor for the infinite line. + * @param direction A direction vector for the infinite line. + * @returns The point on the line that is closest to this point. */ getProjectionOnLine(anchor:yfiles.geometry.Point,direction:yfiles.geometry.Point):yfiles.geometry.Point; /** @@ -61805,9 +61879,9 @@ declare namespace system{ * If the perpendicular projection onto the line is outside of the ray ("behind" the rayStart) the rayStart is returned * instead. *

    - * @param {yfiles.geometry.Point} rayStart The start of the segment. - * @param {yfiles.geometry.Point} direction The direction of the ray. - * @returns {yfiles.geometry.Point} The point on the ray that is closest to this point. + * @param rayStart The start of the segment. + * @param direction The direction of the ray. + * @returns The point on the ray that is closest to this point. */ getProjectionOnRay(rayStart:yfiles.geometry.Point,direction:yfiles.geometry.Point):yfiles.geometry.Point; /** @@ -61815,38 +61889,38 @@ declare namespace system{ *

    * If the perpendicular projection onto the line is outside of the segment the nearest segment endpoint is returned. *

    - * @param {yfiles.geometry.Point} start The start of the segment. - * @param {yfiles.geometry.Point} end The end of the segment. - * @returns {yfiles.geometry.Point} The point on the segment that is closest to this point. + * @param start The start of the segment. + * @param end The end of the segment. + * @returns The point on the segment that is closest to this point. */ getProjectionOnSegment(start:yfiles.geometry.Point,end:yfiles.geometry.Point):yfiles.geometry.Point; /** * Determines if the point lies close to this point given an epsilon. - * @param {yfiles.geometry.Point} other The coordinates of the other point. - * @param {number} hitTestRadius The hit test epsilon. - * @returns {boolean} Whether the distance between the two points is smaller than hitTestRadius + * @param other The coordinates of the other point. + * @param hitTestRadius The hit test epsilon. + * @returns Whether the distance between the two points is smaller than hitTestRadius */ hits(other:yfiles.geometry.Point,hitTestRadius:number):boolean; /** * Determines whether this point hits the line segment with respect to a given radius. - * @param {yfiles.geometry.Point} start The starting point of the line segment to test. - * @param {yfiles.geometry.Point} end The ending point of the line segment to test. - * @param {number} radius The hit test radius. - * @returns {boolean} Whether this point hits the given line segment within the radius. + * @param start The starting point of the line segment to test. + * @param end The ending point of the line segment to test. + * @param radius The hit test radius. + * @returns Whether this point hits the given line segment within the radius. */ hitsLineSegment(start:yfiles.geometry.Point,end:yfiles.geometry.Point,radius:number):boolean; /** * Determines whether a polygonal line is hit by this point given an epsilon. - * @param {yfiles.collections.IEnumerable.} points The list of points that is treated as a polygon - * @param {number} radius A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than + * @param points The list of points that is treated as a polygon + * @param radius A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than * or equal to that value, it will be considered a hit. - * @returns {boolean} Whether the point hits the polygon. + * @returns Whether the point hits the polygon. */ hitsPolyline(points:yfiles.collections.IEnumerable,radius:number):boolean; /** * Applies the given matrix to this instance by calling {@link yfiles.geometry.Matrix#transform} and returns the result. - * @param {yfiles.geometry.Matrix} matrix The matrix to use for the transformation. - * @returns {yfiles.geometry.Point} The result of the transformation. + * @param matrix The matrix to use for the transformation. + * @returns The result of the transformation. */ multiply(matrix:yfiles.geometry.Matrix):yfiles.geometry.Point; /** @@ -61854,21 +61928,21 @@ declare namespace system{ *

    * This factor is applied componentwise to {@link yfiles.geometry.Point#x} and {@link yfiles.geometry.Point#y}. *

    - * @param {number} factor The factor to scale the components by. - * @returns {yfiles.geometry.Point} The result of the scalar multiplication. + * @param factor The factor to scale the components by. + * @returns The result of the scalar multiplication. */ multiply(factor:number):yfiles.geometry.Point; /** * Calculates the scalar product of this and the given vector. - * @param {yfiles.geometry.Point} other The other vector. - * @returns {number} The scalar product (X*other.X + Y*other.Y) + * @param other The other vector. + * @returns The scalar product (X*other.X + Y*other.Y) */ scalarProduct(other:yfiles.geometry.Point):number; /** * Calculates the scalar product of the two given points. - * @param {yfiles.geometry.Point} point1 The first point. - * @param {yfiles.geometry.Point} point2 The second point. - * @returns {number} The scalar product of the two points. + * @param point1 The first point. + * @param point2 The second point. + * @returns The scalar product of the two points. * @static */ static scalarProduct(point1:yfiles.geometry.Point,point2:yfiles.geometry.Point):number; @@ -61877,28 +61951,28 @@ declare namespace system{ *

    * This operator is applied componentwise to {@link yfiles.geometry.Point#x} and {@link yfiles.geometry.Point#y}. *

    - * @param {yfiles.geometry.Point} otherPoint The second point. - * @returns {yfiles.geometry.Point} The result of the vector subtraction. + * @param otherPoint The second point. + * @returns The result of the vector subtraction. */ subtract(otherPoint:yfiles.geometry.Point):yfiles.geometry.Point; /** * Creates an {@link yfiles.geometry.IMutablePoint} that has the same coordinates as this instance. - * @returns {yfiles.geometry.IMutablePoint} A {@link yfiles.geometry.IMutablePoint} with the same coordinates. + * @returns A {@link } with the same coordinates. */ toMutablePoint():yfiles.geometry.IMutablePoint; /** * Creates a {@link yfiles.algorithms.Point2D} from a given {@link yfiles.geometry.Point}. - * @returns {yfiles.algorithms.Point2D} The {@link yfiles.algorithms.Point2D}. + * @returns The {@link }. */ toPoint2D():yfiles.algorithms.Point2D; /** * Creates a {@link yfiles.algorithms.YPoint} from a given {@link yfiles.geometry.Point}. - * @returns {yfiles.algorithms.YPoint} The {@link yfiles.algorithms.YPoint}. + * @returns The {@link }. */ toYPoint():yfiles.algorithms.YPoint; /** * Creates a {@link yfiles.algorithms.YVector} from a given {@link yfiles.geometry.Point}. - * @returns {yfiles.algorithms.YVector} The {@link yfiles.algorithms.YVector}. + * @returns The {@link }. */ toYVector():yfiles.algorithms.YVector; /** @@ -61947,53 +62021,51 @@ declare namespace system{ } /** * A class that models the thickness of insets as double precision floating point values. - * @class yfiles.geometry.Insets + * @class * @final */ export interface Insets extends yfiles.lang.Struct{} export class Insets { /** * Initializes a new instance. - * @param {number} left The left inset. - * @param {number} top The top inset. - * @param {number} right The right inset. - * @param {number} bottom The bottom inset. - * @constructor + * @param left The left inset. + * @param top The top inset. + * @param right The right inset. + * @param bottom The bottom inset. */ constructor(left:number,top:number,right:number,bottom:number); /** * Initializes a new instance using the provided inset for all four sides. - * @param {number} inset The inset to use for all sides. - * @constructor + * @param inset The inset to use for all sides. */ constructor(inset:number); /** * - * @returns {yfiles.geometry.Insets} + * @returns */ clone():yfiles.geometry.Insets; /** * Calculates the union of this instance and the given inset which is done by performing {@link Math#max} on all four inset * values. - * @param {yfiles.geometry.Insets} insets The insets to max with these insets. - * @returns {yfiles.geometry.Insets} + * @param insets The insets to max with these insets. + * @returns */ createUnion(insets:yfiles.geometry.Insets):yfiles.geometry.Insets; /** * Creates an enlarged instance by adding the insets of the specified insets to this instance and returning the result. - * @param {yfiles.geometry.Insets} insets The insets to add to this instance. - * @returns {yfiles.geometry.Insets} + * @param insets The insets to add to this instance. + * @returns */ getEnlarged(insets:yfiles.geometry.Insets):yfiles.geometry.Insets; /** * Multiplies each side of the insets by the given factor and returns the result. - * @param {number} factor The factor to scales up by. - * @returns {yfiles.geometry.Insets} New insets scaled up by the factor. + * @param factor The factor to scales up by. + * @returns New insets scaled up by the factor. */ multiply(factor:number):yfiles.geometry.Insets; /** * Creates a {@link yfiles.algorithms.Insets} from a given {@link yfiles.geometry.Insets}. - * @returns {yfiles.algorithms.Insets} The {@link yfiles.geometry.Insets}. + * @returns The {@link }. */ toInsets():yfiles.algorithms.Insets; /** @@ -62048,7 +62120,7 @@ declare namespace system{ * rectangles are not considered in {@link yfiles.geometry.Rect#add union-like} operations, whereas rectangles with {@link yfiles.geometry.Rect#width} and {@link yfiles.geometry.Rect#height} of 0.0d are. This class implements * the {@link yfiles.geometry.IRectangle} interface so that it can be used in methods that require that interface. *

    - * @class yfiles.geometry.Rect + * @class * @implements {yfiles.geometry.IRectangle} * @final */ @@ -62056,18 +62128,16 @@ declare namespace system{ export class Rect { /** * Initializes a new instance. - * @param {number} x The {@link yfiles.geometry.Rect#x} coordinate of the top left corner. - * @param {number} y The {@link yfiles.geometry.Rect#y} coordinate of the top left corner. - * @param {number} width The {@link yfiles.geometry.Rect#width} of the rectangle. - * @param {number} height The {@link yfiles.geometry.Rect#height} of the rectangle. - * @constructor + * @param x The {@link #x} coordinate of the top left corner. + * @param y The {@link #y} coordinate of the top left corner. + * @param width The {@link #width} of the rectangle. + * @param height The {@link #height} of the rectangle. */ constructor(x:number,y:number,width:number,height:number); /** * Initializes a new instance using the {@link yfiles.geometry.Rect#topLeft} corner and the {@link yfiles.geometry.Rect#size}. - * @param {yfiles.geometry.Point} location The top left corner. - * @param {yfiles.geometry.Size} size The size to use. - * @constructor + * @param location The top left corner. + * @param size The size to use. */ constructor(location:yfiles.geometry.Point,size:yfiles.geometry.Size); /** @@ -62076,21 +62146,19 @@ declare namespace system{ * This will always result in non-{@link yfiles.geometry.Rect#isEmpty} rectangles as the coordinates of the points are sorted so that the smaller gets assigned * to {@link yfiles.geometry.Rect#x} and {@link yfiles.geometry.Rect#y} respectively and the greater ones define the {@link yfiles.geometry.Rect#width} and {@link yfiles.geometry.Rect#height}. *

    - * @param {yfiles.geometry.Point} p1 The first point to determine the bounds. - * @param {yfiles.geometry.Point} p2 The second point to determine the bounds. - * @constructor + * @param p1 The first point to determine the bounds. + * @param p2 The second point to determine the bounds. */ constructor(p1:yfiles.geometry.Point,p2:yfiles.geometry.Point); /** * Initializes a new instance of the {@link yfiles.geometry.Rect} class with the initial values obtained from the given rectangle. - * @param {yfiles.geometry.IRectangle} rectangle The rectangle to retrieve the initial values from. - * @constructor + * @param rectangle The rectangle to retrieve the initial values from. */ constructor(rectangle:yfiles.geometry.IRectangle); /** * Returns the union of this rectangle and the given point. - * @param {yfiles.geometry.Point} point The point to include in the rectangle's bounds. - * @returns {yfiles.geometry.Rect} The enlarged rectangle. + * @param point The point to include in the rectangle's bounds. + * @returns The enlarged rectangle. */ add(point:yfiles.geometry.Point):yfiles.geometry.Rect; /** @@ -62098,53 +62166,53 @@ declare namespace system{ *

    * {@link yfiles.geometry.Rect#isEmpty empty} rectangles will not be considered. *

    - * @param {yfiles.geometry.Rect} firstRectangle The first rectangle to use for the union. - * @param {yfiles.geometry.Rect} secondRectangle The second rectangle to use for the union. - * @returns {yfiles.geometry.Rect} A rectangle that encompasses the area of the two given rectangles. + * @param firstRectangle The first rectangle to use for the union. + * @param secondRectangle The second rectangle to use for the union. + * @returns A rectangle that encompasses the area of the two given rectangles. * @static */ static add(firstRectangle:yfiles.geometry.Rect,secondRectangle:yfiles.geometry.Rect):yfiles.geometry.Rect; /** * - * @returns {yfiles.geometry.Rect} + * @returns */ clone():yfiles.geometry.Rect; /** * Determines whether this rectangle contains the specified point with respect to a given epsilon. - * @param {yfiles.geometry.Point} point The point to test. - * @param {number} eps The positive epsilon distance that the point may lie outside the rectangle and still be considered contained. - * @returns {boolean} true if this rectangle contains the specified point; false otherwise. An {@link yfiles.geometry.Rect#isEmpty empty} instance never contains any point. A - * point is considered to be contained in the rectangle when the coordinates are not smaller than {@link yfiles.geometry.Rect#minX} and {@link yfiles.geometry.Rect#minY} minus eps nor - * greater than {@link yfiles.geometry.Rect#maxX} and {@link yfiles.geometry.Rect#maxY} plus eps. + * @param point The point to test. + * @param eps The positive epsilon distance that the point may lie outside the rectangle and still be considered contained. + * @returns true if this rectangle contains the specified point; false otherwise. An {@link #isEmpty empty} instance never contains any point. A + * point is considered to be contained in the rectangle when the coordinates are not smaller than {@link #minX} and {@link #minY} minus eps nor + * greater than {@link #maxX} and {@link #maxY} plus eps. */ containsWithEps(point:yfiles.geometry.Point,eps:number):boolean; /** * Performs an explicit conversion from {@link yfiles.geometry.MutableRectangle} to {@link yfiles.geometry.Rect}. - * @param {yfiles.geometry.MutableRectangle} rectangle The rectangle to convert. - * @returns {yfiles.geometry.Rect} The result of the conversion. + * @param rectangle The rectangle to convert. + * @returns The result of the conversion. * @static */ static convertFrom(rectangle:yfiles.geometry.MutableRectangle):yfiles.geometry.Rect; /** * Performs an explicit conversion from {@link yfiles.geometry.Rect} to {@link yfiles.geometry.MutableRectangle}. - * @param {yfiles.geometry.Rect} rectangle The rectangle to convert. - * @returns {yfiles.geometry.MutableRectangle} The result of the conversion. + * @param rectangle The rectangle to convert. + * @returns The result of the conversion. * @static */ static convertToMutableRectangle(rectangle:yfiles.geometry.Rect):yfiles.geometry.MutableRectangle; /** * Finds the intersection between a rectangle and a line. - * @param {yfiles.geometry.Point} inner The coordinates of a point lying inside the rectangle. - * @param {yfiles.geometry.Point} outer The coordinates of a point lying outside the rectangle. - * @returns {yfiles.geometry.Point} The intersection point if the inner point lies inside the rectangle, the outer point lies outside the rectangle and thus + * @param inner The coordinates of a point lying inside the rectangle. + * @param outer The coordinates of a point lying outside the rectangle. + * @returns The intersection point if the inner point lies inside the rectangle, the outer point lies outside the rectangle and thus * an intersection point has been found, or null otherwise. */ findLineIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Creates a new instance given the center of the rectangle and its size. - * @param {yfiles.geometry.Point} center The center to use. - * @param {yfiles.geometry.Size} size The size to assign. - * @returns {yfiles.geometry.Rect} An instance whose center is set to center and size is size + * @param center The center to use. + * @param size The size to assign. + * @returns An instance whose center is set to center and size is size * @static */ static fromCenter(center:yfiles.geometry.Point,size:yfiles.geometry.Size):yfiles.geometry.Rect; @@ -62153,8 +62221,8 @@ declare namespace system{ *

    * If this instance {@link yfiles.geometry.Rect#isEmpty}, the result will be the same. *

    - * @param {number} size The inset to add to each of the sides to grow the new instance. - * @returns {yfiles.geometry.Rect} + * @param size The inset to add to each of the sides to grow the new instance. + * @returns * @see yfiles.geometry.Rect#getEnlarged */ getEnlarged(size:number):yfiles.geometry.Rect; @@ -62163,62 +62231,62 @@ declare namespace system{ *

    * If this instance {@link yfiles.geometry.Rect#isEmpty}, the same will be returned. *

    - * @param {yfiles.geometry.Insets} insets The insets to use to add to the instance. - * @returns {yfiles.geometry.Rect} + * @param insets The insets to use to add to the instance. + * @returns */ getEnlarged(insets:yfiles.geometry.Insets):yfiles.geometry.Rect; /** * Transforms this instance using the specified matrix and returns the result. - * @param {yfiles.geometry.Matrix} transform The transform matrix to apply to this instance. - * @returns {yfiles.geometry.Rect} + * @param transform The transform matrix to apply to this instance. + * @returns */ getTransformed(transform:yfiles.geometry.Matrix):yfiles.geometry.Rect; /** * Returns a translated instance of this which has modified {@link yfiles.geometry.Rect#x} and {@link yfiles.geometry.Rect#y} by the given amount. - * @param {yfiles.geometry.Point} delta The delta to add to {@link yfiles.geometry.Rect#x} and {@link yfiles.geometry.Rect#y}. - * @returns {yfiles.geometry.Rect} + * @param delta The delta to add to {@link #x} and {@link #y}. + * @returns */ getTranslated(delta:yfiles.geometry.Point):yfiles.geometry.Rect; /** * Determines whether the bounds of this instance intersect with the bounds of the specified rectangle. - * @param {yfiles.geometry.Rect} rectangle The rectangle to check. - * @returns {boolean} Whether both instance are non-empty and have an intersection with positive {@link yfiles.geometry.Rect#area}. + * @param rectangle The rectangle to check. + * @returns Whether both instance are non-empty and have an intersection with positive {@link #area}. */ intersects(rectangle:yfiles.geometry.Rect):boolean; /** * Determines whether this rectangle intersects an {@link yfiles.geometry.IOrientedRectangle}, given an epsilon. - * @param {yfiles.geometry.IOrientedRectangle} rectangle The {@link yfiles.geometry.IOrientedRectangle} to test. - * @param {number} [eps=0] A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than + * @param rectangle The {@link } to test. + * @param [eps=0] A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than * or equal to that value, it will be considered a hit. - * @returns {boolean} Whether they have a non-empty intersection. + * @returns Whether they have a non-empty intersection. */ intersects(rectangle:yfiles.geometry.IOrientedRectangle,eps?:number):boolean; /** * Determines whether this rectangle intersects a line. - * @param {yfiles.geometry.Point} start The first end point of the line. - * @param {yfiles.geometry.Point} end The second end point of the line. - * @returns {boolean} Whether the line intersects the rectangle. + * @param start The first end point of the line. + * @param end The second end point of the line. + * @returns Whether the line intersects the rectangle. */ intersectsLine(start:yfiles.geometry.Point,end:yfiles.geometry.Point):boolean; /** * Determines whether a rectangle intersects a polygonal line. - * @param {yfiles.collections.IEnumerable.} points The list of points that is interpreted as a number of line segments. - * @returns {boolean} true if the rectangle intersects at least one segment of the line. + * @param points The list of points that is interpreted as a number of line segments. + * @returns true if the rectangle intersects at least one segment of the line. */ intersectsPolyline(points:yfiles.collections.IEnumerable):boolean; /** * Creates an {@link yfiles.geometry.IMutableRectangle} using the values from this instance. - * @returns {yfiles.geometry.IMutableRectangle} An instance that has been initialized from the values of this instance. + * @returns An instance that has been initialized from the values of this instance. */ toMutableRectangle():yfiles.geometry.IMutableRectangle; /** * Creates a {@link yfiles.algorithms.Rectangle2D Rectangle2D} from a given {@link yfiles.geometry.Rect}. - * @returns {yfiles.algorithms.Rectangle2D} The {@link yfiles.algorithms.Rectangle2D Rectangle2D}. + * @returns The {@link Rectangle2D}. */ toRectangle2D():yfiles.algorithms.Rectangle2D; /** * Creates a {@link yfiles.algorithms.YRectangle} from a given {@link yfiles.geometry.Rect}. - * @returns {yfiles.algorithms.YRectangle} The {@link yfiles.algorithms.YRectangle}. + * @returns The {@link }. */ toYRectangle():yfiles.algorithms.YRectangle; /** @@ -62347,16 +62415,15 @@ declare namespace system{ *

    * The tangent consists of its point of tangency ({@link yfiles.geometry.Tangent#point}) and a direction ({@link yfiles.geometry.Tangent#vector}). *

    - * @class yfiles.geometry.Tangent + * @class * @final */ export interface Tangent extends yfiles.lang.Struct{} export class Tangent { /** * Initializes a new instance of the {@link yfiles.geometry.Tangent} class using the given values for the {@link yfiles.geometry.Tangent#point} and {@link yfiles.geometry.Tangent#vector} properties. - * @param {yfiles.geometry.Point} point The point of tangency. - * @param {yfiles.geometry.Point} vector The directional vector. - * @constructor + * @param point The point of tangency. + * @param vector The directional vector. */ constructor(point:yfiles.geometry.Point,vector:yfiles.geometry.Point); /** @@ -62376,18 +62443,18 @@ declare namespace system{ *

    * Also it serves as a factory for various implementations of geometric primitives. *

    - * @class yfiles.geometry.GeomUtilities + * @class * @static */ export interface GeomUtilities extends Object{} export class GeomUtilities { /** * Checks whether an ellipse contains the given point. - * @param {yfiles.geometry.Rect} bounds The coordinates of the bounds of the ellipse's enclosing rectangle. - * @param {yfiles.geometry.Point} point The coordinates of the point to test. - * @param {number} eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than + * @param bounds The coordinates of the bounds of the ellipse's enclosing rectangle. + * @param point The coordinates of the point to test. + * @param eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than * or equal to that value, it will be considered a hit. - * @returns {boolean} Whether the point lies within the ellipse + * @returns Whether the point lies within the ellipse * @static */ static ellipseContains(bounds:yfiles.geometry.Rect,point:yfiles.geometry.Point,eps:number):boolean; @@ -62396,10 +62463,10 @@ declare namespace system{ *

    * This will always return the intersection point that lies in the direction from inner to outer. *

    - * @param {yfiles.geometry.Rect} bounds The coordinates of the bounds of the ellipse's enclosing rectangle. - * @param {yfiles.geometry.Point} inner The coordinates of a point lying inside the ellipse. - * @param {yfiles.geometry.Point} outer The coordinates of a point lying outside the ellipse. - * @returns {yfiles.geometry.Point} The intersection point iff the inner point lies inside the ellipse and an intersection point has been found, otherwise + * @param bounds The coordinates of the bounds of the ellipse's enclosing rectangle. + * @param inner The coordinates of a point lying inside the ellipse. + * @param outer The coordinates of a point lying outside the ellipse. + * @returns The intersection point iff the inner point lies inside the ellipse and an intersection point has been found, otherwise * null. * @static */ @@ -62410,11 +62477,11 @@ declare namespace system{ * The ray is described using an anchor point and a ray direction. The direction vector does not need to be normalized. In * order to obtain the intersection point do the following: *

    - * @param {yfiles.geometry.Point} start The coordinates of the first end point of the line segment. - * @param {yfiles.geometry.Point} end The coordinates of the second end point of the line segment. - * @param {yfiles.geometry.Point} anchor The coordinates of the starting point of the ray. - * @param {yfiles.geometry.Point} rayDirection The direction vector of the ray. - * @returns {number} The distance factor or {@link number#POSITIVE_INFINITY} if the ray does not intersect the line. + * @param start The coordinates of the first end point of the line segment. + * @param end The coordinates of the second end point of the line segment. + * @param anchor The coordinates of the starting point of the ray. + * @param rayDirection The direction vector of the ray. + * @returns The distance factor or {@link #POSITIVE_INFINITY} if the ray does not intersect the line. * @static */ static findRayIntersection(start:yfiles.geometry.Point,end:yfiles.geometry.Point,anchor:yfiles.geometry.Point,rayDirection:yfiles.geometry.Point):number; @@ -62432,12 +62499,12 @@ declare namespace system{ export interface IMutableOrientedRectangle extends Object,yfiles.geometry.IOrientedRectangle,yfiles.geometry.IMutableSize{ /** * Sets the anchor vector of the oriented rectangle to the given value. - * @param {yfiles.geometry.Point} location The coordinates of the new anchor location. + * @param location The coordinates of the new anchor location. */ setAnchor?(location:yfiles.geometry.Point):void; /** * Sets the center of the oriented rectangle to the given value. - * @param {yfiles.geometry.Point} center The coordinates of the new center. + * @param center The coordinates of the new center. */ setCenter?(center:yfiles.geometry.Point):void; /** @@ -62445,8 +62512,8 @@ declare namespace system{ *

    * It is up to the caller to assure that the values describe a vector of length 1. *

    - * @param {number} upx The x component of the normalized up vector. - * @param {number} upy The y component of the normalized up vector. + * @param upx The x component of the normalized up vector. + * @param upy The y component of the normalized up vector. * @see yfiles.geometry.IOrientedRectangle#upX * @see yfiles.geometry.IOrientedRectangle#upY * @abstract @@ -62493,13 +62560,13 @@ declare namespace system{ export interface IMutablePoint extends Object,yfiles.geometry.IPoint{ /** * Sets the coordinates of the point to the given values. - * @param {number} x The new x coordinate - * @param {number} y The new y coordinate + * @param x The new x coordinate + * @param y The new y coordinate */ relocate?(x:number,y:number):void; /** * Sets the coordinates of the point to the given values. - * @param {yfiles.geometry.IPoint} location The new location. + * @param location The new location. */ relocate?(location:yfiles.geometry.IPoint):void; /** @@ -62553,7 +62620,7 @@ declare namespace system{ * If the rectangle is initially empty, i.e. its width or height is negative, the bounds of the rectangle will be set to * (p.x, p.y, 0, 0) *

    - * @param {yfiles.geometry.IPoint} point The coordinate to include in the bounds. + * @param point The coordinate to include in the bounds. */ add?(point:yfiles.geometry.IPoint):void; /** @@ -62562,31 +62629,31 @@ declare namespace system{ * The result is placed into the first rectangle, which is returned. If either of the two rectangles is empty, i.e. it's * width or height is negative, the result will be the other rectangle. *

    - * @param {yfiles.geometry.IRectangle} rectangle2 The rectangle to be added. + * @param rectangle2 The rectangle to be added. */ add?(rectangle2:yfiles.geometry.IRectangle):void; /** * Applies a new position and size to a given mutable rectangle. - * @param {number} x The new x coordinate of the upper left corner of the rectangle. - * @param {number} y The new y coordinate of the upper left corner of the rectangle. - * @param {number} width The new width of the rectangle. - * @param {number} height The new height of the rectangle. + * @param x The new x coordinate of the upper left corner of the rectangle. + * @param y The new y coordinate of the upper left corner of the rectangle. + * @param width The new width of the rectangle. + * @param height The new height of the rectangle. */ reshape?(x:number,y:number,width:number,height:number):void; /** * Applies a new position and size to a given mutable rectangle. - * @param {yfiles.geometry.IPoint} position The new location. - * @param {yfiles.geometry.ISize} size The new size. + * @param position The new location. + * @param size The new size. */ reshape?(position:yfiles.geometry.IPoint,size:yfiles.geometry.ISize):void; /** * Applies a new position and size to a given mutable rectangle. - * @param {yfiles.geometry.IRectangle} newRectangle The bounds to set to the rectangle. + * @param newRectangle The bounds to set to the rectangle. */ reshape?(newRectangle:yfiles.geometry.IRectangle):void; /** * Sets the center of the rectangle to the provided value. - * @param {yfiles.geometry.Point} center The new center coordinates. + * @param center The new center coordinates. */ setCenter?(center:yfiles.geometry.Point):void; /** @@ -62595,8 +62662,8 @@ declare namespace system{ * Either of the two parameters rectangles may be the same as the first parameter. The result is placed into the this * parameter. This method treats rectangles with negative width or height as empty. *

    - * @param {yfiles.geometry.IRectangle} rectangle1 The first rectangle to create the union of. - * @param {yfiles.geometry.IRectangle} rectangle2 The second rectangle to create the union of. + * @param rectangle1 The first rectangle to create the union of. + * @param rectangle2 The second rectangle to create the union of. */ setToUnion?(rectangle1:yfiles.geometry.IRectangle,rectangle2:yfiles.geometry.IRectangle):void; } @@ -62617,18 +62684,13 @@ declare namespace system{ export interface IMutableSize extends Object,yfiles.geometry.ISize{ /** * Sets the coordinates of the size to the given values. - * @param {number} newWidth The new x coordinate - * @param {number} newHeight The new y coordinate + * @param newWidth The new x coordinate + * @param newHeight The new y coordinate */ resize?(newWidth:number,newHeight:number):void; - /** - * Sets the values of the size to the given values. - * @param {yfiles.geometry.Size} newSize The new location. - */ - resize?(newSize:yfiles.geometry.Size):void; /** * Sets the coordinates of the size to the given values. - * @param {yfiles.geometry.ISize} newSize The new location. + * @param newSize The new location. */ resize?(newSize:yfiles.geometry.ISize):void; /** @@ -62681,29 +62743,29 @@ declare namespace system{ export interface IOrientedRectangle extends Object,yfiles.geometry.ISize{ /** * Determines whether the given oriented rectangle contains the provided point, using an epsilon value. - * @param {yfiles.geometry.Point} point The coordinates of the point to test. - * @param {number} eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than + * @param point The coordinates of the point to test. + * @param eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than * or equal to that value, it will be considered a hit. - * @returns {boolean} true iff the point lies inside the rectangle. + * @returns true iff the point lies inside the rectangle. */ containsWithEps?(point:yfiles.geometry.Point,eps:number):boolean; /** * Creates a transformation matrix that can be used to transform points that are in the local coordinate system of the * oriented rectangle if the top-left corner is the origin. - * @returns {yfiles.geometry.Matrix} A matrix that can be used to transform from oriented rectangle coordinates to world coordinates. + * @returns A matrix that can be used to transform from oriented rectangle coordinates to world coordinates. */ createTransform?():yfiles.geometry.Matrix; /** * Determines whether the oriented rectangle contains the provided point, using an epsilon value. - * @param {yfiles.geometry.Point} location The coordinates of the point to test. - * @param {number} eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than + * @param location The coordinates of the point to test. + * @param eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than * or equal to that value, it will be considered a hit. - * @returns {boolean} true iff the point lies inside the rectangle. + * @returns true iff the point lies inside the rectangle. */ hits?(location:yfiles.geometry.Point,eps:number):boolean; /** * Creates a {@link yfiles.algorithms.YOrientedRectangle} from a given {@link yfiles.geometry.IOrientedRectangle}. - * @returns {yfiles.algorithms.YOrientedRectangle} The {@link yfiles.algorithms.YOrientedRectangle}. + * @returns The {@link }. */ toOrientedRectangle?():yfiles.algorithms.YOrientedRectangle; /** @@ -62746,19 +62808,16 @@ declare namespace system{ upY:number; /** * Gets the up vector of the oriented rectangle as a {@link yfiles.geometry.Point} struct. - * @returns The value of the up vector of the rectangle at the time of the invocation. * @type {yfiles.geometry.Point} */ upVector?:yfiles.geometry.Point; /** * Gets the anchor location of the oriented rectangle as a {@link yfiles.geometry.Point} struct. - * @returns The anchor location of the rectangle at the time of the invocation. * @type {yfiles.geometry.Point} */ anchorLocation?:yfiles.geometry.Point; /** * Gets the current center of the oriented rectangle as a {@link yfiles.geometry.Point} struct. - * @returns The current coordinates of the center. * @type {yfiles.geometry.Point} */ orientedRectangleCenter?:yfiles.geometry.Point; @@ -62767,7 +62826,6 @@ declare namespace system{ *

    * Bounding rectangles are parallel to the coordinate axes. *

    - * @returns The bounds. * @type {yfiles.geometry.Rect} */ bounds?:yfiles.geometry.Rect; @@ -62798,8 +62856,8 @@ declare namespace system{ export interface IPoint extends Object{ /** * Calculates the Euclidean distance between two points. - * @param {yfiles.geometry.IPoint} point2 The second point. - * @returns {number} The distance between the two points. + * @param point2 The second point. + * @returns The distance between the two points. */ distanceTo?(point2:yfiles.geometry.IPoint):number; /** @@ -62808,7 +62866,7 @@ declare namespace system{ * This method is useful to obtain a copy of the state and for making use of the various utility methods that are provided * by {@link yfiles.geometry.Point}. *

    - * @returns {yfiles.geometry.Point} The current values of the coordinates of the point. + * @returns The current values of the coordinates of the point. * @see yfiles.geometry.Point#toMutablePoint */ toPoint?():yfiles.geometry.Point; @@ -62858,14 +62916,14 @@ declare namespace system{ export interface IRectangle extends Object,yfiles.geometry.ISize,yfiles.geometry.IPoint{ /** * Determines whether the given rectangle contains the provided point. - * @param {yfiles.geometry.Point} point The point to test. - * @returns {boolean} true iff the point lies inside the rectangle. + * @param point The point to test. + * @returns true iff the point lies inside the rectangle. */ contains?(point:yfiles.geometry.Point):boolean; /** * Determines whether the given rectangle contains the provided point. - * @param {yfiles.geometry.IPoint} point The point to test. - * @returns {boolean} true iff the point lies inside the rectangle. + * @param point The point to test. + * @returns true iff the point lies inside the rectangle. */ contains?(point:yfiles.geometry.IPoint):boolean; /** @@ -62874,26 +62932,23 @@ declare namespace system{ * This method can be used to obtain a copy of the current state of the rectangle and for using the utility methods that * are available for the {@link yfiles.geometry.Rect} type. *

    - * @returns {yfiles.geometry.Rect} A {@link yfiles.geometry.Rect} that holds the values of the rectangle at the time of the invocation. + * @returns A {@link } that holds the values of the rectangle at the time of the invocation. * @see yfiles.geometry.IMutableRectangle#reshape * @see yfiles.geometry.Rect#toMutableRectangle */ toRect?():yfiles.geometry.Rect; /** * Gets the coordinates of the top left corner of the rectangle as a {@link yfiles.geometry.Point}. - * @returns The current coordinates of the corner. * @type {yfiles.geometry.Point} */ topLeft?:yfiles.geometry.Point; /** * Gets the coordinates of the bottom left corner of the rectangle as a {@link yfiles.geometry.Point}. - * @returns The current coordinates of the corner. * @type {yfiles.geometry.Point} */ bottomLeft?:yfiles.geometry.Point; /** * Gets the coordinates of the center of the rectangle as a {@link yfiles.geometry.Point}. - * @returns The current coordinates of the center. * @type {yfiles.geometry.Point} */ center?:yfiles.geometry.Point; @@ -62902,7 +62957,6 @@ declare namespace system{ *

    * This is the x coordinate of the right side of the rectangle, or the left side if the rectangle is {@link yfiles.geometry.IRectangle#isEmpty}. *

    - * @returns The maximum x coordinate of the rectangle's corners. * @type {number} */ maxX?:number; @@ -62911,7 +62965,6 @@ declare namespace system{ *

    * {@link yfiles.geometry.IRectangle} instances are considered empty if their {@link yfiles.geometry.ISize#width} or {@link yfiles.geometry.ISize#height} is less than 0.0d. *

    - * @returns true if the specified rectangle is empty; false otherwise. * @type {boolean} */ isEmpty?:boolean; @@ -62920,19 +62973,16 @@ declare namespace system{ *

    * This is the y coordinate of the bottom side of the rectangle, or the top side if the rectangle is {@link yfiles.geometry.IRectangle#isEmpty}. *

    - * @returns The maximum y coordinate of the rectangle's corners. * @type {number} */ maxY?:number; /** * Gets the coordinates of the top right corner of the rectangle as a {@link yfiles.geometry.Point}. - * @returns The current coordinates of the corner. * @type {yfiles.geometry.Point} */ topRight?:yfiles.geometry.Point; /** * Gets the coordinates of the bottom right corner of the rectangle as a {@link yfiles.geometry.Point}. - * @returns The current coordinates of the corner. * @type {yfiles.geometry.Point} */ bottomRight?:yfiles.geometry.Point; @@ -62956,7 +63006,7 @@ declare namespace system{ export interface ISize extends Object{ /** * Converts the {@link yfiles.geometry.ISize} to a {@link yfiles.geometry.Size} struct. - * @returns {yfiles.geometry.Size} A {@link yfiles.geometry.Size} struct that has been initialized with the current values of size. + * @returns A {@link } struct that has been initialized with the current values of size. */ toSize?():yfiles.geometry.Size; /** @@ -63013,7 +63063,7 @@ declare namespace system{ * {@link yfiles.geometry.MatrixOrder#PREPEND Prepending} a matrix T to this instance results in the operation M′ = M T. In concept, this means that T is applied before M * when applying M' to a vector. {@link yfiles.geometry.MatrixOrder#APPEND Appending} T to M results in M′ = T M. *

    - * @class yfiles.geometry.Matrix + * @class * @implements {yfiles.lang.ICloneable} * @final */ @@ -63021,41 +63071,39 @@ declare namespace system{ export class Matrix { /** * Create a matrix using the provided matrix entries. - * @param {number} m11 - * @param {number} m12 - * @param {number} m21 - * @param {number} m22 - * @param {number} dx - * @param {number} dy - * @constructor + * @param m11 + * @param m12 + * @param m21 + * @param m22 + * @param dx + * @param dy */ constructor(m11:number,m12:number,m21:number,m22:number,dx:number,dy:number); /** * Create an identity matrix. - * @constructor */ constructor(); /** * Applies this matrix to the given SVG element. - * @param {SVGElement} element The element to transform. + * @param element The element to transform. */ applyTo(element:SVGElement):void; /** * Applies this matrix to the given HTML canvas rendering context. - * @param {CanvasRenderingContext2D} ctx The context to transform. + * @param ctx The context to transform. */ applyTo(ctx:CanvasRenderingContext2D):void; /** * Creates a matrix rotation instance around the origin. - * @param {number} theta The rotation angle in radians. - * @returns {yfiles.geometry.Matrix} A new matrix. + * @param theta The rotation angle in radians. + * @returns A new matrix. * @static */ static createRotateInstance(theta:number):yfiles.geometry.Matrix; /** * Determines whether this has the same values like other. - * @param {yfiles.geometry.Matrix} other The object to compare this to. Must be of the same type. - * @returns {boolean} true if this has the same values like the other object. + * @param other The object to compare this to. Must be of the same type. + * @returns true if this has the same values like the other object. */ hasSameValue(other:yfiles.geometry.Matrix):boolean; /** @@ -63064,8 +63112,8 @@ declare namespace system{ invert():void; /** * Multiplies this matrix instance by the given instance using the given order. - * @param {yfiles.geometry.Matrix} matrix The matrix to multiply with this one. - * @param {yfiles.geometry.MatrixOrder} [order=yfiles.geometry.MatrixOrder.PREPEND] The order of the multiplication. {@link yfiles.geometry.MatrixOrder#PREPEND} if not specified. + * @param matrix The matrix to multiply with this one. + * @param [order=yfiles.geometry.MatrixOrder.PREPEND] The order of the multiplication. {@link #PREPEND} if not specified. */ multiply(matrix:yfiles.geometry.Matrix,order?:yfiles.geometry.MatrixOrder):void; /** @@ -63074,37 +63122,37 @@ declare namespace system{ reset():void; /** * Prepends or appends a rotation operation to this matrix around the specified rotation center. - * @param {number} theta The rotation angle in radians - * @param {yfiles.geometry.Point} center The coordinate of the center of the rotation. - * @param {yfiles.geometry.MatrixOrder} [order=yfiles.geometry.MatrixOrder.PREPEND] Whether to append or prepend the rotation matrix. + * @param theta The rotation angle in radians + * @param center The coordinate of the center of the rotation. + * @param [order=yfiles.geometry.MatrixOrder.PREPEND] Whether to append or prepend the rotation matrix. */ rotate(theta:number,center:yfiles.geometry.Point,order?:yfiles.geometry.MatrixOrder):void; /** * Prepends or appends a rotation operation to this matrix around the origin. - * @param {number} theta The rotation angle in radians - * @param {yfiles.geometry.MatrixOrder} [order=yfiles.geometry.MatrixOrder.PREPEND] Whether to append or prepend the rotation matrix. + * @param theta The rotation angle in radians + * @param [order=yfiles.geometry.MatrixOrder.PREPEND] Whether to append or prepend the rotation matrix. */ rotate(theta:number,order?:yfiles.geometry.MatrixOrder):void; /** * Appends or prepends a scale operation to this instance. - * @param {number} x - * @param {number} y - * @param {yfiles.geometry.MatrixOrder} [order=0] + * @param x + * @param y + * @param [order=yfiles.geometry.MatrixOrder.PREPEND] */ scale(x:number,y:number,order?:yfiles.geometry.MatrixOrder):void; /** * Sets all elements of this instance. - * @param {number} m0 - * @param {number} m1 - * @param {number} m2 - * @param {number} m3 - * @param {number} dx - * @param {number} dy + * @param m0 + * @param m1 + * @param m2 + * @param m3 + * @param dx + * @param dy */ set(m0:number,m1:number,m2:number,m3:number,dx:number,dy:number):void; /** * Sets the values of the given matrix to this instance. - * @param {yfiles.geometry.Matrix} matrix + * @param matrix */ set(matrix:yfiles.geometry.Matrix):void; /** @@ -63112,25 +63160,25 @@ declare namespace system{ *

    * The returned string can be used in a transform attribute. *

    - * @returns {string} The transform string + * @returns The transform string */ toSvgTransform():string; /** * Transforms the given coordinate. - * @param {yfiles.geometry.Point} point The coordinate to transform. - * @returns {yfiles.geometry.Point} The transformed coordinates. + * @param point The coordinate to transform. + * @returns The transformed coordinates. */ transform(point:yfiles.geometry.Point):yfiles.geometry.Point; /** * Transforms the given point in place. - * @param {yfiles.geometry.IMutablePoint} point The point to transform and return. - * @returns {yfiles.geometry.IMutablePoint} point + * @param point The point to transform and return. + * @returns point */ transform(point:yfiles.geometry.IMutablePoint):yfiles.geometry.IMutablePoint; /** * Appends or Prepends a translation to this instance. - * @param {yfiles.geometry.Point} delta - * @param {yfiles.geometry.MatrixOrder} [order=0] + * @param delta + * @param [order=yfiles.geometry.MatrixOrder.PREPEND] */ translate(delta:yfiles.geometry.Point,order?:yfiles.geometry.MatrixOrder):void; /** @@ -63150,7 +63198,7 @@ declare namespace system{ * implements the {@link yfiles.lang.ICloneable} interface. *

    * @see yfiles.geometry.IPoint - * @class yfiles.geometry.MutablePoint + * @class * @implements {yfiles.geometry.IMutablePoint} * @implements {yfiles.lang.ICloneable} * @final @@ -63159,25 +63207,22 @@ declare namespace system{ export class MutablePoint { /** * Creates an instance using the given coordinate pair. - * @param {number} x The x coordinate - * @param {number} y The y coordinate - * @constructor + * @param x The x coordinate + * @param y The y coordinate */ constructor(x:number,y:number); /** * Creates an instance using the given coordinate pair. - * @param {yfiles.geometry.IPoint} point The coordinate. - * @constructor + * @param point The coordinate. */ constructor(point:yfiles.geometry.IPoint); /** * Creates the point with initially 0.0d values for {@link yfiles.geometry.MutablePoint#x} and {@link yfiles.geometry.MutablePoint#y}. - * @constructor */ constructor(); /** * Moves this instance by adding the provided offsets to the coordinates of this point. - * @param {yfiles.geometry.Point} delta The offset to add to this point's x coordinate + * @param delta The offset to add to this point's x coordinate */ moveBy(delta:yfiles.geometry.Point):void; /** @@ -63210,7 +63255,7 @@ declare namespace system{ *

    * @see yfiles.geometry.IRectangle * @see yfiles.geometry.IMutableRectangle - * @class yfiles.geometry.MutableRectangle + * @class * @implements {yfiles.geometry.IMutableRectangle} * @implements {yfiles.geometry.IOrientedRectangle} * @implements {yfiles.lang.ICloneable} @@ -63224,11 +63269,10 @@ declare namespace system{ * An instance of {@link yfiles.geometry.MutablePoint} will be used to store the position and an instance of {@link yfiles.geometry.MutableRectangle#size} will be used to store * the size. *

    - * @param {number} x The x coordinate of the upper left corner of the rectangle. - * @param {number} y The y coordinate of the upper left corner of the rectangle. - * @param {number} width The width of the rectangle. - * @param {number} height The height of the rectangle. - * @constructor + * @param x The x coordinate of the upper left corner of the rectangle. + * @param y The y coordinate of the upper left corner of the rectangle. + * @param width The width of the rectangle. + * @param height The height of the rectangle. */ constructor(x:number,y:number,width:number,height:number); /** @@ -63237,9 +63281,8 @@ declare namespace system{ * An instance of {@link yfiles.geometry.MutablePoint} will be used to store the position and an instance of {@link yfiles.geometry.MutableRectangle#size} will be used to store * the size. *

    - * @param {yfiles.geometry.Point} location The coordinates of the upper left corner of the rectangle. - * @param {yfiles.geometry.Size} size The size of the rectangle. - * @constructor + * @param location The coordinates of the upper left corner of the rectangle. + * @param size The size of the rectangle. */ constructor(location:yfiles.geometry.Point,size:yfiles.geometry.Size); /** @@ -63249,25 +63292,22 @@ declare namespace system{ * instances. Changes to them will indirectly change the state of this instance and changes applied through this instance * will be written to the referenced implementations. *

    - * @param {yfiles.geometry.IMutablePoint} location The provider for the dynamic position of this instance. - * @param {yfiles.geometry.IMutableSize} size The provider for the dynamic size of this instance. - * @constructor + * @param location The provider for the dynamic position of this instance. + * @param size The provider for the dynamic size of this instance. */ constructor(location:yfiles.geometry.IMutablePoint,size:yfiles.geometry.IMutableSize); /** * Creates a new instance initialized to the values of the provided argument. - * @param {yfiles.geometry.IRectangle} rectangle - * @constructor + * @param rectangle */ constructor(rectangle:yfiles.geometry.IRectangle); /** * Creates a new empty instance located at the origin with width and height set to -1. - * @constructor */ constructor(); /** * Moves this rectangle by applying the offset to the {@link yfiles.geometry.MutableRectangle#location} - * @param {yfiles.geometry.Point} delta The offset to move the rectangle's position by. + * @param delta The offset to move the rectangle's position by. */ moveBy(delta:yfiles.geometry.Point):void; /** @@ -63393,7 +63433,7 @@ declare namespace system{ * This implementation stores the values of the width and height in double precision floating point members. *

    * @see yfiles.geometry.ISize - * @class yfiles.geometry.MutableSize + * @class * @implements {yfiles.geometry.IMutableSize} * @implements {yfiles.lang.ICloneable} * @final @@ -63402,9 +63442,8 @@ declare namespace system{ export class MutableSize { /** * Creates an instance using the given width and height. - * @param {number} width The width. - * @param {number} height The height - * @constructor + * @param width The width. + * @param height The height */ constructor(width:number,height:number); /** @@ -63413,14 +63452,11 @@ declare namespace system{ * This will not create a dynamic instance. The values will be copied from size immediately and no reference is held to * that instance thereafter. *

    - * @param {yfiles.geometry.ISize} size A size to retrieve the initial values from. - * @returns A instance of the Size class. - * @constructor + * @param size A size to retrieve the initial values from. */ constructor(size:yfiles.geometry.ISize); /** * Creates the initially empty size, that is both {@link yfiles.geometry.MutableSize#width} and {@link yfiles.geometry.MutableSize#height} are 0.0d. - * @constructor */ constructor(); /** @@ -63446,7 +63482,7 @@ declare namespace system{ *

    * @see yfiles.geometry.IOrientedRectangle * @see yfiles.geometry.IMutableOrientedRectangle - * @class yfiles.geometry.OrientedRectangle + * @class * @implements {yfiles.geometry.IMutablePoint} * @implements {yfiles.geometry.IMutableOrientedRectangle} * @implements {yfiles.lang.ICloneable} @@ -63462,9 +63498,8 @@ declare namespace system{ * provided instances. Changes to them will indirectly change the state of this instance and changes applied through this * instance will be written to the referenced implementations. *

    - * @param {yfiles.geometry.IMutablePoint} anchor The provider for the dynamic anchor of this instance. - * @param {yfiles.geometry.IMutableSize} size The provider for the dynamic size of this instance. - * @constructor + * @param anchor The provider for the dynamic anchor of this instance. + * @param size The provider for the dynamic size of this instance. */ constructor(anchor:yfiles.geometry.IMutablePoint,size:yfiles.geometry.IMutableSize); /** @@ -63472,8 +63507,7 @@ declare namespace system{ *

    * This will basically create a copy of the given rectangle *

    - * @param {yfiles.geometry.IOrientedRectangle} rectangle The rectangle to initialize the anchor and size and up vector from. - * @constructor + * @param rectangle The rectangle to initialize the anchor and size and up vector from. */ constructor(rectangle:yfiles.geometry.IOrientedRectangle); /** @@ -63482,8 +63516,7 @@ declare namespace system{ * The anchor will be set to the lower left corner of the provided rectangle. Thus this instance will have the exact same * bounds as the rectangle initially. The up vector will be initialized to (0, -1). *

    - * @param {yfiles.geometry.IRectangle} rectangle The rectangle to initialize the anchor and size from. - * @constructor + * @param rectangle The rectangle to initialize the anchor and size from. */ constructor(rectangle:yfiles.geometry.IRectangle); /** @@ -63491,13 +63524,12 @@ declare namespace system{ *

    * It is up to the caller to ensure that the up vector is normalized. *

    - * @param {number} anchorX The x coordinate of the anchor of the oriented rectangle. - * @param {number} anchorY The y coordinate of the anchor of the oriented rectangle. - * @param {number} width The width of the rectangle. - * @param {number} height The height of the rectangle. - * @param {number} [upX=0] The x component of the up vector. - * @param {number} [upY=-1] The y component of the up vector. - * @constructor + * @param anchorX The x coordinate of the anchor of the oriented rectangle. + * @param anchorY The y coordinate of the anchor of the oriented rectangle. + * @param width The width of the rectangle. + * @param height The height of the rectangle. + * @param [upX=0] The x component of the up vector. + * @param [upY=-1] The y component of the up vector. */ constructor(anchorX:number,anchorY:number,width:number,height:number,upX?:number,upY?:number); /** @@ -63506,19 +63538,17 @@ declare namespace system{ * It is up to the caller to ensure that the up vector is normalized. *

    * @param {Object} options The parameters to pass. - * @param {number} options.anchorX The x coordinate of the anchor of the oriented rectangle. - * @param {number} options.anchorY The y coordinate of the anchor of the oriented rectangle. - * @param {number} options.width The width of the rectangle. - * @param {number} options.height The height of the rectangle. - * @param {number} [options.upX=0] The x component of the up vector. - * @param {number} [options.upY=-1] The y component of the up vector. - * @constructor + * @param options.anchorX The x coordinate of the anchor of the oriented rectangle. + * @param options.anchorY The y coordinate of the anchor of the oriented rectangle. + * @param options.width The width of the rectangle. + * @param options.height The height of the rectangle. + * @param [options.upX=0] The x component of the up vector. + * @param [options.upY=-1] The y component of the up vector. */ constructor(options:{anchorX:number,anchorY:number,width:number,height:number,upX?:number,upY?:number}); /** * Initializes a new instance of the {@link yfiles.geometry.OrientedRectangle} class located at 0.0d,0.0d with empty width and * height (-1.0d). - * @constructor */ constructor(); /** @@ -63530,32 +63560,31 @@ declare namespace system{ * (0, -1). Unlike true casting this will create a new instance that will be initialized to the current state of the object * being cast, but which will not stay in sync with the state of the object. *

    - * @param {yfiles.geometry.MutableRectangle} rect the rectangle to get the current state from - * @returns {yfiles.geometry.OrientedRectangle} A new instance of {@link yfiles.geometry.OrientedRectangle} that holds no reference to the provided rectangle. + * @param rect the rectangle to get the current state from + * @returns A new instance of {@link } that holds no reference to the provided rectangle. * @static */ static convertFrom(rect:yfiles.geometry.MutableRectangle):yfiles.geometry.OrientedRectangle; /** * Creates an immutable {@link yfiles.geometry.IOrientedRectangle} with the given values. - * @param {number} anchorX - * @param {number} anchorY - * @param {number} width - * @param {number} height - * @param {number} upX - * @param {number} upY - * @returns {yfiles.geometry.IOrientedRectangle} + * @param anchorX + * @param anchorY + * @param width + * @param height + * @param upX + * @param upY + * @returns * @static */ static createImmutable(anchorX:number,anchorY:number,width:number,height:number,upX:number,upY:number):yfiles.geometry.IOrientedRectangle; /** * Moves this rectangle by applying the offset to the {@link yfiles.geometry.OrientedRectangle#anchor} - * @param {yfiles.geometry.Point} delta The offset to move the rectangle's anchor by. - * @returns true iff dx != 0 || dy != 0 + * @param delta The offset to move the rectangle's anchor by. */ moveBy(delta:yfiles.geometry.Point):void; /** * Applies the values provided by the given instance to the values of this instance. - * @param {yfiles.geometry.IOrientedRectangle} rectangle The instance to retrieve the values from. + * @param rectangle The instance to retrieve the values from. */ reshape(rectangle:yfiles.geometry.IOrientedRectangle):void; /** @@ -63563,8 +63592,8 @@ declare namespace system{ *

    * It is up to the caller to assure that the values describe a vector of length 1. *

    - * @param {number} upx The x component of the normalized up vector. - * @param {number} upy The y component of the normalized up vector. + * @param upx The x component of the normalized up vector. + * @param upy The y component of the normalized up vector. * @see yfiles.geometry.OrientedRectangle#angle */ setUpVector(upx:number,upy:number):void; @@ -63682,7 +63711,7 @@ declare namespace system{ }export namespace styles{ /** * A default implementation of the {@link yfiles.styles.IArrow} interface that can render {@link yfiles.styles.ArrowType}s. - * @class yfiles.styles.Arrow + * @class * @implements {yfiles.styles.IArrow} * @implements {yfiles.lang.ICloneable} * @final @@ -63694,8 +63723,7 @@ declare namespace system{ *

    * The {@link yfiles.styles.Arrow#stroke} is created with thickness 1. *

    - * @param {yfiles.view.Color} color The color to use for {@link yfiles.styles.Arrow#stroke} and brush. - * @constructor + * @param color The color to use for {@link #stroke} and brush. */ constructor(color:yfiles.view.Color); /** @@ -63704,7 +63732,7 @@ declare namespace system{ * The {@link yfiles.styles.Arrow#stroke} is created with thickness 1. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.view.Color} options.color The color to use for {@link yfiles.styles.Arrow#stroke} and brush. + * @param options.color The color to use for {@link #stroke} and brush. * @param {number} options.cropLength The cropping length associated with this instance. *

    * This option sets the {@link yfiles.styles.Arrow#cropLength} property on the created object. @@ -63721,7 +63749,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.Arrow#type} property on the created object. *

    - * @constructor */ constructor(options:{color:yfiles.view.Color,cropLength?:number,stroke?:yfiles.view.Stroke,scale?:number,type?:yfiles.styles.ArrowType}); /** @@ -63747,17 +63774,16 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.Arrow#type} property on the created object. *

    - * @constructor */ constructor(options?:{fill?:yfiles.view.Fill,cropLength?:number,stroke?:yfiles.view.Stroke,scale?:number,type?:yfiles.styles.ArrowType}); /** * Returns an immutable {@link yfiles.styles.IArrow} instance that uses the current properties. - * @returns {yfiles.styles.IArrow} An immutable instance + * @returns An immutable instance */ asFrozen():yfiles.styles.IArrow; /** * Gets or sets the type of this arrow. - * @default 1 + * @default yfiles.styles.ArrowType.DEFAULT * @type {yfiles.styles.ArrowType} */ type:yfiles.styles.ArrowType; @@ -63800,7 +63826,7 @@ declare namespace system{ *
      *
    • Tutorial: 02 Custom Styles, step 18 Edge Cropping
    • *
    - * @class yfiles.styles.DefaultEdgePathCropper + * @class * @implements {yfiles.styles.IEdgePathCropper} */ export interface DefaultEdgePathCropper extends Object,yfiles.styles.IEdgePathCropper{} @@ -63811,9 +63837,9 @@ declare namespace system{ * This method can be overridden to change the length that is cropped from an edge. The default implementation returns the * sum of {@link yfiles.styles.DefaultEdgePathCropper#extraCropLength}, {@link yfiles.styles.IArrow#length arrow length} and {@link yfiles.styles.IArrow#cropLength arrow crop length} *

    - * @param {yfiles.styles.IArrow} arrow The arrow at this edge end. - * @param {boolean} atSource true if the crop length should be calculated at the edge source. false otherwise. - * @returns {number} The total length the edge path is cropped. + * @param arrow The arrow at this edge end. + * @param atSource true if the crop length should be calculated at the edge source. false otherwise. + * @returns The total length the edge path is cropped. * @see yfiles.styles.DefaultEdgePathCropper#cropEdgePath * @see yfiles.styles.DefaultEdgePathCropper#cropEdgePathAtArrow * @protected @@ -63826,11 +63852,11 @@ declare namespace system{ * the edge path is cropped at the {@link yfiles.styles.DefaultEdgePathCropper#getNodeGeometry node geometry}. If this would result in an empty path, the cropping is delegated to {@link yfiles.styles.DefaultEdgePathCropper#handleEmptyPath} * instead. *

    - * @param {yfiles.graph.IEdge} edge The edge whose path is to be cropped. - * @param {boolean} atSource Whether to crop the source or target side of the path. - * @param {yfiles.styles.IArrow} arrow The arrow that is used at the end of the edge. - * @param {yfiles.geometry.GeneralPath} path The path to crop. - * @returns {yfiles.geometry.GeneralPath} The cropped path. This is can be either the same instance of the given path or a newly created instance. + * @param edge The edge whose path is to be cropped. + * @param atSource Whether to crop the source or target side of the path. + * @param arrow The arrow that is used at the end of the edge. + * @param path The path to crop. + * @returns The cropped path. This is can be either the same instance of the given path or a newly created instance. */ cropEdgePath(edge:yfiles.graph.IEdge,atSource:boolean,arrow:yfiles.styles.IArrow,path:yfiles.geometry.GeneralPath):yfiles.geometry.GeneralPath; /** @@ -63839,30 +63865,30 @@ declare namespace system{ * The path is cropped by the length {@link yfiles.styles.DefaultEdgePathCropper#calculateTotalCropLength} returns for arrow and * atSource. *

    - * @param {boolean} atSource if set to true the source side is cropped. - * @param {yfiles.styles.IArrow} arrow The arrow to consider for the cropping. - * @param {yfiles.geometry.GeneralPath} path The edge's path to crop. - * @returns {yfiles.geometry.GeneralPath} The cropped path. This is can be either the same instance of the given path or a newly created instance. + * @param atSource if set to true the source side is cropped. + * @param arrow The arrow to consider for the cropping. + * @param path The edge's path to crop. + * @returns The cropped path. This is can be either the same instance of the given path or a newly created instance. */ cropEdgePathAtArrow(atSource:boolean,arrow:yfiles.styles.IArrow,path:yfiles.geometry.GeneralPath):yfiles.geometry.GeneralPath; /** * Crops an edge's path at the source or target side at the {@link yfiles.styles.DefaultEdgePathCropper#getPortGeometry port geometry} with respect to the given arrow. - * @param {yfiles.graph.IEdge} edge The edge whose path is to be cropped. - * @param {boolean} atSource Whether to crop the source or target side of the path. - * @param {yfiles.styles.IArrow} arrow The arrow that is used at the end of the edge. - * @param {yfiles.geometry.GeneralPath} path The path to crop. - * @returns {yfiles.geometry.GeneralPath} The cropped path. This is can be either the same instance of the given path or a newly created instance. + * @param edge The edge whose path is to be cropped. + * @param atSource Whether to crop the source or target side of the path. + * @param arrow The arrow that is used at the end of the edge. + * @param path The path to crop. + * @returns The cropped path. This is can be either the same instance of the given path or a newly created instance. * @protected */ cropEdgePathAtPortGeometry(edge:yfiles.graph.IEdge,atSource:boolean,arrow:yfiles.styles.IArrow,path:yfiles.geometry.GeneralPath):yfiles.geometry.GeneralPath; /** * Finds the intersection between a node and the edge. - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.IShapeGeometry} nodeShapeGeometry - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param node + * @param nodeShapeGeometry + * @param edge + * @param inner + * @param outer + * @returns * @protected */ getIntersection(node:yfiles.graph.INode,nodeShapeGeometry:yfiles.styles.IShapeGeometry,edge:yfiles.graph.IEdge,inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; @@ -63872,8 +63898,8 @@ declare namespace system{ * The default implementation queries the {@link yfiles.styles.INodeStyleRenderer#getShapeGeometry node style renderer} for an implementation of {@link yfiles.styles.IShapeGeometry}. This * method can be overridden to return an arbitrary {@link yfiles.styles.IShapeGeometry geometry} for a node. *

    - * @param {yfiles.graph.INode} node The node the edge should be cropped at. - * @returns {yfiles.styles.IShapeGeometry} The {@link yfiles.styles.IShapeGeometry geometry} of the node. + * @param node The node the edge should be cropped at. + * @returns The {@link geometry} of the node. * @protected */ getNodeGeometry(node:yfiles.graph.INode):yfiles.styles.IShapeGeometry; @@ -63882,8 +63908,8 @@ declare namespace system{ *

    * The default implementation returns null. This method can be overridden to return an arbitrary {@link yfiles.styles.IShapeGeometry geometry} for a port. *

    - * @param {yfiles.graph.IPort} port The port the edge should be cropped at. - * @returns {yfiles.styles.IShapeGeometry} The {@link yfiles.styles.IShapeGeometry geometry} of the port. + * @param port The port the edge should be cropped at. + * @returns The {@link geometry} of the port. * @see yfiles.styles.DefaultEdgePathCropper#cropAtPort * @protected */ @@ -63897,21 +63923,21 @@ declare namespace system{ *

    * The default implementation is to {@link yfiles.geometry.GeneralPath#clear} the edge path. *

    - * @param {yfiles.graph.IEdge} edge The edge whose path is to be cropped. - * @param {boolean} atSource Whether to crop the source or target side of the path. - * @param {yfiles.styles.IArrow} arrow The arrow that is used at the end of the edge. - * @param {yfiles.geometry.GeneralPath} path The path to crop. - * @returns {yfiles.geometry.GeneralPath} The cropped path. This is can be either the same instance of the given path or a newly created instance. + * @param edge The edge whose path is to be cropped. + * @param atSource Whether to crop the source or target side of the path. + * @param arrow The arrow that is used at the end of the edge. + * @param path The path to crop. + * @returns The cropped path. This is can be either the same instance of the given path or a newly created instance. * @protected */ handleEmptyPath(edge:yfiles.graph.IEdge,atSource:boolean,arrow:yfiles.styles.IArrow,path:yfiles.geometry.GeneralPath):yfiles.geometry.GeneralPath; /** * Checks whether a given point is inside a node's shape geometry with respect to the edge that is being calculated. - * @param {yfiles.geometry.Point} location - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.IShapeGeometry} nodeShapeGeometry - * @param {yfiles.graph.IEdge} edge - * @returns {boolean} + * @param location + * @param node + * @param nodeShapeGeometry + * @param edge + * @returns * @protected */ isInside(location:yfiles.geometry.Point,node:yfiles.graph.INode,nodeShapeGeometry:yfiles.styles.IShapeGeometry,edge:yfiles.graph.IEdge):boolean; @@ -63960,11 +63986,11 @@ declare namespace system{ /** * Gets an {@link yfiles.view.IBoundsProvider} implementation that can yield this arrow's bounds if painted at the given location * using the given direction for the given edge. - * @param {yfiles.graph.IEdge} edge the edge this arrow belongs to - * @param {boolean} atSource whether this will be the source arrow - * @param {yfiles.geometry.Point} anchor the anchor point for the tip of the arrow - * @param {yfiles.geometry.Point} directionVector the direction the arrow is pointing in - * @returns {yfiles.view.IBoundsProvider} an implementation of the {@link yfiles.view.IBoundsProvider} interface that can subsequently be used to query the bounds. + * @param edge the edge this arrow belongs to + * @param atSource whether this will be the source arrow + * @param anchor the anchor point for the tip of the arrow + * @param directionVector the direction the arrow is pointing in + * @returns an implementation of the {@link } interface that can subsequently be used to query the bounds. * Clients will always call this method before using the implementation and may not cache the instance returned. This * allows for applying the flyweight design pattern to implementations. * @abstract @@ -63973,11 +63999,11 @@ declare namespace system{ /** * Gets an {@link yfiles.view.IVisualCreator} implementation that will paint this arrow at the given location using the given * direction for the given edge. - * @param {yfiles.graph.IEdge} edge the edge this arrow belongs to - * @param {boolean} atSource whether this will be the source arrow - * @param {yfiles.geometry.Point} anchor the anchor point for the tip of the arrow - * @param {yfiles.geometry.Point} direction the direction the arrow is pointing in - * @returns {yfiles.view.IVisualCreator} an implementation of the {@link yfiles.view.IVisualCreator} interface that can subsequently be used to perform the actual + * @param edge the edge this arrow belongs to + * @param atSource whether this will be the source arrow + * @param anchor the anchor point for the tip of the arrow + * @param direction the direction the arrow is pointing in + * @returns an implementation of the {@link } interface that can subsequently be used to perform the actual * painting. Clients will always call this method before using the implementation and may not cache the instance returned. * This allows for applying the flyweight design pattern to implementations. * @abstract @@ -64068,7 +64094,7 @@ declare namespace system{ * instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.graph.IEdge#style} property of an * {@link yfiles.graph.IEdge}. *

    - * @class yfiles.styles.VoidEdgeStyle + * @class * @implements {yfiles.styles.IEdgeStyle} * @final */ @@ -64076,16 +64102,16 @@ declare namespace system{ export class VoidEdgeStyle { /** * Returns this. - * @returns {Object} this + * @returns this */ clone():Object; /** * The {@link yfiles.styles.VoidEdgeStyle} singleton. * @const * @static - * @type {yfiles.styles.IEdgeStyle} + * @type {yfiles.styles.VoidEdgeStyle} */ - static INSTANCE:yfiles.styles.IEdgeStyle; + static INSTANCE:yfiles.styles.VoidEdgeStyle; /** * Yields the {@link yfiles.styles.VoidEdgeStyleRenderer#INSTANCE VoidEdgeStyleRenderer instance}. * @see yfiles.styles.IEdgeStyle#renderer @@ -64101,7 +64127,7 @@ declare namespace system{ * class instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.styles.IEdgeStyle#renderer} property of an * {@link yfiles.styles.IEdgeStyle}. *

    - * @class yfiles.styles.VoidEdgeStyleRenderer + * @class * @implements {yfiles.styles.IEdgeStyleRenderer} * @final */ @@ -64109,52 +64135,52 @@ declare namespace system{ export class VoidEdgeStyleRenderer { /** * Yields the {@link yfiles.view.IBoundsProvider#EMPTY} that will return empty bounds. - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style - * @returns {yfiles.view.IBoundsProvider} + * @param edge + * @param style + * @returns */ getBoundsProvider(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.view.IBoundsProvider; /** * Yields the {@link yfiles.graph.ILookup#EMPTY} that will not yield anything. - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style - * @returns {yfiles.graph.ILookup} + * @param edge + * @param style + * @returns */ getContext(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.graph.ILookup; /** * Yields the {@link yfiles.input.IHitTestable#NEVER} that will always report misses. - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style - * @returns {yfiles.input.IHitTestable} + * @param edge + * @param style + * @returns */ getHitTestable(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.input.IHitTestable; /** * Yields the {@link yfiles.input.IMarqueeTestable#NEVER} that will always report misses. - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style - * @returns {yfiles.input.IMarqueeTestable} + * @param edge + * @param style + * @returns */ getMarqueeTestable(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.input.IMarqueeTestable; /** * This method always returns the {@link yfiles.styles.VoidPathGeometry#INSTANCE VoidPathGeometry instance}. - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the rendering - * @returns {yfiles.styles.IPathGeometry} The {@link yfiles.styles.VoidPathGeometry#INSTANCE VoidPathGeometry instance}. + * @param edge The edge to provide an instance for + * @param style The style to use for the rendering + * @returns The {@link #INSTANCE VoidPathGeometry instance}. * @see yfiles.styles.IEdgeStyleRenderer#getPathGeometry */ getPathGeometry(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.styles.IPathGeometry; /** * Yields the {@link yfiles.view.IVisibilityTestable#NEVER} that will always claim invisibility. - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style - * @returns {yfiles.view.IVisibilityTestable} + * @param edge + * @param style + * @returns */ getVisibilityTestable(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.view.IVisibilityTestable; /** * Yields the {@link yfiles.view.VoidVisualCreator#INSTANCE} that will do nothing. - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style - * @returns {yfiles.view.IVisualCreator} + * @param edge + * @param style + * @returns */ getVisualCreator(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.view.IVisualCreator; /** @@ -64172,7 +64198,7 @@ declare namespace system{ * This class implements the singleton pattern. Use the shared static {@link yfiles.styles.VoidPathGeometry#INSTANCE} of this class * instead of null were null is not allowed. The {@link yfiles.styles.VoidEdgeStyleRenderer} does so for example. *

    - * @class yfiles.styles.VoidPathGeometry + * @class * @implements {yfiles.styles.IPathGeometry} * @final */ @@ -64245,9 +64271,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the calculating the painting bounds - * @returns {yfiles.view.IBoundsProvider} An implementation that may be used to subsequently query the edge's painting bounds. Clients should not cache this + * @param edge The edge to provide an instance for + * @param style The style to use for the calculating the painting bounds + * @returns An implementation that may be used to subsequently query the edge's painting bounds. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64258,9 +64284,9 @@ declare namespace system{ *

    * Implementations may return {@link yfiles.graph.ILookup#EMPTY} if they don't support this, but may not return null. *

    - * @param {yfiles.graph.IEdge} edge The edge to provide a context instance for. - * @param {yfiles.styles.IEdgeStyle} style The style to use for the context. - * @returns {yfiles.graph.ILookup} An non-null lookup implementation. + * @param edge The edge to provide a context instance for. + * @param style The style to use for the context. + * @returns An non-null lookup implementation. * @see yfiles.graph.ILookup#EMPTY * @see yfiles.graph.ILookup * @abstract @@ -64272,9 +64298,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the querying hit tests - * @returns {yfiles.input.IHitTestable} An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must + * @param edge The edge to provide an instance for + * @param style The style to use for the querying hit tests + * @returns An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must * always call this method immediately before using the value returned. This enables the use of the flyweight design * pattern for implementations. This method may return null to indicate that the edge cannot be hit tested. * @abstract @@ -64286,9 +64312,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the querying marquee intersection test. - * @returns {yfiles.input.IMarqueeTestable} An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this + * @param edge The edge to provide an instance for + * @param style The style to use for the querying marquee intersection test. + * @returns An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64300,9 +64326,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the rendering - * @returns {yfiles.styles.IPathGeometry} An implementation that may be used to subsequently query geometry information from. Clients should not cache this + * @param edge The edge to provide an instance for + * @param style The style to use for the rendering + * @returns An implementation that may be used to subsequently query geometry information from. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64314,9 +64340,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the testing the visibility - * @returns {yfiles.view.IVisibilityTestable} An implementation that may be used to subsequently query the edge's visibility. Clients should not cache this instance + * @param edge The edge to provide an instance for + * @param style The style to use for the testing the visibility + * @returns An implementation that may be used to subsequently query the edge's visibility. Clients should not cache this instance * and must always call this method immediately before using the value returned. This enables the use of the flyweight * design pattern for implementations * @abstract @@ -64328,11 +64354,11 @@ declare namespace system{ *

    * This method may return a flyweight implementation, but never null. *

    - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the creation of the visual - * @returns {yfiles.view.IVisualCreator} An implementation that may be used to subsequently create or update the visual for the edge. Clients should not cache + * @param edge The edge to provide an instance for + * @param style The style to use for the creation of the visual + * @returns An implementation that may be used to subsequently create or update the visual for the edge. Clients should not cache * this instance and must always call this method immediately before using the value returned. This enables the use of the - * flyweight design pattern for implementations. This method may not return null but should yield a {@link yfiles.view.VoidVisualCreator#INSTANCE void} implementation + * flyweight design pattern for implementations. This method may not return null but should yield a {@link #INSTANCE void} implementation * instead. * @see yfiles.view.VoidVisualCreator#INSTANCE * @abstract @@ -64392,11 +64418,11 @@ declare namespace system{ export interface IEdgePathCropper extends Object{ /** * Crops the provided path at one end of an edge. - * @param {yfiles.graph.IEdge} edge The edge whose path is to be cropped. - * @param {boolean} atSource Whether to crop the source or target side of the path. - * @param {yfiles.styles.IArrow} arrow The arrow that is used at the end of the edge. - * @param {yfiles.geometry.GeneralPath} path The path to crop. - * @returns {yfiles.geometry.GeneralPath} The cropped path. This is can be either the same instance of the given path or a newly created instance. + * @param edge The edge whose path is to be cropped. + * @param atSource Whether to crop the source or target side of the path. + * @param arrow The arrow that is used at the end of the edge. + * @param path The path to crop. + * @returns The cropped path. This is can be either the same instance of the given path or a newly created instance. * @abstract */ cropEdgePath(edge:yfiles.graph.IEdge,atSource:boolean,arrow:yfiles.styles.IArrow,path:yfiles.geometry.GeneralPath):yfiles.geometry.GeneralPath; @@ -64412,7 +64438,7 @@ declare namespace system{ * instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.graph.ILabel#style} property of an * {@link yfiles.graph.ILabel}. *

    - * @class yfiles.styles.VoidLabelStyle + * @class * @implements {yfiles.styles.ILabelStyle} * @final */ @@ -64420,16 +64446,16 @@ declare namespace system{ export class VoidLabelStyle { /** * Returns this. - * @returns {Object} this + * @returns this */ clone():Object; /** * The singleton instance of this style. * @const * @static - * @type {yfiles.styles.ILabelStyle} + * @type {yfiles.styles.VoidLabelStyle} */ - static INSTANCE:yfiles.styles.ILabelStyle; + static INSTANCE:yfiles.styles.VoidLabelStyle; /** * Yields the {@link yfiles.styles.VoidLabelStyleRenderer#INSTANCE VoidLabelStyleRenderer instance}. * @see yfiles.styles.ILabelStyle#renderer @@ -64445,7 +64471,7 @@ declare namespace system{ * class instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.styles.ILabelStyle#renderer} property of an * {@link yfiles.styles.ILabelStyle}. *

    - * @class yfiles.styles.VoidLabelStyleRenderer + * @class * @implements {yfiles.styles.ILabelStyleRenderer} * @final */ @@ -64453,51 +64479,51 @@ declare namespace system{ export class VoidLabelStyleRenderer { /** * Yields the {@link yfiles.view.IBoundsProvider#EMPTY} that will return empty bounds. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.view.IBoundsProvider} + * @param label + * @param style + * @returns */ getBoundsProvider(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IBoundsProvider; /** * Yields the {@link yfiles.graph.ILookup#EMPTY} that will not yield anything. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.graph.ILookup} + * @param label + * @param style + * @returns */ getContext(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.graph.ILookup; /** * Yields the {@link yfiles.input.IHitTestable#NEVER} that will always report misses. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.input.IHitTestable} + * @param label + * @param style + * @returns */ getHitTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IHitTestable; /** * Yields the {@link yfiles.input.IMarqueeTestable#NEVER} that will always report misses. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.input.IMarqueeTestable} + * @param label + * @param style + * @returns */ getMarqueeTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IMarqueeTestable; /** * Yields {@link yfiles.geometry.Size#EMPTY}. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.geometry.Size} + * @param label + * @param style + * @returns */ getPreferredSize(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.geometry.Size; /** * Yields the {@link yfiles.view.IVisibilityTestable#NEVER} that will always claim invisibility. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.view.IVisibilityTestable} + * @param label + * @param style + * @returns */ getVisibilityTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisibilityTestable; /** * Yields the {@link yfiles.view.VoidVisualCreator#INSTANCE} that will do nothing. - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.view.IVisualCreator} + * @param label + * @param style + * @returns */ getVisualCreator(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisualCreator; /** @@ -64567,9 +64593,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.ILabel} label The label to provide an instance for - * @param {yfiles.styles.ILabelStyle} style The style to use for the calculating the painting bounds - * @returns {yfiles.view.IBoundsProvider} An implementation that may be used to subsequently query the label's painting bounds. Clients should not cache this + * @param label The label to provide an instance for + * @param style The style to use for the calculating the painting bounds + * @returns An implementation that may be used to subsequently query the label's painting bounds. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64580,9 +64606,9 @@ declare namespace system{ *

    * Implementations may return {@link yfiles.graph.ILookup#EMPTY} if they don't support this, but may not return null. *

    - * @param {yfiles.graph.ILabel} label The label to provide a context instance for. - * @param {yfiles.styles.ILabelStyle} style The style to use for the context. - * @returns {yfiles.graph.ILookup} An non-null lookup implementation. + * @param label The label to provide a context instance for. + * @param style The style to use for the context. + * @returns An non-null lookup implementation. * @see yfiles.graph.ILookup#EMPTY * @see yfiles.graph.ILookup * @abstract @@ -64594,9 +64620,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.ILabel} label The label to provide an instance for - * @param {yfiles.styles.ILabelStyle} style The style to use for the querying hit tests - * @returns {yfiles.input.IHitTestable} An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must + * @param label The label to provide an instance for + * @param style The style to use for the querying hit tests + * @returns An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must * always call this method immediately before using the value returned. This enables the use of the flyweight design * pattern for implementations. This method may return null to indicate that the label cannot be hit tested. * @abstract @@ -64608,9 +64634,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.ILabel} label The label to provide an instance for - * @param {yfiles.styles.ILabelStyle} style The style to use for the querying marquee intersection test. - * @returns {yfiles.input.IMarqueeTestable} An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this + * @param label The label to provide an instance for + * @param style The style to use for the querying marquee intersection test. + * @returns An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64618,9 +64644,9 @@ declare namespace system{ getMarqueeTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IMarqueeTestable; /** * Calculates the {@link yfiles.graph.ILabel#preferredSize preferred size} of a given label using the associated style. - * @param {yfiles.graph.ILabel} label The label to determine the preferred size for - * @param {yfiles.styles.ILabelStyle} style The style instance that uses this instance as its {@link yfiles.styles.ILabelStyle#renderer} - * @returns {yfiles.geometry.Size} A size that can be used as the {@link yfiles.graph.ILabel#preferredSize} if this renderer renders the label using the associated style. + * @param label The label to determine the preferred size for + * @param style The style instance that uses this instance as its {@link #renderer} + * @returns A size that can be used as the {@link #preferredSize} if this renderer renders the label using the associated style. * @abstract */ getPreferredSize(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.geometry.Size; @@ -64630,9 +64656,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.ILabel} label The label to provide an instance for - * @param {yfiles.styles.ILabelStyle} style The style to use for the testing the visibility - * @returns {yfiles.view.IVisibilityTestable} An implementation that may be used to subsequently query the label's visibility. Clients should not cache this instance + * @param label The label to provide an instance for + * @param style The style to use for the testing the visibility + * @returns An implementation that may be used to subsequently query the label's visibility. Clients should not cache this instance * and must always call this method immediately before using the value returned. This enables the use of the flyweight * design pattern for implementations * @abstract @@ -64644,11 +64670,11 @@ declare namespace system{ *

    * This method may return a flyweight implementation, but never null. *

    - * @param {yfiles.graph.ILabel} label The label to provide an instance for - * @param {yfiles.styles.ILabelStyle} style The style to use for the creation of the visual - * @returns {yfiles.view.IVisualCreator} An implementation that may be used to subsequently create or update the visual for the label. Clients should not cache + * @param label The label to provide an instance for + * @param style The style to use for the creation of the visual + * @returns An implementation that may be used to subsequently create or update the visual for the label. Clients should not cache * this instance and must always call this method immediately before using the value returned. This enables the use of the - * flyweight design pattern for implementations. This method may not return null but should yield a {@link yfiles.view.VoidVisualCreator#INSTANCE void} implementation + * flyweight design pattern for implementations. This method may not return null but should yield a {@link #INSTANCE void} implementation * instead. * @see yfiles.view.VoidVisualCreator#INSTANCE * @abstract @@ -64666,7 +64692,7 @@ declare namespace system{ * This class implements the singleton pattern. Use the shared static {@link yfiles.styles.VoidShapeGeometry#INSTANCE} of this * class instead of null were null is not allowed. The {@link yfiles.styles.VoidNodeStyleRenderer} does so for example. *

    - * @class yfiles.styles.VoidShapeGeometry + * @class * @implements {yfiles.styles.IShapeGeometry} * @final */ @@ -64674,9 +64700,9 @@ declare namespace system{ export class VoidShapeGeometry { /** * This implementation always returns null (a {@link T} with no value). - * @param {yfiles.geometry.Point} inner The first point of the line that is inside the shape. - * @param {yfiles.geometry.Point} outer The second point of the line that is outside the shape. - * @returns {yfiles.geometry.Point} A {@link T} with no value. + * @param inner The first point of the line that is inside the shape. + * @param outer The second point of the line that is outside the shape. + * @returns A {@link } with no value. * @see yfiles.styles.IShapeGeometry#getIntersection */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; @@ -64685,14 +64711,14 @@ declare namespace system{ *

    * This means that the outline never intersects any line or contains any point. *

    - * @returns {yfiles.geometry.GeneralPath} The empty path. + * @returns The empty path. * @see yfiles.styles.IShapeGeometry#getOutline */ getOutline():yfiles.geometry.GeneralPath; /** * This implementation always returns false. - * @param {yfiles.geometry.Point} location The point to test. - * @returns {boolean} false + * @param location The point to test. + * @returns false * @see yfiles.styles.IShapeGeometry#isInside */ isInside(location:yfiles.geometry.Point):boolean; @@ -64712,7 +64738,7 @@ declare namespace system{ * instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.graph.INode#style} property of an * {@link yfiles.graph.INode}. *

    - * @class yfiles.styles.VoidNodeStyle + * @class * @implements {yfiles.styles.INodeStyle} * @final */ @@ -64720,16 +64746,16 @@ declare namespace system{ export class VoidNodeStyle { /** * Returns this. - * @returns {Object} this + * @returns this */ clone():Object; /** * The {@link yfiles.styles.VoidNodeStyle} singleton. * @const * @static - * @type {yfiles.styles.INodeStyle} + * @type {yfiles.styles.VoidNodeStyle} */ - static INSTANCE:yfiles.styles.INodeStyle; + static INSTANCE:yfiles.styles.VoidNodeStyle; /** * Yields the {@link yfiles.styles.VoidNodeStyleRenderer#INSTANCE VoidNodeStyleRenderer instance}. * @see yfiles.styles.INodeStyle#renderer @@ -64745,7 +64771,7 @@ declare namespace system{ * class instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.styles.INodeStyle#renderer} property of an * {@link yfiles.styles.INodeStyle}. *

    - * @class yfiles.styles.VoidNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @final */ @@ -64753,52 +64779,52 @@ declare namespace system{ export class VoidNodeStyleRenderer { /** * Yields the {@link yfiles.view.IBoundsProvider#EMPTY} that will return empty bounds. - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.view.IBoundsProvider} + * @param node + * @param style + * @returns */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; /** * Yields the {@link yfiles.graph.ILookup#EMPTY} that will not yield anything. - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.graph.ILookup} + * @param node + * @param style + * @returns */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Yields the {@link yfiles.input.IHitTestable#NEVER} that will always report misses. - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.input.IHitTestable} + * @param node + * @param style + * @returns */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * Yields the {@link yfiles.input.IMarqueeTestable#NEVER} that will always report misses. - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.input.IMarqueeTestable} + * @param node + * @param style + * @returns */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * This implementation always returns the {@link yfiles.styles.VoidShapeGeometry#INSTANCE VoidShapeGeometry instance}. - * @param {yfiles.graph.INode} node The node to provide an instance for - * @param {yfiles.styles.INodeStyle} style The style to use for the rendering - * @returns {yfiles.styles.IShapeGeometry} The {@link yfiles.styles.VoidShapeGeometry#INSTANCE VoidShapeGeometry instance}. + * @param node The node to provide an instance for + * @param style The style to use for the rendering + * @returns The {@link #INSTANCE VoidShapeGeometry instance}. * @see yfiles.styles.INodeStyleRenderer#getShapeGeometry */ getShapeGeometry(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.styles.IShapeGeometry; /** * Yields the {@link yfiles.view.IVisibilityTestable#NEVER} that will always claim invisibility. - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.view.IVisibilityTestable} + * @param node + * @param style + * @returns */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Yields the {@link yfiles.view.VoidVisualCreator#INSTANCE} that will do nothing. - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.view.IVisualCreator} + * @param node + * @param style + * @returns */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** @@ -64868,9 +64894,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.INode} node The node to provide an instance for - * @param {yfiles.styles.INodeStyle} style The style to use for the calculating the painting bounds - * @returns {yfiles.view.IBoundsProvider} An implementation that may be used to subsequently query the node's painting bounds. Clients should not cache this + * @param node The node to provide an instance for + * @param style The style to use for the calculating the painting bounds + * @returns An implementation that may be used to subsequently query the node's painting bounds. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64881,9 +64907,9 @@ declare namespace system{ *

    * Implementations may return {@link yfiles.graph.ILookup#EMPTY} if they don't support this, but may not return null. *

    - * @param {yfiles.graph.INode} node The node to provide a context instance for. - * @param {yfiles.styles.INodeStyle} style The style to use for the context. - * @returns {yfiles.graph.ILookup} An non-null lookup implementation. + * @param node The node to provide a context instance for. + * @param style The style to use for the context. + * @returns An non-null lookup implementation. * @see yfiles.graph.ILookup#EMPTY * @see yfiles.graph.ILookup * @abstract @@ -64895,9 +64921,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.INode} node The node to provide an instance for - * @param {yfiles.styles.INodeStyle} style The style to use for the querying hit tests - * @returns {yfiles.input.IHitTestable} An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must + * @param node The node to provide an instance for + * @param style The style to use for the querying hit tests + * @returns An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must * always call this method immediately before using the value returned. This enables the use of the flyweight design * pattern for implementations. This method may return null to indicate that the node cannot be hit tested. * @abstract @@ -64909,9 +64935,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.INode} node The node to provide an instance for - * @param {yfiles.styles.INodeStyle} style The style to use for the querying marquee intersection test. - * @returns {yfiles.input.IMarqueeTestable} An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this + * @param node The node to provide an instance for + * @param style The style to use for the querying marquee intersection test. + * @returns An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64923,9 +64949,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.INode} node The node to provide an instance for - * @param {yfiles.styles.INodeStyle} style The style to use for the rendering - * @returns {yfiles.styles.IShapeGeometry} An implementation that may be used to subsequently query geometry information from. Clients should not cache this + * @param node The node to provide an instance for + * @param style The style to use for the rendering + * @returns An implementation that may be used to subsequently query geometry information from. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -64937,9 +64963,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.INode} node The node to provide an instance for - * @param {yfiles.styles.INodeStyle} style The style to use for the testing the visibility - * @returns {yfiles.view.IVisibilityTestable} An implementation that may be used to subsequently query the node's visibility. Clients should not cache this instance + * @param node The node to provide an instance for + * @param style The style to use for the testing the visibility + * @returns An implementation that may be used to subsequently query the node's visibility. Clients should not cache this instance * and must always call this method immediately before using the value returned. This enables the use of the flyweight * design pattern for implementations * @abstract @@ -64951,11 +64977,11 @@ declare namespace system{ *

    * This method may return a flyweight implementation, but never null. *

    - * @param {yfiles.graph.INode} node The node to provide an instance for - * @param {yfiles.styles.INodeStyle} style The style to use for the creation of the visual - * @returns {yfiles.view.IVisualCreator} An implementation that may be used to subsequently create or update the visual for the node. Clients should not cache + * @param node The node to provide an instance for + * @param style The style to use for the creation of the visual + * @returns An implementation that may be used to subsequently create or update the visual for the node. Clients should not cache * this instance and must always call this method immediately before using the value returned. This enables the use of the - * flyweight design pattern for implementations. This method may not return null but should yield a {@link yfiles.view.VoidVisualCreator#INSTANCE void} implementation + * flyweight design pattern for implementations. This method may not return null but should yield a {@link #INSTANCE void} implementation * instead. * @see yfiles.view.VoidVisualCreator#INSTANCE * @abstract @@ -64974,21 +65000,21 @@ declare namespace system{ export interface IPathGeometry extends Object{ /** * Returns a representation of the visible path of the edge in form of a {@link yfiles.geometry.GeneralPath} - * @returns {yfiles.geometry.GeneralPath} An instance that describes the visible path or null if this is not applicable for the current geometry. + * @returns An instance that describes the visible path or null if this is not applicable for the current geometry. * @abstract */ getPath():yfiles.geometry.GeneralPath; /** * Returns the number of "segments" this edge's path consists of. - * @returns {number} the number of segments or -1 if there is no such thing as a segment for this edge. + * @returns the number of segments or -1 if there is no such thing as a segment for this edge. * @abstract */ getSegmentCount():number; /** * Calculates the tangent on the edge's path at the given ratio point for the given segment. - * @param {number} segmentIndex the segment to use for the calculation - * @param {number} ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the segment - * @returns {yfiles.geometry.Tangent} The tangential line, if any exists. + * @param segmentIndex the segment to use for the calculation + * @param ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the segment + * @returns The tangential line, if any exists. * @see yfiles.styles.IPathGeometry#getTangent * @see yfiles.styles.IPathGeometry#getSegmentCount * @abstract @@ -64996,8 +65022,8 @@ declare namespace system{ getTangent(segmentIndex:number,ratio:number):yfiles.geometry.Tangent; /** * Calculates the tangent on the edge's path at the given ratio point. - * @param {number} ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the visible edge path - * @returns {yfiles.geometry.Tangent} The tangential line, if any exists. + * @param ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the visible edge path + * @returns The tangential line, if any exists. * @abstract */ getTangent(ratio:number):yfiles.geometry.Tangent; @@ -65013,7 +65039,7 @@ declare namespace system{ * class instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.styles.IPortStyle#renderer} property of an * {@link yfiles.styles.IPortStyle}. *

    - * @class yfiles.styles.VoidPortStyleRenderer + * @class * @implements {yfiles.styles.IPortStyleRenderer} * @final */ @@ -65021,44 +65047,44 @@ declare namespace system{ export class VoidPortStyleRenderer { /** * Yields the {@link yfiles.view.IBoundsProvider#EMPTY} that will return empty bounds. - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style - * @returns {yfiles.view.IBoundsProvider} + * @param port + * @param style + * @returns */ getBoundsProvider(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.view.IBoundsProvider; /** * Yields the {@link yfiles.graph.ILookup#EMPTY} that will not yield anything. - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style - * @returns {yfiles.graph.ILookup} + * @param port + * @param style + * @returns */ getContext(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.graph.ILookup; /** * Yields the {@link yfiles.input.IHitTestable#NEVER} that will always report misses. - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style - * @returns {yfiles.input.IHitTestable} + * @param port + * @param style + * @returns */ getHitTestable(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.input.IHitTestable; /** * Yields the {@link yfiles.input.IMarqueeTestable#NEVER} that will always report misses. - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style - * @returns {yfiles.input.IMarqueeTestable} + * @param port + * @param style + * @returns */ getMarqueeTestable(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.input.IMarqueeTestable; /** * Yields the {@link yfiles.view.IVisibilityTestable#NEVER} that will always claim invisibility. - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style - * @returns {yfiles.view.IVisibilityTestable} + * @param port + * @param style + * @returns */ getVisibilityTestable(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.view.IVisibilityTestable; /** * Yields the {@link yfiles.view.VoidVisualCreator#INSTANCE} that will do nothing. - * @param {yfiles.graph.IPort} port - * @param {yfiles.styles.IPortStyle} style - * @returns {yfiles.view.IVisualCreator} + * @param port + * @param style + * @returns */ getVisualCreator(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.view.IVisualCreator; /** @@ -65077,7 +65103,7 @@ declare namespace system{ * instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.graph.IPort#style} property of an * {@link yfiles.graph.IPort}. *

    - * @class yfiles.styles.VoidPortStyle + * @class * @implements {yfiles.styles.IPortStyle} * @final */ @@ -65085,16 +65111,16 @@ declare namespace system{ export class VoidPortStyle { /** * Returns this. - * @returns {Object} this + * @returns this */ clone():Object; /** * The {@link yfiles.styles.VoidPortStyle} singleton. * @const * @static - * @type {yfiles.styles.IPortStyle} + * @type {yfiles.styles.VoidPortStyle} */ - static INSTANCE:yfiles.styles.IPortStyle; + static INSTANCE:yfiles.styles.VoidPortStyle; /** * Yields the {@link yfiles.styles.VoidPortStyleRenderer#INSTANCE VoidPortStyleRenderer instance}. * @see yfiles.styles.IPortStyle#renderer @@ -65161,9 +65187,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IPort} port The port to provide an instance for - * @param {yfiles.styles.IPortStyle} style The style to use for the calculating the painting bounds - * @returns {yfiles.view.IBoundsProvider} An implementation that may be used to subsequently query the port's painting bounds. Clients should not cache this + * @param port The port to provide an instance for + * @param style The style to use for the calculating the painting bounds + * @returns An implementation that may be used to subsequently query the port's painting bounds. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -65174,9 +65200,9 @@ declare namespace system{ *

    * Implementations may return {@link yfiles.graph.ILookup#EMPTY} if they don't support this, but may not return null. *

    - * @param {yfiles.graph.IPort} port The port to provide a context instance for. - * @param {yfiles.styles.IPortStyle} style The style to use for the context. - * @returns {yfiles.graph.ILookup} An non-null lookup implementation. + * @param port The port to provide a context instance for. + * @param style The style to use for the context. + * @returns An non-null lookup implementation. * @see yfiles.graph.ILookup#EMPTY * @see yfiles.graph.ILookup * @abstract @@ -65188,9 +65214,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IPort} port The port to provide an instance for - * @param {yfiles.styles.IPortStyle} style The style to use for the querying hit tests - * @returns {yfiles.input.IHitTestable} An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must + * @param port The port to provide an instance for + * @param style The style to use for the querying hit tests + * @returns An implementation that may be used to subsequently perform hit tests. Clients should not cache this instance and must * always call this method immediately before using the value returned. This enables the use of the flyweight design * pattern for implementations. This method may return null to indicate that the port cannot be hit tested. * @abstract @@ -65202,9 +65228,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IPort} port The port to provide an instance for - * @param {yfiles.styles.IPortStyle} style The style to use for the querying marquee intersection test. - * @returns {yfiles.input.IMarqueeTestable} An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this + * @param port The port to provide an instance for + * @param style The style to use for the querying marquee intersection test. + * @returns An implementation that may be used to subsequently query the marquee intersections. Clients should not cache this * instance and must always call this method immediately before using the value returned. This enables the use of the * flyweight design pattern for implementations * @abstract @@ -65216,9 +65242,9 @@ declare namespace system{ *

    * This method may return a flyweight implementation. *

    - * @param {yfiles.graph.IPort} port The port to provide an instance for - * @param {yfiles.styles.IPortStyle} style The style to use for the testing the visibility - * @returns {yfiles.view.IVisibilityTestable} An implementation that may be used to subsequently query the port's visibility. Clients should not cache this instance + * @param port The port to provide an instance for + * @param style The style to use for the testing the visibility + * @returns An implementation that may be used to subsequently query the port's visibility. Clients should not cache this instance * and must always call this method immediately before using the value returned. This enables the use of the flyweight * design pattern for implementations * @abstract @@ -65230,11 +65256,11 @@ declare namespace system{ *

    * This method may return a flyweight implementation, but never null. *

    - * @param {yfiles.graph.IPort} port The port to provide an instance for - * @param {yfiles.styles.IPortStyle} style The style to use for the creation of the visual - * @returns {yfiles.view.IVisualCreator} An implementation that may be used to subsequently create or update the visual for the port. Clients should not cache + * @param port The port to provide an instance for + * @param style The style to use for the creation of the visual + * @returns An implementation that may be used to subsequently create or update the visual for the port. Clients should not cache * this instance and must always call this method immediately before using the value returned. This enables the use of the - * flyweight design pattern for implementations. This method may not return null but should yield a {@link yfiles.view.VoidVisualCreator#INSTANCE void} implementation + * flyweight design pattern for implementations. This method may not return null but should yield a {@link #INSTANCE void} implementation * instead. * @see yfiles.view.VoidVisualCreator#INSTANCE * @abstract @@ -65257,22 +65283,22 @@ declare namespace system{ export interface IShapeGeometry extends Object{ /** * Returns the intersection for the given line with this shape's geometry. - * @param {yfiles.geometry.Point} inner The first point of the line that is inside the shape. - * @param {yfiles.geometry.Point} outer The second point of the line that is outside the shape. - * @returns {yfiles.geometry.Point} The coordinates of the intersection point, if an intersection was found. + * @param inner The first point of the line that is inside the shape. + * @param outer The second point of the line that is outside the shape. + * @returns The coordinates of the intersection point, if an intersection was found. * @abstract */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Returns the outline of the shape or null. - * @returns {yfiles.geometry.GeneralPath} The outline or null if no outline can be provided. + * @returns The outline or null if no outline can be provided. * @abstract */ getOutline():yfiles.geometry.GeneralPath; /** * Checks whether the given coordinate is deemed to lie within the shape's geometric bounds. - * @param {yfiles.geometry.Point} location The point to test. - * @returns {boolean} True if the point lies within the shape. + * @param location The point to test. + * @returns True if the point lies within the shape. * @abstract */ isInside(location:yfiles.geometry.Point):boolean; @@ -65284,61 +65310,60 @@ declare namespace system{ /** * An {@link yfiles.view.IVisualCreator} for use in a {@link yfiles.view.CanvasComponent} that renders a {@link yfiles.graph.IGraph} instance in a * sloppy overview style. - * @class yfiles.styles.GraphOverviewSvgVisualCreator + * @class * @implements {yfiles.view.IVisualCreator} */ export interface GraphOverviewSvgVisualCreator extends Object,yfiles.view.IVisualCreator{} export class GraphOverviewSvgVisualCreator { /** * Creates a new instance for the given graph. - * @param {yfiles.graph.IGraph} graph - * @constructor + * @param graph */ constructor(graph:yfiles.graph.IGraph); /** * Callback that returns and/or configures a edge style for the given edge to render. - * @param {yfiles.graph.IEdge} edge The edge to render. - * @returns {yfiles.styles.IEdgeStyle} The style or null + * @param edge The edge to render. + * @returns The style or null * @protected */ getEdgeStyle(edge:yfiles.graph.IEdge):yfiles.styles.IEdgeStyle; /** * Obtains the {@link yfiles.view.IVisualCreator} for the given edge. - * @param {yfiles.view.IRenderContext} context The context. - * @param {yfiles.graph.IEdge} edge The edge. - * @returns {yfiles.view.IVisualCreator} The visual creator that is obtained from the {@link yfiles.styles.GraphOverviewSvgVisualCreator#getEdgeStyle}'s {@link yfiles.styles.IEdgeStyleRenderer#getVisualCreator} + * @param context The context. + * @param edge The edge. + * @returns The visual creator that is obtained from the {@link #getEdgeStyle}'s {@link #getVisualCreator} * method. * @protected */ getEdgeVisualCreator(context:yfiles.view.IRenderContext,edge:yfiles.graph.IEdge):yfiles.view.IVisualCreator; /** * Callback that returns and/or configures a group node style for the given node to render. - * @param {yfiles.graph.INode} node The group node to render. - * @returns {yfiles.styles.INodeStyle} The style or null + * @param node The group node to render. + * @returns The style or null * @protected */ getGroupNodeStyle(node:yfiles.graph.INode):yfiles.styles.INodeStyle; /** * Obtains the {@link yfiles.view.IVisualCreator} for the given group node. - * @param {yfiles.view.IRenderContext} context The context. - * @param {yfiles.graph.INode} node The group node. - * @returns {yfiles.view.IVisualCreator} The visual creator that is obtained from the {@link yfiles.styles.GraphOverviewSvgVisualCreator#getGroupNodeStyle}'s {@link yfiles.styles.INodeStyleRenderer#getVisualCreator} + * @param context The context. + * @param node The group node. + * @returns The visual creator that is obtained from the {@link #getGroupNodeStyle}'s {@link #getVisualCreator} * method. * @protected */ getGroupNodeVisualCreator(context:yfiles.view.IRenderContext,node:yfiles.graph.INode):yfiles.view.IVisualCreator; /** * Callback that returns and/or configures a node style for the given node to render. - * @param {yfiles.graph.INode} node The node to render. - * @returns {yfiles.styles.INodeStyle} The style or null + * @param node The node to render. + * @returns The style or null * @protected */ getNodeStyle(node:yfiles.graph.INode):yfiles.styles.INodeStyle; /** * Obtains the {@link yfiles.view.IVisualCreator} for the given node. - * @param {yfiles.view.IRenderContext} context The context. - * @param {yfiles.graph.INode} node The node. - * @returns {yfiles.view.IVisualCreator} The visual creator that is obtained from the {@link yfiles.styles.GraphOverviewSvgVisualCreator#getNodeStyle}'s {@link yfiles.styles.INodeStyleRenderer#getVisualCreator} + * @param context The context. + * @param node The node. + * @returns The visual creator that is obtained from the {@link #getNodeStyle}'s {@link #getVisualCreator} * method. * @protected */ @@ -65380,7 +65405,7 @@ declare namespace system{ *
  • Tutorial: 02 Custom Styles, step 17 Edge Hit Test
  • *
  • Tutorial: 02 Custom Styles, step 18 Edge Cropping
  • * - * @class yfiles.styles.EdgeStyleBase + * @class * @implements {yfiles.styles.IEdgeStyle} */ export interface EdgeStyleBase extends Object,yfiles.styles.IEdgeStyle{} @@ -65388,17 +65413,16 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.styles.EdgeStyleBase} class. * @protected - * @constructor */ constructor(); /** * Convenience method that adds the arrows to a given container. - * @param {yfiles.view.IRenderContext} context The context for the rendering. - * @param {SVGGElement} group The container to which the arrows should be added. - * @param {yfiles.graph.IEdge} edge The edge that is being rendered. - * @param {yfiles.geometry.GeneralPath} edgePath The edge path. - * @param {yfiles.styles.IArrow} sourceArrow The source arrow. - * @param {yfiles.styles.IArrow} targetArrow The target arrow. + * @param context The context for the rendering. + * @param group The container to which the arrows should be added. + * @param edge The edge that is being rendered. + * @param edgePath The edge path. + * @param sourceArrow The source arrow. + * @param targetArrow The target arrow. * @protected */ addArrows(context:yfiles.view.IRenderContext,group:SVGGElement,edge:yfiles.graph.IEdge,edgePath:yfiles.geometry.GeneralPath,sourceArrow:yfiles.styles.IArrow,targetArrow:yfiles.styles.IArrow):void; @@ -65407,7 +65431,7 @@ declare namespace system{ *

    * Immutable subclasses should consider returning this. *

    - * @returns {Object} A new object that is a copy of this instance using {@link Object#memberwiseClone}. + * @returns A new object that is a copy of this instance using {@link #memberwiseClone}. */ clone():Object; /** @@ -65416,9 +65440,9 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IVisualCreator#createVisual} call to the instance that has been * queried from the {@link yfiles.styles.EdgeStyleBase#renderer}. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.graph.IEdge} edge The edge to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param edge The edge to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.EdgeStyleBase#updateVisual * @protected * @abstract @@ -65430,11 +65454,11 @@ declare namespace system{ * This implementation uses the {@link yfiles.styles.IEdgePathCropper} instances found in the {@link yfiles.graph.ILookup#lookup} of the * source and target port of the edge to perform the actual cropping. *

    - * @param {yfiles.graph.IEdge} edge The edge that is being rendered. - * @param {yfiles.geometry.GeneralPath} path The path that should be cropped. - * @param {yfiles.styles.IArrow} sourceArrow The source arrow instance. - * @param {yfiles.styles.IArrow} targetArrow The target arrow instance. - * @returns {yfiles.geometry.GeneralPath} The cropped path. This is can be either the same instance of the given path or a newly created instance. + * @param edge The edge that is being rendered. + * @param path The path that should be cropped. + * @param sourceArrow The source arrow instance. + * @param targetArrow The target arrow instance. + * @returns The cropped path. This is can be either the same instance of the given path or a newly created instance. * @protected */ cropPath(edge:yfiles.graph.IEdge,sourceArrow:yfiles.styles.IArrow,targetArrow:yfiles.styles.IArrow,path:yfiles.geometry.GeneralPath):yfiles.geometry.GeneralPath; @@ -65445,56 +65469,56 @@ declare namespace system{ * from the {@link yfiles.styles.EdgeStyleBase#renderer}. This implementation simply yields a {@link yfiles.geometry.Rect rectangle} containing. the locations of the {@link yfiles.graph.IEdge#sourcePort source port} and the {@link yfiles.graph.IEdge#targetPort target port} * of the edge and the locations of all its {@link yfiles.graph.IEdge#bends bends}. *

    - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.graph.IEdge} edge The edge to which this style instance is assigned. - * @returns {yfiles.geometry.Rect} The visual bounds of the visual representation. + * @param context The canvas context. + * @param edge The edge to which this style instance is assigned. + * @returns The visual bounds of the visual representation. * @protected */ getBounds(context:yfiles.view.ICanvasContext,edge:yfiles.graph.IEdge):yfiles.geometry.Rect; /** * Gets the path of the edge. - * @param {yfiles.graph.IEdge} edge The edge. - * @returns {yfiles.geometry.GeneralPath} The path. + * @param edge The edge. + * @returns The path. * @protected */ getPath(edge:yfiles.graph.IEdge):yfiles.geometry.GeneralPath; /** * Gets the number of segments of the edge. - * @param {yfiles.graph.IEdge} edge The edge. - * @returns {number} The segment count. + * @param edge The edge. + * @returns The segment count. * @protected */ getSegmentCount(edge:yfiles.graph.IEdge):number; /** * Convenience method that calculates the source arrow anchor and direction for a a given arrow and path. - * @param {yfiles.geometry.GeneralPath} path The path of the edge. - * @param {yfiles.styles.IArrow} arrow The arrow. - * @returns {yfiles.geometry.Tangent} The anchor and directional vector of the arrow, if any exist. + * @param path The path of the edge. + * @param arrow The arrow. + * @returns The anchor and directional vector of the arrow, if any exist. * @protected */ getSourceArrowAnchor(path:yfiles.geometry.GeneralPath,arrow:yfiles.styles.IArrow):yfiles.geometry.Tangent; /** * Gets the tangent to the edge at the specified ratio of a segment of the edge and the corresponding touch point. - * @param {yfiles.graph.IEdge} edge The edge. - * @param {number} segmentIndex Index of the segment of the edge. - * @param {number} ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of the segment of the edge. - * @returns {yfiles.geometry.Tangent} The tangent, if any exists. + * @param edge The edge. + * @param segmentIndex Index of the segment of the edge. + * @param ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of the segment of the edge. + * @returns The tangent, if any exists. * @protected */ getTangent(edge:yfiles.graph.IEdge,segmentIndex:number,ratio:number):yfiles.geometry.Tangent; /** * Gets the tangent to the edge at the specified ratio and the corresponding touch point. - * @param {yfiles.graph.IEdge} edge The edge. - * @param {number} ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of the path of the edge. - * @returns {yfiles.geometry.Tangent} The tangent, if any exists. + * @param edge The edge. + * @param ratio A value between 0 and 1 inclusively that indicates a ratio from the beginning to the end of the path of the edge. + * @returns The tangent, if any exists. * @protected */ getTangent(edge:yfiles.graph.IEdge,ratio:number):yfiles.geometry.Tangent; /** * Convenience method that calculates the target arrow anchor and direction for a a given arrow and path. - * @param {yfiles.geometry.GeneralPath} path The path of the edge. - * @param {yfiles.styles.IArrow} arrow The arrow. - * @returns {yfiles.geometry.Tangent} The anchor and directional vector of the arrow, if any exist. + * @param path The path of the edge. + * @param arrow The arrow. + * @returns The anchor and directional vector of the arrow, if any exist. * @protected */ getTargetArrowAnchor(path:yfiles.geometry.GeneralPath,arrow:yfiles.styles.IArrow):yfiles.geometry.Tangent; @@ -65509,10 +65533,10 @@ declare namespace system{ * with the polygonal line defined by the source port, the target port and the bends of the edge and the {@link yfiles.view.ICanvasContext#hitTestRadius} of the * {@link yfiles.view.ICanvasContext canvas context}. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} location The point to test. - * @param {yfiles.graph.IEdge} edge The edge to which this style instance is assigned. - * @returns {boolean} true if the specified edge representation is hit; false otherwise. + * @param context The input mode context. + * @param location The point to test. + * @param edge The edge to which this style instance is assigned. + * @returns true if the specified edge representation is hit; false otherwise. * @see yfiles.geometry.Point#hitsPolyline * @protected */ @@ -65527,10 +65551,10 @@ declare namespace system{ * This implementation returns the result of the {@link yfiles.geometry.Rect#intersectsPolyline} method of class {@link yfiles.geometry.Rect} * with the polygonal line defined by the source port, the target port and the bends of the edge. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} rectangle The marquee selection box. - * @param {yfiles.graph.IEdge} edge The edge to which this style instance is assigned. - * @returns {boolean} true if the specified edge is visible is selected by the marquee rectangle; false otherwise. + * @param context The input mode context. + * @param rectangle The marquee selection box. + * @param edge The edge to which this style instance is assigned. + * @returns true if the specified edge is visible is selected by the marquee rectangle; false otherwise. * @protected */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect,edge:yfiles.graph.IEdge):boolean; @@ -65540,10 +65564,10 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IVisibilityTestable#isVisible} call to the instance that has been * queried from the {@link yfiles.styles.EdgeStyleBase#renderer}. This implementation simply tests whether the {@link yfiles.styles.EdgeStyleBase#getBounds bounds} intersect the clip. *

    - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.geometry.Rect} rectangle The clipping rectangle. - * @param {yfiles.graph.IEdge} edge The edge to which this style instance is assigned. - * @returns {boolean} true if the specified edge is visible in the clipping rectangle; false otherwise. + * @param context The canvas context. + * @param rectangle The clipping rectangle. + * @param edge The edge to which this style instance is assigned. + * @returns true if the specified edge is visible in the clipping rectangle; false otherwise. * @protected */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect,edge:yfiles.graph.IEdge):boolean; @@ -65565,20 +65589,20 @@ declare namespace system{ *

    * For these interfaces an implementation will be returned that delegates to the methods in this instance. *

    - * @param {yfiles.graph.IEdge} edge The edge to use for the context lookup. - * @param {yfiles.lang.Class} type The type to query. - * @returns {Object} An implementation of the type or null. + * @param edge The edge to use for the context lookup. + * @param type The type to query. + * @returns An implementation of the type or null. * @protected */ lookup(edge:yfiles.graph.IEdge,type:yfiles.lang.Class):Object; /** * Convenience method that updates the arrows in a given container. - * @param {yfiles.view.IRenderContext} context The context for the rendering. - * @param {SVGGElement} group The container to which the arrows should be added. - * @param {yfiles.graph.IEdge} edge The edge that is being rendered. - * @param {yfiles.geometry.GeneralPath} edgePath The edge path. - * @param {yfiles.styles.IArrow} sourceArrow The source arrow. - * @param {yfiles.styles.IArrow} targetArrow The target arrow. + * @param context The context for the rendering. + * @param group The container to which the arrows should be added. + * @param edge The edge that is being rendered. + * @param edgePath The edge path. + * @param sourceArrow The source arrow. + * @param targetArrow The target arrow. * @protected */ updateArrows(context:yfiles.view.IRenderContext,group:SVGGElement,edge:yfiles.graph.IEdge,edgePath:yfiles.geometry.GeneralPath,sourceArrow:yfiles.styles.IArrow,targetArrow:yfiles.styles.IArrow):void; @@ -65589,10 +65613,10 @@ declare namespace system{ * queried from the {@link yfiles.styles.EdgeStyleBase#renderer}. This implementation simply delegates to {@link yfiles.styles.EdgeStyleBase#createVisual} so subclasses should * override to improve rendering performance. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.view.Visual} oldVisual The visual that has been created in the call to {@link yfiles.styles.EdgeStyleBase#createVisual}. - * @param {yfiles.graph.IEdge} edge The edge to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param oldVisual The visual that has been created in the call to {@link #createVisual}. + * @param edge The edge to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.EdgeStyleBase#createVisual * @protected */ @@ -65622,7 +65646,7 @@ declare namespace system{ * and 'yfiles-collapsebutton-unchecked'. *

    * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer - * @class yfiles.styles.CollapsibleNodeStyleDecorator + * @class * @implements {yfiles.styles.INodeStyle} */ export interface CollapsibleNodeStyleDecorator extends Object,yfiles.styles.INodeStyle{} @@ -65630,17 +65654,16 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.styles.CollapsibleNodeStyleDecorator} class using the provided style for the {@link yfiles.styles.CollapsibleNodeStyleDecorator#wrapped} * property and the provided {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer} as renderer. - * @param {yfiles.styles.INodeStyle} wrapped The decorated style. - * @param {yfiles.styles.CollapsibleNodeStyleDecoratorRenderer} [renderer=null] An instance of {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer} to render this style. - * @constructor + * @param wrapped The decorated style. + * @param [renderer=null] An instance of {@link } to render this style. */ constructor(wrapped:yfiles.styles.INodeStyle,renderer?:yfiles.styles.CollapsibleNodeStyleDecoratorRenderer); /** * Initializes a new instance of the {@link yfiles.styles.CollapsibleNodeStyleDecorator} class using the provided style for the {@link yfiles.styles.CollapsibleNodeStyleDecorator#wrapped} * property and the provided {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer} as renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.INodeStyle} options.wrapped The decorated style. - * @param {yfiles.styles.CollapsibleNodeStyleDecoratorRenderer} [options.renderer=null] An instance of {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer} to render this style. + * @param options.wrapped The decorated style. + * @param [options.renderer=null] An instance of {@link } to render this style. * @param {yfiles.graph.ILabelModelParameter} options.buttonPlacement An {@link yfiles.graph.ILabelModelParameter} that determines the placement of the button for toggling the expanded state. *

    * This option sets the {@link yfiles.styles.CollapsibleNodeStyleDecorator#buttonPlacement} property on the created object. @@ -65649,7 +65672,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.CollapsibleNodeStyleDecorator#insets} property on the created object. *

    - * @constructor */ constructor(options:{wrapped:yfiles.styles.INodeStyle,renderer?:yfiles.styles.CollapsibleNodeStyleDecoratorRenderer,buttonPlacement?:yfiles.graph.ILabelModelParameter,insets?:yfiles.geometry.Insets}); /** @@ -65666,12 +65688,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.CollapsibleNodeStyleDecorator#insets} property on the created object. *

    - * @constructor */ constructor(options?:{buttonPlacement?:yfiles.graph.ILabelModelParameter,insets?:yfiles.geometry.Insets}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -65711,7 +65732,7 @@ declare namespace system{ /** * {@link yfiles.styles.INodeStyleRenderer} implementation that can be used in conjunction with {@link yfiles.styles.CollapsibleNodeStyleDecorator} * instances. - * @class yfiles.styles.CollapsibleNodeStyleDecoratorRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -65725,7 +65746,6 @@ declare namespace system{ export class CollapsibleNodeStyleDecoratorRenderer { /** * Initializes a new instance of the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer} class. - * @constructor */ constructor(); /** @@ -65735,9 +65755,9 @@ declare namespace system{ * {@link yfiles.input.ICommand#TOGGLE_EXPANSION_STATE}. It is called by * {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#createButton}. *

    - * @param {yfiles.view.SvgVisual} button The button visual to add the event listeners to. - * @param {yfiles.graph.INode} currentNode The group node whose state is to be toggled. - * @param {yfiles.view.IRenderContext} context The context. + * @param button The button visual to add the event listeners to. + * @param currentNode The group node whose state is to be toggled. + * @param context The context. * @static */ static addToggleExpansionStateCommand(button:yfiles.view.SvgVisual,currentNode:yfiles.graph.INode,context:yfiles.view.IRenderContext):void; @@ -65766,17 +65786,17 @@ declare namespace system{ * This implementation adds the {@link yfiles.input.ICommand#TOGGLE_EXPANSION_STATE} command to the button. The created button is * automatically unchecked if the group node is {@link yfiles.graph.IFoldingView#isExpanded expanded} and vice versa. *

    - * @param {yfiles.view.IRenderContext} context The context. - * @param {boolean} expanded Specifies whether the button visual is created for the expanded or the collapsed state. - * @param {yfiles.geometry.Size} size The button size. - * @returns {yfiles.view.SvgVisual} + * @param context The context. + * @param expanded Specifies whether the button visual is created for the expanded or the collapsed state. + * @param size The button size. + * @returns * @protected */ createButton(context:yfiles.view.IRenderContext,expanded:boolean,size:yfiles.geometry.Size):yfiles.view.SvgVisual; /** * Callback that provides a customized {@link yfiles.view.ISelectionIndicatorInstaller}. - * @returns {yfiles.view.ISelectionIndicatorInstaller} This implementation yields a {@link yfiles.view.RectangleIndicatorInstaller} that uses - * {@link yfiles.view.RectangleIndicatorInstaller#SELECTION_TEMPLATE_KEY}. + * @returns This implementation yields a {@link } that uses + * {@link #SELECTION_TEMPLATE_KEY}. * @protected */ createSelectionInstaller():yfiles.view.ISelectionIndicatorInstaller; @@ -65785,37 +65805,36 @@ declare namespace system{ *

    * This method uses {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#createButton} to create the togglebutton instance. * It will then use the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getButtonLocationParameter} to determine the - * placement of the button and use the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle} to create the - * visual for the actual node. + * placement of the button and use the {@link yfiles.styles.CollapsibleNodeStyleDecorator#wrapped wrapped style} to create the visual for the actual node. *

    - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * Delegates to the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle} and takes the button into account. - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and node parameters, calls {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#configure} and * returns this. - * @param {yfiles.graph.INode} node The node to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param node The node to retrieve the bounds provider for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getBounds */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; /** * Yields the {@link yfiles.styles.CollapsibleNodeStyleDecorator#buttonPlacement} for the current {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} - * @returns {yfiles.graph.ILabelModelParameter} + * @returns * @protected */ getButtonLocationParameter():yfiles.graph.ILabelModelParameter; /** * Returns the size of new buttons. - * @returns {yfiles.geometry.Size} The size of new buttons + * @returns The size of new buttons * @protected */ getButtonSize():yfiles.geometry.Size; @@ -65828,47 +65847,47 @@ declare namespace system{ * method call they should call {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#configure} only if needed, i.e. if they * decide to return this or an instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Configures the style and node parameters, calls {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#configure} and * returns this. - * @param {yfiles.graph.INode} node The node to query hit test with. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param node The node to query hit test with. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * Delegates to the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle}. - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param inner + * @param outer + * @returns */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Configures the style and node parameters, calls {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#configure} and * returns this. - * @param {yfiles.graph.INode} node The node to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param node The node to query marquee intersection tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * Delegates to the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle}. - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getOutline():yfiles.geometry.GeneralPath; /** * Configures the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} and {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} properties, calls {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the shape geometry for. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} property. - * @returns {yfiles.styles.IShapeGeometry} this + * @param node The node to retrieve the shape geometry for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#isInside * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getIntersection */ @@ -65881,59 +65900,59 @@ declare namespace system{ * {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#configure}. If the subclass implementation depends on this instance * to be configured, it needs to call Configure in {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#configure} and * returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#createVisual * @see yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#updateVisual */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** * Yields the {@link yfiles.styles.CollapsibleNodeStyleDecorator#wrapped} property for the current {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#style} - * @returns {yfiles.styles.INodeStyle} + * @returns * @protected */ getWrappedStyle():yfiles.styles.INodeStyle; /** * Delegates to the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle} and checks the button. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * Delegates to the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle}. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * Delegates to the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle}. - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param location + * @returns */ isInside(location:yfiles.geometry.Point):boolean; /** * Delegates to the {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#getWrappedStyle}. - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** @@ -65942,19 +65961,19 @@ declare namespace system{ * This method is called from {@link yfiles.styles.CollapsibleNodeStyleDecoratorRenderer#updateVisual} to update an existing button * or to create a new one. Custom implementations can override this method to use a custom button visualization. *

    - * @param {yfiles.view.IRenderContext} context The context. - * @param {boolean} expanded Specifies whether the button visual is updated for the expanded or the collapsed state. - * @param {yfiles.geometry.Size} size The button size. - * @param {yfiles.view.Visual} oldButton The old button visual. - * @returns {yfiles.view.SvgVisual} + * @param context The context. + * @param expanded Specifies whether the button visual is updated for the expanded or the collapsed state. + * @param size The button size. + * @param oldButton The old button visual. + * @returns * @protected */ updateButton(context:yfiles.view.IRenderContext,expanded:boolean,size:yfiles.geometry.Size,oldButton:yfiles.view.Visual):yfiles.view.SvgVisual; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -65999,7 +66018,7 @@ declare namespace system{ *
  • Tutorial: 02 Custom Styles, step 11 Label Preferred Size
  • *
  • Tutorial: 02 Custom Styles, step 12 High Performance Rendering of Label
  • * - * @class yfiles.styles.LabelStyleBase + * @class * @implements {yfiles.styles.ILabelStyle} */ export interface LabelStyleBase extends Object,yfiles.styles.ILabelStyle{} @@ -66007,7 +66026,6 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.styles.LabelStyleBase} class. * @protected - * @constructor */ constructor(); /** @@ -66015,15 +66033,15 @@ declare namespace system{ *

    * Immutable subclasses should consider returning this. *

    - * @returns {Object} A new object that is a copy of this instance using {@link Object#memberwiseClone}. + * @returns A new object that is a copy of this instance using {@link #memberwiseClone}. */ clone():Object; /** * Creates a transform matrix that can be applied to a {@link yfiles.view.Visual} to arrange it according to the given layout and autoFlip * rule. - * @param {yfiles.geometry.IOrientedRectangle} layout The layout used to create the transform matrix. - * @param {boolean} autoFlip Whether to automatically flip the mtrix by 180 degrees, if the result would be pointing downwards. - * @returns {yfiles.geometry.Matrix} The transform matrix. + * @param layout The layout used to create the transform matrix. + * @param autoFlip Whether to automatically flip the mtrix by 180 degrees, if the result would be pointing downwards. + * @returns The transform matrix. * @static */ static createLayoutTransform(layout:yfiles.geometry.IOrientedRectangle,autoFlip:boolean):yfiles.geometry.Matrix; @@ -66033,9 +66051,9 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IVisualCreator#createVisual} call to the instance that has been * queried from the {@link yfiles.styles.LabelStyleBase#renderer}. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.graph.ILabel} label The label to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param label The label to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.LabelStyleBase#updateVisual * @protected * @abstract @@ -66050,16 +66068,16 @@ declare namespace system{ *

    * This implementation simply yields the {@link yfiles.geometry.IOrientedRectangle#bounds bounds} of the {@link yfiles.graph.ILabel#layout layout} of the given label. *

    - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.graph.ILabel} label The label to which this style instance is assigned. - * @returns {yfiles.geometry.Rect} The visual bounds of the visual representation. + * @param context The canvas context. + * @param label The label to which this style instance is assigned. + * @returns The visual bounds of the visual representation. * @protected */ getBounds(context:yfiles.view.ICanvasContext,label:yfiles.graph.ILabel):yfiles.geometry.Rect; /** * Callback that returns the preferred {@link yfiles.geometry.Size size} of the label. - * @param {yfiles.graph.ILabel} label The label to which this style instance is assigned. - * @returns {yfiles.geometry.Size} The preferred size. + * @param label The label to which this style instance is assigned. + * @returns The preferred size. * @protected * @abstract */ @@ -66074,10 +66092,10 @@ declare namespace system{ * This implementation returns the result of the {@link yfiles.geometry.IOrientedRectangle#hits} method invoked for the {@link yfiles.graph.ILabel#layout layout} of * the label, the given {@link yfiles.geometry.Point point} and the {@link yfiles.view.ICanvasContext#hitTestRadius hit test radius} of the {@link yfiles.view.ICanvasContext canvas context}. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} location The point to test. - * @param {yfiles.graph.ILabel} label The label to which this style instance is assigned. - * @returns {boolean} true if the specified label representation is hit; false otherwise. + * @param context The input mode context. + * @param location The point to test. + * @param label The label to which this style instance is assigned. + * @returns true if the specified label representation is hit; false otherwise. * @protected */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,label:yfiles.graph.ILabel):boolean; @@ -66091,10 +66109,10 @@ declare namespace system{ * This implementation returns the result of the {@link yfiles.geometry.Rect#intersects} method invoked on rectangle for the {@link yfiles.graph.ILabel#layout layout} * of the label and the context. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} rectangle The marquee selection box. - * @param {yfiles.graph.ILabel} label The label to which this style instance is assigned. - * @returns {boolean} true if the specified label is visible is selected by the marquee rectangle; false otherwise. + * @param context The input mode context. + * @param rectangle The marquee selection box. + * @param label The label to which this style instance is assigned. + * @returns true if the specified label is visible is selected by the marquee rectangle; false otherwise. * @protected */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect,label:yfiles.graph.ILabel):boolean; @@ -66107,10 +66125,10 @@ declare namespace system{ *

    * This implementation simply tests whether the {@link yfiles.styles.LabelStyleBase#getBounds bounds} intersect the clip. *

    - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.geometry.Rect} rectangle The clipping rectangle. - * @param {yfiles.graph.ILabel} label The label to which this style instance is assigned. - * @returns {boolean} true if the specified label is visible in the clipping rectangle; false otherwise. + * @param context The canvas context. + * @param rectangle The clipping rectangle. + * @param label The label to which this style instance is assigned. + * @returns true if the specified label is visible in the clipping rectangle; false otherwise. * @protected */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect,label:yfiles.graph.ILabel):boolean; @@ -66131,9 +66149,9 @@ declare namespace system{ *

    * For these interfaces an implementation will be returned that delegates to the methods in this instance. *

    - * @param {yfiles.graph.ILabel} label The label to use for the context lookup. - * @param {yfiles.lang.Class} type The type to query. - * @returns {Object} An implementation of the type or null. + * @param label The label to use for the context lookup. + * @param type The type to query. + * @returns An implementation of the type or null. * @protected */ lookup(label:yfiles.graph.ILabel,type:yfiles.lang.Class):Object; @@ -66144,10 +66162,10 @@ declare namespace system{ * queried from the {@link yfiles.styles.LabelStyleBase#renderer}. This implementation simply delegates to {@link yfiles.styles.LabelStyleBase#createVisual} so subclasses * should override to improve rendering performance. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.view.Visual} oldVisual The visual that has been created in the call to {@link yfiles.styles.LabelStyleBase#createVisual}. - * @param {yfiles.graph.ILabel} label The label to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param oldVisual The visual that has been created in the call to {@link #createVisual}. + * @param label The label to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.LabelStyleBase#createVisual * @protected */ @@ -66182,7 +66200,7 @@ declare namespace system{ *
  • Tutorial: 02 Custom Styles, step 03 UpdateVisual and RenderDataCache
  • *
  • Tutorial: 02 Custom Styles, step 05 Hit Test
  • * - * @class yfiles.styles.NodeStyleBase + * @class * @implements {yfiles.styles.INodeStyle} */ export interface NodeStyleBase extends Object,yfiles.styles.INodeStyle{} @@ -66190,7 +66208,6 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.styles.NodeStyleBase} class. * @protected - * @constructor */ constructor(); /** @@ -66198,7 +66215,7 @@ declare namespace system{ *

    * Immutable subclasses should consider returning this. *

    - * @returns {Object} A new object that is a copy of this instance using {@link Object#memberwiseClone}. + * @returns A new object that is a copy of this instance using {@link #memberwiseClone}. */ clone():Object; /** @@ -66207,9 +66224,9 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IVisualCreator#createVisual} call to the instance that has been * queried from the {@link yfiles.styles.NodeStyleBase#renderer}. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param node The node to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.NodeStyleBase#updateVisual * @protected * @abstract @@ -66221,9 +66238,9 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IBoundsProvider#getBounds} call to the instance that has been queried * from the {@link yfiles.styles.NodeStyleBase#renderer}. This implementation simply yields the {@link yfiles.graph.INode#layout}. *

    - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @returns {yfiles.geometry.Rect} The visual bounds of the visual representation. + * @param context The canvas context. + * @param node The node to which this style instance is assigned. + * @returns The visual bounds of the visual representation. * @protected */ getBounds(context:yfiles.view.ICanvasContext,node:yfiles.graph.INode):yfiles.geometry.Rect; @@ -66235,10 +66252,10 @@ declare namespace system{ * null. If it is feasible to determine the intersection point for the current shape, this method should be implemented in * addition to {@link yfiles.styles.NodeStyleBase#getOutline} to improve performance. *

    - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @param {yfiles.geometry.Point} inner The coordinates of a point lying {@link yfiles.styles.NodeStyleBase#isInside inside} the shape. - * @param {yfiles.geometry.Point} outer The coordinates of a point lying outside the shape. - * @returns {yfiles.geometry.Point} The intersection point if one has been found or null, otherwise. + * @param node The node to which this style instance is assigned. + * @param inner The coordinates of a point lying {@link #isInside inside} the shape. + * @param outer The coordinates of a point lying outside the shape. + * @returns The intersection point if one has been found or null, otherwise. * @see yfiles.styles.NodeStyleBase#isInside * @protected */ @@ -66250,8 +66267,8 @@ declare namespace system{ * behavior of {@link yfiles.styles.NodeStyleBase#isInside} and {@link yfiles.styles.NodeStyleBase#getIntersection} since the default * implementations delegate to it. *

    - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @returns {yfiles.geometry.GeneralPath} The outline of the visual representation or null. + * @param node The node to which this style instance is assigned. + * @returns The outline of the visual representation or null. * @protected */ getOutline(node:yfiles.graph.INode):yfiles.geometry.GeneralPath; @@ -66261,10 +66278,10 @@ declare namespace system{ * This method is called in response to a {@link yfiles.input.IHitTestable#isHit} call to the instance that has been queried from * the {@link yfiles.styles.NodeStyleBase#renderer}. This implementation uses the {@link yfiles.styles.NodeStyleBase#getOutline outline} to determine whether the node has been hit. *

    - * @param {yfiles.input.IInputModeContext} context The canvas context. - * @param {yfiles.geometry.Point} location The point to test. - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @returns {boolean} true if the specified node representation is hit; false otherwise. + * @param context The canvas context. + * @param location The point to test. + * @param node The node to which this style instance is assigned. + * @returns true if the specified node representation is hit; false otherwise. * @protected */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,node:yfiles.graph.INode):boolean; @@ -66274,10 +66291,10 @@ declare namespace system{ * This method is called in response to a {@link yfiles.input.IMarqueeTestable#isInBox} call to the instance that has been queried * from the {@link yfiles.styles.NodeStyleBase#renderer}. This implementation simply tests whether the {@link yfiles.styles.NodeStyleBase#getBounds bounds} intersect the marquee box. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} rectangle The marquee selection box. - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @returns {boolean} true if the specified node is visible is selected by the marquee rectangle; false otherwise. + * @param context The input mode context. + * @param rectangle The marquee selection box. + * @param node The node to which this style instance is assigned. + * @returns true if the specified node is visible is selected by the marquee rectangle; false otherwise. * @protected */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect,node:yfiles.graph.INode):boolean; @@ -66289,9 +66306,9 @@ declare namespace system{ * outline is null. If it is feasible to determine whether a given point lies inside the shape, this method should be * implemented in addition to {@link yfiles.styles.NodeStyleBase#getOutline} to improve performance. *

    - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @param {yfiles.geometry.Point} location The point to test. - * @returns {boolean} Whether the point is considered to lie inside the shape. + * @param node The node to which this style instance is assigned. + * @param location The point to test. + * @returns Whether the point is considered to lie inside the shape. * @protected */ isInside(node:yfiles.graph.INode,location:yfiles.geometry.Point):boolean; @@ -66301,10 +66318,10 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IVisibilityTestable#isVisible} call to the instance that has been * queried from the {@link yfiles.styles.NodeStyleBase#renderer}. This implementation simply tests whether the {@link yfiles.styles.NodeStyleBase#getBounds bounds} intersect the clip. *

    - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.geometry.Rect} rectangle The clipping rectangle. - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @returns {boolean} true if the specified node is visible in the clipping rectangle; false otherwise. + * @param context The canvas context. + * @param rectangle The clipping rectangle. + * @param node The node to which this style instance is assigned. + * @returns true if the specified node is visible in the clipping rectangle; false otherwise. * @protected */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect,node:yfiles.graph.INode):boolean; @@ -66326,9 +66343,9 @@ declare namespace system{ *

    * For these interfaces an implementation will be returned that delegates to the methods in this instance. *

    - * @param {yfiles.graph.INode} node The node to use for the context lookup. - * @param {yfiles.lang.Class} type The type to query. - * @returns {Object} An implementation of the type or null. + * @param node The node to use for the context lookup. + * @param type The type to query. + * @returns An implementation of the type or null. * @protected */ lookup(node:yfiles.graph.INode,type:yfiles.lang.Class):Object; @@ -66339,10 +66356,10 @@ declare namespace system{ * queried from the {@link yfiles.styles.NodeStyleBase#renderer}. This implementation simply delegates to {@link yfiles.styles.NodeStyleBase#createVisual} so subclasses should * override to improve rendering performance. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.view.Visual} oldVisual The visual that has been created in the call to {@link yfiles.styles.NodeStyleBase#createVisual}. - * @param {yfiles.graph.INode} node The node to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param oldVisual The visual that has been created in the call to {@link #createVisual}. + * @param node The node to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.NodeStyleBase#createVisual * @protected */ @@ -66360,7 +66377,7 @@ declare namespace system{ /** * A label style decorator that uses a node style instance to render the background and a label style instance to render * the foreground of a label. - * @class yfiles.styles.NodeStyleLabelStyleAdapter + * @class * @implements {yfiles.styles.ILabelStyle} */ export interface NodeStyleLabelStyleAdapter extends Object,yfiles.styles.ILabelStyle{} @@ -66372,9 +66389,8 @@ declare namespace system{ * Note that the styles will be stored by reference, thus modifying the style will directly affect the rendering of this * instance. *

    - * @param {yfiles.styles.INodeStyle} nodeStyle The style to use for rendering the background of the label. - * @param {yfiles.styles.ILabelStyle} labelStyle The style to use for rendering the foreground of the label. - * @constructor + * @param nodeStyle The style to use for rendering the background of the label. + * @param labelStyle The style to use for rendering the foreground of the label. */ constructor(nodeStyle:yfiles.styles.INodeStyle,labelStyle:yfiles.styles.ILabelStyle); /** @@ -66385,8 +66401,8 @@ declare namespace system{ * instance. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.styles.INodeStyle} options.nodeStyle The style to use for rendering the background of the label. - * @param {yfiles.styles.ILabelStyle} options.labelStyle The style to use for rendering the foreground of the label. + * @param options.nodeStyle The style to use for rendering the background of the label. + * @param options.labelStyle The style to use for rendering the foreground of the label. * @param {boolean} options.autoFlip A value indicating whether the label should be flipped 180 degrees automatically, if it would be oriented downwards, otherwise. *

    * This option sets the {@link yfiles.styles.NodeStyleLabelStyleAdapter#autoFlip} property on the created object. @@ -66395,7 +66411,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.NodeStyleLabelStyleAdapter#labelStyleInsets} property on the created object. *

    - * @constructor */ constructor(options:{nodeStyle:yfiles.styles.INodeStyle,labelStyle:yfiles.styles.ILabelStyle,autoFlip?:boolean,labelStyleInsets?:yfiles.geometry.Insets}); /** @@ -66420,12 +66435,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.NodeStyleLabelStyleAdapter#nodeStyle} property on the created object. *

    - * @constructor */ constructor(options?:{autoFlip?:boolean,labelStyle?:yfiles.styles.ILabelStyle,labelStyleInsets?:yfiles.geometry.Insets,nodeStyle?:yfiles.styles.INodeStyle}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -66460,7 +66474,7 @@ declare namespace system{ } /** * A port style decorator that uses a node style instance to render the port. - * @class yfiles.styles.NodeStylePortStyleAdapter + * @class * @implements {yfiles.styles.IPortStyle} */ export interface NodeStylePortStyleAdapter extends Object,yfiles.styles.IPortStyle{} @@ -66471,8 +66485,7 @@ declare namespace system{ * Note that the styles will be stored by reference, thus modifying the style will directly affect the rendering of this * instance. *

    - * @param {yfiles.styles.INodeStyle} nodeStyle The style to use for rendering the port. - * @constructor + * @param nodeStyle The style to use for rendering the port. */ constructor(nodeStyle:yfiles.styles.INodeStyle); /** @@ -66482,18 +66495,17 @@ declare namespace system{ * instance. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.styles.INodeStyle} options.nodeStyle The style to use for rendering the port. + * @param options.nodeStyle The style to use for rendering the port. * @param {yfiles.geometry.Size} options.renderSize The {@link yfiles.geometry.MutableSize} of the port that will be displayed using {@link yfiles.styles.NodeStylePortStyleAdapter#nodeStyle}. *

    * This option sets the {@link yfiles.styles.NodeStylePortStyleAdapter#renderSize} property on the created object. *

    - * @constructor */ constructor(options:{nodeStyle:yfiles.styles.INodeStyle,renderSize?:yfiles.geometry.Size}); /** * Initializes a new instance of the {@link yfiles.styles.NodeStylePortStyleAdapter} class. *

    - * This constructor uses an ellipse {@link yfiles.styles.ShapeNodeStyle} with a black brush for the {@link yfiles.styles.NodeStylePortStyleAdapter#nodeStyle} property. + * This constructor uses an ellipse {@link yfiles.styles.ShapeNodeStyle} with a black {@link yfiles.view.Fill} for the {@link yfiles.styles.NodeStylePortStyleAdapter#nodeStyle} property. *

    * @param {Object} [options=null] The parameters to pass. * @param {yfiles.styles.INodeStyle} options.nodeStyle The {@link yfiles.styles.INodeStyle} that is used for rendering the port. @@ -66504,12 +66516,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.NodeStylePortStyleAdapter#renderSize} property on the created object. *

    - * @constructor */ constructor(options?:{nodeStyle?:yfiles.styles.INodeStyle,renderSize?:yfiles.geometry.Size}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -66551,7 +66562,7 @@ declare namespace system{ *
  • Demo: SimpleCustomStyle, demo.yfiles.style.simplecustomstyle
  • *
  • Tutorial: 02 Custom Styles, step 22 Custom Ports
  • * - * @class yfiles.styles.PortStyleBase + * @class * @implements {yfiles.styles.IPortStyle} */ export interface PortStyleBase extends Object,yfiles.styles.IPortStyle{} @@ -66559,7 +66570,6 @@ declare namespace system{ /** * Initializes a new instance of the {@link yfiles.styles.PortStyleBase} class. * @protected - * @constructor */ constructor(); /** @@ -66567,7 +66577,7 @@ declare namespace system{ *

    * Immutable subclasses should consider returning this. *

    - * @returns {Object} A new object that is a copy of this instance using {@link Object#memberwiseClone}. + * @returns A new object that is a copy of this instance using {@link #memberwiseClone}. */ clone():Object; /** @@ -66576,9 +66586,9 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IVisualCreator#createVisual} call to the instance that has been * queried from the {@link yfiles.styles.PortStyleBase#renderer}. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.graph.IPort} port The port to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param port The port to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.PortStyleBase#updateVisual * @protected * @abstract @@ -66586,9 +66596,9 @@ declare namespace system{ createVisual(context:yfiles.view.IRenderContext,port:yfiles.graph.IPort):yfiles.view.Visual; /** * Callback that returns the bounds of the visual for the port in the given context. - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.graph.IPort} port The port to which this style instance is assigned. - * @returns {yfiles.geometry.Rect} The visual bounds of the visual representation. + * @param context The canvas context. + * @param port The port to which this style instance is assigned. + * @returns The visual bounds of the visual representation. * @protected * @abstract */ @@ -66602,10 +66612,10 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.styles.PortStyleBase#getBounds bounds} to determine whether the port has been hit. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Point} location The point to test. - * @param {yfiles.graph.IPort} port The port to which this style instance is assigned. - * @returns {boolean} true if the specified port representation is hit; false otherwise. + * @param context The input mode context. + * @param location The point to test. + * @param port The port to which this style instance is assigned. + * @returns true if the specified port representation is hit; false otherwise. * @protected */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point,port:yfiles.graph.IPort):boolean; @@ -66618,10 +66628,10 @@ declare namespace system{ *

    * This implementation simply tests whether the {@link yfiles.styles.PortStyleBase#getBounds bounds} intersect the marquee box. *

    - * @param {yfiles.input.IInputModeContext} context The input mode context. - * @param {yfiles.geometry.Rect} rectangle The marquee selection box. - * @param {yfiles.graph.IPort} port The port to which this style instance is assigned. - * @returns {boolean} true if the specified port is visible is selected by the marquee rectangle; false otherwise. + * @param context The input mode context. + * @param rectangle The marquee selection box. + * @param port The port to which this style instance is assigned. + * @returns true if the specified port is visible is selected by the marquee rectangle; false otherwise. * @protected */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect,port:yfiles.graph.IPort):boolean; @@ -66631,10 +66641,10 @@ declare namespace system{ * This method is called in response to a {@link yfiles.view.IVisibilityTestable#isVisible} call to the instance that has been * queried from the {@link yfiles.styles.PortStyleBase#renderer}. This implementation simply tests whether the {@link yfiles.styles.PortStyleBase#getBounds bounds} intersect the clip. *

    - * @param {yfiles.view.ICanvasContext} context The canvas context. - * @param {yfiles.geometry.Rect} rectangle The clipping rectangle. - * @param {yfiles.graph.IPort} port The port to which this style instance is assigned. - * @returns {boolean} true if the specified port is visible in the clipping rectangle; false otherwise. + * @param context The canvas context. + * @param rectangle The clipping rectangle. + * @param port The port to which this style instance is assigned. + * @returns true if the specified port is visible in the clipping rectangle; false otherwise. * @protected */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect,port:yfiles.graph.IPort):boolean; @@ -66655,9 +66665,9 @@ declare namespace system{ *

    * For these interfaces an implementation will be returned that delegates to the methods in this instance. *

    - * @param {yfiles.graph.IPort} port The port to use for the context lookup. - * @param {yfiles.lang.Class} type The type to query. - * @returns {Object} An implementation of the type or null. + * @param port The port to use for the context lookup. + * @param type The type to query. + * @returns An implementation of the type or null. * @protected */ lookup(port:yfiles.graph.IPort,type:yfiles.lang.Class):Object; @@ -66668,10 +66678,10 @@ declare namespace system{ * queried from the {@link yfiles.styles.PortStyleBase#renderer}. This implementation simply delegates to {@link yfiles.styles.PortStyleBase#createVisual} so subclasses should * override to improve rendering performance. *

    - * @param {yfiles.view.IRenderContext} context The render context. - * @param {yfiles.view.Visual} oldVisual The visual that has been created in the call to {@link yfiles.styles.PortStyleBase#createVisual}. - * @param {yfiles.graph.IPort} port The port to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. + * @param context The render context. + * @param oldVisual The visual that has been created in the call to {@link #createVisual}. + * @param port The port to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. * @see yfiles.styles.PortStyleBase#createVisual * @protected */ @@ -66689,43 +66699,43 @@ declare namespace system{ /** * A utility class that provides {@link yfiles.styles.TextRenderSupport#measureText text size measurement} and {@link yfiles.styles.TextRenderSupport#addText text placement} functionality, for instance, for label rendering * and measurement. - * @class yfiles.styles.TextRenderSupport + * @class */ export interface TextRenderSupport extends Object{} export class TextRenderSupport { /** * Add the text content to the provided SVG text element. - * @param {SVGTextElement} targetElement An SVG text element to add the provided text to (either as textContent, or by appending tspan elements). - * @param {string} text The text content to add to the provided text element (may contain newline characters). - * @param {yfiles.view.Font} font The {@link yfiles.view.Font} that defines the font properties to apply to the added text. - * @param {yfiles.geometry.Size} maximumSize The bounds that shouldn't be exceeded when placing the text; null or not provided means unbound. - * @param {yfiles.view.TextWrapping} [wrapping=yfiles.view.TextWrapping.NONE] The {@link yfiles.view.TextWrapping} policy to apply when the text exceeds the provided maximumSize; {@link yfiles.view.TextWrapping#WORD} + * @param targetElement An SVG text element to add the provided text to (either as textContent, or by appending tspan elements). + * @param text The text content to add to the provided text element (may contain newline characters). + * @param font The {@link } that defines the font properties to apply to the added text. + * @param maximumSize The bounds that shouldn't be exceeded when placing the text; null or not provided means unbound. + * @param [wrapping=yfiles.view.TextWrapping.NONE] The {@link } policy to apply when the text exceeds the provided maximumSize; {@link #WORD} * per default. - * @param {yfiles.styles.TextMeasurePolicy} [measurePolicy=yfiles.styles.TextMeasurePolicy.AUTOMATIC] The measure policy to use for measuring the size of the text; {@link yfiles.styles.TextMeasurePolicy#AUTOMATIC} per default. - * @returns {string} The text that was actually placed in the targetElement. + * @param [measurePolicy=yfiles.styles.TextMeasurePolicy.AUTOMATIC] The measure policy to use for measuring the size of the text; {@link #AUTOMATIC} per default. + * @returns The text that was actually placed in the targetElement. * @static */ static addText(targetElement:SVGTextElement,text:string,font:yfiles.view.Font,maximumSize:yfiles.geometry.Size,wrapping?:yfiles.view.TextWrapping,measurePolicy?:yfiles.styles.TextMeasurePolicy):string; /** * Add the text content to the provided SVG text element. * @param {Object} options The parameters to pass. - * @param {SVGTextElement} options.targetElement An SVG text element to add the provided text to (either as textContent, or by appending tspan elements). - * @param {string} options.text The text content to add to the provided text element (may contain newline characters). - * @param {yfiles.view.Font} options.font The {@link yfiles.view.Font} that defines the font properties to apply to the added text. - * @param {yfiles.geometry.Size} options.maximumSize The bounds that shouldn't be exceeded when placing the text; null or not provided means unbound. - * @param {yfiles.view.TextWrapping} [options.wrapping=yfiles.view.TextWrapping.NONE] The {@link yfiles.view.TextWrapping} policy to apply when the text exceeds the provided maximumSize; {@link yfiles.view.TextWrapping#WORD} + * @param options.targetElement An SVG text element to add the provided text to (either as textContent, or by appending tspan elements). + * @param options.text The text content to add to the provided text element (may contain newline characters). + * @param options.font The {@link } that defines the font properties to apply to the added text. + * @param options.maximumSize The bounds that shouldn't be exceeded when placing the text; null or not provided means unbound. + * @param [options.wrapping=yfiles.view.TextWrapping.NONE] The {@link } policy to apply when the text exceeds the provided maximumSize; {@link #WORD} * per default. - * @param {yfiles.styles.TextMeasurePolicy} [options.measurePolicy=yfiles.styles.TextMeasurePolicy.AUTOMATIC] The measure policy to use for measuring the size of the text; {@link yfiles.styles.TextMeasurePolicy#AUTOMATIC} per default. - * @returns {string} The text that was actually placed in the targetElement. + * @param [options.measurePolicy=yfiles.styles.TextMeasurePolicy.AUTOMATIC] The measure policy to use for measuring the size of the text; {@link #AUTOMATIC} per default. + * @returns The text that was actually placed in the targetElement. * @static */ static addText(options:{targetElement:SVGTextElement,text:string,font:yfiles.view.Font,maximumSize:yfiles.geometry.Size,wrapping?:yfiles.view.TextWrapping,measurePolicy?:yfiles.styles.TextMeasurePolicy}):string; /** * Calculate the width and height required to render the provided text using the provided {@link yfiles.view.Font}. - * @param {string} text The text that should be measured. - * @param {yfiles.view.Font} font The {@link yfiles.view.Font} to apply to the text before measuring. - * @param {yfiles.styles.TextMeasurePolicy} [measurePolicy=yfiles.styles.TextMeasurePolicy.AUTOMATIC] The measure policy to use for measuring the size of the text; {@link yfiles.styles.TextMeasurePolicy#AUTOMATIC} per default. - * @returns {yfiles.geometry.Size} The measured text size + * @param text The text that should be measured. + * @param font The {@link } to apply to the text before measuring. + * @param [measurePolicy=yfiles.styles.TextMeasurePolicy.AUTOMATIC] The measure policy to use for measuring the size of the text; {@link #AUTOMATIC} per default. + * @returns The measured text size * @static */ static measureText(text:string,font:yfiles.view.Font,measurePolicy?:yfiles.styles.TextMeasurePolicy):yfiles.geometry.Size; @@ -66747,21 +66757,23 @@ declare namespace system{ } /** * A basic label style which renders the label's {@link yfiles.graph.ILabel#text} and optionally a {@link yfiles.styles.DefaultLabelStyle#backgroundFill background} and {@link yfiles.styles.DefaultLabelStyle#backgroundStroke border}. - * @class yfiles.styles.DefaultLabelStyle + *

    + * This style uses a {@link yfiles.styles.DefaultLabelStyleRenderer} to create its visualization. + *

    + * @class * @implements {yfiles.styles.ILabelStyle} */ export interface DefaultLabelStyle extends Object,yfiles.styles.ILabelStyle{} export class DefaultLabelStyle { /** * Creates a new instance using the provided renderer. - * @param {yfiles.styles.ILabelStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param renderer The custom renderer for this style instance. */ constructor(renderer:yfiles.styles.ILabelStyleRenderer); /** * Creates a new instance using the provided renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.ILabelStyleRenderer} options.renderer The custom renderer for this style instance. + * @param options.renderer The custom renderer for this style instance. * @param {boolean} options.autoFlip A value indicating whether the label should be flipped 180 degrees automatically, if it would be oriented downwards, otherwise. *

    * This option sets the {@link yfiles.styles.DefaultLabelStyle#autoFlip} property on the created object. @@ -66802,7 +66814,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.DefaultLabelStyle#verticalTextAlignment} property on the created object. *

    - * @constructor */ constructor(options:{renderer:yfiles.styles.ILabelStyleRenderer,autoFlip?:boolean,backgroundFill?:yfiles.view.Fill,backgroundStroke?:yfiles.view.Stroke,clipText?:boolean,horizontalTextAlignment?:yfiles.view.HorizontalTextAlignment,textFill?:yfiles.view.Fill,textSize?:number,wrapping?:yfiles.view.TextWrapping,font?:yfiles.view.Font,verticalTextAlignment?:yfiles.view.VerticalTextAlignment}); /** @@ -66848,12 +66859,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.DefaultLabelStyle#verticalTextAlignment} property on the created object. *

    - * @constructor */ constructor(options?:{autoFlip?:boolean,backgroundFill?:yfiles.view.Fill,backgroundStroke?:yfiles.view.Stroke,clipText?:boolean,horizontalTextAlignment?:yfiles.view.HorizontalTextAlignment,textFill?:yfiles.view.Fill,textSize?:number,wrapping?:yfiles.view.TextWrapping,font?:yfiles.view.Font,verticalTextAlignment?:yfiles.view.VerticalTextAlignment}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -66870,7 +66880,7 @@ declare namespace system{ *

    * The default value is {@link yfiles.view.VerticalTextAlignment#TOP}. *

    - * @default 1 + * @default yfiles.view.VerticalTextAlignment.TOP * @type {yfiles.view.VerticalTextAlignment} */ verticalTextAlignment:yfiles.view.VerticalTextAlignment; @@ -66879,7 +66889,7 @@ declare namespace system{ *

    * The default value is {@link yfiles.view.HorizontalTextAlignment#LEFT}. *

    - * @default 1 + * @default yfiles.view.HorizontalTextAlignment.LEFT * @type {yfiles.view.HorizontalTextAlignment} */ horizontalTextAlignment:yfiles.view.HorizontalTextAlignment; @@ -66888,7 +66898,7 @@ declare namespace system{ *

    * The default value is {@link yfiles.view.TextWrapping#NONE}. *

    - * @default 0 + * @default yfiles.view.TextWrapping.NONE * @type {yfiles.view.TextWrapping} */ wrapping:yfiles.view.TextWrapping; @@ -66959,32 +66969,31 @@ declare namespace system{ static $class:yfiles.lang.Class; } /** - * A label style that draws an icon in addtion to the text. + * A label style that draws an icon in addition to the text. *

    * This style draws the icon at the location specified by {@link yfiles.styles.IconLabelStyle#iconPlacement} and delegates the drawing of the label's text to the {@link yfiles.styles.IconLabelStyle#wrapped} style. *

    - * @class yfiles.styles.IconLabelStyle + * @class * @implements {yfiles.styles.ILabelStyle} */ export interface IconLabelStyle extends Object,yfiles.styles.ILabelStyle{} export class IconLabelStyle { /** * Creates a new instance using the provided icon and renderer. - * @param {string} icon The icon to draw. - * @param {yfiles.styles.ILabelStyleRenderer} [renderer=null] The custom renderer for this style instance. - * @constructor + * @param icon The icon to draw. + * @param [renderer=null] The custom renderer for this style instance. */ constructor(icon:string,renderer?:yfiles.styles.ILabelStyleRenderer); /** * Creates a new instance using the provided icon and renderer. * @param {Object} options The parameters to pass. - * @param {string} options.icon The icon to draw. - * @param {yfiles.styles.ILabelStyleRenderer} [options.renderer=null] The custom renderer for this style instance. + * @param options.icon The icon to draw. + * @param [options.renderer=null] The custom renderer for this style instance. * @param {boolean} options.autoFlip A value indicating whether to automatically flip the rendering should the {@link yfiles.graph.ILabel#layout layout}'s {@link yfiles.geometry.IOrientedRectangle#upY up vector} point downwards. *

    * This option sets the {@link yfiles.styles.IconLabelStyle#autoFlip} property on the created object. *

    - * @param {yfiles.graph.ILabelModelParameter} options.iconPlacement The parameter the specifies the icon placement. + * @param {yfiles.graph.ILabelModelParameter} options.iconPlacement The parameter that specifies the icon placement. *

    * This option sets the {@link yfiles.styles.IconLabelStyle#iconPlacement} property on the created object. *

    @@ -67000,7 +67009,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.IconLabelStyle#wrappedInsets} property on the created object. *

    - * @constructor */ constructor(options:{icon:string,renderer?:yfiles.styles.ILabelStyleRenderer,autoFlip?:boolean,iconPlacement?:yfiles.graph.ILabelModelParameter,iconSize?:yfiles.geometry.Size,wrapped?:yfiles.styles.ILabelStyle,wrappedInsets?:yfiles.geometry.Insets}); /** @@ -67014,7 +67022,7 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.IconLabelStyle#icon} property on the created object. *

    - * @param {yfiles.graph.ILabelModelParameter} options.iconPlacement The parameter the specifies the icon placement. + * @param {yfiles.graph.ILabelModelParameter} options.iconPlacement The parameter that specifies the icon placement. *

    * This option sets the {@link yfiles.styles.IconLabelStyle#iconPlacement} property on the created object. *

    @@ -67030,12 +67038,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.IconLabelStyle#wrappedInsets} property on the created object. *

    - * @constructor */ constructor(options?:{autoFlip?:boolean,icon?:string,iconPlacement?:yfiles.graph.ILabelModelParameter,iconSize?:yfiles.geometry.Size,wrapped?:yfiles.styles.ILabelStyle,wrappedInsets?:yfiles.geometry.Insets}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -67052,7 +67059,7 @@ declare namespace system{ */ iconSize:yfiles.geometry.Size; /** - * Gets or sets the parameter the specifies the icon placement. + * Gets or sets the parameter that specifies the icon placement. *

    * All valid node label model parameters can be used. The label's {@link yfiles.graph.ILabel#layout layout} will be interpreted as the a node's layout and the * icon will be placed relative to that layout as if it was a node's label. @@ -67113,7 +67120,7 @@ declare namespace system{ * This implementation will just draw the label's {@link yfiles.graph.ILabel#text} using the properties provided by {@link yfiles.styles.DefaultLabelStyle} into * the label's {@link yfiles.graph.ILabel#layout layout} area. *

    - * @class yfiles.styles.DefaultLabelStyleRenderer + * @class * @implements {yfiles.styles.ILabelStyleRenderer} * @implements {yfiles.view.IBoundsProvider} * @implements {yfiles.view.IVisibilityTestable} @@ -67126,17 +67133,16 @@ declare namespace system{ export class DefaultLabelStyleRenderer { /** * Creates a new default instance. - * @constructor */ constructor(); /** * Add the text content to the provided SVG text element. - * @param {SVGTextElement} textElement An SVG text element to add the provided text to. - * @param {yfiles.view.Font} font The {@link yfiles.view.Font} that defines the font properties to apply to the added text. - * @param {string} text The text content to add to the provided text element (may contain newline characters). - * @param {yfiles.geometry.Size} maxSize The bounds that shouldn't be exceeded when placing the text; null or not provided means unbound. - * @param {yfiles.view.TextWrapping} wrapping The {@link yfiles.view.TextWrapping} policy to apply when the text exceeds the provided maxSize. - * @returns {string} + * @param textElement An SVG text element to add the provided text to. + * @param font The {@link } that defines the font properties to apply to the added text. + * @param text The text content to add to the provided text element (may contain newline characters). + * @param maxSize The bounds that shouldn't be exceeded when placing the text; null or not provided means unbound. + * @param wrapping The {@link } policy to apply when the text exceeds the provided maxSize. + * @returns * @protected */ addTextElements(textElement:SVGTextElement,font:yfiles.view.Font,text:string,maxSize:yfiles.geometry.Size,wrapping:yfiles.view.TextWrapping):string; @@ -67156,21 +67162,21 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and label parameters, calls {@link yfiles.styles.DefaultLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param label The label to retrieve the bounds provider for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.DefaultLabelStyleRenderer#getBounds */ getBoundsProvider(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IBoundsProvider; @@ -67183,50 +67189,50 @@ declare namespace system{ * {@link yfiles.styles.DefaultLabelStyleRenderer#configure} only if needed, i.e. if they decide to return this or an instance that * depends on a correctly configured this. *

    - * @param {yfiles.graph.ILabel} label The label to query the context for. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param label The label to query the context for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.DefaultLabelStyleRenderer#lookup */ getContext(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.graph.ILookup; /** * Configures the style and label parameters, calls {@link yfiles.styles.DefaultLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to query hit test with. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param label The label to query hit test with. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.DefaultLabelStyleRenderer#isHit */ getHitTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IHitTestable; /** * Determines how the text should be aligned within the assigned label bounds. - * @returns {yfiles.view.HorizontalTextAlignment} This value as obtained from the style. + * @returns This value as obtained from the style. * @protected */ getHorizontalTextAlignment():yfiles.view.HorizontalTextAlignment; /** * Configures the style and label parameters, calls {@link yfiles.styles.DefaultLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param label The label to query marquee intersection tests. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.DefaultLabelStyleRenderer#isInBox */ getMarqueeTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IMarqueeTestable; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.geometry.Size} + * @param label + * @param style + * @returns */ getPreferredSize(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.geometry.Size; /** * Calculates the preferred size given the current state of the renderer. - * @returns {yfiles.geometry.Size} The size as suggested by this renderer. + * @returns The size as suggested by this renderer. * @protected */ getPreferredSizeCore():yfiles.geometry.Size; /** * Determines how the text should be aligned vertically within the assigned label bounds. - * @returns {yfiles.view.VerticalTextAlignment} This value as obtained from the style. + * @returns This value as obtained from the style. * @protected */ getVerticalTextAlignment():yfiles.view.VerticalTextAlignment; @@ -67238,58 +67244,58 @@ declare namespace system{ * the subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.DefaultLabelStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.ILabel} label The label to query visibility tests. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param label The label to query visibility tests. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.DefaultLabelStyleRenderer#isVisible */ getVisibilityTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and label parameters, calls {@link yfiles.styles.DefaultLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.DefaultLabelStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param label The label to retrieve the {@link } for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.DefaultLabelStyleRenderer#createVisual * @see yfiles.styles.DefaultLabelStyleRenderer#updateVisual */ getVisualCreator(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisualCreator; /** * Determines how the text should be trimmed to fit the assigned label bounds. - * @returns {yfiles.view.TextWrapping} This value as obtained from the style. + * @returns This value as obtained from the style. * @protected */ getWrapping():yfiles.view.TextWrapping; /** * Delegates to {@link yfiles.styles.DefaultLabelStyle#autoFlip} - * @returns {boolean} Whether to flip the drawing if it is upside down. + * @returns Whether to flip the drawing if it is upside down. * @protected */ isAutoFlip():boolean; /** * Determines whether text should be forced to be clipped inside the rectangle. - * @returns {boolean} This value as obtained from the style. + * @returns This value as obtained from the style. * @protected */ isClippingText():boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * Uses the {@link yfiles.graph.ILabel#layout} to determine whether the clip intersects. - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -67302,23 +67308,23 @@ declare namespace system{ * This implementation will check if type.IsInstanceOfType(this) and will call {@link yfiles.styles.DefaultLabelStyleRenderer#configure} * on success and return this. *

    - * @param {yfiles.lang.Class} type The type to query for. - * @returns {Object} An implementation or null. + * @param type The type to query for. + * @returns An implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * Calculate the width and height required to render the provided text using the provided {@link yfiles.view.Font}. - * @param {string} text The text that should be measured. - * @param {yfiles.view.Font} font The {@link yfiles.view.Font} to apply to the text before measuring. - * @returns {yfiles.geometry.Size} The text size. + * @param text The text that should be measured. + * @param font The {@link } to apply to the text before measuring. + * @returns The text size. * @protected */ measureText(text:string,font:yfiles.view.Font):yfiles.geometry.Size; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -67346,7 +67352,7 @@ declare namespace system{ *

    * This implementation renders the label's inner style and an icon. *

    - * @class yfiles.styles.IconLabelStyleRenderer + * @class * @implements {yfiles.styles.ILabelStyleRenderer} * @implements {yfiles.view.IBoundsProvider} * @implements {yfiles.view.IVisibilityTestable} @@ -67359,7 +67365,6 @@ declare namespace system{ export class IconLabelStyleRenderer { /** * Creates a new instance of this renderer. - * @constructor */ constructor(); /** @@ -67369,21 +67374,21 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and label parameters, calls {@link yfiles.styles.IconLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param label The label to retrieve the bounds provider for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.IconLabelStyleRenderer#getBounds */ getBoundsProvider(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IBoundsProvider; @@ -67394,62 +67399,56 @@ declare namespace system{ * instead subclasses should ensure that in the {@link yfiles.styles.IconLabelStyleRenderer#lookup} method call they should call {@link yfiles.styles.IconLabelStyleRenderer#configure} * only if needed, i.e. if they decide to return this or an instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.ILabel} label The label to query the context for. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param label The label to query the context for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.IconLabelStyleRenderer#lookup */ getContext(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.graph.ILookup; /** * Configures the style and label parameters, calls {@link yfiles.styles.IconLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to query hit test with. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param label The label to query hit test with. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.IconLabelStyleRenderer#isHit */ getHitTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IHitTestable; /** * Retrieves the {@link yfiles.styles.IconLabelStyle#icon} from the {@link yfiles.styles.IconLabelStyleRenderer#style}. - * @returns {string} The icon. + * @returns The icon. * @protected */ getIcon():string; /** * Retrieves the {@link yfiles.styles.IconLabelStyle#iconPlacement} from the {@link yfiles.styles.IconLabelStyleRenderer#style}. - * @returns {yfiles.graph.ILabelModelParameter} The placement parameter. + * @returns The placement parameter. * @protected */ getIconPlacement():yfiles.graph.ILabelModelParameter; /** * Gets the size of the icon from the {@link yfiles.styles.IconLabelStyle#iconSize} property. - * @returns {yfiles.geometry.Size} The size to use for the icon. + * @returns The size to use for the icon. * @protected */ getIconSize():yfiles.geometry.Size; - /** - * Retrieves the {@link yfiles.styles.IconLabelStyle#wrappedInsets} from the {@link yfiles.styles.IconLabelStyleRenderer#style}. - * @returns {yfiles.geometry.Insets} The insets. - * @protected - */ - getInnerStyleInsets():yfiles.geometry.Insets; /** * Configures the style and label parameters, calls {@link yfiles.styles.IconLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param label The label to query marquee intersection tests. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.IconLabelStyleRenderer#isInBox */ getMarqueeTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IMarqueeTestable; /** * - * @param {yfiles.graph.ILabel} label - * @param {yfiles.styles.ILabelStyle} style - * @returns {yfiles.geometry.Size} + * @param label + * @param style + * @returns */ getPreferredSize(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.geometry.Size; /** * Calculates the preferred size given the current state of the renderer. - * @returns {yfiles.geometry.Size} The size as suggested by this renderer. + * @returns The size as suggested by this renderer. * @protected */ getPreferredSizeCore():yfiles.geometry.Size; @@ -67460,52 +67459,58 @@ declare namespace system{ * subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.IconLabelStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.ILabel} label The label to query visibility tests. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param label The label to query visibility tests. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.IconLabelStyleRenderer#isVisible */ getVisibilityTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and label parameters, calls {@link yfiles.styles.IconLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.IconLabelStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param label The label to retrieve the {@link } for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.IconLabelStyleRenderer#createVisual * @see yfiles.styles.IconLabelStyleRenderer#updateVisual */ getVisualCreator(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisualCreator; /** * Retrieves the {@link yfiles.styles.IconLabelStyle#wrapped} from the {@link yfiles.styles.IconLabelStyleRenderer#style}. - * @returns {yfiles.styles.ILabelStyle} The style. + * @returns The style. * @protected */ getWrappedStyle():yfiles.styles.ILabelStyle; + /** + * Retrieves the {@link yfiles.styles.IconLabelStyle#wrappedInsets} from the {@link yfiles.styles.IconLabelStyleRenderer#style}. + * @returns The insets. + * @protected + */ + getWrappedStyleInsets():yfiles.geometry.Insets; /** * Retrieves the {@link yfiles.styles.IconLabelStyle#autoFlip} property from the {@link yfiles.styles.IconLabelStyleRenderer#style}. - * @returns {boolean} The autoflip property value. + * @returns The autoflip property value. * @protected */ isAutoFlip():boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -67518,21 +67523,21 @@ declare namespace system{ * This implementation will check if type.IsInstanceOfType(this) and will call {@link yfiles.styles.IconLabelStyleRenderer#configure} * on success and return this. *

    - * @param {yfiles.lang.Class} type The type to query for. - * @returns {Object} An implementation or null. + * @param type The type to query for. + * @returns An implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * Returns whether the icon bounds should be considered for hit testing. - * @returns {boolean} true + * @returns true * @protected */ shouldHitTestIcon():boolean; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -67551,23 +67556,22 @@ declare namespace system{ } /** * A node style that can display node shapes with a boundary that is defined by a {@link yfiles.geometry.GeneralPath} instance. - * @class yfiles.styles.GeneralPathNodeStyle + * @class * @implements {yfiles.styles.INodeStyle} */ export interface GeneralPathNodeStyle extends Object,yfiles.styles.INodeStyle{} export class GeneralPathNodeStyle { /** * Creates a new instance using the specified path and a custom renderer instance. - * @param {yfiles.geometry.GeneralPath} path The path that defines the boundary of this style. - * @param {yfiles.styles.GeneralPathNodeStyleRenderer} [renderer=null] Custom renderer instance for this style - * @constructor + * @param path The path that defines the boundary of this style. + * @param [renderer=null] Custom renderer instance for this style */ constructor(path:yfiles.geometry.GeneralPath,renderer?:yfiles.styles.GeneralPathNodeStyleRenderer); /** * Creates a new instance using the specified path and a custom renderer instance. * @param {Object} options The parameters to pass. - * @param {yfiles.geometry.GeneralPath} options.path The path that defines the boundary of this style. - * @param {yfiles.styles.GeneralPathNodeStyleRenderer} [options.renderer=null] Custom renderer instance for this style + * @param options.path The path that defines the boundary of this style. + * @param [options.renderer=null] Custom renderer instance for this style * @param {yfiles.view.Fill} options.fill The {@link yfiles.view.Fill} that is used to draw the shape. *

    * This option sets the {@link yfiles.styles.GeneralPathNodeStyle#fill} property on the created object. @@ -67576,7 +67580,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.GeneralPathNodeStyle#stroke} property on the created object. *

    - * @constructor */ constructor(options:{path:yfiles.geometry.GeneralPath,renderer?:yfiles.styles.GeneralPathNodeStyleRenderer,fill?:yfiles.view.Fill,stroke?:yfiles.view.Stroke}); /** @@ -67594,12 +67597,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.GeneralPathNodeStyle#stroke} property on the created object. *

    - * @constructor */ constructor(options?:{fill?:yfiles.view.Fill,path?:yfiles.geometry.GeneralPath,stroke?:yfiles.view.Stroke}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -67641,7 +67643,7 @@ declare namespace system{ } /** * An {@link yfiles.styles.INodeStyleRenderer} implementation that can handle {@link yfiles.styles.GeneralPathNodeStyle} instances. - * @class yfiles.styles.GeneralPathNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -67655,7 +67657,6 @@ declare namespace system{ export class GeneralPathNodeStyleRenderer { /** * Initializes a new instance of the {@link yfiles.styles.GeneralPathNodeStyleRenderer} class. - * @constructor */ constructor(); /** @@ -67674,21 +67675,21 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and node parameters, calls {@link yfiles.styles.GeneralPathNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param node The node to retrieve the bounds provider for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.GeneralPathNodeStyleRenderer#getBounds */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; @@ -67701,45 +67702,45 @@ declare namespace system{ * call {@link yfiles.styles.GeneralPathNodeStyleRenderer#configure} only if needed, i.e. if they decide to return this or an * instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.GeneralPathNodeStyleRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Configures the style and node parameters, calls {@link yfiles.styles.GeneralPathNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query hit test with. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param node The node to query hit test with. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.GeneralPathNodeStyleRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param inner + * @param outer + * @returns */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Configures the style and node parameters, calls {@link yfiles.styles.GeneralPathNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param node The node to query marquee intersection tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.GeneralPathNodeStyleRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getOutline():yfiles.geometry.GeneralPath; /** * Configures the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} and {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} properties, calls {@link yfiles.styles.GeneralPathNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the shape geometry for. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} property. - * @returns {yfiles.styles.IShapeGeometry} this + * @param node The node to retrieve the shape geometry for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.GeneralPathNodeStyleRenderer#isInside * @see yfiles.styles.GeneralPathNodeStyleRenderer#getIntersection */ @@ -67752,46 +67753,46 @@ declare namespace system{ * the subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.GeneralPathNodeStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.GeneralPathNodeStyleRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.GeneralPathNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.GeneralPathNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.GeneralPathNodeStyleRenderer#createVisual * @see yfiles.styles.GeneralPathNodeStyleRenderer#updateVisual */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param location + * @returns */ isInside(location:yfiles.geometry.Point):boolean; /** * Determines visibility by checking for an intersection with the {@link yfiles.styles.GeneralPathNodeStyleRenderer#layout}. - * @param {yfiles.view.ICanvasContext} context The context. - * @param {yfiles.geometry.Rect} rectangle The current clip - * @returns {boolean} Whether the {@link yfiles.styles.GeneralPathNodeStyleRenderer#layout} is visible in the clip. + * @param context The context. + * @param rectangle The current clip + * @returns Whether the {@link #layout} is visible in the clip. */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -67804,15 +67805,15 @@ declare namespace system{ * lookup. This implementation will check if type.IsInstanceOfType(this) and will call {@link yfiles.styles.GeneralPathNodeStyleRenderer#configure} * on success and return this. *

    - * @param {yfiles.lang.Class} type The type to query for. - * @returns {Object} An implementation or null. + * @param type The type to query for. + * @returns An implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -67841,7 +67842,7 @@ declare namespace system{ * An abstract base class for {@link yfiles.styles.IEdgeStyleRenderer} implementations that are based on the calculation of a * {@link yfiles.geometry.GeneralPath}. * Type parameter TStyle: The exact type of style to use for this instance. - * @class yfiles.styles.PathBasedEdgeStyleRenderer. + * @class * @implements {yfiles.styles.IEdgeStyleRenderer} * @implements {yfiles.styles.IPathGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -67857,7 +67858,7 @@ declare namespace system{ export class PathBasedEdgeStyleRenderer { /** * - * @param {yfiles.lang.Class} edgeStyleType The exact type of style to use for this instance. + * @param edgeStyleType The exact type of style to use for this instance. */ constructor(edgeStyleType:yfiles.lang.Class); /** @@ -67874,20 +67875,20 @@ declare namespace system{ configure():void; /** * This method should create the basic uncropped path given the control points. - * @returns {yfiles.geometry.GeneralPath} A path that has to be cropped, yet. + * @returns A path that has to be cropped, yet. * @protected * @abstract */ createPath():yfiles.geometry.GeneralPath; /** * Static utility method that creates a rectangular self loop path. - * @param {number} sx The x coordinate of the source port. - * @param {number} sy The y coordinate of the source port. - * @param {number} oppositeX The x coordinate of the single control point. - * @param {number} oppositeY The y coordinate of the single control point. - * @param {number} tx The x coordinate of the target port. - * @param {number} ty The y coordinate of the target port. - * @returns {yfiles.geometry.GeneralPath} A path that describes a rectangular self loop. + * @param sx The x coordinate of the source port. + * @param sy The y coordinate of the source port. + * @param oppositeX The x coordinate of the single control point. + * @param oppositeY The y coordinate of the single control point. + * @param tx The x coordinate of the target port. + * @param ty The y coordinate of the target port. + * @returns A path that describes a rectangular self loop. * @see yfiles.styles.PathBasedEdgeStyleRenderer.#createSelfLoopPath * @protected * @static @@ -67895,13 +67896,13 @@ declare namespace system{ static createRectangleSelfLoop(sx:number,sy:number,oppositeX:number,oppositeY:number,tx:number,ty:number):yfiles.geometry.GeneralPath; /** * Static utility method that creates a round self loop path. - * @param {number} sx The x coordinate of the source port. - * @param {number} sy The y coordinate of the source port. - * @param {number} oppositeX The x coordinate of the single control point. - * @param {number} oppositeY The y coordinate of the single control point. - * @param {number} tx The x coordinate of the target port. - * @param {number} ty The y coordinate of the target port. - * @returns {yfiles.geometry.GeneralPath} A path that describes a round self loop. + * @param sx The x coordinate of the source port. + * @param sy The y coordinate of the source port. + * @param oppositeX The x coordinate of the single control point. + * @param oppositeY The y coordinate of the single control point. + * @param tx The x coordinate of the target port. + * @param ty The y coordinate of the target port. + * @returns A path that describes a round self loop. * @see yfiles.styles.PathBasedEdgeStyleRenderer.#createSelfLoopPath * @protected * @static @@ -67909,15 +67910,15 @@ declare namespace system{ static createRoundSelfLoop(sx:number,sy:number,oppositeX:number,oppositeY:number,tx:number,ty:number):yfiles.geometry.GeneralPath; /** * Special implementation that will create a self loop path. - * @param {boolean} roundSelfLoop - * @returns {yfiles.geometry.GeneralPath} + * @param roundSelfLoop + * @returns * @protected */ createSelfLoopPath(roundSelfLoop:boolean):yfiles.geometry.GeneralPath; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** @@ -67926,22 +67927,22 @@ declare namespace system{ * This implementation uses the {@link yfiles.styles.IEdgePathCropper} instances found in the {@link yfiles.graph.ILookup#lookup} of the * source and target port of the edge to perform the actual cropping. *

    - * @param {yfiles.geometry.GeneralPath} path The path that should be cropped. - * @returns {yfiles.geometry.GeneralPath} The cropped path. This is can be either the same instance of the given path or a newly created instance. + * @param path The path that should be cropped. + * @returns The cropped path. This is can be either the same instance of the given path or a newly created instance. * @protected */ cropPath(path:yfiles.geometry.GeneralPath):yfiles.geometry.GeneralPath; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and edge parameters, calls {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} and returns this. - * @param {yfiles.graph.IEdge} edge The edge to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#edge} property. - * @param {yfiles.styles.IEdgeStyle} style The style to associate with the edge. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param edge The edge to retrieve the bounds provider for. The value will be stored in the {@link #edge} property. + * @param style The style to associate with the edge. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getBounds */ getBoundsProvider(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.view.IBoundsProvider; @@ -67951,7 +67952,7 @@ declare namespace system{ * The return value of this method (which may be null) will be passed to the {@link yfiles.view.BridgeManager}'s {@link yfiles.view.BridgeManager#addBridges} * method. *

    - * @returns {yfiles.view.IBridgeCreator} This implementation returns null. + * @returns This implementation returns null. * @protected */ getBridgeCreator():yfiles.view.IBridgeCreator; @@ -67962,9 +67963,9 @@ declare namespace system{ * the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#lookup} method call they should call {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} only if needed, i.e. if they decide to return this or an instance * that depends on a correctly configured this. *

    - * @param {yfiles.graph.IEdge} edge The edge to query the context for. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#edge} property. - * @param {yfiles.styles.IEdgeStyle} style The style to associate with the edge. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#style} property. - * @returns {yfiles.graph.ILookup} this + * @param edge The edge to query the context for. The value will be stored in the {@link #edge} property. + * @param style The style to associate with the edge. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PathBasedEdgeStyleRenderer.#lookup */ getContext(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.graph.ILookup; @@ -67974,9 +67975,9 @@ declare namespace system{ * This implementation does not call {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure}. If subclasses depend on a configured instance in an override of {@link yfiles.styles.PathBasedEdgeStyleRenderer.#isHit}, * they need to override this method, too and call {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} if the base call returns a non-null value. *

    - * @param {yfiles.graph.IEdge} edge - * @param {yfiles.styles.IEdgeStyle} style - * @returns {yfiles.input.IHitTestable} + * @param edge + * @param style + * @returns * @see yfiles.styles.PathBasedEdgeStyleRenderer.#isHit * @see yfiles.styles.PathBasedEdgeStyleRenderer.#configure * @see yfiles.styles.IEdgeStyleRenderer#getHitTestable @@ -67984,30 +67985,30 @@ declare namespace system{ getHitTestable(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.input.IHitTestable; /** * Configures the style and edge parameters, calls {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} and returns this. - * @param {yfiles.graph.IEdge} edge The edge to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#edge} property. - * @param {yfiles.styles.IEdgeStyle} style The style to associate with the edge. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param edge The edge to query marquee intersection tests. The value will be stored in the {@link #edge} property. + * @param style The style to associate with the edge. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PathBasedEdgeStyleRenderer.#isInBox */ getMarqueeTestable(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.input.IMarqueeTestable; /** * Returns {@link yfiles.styles.PathBasedEdgeStyleRenderer.#createPath} unless {@link yfiles.styles.PathBasedEdgeStyleRenderer.#isVisible} yields false for the provided context and {@link yfiles.view.IRenderContext#clip}. - * @param {yfiles.view.IRenderContext} context The context to yield the obstacles for. - * @returns {yfiles.geometry.GeneralPath} Either null or the result of {@link yfiles.styles.PathBasedEdgeStyleRenderer.#createPath}. + * @param context The context to yield the obstacles for. + * @returns Either null or the result of {@link #createPath}. * @see yfiles.view.IObstacleProvider */ getObstacles(context:yfiles.view.IRenderContext):yfiles.geometry.GeneralPath; /** * - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getPath():yfiles.geometry.GeneralPath; /** * Gets an implementation of the {@link yfiles.styles.IPathGeometry} interface that can handle the provided edge and its associated * style. - * @param {yfiles.graph.IEdge} edge The edge to provide an instance for - * @param {yfiles.styles.IEdgeStyle} style The style to use for the painting - * @returns {yfiles.styles.IPathGeometry} this + * @param edge The edge to provide an instance for + * @param style The style to use for the painting + * @returns this * @see yfiles.styles.PathBasedEdgeStyleRenderer.#configure * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getTangent * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getTangent @@ -68021,7 +68022,7 @@ declare namespace system{ * This method is part of the {@link yfiles.styles.IPathGeometry} interface, that is implemented by this class. This interface will * be returned by {@link yfiles.styles.PathBasedEdgeStyleRenderer.#getPathGeometry}. *

    - * @returns {number} the number of segments or -1 if there is no such thing as a segment for this edge. + * @returns the number of segments or -1 if there is no such thing as a segment for this edge. * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getPathGeometry * @abstract */ @@ -68031,27 +68032,27 @@ declare namespace system{ *

    * This implementation returns 0.0d, which effectively turns off path smoothing. *

    - * @returns {number} The radius of the arcs to use at the bends of the path. + * @returns The radius of the arcs to use at the bends of the path. * @protected */ getSmoothingLength():number; /** * Gets the source arrow from the style. - * @returns {yfiles.styles.IArrow} The arrow to use. + * @returns The arrow to use. * @protected * @abstract */ getSourceArrow():yfiles.styles.IArrow; /** * Calculate and update the anchor and the source arrow's direction vector. - * @param {yfiles.styles.IArrow} arrow The arrow to calculate the anchor for. - * @returns {yfiles.geometry.Tangent} The anchor and directional vector of the arrow, if any exist. + * @param arrow The arrow to calculate the anchor for. + * @returns The anchor and directional vector of the arrow, if any exist. * @protected */ getSourceArrowAnchor(arrow:yfiles.styles.IArrow):yfiles.geometry.Tangent; /** * Gets the {@link yfiles.view.Stroke} to use to render the path. - * @returns {yfiles.view.Stroke} The {@link yfiles.view.Stroke} or null. + * @returns The {@link } or null. * @protected * @abstract */ @@ -68062,9 +68063,9 @@ declare namespace system{ * This method is part of the {@link yfiles.styles.IPathGeometry} interface, that is implemented by this class. This interface will * be returned by {@link yfiles.styles.PathBasedEdgeStyleRenderer.#getPathGeometry}. *

    - * @param {number} segmentIndex the segment to use for the calculation - * @param {number} ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the segment - * @returns {yfiles.geometry.Tangent} The tangential line, if any exists. + * @param segmentIndex the segment to use for the calculation + * @param ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the segment + * @returns The tangential line, if any exists. * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getTangent * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getSegmentCount * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getPathGeometry @@ -68077,23 +68078,23 @@ declare namespace system{ * This method is part of the {@link yfiles.styles.IPathGeometry} interface, that is implemented by this class. This interface will * be returned by {@link yfiles.styles.PathBasedEdgeStyleRenderer.#getPathGeometry}. *

    - * @param {number} ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the visible edge path - * @returns {yfiles.geometry.Tangent} The tangential line, if any exists. + * @param ratio a value in [0,1] where 0 is the source's end and 1 is at the target's end of the visible edge path + * @returns The tangential line, if any exists. * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getPathGeometry * @abstract */ getTangent(ratio:number):yfiles.geometry.Tangent; /** * Gets the target arrow from the style. - * @returns {yfiles.styles.IArrow} The arrow to use. + * @returns The arrow to use. * @protected * @abstract */ getTargetArrow():yfiles.styles.IArrow; /** * Calculate and update the anchor and the target arrow's direction vector. - * @param {yfiles.styles.IArrow} arrow The arrow to calculate the anchor for. - * @returns {yfiles.geometry.Tangent} The anchor and directional vector of the arrow, if any exist. + * @param arrow The arrow to calculate the anchor for. + * @returns The anchor and directional vector of the arrow, if any exist. * @protected */ getTargetArrowAnchor(arrow:yfiles.styles.IArrow):yfiles.geometry.Tangent; @@ -68103,17 +68104,17 @@ declare namespace system{ * Unlike most of the other methods this implementation does not call {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure}. If the subclass implementation depends on * this instance to be configured, it needs to call Configure in {@link yfiles.styles.PathBasedEdgeStyleRenderer.#isVisible}. *

    - * @param {yfiles.graph.IEdge} edge The edge to query visibility tests. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#edge} property. - * @param {yfiles.styles.IEdgeStyle} style The style to associate with the edge. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param edge The edge to query visibility tests. The value will be stored in the {@link #edge} property. + * @param style The style to associate with the edge. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PathBasedEdgeStyleRenderer.#isVisible */ getVisibilityTestable(edge:yfiles.graph.IEdge,style:yfiles.styles.IEdgeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and edge parameters, calls {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} and returns this. - * @param {yfiles.graph.IEdge} edge The edge to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#edge} property. - * @param {yfiles.styles.IEdgeStyle} style The style to associate with the edge. The value will be stored in the {@link yfiles.styles.PathBasedEdgeStyleRenderer.#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param edge The edge to retrieve the {@link } for. The value will be stored in the {@link #edge} property. + * @param style The style to associate with the edge. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PathBasedEdgeStyleRenderer.#createVisual * @see yfiles.styles.PathBasedEdgeStyleRenderer.#updateVisual */ @@ -68128,18 +68129,18 @@ declare namespace system{ * Subclasses should not depend on the fact that {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} has already been called. This may not be the case. If your * subclass depends on Configure being called, override {@link yfiles.styles.PathBasedEdgeStyleRenderer.#getHitTestable} and call {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} after the base class call. *

    - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getHitTestable * @see yfiles.styles.PathBasedEdgeStyleRenderer.#configure */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -68148,23 +68149,23 @@ declare namespace system{ * This simple implementation uses {@link yfiles.styles.PathBasedEdgeStyleRenderer.#getBounds} to determine the visibility. Subclasses may choose to override this behavior * for improved performance but need to make sure to call {@link yfiles.styles.PathBasedEdgeStyleRenderer.#configure} if they depend on a configured instance. *

    - * @param {yfiles.view.ICanvasContext} context the current canvas context - * @param {yfiles.geometry.Rect} rectangle the clip bounds - * @returns {boolean} true if the edge may be painted within the clip bounds. + * @param context the current canvas context + * @param rectangle the clip bounds + * @returns true if the edge may be painted within the clip bounds. * @see yfiles.styles.PathBasedEdgeStyleRenderer.#getVisibilityTestable */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -68201,7 +68202,7 @@ declare namespace system{ } /** * An {@link yfiles.styles.IEdgeStyleRenderer} that will render {@link yfiles.styles.PolylineEdgeStyle} instances. - * @class yfiles.styles.PolylineEdgeStyleRenderer + * @class * @extends {yfiles.styles.PathBasedEdgeStyleRenderer.} */ export interface PolylineEdgeStyleRenderer extends yfiles.styles.PathBasedEdgeStyleRenderer{} @@ -68211,21 +68212,20 @@ declare namespace system{ } /** * A polygonal {@link yfiles.styles.IEdgeStyle} where straight line segments are used to connect the bends. - * @class yfiles.styles.PolylineEdgeStyle + * @class * @implements {yfiles.styles.IEdgeStyle} */ export interface PolylineEdgeStyle extends Object,yfiles.styles.IEdgeStyle{} export class PolylineEdgeStyle { /** * Creates a new instance using the provided renderer. - * @param {yfiles.styles.PolylineEdgeStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param renderer The custom renderer for this style instance. */ constructor(renderer:yfiles.styles.PolylineEdgeStyleRenderer); /** * Creates a new instance using the provided renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.PolylineEdgeStyleRenderer} options.renderer The custom renderer for this style instance. + * @param options.renderer The custom renderer for this style instance. * @param {yfiles.view.Stroke} options.stroke The {@link yfiles.styles.PolylineEdgeStyle#stroke} for the line. *

    * This option sets the {@link yfiles.styles.PolylineEdgeStyle#stroke} property on the created object. @@ -68242,7 +68242,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.PolylineEdgeStyle#targetArrow} property on the created object. *

    - * @constructor */ constructor(options:{renderer:yfiles.styles.PolylineEdgeStyleRenderer,stroke?:yfiles.view.Stroke,smoothingLength?:number,sourceArrow?:yfiles.styles.IArrow,targetArrow?:yfiles.styles.IArrow}); /** @@ -68264,12 +68263,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.PolylineEdgeStyle#targetArrow} property on the created object. *

    - * @constructor */ constructor(options?:{stroke?:yfiles.view.Stroke,smoothingLength?:number,sourceArrow?:yfiles.styles.IArrow,targetArrow?:yfiles.styles.IArrow}); /** * Performs a {@link Object#memberwiseClone} - * @returns {Object} + * @returns */ clone():Object; /** @@ -68402,7 +68400,7 @@ declare namespace system{ } /** * Default renderer implementation that can be used for {@link yfiles.styles.ShapeNodeStyle} instances. - * @class yfiles.styles.ShapeNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -68430,8 +68428,8 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** @@ -68439,15 +68437,15 @@ declare namespace system{ *

    * This implementation simply sets the {@link yfiles.styles.ShapeNodeStyleRenderer#layout}'s bounds to the scratch variable and returns. *

    - * @param {yfiles.view.ICanvasContext} context the context to calculate the bounds for - * @returns {yfiles.geometry.Rect} the bounds or null to indicate an unbound area + * @param context the context to calculate the bounds for + * @returns the bounds or null to indicate an unbound area */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShapeNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param node The node to retrieve the bounds provider for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShapeNodeStyleRenderer#getBounds */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; @@ -68458,9 +68456,9 @@ declare namespace system{ * instead subclasses should ensure that in the {@link yfiles.styles.ShapeNodeStyleRenderer#lookup} method call they should call {@link yfiles.styles.ShapeNodeStyleRenderer#configure} * only if needed, i.e. if they decide to return this or an instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShapeNodeStyleRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; @@ -68469,36 +68467,36 @@ declare namespace system{ *

    * This implementation retrieves the brush from the owning style *

    - * @returns {yfiles.view.Fill} The brush that is currently used by this renderer. + * @returns The brush that is currently used by this renderer. * @protected */ getFill():yfiles.view.Fill; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShapeNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query hit test with. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param node The node to query hit test with. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShapeNodeStyleRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param inner + * @param outer + * @returns */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShapeNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param node The node to query marquee intersection tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShapeNodeStyleRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getOutline():yfiles.geometry.GeneralPath; /** @@ -68506,15 +68504,15 @@ declare namespace system{ *

    * This implementation retrieves the shape from the owning style *

    - * @returns {yfiles.styles.ShapeNodeShape} The shape that is currently used by this renderer. + * @returns The shape that is currently used by this renderer. * @protected */ getShape():yfiles.styles.ShapeNodeShape; /** * Configures the {@link yfiles.styles.ShapeNodeStyleRenderer#style} and {@link yfiles.styles.ShapeNodeStyleRenderer#node} properties, calls {@link yfiles.styles.ShapeNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the shape geometry for. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#style} property. - * @returns {yfiles.styles.IShapeGeometry} this + * @param node The node to retrieve the shape geometry for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShapeNodeStyleRenderer#isInside * @see yfiles.styles.ShapeNodeStyleRenderer#getIntersection */ @@ -68524,7 +68522,7 @@ declare namespace system{ *

    * This implementation retrieves the {@link yfiles.view.Stroke} from the owning style *

    - * @returns {yfiles.view.Stroke} The {@link yfiles.view.Stroke} that is currently used by this renderer. + * @returns The {@link } that is currently used by this renderer. * @protected */ getStroke():yfiles.view.Stroke; @@ -68535,26 +68533,26 @@ declare namespace system{ * subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.ShapeNodeStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShapeNodeStyleRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShapeNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShapeNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShapeNodeStyleRenderer#createVisual * @see yfiles.styles.ShapeNodeStyleRenderer#updateVisual */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** @@ -68562,22 +68560,22 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.styles.ShapeNodeStyleRenderer#layout} to determine whether the node is in the box. *

    - * @param {yfiles.input.IInputModeContext} context the current input mode context - * @param {yfiles.geometry.Rect} rectangle the box describing the marquee's bounds - * @returns {boolean} true if the node is considered to be captured by the marquee + * @param context the current input mode context + * @param rectangle the box describing the marquee's bounds + * @returns true if the node is considered to be captured by the marquee */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param location + * @returns */ isInside(location:yfiles.geometry.Point):boolean; /** * Determines visibility by checking for an intersection with the {@link yfiles.styles.ShapeNodeStyleRenderer#layout}. - * @param {yfiles.view.ICanvasContext} context The context. - * @param {yfiles.geometry.Rect} rectangle The current clip - * @returns {boolean} Whether the {@link yfiles.styles.ShapeNodeStyleRenderer#layout} is visible in the clip. + * @param context The context. + * @param rectangle The current clip + * @returns Whether the {@link #layout} is visible in the clip. */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -68590,15 +68588,15 @@ declare namespace system{ * This implementation will check if type.IsInstanceOfType(this) and will call {@link yfiles.styles.ShapeNodeStyleRenderer#configure} * on success and return this. *

    - * @param {yfiles.lang.Class} type The type to query for. - * @returns {Object} An implementation or null. + * @param type The type to query for. + * @returns An implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -68633,21 +68631,20 @@ declare namespace system{ *

    * This style can be used together with {@link yfiles.styles.ShapeNodeStyleRenderer} instances. *

    - * @class yfiles.styles.ShapeNodeStyle + * @class * @implements {yfiles.styles.INodeStyle} */ export interface ShapeNodeStyle extends Object,yfiles.styles.INodeStyle{} export class ShapeNodeStyle { /** * Creates a new instance using the provided renderer. - * @param {yfiles.styles.ShapeNodeStyleRenderer} renderer Custom renderer instance for this style. - * @constructor + * @param renderer Custom renderer instance for this style. */ constructor(renderer:yfiles.styles.ShapeNodeStyleRenderer); /** * Creates a new instance using the provided renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.ShapeNodeStyleRenderer} options.renderer Custom renderer instance for this style. + * @param options.renderer Custom renderer instance for this style. * @param {yfiles.view.Fill} options.fill The {@link yfiles.styles.ShapeNodeStyle#fill} for this style. *

    * This option sets the {@link yfiles.styles.ShapeNodeStyle#fill} property on the created object. @@ -68660,7 +68657,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.ShapeNodeStyle#shape} property on the created object. *

    - * @constructor */ constructor(options:{renderer:yfiles.styles.ShapeNodeStyleRenderer,fill?:yfiles.view.Fill,stroke?:yfiles.view.Stroke,shape?:yfiles.styles.ShapeNodeShape}); /** @@ -68678,12 +68674,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.ShapeNodeStyle#shape} property on the created object. *

    - * @constructor */ constructor(options?:{fill?:yfiles.view.Fill,stroke?:yfiles.view.Stroke,shape?:yfiles.styles.ShapeNodeShape}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -68709,7 +68704,7 @@ declare namespace system{ *

    * The default value is {@link yfiles.styles.ShapeNodeShape#RECTANGLE}. *

    - * @default 0 + * @default yfiles.styles.ShapeNodeShape.RECTANGLE * @type {yfiles.styles.ShapeNodeShape} */ shape:yfiles.styles.ShapeNodeShape; @@ -68722,7 +68717,7 @@ declare namespace system{ } /** * Default renderer implementation for {@link yfiles.styles.ArcEdgeStyle} - * @class yfiles.styles.ArcEdgeStyleRenderer + * @class * @extends {yfiles.styles.PathBasedEdgeStyleRenderer.} */ export interface ArcEdgeStyleRenderer extends yfiles.styles.PathBasedEdgeStyleRenderer{} @@ -68730,13 +68725,13 @@ declare namespace system{ constructor(); /** * Retrieves the {@link yfiles.styles.ArcEdgeStyle#height} of the style. - * @returns {number} the height. + * @returns the height. */ getHeight():number; /** * Gets a value indicating whether this {@link yfiles.styles.ArcEdgeStyleRenderer#getHeight} should be interpreted as an absolute * or relative value. - * @returns {boolean} true if the height value should be interpreted as a fixed value, otherwise, false. + * @returns true if the height value should be interpreted as a fixed value, otherwise, false. * @see yfiles.styles.ArcEdgeStyleRenderer#getHeight */ isFixedHeight():boolean; @@ -68757,21 +68752,20 @@ declare namespace system{ *

    * This style uses an {@link yfiles.styles.ArcEdgeStyleRenderer} for its visualization. *

    - * @class yfiles.styles.ArcEdgeStyle + * @class * @implements {yfiles.styles.IEdgeStyle} */ export interface ArcEdgeStyle extends Object,yfiles.styles.IEdgeStyle{} export class ArcEdgeStyle { /** * Creates a new instance using the provided renderer. - * @param {yfiles.styles.ArcEdgeStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param renderer The custom renderer for this style instance. */ constructor(renderer:yfiles.styles.ArcEdgeStyleRenderer); /** * Creates a new instance using the provided renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.ArcEdgeStyleRenderer} options.renderer The custom renderer for this style instance. + * @param options.renderer The custom renderer for this style instance. * @param {boolean} options.fixedHeight A value indicating whether this {@link yfiles.styles.ArcEdgeStyle} interprets the {@link yfiles.styles.ArcEdgeStyle#height} value as an absolute or relative value. *

    * This option sets the {@link yfiles.styles.ArcEdgeStyle#fixedHeight} property on the created object. @@ -68796,7 +68790,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.ArcEdgeStyle#targetArrow} property on the created object. *

    - * @constructor */ constructor(options:{renderer:yfiles.styles.ArcEdgeStyleRenderer,fixedHeight?:boolean,height?:number,stroke?:yfiles.view.Stroke,provideHeightHandle?:boolean,sourceArrow?:yfiles.styles.IArrow,targetArrow?:yfiles.styles.IArrow}); /** @@ -68826,12 +68819,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.ArcEdgeStyle#targetArrow} property on the created object. *

    - * @constructor */ constructor(options?:{fixedHeight?:boolean,height?:number,stroke?:yfiles.view.Stroke,provideHeightHandle?:boolean,sourceArrow?:yfiles.styles.IArrow,targetArrow?:yfiles.styles.IArrow}); /** * Performs a {@link Object#memberwiseClone} - * @returns {Object} + * @returns */ clone():Object; /** @@ -68912,7 +68904,7 @@ declare namespace system{ /** * A {@link yfiles.styles.INodeStyle} {@link yfiles.styles.INodeStyleRenderer renderer} implementation that draws a rounded rectangle with a bevel border in a 'shiny plate' * fashion. - * @class yfiles.styles.BevelNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -68939,8 +68931,8 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** @@ -68948,15 +68940,15 @@ declare namespace system{ *

    * This implementation simply sets the {@link yfiles.styles.BevelNodeStyleRenderer#layout}'s bounds to the scratch variable and returns. *

    - * @param {yfiles.view.ICanvasContext} context the context to calculate the bounds for - * @returns {yfiles.geometry.Rect} the bounds or null to indicate an unbound area + * @param context the context to calculate the bounds for + * @returns the bounds or null to indicate an unbound area */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and node parameters, calls {@link yfiles.styles.BevelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param node The node to retrieve the bounds provider for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.BevelNodeStyleRenderer#getBounds */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; @@ -68967,45 +68959,45 @@ declare namespace system{ * instead subclasses should ensure that in the {@link yfiles.styles.BevelNodeStyleRenderer#lookup} method call they should call {@link yfiles.styles.BevelNodeStyleRenderer#configure} * only if needed, i.e. if they decide to return this or an instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.BevelNodeStyleRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Configures the style and node parameters, calls {@link yfiles.styles.BevelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query hit test with. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param node The node to query hit test with. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.BevelNodeStyleRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param inner + * @param outer + * @returns */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Configures the style and node parameters, calls {@link yfiles.styles.BevelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param node The node to query marquee intersection tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.BevelNodeStyleRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getOutline():yfiles.geometry.GeneralPath; /** * Configures the {@link yfiles.styles.BevelNodeStyleRenderer#style} and {@link yfiles.styles.BevelNodeStyleRenderer#node} properties, calls {@link yfiles.styles.BevelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the shape geometry for. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#style} property. - * @returns {yfiles.styles.IShapeGeometry} this + * @param node The node to retrieve the shape geometry for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.BevelNodeStyleRenderer#isInside * @see yfiles.styles.BevelNodeStyleRenderer#getIntersection */ @@ -69017,26 +69009,26 @@ declare namespace system{ * subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.BevelNodeStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.BevelNodeStyleRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.BevelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.BevelNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.BevelNodeStyleRenderer#createVisual * @see yfiles.styles.BevelNodeStyleRenderer#updateVisual */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** @@ -69044,35 +69036,35 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.styles.BevelNodeStyleRenderer#layout} to determine whether the node is in the box. *

    - * @param {yfiles.input.IInputModeContext} context the current input mode context - * @param {yfiles.geometry.Rect} rectangle the box describing the marquee's bounds - * @returns {boolean} true if the node is considered to be captured by the marquee + * @param context the current input mode context + * @param rectangle the box describing the marquee's bounds + * @returns true if the node is considered to be captured by the marquee */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param location + * @returns */ isInside(location:yfiles.geometry.Point):boolean; /** * Determines visibility by checking for an intersection with the {@link yfiles.styles.BevelNodeStyleRenderer#layout}. - * @param {yfiles.view.ICanvasContext} context The context. - * @param {yfiles.geometry.Rect} rectangle The current clip - * @returns {boolean} Whether the {@link yfiles.styles.BevelNodeStyleRenderer#layout} is visible in the clip. + * @param context The context. + * @param rectangle The current clip + * @returns Whether the {@link #layout} is visible in the clip. */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -69136,21 +69128,20 @@ declare namespace system{ * This style uses the {@link yfiles.styles.BevelNodeStyleRenderer} to visualize a node. *

    * @see yfiles.styles.BevelNodeStyleRenderer - * @class yfiles.styles.BevelNodeStyle + * @class * @implements {yfiles.styles.INodeStyle} */ export interface BevelNodeStyle extends Object,yfiles.styles.INodeStyle{} export class BevelNodeStyle { /** * Creates a new instance using the provided renderer to share. - * @param {yfiles.styles.BevelNodeStyleRenderer} renderer - * @constructor + * @param renderer */ constructor(renderer:yfiles.styles.BevelNodeStyleRenderer); /** * Creates a new instance using the provided renderer to share. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.BevelNodeStyleRenderer} options.renderer + * @param options.renderer * @param {yfiles.view.Color} options.color The base color to use. *

    * This option sets the {@link yfiles.styles.BevelNodeStyle#color} property on the created object. @@ -69167,7 +69158,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.BevelNodeStyle#radius} property on the created object. *

    - * @constructor */ constructor(options:{renderer:yfiles.styles.BevelNodeStyleRenderer,color?:yfiles.view.Color,drawShadow?:boolean,inset?:number,radius?:number}); /** @@ -69189,12 +69179,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.BevelNodeStyle#radius} property on the created object. *

    - * @constructor */ constructor(options?:{color?:yfiles.view.Color,drawShadow?:boolean,inset?:number,radius?:number}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -69240,7 +69229,7 @@ declare namespace system{ } /** * A style renderer implementation that can be used together with {@link yfiles.styles.ImageNodeStyle} instances. - * @class yfiles.styles.ImageNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -69268,8 +69257,8 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** @@ -69277,15 +69266,15 @@ declare namespace system{ *

    * This implementation simply sets the {@link yfiles.styles.ImageNodeStyleRenderer#layout}'s bounds to the scratch variable and returns. *

    - * @param {yfiles.view.ICanvasContext} context the context to calculate the bounds for - * @returns {yfiles.geometry.Rect} the bounds or null to indicate an unbound area + * @param context the context to calculate the bounds for + * @returns the bounds or null to indicate an unbound area */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and node parameters, calls {@link yfiles.styles.ImageNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param node The node to retrieve the bounds provider for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ImageNodeStyleRenderer#getBounds */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; @@ -69296,63 +69285,63 @@ declare namespace system{ * instead subclasses should ensure that in the {@link yfiles.styles.ImageNodeStyleRenderer#lookup} method call they should call {@link yfiles.styles.ImageNodeStyleRenderer#configure} * only if needed, i.e. if they decide to return this or an instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ImageNodeStyleRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Get the style's fallback image. - * @returns {string} + * @returns * @protected */ getFallbackImage():string; /** * Configures the style and node parameters, calls {@link yfiles.styles.ImageNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query hit test with. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param node The node to query hit test with. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ImageNodeStyleRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * Get the image that is currently used to render the style. - * @returns {string} + * @returns * @protected */ getImage():string; /** * Tries to use the {@link yfiles.styles.ImageNodeStyle#normalizedOutline} to perform the intersection calculation, otherwise reverts to default (rectangular) behavior. - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param inner + * @param outer + * @returns */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Configures the style and node parameters, calls {@link yfiles.styles.ImageNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param node The node to query marquee intersection tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ImageNodeStyleRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * Tries to use the {@link yfiles.styles.ImageNodeStyle#normalizedOutline} to create the outline shape path, otherwise reverts to default (rectangular) behavior. - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getOutline():yfiles.geometry.GeneralPath; /** * Gets the value that determines whether the aspect ratio of the image should be preserved. - * @returns {boolean} false + * @returns false * @protected */ getPreserveAspectRatio():boolean; /** * Configures the {@link yfiles.styles.ImageNodeStyleRenderer#style} and {@link yfiles.styles.ImageNodeStyleRenderer#node} properties, calls {@link yfiles.styles.ImageNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the shape geometry for. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#style} property. - * @returns {yfiles.styles.IShapeGeometry} this + * @param node The node to retrieve the shape geometry for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ImageNodeStyleRenderer#isInside * @see yfiles.styles.ImageNodeStyleRenderer#getIntersection */ @@ -69364,46 +69353,46 @@ declare namespace system{ * subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.ImageNodeStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ImageNodeStyleRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.ImageNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ImageNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ImageNodeStyleRenderer#createVisual * @see yfiles.styles.ImageNodeStyleRenderer#updateVisual */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** * Tries to use {@link yfiles.styles.ImageNodeStyle#normalizedOutline} to perform the hit test analysis, otherwise reverts to default (rectangular) behavior. - * @param {yfiles.input.IInputModeContext} context the context the hit test is performed in - * @param {yfiles.geometry.Point} location the coordinates in world coordinate system - * @returns {boolean} whether something has been hit + * @param context the context the hit test is performed in + * @param location the coordinates in world coordinate system + * @returns whether something has been hit */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * Tries to use the {@link yfiles.styles.ImageNodeStyle#normalizedOutline} to perform the marquee intersection analysis, otherwise reverts to default (rectangular) behavior. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * Tries to use the {@link yfiles.styles.ImageNodeStyle#normalizedOutline} to perform the contains test, otherwise reverts to default (rectangular) behavior. - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param location + * @returns */ isInside(location:yfiles.geometry.Point):boolean; /** * Determines visibility by checking for an intersection with the {@link yfiles.styles.ImageNodeStyleRenderer#layout}. - * @param {yfiles.view.ICanvasContext} context The context. - * @param {yfiles.geometry.Rect} rectangle The current clip - * @returns {boolean} Whether the {@link yfiles.styles.ImageNodeStyleRenderer#layout} is visible in the clip. + * @param context The context. + * @param rectangle The current clip + * @returns Whether the {@link #layout} is visible in the clip. */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -69416,15 +69405,15 @@ declare namespace system{ * This implementation will check if type.IsInstanceOfType(this) and will call {@link yfiles.styles.ImageNodeStyleRenderer#configure} * on success and return this. *

    - * @param {yfiles.lang.Class} type The type to query for. - * @returns {Object} An implementation or null. + * @param type The type to query for. + * @returns An implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -69462,30 +69451,28 @@ declare namespace system{ *

    * This style can be used together with {@link yfiles.styles.ImageNodeStyleRenderer} instances. *

    - * @class yfiles.styles.ImageNodeStyle + * @class * @implements {yfiles.styles.INodeStyle} */ export interface ImageNodeStyle extends Object,yfiles.styles.INodeStyle{} export class ImageNodeStyle { /** * Creates a new instance that uses the specified image and a custom renderer instance. - * @param {string} image The image. - * @param {string} [fallbackImage=null] The fallback image. - * @param {yfiles.styles.ImageNodeStyleRenderer} [renderer=null] The renderer for this instance - * @constructor + * @param image The image. + * @param [fallbackImage=null] The fallback image. + * @param [renderer=null] The renderer for this instance */ constructor(image:string,fallbackImage?:string,renderer?:yfiles.styles.ImageNodeStyleRenderer); /** * Creates a new instance that uses the specified image and a custom renderer instance. * @param {Object} options The parameters to pass. - * @param {string} options.image The image. - * @param {string} [options.fallbackImage=null] The fallback image. - * @param {yfiles.styles.ImageNodeStyleRenderer} [options.renderer=null] The renderer for this instance + * @param options.image The image. + * @param [options.fallbackImage=null] The fallback image. + * @param [options.renderer=null] The renderer for this instance * @param {yfiles.geometry.GeneralPath} options.normalizedOutline The normalized outline of the image that will be displayed. *

    * This option sets the {@link yfiles.styles.ImageNodeStyle#normalizedOutline} property on the created object. *

    - * @constructor */ constructor(options:{image:string,fallbackImage?:string,renderer?:yfiles.styles.ImageNodeStyleRenderer,normalizedOutline?:yfiles.geometry.GeneralPath}); /** @@ -69500,7 +69487,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.ImageNodeStyle#normalizedOutline} property on the created object. *

    - * @constructor */ constructor(options?:{fallbackImage?:string,image?:string,normalizedOutline?:yfiles.geometry.GeneralPath}); /** @@ -69508,7 +69494,7 @@ declare namespace system{ *

    * If clients need to have a deep copy of this instance, they need to manually clone and reassign the {@link yfiles.styles.ImageNodeStyle#image} to the clone. *

    - * @returns {Object} A shallow copy of this instance. + * @returns A shallow copy of this instance. */ clone():Object; /** @@ -69556,21 +69542,20 @@ declare namespace system{ * This style uses the {@link yfiles.styles.PanelNodeStyleRenderer} to visualize a node. *

    * @see yfiles.styles.PanelNodeStyleRenderer - * @class yfiles.styles.PanelNodeStyle + * @class * @implements {yfiles.styles.INodeStyle} */ export interface PanelNodeStyle extends Object,yfiles.styles.INodeStyle{} export class PanelNodeStyle { /** * Creates a new instance using the provided renderer to share. - * @param {yfiles.styles.PanelNodeStyleRenderer} renderer - * @constructor + * @param renderer */ constructor(renderer:yfiles.styles.PanelNodeStyleRenderer); /** * Creates a new instance using the provided renderer to share. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.PanelNodeStyleRenderer} options.renderer + * @param options.renderer * @param {yfiles.view.Color} options.color The base color to use. *

    * This option sets the {@link yfiles.styles.PanelNodeStyle#color} property on the created object. @@ -69583,7 +69568,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.PanelNodeStyle#labelInsetsColor} property on the created object. *

    - * @constructor */ constructor(options:{renderer:yfiles.styles.PanelNodeStyleRenderer,color?:yfiles.view.Color,insets?:yfiles.geometry.Insets,labelInsetsColor?:yfiles.view.Color}); /** @@ -69601,12 +69585,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.PanelNodeStyle#labelInsetsColor} property on the created object. *

    - * @constructor */ constructor(options?:{color?:yfiles.view.Color,insets?:yfiles.geometry.Insets,labelInsetsColor?:yfiles.view.Color}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -69655,7 +69638,7 @@ declare namespace system{ * A {@link yfiles.styles.INodeStyle} {@link yfiles.styles.INodeStyleRenderer renderer} implementation that draws a simple floating panel with a slight gradient, a thin * border and a simple drop shadow. * @see yfiles.styles.PanelNodeStyle - * @class yfiles.styles.PanelNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -69669,7 +69652,6 @@ declare namespace system{ export class PanelNodeStyleRenderer { /** * The style that it currently assigned to this renderer instance. - * @constructor */ constructor(); /** @@ -69687,27 +69669,27 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * Determines whether to draw the drop shadow. - * @returns {boolean} true, always. + * @returns true, always. * @protected */ drawShadow():boolean; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and node parameters, calls {@link yfiles.styles.PanelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param node The node to retrieve the bounds provider for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PanelNodeStyleRenderer#getBounds */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; @@ -69718,17 +69700,17 @@ declare namespace system{ * instead subclasses should ensure that in the {@link yfiles.styles.PanelNodeStyleRenderer#lookup} method call they should call {@link yfiles.styles.PanelNodeStyleRenderer#configure} * only if needed, i.e. if they decide to return this or an instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PanelNodeStyleRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Configures the style and node parameters, calls {@link yfiles.styles.PanelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query hit test with. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param node The node to query hit test with. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PanelNodeStyleRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; @@ -69737,29 +69719,29 @@ declare namespace system{ *

    * This implementation returns the intersection for the {@link yfiles.styles.PanelNodeStyleRenderer#layout}. *

    - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} True if an intersection was actually found + * @param inner + * @param outer + * @returns True if an intersection was actually found */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Configures the style and node parameters, calls {@link yfiles.styles.PanelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param node The node to query marquee intersection tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PanelNodeStyleRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * Returns the outline of the shape using the node's {@link yfiles.styles.PanelNodeStyleRenderer#layout}. - * @returns {yfiles.geometry.GeneralPath} The outline of the bounds of the node. + * @returns The outline of the bounds of the node. */ getOutline():yfiles.geometry.GeneralPath; /** * Configures the {@link yfiles.styles.PanelNodeStyleRenderer#style} and {@link yfiles.styles.PanelNodeStyleRenderer#node} properties, calls {@link yfiles.styles.PanelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the shape geometry for. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#style} property. - * @returns {yfiles.styles.IShapeGeometry} this + * @param node The node to retrieve the shape geometry for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PanelNodeStyleRenderer#isInside * @see yfiles.styles.PanelNodeStyleRenderer#getIntersection */ @@ -69771,17 +69753,17 @@ declare namespace system{ * subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.PanelNodeStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PanelNodeStyleRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.PanelNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.PanelNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.PanelNodeStyleRenderer#createVisual * @see yfiles.styles.PanelNodeStyleRenderer#updateVisual */ @@ -69792,9 +69774,9 @@ declare namespace system{ * This implementation uses the {@link yfiles.styles.PanelNodeStyleRenderer#layout} to determine whether the node has been hit. The check is delegated to {@link yfiles.geometry.Rect#containsWithEps} * using {@link yfiles.view.ICanvasContext#hitTestRadius} as the last argument. *

    - * @param {yfiles.input.IInputModeContext} context the context the hit test is performed in - * @param {yfiles.geometry.Point} location the coordinates in world coordinate system - * @returns {boolean} whether something has been hit + * @param context the context the hit test is performed in + * @param location the coordinates in world coordinate system + * @returns whether something has been hit */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** @@ -69802,9 +69784,9 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.styles.PanelNodeStyleRenderer#layout} to determine whether the node is in the box. *

    - * @param {yfiles.input.IInputModeContext} context the current input mode context - * @param {yfiles.geometry.Rect} rectangle the box describing the marquee's bounds - * @returns {boolean} true if the node is considered to be captured by the marquee + * @param context the current input mode context + * @param rectangle the box describing the marquee's bounds + * @returns true if the node is considered to be captured by the marquee */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -69812,28 +69794,28 @@ declare namespace system{ *

    * This implementation checks for containment in the {@link yfiles.styles.PanelNodeStyleRenderer#layout}. *

    - * @param {yfiles.geometry.Point} location - * @returns {boolean} True if the point lies within the geometry of the rendering. + * @param location + * @returns True if the point lies within the geometry of the rendering. */ isInside(location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -69871,7 +69853,7 @@ declare namespace system{ * In this case it might be more appropriate to implement a drop shadow implementation using canvas drawing and displaying * the canvas content using an image element with canvas.toDataURL. *

    - * @class yfiles.styles.ShadowNodeStyleDecorator + * @class * @implements {yfiles.styles.INodeStyle} */ export interface ShadowNodeStyleDecorator extends Object,yfiles.styles.INodeStyle{} @@ -69882,8 +69864,7 @@ declare namespace system{ * The provided instance is used by reference, so subsequent changes to the style will affect the appearance of this * style. *

    - * @param {yfiles.styles.INodeStyle} wrapped The style to wrap. - * @constructor + * @param wrapped The style to wrap. */ constructor(wrapped:yfiles.styles.INodeStyle); /** @@ -69898,12 +69879,11 @@ declare namespace system{ * This option sets the {@link yfiles.styles.ShadowNodeStyleDecorator#wrapped} property on the created object. *

    * @see yfiles.styles.ShadowNodeStyleDecorator#wrapped - * @constructor */ constructor(options?:{wrapped?:yfiles.styles.INodeStyle}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -69928,21 +69908,20 @@ declare namespace system{ * This style uses the {@link yfiles.styles.ShinyPlateNodeStyleRenderer} to visualize a node. *

    * @see yfiles.styles.ShinyPlateNodeStyleRenderer - * @class yfiles.styles.ShinyPlateNodeStyle + * @class * @implements {yfiles.styles.INodeStyle} */ export interface ShinyPlateNodeStyle extends Object,yfiles.styles.INodeStyle{} export class ShinyPlateNodeStyle { /** * Creates a new instance using the provided renderer. - * @param {yfiles.styles.ShinyPlateNodeStyleRenderer} renderer - * @constructor + * @param renderer */ constructor(renderer:yfiles.styles.ShinyPlateNodeStyleRenderer); /** * Creates a new instance using the provided renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.ShinyPlateNodeStyleRenderer} options.renderer + * @param options.renderer * @param {yfiles.view.Fill} options.fill The background brush for this style. *

    * This option sets the {@link yfiles.styles.ShinyPlateNodeStyle#fill} property on the created object. @@ -69963,7 +69942,6 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.ShinyPlateNodeStyle#radius} property on the created object. *

    - * @constructor */ constructor(options:{renderer:yfiles.styles.ShinyPlateNodeStyleRenderer,fill?:yfiles.view.Fill,drawShadow?:boolean,insets?:yfiles.geometry.Insets,stroke?:yfiles.view.Stroke,radius?:number}); /** @@ -69989,12 +69967,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.ShinyPlateNodeStyle#radius} property on the created object. *

    - * @constructor */ constructor(options?:{fill?:yfiles.view.Fill,drawShadow?:boolean,insets?:yfiles.geometry.Insets,stroke?:yfiles.view.Stroke,radius?:number}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -70057,7 +70034,7 @@ declare namespace system{ * A {@link yfiles.styles.INodeStyle} {@link yfiles.styles.INodeStyleRenderer renderer} implementation that draws a simple floating shinyPlate with a slight gradient, a * thin border and a simple drop shadow. * @see yfiles.styles.ShinyPlateNodeStyle - * @class yfiles.styles.ShinyPlateNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -70085,27 +70062,27 @@ declare namespace system{ configure():void; /** * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} + * @param context + * @returns */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * Determines whether to draw the drop shadow. - * @returns {boolean} {@link yfiles.styles.ShinyPlateNodeStyle#drawShadow}. + * @returns {@link #drawShadow}. * @protected */ drawShadow():boolean; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShinyPlateNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param node The node to retrieve the bounds provider for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShinyPlateNodeStyleRenderer#getBounds */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; @@ -70118,45 +70095,45 @@ declare namespace system{ * call {@link yfiles.styles.ShinyPlateNodeStyleRenderer#configure} only if needed, i.e. if they decide to return this or an * instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShinyPlateNodeStyleRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShinyPlateNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query hit test with. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param node The node to query hit test with. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShinyPlateNodeStyleRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param inner + * @param outer + * @returns */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShinyPlateNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param node The node to query marquee intersection tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShinyPlateNodeStyleRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getOutline():yfiles.geometry.GeneralPath; /** * Configures the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} and {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} properties, calls {@link yfiles.styles.ShinyPlateNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the shape geometry for. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} property. - * @returns {yfiles.styles.IShapeGeometry} this + * @param node The node to retrieve the shape geometry for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShinyPlateNodeStyleRenderer#isInside * @see yfiles.styles.ShinyPlateNodeStyleRenderer#getIntersection */ @@ -70169,26 +70146,26 @@ declare namespace system{ * the subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.ShinyPlateNodeStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShinyPlateNodeStyleRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.ShinyPlateNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.ShinyPlateNodeStyleRenderer#createVisual * @see yfiles.styles.ShinyPlateNodeStyleRenderer#updateVisual */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** @@ -70196,35 +70173,35 @@ declare namespace system{ *

    * This implementation uses the {@link yfiles.styles.ShinyPlateNodeStyleRenderer#layout} to determine whether the node is in the box. *

    - * @param {yfiles.input.IInputModeContext} context the current input mode context - * @param {yfiles.geometry.Rect} rectangle the box describing the marquee's bounds - * @returns {boolean} true if the node is considered to be captured by the marquee + * @param context the current input mode context + * @param rectangle the box describing the marquee's bounds + * @returns true if the node is considered to be captured by the marquee */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param location + * @returns */ isInside(location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** * - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param type + * @returns */ lookup(type:yfiles.lang.Class):Object; /** * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} + * @param context + * @param oldVisual + * @returns */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -70267,310 +70244,11 @@ declare namespace system{ radius:number; static $class:yfiles.lang.Class; } - /** - * A {@link yfiles.styles.INodeStyle} for {@link yfiles.graph.ITable tables}. - *

    - * This implementations stores the table instance and therefore, its instances cannot be shared among different table - * instances. - *

    - * @class yfiles.styles.TableNodeStyle - * @implements {yfiles.styles.INodeStyle} - * @implements {yfiles.lang.IPropertyObservable} - */ - export interface TableNodeStyle extends Object,yfiles.styles.INodeStyle,yfiles.lang.IPropertyObservable{} - export class TableNodeStyle { - /** - * Constructor with a custom renderer implementation that uses table as backing table model. - * @param {yfiles.graph.ITable} table The table instance that defines the tabular structure. - * @param {yfiles.styles.TableNodeStyleRenderer} [renderer=null] Custom renderer instance for this style. - * @constructor - */ - constructor(table:yfiles.graph.ITable,renderer?:yfiles.styles.TableNodeStyleRenderer); - /** - * Constructor with a custom renderer implementation that uses table as backing table model. - * @param {Object} options The parameters to pass. - * @param {yfiles.graph.ITable} options.table The table instance that defines the tabular structure. - * @param {yfiles.styles.TableNodeStyleRenderer} [options.renderer=null] Custom renderer instance for this style. - * @param {yfiles.styles.INodeStyle} options.backgroundStyle The style that is used to draw the background of the table - *

    - * This option sets the {@link yfiles.styles.TableNodeStyle#backgroundStyle} property on the created object. - *

    - * @param {yfiles.styles.TableRenderingOrder} options.tableRenderingOrder The order in which rows and columns are rendered. - *

    - * This option sets the {@link yfiles.styles.TableNodeStyle#tableRenderingOrder} property on the created object. - *

    - * @constructor - */ - constructor(options:{table:yfiles.graph.ITable,renderer?:yfiles.styles.TableNodeStyleRenderer,backgroundStyle?:yfiles.styles.INodeStyle,tableRenderingOrder?:yfiles.styles.TableRenderingOrder}); - /** - * Default constructor that creates an empty table. - * @param {Object} [options=null] The parameters to pass. - * @param {yfiles.styles.INodeStyle} options.backgroundStyle The style that is used to draw the background of the table - *

    - * This option sets the {@link yfiles.styles.TableNodeStyle#backgroundStyle} property on the created object. - *

    - * @param {yfiles.graph.ITable} options.table The {@link yfiles.graph.ITable} instance that defines the tabular structure. - *

    - * This option sets the {@link yfiles.styles.TableNodeStyle#table} property on the created object. - *

    - * @param {yfiles.styles.TableRenderingOrder} options.tableRenderingOrder The order in which rows and columns are rendered. - *

    - * This option sets the {@link yfiles.styles.TableNodeStyle#tableRenderingOrder} property on the created object. - *

    - * @constructor - */ - constructor(options?:{backgroundStyle?:yfiles.styles.INodeStyle,table?:yfiles.graph.ITable,tableRenderingOrder?:yfiles.styles.TableRenderingOrder}); - /** - * - * @returns {Object} - */ - clone():Object; - /** - * Create a copy of the background style when this style instance is cloned - * @param {yfiles.styles.INodeStyle} style The original background node style - * @returns {yfiles.styles.INodeStyle} This implementation always returns the original style instance. - * @protected - */ - copyBackgroundStyle(style:yfiles.styles.INodeStyle):yfiles.styles.INodeStyle; - /** - * Create a copy of the table when this style instance is cloned - * @param {yfiles.graph.ITable} table The original table instance - * @returns {yfiles.graph.ITable} This implementation always tries to {@link yfiles.lang.ICloneable#clone} clone the original table instance, if possible, - * otherwise it returns table unchanged. - * @protected - */ - copyTable(table:yfiles.graph.ITable):yfiles.graph.ITable; - /** - * Raises the {@link yfiles.styles.TableNodeStyle#addPropertyChangedListener PropertyChanged} event. - *

    - * Called when the value of the {@link yfiles.styles.TableNodeStyle#table} property changes. - *

    - * @param {yfiles.lang.PropertyChangedEventArgs} evt The {@link yfiles.lang.PropertyChangedEventArgs} instance containing the event data. - * @protected - */ - onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; - /** - * Gets or sets the order in which rows and columns are rendered. - * @default 0 - * @type {yfiles.styles.TableRenderingOrder} - */ - tableRenderingOrder:yfiles.styles.TableRenderingOrder; - /** - * Gets or sets the style that is used to draw the background of the table - * @default 'TableNodeStyle.defaultBackgroundStyle' - * @type {yfiles.styles.INodeStyle} - */ - backgroundStyle:yfiles.styles.INodeStyle; - /** - * Adds the given listener for the PropertyChanged event that occurs when the value of the {@link yfiles.styles.TableNodeStyle#table} property changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. - * @see yfiles.styles.TableNodeStyle#removePropertyChangedListener - */ - addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Removes the given listener for the PropertyChanged event that occurs when the value of the {@link yfiles.styles.TableNodeStyle#table} property changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. - * @see yfiles.styles.TableNodeStyle#addPropertyChangedListener - */ - removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; - /** - * Gets or sets the {@link yfiles.graph.ITable} instance that defines the tabular structure. - * @type {yfiles.graph.ITable} - */ - table:yfiles.graph.ITable; - /** - * - * @type {yfiles.styles.INodeStyleRenderer} - */ - renderer:yfiles.styles.INodeStyleRenderer; - static $class:yfiles.lang.Class; - } - /** - * Default renderer implementation that can be used for {@link yfiles.styles.TableNodeStyle} instances. - * @class yfiles.styles.TableNodeStyleRenderer - * @implements {yfiles.styles.INodeStyleRenderer} - * @implements {yfiles.styles.IShapeGeometry} - * @implements {yfiles.view.IBoundsProvider} - * @implements {yfiles.view.IVisibilityTestable} - * @implements {yfiles.input.IMarqueeTestable} - * @implements {yfiles.input.IHitTestable} - * @implements {yfiles.graph.ILookup} - * @implements {yfiles.view.IVisualCreator} - */ - export interface TableNodeStyleRenderer extends Object,yfiles.styles.INodeStyleRenderer,yfiles.styles.IShapeGeometry,yfiles.view.IBoundsProvider,yfiles.view.IVisibilityTestable,yfiles.input.IMarqueeTestable,yfiles.input.IHitTestable,yfiles.graph.ILookup,yfiles.view.IVisualCreator{} - export class TableNodeStyleRenderer { - /** - * Prepares this instance for subsequent calls after the style and node have been initialized. - *

    - * Upon invocation the {@link yfiles.styles.TableNodeStyleRenderer#style} and {@link yfiles.styles.TableNodeStyleRenderer#node} properties have been populated by the {@link yfiles.styles.TableNodeStyleRenderer#getVisualCreator}, - * {@link yfiles.styles.TableNodeStyleRenderer#getBoundsProvider}, {@link yfiles.styles.TableNodeStyleRenderer#getHitTestable}, or {@link yfiles.styles.TableNodeStyleRenderer#getMarqueeTestable} - * methods. - *

    - *

    - * This is an empty implementation. Subclasses might have to override this method. - *

    - * @protected - */ - configure():void; - /** - * - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.view.Visual} - */ - createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; - /** - * Get the {@link yfiles.styles.INodeStyle background style} that is currently used by this renderer. - *

    - * This implementation retrieves the {@link yfiles.styles.TableNodeStyle#backgroundStyle} from the owning style - *

    - * @returns {yfiles.styles.INodeStyle} The {@link yfiles.styles.INodeStyle background style} that is currently used by this renderer. - * @protected - */ - getBackgroundStyle():yfiles.styles.INodeStyle; - /** - * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} - */ - getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; - /** - * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.view.IBoundsProvider} - */ - getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; - /** - * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.graph.ILookup} - */ - getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; - /** - * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.input.IHitTestable} - */ - getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; - /** - * - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} - */ - getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; - /** - * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.input.IMarqueeTestable} - */ - getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; - /** - * - * @returns {yfiles.geometry.GeneralPath} - */ - getOutline():yfiles.geometry.GeneralPath; - /** - * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.styles.IShapeGeometry} - */ - getShapeGeometry(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.styles.IShapeGeometry; - /** - * Gets the table object that should be used for rendering. - *

    - * This implementation delegates to the Table provided by the {@link yfiles.styles.TableNodeStyle#table} property. - *

    - * @returns {yfiles.graph.ITable} The table that should be used for the rendering process. - * @protected - */ - getTable():yfiles.graph.ITable; - /** - * Get the {@link yfiles.styles.TableRenderingOrder} that is currently used by this renderer. - *

    - * This implementation retrieves the {@link yfiles.styles.TableRenderingOrder} from the owning style - *

    - * @returns {yfiles.styles.TableRenderingOrder} The {@link yfiles.styles.TableRenderingOrder} that is currently used by this renderer. - * @protected - */ - getTableRenderingOrder():yfiles.styles.TableRenderingOrder; - /** - * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.view.IVisibilityTestable} - */ - getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; - /** - * - * @param {yfiles.graph.INode} node - * @param {yfiles.styles.INodeStyle} style - * @returns {yfiles.view.IVisualCreator} - */ - getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; - /** - * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} - */ - isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; - /** - * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} - */ - isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; - /** - * - * @param {yfiles.geometry.Point} location - * @returns {boolean} - */ - isInside(location:yfiles.geometry.Point):boolean; - /** - * - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} - */ - isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; - /** - * - * @param {yfiles.lang.Class} type - * @returns {Object} - */ - lookup(type:yfiles.lang.Class):Object; - /** - * - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual - * @returns {yfiles.view.Visual} - */ - updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; - /** - * Gets or sets the currently configured style. - * @protected - * @type {yfiles.styles.TableNodeStyle} - */ - style:yfiles.styles.TableNodeStyle; - /** - * Gets or sets the currently configured node. - * @protected - * @type {yfiles.graph.INode} - */ - node:yfiles.graph.INode; - static $class:yfiles.lang.Class; - } /** * Base class for stripe styles that use a SVG snippet as template for the visualization of {@link yfiles.graph.IStripe}s. * @see yfiles.styles.TemplateStripeStyle * @see yfiles.styles.StringTemplateStripeStyle - * @class yfiles.styles.TemplateStripeStyleBase + * @class * @implements {yfiles.styles.IStripeStyle} * @implements {yfiles.lang.IPropertyObservable} * @implements {yfiles.lang.ICloneable} @@ -70579,28 +70257,26 @@ declare namespace system{ export class TemplateStripeStyleBase { /** * Constructs a new instance using the provided renderer. - * @param {yfiles.styles.TemplateStripeStyleRenderer} renderer + * @param renderer * @protected - * @constructor */ constructor(renderer:yfiles.styles.TemplateStripeStyleRenderer); /** * Constructs a new instance of this style with default values. * @protected - * @constructor */ constructor(); /** * Performs a shallow clone of this instance, except for the value of {@link yfiles.styles.TemplateStripeStyleBase#styleTag} which is cloned, too, if it can be cloned. - * @returns {Object} A clone of this instance. + * @returns A clone of this instance. */ clone():Object; /** * Factory method that is called by the {@link yfiles.styles.TemplateStripeStyleRenderer} to create the visual that will be used * for the display of the stripe. - * @param {yfiles.view.IRenderContext} context The context for which the visual should be created. - * @param {yfiles.graph.IStripe} stripe The stripe that will be rendered. - * @returns {yfiles.view.SvgVisual} The readily styled visual. + * @param context The context for which the visual should be created. + * @param stripe The stripe that will be rendered. + * @returns The readily styled visual. */ createTemplate(context:yfiles.view.IRenderContext,stripe:yfiles.graph.IStripe):yfiles.view.SvgVisual; /** @@ -70615,19 +70291,19 @@ declare namespace system{ /** * Raises the {@link yfiles.styles.TemplateStripeStyleBase#addPropertyChangedListener PropertyChanged} * event. - * @param {yfiles.lang.PropertyChangedEventArgs} evt The {@link yfiles.lang.PropertyChangedEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; /** * Adds the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.styles.TemplateStripeStyleBase#removePropertyChangedListener */ addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.styles.TemplateStripeStyleBase#addPropertyChangedListener */ removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -70674,61 +70350,31 @@ declare namespace system{ *
  • Demo: Control Styles Demo, Demo.yFiles.Graph.ControlStyles
  • *
  • Demo: OrgChart Demo, Demo.yFiles.Graph.OrgChart
  • * - * @class yfiles.styles.TemplateStripeStyle + * @class * @extends {yfiles.styles.TemplateStripeStyleBase} */ export interface TemplateStripeStyle extends yfiles.styles.TemplateStripeStyleBase{} export class TemplateStripeStyle { /** * Creates a new instance using the given resource key and a custom renderer instance. - * @param {string} styleResourceKey The key of the style resource that will be used for the component. - * @param {yfiles.styles.TemplateStripeStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param styleResourceKey The key of the style resource that will be used for the component. + * @param renderer The custom renderer for this style instance. */ constructor(styleResourceKey:string,renderer:yfiles.styles.TemplateStripeStyleRenderer); - /** - * Creates a new instance using the given resource key and a custom renderer instance. - * @param {Object} options The parameters to pass. - * @param {string} options.styleResourceKey The key of the style resource that will be used for the component. - * @param {yfiles.styles.TemplateStripeStyleRenderer} options.renderer The custom renderer for this style instance. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateStripeStyleBase#styleTag} property on the created object. - *

    - * @constructor - */ - constructor(options:{styleResourceKey:string,renderer:yfiles.styles.TemplateStripeStyleRenderer,styleTag?:Object}); /** * Creates a new instance using the given resource key and {@link yfiles.styles.TemplateStripeStyleRenderer} as renderer. - * @param {string} styleResourceKey The key of the style resource that will be used for the component. - * @constructor + * @param styleResourceKey The key of the style resource that will be used for the component. */ constructor(styleResourceKey:string); - /** - * Creates a new instance using the given resource key and {@link yfiles.styles.TemplateStripeStyleRenderer} as renderer. - * @param {Object} options The parameters to pass. - * @param {string} options.styleResourceKey The key of the style resource that will be used for the component. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateStripeStyleBase#styleTag} property on the created object. - *

    - * @constructor - */ - constructor(options:{styleResourceKey:string,styleTag?:Object}); /** * Creates a new instance with no style resource key and {@link yfiles.styles.TemplateStripeStyleRenderer} as renderer. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateStripeStyleBase#styleTag} property on the created object. - *

    * @param {string} options.styleResourceKey The {@link string} that will be used to look up the template that is applied to the component. *

    * This option sets the {@link yfiles.styles.TemplateStripeStyle#styleResourceKey} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,styleResourceKey?:string}); + constructor(options?:{styleResourceKey?:string}); /** * Gets or sets the {@link string} that will be used to look up the template that is applied to the component. * @default null @@ -70748,61 +70394,42 @@ declare namespace system{ * in order to avoid immediate validation of the result. The resulting SVG elements are automatically created in the SVG * namespace before they are added to the DOM. *

    - * @class yfiles.styles.StringTemplateStripeStyle + * @class * @extends {yfiles.styles.TemplateStripeStyleBase} */ export interface StringTemplateStripeStyle extends yfiles.styles.TemplateStripeStyleBase{} export class StringTemplateStripeStyle { /** * Creates a new instance using the given SVG template and a custom renderer instance. - * @param {string} svgContent The SVG snippet that will be used as a template for the component. - * @param {yfiles.styles.TemplateStripeStyleRenderer} renderer The custom renderer for this instance. - * @constructor + * @param svgContent The SVG snippet that will be used as a template for the component. + * @param renderer The custom renderer for this instance. */ constructor(svgContent:string,renderer:yfiles.styles.TemplateStripeStyleRenderer); /** * Creates a new instance using the given SVG template and a custom renderer instance. * @param {Object} options The parameters to pass. - * @param {string} options.svgContent The SVG snippet that will be used as a template for the component. - * @param {yfiles.styles.TemplateStripeStyleRenderer} options.renderer The custom renderer for this instance. + * @param options.svgContent The SVG snippet that will be used as a template for the component. + * @param options.renderer The custom renderer for this instance. * @param {Object} options.styleTag The tag that is associated with this style instance. *

    * This option sets the {@link yfiles.styles.TemplateStripeStyleBase#styleTag} property on the created object. *

    - * @constructor */ constructor(options:{svgContent:string,renderer:yfiles.styles.TemplateStripeStyleRenderer,styleTag?:Object}); /** * Creates a new instance using the given SVG template and {@link yfiles.styles.TemplateStripeStyleRenderer} as renderer. - * @param {string} svgContent The SVG snippet that will be used as a template for the component. - * @constructor + * @param svgContent The SVG snippet that will be used as a template for the component. */ constructor(svgContent:string); - /** - * Creates a new instance using the given SVG template and {@link yfiles.styles.TemplateStripeStyleRenderer} as renderer. - * @param {Object} options The parameters to pass. - * @param {string} options.svgContent The SVG snippet that will be used as a template for the component. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateStripeStyleBase#styleTag} property on the created object. - *

    - * @constructor - */ - constructor(options:{svgContent:string,styleTag?:Object}); /** * Creates a new instance with no SVG template and {@link yfiles.styles.TemplateStripeStyleRenderer} as renderer. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateStripeStyleBase#styleTag} property on the created object. - *

    * @param {string} options.svgContent The SVG content that is the template for the stripe visualization. *

    * This option sets the {@link yfiles.styles.StringTemplateStripeStyle#svgContent} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,svgContent?:string}); + constructor(options?:{svgContent?:string}); /** * Gets or sets the SVG content that is the template for the stripe visualization. * @default null @@ -70815,7 +70442,7 @@ declare namespace system{ * An implementation of the {@link yfiles.styles.IStripeStyleRenderer} interface that can render {@link yfiles.styles.TemplateStripeStyle} * instances. * @see yfiles.styles.TemplateStripeStyle - * @class yfiles.styles.TemplateStripeStyleRenderer + * @class * @implements {yfiles.styles.IStripeStyleRenderer} * @implements {yfiles.graph.ILookup} * @implements {yfiles.view.IVisualCreator} @@ -70836,8 +70463,8 @@ declare namespace system{ configure():void; /** * Creates the visual by delegating to CreateControl and then initializing the control with the context. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @returns {yfiles.view.Visual} The control that is used for rendering the stripe. + * @param context The context for the creation. + * @returns The control that is used for rendering the stripe. */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** @@ -70849,24 +70476,24 @@ declare namespace system{ * call {@link yfiles.styles.TemplateStripeStyleRenderer#configure} only if needed, i.e. if they decide to return this or an * instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.IStripe} stripe The stripe to query the context for. The value will be stored in the {@link yfiles.styles.TemplateStripeStyleRenderer#stripe} property. - * @param {yfiles.styles.IStripeStyle} style The style to associate with the stripe. The value will be stored in the {@link yfiles.styles.TemplateStripeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param stripe The stripe to query the context for. The value will be stored in the {@link #stripe} property. + * @param style The style to associate with the stripe. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateStripeStyleRenderer#lookup */ getContext(stripe:yfiles.graph.IStripe,style:yfiles.styles.IStripeStyle):yfiles.graph.ILookup; /** * Gets the context by delegating to {@link yfiles.styles.TemplateStripeStyleBase#contextLookup}. - * @param {yfiles.styles.TemplateStripeStyleBase} style - * @returns {yfiles.graph.IContextLookup} + * @param style + * @returns * @protected */ getContextLookup(style:yfiles.styles.TemplateStripeStyleBase):yfiles.graph.IContextLookup; /** * Configures the style and stripe parameters, calls {@link yfiles.styles.TemplateStripeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.IStripe} stripe The stripe to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.TemplateStripeStyleRenderer#stripe} property. - * @param {yfiles.styles.IStripeStyle} style The style to associate with the stripe. The value will be stored in the {@link yfiles.styles.TemplateStripeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param stripe The stripe to retrieve the {@link } for. The value will be stored in the {@link #stripe} property. + * @param style The style to associate with the stripe. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateStripeStyleRenderer#createVisual * @see yfiles.styles.TemplateStripeStyleRenderer#updateVisual */ @@ -70877,15 +70504,15 @@ declare namespace system{ * Delegates to the lookup returned by GetContextLookup(StripeControlStripeStyle), first. Last, it returns this class if it * implements the queried type. *

    - * @param {yfiles.lang.Class} type The type to query an instance for. - * @returns {Object} The implementation or null. + * @param type The type to query an instance for. + * @returns The implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * Updates the component correspondingly. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @param {yfiles.view.Visual} oldVisual The currently rendered visual. - * @returns {yfiles.view.Visual} The control that is used for rendering the stripe. + * @param context The context for the creation. + * @param oldVisual The currently rendered visual. + * @returns The control that is used for rendering the stripe. */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -70910,6 +70537,302 @@ declare namespace system{ layout:yfiles.geometry.IRectangle; static $class:yfiles.lang.Class; } + /** + * A {@link yfiles.styles.INodeStyle} for {@link yfiles.graph.ITable tables}. + *

    + * This implementations stores the table instance and therefore, its instances cannot be shared among different table + * instances. + *

    + * @class + * @implements {yfiles.styles.INodeStyle} + * @implements {yfiles.lang.IPropertyObservable} + */ + export interface TableNodeStyle extends Object,yfiles.styles.INodeStyle,yfiles.lang.IPropertyObservable{} + export class TableNodeStyle { + /** + * Constructor with a custom renderer implementation that uses table as backing table model. + * @param table The table instance that defines the tabular structure. + * @param [renderer=null] Custom renderer instance for this style. + */ + constructor(table:yfiles.graph.ITable,renderer?:yfiles.styles.TableNodeStyleRenderer); + /** + * Constructor with a custom renderer implementation that uses table as backing table model. + * @param {Object} options The parameters to pass. + * @param options.table The table instance that defines the tabular structure. + * @param [options.renderer=null] Custom renderer instance for this style. + * @param {yfiles.styles.INodeStyle} options.backgroundStyle The style that is used to draw the background of the table + *

    + * This option sets the {@link yfiles.styles.TableNodeStyle#backgroundStyle} property on the created object. + *

    + * @param {yfiles.styles.TableRenderingOrder} options.tableRenderingOrder The order in which rows and columns are rendered. + *

    + * This option sets the {@link yfiles.styles.TableNodeStyle#tableRenderingOrder} property on the created object. + *

    + */ + constructor(options:{table:yfiles.graph.ITable,renderer?:yfiles.styles.TableNodeStyleRenderer,backgroundStyle?:yfiles.styles.INodeStyle,tableRenderingOrder?:yfiles.styles.TableRenderingOrder}); + /** + * Default constructor that creates an empty table. + * @param {Object} [options=null] The parameters to pass. + * @param {yfiles.styles.INodeStyle} options.backgroundStyle The style that is used to draw the background of the table + *

    + * This option sets the {@link yfiles.styles.TableNodeStyle#backgroundStyle} property on the created object. + *

    + * @param {yfiles.graph.ITable} options.table The {@link yfiles.graph.ITable} instance that defines the tabular structure. + *

    + * This option sets the {@link yfiles.styles.TableNodeStyle#table} property on the created object. + *

    + * @param {yfiles.styles.TableRenderingOrder} options.tableRenderingOrder The order in which rows and columns are rendered. + *

    + * This option sets the {@link yfiles.styles.TableNodeStyle#tableRenderingOrder} property on the created object. + *

    + */ + constructor(options?:{backgroundStyle?:yfiles.styles.INodeStyle,table?:yfiles.graph.ITable,tableRenderingOrder?:yfiles.styles.TableRenderingOrder}); + /** + * + * @returns + */ + clone():Object; + /** + * Create a copy of the background style when this style instance is cloned + * @param style The original background node style + * @returns This implementation always returns the original style instance. + * @protected + */ + copyBackgroundStyle(style:yfiles.styles.INodeStyle):yfiles.styles.INodeStyle; + /** + * Create a copy of the table when this style instance is cloned + * @param table The original table instance + * @returns This implementation always tries to {@link #clone} clone the original table instance, if possible, + * otherwise it returns table unchanged. + * @protected + */ + copyTable(table:yfiles.graph.ITable):yfiles.graph.ITable; + /** + * Raises the {@link yfiles.styles.TableNodeStyle#addPropertyChangedListener PropertyChanged} event. + *

    + * Called when the value of the {@link yfiles.styles.TableNodeStyle#table} property changes. + *

    + * @param evt The {@link } instance containing the event data. + * @protected + */ + onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; + /** + * Gets or sets the order in which rows and columns are rendered. + * @default yfiles.styles.TableRenderingOrder.COLUMNS_FIRST + * @type {yfiles.styles.TableRenderingOrder} + */ + tableRenderingOrder:yfiles.styles.TableRenderingOrder; + /** + * Gets or sets the style that is used to draw the background of the table + * @default 'TableNodeStyle.defaultBackgroundStyle' + * @type {yfiles.styles.INodeStyle} + */ + backgroundStyle:yfiles.styles.INodeStyle; + /** + * Adds the given listener for the PropertyChanged event that occurs when the value of the {@link yfiles.styles.TableNodeStyle#table} property changes. + * @param listener The listener to add. + * @see yfiles.styles.TableNodeStyle#removePropertyChangedListener + */ + addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Removes the given listener for the PropertyChanged event that occurs when the value of the {@link yfiles.styles.TableNodeStyle#table} property changes. + * @param listener The listener to remove. + * @see yfiles.styles.TableNodeStyle#addPropertyChangedListener + */ + removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; + /** + * Gets or sets the {@link yfiles.graph.ITable} instance that defines the tabular structure. + * @type {yfiles.graph.ITable} + */ + table:yfiles.graph.ITable; + /** + * + * @type {yfiles.styles.INodeStyleRenderer} + */ + renderer:yfiles.styles.INodeStyleRenderer; + static $class:yfiles.lang.Class; + } + /** + * Default renderer implementation that can be used for {@link yfiles.styles.TableNodeStyle} instances. + * @class + * @implements {yfiles.styles.INodeStyleRenderer} + * @implements {yfiles.styles.IShapeGeometry} + * @implements {yfiles.view.IBoundsProvider} + * @implements {yfiles.view.IVisibilityTestable} + * @implements {yfiles.input.IMarqueeTestable} + * @implements {yfiles.input.IHitTestable} + * @implements {yfiles.graph.ILookup} + * @implements {yfiles.view.IVisualCreator} + */ + export interface TableNodeStyleRenderer extends Object,yfiles.styles.INodeStyleRenderer,yfiles.styles.IShapeGeometry,yfiles.view.IBoundsProvider,yfiles.view.IVisibilityTestable,yfiles.input.IMarqueeTestable,yfiles.input.IHitTestable,yfiles.graph.ILookup,yfiles.view.IVisualCreator{} + export class TableNodeStyleRenderer { + /** + * Prepares this instance for subsequent calls after the style and node have been initialized. + *

    + * Upon invocation the {@link yfiles.styles.TableNodeStyleRenderer#style} and {@link yfiles.styles.TableNodeStyleRenderer#node} properties have been populated by the {@link yfiles.styles.TableNodeStyleRenderer#getVisualCreator}, + * {@link yfiles.styles.TableNodeStyleRenderer#getBoundsProvider}, {@link yfiles.styles.TableNodeStyleRenderer#getHitTestable}, or {@link yfiles.styles.TableNodeStyleRenderer#getMarqueeTestable} + * methods. + *

    + *

    + * This is an empty implementation. Subclasses might have to override this method. + *

    + * @protected + */ + configure():void; + /** + * + * @param context + * @returns + */ + createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; + /** + * Get the {@link yfiles.styles.INodeStyle background style} that is currently used by this renderer. + *

    + * This implementation retrieves the {@link yfiles.styles.TableNodeStyle#backgroundStyle} from the owning style + *

    + * @returns The {@link background style} that is currently used by this renderer. + * @protected + */ + getBackgroundStyle():yfiles.styles.INodeStyle; + /** + * + * @param context + * @returns + */ + getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; + /** + * + * @param node + * @param style + * @returns + */ + getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; + /** + * + * @param node + * @param style + * @returns + */ + getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; + /** + * + * @param node + * @param style + * @returns + */ + getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; + /** + * + * @param inner + * @param outer + * @returns + */ + getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; + /** + * + * @param node + * @param style + * @returns + */ + getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; + /** + * + * @returns + */ + getOutline():yfiles.geometry.GeneralPath; + /** + * + * @param node + * @param style + * @returns + */ + getShapeGeometry(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.styles.IShapeGeometry; + /** + * Gets the table object that should be used for rendering. + *

    + * This implementation delegates to the Table provided by the {@link yfiles.styles.TableNodeStyle#table} property. + *

    + * @returns The table that should be used for the rendering process. + * @protected + */ + getTable():yfiles.graph.ITable; + /** + * Get the {@link yfiles.styles.TableRenderingOrder} that is currently used by this renderer. + *

    + * This implementation retrieves the {@link yfiles.styles.TableRenderingOrder} from the owning style + *

    + * @returns The {@link } that is currently used by this renderer. + * @protected + */ + getTableRenderingOrder():yfiles.styles.TableRenderingOrder; + /** + * + * @param node + * @param style + * @returns + */ + getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; + /** + * + * @param node + * @param style + * @returns + */ + getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; + /** + * + * @param context + * @param location + * @returns + */ + isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; + /** + * + * @param context + * @param rectangle + * @returns + */ + isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; + /** + * + * @param location + * @returns + */ + isInside(location:yfiles.geometry.Point):boolean; + /** + * + * @param context + * @param rectangle + * @returns + */ + isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; + /** + * + * @param type + * @returns + */ + lookup(type:yfiles.lang.Class):Object; + /** + * + * @param context + * @param oldVisual + * @returns + */ + updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; + /** + * Gets or sets the currently configured style. + * @protected + * @type {yfiles.styles.TableNodeStyle} + */ + style:yfiles.styles.TableNodeStyle; + /** + * Gets or sets the currently configured node. + * @protected + * @type {yfiles.graph.INode} + */ + node:yfiles.graph.INode; + static $class:yfiles.lang.Class; + } /** * The context of a TemplateBinding. This interface exposes properties of a graph element onto which a TemplateBinding can * be bound. @@ -70985,11 +70908,41 @@ declare namespace system{ $class:yfiles.lang.Class; isInstance(o:Object):boolean; }; + /** + * Enhances the context of a TemplateBinding ({@link yfiles.styles.ITemplateStyleBindingContext}) for labels. This interface + * exposes additional properties of a label onto which a TemplateBinding can be bound. + * @interface + * @implements {yfiles.lang.IPropertyObservable} + */ + export interface ILabelTemplateStyleBindingContext extends Object,yfiles.lang.IPropertyObservable{ + /** + * Gets or sets the label text property that is populated using the {@link yfiles.graph.ILabel}'s {@link yfiles.graph.ILabel#text} property. + * @abstract + * @type {string} + */ + labelText:string; + /** + * Gets a value indicating whether this instance has been flipped so that it points upwards. + * @abstract + * @type {boolean} + */ + isFlipped:boolean; + /** + * Gets a value indicating whether this instance is currently rendered upside down. + * @abstract + * @type {boolean} + */ + isUpsideDown:boolean; + } + var ILabelTemplateStyleBindingContext:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; /** * Base class for label styles that use a SVG snippet as template for the visualization of {@link yfiles.graph.ILabel}s. * @see yfiles.styles.TemplateLabelStyle * @see yfiles.styles.StringTemplateLabelStyle - * @class yfiles.styles.TemplateLabelStyleBase + * @class * @implements {yfiles.styles.ILabelStyle} * @implements {yfiles.lang.IPropertyObservable} * @implements {yfiles.lang.ICloneable} @@ -70998,34 +70951,32 @@ declare namespace system{ export class TemplateLabelStyleBase { /** * Constructs a new instance using the provided renderer. - * @param {yfiles.styles.TemplateLabelStyleRenderer} renderer - * @constructor + * @param renderer */ constructor(renderer:yfiles.styles.TemplateLabelStyleRenderer); /** * Constructs a new instance of this style with default values. * @protected - * @constructor */ constructor(); /** * Performs a shallow clone of this instance, except for the value of {@link yfiles.styles.TemplateLabelStyleBase#styleTag} which is cloned, too, if it can be cloned. - * @returns {Object} A clone of this instance. + * @returns A clone of this instance. */ clone():Object; /** * Factory method that is called by the {@link yfiles.styles.TemplateLabelStyleRenderer} to create the visual that will be used for * the display of the label. - * @param {yfiles.view.IRenderContext} context The context for which the visual should be created. - * @param {yfiles.graph.ILabel} label The label that will be rendered. - * @returns {yfiles.view.SvgVisual} The readily styled visual. + * @param context The context for which the visual should be created. + * @param label The label that will be rendered. + * @returns The readily styled visual. */ createTemplate(context:yfiles.view.IRenderContext,label:yfiles.graph.ILabel):yfiles.view.SvgVisual; /** * Convenience method that determines the preferred size of the label if this style was applied. - * @param {yfiles.view.IRenderContext} context The context for which the size should be calculated. - * @param {yfiles.graph.ILabel} label The label to determine the preferred size of. - * @returns {yfiles.geometry.Size} The preferred size. + * @param context The context for which the size should be calculated. + * @param label The label to determine the preferred size of. + * @returns The preferred size. */ getPreferredSize(context:yfiles.view.IRenderContext,label:yfiles.graph.ILabel):yfiles.geometry.Size; /** @@ -71039,19 +70990,19 @@ declare namespace system{ static loadAllTemplates():void; /** * Raises the {@link yfiles.styles.TemplateLabelStyleBase#addPropertyChangedListener PropertyChanged} event. - * @param {yfiles.lang.PropertyChangedEventArgs} evt The {@link yfiles.lang.PropertyChangedEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; /** * Adds the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.styles.TemplateLabelStyleBase#removePropertyChangedListener */ addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.styles.TemplateLabelStyleBase#addPropertyChangedListener */ removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -71139,28 +71090,26 @@ declare namespace system{ *
  • itemFocused: Whether the element has the focus
  • *
  • itemHighlighted: Whether the element is highlighted
  • *
  • styleTag: The tag associated with the element's style instance
  • + *
  • labelText: The label text property that is populated using the {@link yfiles.graph.ILabel}'s {@link yfiles.graph.ILabel#text} property
  • + *
  • isFlipped: Whether the element has been flipped
  • + *
  • isUpsideDown: Whether the element is currently rendered upside down
  • * - * @class yfiles.styles.TemplateLabelStyle + * @class * @extends {yfiles.styles.TemplateLabelStyleBase} */ export interface TemplateLabelStyle extends yfiles.styles.TemplateLabelStyleBase{} export class TemplateLabelStyle { /** * Creates a new instance using the given render template id and a custom renderer instance. - * @param {string} renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {yfiles.styles.TemplateLabelStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param renderTemplateId The id of the SVG snippet that will be used for the component. + * @param renderer The custom renderer for this style instance. */ constructor(renderTemplateId:string,renderer:yfiles.styles.TemplateLabelStyleRenderer); /** * Creates a new instance using the given render template id and a custom renderer instance. * @param {Object} options The parameters to pass. - * @param {string} options.renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {yfiles.styles.TemplateLabelStyleRenderer} options.renderer The custom renderer for this style instance. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#styleTag} property on the created object. - *

    + * @param options.renderTemplateId The id of the SVG snippet that will be used for the component. + * @param options.renderer The custom renderer for this style instance. * @param {boolean} options.autoFlip A value indicating whether the rendering should automatically be flipped (rotated by 180 degrees) if otherwise it would be rendered upside-down. *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#autoFlip} property on the created object. @@ -71173,23 +71122,17 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#preferredSize} property on the created object. *

    - * @constructor */ - constructor(options:{renderTemplateId:string,renderer:yfiles.styles.TemplateLabelStyleRenderer,styleTag?:Object,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size}); + constructor(options:{renderTemplateId:string,renderer:yfiles.styles.TemplateLabelStyleRenderer,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size}); /** * Creates a new instance using the given render template id. - * @param {string} renderTemplateId The id of the render template that will be used for the component. - * @constructor + * @param renderTemplateId The id of the render template that will be used for the component. */ constructor(renderTemplateId:string); /** * Creates a new instance using the given render template id. * @param {Object} options The parameters to pass. - * @param {string} options.renderTemplateId The id of the render template that will be used for the component. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#styleTag} property on the created object. - *

    + * @param options.renderTemplateId The id of the render template that will be used for the component. * @param {boolean} options.autoFlip A value indicating whether the rendering should automatically be flipped (rotated by 180 degrees) if otherwise it would be rendered upside-down. *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#autoFlip} property on the created object. @@ -71202,16 +71145,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#preferredSize} property on the created object. *

    - * @constructor */ - constructor(options:{renderTemplateId:string,styleTag?:Object,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size}); + constructor(options:{renderTemplateId:string,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size}); /** * Creates a new instance with no render template id and {@link yfiles.styles.TemplateLabelStyleRenderer} as renderer. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#styleTag} property on the created object. - *

    * @param {boolean} options.autoFlip A value indicating whether the rendering should automatically be flipped (rotated by 180 degrees) if otherwise it would be rendered upside-down. *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#autoFlip} property on the created object. @@ -71228,9 +71166,8 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateLabelStyle#styleResourceKey} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size,styleResourceKey?:string}); + constructor(options?:{autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size,styleResourceKey?:string}); /** * Gets or sets the {@link string} that will be used to look up the template that is applied to the component. *

    @@ -71270,26 +71207,24 @@ declare namespace system{ *

  • itemFocused: Whether the element has the focus
  • *
  • itemHighlighted: Whether the element is highlighted
  • *
  • styleTag: The tag associated with the element's style instance
  • + *
  • labelText: The label text property that is populated using the {@link yfiles.graph.ILabel}'s {@link yfiles.graph.ILabel#text} property
  • + *
  • isFlipped: Whether this instance has been flipped so that it points upwards
  • + *
  • isUpsideDown: Whether this instance is currently rendered upside down
  • * - * @class yfiles.styles.StringTemplateLabelStyle + * @class * @extends {yfiles.styles.TemplateLabelStyleBase} */ export interface StringTemplateLabelStyle extends yfiles.styles.TemplateLabelStyleBase{} export class StringTemplateLabelStyle { /** * Creates a new instance using the provided renderer. - * @param {yfiles.styles.TemplateLabelStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param renderer The custom renderer for this style instance. */ constructor(renderer:yfiles.styles.TemplateLabelStyleRenderer); /** * Creates a new instance using the provided renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.TemplateLabelStyleRenderer} options.renderer The custom renderer for this style instance. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#styleTag} property on the created object. - *

    + * @param options.renderer The custom renderer for this style instance. * @param {boolean} options.autoFlip A value indicating whether the rendering should automatically be flipped (rotated by 180 degrees) if otherwise it would be rendered upside-down. *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#autoFlip} property on the created object. @@ -71306,23 +71241,17 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.StringTemplateLabelStyle#svgContent} property on the created object. *

    - * @constructor */ - constructor(options:{renderer:yfiles.styles.TemplateLabelStyleRenderer,styleTag?:Object,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size,svgContent?:string}); + constructor(options:{renderer:yfiles.styles.TemplateLabelStyleRenderer,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size,svgContent?:string}); /** * Initializes a new instance of this class and sets the given string as its {@link yfiles.styles.StringTemplateLabelStyle#svgContent}. - * @param {string} svgContent The SVG snippet to use as template. - * @constructor + * @param svgContent The SVG snippet to use as template. */ constructor(svgContent:string); /** * Initializes a new instance of this class and sets the given string as its {@link yfiles.styles.StringTemplateLabelStyle#svgContent}. * @param {Object} options The parameters to pass. - * @param {string} options.svgContent The SVG snippet to use as template. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#styleTag} property on the created object. - *

    + * @param options.svgContent The SVG snippet to use as template. * @param {boolean} options.autoFlip A value indicating whether the rendering should automatically be flipped (rotated by 180 degrees) if otherwise it would be rendered upside-down. *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#autoFlip} property on the created object. @@ -71335,16 +71264,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#preferredSize} property on the created object. *

    - * @constructor */ - constructor(options:{svgContent:string,styleTag?:Object,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size}); + constructor(options:{svgContent:string,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size}); /** * Initializes a new instance of this class. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#styleTag} property on the created object. - *

    * @param {boolean} options.autoFlip A value indicating whether the rendering should automatically be flipped (rotated by 180 degrees) if otherwise it would be rendered upside-down. *

    * This option sets the {@link yfiles.styles.TemplateLabelStyleBase#autoFlip} property on the created object. @@ -71361,9 +71285,8 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.StringTemplateLabelStyle#svgContent} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size,svgContent?:string}); + constructor(options?:{autoFlip?:boolean,normalizedOutline?:yfiles.geometry.GeneralPath,preferredSize?:yfiles.geometry.Size,svgContent?:string}); /** * Gets or sets the SVG content that is the template for the label visualization. * @default null @@ -71377,7 +71300,7 @@ declare namespace system{ * instances. * @see yfiles.styles.TemplateLabelStyle * @see yfiles.styles.StringTemplateLabelStyle - * @class yfiles.styles.TemplateLabelStyleRenderer + * @class * @implements {yfiles.styles.ILabelStyleRenderer} * @implements {yfiles.view.IVisualCreator} * @implements {yfiles.view.IBoundsProvider} @@ -71399,21 +71322,21 @@ declare namespace system{ /** * Creates the visual by delegating to {@link yfiles.styles.TemplateLabelStyleBase#createTemplate} and then initializing the * control with the context. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @returns {yfiles.view.Visual} The visual that is used for rendering the label. + * @param context The context for the creation. + * @returns The visual that is used for rendering the label. */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the {@link yfiles.styles.TemplateLabelStyleRenderer#style} and {@link yfiles.styles.TemplateLabelStyleRenderer#label} properties, calls {@link yfiles.styles.TemplateLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param label The label to retrieve the bounds provider for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateLabelStyleRenderer#getBounds */ getBoundsProvider(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IBoundsProvider; @@ -71425,56 +71348,56 @@ declare namespace system{ * call {@link yfiles.styles.TemplateLabelStyleRenderer#configure} only if needed, i.e. if they decide to return this or an * instance that depends on a correctly configured this. *

    - * @param {yfiles.graph.ILabel} label The label to query the context for. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param label The label to query the context for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateLabelStyleRenderer#lookup */ getContext(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.graph.ILookup; /** * Configures the {@link yfiles.styles.TemplateLabelStyleRenderer#style} and {@link yfiles.styles.TemplateLabelStyleRenderer#label} properties, calls {@link yfiles.styles.TemplateLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to query hit test with. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param label The label to query hit test with. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateLabelStyleRenderer#isHit */ getHitTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IHitTestable; /** * Configures the {@link yfiles.styles.TemplateLabelStyleRenderer#style} and {@link yfiles.styles.TemplateLabelStyleRenderer#label} properties, calls {@link yfiles.styles.TemplateLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param label The label to query marquee intersection tests. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateLabelStyleRenderer#isInBox */ getMarqueeTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.input.IMarqueeTestable; /** * Gets the normalized outline by delegating to {@link yfiles.styles.TemplateLabelStyleBase#normalizedOutline}. - * @param {yfiles.styles.TemplateLabelStyleBase} style - * @returns {yfiles.geometry.GeneralPath} + * @param style + * @returns * @protected */ getNormalizedOutline(style:yfiles.styles.TemplateLabelStyleBase):yfiles.geometry.GeneralPath; /** * Calculates the preferred size for the given label and style. - * @param {yfiles.graph.ILabel} label The label instance. - * @param {yfiles.styles.ILabelStyle} style The style instance to apply. - * @returns {yfiles.geometry.Size} The preferred size for the given label and style. + * @param label The label instance. + * @param style The style instance to apply. + * @returns The preferred size for the given label and style. * @see yfiles.styles.TemplateLabelStyleRenderer#getPreferredSizeCore */ getPreferredSize(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.geometry.Size; /** * Gets the size of the preferred for the current configuration using the provided context. - * @param {yfiles.view.IRenderContext} context The context. - * @returns {yfiles.geometry.Size} + * @param context The context. + * @returns * @protected */ getPreferredSizeCore(context:yfiles.view.IRenderContext):yfiles.geometry.Size; /** * Calculates the preferred size for the given label and style. - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.graph.ILabel} label The label instance. - * @param {yfiles.styles.ILabelStyle} style The style instance to apply. - * @returns {yfiles.geometry.Size} The preferred size for the given label and style. + * @param context + * @param label The label instance. + * @param style The style instance to apply. + * @returns The preferred size for the given label and style. * @see yfiles.styles.TemplateLabelStyleRenderer#getPreferredSizeCore */ getPreferredSizeWithContext(context:yfiles.view.IRenderContext,label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.geometry.Size; @@ -71485,69 +71408,69 @@ declare namespace system{ * the subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.TemplateLabelStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.ILabel} label The label to query visibility tests. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param label The label to query visibility tests. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateLabelStyleRenderer#isVisible */ getVisibilityTestable(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisibilityTestable; /** * Configures the {@link yfiles.styles.TemplateLabelStyleRenderer#style} and {@link yfiles.styles.TemplateLabelStyleRenderer#label} properties, calls {@link yfiles.styles.TemplateLabelStyleRenderer#configure} and returns this. - * @param {yfiles.graph.ILabel} label The label to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#label} property. - * @param {yfiles.styles.ILabelStyle} style The style to associate with the label. The value will be stored in the {@link yfiles.styles.TemplateLabelStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param label The label to retrieve the {@link } for. The value will be stored in the {@link #label} property. + * @param style The style to associate with the label. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateLabelStyleRenderer#createVisual * @see yfiles.styles.TemplateLabelStyleRenderer#updateVisual */ getVisualCreator(label:yfiles.graph.ILabel,style:yfiles.styles.ILabelStyle):yfiles.view.IVisualCreator; /** * Delegates to the {@link yfiles.styles.TemplateLabelStyleBase}'s {@link yfiles.styles.TemplateLabelStyleBase#autoFlip} property. - * @param {yfiles.styles.TemplateLabelStyleBase} style - * @returns {boolean} + * @param style + * @returns * @protected */ isAutoFlip(style:yfiles.styles.TemplateLabelStyleBase):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * Uses the {@link yfiles.graph.ILabel#layout layout} to determine whether the clip intersects. - * @param {yfiles.view.ICanvasContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** * Delegates to the {@link yfiles.styles.TemplateLabelStyleBase#contextLookup} of the {@link yfiles.styles.ILabelStyle}. - * @param {yfiles.lang.Class} type The type to query an instance for. - * @returns {Object} The implementation or null. + * @param type The type to query an instance for. + * @returns The implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * Delegates to the {@link yfiles.styles.TemplateLabelStyleBase}'s {@link yfiles.styles.TemplateLabelStyleBase#contextLookup}. - * @param {yfiles.styles.TemplateLabelStyleBase} style The style to look up the context for. - * @param {yfiles.graph.ILabel} label The current label. - * @param {yfiles.lang.Class} type The type to look up. - * @returns {Object} The result from the context or null. + * @param style The style to look up the context for. + * @param label The current label. + * @param type The type to look up. + * @returns The result from the context or null. * @protected */ lookupContext(style:yfiles.styles.TemplateLabelStyleBase,label:yfiles.graph.ILabel,type:yfiles.lang.Class):Object; /** - * Updates the component correspondingly. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @param {yfiles.view.Visual} oldVisual The currently rendered visual. - * @returns {yfiles.view.Visual} The visual that is used for rendering the label. + * Updates the visual correspondingly. + * @param context The context for the creation. + * @param oldVisual The currently rendered visual. + * @returns The visual that is used for rendering the label. */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -71577,7 +71500,7 @@ declare namespace system{ * Base class for node styles that use a SVG snippet as template for the visualization of {@link yfiles.graph.INode}s. * @see yfiles.styles.TemplateNodeStyle * @see yfiles.styles.StringTemplateNodeStyle - * @class yfiles.styles.TemplateNodeStyleBase + * @class * @implements {yfiles.styles.INodeStyle} * @implements {yfiles.lang.IPropertyObservable} * @implements {yfiles.lang.ICloneable} @@ -71586,36 +71509,34 @@ declare namespace system{ export class TemplateNodeStyleBase { /** * Constructs a new instance using the provided renderer. - * @param {yfiles.styles.TemplateNodeStyleRenderer} renderer + * @param renderer * @protected - * @constructor */ constructor(renderer:yfiles.styles.TemplateNodeStyleRenderer); /** * Constructs a new instance of this style with default values. * @protected - * @constructor */ constructor(); /** * Performs a shallow clone of this instance, except for the value of {@link yfiles.styles.TemplateNodeStyleBase#styleTag} which is cloned, too, if it can be cloned. - * @returns {Object} A clone of this instance. + * @returns A clone of this instance. */ clone():Object; /** * Factory method that is called by the {@link yfiles.styles.TemplateNodeStyleRenderer} to create the visual that will be used for * the display of the node. - * @param {yfiles.view.IRenderContext} context The context for which the visual should be created. - * @param {yfiles.graph.INode} node The node that will be rendered. - * @returns {yfiles.view.SvgVisual} The readily styled visual. + * @param context The context for which the visual should be created. + * @param node The node that will be rendered. + * @returns The readily styled visual. */ createTemplate(context:yfiles.view.IRenderContext,node:yfiles.graph.INode):yfiles.view.SvgVisual; /** * Convenience method that determines the preferred size of the node if this style was applied. - * @param {yfiles.view.IRenderContext} context The context for which the size should be calculated. Can be obtained through - * {@link yfiles.view.CanvasComponent#createRenderContext}. - * @param {yfiles.graph.INode} node The node to determine the preferred size of. Can be a live node or an {@link yfiles.graph.SimpleNode}. - * @returns {yfiles.geometry.Size} The preferred size. + * @param context The context for which the size should be calculated. Can be obtained through + * {@link #createRenderContext}. + * @param node The node to determine the preferred size of. Can be a live node or an {@link }. + * @returns The preferred size. * @see yfiles.view.CanvasComponent#createRenderContext */ getPreferredSize(context:yfiles.view.IRenderContext,node:yfiles.graph.INode):yfiles.geometry.Size; @@ -71630,19 +71551,19 @@ declare namespace system{ static loadAllTemplates():void; /** * Raises the {@link yfiles.styles.TemplateNodeStyleBase#addPropertyChangedListener PropertyChanged} event. - * @param {yfiles.lang.PropertyChangedEventArgs} evt The {@link yfiles.lang.PropertyChangedEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; /** * Adds the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.styles.TemplateNodeStyleBase#removePropertyChangedListener */ addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.styles.TemplateNodeStyleBase#addPropertyChangedListener */ removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -71751,27 +71672,22 @@ declare namespace system{ *
  • Demo: OrgChart Demo, Demo.yFiles.Graph.OrgChart
  • *
  • Demo: Collapse Demo, Demo.yFiles.Graph.Collapse
  • * - * @class yfiles.styles.TemplateNodeStyle + * @class * @extends {yfiles.styles.TemplateNodeStyleBase} */ export interface TemplateNodeStyle extends yfiles.styles.TemplateNodeStyleBase{} export class TemplateNodeStyle { /** * Creates a new instance using the given render template id and a custom renderer instance. - * @param {string} renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {yfiles.styles.TemplateNodeStyleRenderer} renderer The custom renderer for this instance. - * @constructor + * @param renderTemplateId The id of the SVG snippet that will be used for the component. + * @param renderer The custom renderer for this instance. */ constructor(renderTemplateId:string,renderer:yfiles.styles.TemplateNodeStyleRenderer); /** * Creates a new instance using the given render template id and a custom renderer instance. * @param {Object} options The parameters to pass. - * @param {string} options.renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {yfiles.styles.TemplateNodeStyleRenderer} options.renderer The custom renderer for this instance. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#styleTag} property on the created object. - *

    + * @param options.renderTemplateId The id of the SVG snippet that will be used for the component. + * @param options.renderer The custom renderer for this instance. * @param {yfiles.geometry.Insets} options.insets The insets the {@link yfiles.input.INodeInsetsProvider} implementation for {@link yfiles.graph.INode} should yield for this instance. *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#insets} property on the created object. @@ -71784,23 +71700,17 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#normalizedOutline} property on the created object. *

    - * @constructor */ - constructor(options:{renderTemplateId:string,renderer:yfiles.styles.TemplateNodeStyleRenderer,styleTag?:Object,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); + constructor(options:{renderTemplateId:string,renderer:yfiles.styles.TemplateNodeStyleRenderer,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); /** * Creates a new instance using the given render template id and {@link yfiles.styles.TemplateNodeStyleRenderer} as renderer. - * @param {string} renderTemplateId The id of the SVG snippet that will be used for the component. - * @constructor + * @param renderTemplateId The id of the SVG snippet that will be used for the component. */ constructor(renderTemplateId:string); /** * Creates a new instance using the given render template id and {@link yfiles.styles.TemplateNodeStyleRenderer} as renderer. * @param {Object} options The parameters to pass. - * @param {string} options.renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#styleTag} property on the created object. - *

    + * @param options.renderTemplateId The id of the SVG snippet that will be used for the component. * @param {yfiles.geometry.Insets} options.insets The insets the {@link yfiles.input.INodeInsetsProvider} implementation for {@link yfiles.graph.INode} should yield for this instance. *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#insets} property on the created object. @@ -71813,16 +71723,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#normalizedOutline} property on the created object. *

    - * @constructor */ - constructor(options:{renderTemplateId:string,styleTag?:Object,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); + constructor(options:{renderTemplateId:string,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); /** * Creates a new instance with no render template id key and {@link yfiles.styles.TemplateNodeStyleRenderer} as renderer. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#styleTag} property on the created object. - *

    * @param {yfiles.geometry.Insets} options.insets The insets the {@link yfiles.input.INodeInsetsProvider} implementation for {@link yfiles.graph.INode} should yield for this instance. *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#insets} property on the created object. @@ -71839,9 +71744,8 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateNodeStyle#styleResourceKey} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath,styleResourceKey?:string}); + constructor(options?:{insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath,styleResourceKey?:string}); /** * Gets or sets the {@link string} that will be used to look up the template that is applied to the component. *

    @@ -71882,27 +71786,22 @@ declare namespace system{ *

  • itemHighlighted: Whether the element is highlighted
  • *
  • styleTag: The tag associated with the element's style instance
  • * - * @class yfiles.styles.StringTemplateNodeStyle + * @class * @extends {yfiles.styles.TemplateNodeStyleBase} */ export interface StringTemplateNodeStyle extends yfiles.styles.TemplateNodeStyleBase{} export class StringTemplateNodeStyle { /** * Creates a new instance using the given SVG template and a custom renderer instance. - * @param {string} svgContent The SVG snippet that will be used as a template for the component. - * @param {yfiles.styles.TemplateNodeStyleRenderer} renderer The custom renderer for this instance. - * @constructor + * @param svgContent The SVG snippet that will be used as a template for the component. + * @param renderer The custom renderer for this instance. */ constructor(svgContent:string,renderer:yfiles.styles.TemplateNodeStyleRenderer); /** * Creates a new instance using the given SVG template and a custom renderer instance. * @param {Object} options The parameters to pass. - * @param {string} options.svgContent The SVG snippet that will be used as a template for the component. - * @param {yfiles.styles.TemplateNodeStyleRenderer} options.renderer The custom renderer for this instance. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#styleTag} property on the created object. - *

    + * @param options.svgContent The SVG snippet that will be used as a template for the component. + * @param options.renderer The custom renderer for this instance. * @param {yfiles.geometry.Insets} options.insets The insets the {@link yfiles.input.INodeInsetsProvider} implementation for {@link yfiles.graph.INode} should yield for this instance. *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#insets} property on the created object. @@ -71915,23 +71814,17 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#normalizedOutline} property on the created object. *

    - * @constructor */ - constructor(options:{svgContent:string,renderer:yfiles.styles.TemplateNodeStyleRenderer,styleTag?:Object,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); + constructor(options:{svgContent:string,renderer:yfiles.styles.TemplateNodeStyleRenderer,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); /** * Creates a new instance using the given SVG template and {@link yfiles.styles.TemplateNodeStyleRenderer} as renderer. - * @param {string} svgContent The SVG snippet that will be used as a template for the component. - * @constructor + * @param svgContent The SVG snippet that will be used as a template for the component. */ constructor(svgContent:string); /** * Creates a new instance using the given SVG template and {@link yfiles.styles.TemplateNodeStyleRenderer} as renderer. * @param {Object} options The parameters to pass. - * @param {string} options.svgContent The SVG snippet that will be used as a template for the component. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#styleTag} property on the created object. - *

    + * @param options.svgContent The SVG snippet that will be used as a template for the component. * @param {yfiles.geometry.Insets} options.insets The insets the {@link yfiles.input.INodeInsetsProvider} implementation for {@link yfiles.graph.INode} should yield for this instance. *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#insets} property on the created object. @@ -71944,16 +71837,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#normalizedOutline} property on the created object. *

    - * @constructor */ - constructor(options:{svgContent:string,styleTag?:Object,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); + constructor(options:{svgContent:string,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath}); /** * Creates a new instance with no SVG template and {@link yfiles.styles.TemplateNodeStyleRenderer} as renderer. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#styleTag} property on the created object. - *

    * @param {yfiles.geometry.Insets} options.insets The insets the {@link yfiles.input.INodeInsetsProvider} implementation for {@link yfiles.graph.INode} should yield for this instance. *

    * This option sets the {@link yfiles.styles.TemplateNodeStyleBase#insets} property on the created object. @@ -71970,9 +71858,8 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.StringTemplateNodeStyle#svgContent} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath,svgContent?:string}); + constructor(options?:{insets?:yfiles.geometry.Insets,minimumSize?:yfiles.geometry.Size,normalizedOutline?:yfiles.geometry.GeneralPath,svgContent?:string}); /** * Gets or sets the SVG content that is the template for the node visualization. * @default null @@ -71986,7 +71873,7 @@ declare namespace system{ * instances. * @see yfiles.styles.TemplateNodeStyle * @see yfiles.styles.StringTemplateNodeStyle - * @class yfiles.styles.TemplateNodeStyleRenderer + * @class * @implements {yfiles.styles.INodeStyleRenderer} * @implements {yfiles.styles.IShapeGeometry} * @implements {yfiles.view.IBoundsProvider} @@ -72015,8 +71902,8 @@ declare namespace system{ /** * Creates the visual by delegating to {@link yfiles.styles.TemplateNodeStyleBase#createTemplate} and then initializing the control * with the context. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @returns {yfiles.view.Visual} The visual that is used for rendering the node. + * @param context The context for the creation. + * @returns The visual that is used for rendering the node. */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** @@ -72024,8 +71911,8 @@ declare namespace system{ *

    * This implementation simply sets the {@link yfiles.styles.TemplateNodeStyleRenderer#layout}'s bounds to the scratch variable and returns. *

    - * @param {yfiles.view.ICanvasContext} context the context to calculate the bounds for - * @returns {yfiles.geometry.Rect} the bounds or null to indicate an unbound area + * @param context the context to calculate the bounds for + * @returns the bounds or null to indicate an unbound area */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** @@ -72034,9 +71921,9 @@ declare namespace system{ * If {@link yfiles.styles.TemplateNodeStyleBase#contextLookup} provides an implementation of the {@link yfiles.view.IBoundsProvider} interface than this instance will be returned, * otherwise the default (rectangular) behavior will be used. *

    - * @param {yfiles.graph.INode} node The node to query the provider for. - * @param {yfiles.styles.INodeStyle} style The style whose provider is queried. - * @returns {yfiles.view.IBoundsProvider} An implementation that can calculate visual bounds. + * @param node The node to query the provider for. + * @param style The style whose provider is queried. + * @returns An implementation that can calculate visual bounds. */ getBoundsProvider(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IBoundsProvider; /** @@ -72048,16 +71935,16 @@ declare namespace system{ * {@link yfiles.styles.TemplateNodeStyleRenderer#configure} only if needed, i.e. if they decide to return this or an instance that * depends on a correctly configured this. *

    - * @param {yfiles.graph.INode} node The node to query the context for. The value will be stored in the {@link yfiles.styles.TemplateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.TemplateNodeStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param node The node to query the context for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateNodeStyleRenderer#lookup */ getContext(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.graph.ILookup; /** * Gets the context by delegating to {@link yfiles.styles.TemplateNodeStyleBase#contextLookup}. - * @param {yfiles.styles.TemplateNodeStyleBase} style - * @returns {yfiles.graph.IContextLookup} + * @param style + * @returns * @protected */ getContextLookup(style:yfiles.styles.TemplateNodeStyleBase):yfiles.graph.IContextLookup; @@ -72067,25 +71954,25 @@ declare namespace system{ * If {@link yfiles.styles.TemplateNodeStyleBase#contextLookup} provides an implementation of the {@link yfiles.input.IHitTestable} interface than this instance will be returned, otherwise * the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} will be used to perform the hit testing. *

    - * @param {yfiles.graph.INode} node The node to query the tester for. - * @param {yfiles.styles.INodeStyle} style The style whose tester is queried. - * @returns {yfiles.input.IHitTestable} An implementation that can perform the hit testing. + * @param node The node to query the tester for. + * @param style The style whose tester is queried. + * @returns An implementation that can perform the hit testing. * @see yfiles.styles.TemplateNodeStyleRenderer#isHit */ getHitTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IHitTestable; /** * Gets the insets by delegating to {@link yfiles.styles.TemplateNodeStyleBase#insets}. - * @param {yfiles.styles.TemplateNodeStyleBase} style - * @returns {yfiles.geometry.Insets} + * @param style + * @returns * @protected */ getInsets(style:yfiles.styles.TemplateNodeStyleBase):yfiles.geometry.Insets; /** * Tries to use the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} to perform the intersection calculation, otherwise reverts to default (rectangular) * behavior. - * @param {yfiles.geometry.Point} inner - * @param {yfiles.geometry.Point} outer - * @returns {yfiles.geometry.Point} + * @param inner + * @param outer + * @returns */ getIntersection(inner:yfiles.geometry.Point,outer:yfiles.geometry.Point):yfiles.geometry.Point; /** @@ -72095,52 +71982,52 @@ declare namespace system{ * otherwise the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} will be used to determine the marquee intersection test with the visual representation of * the node. *

    - * @param {yfiles.graph.INode} node The node to query the tester for. - * @param {yfiles.styles.INodeStyle} style The style whose tester is queried. - * @returns {yfiles.input.IMarqueeTestable} An implementation that can test for marquee intersections. + * @param node The node to query the tester for. + * @param style The style whose tester is queried. + * @returns An implementation that can test for marquee intersections. * @see yfiles.styles.TemplateNodeStyleRenderer#isInBox */ getMarqueeTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.input.IMarqueeTestable; /** * Gets the minimum size by delegating to {@link yfiles.styles.TemplateNodeStyleBase#minimumSize}. - * @param {yfiles.styles.TemplateNodeStyleBase} style - * @returns {yfiles.geometry.Size} + * @param style + * @returns * @protected */ getMinimumSize(style:yfiles.styles.TemplateNodeStyleBase):yfiles.geometry.Size; /** * Gets the normalized outline by delegating to {@link yfiles.styles.TemplateNodeStyleBase#normalizedOutline}. - * @param {yfiles.styles.TemplateNodeStyleBase} style - * @returns {yfiles.geometry.GeneralPath} + * @param style + * @returns * @protected */ getNormalizedOutline(style:yfiles.styles.TemplateNodeStyleBase):yfiles.geometry.GeneralPath; /** * Tries to use the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} to create the outline shape path, otherwise reverts to default (rectangular) behavior. - * @returns {yfiles.geometry.GeneralPath} + * @returns */ getOutline():yfiles.geometry.GeneralPath; /** * Calculates the preferred size for the given node and style in the provided context. - * @param {yfiles.view.IRenderContext} context The context for which the preferred size should be calculated. - * @param {yfiles.graph.INode} node The node instance. - * @param {yfiles.styles.INodeStyle} style The style instance to apply. - * @returns {yfiles.geometry.Size} The preferred size for the given label and style. + * @param context The context for which the preferred size should be calculated. + * @param node The node instance. + * @param style The style instance to apply. + * @returns The preferred size for the given label and style. * @see yfiles.styles.TemplateNodeStyleRenderer#getPreferredSizeCore */ getPreferredSize(context:yfiles.view.IRenderContext,node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.geometry.Size; /** * Calculates the preferred size for the given node and style. - * @param {yfiles.graph.INode} node The node instance. - * @param {yfiles.styles.INodeStyle} style The style instance to apply. - * @returns {yfiles.geometry.Size} The preferred size for the given label and style. + * @param node The node instance. + * @param style The style instance to apply. + * @returns The preferred size for the given label and style. * @see yfiles.styles.TemplateNodeStyleRenderer#getPreferredSizeCore */ getPreferredSize(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.geometry.Size; /** * Calculates the preferred size given the current state of the renderer for the given context. - * @param {yfiles.view.IRenderContext} context The render context for which the preferred size should be calculated. - * @returns {yfiles.geometry.Size} The size as suggested by this renderer. + * @param context The render context for which the preferred size should be calculated. + * @returns The size as suggested by this renderer. * @protected */ getPreferredSizeCore(context:yfiles.view.IRenderContext):yfiles.geometry.Size; @@ -72150,9 +72037,9 @@ declare namespace system{ * If {@link yfiles.styles.TemplateNodeStyleBase#contextLookup} provides an implementation of the {@link yfiles.styles.IShapeGeometry} interface than this instance will be returned, * otherwise the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} will be used to determine the outline of the visual representation of a node. *

    - * @param {yfiles.graph.INode} node The node to query the geometry for. - * @param {yfiles.styles.INodeStyle} style The style for which the geometry is queried. - * @returns {yfiles.styles.IShapeGeometry} An implementation that describes the outline geometry of the shape. + * @param node The node to query the geometry for. + * @param style The style for which the geometry is queried. + * @returns An implementation that describes the outline geometry of the shape. * @see yfiles.styles.TemplateNodeStyleRenderer#isInside * @see yfiles.styles.TemplateNodeStyleRenderer#getOutline */ @@ -72165,47 +72052,47 @@ declare namespace system{ * the subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.TemplateNodeStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.INode} node The node to query visibility tests. The value will be stored in the {@link yfiles.styles.TemplateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.TemplateNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param node The node to query visibility tests. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateNodeStyleRenderer#isVisible */ getVisibilityTestable(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and node parameters, calls {@link yfiles.styles.TemplateNodeStyleRenderer#configure} and returns this. - * @param {yfiles.graph.INode} node The node to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.TemplateNodeStyleRenderer#node} property. - * @param {yfiles.styles.INodeStyle} style The style to associate with the node. The value will be stored in the {@link yfiles.styles.TemplateNodeStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param node The node to retrieve the {@link } for. The value will be stored in the {@link #node} property. + * @param style The style to associate with the node. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplateNodeStyleRenderer#createVisual * @see yfiles.styles.TemplateNodeStyleRenderer#updateVisual */ getVisualCreator(node:yfiles.graph.INode,style:yfiles.styles.INodeStyle):yfiles.view.IVisualCreator; /** * Tries to use the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} to perform the hit test analysis, otherwise reverts to default (rectangular) behavior. - * @param {yfiles.input.IInputModeContext} context the context the hit test is performed in - * @param {yfiles.geometry.Point} location the hit point in world coordinates - * @returns {boolean} whether something has been hit + * @param context the context the hit test is performed in + * @param location the hit point in world coordinates + * @returns whether something has been hit */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * Tries to use the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} to perform the marquee intersection analysis, otherwise reverts to default (rectangular) * behavior. - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** * Tries to use the {@link yfiles.styles.TemplateNodeStyleRenderer#getNormalizedOutline outline shape} to perform the contains test, otherwise reverts to default (rectangular) behavior. - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param location + * @returns */ isInside(location:yfiles.geometry.Point):boolean; /** * Determines visibility by checking for an intersection with the {@link yfiles.styles.TemplateNodeStyleRenderer#layout}. - * @param {yfiles.view.ICanvasContext} context The context. - * @param {yfiles.geometry.Rect} rectangle The current clip - * @returns {boolean} Whether the {@link yfiles.styles.TemplateNodeStyleRenderer#layout} is visible in the clip. + * @param context The context. + * @param rectangle The current clip + * @returns Whether the {@link #layout} is visible in the clip. */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -72215,15 +72102,15 @@ declare namespace system{ * or {@link yfiles.input.INodeSizeConstraintProvider} implementations if asked for. Last, it returns this class if it implements * the queried type. *

    - * @param {yfiles.lang.Class} type The type to query an instance for. - * @returns {Object} The implementation or null. + * @param type The type to query an instance for. + * @returns The implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * Updates the component correspondingly. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @param {yfiles.view.Visual} oldVisual The currently rendered visual. - * @returns {yfiles.view.Visual} The visual that is used for rendering the node. + * @param context The context for the creation. + * @param oldVisual The currently rendered visual. + * @returns The visual that is used for rendering the node. */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -72252,7 +72139,7 @@ declare namespace system{ * Base class for port styles that use a SVG snippet as template for the visualization of {@link yfiles.graph.IPort}s. * @see yfiles.styles.TemplatePortStyle * @see yfiles.styles.TemplatePortStyle - * @class yfiles.styles.TemplatePortStyleBase + * @class * @implements {yfiles.styles.IPortStyle} * @implements {yfiles.lang.IPropertyObservable} * @implements {yfiles.lang.ICloneable} @@ -72261,35 +72148,33 @@ declare namespace system{ export class TemplatePortStyleBase { /** * Constructs a new instance using the provided renderer. - * @param {yfiles.styles.TemplatePortStyleRenderer} renderer + * @param renderer * @protected - * @constructor */ constructor(renderer:yfiles.styles.TemplatePortStyleRenderer); /** * Constructs a new instance of this style with default values. * @protected - * @constructor */ constructor(); /** * Performs a shallow clone of this instance, except for the value of {@link yfiles.styles.TemplatePortStyleBase#styleTag} which is cloned, too, if it can be cloned. - * @returns {Object} A clone of this instance. + * @returns A clone of this instance. */ clone():Object; /** * Factory method that is called by the {@link yfiles.styles.TemplatePortStyleRenderer} to create the visual that will be used for * the display of the port. - * @param {yfiles.view.IRenderContext} context The context for which the visual should be created. - * @param {yfiles.graph.IPort} port The port that will be rendered. - * @returns {yfiles.view.SvgVisual} The readily styled visual. + * @param context The context for which the visual should be created. + * @param port The port that will be rendered. + * @returns The readily styled visual. */ createTemplate(context:yfiles.view.IRenderContext,port:yfiles.graph.IPort):yfiles.view.SvgVisual; /** * Convenience method that determines the preferred {@link yfiles.styles.TemplatePortStyleBase#renderSize} of the port if this style was applied. - * @param {yfiles.view.IRenderContext} context The context for which the size should be calculated. - * @param {yfiles.graph.IPort} port The port to determine the preferred size of. - * @returns {yfiles.geometry.Size} The preferred size. + * @param context The context for which the size should be calculated. + * @param port The port to determine the preferred size of. + * @returns The preferred size. */ getPreferredSize(context:yfiles.view.IRenderContext,port:yfiles.graph.IPort):yfiles.geometry.Size; /** @@ -72303,19 +72188,19 @@ declare namespace system{ static loadAllTemplates():void; /** * Raises the {@link yfiles.styles.TemplatePortStyleBase#addPropertyChangedListener PropertyChanged} event. - * @param {yfiles.lang.PropertyChangedEventArgs} evt The {@link yfiles.lang.PropertyChangedEventArgs} instance containing the event data. + * @param evt The {@link } instance containing the event data. * @protected */ onPropertyChanged(evt:yfiles.lang.PropertyChangedEventArgs):void; /** * Adds the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to add. + * @param listener The listener to add. * @see yfiles.styles.TemplatePortStyleBase#removePropertyChangedListener */ addPropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; /** * Removes the given listener for the PropertyChanged event that occurs when a property value changes. - * @param {function(Object, yfiles.lang.PropertyChangedEventArgs): void} listener The listener to remove. + * @param listener The listener to remove. * @see yfiles.styles.TemplatePortStyleBase#addPropertyChangedListener */ removePropertyChangedListener(listener:(sender:Object,args:yfiles.lang.PropertyChangedEventArgs)=>void):void; @@ -72403,27 +72288,22 @@ declare namespace system{ *
  • itemHighlighted: Whether the element is highlighted
  • *
  • styleTag: The tag associated with the element's style instance
  • * - * @class yfiles.styles.TemplatePortStyle + * @class * @extends {yfiles.styles.TemplatePortStyleBase} */ export interface TemplatePortStyle extends yfiles.styles.TemplatePortStyleBase{} export class TemplatePortStyle { /** * Creates a new instance using the given render template id and a custom renderer instance. - * @param {string} renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {yfiles.styles.TemplatePortStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param renderTemplateId The id of the SVG snippet that will be used for the component. + * @param renderer The custom renderer for this style instance. */ constructor(renderTemplateId:string,renderer:yfiles.styles.TemplatePortStyleRenderer); /** * Creates a new instance using the given render template id and a custom renderer instance. * @param {Object} options The parameters to pass. - * @param {string} options.renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {yfiles.styles.TemplatePortStyleRenderer} options.renderer The custom renderer for this style instance. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplatePortStyleBase#styleTag} property on the created object. - *

    + * @param options.renderTemplateId The id of the SVG snippet that will be used for the component. + * @param options.renderer The custom renderer for this style instance. * @param {yfiles.geometry.GeneralPath} options.normalizedOutline The normalized outline of a port that will be displayed using the {@link yfiles.styles.TemplatePortStyleBase#createTemplate created visual}. *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#normalizedOutline} property on the created object. @@ -72432,25 +72312,19 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#renderSize} property on the created object. *

    - * @constructor */ - constructor(options:{renderTemplateId:string,renderer:yfiles.styles.TemplatePortStyleRenderer,styleTag?:Object,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); + constructor(options:{renderTemplateId:string,renderer:yfiles.styles.TemplatePortStyleRenderer,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); /** * Creates a new instance using the given resource key and a custom renderer instance.{@link yfiles.styles.TemplatePortStyleRenderer} * as renderer. - * @param {string} renderTemplateId The id of the SVG snippet that will be used for the component. - * @constructor + * @param renderTemplateId The id of the SVG snippet that will be used for the component. */ constructor(renderTemplateId:string); /** * Creates a new instance using the given resource key and a custom renderer instance.{@link yfiles.styles.TemplatePortStyleRenderer} * as renderer. * @param {Object} options The parameters to pass. - * @param {string} options.renderTemplateId The id of the SVG snippet that will be used for the component. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplatePortStyleBase#styleTag} property on the created object. - *

    + * @param options.renderTemplateId The id of the SVG snippet that will be used for the component. * @param {yfiles.geometry.GeneralPath} options.normalizedOutline The normalized outline of a port that will be displayed using the {@link yfiles.styles.TemplatePortStyleBase#createTemplate created visual}. *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#normalizedOutline} property on the created object. @@ -72459,16 +72333,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#renderSize} property on the created object. *

    - * @constructor */ - constructor(options:{renderTemplateId:string,styleTag?:Object,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); + constructor(options:{renderTemplateId:string,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); /** * Creates a new instance with no render template id and {@link yfiles.styles.TemplatePortStyleRenderer} as renderer. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplatePortStyleBase#styleTag} property on the created object. - *

    * @param {yfiles.geometry.GeneralPath} options.normalizedOutline The normalized outline of a port that will be displayed using the {@link yfiles.styles.TemplatePortStyleBase#createTemplate created visual}. *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#normalizedOutline} property on the created object. @@ -72481,9 +72350,8 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplatePortStyle#styleResourceKey} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size,styleResourceKey?:string}); + constructor(options?:{normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size,styleResourceKey?:string}); /** * Gets or sets the {@link string} that will be used to look up the template that is applied to the component. *

    @@ -72500,7 +72368,7 @@ declare namespace system{ * instances. * @see yfiles.styles.TemplatePortStyle * @see yfiles.styles.StringTemplatePortStyle - * @class yfiles.styles.TemplatePortStyleRenderer + * @class * @implements {yfiles.styles.IPortStyleRenderer} * @implements {yfiles.view.IBoundsProvider} * @implements {yfiles.view.IVisibilityTestable} @@ -72526,21 +72394,21 @@ declare namespace system{ /** * Creates the visual by delegating to {@link yfiles.styles.TemplatePortStyleBase#createTemplate} and then initializing the visual * with the context. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @returns {yfiles.view.Visual} The visual that is used for rendering the port. + * @param context The context for the creation. + * @returns The visual that is used for rendering the port. */ createVisual(context:yfiles.view.IRenderContext):yfiles.view.Visual; /** * - * @param {yfiles.view.ICanvasContext} context - * @returns {yfiles.geometry.Rect} + * @param context + * @returns */ getBounds(context:yfiles.view.ICanvasContext):yfiles.geometry.Rect; /** * Configures the style and port parameters, calls {@link yfiles.styles.TemplatePortStyleRenderer#configure} and returns this. - * @param {yfiles.graph.IPort} port The port to retrieve the bounds provider for. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#port} property. - * @param {yfiles.styles.IPortStyle} style The style to associate with the port. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#style} property. - * @returns {yfiles.view.IBoundsProvider} this + * @param port The port to retrieve the bounds provider for. The value will be stored in the {@link #port} property. + * @param style The style to associate with the port. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplatePortStyleRenderer#getBounds */ getBoundsProvider(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.view.IBoundsProvider; @@ -72553,54 +72421,54 @@ declare namespace system{ * {@link yfiles.styles.TemplatePortStyleRenderer#configure} only if needed, i.e. if they decide to return this or an instance that * depends on a correctly configured this. *

    - * @param {yfiles.graph.IPort} port The port to query the context for. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#port} property. - * @param {yfiles.styles.IPortStyle} style The style to associate with the port. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#style} property. - * @returns {yfiles.graph.ILookup} this + * @param port The port to query the context for. The value will be stored in the {@link #port} property. + * @param style The style to associate with the port. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplatePortStyleRenderer#lookup */ getContext(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.graph.ILookup; /** * Configures the style and port parameters, calls {@link yfiles.styles.TemplatePortStyleRenderer#configure} and returns this. - * @param {yfiles.graph.IPort} port The port to query hit test with. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#port} property. - * @param {yfiles.styles.IPortStyle} style The style to associate with the port. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#style} property. - * @returns {yfiles.input.IHitTestable} this + * @param port The port to query hit test with. The value will be stored in the {@link #port} property. + * @param style The style to associate with the port. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplatePortStyleRenderer#isHit */ getHitTestable(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.input.IHitTestable; /** * Configures the style and port parameters, calls {@link yfiles.styles.TemplatePortStyleRenderer#configure} and returns this. - * @param {yfiles.graph.IPort} port The port to query marquee intersection tests. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#port} property. - * @param {yfiles.styles.IPortStyle} style The style to associate with the port. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#style} property. - * @returns {yfiles.input.IMarqueeTestable} this + * @param port The port to query marquee intersection tests. The value will be stored in the {@link #port} property. + * @param style The style to associate with the port. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplatePortStyleRenderer#isInBox */ getMarqueeTestable(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.input.IMarqueeTestable; /** * Gets the normalized outline by delegating to {@link yfiles.styles.TemplatePortStyleBase#normalizedOutline}. - * @param {yfiles.styles.TemplatePortStyleBase} style - * @returns {yfiles.geometry.GeneralPath} + * @param style + * @returns * @protected */ getNormalizedOutline(style:yfiles.styles.TemplatePortStyleBase):yfiles.geometry.GeneralPath; /** * Calculates the preferred size for the given port and style. - * @param {yfiles.view.IRenderContext} context The render context which can be null. - * @param {yfiles.graph.IPort} port The port instance. - * @param {yfiles.styles.TemplatePortStyleBase} style The style instance to apply. - * @returns {yfiles.geometry.Size} The preferred size for the given port and style. + * @param context The render context which can be null. + * @param port The port instance. + * @param style The style instance to apply. + * @returns The preferred size for the given port and style. * @see yfiles.styles.TemplatePortStyleRenderer#getPreferredSizeCore */ getPreferredSize(context:yfiles.view.IRenderContext,port:yfiles.graph.IPort,style:yfiles.styles.TemplatePortStyleBase):yfiles.geometry.Size; /** * Gets the preferred size for the current configuration. - * @param {yfiles.view.IRenderContext} context - * @returns {yfiles.geometry.Size} The preferred size. + * @param context + * @returns The preferred size. * @protected */ getPreferredSizeCore(context:yfiles.view.IRenderContext):yfiles.geometry.Size; /** * Gets the size of the rendering from the style. - * @returns {yfiles.geometry.Size} The {@link yfiles.styles.TemplatePortStyleBase#renderSize}. + * @returns The {@link #renderSize}. * @protected */ getRenderSize():yfiles.geometry.Size; @@ -72612,33 +72480,33 @@ declare namespace system{ * the subclass implementation depends on this instance to be configured, it needs to call Configure in * {@link yfiles.styles.TemplatePortStyleRenderer#isVisible}. *

    - * @param {yfiles.graph.IPort} port The port to query visibility tests. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#port} property. - * @param {yfiles.styles.IPortStyle} style The style to associate with the port. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#style} property. - * @returns {yfiles.view.IVisibilityTestable} this + * @param port The port to query visibility tests. The value will be stored in the {@link #port} property. + * @param style The style to associate with the port. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplatePortStyleRenderer#isVisible */ getVisibilityTestable(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.view.IVisibilityTestable; /** * Configures the style and port parameters, calls {@link yfiles.styles.TemplatePortStyleRenderer#configure} and returns this. - * @param {yfiles.graph.IPort} port The port to retrieve the {@link yfiles.view.IVisualCreator} for. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#port} property. - * @param {yfiles.styles.IPortStyle} style The style to associate with the port. The value will be stored in the {@link yfiles.styles.TemplatePortStyleRenderer#style} property. - * @returns {yfiles.view.IVisualCreator} this + * @param port The port to retrieve the {@link } for. The value will be stored in the {@link #port} property. + * @param style The style to associate with the port. The value will be stored in the {@link #style} property. + * @returns this * @see yfiles.styles.TemplatePortStyleRenderer#createVisual * @see yfiles.styles.TemplatePortStyleRenderer#updateVisual */ getVisualCreator(port:yfiles.graph.IPort,style:yfiles.styles.IPortStyle):yfiles.view.IVisualCreator; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Point} location - * @returns {boolean} + * @param context + * @param location + * @returns */ isHit(context:yfiles.input.IInputModeContext,location:yfiles.geometry.Point):boolean; /** * - * @param {yfiles.input.IInputModeContext} context - * @param {yfiles.geometry.Rect} rectangle - * @returns {boolean} + * @param context + * @param rectangle + * @returns */ isInBox(context:yfiles.input.IInputModeContext,rectangle:yfiles.geometry.Rect):boolean; /** @@ -72649,9 +72517,9 @@ declare namespace system{ * Subclasses may choose to override this behavior for improved performance but need to make sure to call {@link yfiles.styles.TemplatePortStyleRenderer#configure} if they depend on a configured * instance. *

    - * @param {yfiles.view.ICanvasContext} context the current canvas context - * @param {yfiles.geometry.Rect} rectangle the clip bounds - * @returns {boolean} true if the port may be painted within the clip bounds. + * @param context the current canvas context + * @param rectangle the clip bounds + * @returns true if the port may be painted within the clip bounds. * @see yfiles.styles.TemplatePortStyleRenderer#getVisibilityTestable */ isVisible(context:yfiles.view.ICanvasContext,rectangle:yfiles.geometry.Rect):boolean; @@ -72665,24 +72533,24 @@ declare namespace system{ * This implementation will check if type.IsInstanceOfType(this) and will call {@link yfiles.styles.TemplatePortStyleRenderer#configure} * on success and return this. *

    - * @param {yfiles.lang.Class} type The type to query for. - * @returns {Object} An implementation or null. + * @param type The type to query for. + * @returns An implementation or null. */ lookup(type:yfiles.lang.Class):Object; /** * Delegates to the {@link yfiles.styles.TemplatePortStyleBase}'s {@link yfiles.styles.TemplatePortStyleBase#contextLookup}. - * @param {yfiles.styles.TemplatePortStyleBase} style - * @param {yfiles.graph.IPort} port - * @param {yfiles.lang.Class} type - * @returns {Object} + * @param style + * @param port + * @param type + * @returns * @protected */ lookupContext(style:yfiles.styles.TemplatePortStyleBase,port:yfiles.graph.IPort,type:yfiles.lang.Class):Object; /** * Updates the component correspondingly. - * @param {yfiles.view.IRenderContext} context The context for the creation. - * @param {yfiles.view.Visual} oldVisual The currently rendered visual. - * @returns {yfiles.view.Visual} The visual that is used for rendering the port. + * @param context The context for the creation. + * @param oldVisual The currently rendered visual. + * @returns The visual that is used for rendering the port. */ updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual):yfiles.view.Visual; /** @@ -72735,25 +72603,20 @@ declare namespace system{ *
  • itemHighlighted: Whether the element is highlighted
  • *
  • styleTag: The tag associated with the element's style instance
  • * - * @class yfiles.styles.StringTemplatePortStyle + * @class * @extends {yfiles.styles.TemplatePortStyleBase} */ export interface StringTemplatePortStyle extends yfiles.styles.TemplatePortStyleBase{} export class StringTemplatePortStyle { /** * Creates a new instance using the provided renderer. - * @param {yfiles.styles.TemplatePortStyleRenderer} renderer The custom renderer for this style instance. - * @constructor + * @param renderer The custom renderer for this style instance. */ constructor(renderer:yfiles.styles.TemplatePortStyleRenderer); /** * Creates a new instance using the provided renderer. * @param {Object} options The parameters to pass. - * @param {yfiles.styles.TemplatePortStyleRenderer} options.renderer The custom renderer for this style instance. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplatePortStyleBase#styleTag} property on the created object. - *

    + * @param options.renderer The custom renderer for this style instance. * @param {yfiles.geometry.GeneralPath} options.normalizedOutline The normalized outline of a port that will be displayed using the {@link yfiles.styles.TemplatePortStyleBase#createTemplate created visual}. *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#normalizedOutline} property on the created object. @@ -72762,23 +72625,17 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#renderSize} property on the created object. *

    - * @constructor */ - constructor(options:{renderer:yfiles.styles.TemplatePortStyleRenderer,styleTag?:Object,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); + constructor(options:{renderer:yfiles.styles.TemplatePortStyleRenderer,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); /** * Initializes a new instance of this class and sets the given string as its {@link yfiles.styles.StringTemplatePortStyle#svgContent}. - * @param {string} svgContent The SVG snippet to use as template. - * @constructor + * @param svgContent The SVG snippet to use as template. */ constructor(svgContent:string); /** * Initializes a new instance of this class and sets the given string as its {@link yfiles.styles.StringTemplatePortStyle#svgContent}. * @param {Object} options The parameters to pass. - * @param {string} options.svgContent The SVG snippet to use as template. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplatePortStyleBase#styleTag} property on the created object. - *

    + * @param options.svgContent The SVG snippet to use as template. * @param {yfiles.geometry.GeneralPath} options.normalizedOutline The normalized outline of a port that will be displayed using the {@link yfiles.styles.TemplatePortStyleBase#createTemplate created visual}. *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#normalizedOutline} property on the created object. @@ -72787,16 +72644,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#renderSize} property on the created object. *

    - * @constructor */ - constructor(options:{svgContent:string,styleTag?:Object,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); + constructor(options:{svgContent:string,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size}); /** * Creates a new instance using {@link yfiles.styles.TemplatePortStyleRenderer} as renderer. * @param {Object} [options=null] The parameters to pass. - * @param {Object} options.styleTag The tag that is associated with this style instance. - *

    - * This option sets the {@link yfiles.styles.TemplatePortStyleBase#styleTag} property on the created object. - *

    * @param {yfiles.geometry.GeneralPath} options.normalizedOutline The normalized outline of a port that will be displayed using the {@link yfiles.styles.TemplatePortStyleBase#createTemplate created visual}. *

    * This option sets the {@link yfiles.styles.TemplatePortStyleBase#normalizedOutline} property on the created object. @@ -72809,9 +72661,8 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.StringTemplatePortStyle#svgContent} property on the created object. *

    - * @constructor */ - constructor(options?:{styleTag?:Object,normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size,svgContent?:string}); + constructor(options?:{normalizedOutline?:yfiles.geometry.GeneralPath,renderSize?:yfiles.geometry.Size,svgContent?:string}); /** * Gets or sets the SVG content that is the template for the port visualization. * @default null @@ -72820,106 +72671,6 @@ declare namespace system{ svgContent:string; static $class:yfiles.lang.Class; } - export enum TableRenderingOrder{ - /** - * Draw columns, then rows - */ - COLUMNS_FIRST, - /** - * Draw rows, then columns - */ - ROWS_FIRST - } - /** - * An abstract base class that makes it possible to easily implement a custom {@link yfiles.styles.IStripeStyle}. - *

    - * The only method that needs to be implemented by subclasses is {@link yfiles.styles.StripeStyleBase#createVisual}, however to - * improve rendering performance it is highly recommended to implement at least - * {@link yfiles.styles.StripeStyleBase#updateVisual}, too. - *

    - *

    - * This implementation differs from the straightforward {@link yfiles.styles.IStripeStyle} implementation in that there is no - * visible separation between the style and its - * {@link yfiles.styles.IStripeStyleRenderer}. Instead the renderer used by the base class is fixed and delegates all calls back to - * the style instance. - *

    - * @class yfiles.styles.StripeStyleBase - * @implements {yfiles.styles.IStripeStyle} - */ - export interface StripeStyleBase extends Object,yfiles.styles.IStripeStyle{} - export class StripeStyleBase { - /** - * Initializes a new instance of the {@link yfiles.styles.StripeStyleBase} class. - * @protected - * @constructor - */ - constructor(); - /** - * Creates a new object that is a copy of the current instance. - *

    - * Immutable subclasses should consider returning this. - *

    - * @returns {Object} A new object that is a copy of this instance using {@link Object#memberwiseClone}. - */ - clone():Object; - /** - * Callback that creates the visual. - *

    - * This method is called in response to a {@link yfiles.view.IVisualCreator#createVisual} call to the instance that has been - * queried from the {@link yfiles.styles.StripeStyleBase#renderer}. - *

    - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.graph.IStripe} stripe The stripe to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. - * @see yfiles.styles.StripeStyleBase#updateVisual - * @protected - * @abstract - */ - createVisual(context:yfiles.view.IRenderContext,stripe:yfiles.graph.IStripe):yfiles.view.Visual; - /** - * Performs the {@link yfiles.graph.ILookup#lookup} operation for the {@link yfiles.styles.IStripeStyleRenderer#getContext} that has been - * queried from the {@link yfiles.styles.StripeStyleBase#renderer}. - *

    - * This implementation yields null for everything but: - *

    - *
      - *
    • {@link yfiles.view.IVisualCreator}
    • - *
    • {@link yfiles.graph.ILookup}
    • - *
    - *

    - * For these interfaces an implementation will be returned that delegates to the methods in this instance. - *

    - * @param {yfiles.graph.IStripe} stripe The stripe to use for the context lookup. - * @param {yfiles.lang.Class} type The type to query. - * @returns {Object} An implementation of the type or null. - * @protected - */ - lookup(stripe:yfiles.graph.IStripe,type:yfiles.lang.Class):Object; - /** - * Callback that updates the visual previously created by {@link yfiles.styles.StripeStyleBase#createVisual}. - *

    - * This method is called in response to a {@link yfiles.view.IVisualCreator#updateVisual} call to the instance that has been - * queried from the {@link yfiles.styles.StripeStyleBase#renderer}. This implementation simply delegates to {@link yfiles.styles.StripeStyleBase#createVisual} so subclasses - * should override to improve rendering performance. - *

    - * @param {yfiles.view.IRenderContext} context - * @param {yfiles.view.Visual} oldVisual The visual that has been created in the call to {@link yfiles.styles.StripeStyleBase#createVisual}. - * @param {yfiles.graph.IStripe} stripe The stripe to which this style instance is assigned. - * @returns {yfiles.view.Visual} The visual as required by the {@link yfiles.view.IVisualCreator#createVisual} interface. - * @see yfiles.styles.StripeStyleBase#createVisual - * @protected - */ - updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual,stripe:yfiles.graph.IStripe):yfiles.view.Visual; - /** - * Gets the renderer implementation for this instance. - *

    - * The private implementation will delegate all API calls back to this instance. - *

    - * @type {yfiles.styles.IStripeStyleRenderer} - */ - renderer:yfiles.styles.IStripeStyleRenderer; - static $class:yfiles.lang.Class; - } /** * Style implementation for {@link yfiles.graph.IStripe} instances in an {@link yfiles.graph.ITable}. *

    @@ -72968,9 +72719,9 @@ declare namespace system{ *

    * Implementations may return {@link yfiles.graph.ILookup#EMPTY} if they don't support this, but may not return null. *

    - * @param {yfiles.graph.IStripe} stripe The stripe to provide a context instance for. - * @param {yfiles.styles.IStripeStyle} style The style to use for the context. - * @returns {yfiles.graph.ILookup} An non-null lookup implementation. + * @param stripe The stripe to provide a context instance for. + * @param style The style to use for the context. + * @returns An non-null lookup implementation. * @see yfiles.graph.ILookup#EMPTY * @see yfiles.graph.ILookup * @abstract @@ -72982,11 +72733,11 @@ declare namespace system{ *

    * This method may return a flyweight implementation, but never null. *

    - * @param {yfiles.graph.IStripe} stripe The nstripeode to provide an instance for - * @param {yfiles.styles.IStripeStyle} style The style to use for the creation of the visual - * @returns {yfiles.view.IVisualCreator} An implementation that may be used to subsequently create or update the visual for the stripe. Clients should not cache + * @param stripe The nstripeode to provide an instance for + * @param style The style to use for the creation of the visual + * @returns An implementation that may be used to subsequently create or update the visual for the stripe. Clients should not cache * this instance and must always call this method immediately before using the value returned. This enables the use of the - * flyweight design pattern for implementations. This method may not return null but should yield a {@link yfiles.view.VoidVisualCreator#INSTANCE void} implementation + * flyweight design pattern for implementations. This method may not return null but should yield a {@link #INSTANCE void} implementation * instead. * @see yfiles.view.VoidVisualCreator#INSTANCE * @abstract @@ -73004,7 +72755,7 @@ declare namespace system{ * instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.graph.IStripe#style} property of an * {@link yfiles.graph.IStripe}. *

    - * @class yfiles.styles.VoidStripeStyle + * @class * @implements {yfiles.styles.IStripeStyle} * @final */ @@ -73012,16 +72763,16 @@ declare namespace system{ export class VoidStripeStyle { /** * Returns this. - * @returns {Object} this + * @returns this */ clone():Object; /** * The {@link yfiles.styles.VoidStripeStyle} singleton. * @const * @static - * @type {yfiles.styles.IStripeStyle} + * @type {yfiles.styles.VoidStripeStyle} */ - static INSTANCE:yfiles.styles.IStripeStyle; + static INSTANCE:yfiles.styles.VoidStripeStyle; /** * Yields the {@link yfiles.styles.VoidStripeStyleRenderer#INSTANCE VoidStripeStyleRenderer instance}. * @see yfiles.styles.IStripeStyle#renderer @@ -73037,7 +72788,7 @@ declare namespace system{ * this class instead of null where null is not allowed. For example you cannot assign null to the {@link yfiles.styles.IStripeStyle#renderer} property of an * {@link yfiles.styles.IStripeStyle}. *

    - * @class yfiles.styles.VoidStripeStyleRenderer + * @class * @implements {yfiles.styles.IStripeStyleRenderer} * @final */ @@ -73045,16 +72796,16 @@ declare namespace system{ export class VoidStripeStyleRenderer { /** * Yields the {@link yfiles.graph.ILookup#EMPTY} that will not yield anything. - * @param {yfiles.graph.IStripe} stripe - * @param {yfiles.styles.IStripeStyle} style - * @returns {yfiles.graph.ILookup} + * @param stripe + * @param style + * @returns */ getContext(stripe:yfiles.graph.IStripe,style:yfiles.styles.IStripeStyle):yfiles.graph.ILookup; /** * Yields the {@link yfiles.view.VoidVisualCreator#INSTANCE} that will do nothing. - * @param {yfiles.graph.IStripe} stripe - * @param {yfiles.styles.IStripeStyle} style - * @returns {yfiles.view.IVisualCreator} + * @param stripe + * @param style + * @returns */ getVisualCreator(stripe:yfiles.graph.IStripe,style:yfiles.styles.IStripeStyle):yfiles.view.IVisualCreator; /** @@ -73068,7 +72819,7 @@ declare namespace system{ } /** * A stripe style decorator that uses a node style instance to render the stripe. - * @class yfiles.styles.NodeStyleStripeStyleAdapter + * @class * @implements {yfiles.styles.IStripeStyle} */ export interface NodeStyleStripeStyleAdapter extends Object,yfiles.styles.IStripeStyle{} @@ -73079,8 +72830,7 @@ declare namespace system{ * Note that the styles will be stored by reference, thus modifying the style will directly affect the rendering of this * instance. *

    - * @param {yfiles.styles.INodeStyle} nodeStyle The node style to use for rendering the stripe. - * @constructor + * @param nodeStyle The node style to use for rendering the stripe. */ constructor(nodeStyle:yfiles.styles.INodeStyle); /** @@ -73094,12 +72844,11 @@ declare namespace system{ *

    * This option sets the {@link yfiles.styles.NodeStyleStripeStyleAdapter#nodeStyle} property on the created object. *

    - * @constructor */ constructor(options?:{nodeStyle?:yfiles.styles.INodeStyle}); /** * - * @returns {Object} + * @returns */ clone():Object; /** @@ -73114,6 +72863,105 @@ declare namespace system{ nodeStyle:yfiles.styles.INodeStyle; static $class:yfiles.lang.Class; } + export enum TableRenderingOrder{ + /** + * Draw columns, then rows + */ + COLUMNS_FIRST, + /** + * Draw rows, then columns + */ + ROWS_FIRST + } + /** + * An abstract base class that makes it possible to easily implement a custom {@link yfiles.styles.IStripeStyle}. + *

    + * The only method that needs to be implemented by subclasses is {@link yfiles.styles.StripeStyleBase#createVisual}, however to + * improve rendering performance it is highly recommended to implement at least + * {@link yfiles.styles.StripeStyleBase#updateVisual}, too. + *

    + *

    + * This implementation differs from the straightforward {@link yfiles.styles.IStripeStyle} implementation in that there is no + * visible separation between the style and its + * {@link yfiles.styles.IStripeStyleRenderer}. Instead the renderer used by the base class is fixed and delegates all calls back to + * the style instance. + *

    + * @class + * @implements {yfiles.styles.IStripeStyle} + */ + export interface StripeStyleBase extends Object,yfiles.styles.IStripeStyle{} + export class StripeStyleBase { + /** + * Initializes a new instance of the {@link yfiles.styles.StripeStyleBase} class. + * @protected + */ + constructor(); + /** + * Creates a new object that is a copy of the current instance. + *

    + * Immutable subclasses should consider returning this. + *

    + * @returns A new object that is a copy of this instance using {@link #memberwiseClone}. + */ + clone():Object; + /** + * Callback that creates the visual. + *

    + * This method is called in response to a {@link yfiles.view.IVisualCreator#createVisual} call to the instance that has been + * queried from the {@link yfiles.styles.StripeStyleBase#renderer}. + *

    + * @param context + * @param stripe The stripe to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. + * @see yfiles.styles.StripeStyleBase#updateVisual + * @protected + * @abstract + */ + createVisual(context:yfiles.view.IRenderContext,stripe:yfiles.graph.IStripe):yfiles.view.Visual; + /** + * Performs the {@link yfiles.graph.ILookup#lookup} operation for the {@link yfiles.styles.IStripeStyleRenderer#getContext} that has been + * queried from the {@link yfiles.styles.StripeStyleBase#renderer}. + *

    + * This implementation yields null for everything but: + *

    + *
      + *
    • {@link yfiles.view.IVisualCreator}
    • + *
    • {@link yfiles.graph.ILookup}
    • + *
    + *

    + * For these interfaces an implementation will be returned that delegates to the methods in this instance. + *

    + * @param stripe The stripe to use for the context lookup. + * @param type The type to query. + * @returns An implementation of the type or null. + * @protected + */ + lookup(stripe:yfiles.graph.IStripe,type:yfiles.lang.Class):Object; + /** + * Callback that updates the visual previously created by {@link yfiles.styles.StripeStyleBase#createVisual}. + *

    + * This method is called in response to a {@link yfiles.view.IVisualCreator#updateVisual} call to the instance that has been + * queried from the {@link yfiles.styles.StripeStyleBase#renderer}. This implementation simply delegates to {@link yfiles.styles.StripeStyleBase#createVisual} so subclasses + * should override to improve rendering performance. + *

    + * @param context + * @param oldVisual The visual that has been created in the call to {@link #createVisual}. + * @param stripe The stripe to which this style instance is assigned. + * @returns The visual as required by the {@link #createVisual} interface. + * @see yfiles.styles.StripeStyleBase#createVisual + * @protected + */ + updateVisual(context:yfiles.view.IRenderContext,oldVisual:yfiles.view.Visual,stripe:yfiles.graph.IStripe):yfiles.view.Visual; + /** + * Gets the renderer implementation for this instance. + *

    + * The private implementation will delegate all API calls back to this instance. + *

    + * @type {yfiles.styles.IStripeStyleRenderer} + */ + renderer:yfiles.styles.IStripeStyleRenderer; + static $class:yfiles.lang.Class; + } }export namespace binding{ /** * This class is an adapter that populates a {@link yfiles.binding.GraphBuilderBase#graph} from custom business data. @@ -73141,7 +72989,7 @@ declare namespace system{ * The visual appearance of the graph constructed from the business objects can be configured using the {@link yfiles.graph.IGraph#nodeDefaults}, the {@link yfiles.graph.IGraph#groupNodeDefaults}, and the {@link yfiles.graph.IGraph#edgeDefaults} of * the {@link yfiles.graph.IGraph}. *

    - * @class yfiles.binding.AdjacentNodesGraphBuilder + * @class * @extends {yfiles.binding.GraphBuilderBase} */ export interface AdjacentNodesGraphBuilder extends yfiles.binding.GraphBuilderBase{} @@ -73151,8 +72999,7 @@ declare namespace system{ *

    * The graph will be {@link yfiles.graph.IGraph#clear cleared} and re-built from the data in {@link yfiles.binding.GraphBuilderBase#nodesSource} when {@link yfiles.binding.GraphBuilderBase#buildGraph} is called. *

    - * @param {yfiles.graph.IGraph} graph - * @constructor + * @param graph */ constructor(graph:yfiles.graph.IGraph); /** @@ -73160,20 +73007,20 @@ declare namespace system{ *

    * This class calls this method to create all new edges, and customers may override it to customize edge creation. *

    - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} source The source node of the edge. - * @param {yfiles.graph.INode} target The target node of the edge. - * @returns {yfiles.graph.IEdge} The created edge. + * @param graph The graph. + * @param source The source node of the edge. + * @param target The target node of the edge. + * @returns The created edge. * @protected */ createEdge(graph:yfiles.graph.IGraph,source:yfiles.graph.INode,target:yfiles.graph.INode):yfiles.graph.IEdge; /** * Updates an existing edge connecting the given nodes when {@link yfiles.binding.GraphBuilderBase#updateGraph} is called and the * edge should remain in the graph. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.IEdge} edge The edge to update. - * @param {yfiles.graph.INode} source The source node of the edge. - * @param {yfiles.graph.INode} target The target node of the edge. + * @param graph The graph. + * @param edge The edge to update. + * @param source The source node of the edge. + * @param target The target node of the edge. * @protected */ updateEdge(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,source:yfiles.graph.INode,target:yfiles.graph.INode):void; @@ -73233,7 +73080,7 @@ declare namespace system{ * The visual appearance of the graph constructed from the business objects can be configured using the {@link yfiles.graph.IGraph#nodeDefaults}, the {@link yfiles.graph.IGraph#groupNodeDefaults}, and the {@link yfiles.graph.IGraph#edgeDefaults} of * the {@link yfiles.graph.IGraph}. *

    - * @class yfiles.binding.GraphBuilder + * @class * @extends {yfiles.binding.GraphBuilderBase} */ export interface GraphBuilder extends yfiles.binding.GraphBuilderBase{} @@ -73244,8 +73091,7 @@ declare namespace system{ * The graph will be {@link yfiles.graph.IGraph#clear cleared} and re-built from the data in {@link yfiles.binding.GraphBuilderBase#nodesSource} and {@link yfiles.binding.GraphBuilder#edgesSource} when {@link yfiles.binding.GraphBuilderBase#buildGraph} is * called. *

    - * @param {yfiles.graph.IGraph} graph - * @constructor + * @param graph */ constructor(graph:yfiles.graph.IGraph); /** @@ -73253,19 +73099,19 @@ declare namespace system{ *

    * This class calls this method to create all new edges, and customers may override it to customize edge creation. *

    - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} source The source node of the edge. - * @param {yfiles.graph.INode} target The target node of the edge. - * @param {Object} labelData The optional label data of the edge if an {@link yfiles.binding.GraphBuilder#edgeLabelBinding} is specified. - * @param {Object} businessObject The business data associated with the edge. - * @returns {yfiles.graph.IEdge} The created edge. + * @param graph The graph. + * @param source The source node of the edge. + * @param target The target node of the edge. + * @param labelData The optional label data of the edge if an {@link #edgeLabelBinding} is specified. + * @param businessObject The business data associated with the edge. + * @returns The created edge. * @protected */ createEdge(graph:yfiles.graph.IGraph,source:yfiles.graph.INode,target:yfiles.graph.INode,labelData:Object,businessObject:Object):yfiles.graph.IEdge; /** * Retrieves the associated edge in the {@link yfiles.binding.GraphBuilderBase#graph} for a business object from the {@link yfiles.binding.GraphBuilder#edgesSource}. - * @param {Object} businessObject A business object from the {@link yfiles.binding.GraphBuilder#edgesSource} to get the edge for. - * @returns {yfiles.graph.IEdge} The edge associated with the business object or null for unknown objects. + * @param businessObject A business object from the {@link #edgesSource} to get the edge for. + * @returns The edge associated with the business object or null for unknown objects. * @see yfiles.binding.GraphBuilderBase#getBusinessObject * @see yfiles.binding.GraphBuilderBase#getNode * @see yfiles.binding.GraphBuilderBase#getGroup @@ -73274,10 +73120,10 @@ declare namespace system{ /** * Updates an existing edge when {@link yfiles.binding.GraphBuilderBase#updateGraph} is called and the edge should remain in the * graph. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.IEdge} edge The edge to update. - * @param {Object} labelData The optional label data of the edge if an {@link yfiles.binding.GraphBuilder#edgeLabelBinding} is specified. - * @param {Object} businessObject The business data associated with the edge. + * @param graph The graph. + * @param edge The edge to update. + * @param labelData The optional label data of the edge if an {@link #edgeLabelBinding} is specified. + * @param businessObject The business data associated with the edge. * @protected */ updateEdge(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,labelData:Object,businessObject:Object):void; @@ -73367,7 +73213,7 @@ declare namespace system{ * Customers should not create own implementations based on this class but use one of the ready-made adapters {@link yfiles.binding.GraphBuilder} * or {@link yfiles.binding.AdjacentNodesGraphBuilder}. *

    - * @class yfiles.binding.GraphBuilderBase + * @class */ export interface GraphBuilderBase extends Object{} export class GraphBuilderBase { @@ -73376,9 +73222,8 @@ declare namespace system{ *

    * The graph will be {@link yfiles.graph.IGraph#clear cleared} and re-built from the data in {@link yfiles.binding.GraphBuilderBase#nodesSource} when {@link yfiles.binding.GraphBuilderBase#buildGraph} is called. *

    - * @param {yfiles.graph.IGraph} graph + * @param graph * @protected - * @constructor */ constructor(graph:yfiles.graph.IGraph); /** @@ -73387,15 +73232,15 @@ declare namespace system{ * First, this method clears the graph, and then it adds new groups, nodes, and edges as specified by the business data and * bindings. *

    - * @returns {yfiles.graph.IGraph} The created graph. + * @returns The created graph. * @see yfiles.binding.GraphBuilderBase#updateGraph */ buildGraph():yfiles.graph.IGraph; /** * Creates a new group node and assigns the businessObjectparameter to the group node's {@link yfiles.graph.ITagOwner#tag Tag} property. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {Object} businessObject The business data associated with the group node. - * @returns {yfiles.graph.INode} The created node. + * @param graph The graph. + * @param businessObject The business data associated with the group node. + * @returns The created node. * @protected */ createGroupNode(graph:yfiles.graph.IGraph,businessObject:Object):yfiles.graph.INode; @@ -73404,35 +73249,35 @@ declare namespace system{ *

    * This class calls this method to create all new nodes, and customers may override it to customize node creation. *

    - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} parent The node's parent node. - * @param {yfiles.geometry.Point} location The location of the node. - * @param {Object} labelData The optional label data of the node if an {@link yfiles.binding.GraphBuilderBase#nodeLabelBinding} is specified. - * @param {Object} businessObject The business data associated with the node. - * @returns {yfiles.graph.INode} The created node. + * @param graph The graph. + * @param parent The node's parent node. + * @param location The location of the node. + * @param labelData The optional label data of the node if an {@link #nodeLabelBinding} is specified. + * @param businessObject The business data associated with the node. + * @returns The created node. * @protected */ createNode(graph:yfiles.graph.IGraph,parent:yfiles.graph.INode,location:yfiles.geometry.Point,labelData:Object,businessObject:Object):yfiles.graph.INode; /** * Retrieves the associated business object for a given {@link yfiles.graph.IModelItem graph item} from the {@link yfiles.binding.GraphBuilderBase#graph}. - * @param {yfiles.graph.IModelItem} item The item of the graph to get the business object for. - * @returns {Object} The business object associated with the graph item. + * @param item The item of the graph to get the business object for. + * @returns The business object associated with the graph item. * @see yfiles.binding.GraphBuilderBase#getNode * @see yfiles.binding.GraphBuilderBase#getGroup */ getBusinessObject(item:yfiles.graph.IModelItem):Object; /** * Retrieves the associated group node in the {@link yfiles.binding.GraphBuilderBase#graph} for a business object from the {@link yfiles.binding.GraphBuilderBase#groupsSource}. - * @param {Object} businessObject A business object from the {@link yfiles.binding.GraphBuilderBase#groupsSource} to get the group for. - * @returns {yfiles.graph.INode} The group associated with the business object or null for unknown objects. + * @param businessObject A business object from the {@link #groupsSource} to get the group for. + * @returns The group associated with the business object or null for unknown objects. * @see yfiles.binding.GraphBuilderBase#getBusinessObject * @see yfiles.binding.GraphBuilderBase#getNode */ getGroup(businessObject:Object):yfiles.graph.INode; /** * Retrieves the associated node in the {@link yfiles.binding.GraphBuilderBase#graph} for a business object from the {@link yfiles.binding.GraphBuilderBase#nodesSource}. - * @param {Object} businessObject A business object from the {@link yfiles.binding.GraphBuilderBase#nodesSource} to get the node for. - * @returns {yfiles.graph.INode} The node associated with the business object or null for unknown objects. + * @param businessObject A business object from the {@link #nodesSource} to get the node for. + * @returns The node associated with the business object or null for unknown objects. * @see yfiles.binding.GraphBuilderBase#getBusinessObject * @see yfiles.binding.GraphBuilderBase#getGroup */ @@ -73452,21 +73297,21 @@ declare namespace system{ *

    * This class calls this method to create all new groups, and customers may override it to customize group creation. *

    - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} groupNode The group node to update. - * @param {Object} businessObject The business data associated with the group node. + * @param graph The graph. + * @param groupNode The group node to update. + * @param businessObject The business data associated with the group node. * @protected */ updateGroupNode(graph:yfiles.graph.IGraph,groupNode:yfiles.graph.INode,businessObject:Object):void; /** * Updates an existing node when {@link yfiles.binding.GraphBuilderBase#updateGraph} is called and the node should remain in the * graph. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} node The node to update. - * @param {yfiles.graph.INode} parent The node's parent node. - * @param {yfiles.geometry.Point} location The location of the node. - * @param {Object} labelData The optional label data of the node if an {@link yfiles.binding.GraphBuilderBase#nodeLabelBinding} is specified. - * @param {Object} businessObject The business data associated with the node. + * @param graph The graph. + * @param node The node to update. + * @param parent The node's parent node. + * @param location The location of the node. + * @param labelData The optional label data of the node if an {@link #nodeLabelBinding} is specified. + * @param businessObject The business data associated with the node. * @protected */ updateNode(graph:yfiles.graph.IGraph,node:yfiles.graph.INode,parent:yfiles.graph.INode,location:yfiles.geometry.Point,labelData:Object,businessObject:Object):void; @@ -73638,7 +73483,7 @@ declare namespace system{ *

    * @see yfiles.binding.TreeBuilder#nodesSource * @see yfiles.binding.TreeBuilder#childBinding - * @class yfiles.binding.TreeBuilder + * @class */ export interface TreeBuilder extends Object{} export class TreeBuilder { @@ -73648,8 +73493,7 @@ declare namespace system{ * The graph will be {@link yfiles.graph.IGraph#clear cleared} and re-built from the data in {@link yfiles.binding.TreeBuilder#nodesSource} when {@link yfiles.binding.TreeBuilder#buildGraph} is called. The {@link yfiles.binding.TreeBuilder#childBinding} * needs to be set in order to actually create a tree. *

    - * @param {yfiles.graph.IGraph} graph - * @constructor + * @param graph */ constructor(graph:yfiles.graph.IGraph); /** @@ -73658,60 +73502,60 @@ declare namespace system{ * First, this method clears the graph, and then it adds new groups, nodes, and edges as specified by the business data and * bindings. *

    - * @returns {yfiles.graph.IGraph} The created graph. + * @returns The created graph. * @see yfiles.binding.TreeBuilder#updateGraph */ buildGraph():yfiles.graph.IGraph; /** * Creates an edge between the source and target node. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} source The source node of the edge. - * @param {yfiles.graph.INode} target The target node of the edge. - * @param {Object} labelData The optional label data of the edge if an {@link yfiles.binding.TreeBuilder#edgeLabelBinding} is specified. - * @returns {yfiles.graph.IEdge} The created edge. + * @param graph The graph. + * @param source The source node of the edge. + * @param target The target node of the edge. + * @param labelData The optional label data of the edge if an {@link #edgeLabelBinding} is specified. + * @returns The created edge. * @protected */ createEdge(graph:yfiles.graph.IGraph,source:yfiles.graph.INode,target:yfiles.graph.INode,labelData:Object):yfiles.graph.IEdge; /** * Creates a new group node and assigns the businessObjectparameter to the group node's {@link yfiles.graph.ITagOwner#tag Tag} property. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {Object} businessObject The business data associated with the group node. - * @returns {yfiles.graph.INode} The created node. + * @param graph The graph. + * @param businessObject The business data associated with the group node. + * @returns The created node. * @protected */ createGroupNode(graph:yfiles.graph.IGraph,businessObject:Object):yfiles.graph.INode; /** * Creates a node with the specified parent and assigns the businessObject parameter to the node's {@link yfiles.graph.ITagOwner#tag Tag} property. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} parent The node's parent node. - * @param {yfiles.geometry.Point} location The location of the node. - * @param {Object} labelData The optional label data of the node if an {@link yfiles.binding.TreeBuilder#nodeLabelBinding} is specified. - * @param {Object} businessObject The business data associated with the node. - * @returns {yfiles.graph.INode} The created node. + * @param graph The graph. + * @param parent The node's parent node. + * @param location The location of the node. + * @param labelData The optional label data of the node if an {@link #nodeLabelBinding} is specified. + * @param businessObject The business data associated with the node. + * @returns The created node. * @protected */ createNode(graph:yfiles.graph.IGraph,parent:yfiles.graph.INode,location:yfiles.geometry.Point,labelData:Object,businessObject:Object):yfiles.graph.INode; /** * Retrieves the associated business object for a given {@link yfiles.graph.INode node} from the {@link yfiles.binding.TreeBuilder#graph}. - * @param {yfiles.graph.IModelItem} item The node of the graph to get the business object for. - * @returns {Object} The business object associated with the graph element. + * @param item The node of the graph to get the business object for. + * @returns The business object associated with the graph element. * @see yfiles.binding.TreeBuilder#getNode */ getBusinessObject(item:yfiles.graph.IModelItem):Object; /** * Retrieves the associated node in the {@link yfiles.binding.TreeBuilder#graph} for a business object from the {@link yfiles.binding.TreeBuilder#nodesSource}. - * @param {Object} businessObject A business object from the {@link yfiles.binding.TreeBuilder#nodesSource} to get the node for. - * @returns {yfiles.graph.INode} The node associated with the business object or null for unknown objects. + * @param businessObject A business object from the {@link #nodesSource} to get the node for. + * @returns The node associated with the business object or null for unknown objects. * @see yfiles.binding.TreeBuilder#getBusinessObject */ getNode(businessObject:Object):yfiles.graph.INode; /** * Updates an edge with the given data. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.IEdge} edge The edge to update. - * @param {yfiles.graph.INode} source The edge's source node. - * @param {yfiles.graph.INode} target The edge's target node. - * @param {Object} labelData The business data associated with the edge. + * @param graph The graph. + * @param edge The edge to update. + * @param source The edge's source node. + * @param target The edge's target node. + * @param labelData The business data associated with the edge. * @protected */ updateEdge(graph:yfiles.graph.IGraph,edge:yfiles.graph.IEdge,source:yfiles.graph.INode,target:yfiles.graph.INode,labelData:Object):void; @@ -73730,20 +73574,20 @@ declare namespace system{ *

    * This class calls this method to create all new groups, and customers may override it to customize group creation. *

    - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} groupNode The group node to update. - * @param {Object} businessObject The business data associated with the group node. + * @param graph The graph. + * @param groupNode The group node to update. + * @param businessObject The business data associated with the group node. * @protected */ updateGroupNode(graph:yfiles.graph.IGraph,groupNode:yfiles.graph.INode,businessObject:Object):void; /** * Updates a node with the given data. - * @param {yfiles.graph.IGraph} graph The graph. - * @param {yfiles.graph.INode} node The node to update. - * @param {yfiles.graph.INode} parent The node's parent node. - * @param {yfiles.geometry.Point} location The location of the node. - * @param {Object} labelData The optional label data of the edge if an {@link yfiles.binding.TreeBuilder#nodeLabelBinding} is specified. - * @param {Object} businessObject The business data associated with the node. + * @param graph The graph. + * @param node The node to update. + * @param parent The node's parent node. + * @param location The location of the node. + * @param labelData The optional label data of the edge if an {@link #nodeLabelBinding} is specified. + * @param businessObject The business data associated with the node. * @protected */ updateNode(graph:yfiles.graph.IGraph,node:yfiles.graph.INode,parent:yfiles.graph.INode,location:yfiles.geometry.Point,labelData:Object,businessObject:Object):void; @@ -73977,7 +73821,7 @@ declare namespace system{ *

    * When handling a stop request, algorithms should ensure that the resulting graph is still in a consistent state. *

    - * @class yfiles.algorithms.AbortHandler + * @class */ export interface AbortHandler extends Object{} export class AbortHandler { @@ -73986,7 +73830,6 @@ declare namespace system{ * @see yfiles.algorithms.AbortHandler#stopDuration * @see yfiles.algorithms.AbortHandler#cancelDuration * @see yfiles.algorithms.AbortHandler#reset - * @constructor */ constructor(); /** @@ -73995,7 +73838,7 @@ declare namespace system{ * This method returns true if the algorithm should terminate gracefully and ensures that the processed graph remains in a * consistent state. *

    - * @returns {boolean} true, if the algorithm should terminate immediately, false otherwise + * @returns true, if the algorithm should terminate immediately, false otherwise * @throws {yfiles.algorithms.AlgorithmAbortedError} if the algorithm should terminate immediately * @see yfiles.algorithms.AbortHandler#stop */ @@ -74011,8 +73854,8 @@ declare namespace system{ * it is recommended to retrieve the given graph's attached handler once and only call the handler's {@link yfiles.algorithms.AbortHandler#check} * method repeatedly. *

    - * @param {yfiles.algorithms.Graph} graph - * @returns {boolean} true, if the algorithm should stop immediately while still providing some valid result, false otherwise + * @param graph + * @returns true, if the algorithm should stop immediately while still providing some valid result, false otherwise * @throws {yfiles.algorithms.AlgorithmAbortedError} if the algorithm should terminate immediately * @throws {Stubs.Exceptions.ArgumentError} if the given graph is null * @see yfiles.algorithms.AbortHandler#check @@ -74022,8 +73865,8 @@ declare namespace system{ static check(graph:yfiles.algorithms.Graph):boolean; /** * Attaches the {@link yfiles.algorithms.AbortHandler} instance of the given source graph to the target graph as well. - * @param {yfiles.algorithms.Graph} source the graph whose handler is attached to the target graph - * @param {yfiles.algorithms.Graph} target the graph to which the handler of the source graph is attached + * @param source the graph whose handler is attached to the target graph + * @param target the graph to which the handler of the source graph is attached * @throws {Stubs.Exceptions.ArgumentError} if the given source is null * @static */ @@ -74037,8 +73880,8 @@ declare namespace system{ *

    * This method should be called by client code prior to starting a graph algorithm that may be terminated early. *

    - * @param {yfiles.algorithms.Graph} graph the graph to which the handler will be attached - * @returns {yfiles.algorithms.AbortHandler} the {@link yfiles.algorithms.AbortHandler} instance for the given graph + * @param graph the graph to which the handler will be attached + * @returns the {@link } instance for the given graph * @throws {Stubs.Exceptions.ArgumentError} if the given graph is null. * @see yfiles.algorithms.AbortHandler#hasHandler * @static @@ -74051,8 +73894,8 @@ declare namespace system{ * the instance that will be returned. Otherwise, a non-functional instance is returned whose methods do nothing. Use {@link yfiles.algorithms.AbortHandler#hasHandler} * to check whether or not a handler has been already attached to the given graph. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {yfiles.algorithms.AbortHandler} an {@link yfiles.algorithms.AbortHandler} for the given graph or a non-functional instance if no handler has been previously + * @param graph the given graph + * @returns an {@link } for the given graph or a non-functional instance if no handler has been previously * created * @throws {Stubs.Exceptions.ArgumentError} if the given graph is null * @see yfiles.algorithms.AbortHandler#createForGraph @@ -74062,15 +73905,15 @@ declare namespace system{ static getFromGraph(graph:yfiles.algorithms.Graph):yfiles.algorithms.AbortHandler; /** * Determines whether or not an {@link yfiles.algorithms.AbortHandler} instance is attached to the given graph. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if a handler is attached to the given graph, false otherwise + * @param graph the given graph + * @returns true if a handler is attached to the given graph, false otherwise * @throws {Stubs.Exceptions.ArgumentError} if the given graph is null * @static */ static hasHandler(graph:yfiles.algorithms.Graph):boolean; /** * Removes any attached {@link yfiles.algorithms.AbortHandler} instance from the given graph. - * @param {yfiles.algorithms.Graph} graph the given graph + * @param graph the given graph * @throws {Stubs.Exceptions.ArgumentError} if the given graph is null. * @static */ @@ -74105,7 +73948,7 @@ declare namespace system{ stop():void; /** * Determines the remaining time (in milliseconds) until an algorithm that {@link yfiles.algorithms.AbortHandler#check checks} this handler is cancelled automatically. - * @returns {yfiles.lang.TimeSpan} the remaining time until the algorithm is cancelled automatically. + * @returns the remaining time until the algorithm is cancelled automatically. * @see yfiles.algorithms.AbortHandler#cancelDuration * @see yfiles.algorithms.AbortHandler#reset * @see yfiles.algorithms.AbortHandler#cancelDuration @@ -74117,7 +73960,7 @@ declare namespace system{ * If the {@link yfiles.algorithms.AbortHandler#stopDuration stop duration} is less than or equal to zero, -1 will be returned which means that the algorithm may run * unrestricted. *

    - * @returns {yfiles.lang.TimeSpan} the remaining time until the algorithm is stopped automatically or -1 if the algorithm may run unrestricted + * @returns the remaining time until the algorithm is stopped automatically or -1 if the algorithm may run unrestricted * @see yfiles.algorithms.AbortHandler#stopDuration * @see yfiles.algorithms.AbortHandler#reset * @see yfiles.algorithms.AbortHandler#stop @@ -74169,8 +74012,8 @@ declare namespace system{ * Gets whether or not methods {@link yfiles.algorithms.AbortHandler#check} or {@link yfiles.algorithms.AbortHandler#check} were called * after a stop or cancel event. *

    - * More precisely, it returns true if one of the check methods either threw an {@link yfiles.algorithms.AlgorithmAbortedError} or - * returned true to indicate that the calling algorithm should terminate gracefully. Otherwise, this method returns false. + * More precisely, it returns true if one of the check methods either threw an {@link yfiles.lang.Exception} or returned true to + * indicate that the calling algorithm should terminate gracefully. Otherwise, this method returns false. *

    * @see yfiles.algorithms.AbortHandler#check * @see yfiles.algorithms.AbortHandler#check @@ -74195,7 +74038,7 @@ declare namespace system{ * {@graph {"ann":{"s":[30,30],"d":0},"n":[[-35,-35,1,[[-25.34,-10.65,10.67,18.7,"0"]]],[-35,85,[[-25.34,109.35,10.67,18.7,"1"]]],[85,-35,[[94.66,-10.65,10.67,18.7,"1"]]],[85,85,[[94.66,109.35,10.67,18.7,"2"]]],[205,-35,[[214.66,-10.65,10.67,18.7,"3"]]],[205,85,[[214.66,109.35,10.67,18.7,"4"]]]],"e":[[4,3],[2,0],[0,1],[1,3],[2,3],[4,5]],"vp":[-35.0,-35.0,270.0,150.0]}} Example for a BFS run. The marked node is the core node from which BFS starts while node labels indicate the resulting * layers. *

    - * @class yfiles.algorithms.Bfs + * @class * @static */ export interface Bfs extends Object{} @@ -74211,13 +74054,13 @@ declare namespace system{ *

    * In the i-th layer are previously unassigned nodes that are connected to nodes in the (i-1)-th layer. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.NodeList} coreNodes the list of core nodes - * @param {yfiles.algorithms.BfsDirection} direction one of the predefined direction specifiers - * @param {yfiles.algorithms.INodeMap} layerIDMap the {@link yfiles.algorithms.INodeMap} that will be filled during the BFS execution and holds the zero-based index of the BFS + * @param graph the given graph + * @param coreNodes the list of core nodes + * @param direction one of the predefined direction specifiers + * @param layerIDMap the {@link } that will be filled during the BFS execution and holds the zero-based index of the BFS * layer to which each node belongs or -1 if the node is not reachable - * @param {number} [maxLayers=0] the number of layers that will be returned or 0 if all layers are required - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes of a particular layer + * @param [maxLayers=0] the number of layers that will be returned or 0 if all layers are required + * @returns an array of {@link }s each of which contains the nodes of a particular layer * @throws {Stubs.Exceptions.ArgumentError} if the given direction is not supported * @static */ @@ -74233,13 +74076,13 @@ declare namespace system{ *

    * In the i-th layer are previously unassigned nodes that are connected to nodes in the (i-1)-th layer. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.NodeList} coreNodes the list of core nodes from which the BFS starts - * @param {boolean} directed true if the graph should be considered directed, false otherwise - * @param {yfiles.algorithms.INodeMap} layerIDMap the {@link yfiles.algorithms.INodeMap} that will be filled during the BFS execution and holds the zero-based index of the BFS + * @param graph the given graph + * @param coreNodes the list of core nodes from which the BFS starts + * @param directed true if the graph should be considered directed, false otherwise + * @param layerIDMap the {@link } that will be filled during the BFS execution and holds the zero-based index of the BFS * layer to which each node belongs or -1 if the node is not reachable - * @param {number} [maxLayers=0] the number of layers that will be returned or 0 if all layers are required - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes of a particular layer + * @param [maxLayers=0] the number of layers that will be returned or 0 if all layers are required + * @returns an array of {@link }s each of which contains the nodes of a particular layer * @static */ static getLayers(graph:yfiles.algorithms.Graph,coreNodes:yfiles.algorithms.NodeList,directed:boolean,layerIDMap:yfiles.algorithms.INodeMap,maxLayers?:number):yfiles.algorithms.NodeList[]; @@ -74253,11 +74096,11 @@ declare namespace system{ *

    * In the i-th layer are previously unassigned nodes that are connected to nodes in the (i-1)-th layer. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.NodeList} coreNodes the list of core nodes from which the BFS starts - * @param {yfiles.algorithms.INodeMap} layerIDMap the {@link yfiles.algorithms.INodeMap} that will be filled during the BFS execution and holds the zero-based index of the BFS + * @param graph the given graph + * @param coreNodes the list of core nodes from which the BFS starts + * @param layerIDMap the {@link } that will be filled during the BFS execution and holds the zero-based index of the BFS * layer to which each node belongs or -1 if the node is not reachable - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes of a particular layer + * @returns an array of {@link }s each of which contains the nodes of a particular layer * @static */ static getLayers(graph:yfiles.algorithms.Graph,coreNodes:yfiles.algorithms.NodeList,layerIDMap:yfiles.algorithms.INodeMap):yfiles.algorithms.NodeList[]; @@ -74271,12 +74114,12 @@ declare namespace system{ *

    * In the i-th layer are previously unassigned nodes that are connected to nodes in the (i-1)-th layer. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.IDataProvider} isCoreNode the {@link yfiles.algorithms.IDataProvider} that contains the nodes from which the BFS starts; core nodes are marked with a true + * @param graph the given graph + * @param isCoreNode the {@link } that contains the nodes from which the BFS starts; core nodes are marked with a true * value - * @param {yfiles.algorithms.INodeMap} layerIDMap the {@link yfiles.algorithms.INodeMap} that will be filled during the BFS execution and holds the zero-based index of the BFS + * @param layerIDMap the {@link } that will be filled during the BFS execution and holds the zero-based index of the BFS * layer to which each node belongs or -1 if the node is not reachable - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes of a particular layer + * @returns an array of {@link }s each of which contains the nodes of a particular layer * @static */ static getLayers(graph:yfiles.algorithms.Graph,isCoreNode:yfiles.algorithms.IDataProvider,layerIDMap:yfiles.algorithms.INodeMap):yfiles.algorithms.NodeList[]; @@ -74290,9 +74133,9 @@ declare namespace system{ *

    * In the i-th layer are previously unassigned nodes that are connected to nodes in the (i-1)-th layer. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.NodeList} coreNodes the list of core nodes from which the BFS starts - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes of a particular layer + * @param graph the given graph + * @param coreNodes the list of core nodes from which the BFS starts + * @returns an array of {@link }s each of which contains the nodes of a particular layer * @static */ static getLayers(graph:yfiles.algorithms.Graph,coreNodes:yfiles.algorithms.NodeList):yfiles.algorithms.NodeList[]; @@ -74305,10 +74148,10 @@ declare namespace system{ *

    * In the i-th layer are previously unassigned nodes that are connected to nodes in the (i-1)-th layer. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.IDataProvider} isCoreNode the {@link yfiles.algorithms.IDataProvider} that contains the nodes from which the BFS starts; core nodes are marked with a true + * @param graph the given graph + * @param isCoreNode the {@link } that contains the nodes from which the BFS starts; core nodes are marked with a true * value - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes of a particular layer + * @returns an array of {@link }s each of which contains the nodes of a particular layer * @static */ static getLayers(graph:yfiles.algorithms.Graph,isCoreNode:yfiles.algorithms.IDataProvider):yfiles.algorithms.NodeList[]; @@ -74327,7 +74170,7 @@ declare namespace system{ *

    * {@graph {"ann":{"s":[40,40],"d":0, "b":0},"styles":{"6":{"c":1, "b":0}},"n":[[365,205,6],[365,305,6],[365,405,6],[505,205],[505,305],[505,405]],"e":[[0,4],[0,3],[0,5],[1,4],[2,3],[2,5],[1,5]],"vp":[365.0,200.0,170.0,250.0]}} Example of a bipartite graph. Circular and rectangular nodes represent the two partitions. *

    - * @class yfiles.algorithms.Bipartitions + * @class * @static */ export interface Bipartitions extends Object{} @@ -74338,17 +74181,17 @@ declare namespace system{ * If the graph is bipartite, then for all nodes of the given graph either {@link yfiles.algorithms.Bipartitions#RED} or {@link yfiles.algorithms.Bipartitions#BLUE} * objects will be set in the given {@link yfiles.algorithms.INodeMap}, depending on the partition to which each node belongs. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.INodeMap} markMap the {@link yfiles.algorithms.INodeMap} that will be filled during the BFS execution and returns the partition (either {@link yfiles.algorithms.Bipartitions#RED} - * or {@link yfiles.algorithms.Bipartitions#BLUE}) to which each node belongs - * @returns {boolean} true if the graph is bipartite, false otherwise + * @param graph the given graph + * @param markMap the {@link } that will be filled during the BFS execution and returns the partition (either {@link #RED} + * or {@link #BLUE}) to which each node belongs + * @returns true if the graph is bipartite, false otherwise * @static */ static getBipartition(graph:yfiles.algorithms.Graph,markMap:yfiles.algorithms.INodeMap):boolean; /** * Determines whether or not the given graph is bipartite. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is bipartite, false otherwise + * @param graph the given graph + * @returns true if the graph is bipartite, false otherwise * @static */ static isBipartite(graph:yfiles.algorithms.Graph):boolean; @@ -74392,7 +74235,7 @@ declare namespace system{ * *
  • Weight centrality measures the weight associated with incoming, outgoing, or all edges of a node.
  • * - * @class yfiles.algorithms.Centrality + * @class * @static */ export interface Centrality extends Object{} @@ -74404,11 +74247,11 @@ declare namespace system{ * Therefore, a node with high closeness centrality has short distances to all other nodes of a graph. If the sum of the * shortest path distances is 0, the closeness of a node is set to {@link number#POSITIVE_INFINITY}. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} closeness the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param graph the input graph + * @param closeness the {@link } that will be filled during the execution and returns a double value (centrality) for each * node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} edgeCosts the {@link yfiles.algorithms.IDataProvider} that returns a positive double value (cost) or null if the edges are of equal cost + * @param directed true if the graph should be considered as directed, false otherwise + * @param edgeCosts the {@link } that returns a positive double value (cost) or null if the edges are of equal cost * @static */ static closenessCentrality(graph:yfiles.algorithms.Graph,closeness:yfiles.algorithms.INodeMap,directed:boolean,edgeCosts:yfiles.algorithms.IDataProvider):void; @@ -74418,11 +74261,11 @@ declare namespace system{ * Degree centrality is the number of the incoming, outgoing or overall edges incident to a node (measures incoming, outgoing and overall * degree). *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} centrality the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param graph the input graph + * @param centrality the {@link } that will be filled during the execution and returns a double value (centrality) for each * node - * @param {boolean} considerInEdges true if the incoming edges should be considered, false otherwise - * @param {boolean} considerOutEdges true if the outgoing edges should be considered, false otherwise + * @param considerInEdges true if the incoming edges should be considered, false otherwise + * @param considerOutEdges true if the outgoing edges should be considered, false otherwise * @static */ static degreeCentrality(graph:yfiles.algorithms.Graph,centrality:yfiles.algorithms.INodeMap,considerInEdges:boolean,considerOutEdges:boolean):void; @@ -74432,11 +74275,11 @@ declare namespace system{ * Betweenness centrality is a measure for how often an edge lies on a shortest path between each pair of nodes in the graph. Removing a central * edge will cause many shortest paths to change. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IEdgeMap} centrality the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param graph the input graph + * @param centrality the {@link } that will be filled during the execution and returns a double value (centrality) for each * edge - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} edgeCosts the {@link yfiles.algorithms.IDataProvider} that returns a positive double value (cost) or null if the edges are of equal cost; + * @param directed true if the graph should be considered as directed, false otherwise + * @param edgeCosts the {@link } that returns a positive double value (cost) or null if the edges are of equal cost; * for invalid input values the algorithm uses cost 1.0 * @static */ @@ -74447,11 +74290,11 @@ declare namespace system{ * Graph centrality is defined as the reciprocal of the maximum of all shortest path distances from a node to all other nodes in the graph. * Nodes with high graph centrality have short distances to all other nodes in the graph. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} centrality the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param graph the input graph + * @param centrality the {@link } that will be filled during the execution and returns a double value (centrality) for each * node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} edgeCosts the {@link yfiles.algorithms.IDataProvider} that returns a positive double value (cost) or null if the edges are of equal cost + * @param directed true if the graph should be considered as directed, false otherwise + * @param edgeCosts the {@link } that returns a positive double value (cost) or null if the edges are of equal cost * @static */ static graphCentrality(graph:yfiles.algorithms.Graph,centrality:yfiles.algorithms.INodeMap,directed:boolean,edgeCosts:yfiles.algorithms.IDataProvider):void; @@ -74461,11 +74304,11 @@ declare namespace system{ * Betweenness centrality is a measure for how often a node lies on a shortest path between each pair of nodes in the graph. Removing a central * edge will cause many shortest paths to change. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} centrality the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param graph the input graph + * @param centrality the {@link } that will be filled during the execution and returns a double value (centrality) for each * node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} edgeCosts the {@link yfiles.algorithms.IDataProvider} that returns a positive double value (cost) or null if the edges are of equal cost; + * @param directed true if the graph should be considered as directed, false otherwise + * @param edgeCosts the {@link } that returns a positive double value (cost) or null if the edges are of equal cost; * for invalid input values the algorithm uses cost 1.0 * @static */ @@ -74476,13 +74319,13 @@ declare namespace system{ * Betweenness centrality is a measure for how often a node/edge lies on a shortest path between each pair of nodes in the graph. Removing a * central node/edge will cause many shortest paths to change. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} nodeCentrality the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param graph the input graph + * @param nodeCentrality the {@link } that will be filled during the execution and returns a double value (centrality) for each * node - * @param {yfiles.algorithms.IEdgeMap} edgeCentrality the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param edgeCentrality the {@link } that will be filled during the execution and returns a double value (centrality) for each * edge - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} edgeCosts the {@link yfiles.algorithms.IDataProvider} that returns a positive double value (cost) or null if the edges are of equal cost; + * @param directed true if the graph should be considered as directed, false otherwise + * @param edgeCosts the {@link } that returns a positive double value (cost) or null if the edges are of equal cost; * for invalid input values the algorithm uses cost 1.0 * @static */ @@ -74490,16 +74333,16 @@ declare namespace system{ /** * Normalizes the double values of a given {@link yfiles.algorithms.IEdgeMap} by dividing each of them by the maximum of all values * (maximum norm). - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IEdgeMap} map the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns a double value from [0,1] interval + * @param graph the input graph + * @param map the {@link } that will be filled during the execution and returns a double value from [0,1] interval * @static */ static normalizeEdgeMap(graph:yfiles.algorithms.Graph,map:yfiles.algorithms.IEdgeMap):void; /** * Normalizes the double values of a given {@link yfiles.algorithms.INodeMap} by dividing each of them by the maximum of all values * (maximum norm). - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} map the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value from [0,1] interval + * @param graph the input graph + * @param map the {@link } that will be filled during the execution and returns a double value from [0,1] interval * @static */ static normalizeNodeMap(graph:yfiles.algorithms.Graph,map:yfiles.algorithms.INodeMap):void; @@ -74508,12 +74351,12 @@ declare namespace system{ *

    * Weight centrality measures the weight associated with incoming, outgoing, or all edges of a node. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} centrality the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (centrality) for each + * @param graph the input graph + * @param centrality the {@link } that will be filled during the execution and returns a double value (centrality) for each * node - * @param {boolean} considerInEdges true if the incoming edges should be considered, false otherwise - * @param {boolean} considerOutEdges true if the outgoing edges should be considered, false otherwise - * @param {yfiles.algorithms.IDataProvider} edgeWeights the {@link yfiles.algorithms.IDataProvider} that returns a positive double value (weight) or null if the edges are considered to + * @param considerInEdges true if the incoming edges should be considered, false otherwise + * @param considerOutEdges true if the outgoing edges should be considered, false otherwise + * @param edgeWeights the {@link } that returns a positive double value (weight) or null if the edges are considered to * have uniform weight of 1.0 * @static */ @@ -74538,7 +74381,7 @@ declare namespace system{ * {@graph {"ann":{"s":[30,30],"d":1, "c":1},"n":[[45,5],[105,65],[-15,65],[45,125],[185,65],[-95,65]],"e":[[0,1],[0,2],[1,3],[2,3],[1,4],[2,5]],"vp":[-95.0,5.0,310.0,150.0]}} Example of an acyclic directed graph (edge directions are considered) {@graph {"ann":{"s":[30,30],"d":1, "c":1},"n":[[305,185],[385,125],[345,285],[505,125],[545,225],[465,305]],"e":[[0,1],[1,3],[4,5,1],[5,2,1],[2,0,1],[0,4,1]],"vp":[305.0,125.0,270.0,210.0]}} Example of a graph containing a cycle. Marked * edges form a directed cycle. *

    - * @class yfiles.algorithms.Cycles + * @class * @static */ export interface Cycles extends Object{} @@ -74546,9 +74389,9 @@ declare namespace system{ /** * Returns an {@link yfiles.algorithms.EdgeList} that contains all the edges that are part of at least one directed or undirected * simple cycle. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {boolean} directed true if the graph should be considered directed, false otherwise - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} that contains all the edges that are part of at least one directed or undirected simple + * @param graph the input graph + * @param directed true if the graph should be considered directed, false otherwise + * @returns an {@link } that contains all the edges that are part of at least one directed or undirected simple * cycle * @static */ @@ -74561,9 +74404,9 @@ declare namespace system{ *

    * If the returned cycle is empty, no cycle has been found in the given graph. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {boolean} directed true if the graph should be considered directed, false otherwise - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} containing the edges of a cycle or an empty {@link yfiles.algorithms.EdgeList} if the graph is + * @param graph the given graph + * @param directed true if the graph should be considered directed, false otherwise + * @returns an {@link } containing the edges of a cycle or an empty {@link } if the graph is * acyclic * @static */ @@ -74578,21 +74421,22 @@ declare namespace system{ *

    * The costs are assigned using a {@link yfiles.algorithms.IDataProvider} that holds a non-negative double value for each edge. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.IEdgeMap} cycleEdges the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns whether an edge is a detected cycle + * @param graph the given graph + * @param cycleEdges the {@link } that will be filled during the execution and returns whether an edge is a detected cycle * edge - * @param {yfiles.algorithms.IDataProvider} [costDP=null] the {@link yfiles.algorithms.IDataProvider} that holds the non-negative {@link number} reversal cost for each edge + * @param [costDP=null] the {@link } that holds the non-negative {@link } reversal cost for each edge * @static */ static findCycleEdges(graph:yfiles.algorithms.Graph,cycleEdges:yfiles.algorithms.IEdgeMap,costDP?:yfiles.algorithms.IDataProvider):void; /** * Marks the edges of a given graph whose removal or reversal would make the graph acyclic based on a depth first search. *

    - * The number of marked cycle edges is expected to be slightly greater than when using FindCycleEdges. The advantage of - * this method is that the result set is more stable when edges are added or removed over time. + * The number of marked cycle edges is expected to be slightly greater than when using + * {@link yfiles.algorithms.Cycles#findCycleEdges}. The advantage of this method is that the result set is more stable when edges + * are added or removed over time. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.IEdgeMap} cycleEdges the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns a boolean value indicating whether + * @param graph the given graph + * @param cycleEdges the {@link } that will be filled during the execution and returns a boolean value indicating whether * or not an edge is a detected cycle edge * @static */ @@ -74605,7 +74449,7 @@ declare namespace system{ * For each edge there exist two darts, one that represents the edge in its original direction (i.e., from source to * target) and one that represents its reverse. Each dart is associated with a {@link yfiles.algorithms.Dart#face face}. *

    - * @class yfiles.algorithms.Dart + * @class * @final */ export interface Dart extends Object{} @@ -74673,13 +74517,12 @@ declare namespace system{ * {@graph {"ann":{"s":[30,30],"d":1, "c":1},"styles" : {"6" : {"s" : "#000000", "d" : 1, "l" : [3] }, "7" : {"s" : "#000000", "d" : 1, "l" : [1,4] }, "8" : {"s" : "#000000", "d" : 1, "l" : [7] }},"n":[[145,-15,[[154.66,9.35,10.67,18.7,"1"]]],[65,65,[[74.66,89.35,10.67,18.7,"2"]]],[185,65,[[194.66,89.35,10.67,18.7,"8"]]],[45,225,[[54.66,249.35,10.67,18.7,"5"]]],[125,145,[[134.66,169.35,10.67,18.7,"7"]]],[65,145,[[74.66,169.35,10.67,18.7,"6"]]],[-35,225,[[-25.34,249.35,10.67,18.7,"4"]]],[5,145,[[14.66,169.35,10.67,18.7,"3"]]],[185,145,[[194.66,169.35,10.67,18.7,"9"]]]],"e":[[0,1],[1,7],[0,2],[7,3],[1,4],[1,5],[7,6],[2,1,6,[],[[118.33,72.85,35.34,18.7,"Cross"]]],[6,1,8,[-60,100,-60,100],[[-95.2,149.04,30.68,18.7,2.4492935982947064E-16,-1.0,"Back"]]],[0,3,7,[360,140],[[270.38,202.85,48.01,18.7,2.4492935982947064E-16,-1.0,"Forward"]]],[2,8]],"vp":[-96.0,-15.0,456.0,270.0]}} Example of a DFS traversal. Node labels indicate the order in which nodes are visited. Solid edges are the edges of the * DFS tree while dashed edges represent back, forward and cross edges. *

    - * @class yfiles.algorithms.Dfs + * @class */ export interface Dfs extends Object{} export class Dfs { /** * Creates a new {@link yfiles.algorithms.Dfs} instance with default settings. - * @constructor */ constructor(); /** @@ -74694,7 +74537,7 @@ declare namespace system{ *

    * By default, this method does nothing. It may be overridden to support custom implementations. *

    - * @param {yfiles.algorithms.Node} v the new root node + * @param v the new root node * @protected */ lookFurther(v:yfiles.algorithms.Node):void; @@ -74703,8 +74546,8 @@ declare namespace system{ *

    * By default, this method does nothing. It may be overridden to support custom implementations. *

    - * @param {yfiles.algorithms.Edge} edge the given edge - * @param {yfiles.algorithms.Node} node the node that has been reached via the given edge + * @param edge the given edge + * @param node the node that has been reached via the given edge * @protected */ postTraverse(edge:yfiles.algorithms.Edge,node:yfiles.algorithms.Node):void; @@ -74713,9 +74556,9 @@ declare namespace system{ *

    * By default, this method does nothing. It may be overridden to support custom implementations. *

    - * @param {yfiles.algorithms.Node} node the given node - * @param {number} dfsNumber the DFS number of the given node - * @param {number} compNumber the completion number of the given node + * @param node the given node + * @param dfsNumber the DFS number of the given node + * @param compNumber the completion number of the given node * @protected */ postVisit(node:yfiles.algorithms.Node,dfsNumber:number,compNumber:number):void; @@ -74724,9 +74567,9 @@ declare namespace system{ *

    * By default, this method does nothing. It may be overridden to support custom implementations. *

    - * @param {yfiles.algorithms.Edge} edge the given edge - * @param {yfiles.algorithms.Node} node the node to be visited next only if treeEdge == true - * @param {boolean} treeEdge true if the node will be visited, false otherwise + * @param edge the given edge + * @param node the node to be visited next only if treeEdge == true + * @param treeEdge true if the node will be visited, false otherwise * @protected */ preTraverse(edge:yfiles.algorithms.Edge,node:yfiles.algorithms.Node,treeEdge:boolean):void; @@ -74735,15 +74578,15 @@ declare namespace system{ *

    * By default, this method does nothing. It may be overridden to support custom implementations. *

    - * @param {yfiles.algorithms.Node} node the given node - * @param {number} dfsNumber the DFS number of the given node + * @param node the given node + * @param dfsNumber the DFS number of the given node * @protected */ preVisit(node:yfiles.algorithms.Node,dfsNumber:number):void; /** * Starts a depth first search from a given {@link yfiles.algorithms.Node} of the input graph. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} start the given start node + * @param graph the input graph + * @param start the given start node */ start(graph:yfiles.algorithms.Graph,start:yfiles.algorithms.Node):void; /** @@ -74751,7 +74594,7 @@ declare namespace system{ *

    * The first node of the graph will be visited first. *

    - * @param {yfiles.algorithms.Graph} graph the input graph + * @param graph the input graph */ start(graph:yfiles.algorithms.Graph):void; /** @@ -74813,23 +74656,22 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.DpKeyBase. + * @class * @template TValue */ export interface DpKeyBase extends Object{} export class DpKeyBase { /** * Initializes a new instance of the {@link yfiles.algorithms.DpKeyBase.} class. - * @param {yfiles.lang.Class} valueType The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); /** * Returns whether this key is equal to the specified other. - * @param {yfiles.algorithms.DpKeyBase.} other The other key to compare with this instance. - * @returns {boolean} true if the specified key is equal to this instance; otherwise, false. + * @param other The other key to compare with this instance. + * @returns true if the specified key is equal to this instance; otherwise, false. * @protected */ equalsCore(other:yfiles.algorithms.DpKeyBase):boolean; @@ -74852,7 +74694,7 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.EdgeDpKey. + * @class * @extends {yfiles.algorithms.DpKeyBase.} * @template TValue */ @@ -74860,12 +74702,11 @@ declare namespace system{ export class EdgeDpKey { /** * Initializes a new instance of the {@link yfiles.algorithms.EdgeDpKey.} class. - * @param {yfiles.lang.Class} valueType1 The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ - constructor(valueType1:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); + constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); static $class:yfiles.lang.Class; } /** @@ -74875,7 +74716,7 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.GraphDpKey. + * @class * @extends {yfiles.algorithms.DpKeyBase.} * @template TValue */ @@ -74883,12 +74724,11 @@ declare namespace system{ export class GraphDpKey { /** * Initializes a new instance of the {@link yfiles.algorithms.GraphDpKey.} class. - * @param {yfiles.lang.Class} valueType1 The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ - constructor(valueType1:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); + constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); static $class:yfiles.lang.Class; } /** @@ -74898,7 +74738,7 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.GraphObjectDpKey. + * @class * @extends {yfiles.algorithms.DpKeyBase.} * @template TValue */ @@ -74906,12 +74746,11 @@ declare namespace system{ export class GraphObjectDpKey { /** * Initializes a new instance of the {@link yfiles.algorithms.GraphObjectDpKey.} class. - * @param {yfiles.lang.Class} valueType1 The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ - constructor(valueType1:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); + constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); static $class:yfiles.lang.Class; } /** @@ -74921,7 +74760,7 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.IEdgeLabelLayoutDpKey. + * @class * @extends {yfiles.algorithms.DpKeyBase.} * @template TValue */ @@ -74929,12 +74768,11 @@ declare namespace system{ export class IEdgeLabelLayoutDpKey { /** * Initializes a new instance of the {@link yfiles.algorithms.IEdgeLabelLayoutDpKey.} class. - * @param {yfiles.lang.Class} valueType1 The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ - constructor(valueType1:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); + constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); static $class:yfiles.lang.Class; } /** @@ -74944,7 +74782,7 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.INodeLabelLayoutDpKey. + * @class * @extends {yfiles.algorithms.DpKeyBase.} * @template TValue */ @@ -74952,12 +74790,11 @@ declare namespace system{ export class INodeLabelLayoutDpKey { /** * Initializes a new instance of the {@link yfiles.algorithms.INodeLabelLayoutDpKey.} class. - * @param {yfiles.lang.Class} valueType1 The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ - constructor(valueType1:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); + constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); static $class:yfiles.lang.Class; } /** @@ -74967,7 +74804,7 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.ILabelLayoutDpKey. + * @class * @extends {yfiles.algorithms.DpKeyBase.} * @template TValue */ @@ -74975,12 +74812,11 @@ declare namespace system{ export class ILabelLayoutDpKey { /** * Initializes a new instance of the {@link yfiles.algorithms.ILabelLayoutDpKey.} class. - * @param {yfiles.lang.Class} valueType1 The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ - constructor(valueType1:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); + constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); static $class:yfiles.lang.Class; } /** @@ -74990,7 +74826,7 @@ declare namespace system{ * @see yfiles.algorithms.Graph#addDataProvider * @see yfiles.algorithms.Graph#getDataProvider * @see yfiles.algorithms.Graph#removeDataProvider - * @class yfiles.algorithms.NodeDpKey. + * @class * @extends {yfiles.algorithms.DpKeyBase.} * @template TValue */ @@ -74998,12 +74834,11 @@ declare namespace system{ export class NodeDpKey { /** * Initializes a new instance of the {@link yfiles.algorithms.NodeDpKey.} class. - * @param {yfiles.lang.Class} valueType1 The type of the values that are returned by the {@link yfiles.algorithms.IDataProvider} registered with this class. - * @param {yfiles.lang.Class} declaringType Type that declares this key. - * @param {string} name The name of this key. - * @constructor + * @param valueType The type of the values that are returned by the {@link } registered with this class. + * @param declaringType Type that declares this key. + * @param name The name of this key. */ - constructor(valueType1:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); + constructor(valueType:yfiles.lang.Class,declaringType:yfiles.lang.Class,name:string); static $class:yfiles.lang.Class; } /** @@ -75021,7 +74856,7 @@ declare namespace system{ * Important: Class Graph is the single authority for any structural changes to the graph data type. Specifically, this means that * there is no way to create or delete a node or an edge without using an actual Graph instance. *

    - * @class yfiles.algorithms.Edge + * @class * @extends {yfiles.algorithms.GraphObject} */ export interface Edge extends yfiles.algorithms.GraphObject{} @@ -75046,24 +74881,23 @@ declare namespace system{ *
  • after e2, if d2 == AFTER
  • *
  • before e2, if d2 == BEFORE.
  • * - * @param {yfiles.algorithms.Node} v The source node of the edge. - * @param {yfiles.algorithms.Edge} e1 An edge with source node v. - * @param {yfiles.algorithms.Node} w The target node of the edge. - * @param {yfiles.algorithms.Edge} e2 An edge with target node w. - * @param {yfiles.algorithms.GraphElementInsertion} d1 One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. - * @param {yfiles.algorithms.GraphElementInsertion} d2 One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. - * @param {yfiles.algorithms.Graph} g - * @constructor + * @param v The source node of the edge. + * @param e1 An edge with source node v. + * @param w The target node of the edge. + * @param e2 An edge with target node w. + * @param d1 One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. + * @param d2 One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. + * @param g */ constructor(g:yfiles.algorithms.Graph,v:yfiles.algorithms.Node,e1:yfiles.algorithms.Edge,w:yfiles.algorithms.Node,e2:yfiles.algorithms.Edge,d1:yfiles.algorithms.GraphElementInsertion,d2:yfiles.algorithms.GraphElementInsertion); /** * Creates a copy of this edge that will be inserted into the given graph connecting the given source and target nodes. - * @param {yfiles.algorithms.Graph} g The graph the created edge will belong to. - * @param {yfiles.algorithms.Node} v The source node of the created edge. - * @param {yfiles.algorithms.Node} w The target node of the created edge. - * @returns {yfiles.algorithms.Edge} The newly created Edge object. + * @param g The graph the created edge will belong to. + * @param v The source node of the created edge. + * @param w The target node of the created edge. + * @returns The newly created Edge object. */ createCopy(g:yfiles.algorithms.Graph,v:yfiles.algorithms.Node,w:yfiles.algorithms.Node):yfiles.algorithms.Edge; /** @@ -75075,8 +74909,8 @@ declare namespace system{ *

    * Note that self-loops have the same node at both edge ends. *

    - * @param {yfiles.algorithms.Node} v - * @returns {yfiles.algorithms.Node} + * @param v + * @returns */ opposite(v:yfiles.algorithms.Node):yfiles.algorithms.Node; /** @@ -75170,7 +75004,7 @@ declare namespace system{ } /** * Specialized list implementation for instances of type {@link yfiles.algorithms.Edge}. - * @class yfiles.algorithms.EdgeList + * @class * @extends {yfiles.algorithms.YList} * @implements {yfiles.collections.IEnumerable.} */ @@ -75178,69 +75012,63 @@ declare namespace system{ export class EdgeList { /** * Creates a list that is initialized with an EdgeList. - * @param {yfiles.algorithms.EdgeList} edgeList - * @constructor + * @param edgeList */ constructor(edgeList:yfiles.algorithms.EdgeList); /** * Creates a list that is initialized with a single edge provided. - * @param {yfiles.algorithms.Edge} e - * @constructor + * @param e */ constructor(e:yfiles.algorithms.Edge); /** * Creates a list that is initialized with those edges from the given EdgeCursor object for which the given data provider * returns true upon calling its {@link yfiles.algorithms.IDataProvider#getBoolean getBool} method. - * @param {yfiles.algorithms.IEdgeCursor} ec An edge cursor providing edges that should be added to this list. - * @param {yfiles.algorithms.IDataProvider} predicate A data provider that acts as a inclusion predicate for each edge accessible by the given edge cursor. - * @constructor + * @param ec An edge cursor providing edges that should be added to this list. + * @param predicate A data provider that acts as a inclusion predicate for each edge accessible by the given edge cursor. */ constructor(ec:yfiles.algorithms.IEdgeCursor,predicate:yfiles.algorithms.IDataProvider); /** * Creates a list that is initialized with the edges provided by the given array of edges. - * @param {Array.} a - * @constructor + * @param a */ constructor(a:yfiles.algorithms.Edge[]); /** * Creates a list that is initialized with the edges provided by the given EdgeCursor object. - * @param {yfiles.algorithms.IEdgeCursor} c - * @constructor + * @param c */ constructor(c:yfiles.algorithms.IEdgeCursor); /** * Creates an empty edge list. - * @constructor */ constructor(); /** * Returns an edge cursor for this edge list. - * @returns {yfiles.algorithms.IEdgeCursor} An edge cursor granting access to the edges within this list. + * @returns An edge cursor granting access to the edges within this list. */ edges():yfiles.algorithms.IEdgeCursor; /** * Returns the first edge in this list, or null when the list is empty. - * @returns {yfiles.algorithms.Edge} The first edge in the list. + * @returns The first edge in the list. */ firstEdge():yfiles.algorithms.Edge; /** * Returns an enumerator for this collection. - * @returns {yfiles.collections.IEnumerator.} + * @returns */ getEnumerator():yfiles.collections.IEnumerator; /** * Returns the last edge in this list, or null when the list is empty. - * @returns {yfiles.algorithms.Edge} The last edge in the list. + * @returns The last edge in the list. */ lastEdge():yfiles.algorithms.Edge; /** * Removes the first edge from this list and returns it. - * @returns {yfiles.algorithms.Edge} The first edge from the list. + * @returns The first edge from the list. */ popEdge():yfiles.algorithms.Edge; /** * Returns an edge array containing all elements of this list in the canonical order. - * @returns {Array.} + * @returns */ toEdgeArray():yfiles.algorithms.Edge[]; static $class:yfiles.lang.Class; @@ -75413,6 +75241,2119 @@ declare namespace system{ */ AVERAGE } + /** + * This class represents a line in the 2D-dimensional affine space. + *

    + * The line is defined by the equation ax + by + c = 0 + *

    + * @class + */ + export interface AffineLine extends Object{} + export class AffineLine { + /** + * Creates an affine line which is defined by two points. + * @param p1 + * @param p2 + */ + constructor(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint); + /** + * Creates an affine line which is defined by a point and a vector. + * @param p1 + * @param v + */ + constructor(p1:yfiles.algorithms.YPoint,v:yfiles.algorithms.YVector); + /** + * Returns the crossing of two lines. + *

    + * If the lines are parallel, null is returned. + *

    + * @param l1 + * @param l2 + * @returns + * @static + */ + static getCrossing(l1:yfiles.algorithms.AffineLine,l2:yfiles.algorithms.AffineLine):yfiles.algorithms.YPoint; + /** + * Projects an point on the line in direction of the X-axis. + * @param p + * @returns + */ + getXProjection(p:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * Projects an point on the line in direction of the Y-axis. + * @param p + * @returns + */ + getYProjection(p:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * Gets a from ax+by+c = 0 + * @type {number} + */ + a:number; + /** + * Gets b from ax+by+c = 0 + * @type {number} + */ + b:number; + /** + * Gets c from ax+by+c = 0 + * @type {number} + */ + c:number; + static $class:yfiles.lang.Class; + } + /** + * The handle of a segment of a borderline. + * @class + */ + export interface BorderLineSegment extends Object{} + export class BorderLineSegment { + /** + * Returns the segment's value at the given position. + *

    + * Note: In case the position lies outside the segments range, the calculated value might be invalid. As the segment is not + * aware of any offsets the position also must not include any offsets. + *

    + * @param position the position the value is retrieved for. + * @returns the segment's value at the given position. + */ + getValueAt(position:number):number; + /** + * Returns the next segment or null if there is no such segment. + * @returns + */ + next():yfiles.algorithms.BorderLineSegment; + /** + * Returns the previous segment or null if there is no such segment. + * @returns + */ + prev():yfiles.algorithms.BorderLineSegment; + /** + * Gets the end of this segment. + * @type {number} + */ + end:number; + static $class:yfiles.lang.Class; + } + /** + * This class can be used to easily model an orthogonal border line or sky-line. + *

    + * It provides methods for measuring the distance between different BorderLine instances, merging multiple instances, + * modifying and efficiently moving them around. + *

    + * @class + */ + export interface BorderLine extends Object{} + export class BorderLine { + /** + * Creates a new BorderLine from a single segment. + * @param min the beginning of this borderline + * @param max the ending of this borderline + * @param valueAtMin the value of the segment at the beginning of this borderline + * @param valueAtMax the value of the segment at the ending of this borderline + */ + constructor(min:number,max:number,valueAtMin:number,valueAtMax:number); + /** + * Creates a new BorderLine from a single segment. + * @param min the beginning of this borderline + * @param max the ending of this borderline + * @param value the value of the segment + */ + constructor(min:number,max:number,value:number); + /** + * Creates a new BorderLine with the given value from -Double.MAX_VALUE to Double.MAX_VALUE. + * @param value the value of the segment + */ + constructor(value:number); + /** + * Adds the given offset to the segments' positions. + *

    + * This method has complexity O(1). + *

    + * @param delta the delta to add to the positions + */ + addOffset(delta:number):void; + /** + * Adds the given offset to the current values of the whole borderline. + *

    + * This method has complexity O(1). + *

    + * @param delta the delta to add to the values + */ + addValueOffset(delta:number):void; + /** + * Convenience method that copies the actual data from the given argument to this instance. + * @param other the argument to retrieve the values from + */ + adoptValues(other:yfiles.algorithms.BorderLine):void; + /** + * Creates a copy of this borderline. + *

    + * Optionally negates the values or offsets. + *

    + * @param negateValues whether the values are negated + * @param negateOffsets whether the offsets are negated + * @returns the copy of the borderline + */ + createCopy(negateValues:boolean,negateOffsets:boolean):yfiles.algorithms.BorderLine; + /** + * Merges this borderline with the given borderline using the "maximum" policy. + *

    + * That means the resulting borderline will have greater value of both borderline on each position. If you imagine each + * borderline as a the upper border of a plane, the resulting borderline will be the upper border of the merged planes. + *

    + * @param other the other borderline + * @returns a new borderline that is the result of the merge + */ + createMax(other:yfiles.algorithms.BorderLine):yfiles.algorithms.BorderLine; + /** + * Merges this borderline with the given borderline using the "minimum" policy. + *

    + * That means the resulting borderline will have smaller value of both borderline on each position. If you imagine each + * borderline as a the lower border of a plane, the resulting borderline will be the lower border of the merged planes. + *

    + * @param other the other borderline + * @returns a new borderline that is the result of the merge + */ + createMin(other:yfiles.algorithms.BorderLine):yfiles.algorithms.BorderLine; + /** + * Returns the first segment or null if there is no such segment. + * @returns + */ + firstSegment():yfiles.algorithms.BorderLineSegment; + /** + * Calculates the minimal distance between this borderline and the other one. + *

    + * The other one is treated as if the values were all greater. + *

    + * @param greater + * @returns + */ + getDistanceTo(greater:yfiles.algorithms.BorderLine):number; + /** + * Returns the maximum position of the given segment. + * @param s the segment + * @returns + */ + getMax(s:yfiles.algorithms.BorderLineSegment):number; + /** + * Calculates the maximum value in the interval from->to. + * @param from + * @param to + * @returns + */ + getMaxValue(from:number,to:number):number; + /** + * Returns the minimum position of the given segment. + * @param s the segment + * @returns + */ + getMin(s:yfiles.algorithms.BorderLineSegment):number; + /** + * Calculates the minimum value in the interval from->to. + * @param from + * @param to + * @returns + */ + getMinValue(from:number,to:number):number; + /** + * Returns the segment at the given position. + * @param pos the position + * @returns + */ + getSegmentAt(pos:number):yfiles.algorithms.BorderLineSegment; + /** + * Returns the slope of the given segment. + * @param s the segment + * @returns + */ + getSlope(s:yfiles.algorithms.BorderLineSegment):number; + /** + * Returns the value of the minimum of the given segment. + *

    + * If the segment's slope is 0, it's the value of the whole segment. In case the slope differs from 0, it's the value of + * the start of the slope. + *

    + * @param s the segment + * @returns + */ + getValue(s:yfiles.algorithms.BorderLineSegment):number; + /** + * Returns the value that is set on this borderline at the specified position. + *

    + * The position must lie within the range of the segment. + *

    + * @param segment The segment whose value shall be returned. + * @param pos the position where the value will be retrieved. + * @returns the value + * @throws {Stubs.Exceptions.ArgumentError} if pos is outside the segment's range. + */ + getValueAt(segment:yfiles.algorithms.BorderLineSegment,pos:number):number; + /** + * Returns the value that is set on this borderline at the specified position. + *

    + * The position must lie within the range of the segment that is stored in cell. + *

    + * @param cell The list cell containing the segment whose value shall be returned. + * @param pos the position + * @returns the value + * @throws {Stubs.Exceptions.ArgumentError} if pos is outside the segment's range that is stored in cell. + */ + getValueAt(cell:yfiles.algorithms.ListCell,pos:number):number; + /** + * Returns the value that is set on this borderline at the specified position. + * @param pos the position + * @returns the value + * @throws {Stubs.Exceptions.IndexOutOfRangeError} if the position is outside of the borderline. + */ + getValueAt(pos:number):number; + /** + * Grows this BorderLine horizontally, so that the {@link yfiles.algorithms.BorderLine#getValueAt values} of the BorderLine stay the same however their {@link yfiles.algorithms.BorderLine#getMin start} and {@link yfiles.algorithms.BorderLine#getMax end} + * points are moved in the direction of toMin and toMax. + *

    + * This is useful for scenarios where a BorderLine is needed that consists of an enlarged border. + *

    + *

    + * Note that this method normalizes the segments, i.e., it transforms each segment with slope != 0 to a segment with slope + * == 0. + *

    + * @param toMin the delta by which the border should be extended towards -Infinity + * @param toMax the delta by which the border should be extended towards +Infinity + * @param positive whether the BorderLine should be interpreted to point in positive direction. This influences the direction into which a + * segment's border is extended. + */ + grow(toMin:number,toMax:number,positive:boolean):void; + /** + * Returns the last segment or null if there is no such segment. + * @returns + */ + lastSegment():yfiles.algorithms.BorderLineSegment; + /** + * Merges this borderline with the given borderline using the "maximum" policy. + * @param other the other borderline + */ + mergeWithMax(other:yfiles.algorithms.BorderLine):void; + /** + * Merges this borderline with the given borderline using the "minimum" policy. + * @param other the other borderline + */ + mergeWithMin(other:yfiles.algorithms.BorderLine):void; + /** + * Returns the next segment or null if there is no such segment. + * @param s + * @returns + */ + next(s:yfiles.algorithms.BorderLineSegment):yfiles.algorithms.BorderLineSegment; + /** + * Returns the previous segment or null if there is no such segment. + * @param s + * @returns + */ + prev(s:yfiles.algorithms.BorderLineSegment):yfiles.algorithms.BorderLineSegment; + /** + * Assures that all values in the given interval are greater or equal than the given value. + * @param min the lower end of the interval + * @param max the upper end of the interval + * @param value the smallest possible value for the interval + */ + setMaxValue(min:number,max:number,value:number):void; + /** + * Assures that all values in the given interval are less or equal than the given value. + * @param min the lower end of the interval + * @param max the upper end of the interval + * @param value the greatest possible value for the interval + */ + setMinValue(min:number,max:number,value:number):void; + /** + * Sets a specific interval to a slope starting at a given value. + * @param min the left side of the interval. + * @param max the right side of the interval. + * @param value the value at min where the slope starts. + * @param slope the slope of the segment in the given interval. + * @throws {Stubs.Exceptions.ArgumentError} if min is greater than max. + */ + setSloped(min:number,max:number,value:number,slope:number):void; + /** + * Sets a specific interval described by min and max to a given value. + * @param min the left side of the interval. + * @param max the right side of the interval. + * @param value the value for the whole interval. + */ + setValue(min:number,max:number,value:number):void; + /** + * Gets the smallest position of this borderline + * @type {number} + */ + min:number; + /** + * Gets the greatest position of this borderline + * @type {number} + */ + max:number; + /** + * Gets the minimum value that is set on this borderline + * @type {number} + */ + minValue:number; + /** + * Gets the maximum value that is set on this borderline + * @type {number} + */ + maxValue:number; + static $class:yfiles.lang.Class; + } + /** + * This class provides useful geometric primitives and advanced geometric algorithms. + * @class + * @static + */ + export interface Geom extends Object{} + export class Geom { + /** + * Calculates the convex hull for a set of points. + * @param points a list of {@link } objects + * @returns a list of {@link } objects that constitute the convex hull of the given points. The list contains points + * in counter clockwise order around the hull. The first point is the one with the smallest x coordinate. If two such + * points exist then of these points the one with the smallest y coordinate is chosen as the first one. + * @static + */ + static calcConvexHull(points:yfiles.algorithms.YList):yfiles.algorithms.YList; + /** + * Calculates the intersection point of two affine lines. + *

    + * Each line is given by two points. + *

    + * @param p1 one point on the first line. + * @param p2 another point on the first line. + * @param p3 one point on the second line. + * @param p4 another point on the second line. + * @returns the intersection point of the specified lines or null if there is no intersection. + * @static + */ + static calcIntersection(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint,p3:yfiles.algorithms.YPoint,p4:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * Calculates the intersection point of two affine lines. + *

    + * Each line is given by a point and a direction vector. + *

    + * @param p1 origin point of the first line. + * @param d1 direction vector of the first line. + * @param p2 origin point of the second line. + * @param d2 direction vector of the second line. + * @returns the intersection point of the specified lines or null if there is no intersection. + * @static + */ + static calcIntersection(p1:yfiles.algorithms.YPoint,d1:yfiles.algorithms.YVector,p2:yfiles.algorithms.YPoint,d2:yfiles.algorithms.YVector):yfiles.algorithms.YPoint; + /** + * Calculates the intersection point of two affine lines. + *

    + * Each line is given by the coordinates of two points. + *

    + * @param x1 x-coordinate of one point on the first line. + * @param y1 y-coordinate of one point on the first line. + * @param x2 x-coordinate of another point on the first line. + * @param y2 y-coordinate of another point on the first line. + * @param x3 x-coordinate of one point on the second line. + * @param y3 y-coordinate of one point on the second line. + * @param x4 x-coordinate of another point on the second line. + * @param y4 y-coordinate of another point on the second line. + * @returns the intersection point of the specified lines or null if there is no intersection. + * @static + */ + static calcIntersection(x1:number,y1:number,x2:number,y2:number,x3:number,y3:number,x4:number,y4:number):yfiles.algorithms.YPoint; + /** + * Intersects the pair of specified source Rectangle2D objects and puts the result into the specified destination Rectangle2D + * object. + *

    + * If one or both of the source rectangles have negative width or height, the resulting rectangle will be located at (0,0) + * with a width and height of -1. One of the source rectangles can also be the destination to avoid creating a third + * Rectangle2D object, but in this case the original points of this source rectangle will be overwritten by this method. + *

    + * @param r1 the first of a pair of Rectangle2D objects to be intersected with each other + * @param r2 the second of a pair of Rectangle2D objects to be intersected with each other + * @param dest the Rectangle2D that holds the results of the intersection of r1 and r2 + * @returns + * @static + */ + static calcIntersection(r1:yfiles.algorithms.Rectangle2D,r2:yfiles.algorithms.Rectangle2D,dest:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; + /** + * Unions the pair of source Rectangle2D objects and puts the result into the specified destination Rectangle2D object. + *

    + * If one of the source rectangles has negative width or height, it is excluded from the union. If both source rectangles + * have negative width or height, the destination rectangle will become a copy of r1. One of the source rectangles can also + * be the destination to avoid creating a third Rectangle2D object, but in this case the original points of this source + * rectangle will be overwritten by this method. If the destination is null, a new Rectangle2D is created. + *

    + * @param r1 the first of a pair of Rectangle2D objects to be combined with each other + * @param r2 the second of a pair of Rectangle2D objects to be combined with each other + * @param dest the Rectangle2D that holds the results of the union of r1 and r2 + * @returns + * @static + */ + static calcUnion(r1:yfiles.algorithms.Rectangle2D,r2:yfiles.algorithms.Rectangle2D,dest:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; + /** + * Returns true iff the given points are collinear, i.e. + *

    + * all three points lie on a common line. + *

    + *

    + * Same as {@link yfiles.algorithms.Geom#orientation orientation(p,q,r) == 0} + *

    + * @param p + * @param q + * @param r + * @returns + * @static + */ + static collinear(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):boolean; + /** + * Determines the distance of the point p to the line segment [l1, l2]. + * @param pointX the x coordinate of p + * @param pointY the y coordinate of p + * @param lineX1 the x coordinate of l1 + * @param lineY1 the y coordinate of l1 + * @param lineX2 the x coordinate of l2 + * @param lineY2 the y coordinate of l2 + * @returns + * @static + */ + static distanceToLineSegment(pointX:number,pointY:number,lineX1:number,lineY1:number,lineX2:number,lineY2:number):number; + /** + * Same as {@link yfiles.algorithms.Geom#orientation orientation(p,q,r) > 0} + * @param p + * @param q + * @param r + * @returns + * @static + */ + static leftTurn(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):boolean; + /** + * Returns whether the two lines defined by the given coordinates intersect or not. + * @param x1 + * @param y1 + * @param x2 + * @param y2 + * @param x3 + * @param y3 + * @param x4 + * @param y4 + * @returns + * @static + */ + static linesIntersect(x1:number,y1:number,x2:number,y2:number,x3:number,y3:number,x4:number,y4:number):boolean; + /** + * Same as {@link yfiles.algorithms.Geom#orientation} with double values as arguments. + * @param px + * @param py + * @param qx + * @param qy + * @param rx + * @param ry + * @returns + * @static + */ + static orientation(px:number,py:number,qx:number,qy:number,rx:number,ry:number):number; + /** + * Returns the orientation of point r relative to the directed line from point p to point q. + *

    + * The given tuple of points is said to have positive orientation if p and q are distinct and r lies to the left of the + * oriented line passing through p and q and oriented from p to q. + *

    + *

    + * The tuple is said to have negative orientation if p and q are distinct and r lies to the right of the line, and the + * tuple is said to have orientation zero if the three points are collinear. + *

    + * @param p + * @param q + * @param r + * @returns +1 in the case of positive orientation, -1 in the case of negative orientation and 0 in the case of zero orientation. + * @static + */ + static orientation(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):number; + /** + * Determines the projection of the point p onto the line segment [l1, l2]. + *

    + * The resulting point is + *

    + *
      + *
    • the orthogonal projection of p onto the line through l1 and l2, iff the projection lies on the line segment [l1, l2]
    • + *
    • the end point of the line segment [l1, l2] that is closest to p, otherwise
    • + *
    + * @param pointX the x coordinate of p + * @param pointY the y coordinate of p + * @param lineX1 the x coordinate of l1 + * @param lineY1 the y coordinate of l1 + * @param lineX2 the x coordinate of l2 + * @param lineY2 the y coordinate of l2 + * @returns + * @static + */ + static projection(pointX:number,pointY:number,lineX1:number,lineY1:number,lineX2:number,lineY2:number):yfiles.algorithms.YPoint; + /** + * Same as {@link yfiles.algorithms.Geom#orientation orientation(p,q,r) < 0} + * @param p + * @param q + * @param r + * @returns + * @static + */ + static rightTurn(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):boolean; + /** + * Returns +1 if point d lies left of the directed circle through points a, b, and c, 0 if a,b,c and d are cocircular, and + * -1 otherwise. + * @param a + * @param b + * @param c + * @param d + * @returns + * @static + */ + static sideOfCircle(a:yfiles.algorithms.YPoint,b:yfiles.algorithms.YPoint,c:yfiles.algorithms.YPoint,d:yfiles.algorithms.YPoint):number; + /** + * Converts the given degree value from radian to angular + * @param angrad + * @returns + * @static + */ + static toDegrees(angrad:number):number; + /** + * Converts the given degree value from angular to radian. + * @param angdeg + * @returns + * @static + */ + static toRadians(angdeg:number):number; + static $class:yfiles.lang.Class; + } + /** + * This is an interface for a sequence of instances of LineSegment. + * @interface + * @implements {yfiles.algorithms.ICursor} + */ + export interface ILineSegmentCursor extends Object,yfiles.algorithms.ICursor{ + /** + * Gets the instance of LineSegment the cursor is currently pointing on. + * @abstract + * @type {yfiles.algorithms.LineSegment} + */ + lineSegment:yfiles.algorithms.LineSegment; + } + var ILineSegmentCursor:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * This interface describes a 2-dimensional object which has a finite bounding box. + * @interface + */ + export interface IPlaneObject extends Object{ + /** + * Gets the smallest Rectangle which contains the object. + * @abstract + * @type {yfiles.algorithms.YRectangle} + */ + boundingBox:yfiles.algorithms.YRectangle; + } + var IPlaneObject:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * This is an interface for a sequence of instances of YPoint. + * @interface + * @implements {yfiles.algorithms.ICursor} + */ + export interface IPointCursor extends Object,yfiles.algorithms.ICursor{ + /** + * Gets the instance of YPoint the cursor is currently pointing on. + * @abstract + * @type {yfiles.algorithms.YPoint} + */ + point:yfiles.algorithms.YPoint; + } + var IPointCursor:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * Double-precision immutable insets representation. + * @class + * @implements {yfiles.lang.ICloneable} + */ + export interface Insets extends Object,yfiles.lang.ICloneable{} + export class Insets { + /** + * Creates a new instance with the given values + * @param top The new top inset value + * @param left The new left inset value + * @param bottom The new bottom inset value + * @param right The new right inset value + */ + constructor(top:number,left:number,bottom:number,right:number); + /** + * + * @returns + */ + clone():Object; + /** + * Creates a {@link yfiles.geometry.Insets} from a given {@link yfiles.algorithms.Insets}. + * @returns The {@link }. + */ + toInsets():yfiles.geometry.Insets; + /** + * The inset from the top. + * @const + * @type {number} + */ + top:number; + /** + * The inset from the left. + * @const + * @type {number} + */ + left:number; + /** + * The inset from the bottom. + * @const + * @type {number} + */ + bottom:number; + /** + * The inset from the right. + * @const + * @type {number} + */ + right:number; + static $class:yfiles.lang.Class; + } + /** + * An instance of this interface handles intersections found by the IntersectionAlgorithm, + * @interface + */ + export interface IIntersectionHandler extends Object{ + /** + * This method is called at every intersection. + * @param a + * @param b + * @abstract + */ + checkIntersection(a:Object,b:Object):void; + } + var IIntersectionHandler:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * This class calculates the intersection of rectangles in the plane with the help of a sweep-line algorithm. + *

    + *
    The complexity is O(n log n + s) where n is the number of rectangles and s the number of intersections. + *

    + * @class + * @static + */ + export interface IntersectionAlgorithm extends Object{} + export class IntersectionAlgorithm { + /** + * Calculates the intersections of rectangles in the plane. + *

    + * Every found intersection is reported to an + * IntersectionHandler. Rectangles with negative size are completely ignored by this implementation (i.e. never generate + * intersections) + *

    + * @param objects a list of PlaneObject objects. + * @param iHandler intersections are reported to this class. + * @static + */ + static intersect(objects:yfiles.algorithms.YList,iHandler:yfiles.algorithms.IIntersectionHandler):void; + static $class:yfiles.lang.Class; + } + /** + * This class represents a line segment in the plane. + *

    + * A line segment is defined by its two end points. + *

    + * @class + * @implements {yfiles.algorithms.IPlaneObject} + */ + export interface LineSegment extends Object,yfiles.algorithms.IPlaneObject{} + export class LineSegment { + /** + * Returns a new LineSegment. + * @param p1 the first end point of the line segment. + * @param p2 the second end point of the line segment. + */ + constructor(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint); + /** + * Checks whether a line segment intersects a paraxial box. + *

    + * Implemented using the Cohen-Sutherland algorithm. + *

    + * @param boxX1 x-coordinate of the upper left corner of the box + * @param boxY1 y-coordinate of the upper left corner of the box + * @param boxX2 x-coordinate of the lower right corner of the box + * @param boxY2 y-coordinate of the lower right corner of the box + * @param sX1 x-coordinate of the first end point of the line segment + * @param sY1 y-coordinate of the first end point of the line segment + * @param sX2 x-coordinate of the second end point of the line segment + * @param sY2 y-coordinate of the second end point of the line segment + * @returns true if the line segment intersects the box, false otherwise. + * @static + */ + static boxIntersectsSegment(boxX1:number,boxY1:number,boxX2:number,boxY2:number,sX1:number,sY1:number,sX2:number,sY2:number):boolean; + /** + * Checks whether a line segment intersects a box. + *

    + * Implemented using the Cohen-Sutherland algorithm. + *

    + * @param box A rectangle + * @param x1 x-coordinate of the first end point of the line segment + * @param y1 y-coordinate of the first end point of the line segment + * @param x2 x-coordinate of the second end point of the line segment + * @param y2 y-coordinate of the second end point of the line segment + * @returns true if the line segment intersects the box, false otherwise. + * @static + */ + static boxIntersectsSegment(box:yfiles.algorithms.YRectangle,x1:number,y1:number,x2:number,y2:number):boolean; + /** + * Checks whether a line segment intersects a box. + * @param box A rectangle. + * @param s first end point of the line segment. + * @param t second end point of the line segment. + * @returns true if the line segments intersects the box, false otherwise. + * @static + */ + static boxIntersectsSegment(box:yfiles.algorithms.YRectangle,s:yfiles.algorithms.YPoint,t:yfiles.algorithms.YPoint):boolean; + /** + * Checks whether a given point lies on this line segment. + * @param point an arbitrary point. + * @returns true if the line segments intersects the box, false otherwise. + */ + contains(point:yfiles.algorithms.YPoint):boolean; + /** + * Returns intersection point between the two line segments, if there is one or null if the two line segments do not + * intersect. + * @param s1 first line segment + * @param s2 second line segment + * @returns + * @static + */ + static getIntersection(s1:yfiles.algorithms.LineSegment,s2:yfiles.algorithms.LineSegment):yfiles.algorithms.YPoint; + /** + * Checks whether the line segment intersects a point. + * @param p a point + * @returns true if the line segments intersects the given point, false otherwise. + */ + intersects(p:yfiles.algorithms.YPoint):boolean; + /** + * Checks whether the line segment intersects a box. + * @param box A rectangle. + * @returns true if the line segments intersects the box, false otherwise. + */ + intersects(box:yfiles.algorithms.YRectangle):boolean; + /** + * Determines if the given points define a horizontal line segment. + *

    + * This methods allows for y-coordinate differences of up to 1e-8. + *

    + * @param p1 + * @param p2 + * @returns true if the given points define a horizontal line segment; false otherwise. + * @static + */ + static isHorizontalSegment(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):boolean; + /** + * Returns if the projection on the X axis of the line segment covers a certain point on the X Axis. + * @param x + * @returns + */ + isInXIntervall(x:number):boolean; + /** + * Returns if the projection on the Y axis of the line segment covers a certain point on the Y Axis. + * @param y + * @returns + */ + isInYIntervall(y:number):boolean; + /** + * Determines if the given points define a vertical line segment. + *

    + * This methods allows for x-coordinate differences of up to 1e-8. + *

    + * @param p1 + * @param p2 + * @returns true if the given points define a vertical line segment; false otherwise. + * @static + */ + static isVerticalSegment(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):boolean; + /** + * Returns the length of the line segment, this is the value of the Euclidean norm. + * @returns an value > 0. + */ + length():number; + /** + * Returns the affine line defined by the end points of the line segment. + * @returns + */ + toAffineLine():yfiles.algorithms.AffineLine; + /** + * Returns the vector pointing from the first end point to the second end point of the line segment. + * @returns + */ + toYVector():yfiles.algorithms.YVector; + /** + * Gets if this segment is considered vertical, i.e. + *

    + * the x values of the end point differ less then 0.00000001 + *

    + * @type {boolean} + */ + isVertical:boolean; + /** + * Gets if the interval is horizontal. + * @type {boolean} + */ + isHorizontal:boolean; + /** + * Gets the first end point of the line segment. + * @type {yfiles.algorithms.YPoint} + */ + firstEndPoint:yfiles.algorithms.YPoint; + /** + * Gets the second end point of the line segment. + * @type {yfiles.algorithms.YPoint} + */ + secondEndPoint:yfiles.algorithms.YPoint; + /** + * Gets the y value of the line on x coordinate 0. + * @type {number} + */ + xOffset:number; + /** + * Gets the slope of the line segment. + * @type {number} + */ + slope:number; + /** + * Gets the smallest Rectangle which contains the object. + * @type {yfiles.algorithms.YRectangle} + */ + boundingBox:yfiles.algorithms.YRectangle; + /** + * Gets the distance from start to end point in x-coordinates. + * @type {number} + */ + deltaX:number; + /** + * Gets the distance from start to end point in y-coordinates. + * @type {number} + */ + deltaY:number; + static $class:yfiles.lang.Class; + } + /** + * Represents a two-dimensional point located at (x, y). + * @class + * @implements {yfiles.lang.ICloneable} + */ + export interface Point2D extends Object,yfiles.lang.ICloneable{} + export class Point2D { + /** + * Creates a new instance at the given location. + * @param x The x coordinate of the new point + * @param y The x coordinate of the new point + */ + constructor(x:number,y:number); + /** + * Creates a new instance that is located at (0, 0) + */ + constructor(); + /** + * Creates a new instance of this class that has the same values as this objects. + * @returns a new instance of this class that has the same values as this objects. + */ + clone():Object; + /** + * Calculates the distance between this points and another one, given as its coordinates. + * @param px The x coordinate of the second point. + * @param py The y coordinate of the second point. + * @returns the distance between this points and another one, given as its coordinates. + */ + distance(px:number,py:number):number; + /** + * Calculates the distance between this points and another one. + * @param p The second point. + * @returns the distance between this points and another one. + */ + distance(p:yfiles.algorithms.Point2D):number; + /** + * Calculates the distance between two points, given as their coordinates. + * @param x1 The x coordinate of the first point. + * @param y1 The y coordinate of the first point. + * @param x2 The x coordinate of the second point. + * @param y2 The y coordinate of the second point. + * @returns the distance between two points, given as their coordinates. + * @static + */ + static distance(x1:number,y1:number,x2:number,y2:number):number; + /** + * Calculates the squared distance between this points and another one, given as its coordinates. + * @param px The x coordinate of the second point. + * @param py The y coordinate of the second point. + * @returns the squared distance between this points and another one, given as its coordinates. + */ + distanceSq(px:number,py:number):number; + /** + * Calculates the squared distance between this points and another one. + * @param p The second point. + * @returns the squared distance between this points and another one. + */ + distanceSq(p:yfiles.algorithms.Point2D):number; + /** + * Calculates the squared distance between two points, given as their coordinates. + * @param x1 The x coordinate of the first point. + * @param y1 The y coordinate of the first point. + * @param x2 The x coordinate of the second point. + * @param y2 The y coordinate of the second point. + * @returns the squared distance between two points, given as their coordinates. + * @static + */ + static distanceSq(x1:number,y1:number,x2:number,y2:number):number; + /** + * Sets the location of this point to the given coordinates. + * @param x the new x coordinate + * @param y the new y coordinate + */ + setLocation(x:number,y:number):void; + /** + * Creates a {@link yfiles.geometry.Point} from a given {@link yfiles.algorithms.Point2D}. + * @returns The {@link }. + */ + toPoint():yfiles.geometry.Point; + /** + * Sets the location of this point to the same values as for the given point. + * @type {yfiles.algorithms.Point2D} + */ + location:yfiles.algorithms.Point2D; + /** + * Gets the x coordinate of this point. + * @type {number} + */ + x:number; + /** + * Gets the y coordinate of this point. + * @type {number} + */ + y:number; + static $class:yfiles.lang.Class; + } + /** + * Represents a two-dimensional rectangle of size (width x height), located at the point (x, y). + * @class + * @implements {yfiles.lang.ICloneable} + */ + export interface Rectangle2D extends Object,yfiles.lang.ICloneable{} + export class Rectangle2D { + /** + * Creates a new rectangle of the specified size at the specified location. + * @param x the x-coordinate of the upper left corner of the created rectangle. + * @param y the y-coordinate of the upper left corner of the created rectangle. + * @param width the width of the created rectangle. + * @param height the height of the created rectangle. + */ + constructor(x:number,y:number,width:number,height:number); + /** + * Creates a new rectangle of size (0 x 0) at the location (0, 0). + */ + constructor(); + /** + * Adds a point, specified by its coordinates, to this rectangle. + *

    + * The rectangle will be grown if necessary. Note that for points that would lie on the right or bottom border of the + * rectangle, {@link yfiles.algorithms.Rectangle2D#contains} will still return false for the added point. + *

    + * @param px the x coordinate of the point to add + * @param py the y coordinate of the point to add + */ + add(px:number,py:number):void; + /** + * Adds a rectangle to this rectangle. + *

    + * The rectangle will be grown to the union of both rectangles + *

    + * @param r the rectangle to add + */ + add(r:yfiles.algorithms.Rectangle2D):void; + /** + * Creates a new instance of this class that has the same values as this objects. + * @returns a new instance of this class that has the same values as this objects. + */ + clone():Object; + /** + * Checks whether this rectangle completely contains the second specified rectangle. + * @param x the x coordinate of the second rectangle. + * @param y the y coordinate of the second rectangle. + * @param width the width coordinate of the second rectangle. + * @param height the height coordinate of the second rectangle. + * @returns true if this rectangle contains the second one + */ + contains(x:number,y:number,width:number,height:number):boolean; + /** + * Checks if the point specified by the given coordinates is contained in this rectangle. + * @param x the x-coordinate of the point. + * @param y the y-coordinate of the point. + * @returns true if the specified point is contained in this rectangle; false otherwise. + */ + contains(x:number,y:number):boolean; + /** + * Checks whether this rectangle completely contains the second specified rectangle. + * @param rect the rectangle to check for containment + * @returns true if this rectangle contains the second one + */ + contains(rect:yfiles.algorithms.Rectangle2D):boolean; + /** + * Calculates the intersection of this rectangle with the given rectangle and returns the result as new rectangle. + * @param r a rectangle to intersect with this rectangle. + * @returns a new rectangle that represents the calculated intersection. + */ + createIntersection(r:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; + /** + * Calculates the union of this rectangle with the given rectangle and returns the result as new rectangle. + * @param r a rectangle to union with this rectangle. + * @returns a new rectangle that represents the calculated union. + */ + createUnion(r:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; + /** + * Calculates the intersection of the first and second specified rectangle and sets the resulting location and size to the + * third rectangle. + * @param src1 the first rectangle to intersect. + * @param src2 the second rectangle to intersect. + * @param dst the rectangle to which the result is set. + * @static + */ + static intersect(src1:yfiles.algorithms.Rectangle2D,src2:yfiles.algorithms.Rectangle2D,dst:yfiles.algorithms.Rectangle2D):void; + /** + * Checks whether this rectangle and the second specified rectangle intersect. + * @param x the x coordinate of the second rectangle. + * @param y the y coordinate of the second rectangle. + * @param width the width coordinate of the second rectangle. + * @param height the height coordinate of the second rectangle. + * @returns true if both rectangles intersect + */ + intersects(x:number,y:number,width:number,height:number):boolean; + /** + * Checks whether this rectangle and the second specified rectangle intersect. + * @param rect the rectangle to check for intersection + * @returns true if both rectangles intersect + */ + intersects(rect:yfiles.algorithms.Rectangle2D):boolean; + /** + * Checks if the line segment specified by the given coordinates intersects this rectangle. + * @param x1 the x-coordinate of the first end point of the line. + * @param y1 the y-coordinate of the first end point of the line. + * @param x2 the x-coordinate of the other end point of the line. + * @param y2 the y-coordinate of the other end point of the line. + * @returns true if the specified line intersects this rectangle; false otherwise. + */ + intersectsLine(x1:number,y1:number,x2:number,y2:number):boolean; + /** + * Sets the outer bounds of this rectangle based on the specified location and size. + * @param x the new x-coordinate of the upper left corner. + * @param y the new y-coordinate of the upper left corner. + * @param width the new width. + * @param height the new height. + */ + setFrame(x:number,y:number,width:number,height:number):void; + /** + * Sets the outer bounds of this rectangle based on the specified new center and corner. + * @param centerX the x-coordinate of the new center of this rectangle. + * @param centerY the y-coordinate of the new center of this rectangle. + * @param cornerX the x-coordinate of any new corner of this rectangle. + * @param cornerY the y-coordinate of any new corner of this rectangle. + */ + setFrameFromCenter(centerX:number,centerY:number,cornerX:number,cornerY:number):void; + /** + * Sets the outer bounds of this rectangle based on the specified new center and corner. + * @param center the new center of this rectangle. + * @param corner any new corner of this rectangle. + */ + setFrameFromCenter(center:yfiles.algorithms.Point2D,corner:yfiles.algorithms.Point2D):void; + /** + * Sets the outer bounds of this rectangle based on the end points of one of its diagonals. + * @param x1 the x-coordinate of the first end point of a diagonal. + * @param y1 the y-coordinate of the first end point of a diagonal. + * @param x2 the x-coordinate of the other end point of a diagonal. + * @param y2 the y-coordinate of the other end point of a diagonal. + */ + setFrameFromDiagonal(x1:number,y1:number,x2:number,y2:number):void; + /** + * Sets the outer bounds of this rectangle based on the end points of one of its diagonals. + * @param p1 the first end point of a diagonal. + * @param p2 the other end point of a diagonal. + */ + setFrameFromDiagonal(p1:yfiles.algorithms.Point2D,p2:yfiles.algorithms.Point2D):void; + /** + * Sets the location and size of this rectangle to the specified values. + * @param x the new x-coordinate of the upper left corner. + * @param y the new y-coordinate of the upper left corner. + * @param width the new width. + * @param height the new height. + */ + setRect(x:number,y:number,width:number,height:number):void; + /** + * Creates a {@link yfiles.geometry.Rect} from a given {@link yfiles.algorithms.Rectangle2D}. + * @returns The {@link }. + */ + toRect():yfiles.geometry.Rect; + /** + * Calculates the union of the first and second specified rectangle and sets the resulting location and size to the third + * rectangle. + * @param src1 the first rectangle to union. + * @param src2 the second rectangle to union. + * @param dst the rectangle to which the result is set. + * @static + */ + static union(src1:yfiles.algorithms.Rectangle2D,src2:yfiles.algorithms.Rectangle2D,dst:yfiles.algorithms.Rectangle2D):void; + /** + * Gets or sets the outer bounds of this rectangle in double coordinates. + * @type {yfiles.algorithms.Rectangle2D} + */ + frame:yfiles.algorithms.Rectangle2D; + /** + * Sets the location and size of this rectangle to be similar to the specified rectangle. + * @type {yfiles.algorithms.Rectangle2D} + */ + rect:yfiles.algorithms.Rectangle2D; + /** + * Gets the x coordinate of the upper left corner. + * @type {number} + */ + x:number; + /** + * Gets the y coordinate of the upper left corner. + * @type {number} + */ + y:number; + /** + * Gets the width of this rectangle. + * @type {number} + */ + width:number; + /** + * Gets the height of this rectangle. + * @type {number} + */ + height:number; + /** + * Gets whether this instance is empty, i.e. + *

    + * covers no area. + *

    + * @type {boolean} + */ + empty:boolean; + /** + * Gets the smallest x coordinate of this rectangle. + * @type {number} + */ + minX:number; + /** + * Gets the smallest y coordinate of this rectangle. + * @type {number} + */ + minY:number; + /** + * Gets the largest x coordinate of this rectangle. + * @type {number} + */ + maxX:number; + /** + * Gets the largest y coordinate of this rectangle. + * @type {number} + */ + maxY:number; + /** + * Gets the x coordinate of the center point of this rectangle. + * @type {number} + */ + centerX:number; + /** + * Gets the y coordinate of the center point of this rectangle. + * @type {number} + */ + centerY:number; + /** + * Gets the bounds of this instance in double precision. + * @type {yfiles.algorithms.Rectangle2D} + */ + bounds2D:yfiles.algorithms.Rectangle2D; + static $class:yfiles.lang.Class; + } + /** + * This class provides algorithms for the triangulation of point sets in the plane. + * @class + * @static + */ + export interface Triangulator extends Object{} + export class Triangulator { + /** + * Computes a Delauney triangulation of the given points. + *

    + * A Delauney triangulation is a triangulation such that none of the given points is inside the circumcircle of any of the + * calculated triangles. + *

    + *

    + * The calculated triangulation is represented by an embedded graph, i.e. to each edge there exists a reverse edge and the + * outedges around each node are in embedded order. The returned edge and the (optional) reverseEdgeMap can be used to + * construct all faces of the plane graph and to determine its outer face. + *

    + * @param result a graph whose nodes represent the points that need to be triangulated. + * @param pointData must provide the location (YPoint) for each node in the given graph. + * @param revMap a node map that will contain for each edge its reverse edge. If this argument is null then no reverse edge information + * will be available. + * @returns an edge on the outer face of the result graph. + * @static + */ + static calcDelauneyTriangulation(result:yfiles.algorithms.Graph,pointData:yfiles.algorithms.IDataProvider,revMap:yfiles.algorithms.IEdgeMap):yfiles.algorithms.Edge; + /** + * Computes a triangulation of the given points. + *

    + * The calculated triangulation is represented by an embedded graph, i.e. to each edge there exists a reverse edge and the + * outedges around each node are in embedded order. The returned edge and the (optional) reverseEdgeMap can be used to + * construct all faces of the plane graph and to determine its outer face. + *

    + * @param points the point set to be triangulated. The points must be provided as a YList of YPoints. + * @param result the resulting triangulation + * @param resultMap the node map that forms the link between a point and a node. + * @param reverseEdgeMap a node map that will contain for each edge its reverse edge. If this argument is null then no reverse edge information + * will be available. + * @returns an edge on the outer face of the result graph. + * @static + */ + static triangulatePoints(points:yfiles.algorithms.YList,result:yfiles.algorithms.Graph,resultMap:yfiles.algorithms.INodeMap,reverseEdgeMap:yfiles.algorithms.IEdgeMap):yfiles.algorithms.Edge; + /** + * Computes a triangulation of the given points. + *

    + * The calculated triangulation is represented by an embedded graph, i.e. to each edge there exists a reverse edge and the + * outedges around each node are in embedded order. The returned edge and the (optional) reverseEdgeMap can be used to + * construct all faces of the plane graph and to determine its outer face. + *

    + * @param result a graph whose nodes represent the points that need to be triangulated. + * @param pointData must provide the location (YPoint) for each node in the given graph. + * @param reverseEdgeMap a node map that will contain for each edge its reverse edge. If this argument is null then no reverse edge information + * will be available. + * @returns an edge on the outer face of the result graph. + * @static + */ + static triangulatePoints(result:yfiles.algorithms.Graph,pointData:yfiles.algorithms.IDataProvider,reverseEdgeMap:yfiles.algorithms.IEdgeMap):yfiles.algorithms.Edge; + static $class:yfiles.lang.Class; + } + /** + * This class represents the size of an object. + *

    + * An instance of this class implements the immutable design pattern. + *

    + * @class + * @implements {yfiles.lang.IComparable} + */ + export interface YDimension extends Object,yfiles.lang.IComparable{} + export class YDimension { + /** + * Creates a new YDimension2D object for given size. + * @param width + * @param height + */ + constructor(width:number,height:number); + /** + * + * @param o + * @returns + */ + compareTo(o:Object):number; + /** + * Creates a {@link yfiles.geometry.Size} from a given {@link yfiles.algorithms.YDimension}. + * @returns The {@link }. + */ + toSize():yfiles.geometry.Size; + /** + * Gets the width of the dimension object. + * @type {number} + */ + width:number; + /** + * Gets the height of the dimension object. + * @type {number} + */ + height:number; + static $class:yfiles.lang.Class; + } + /** + * An oriented rectangle in 2D coordinate space with double precision coordinates. + *

    + * The rectangle's height extends from its {@link yfiles.algorithms.YOrientedRectangle#anchor anchor point} in the direction of its up + * vector ({@link yfiles.algorithms.YOrientedRectangle#upX ux}, {@link yfiles.algorithms.YOrientedRectangle#upY uy}). Its width extends from its {@link yfiles.algorithms.YOrientedRectangle#anchor anchor point} in + * direction (-uy, ux) (i.e. perpendicular to the up vector). This means that an oriented rectangle with anchor point (0, 0) width + * 100, height 10, and up vector (0, -1) is a paraxial rectangle with upper left corner (0, -10) and lower right corner + * (100, 0). + *

    + * @class + * @implements {yfiles.algorithms.IPlaneObject} + */ + export interface YOrientedRectangle extends Object,yfiles.algorithms.IPlaneObject{} + export class YOrientedRectangle { + /** + * Creates a new instance using the provided rectangle's values to initialize anchor, size, and up vector. + * @param rect the provided rectangle. + */ + constructor(rect:yfiles.algorithms.YOrientedRectangle); + /** + * Creates a new instance using the provided rectangle's values to initialize anchor and size. + *

    + * The oriented rectangle's up vector will be (0, -1). + *

    + * @param rect the provided rectangle. + */ + constructor(rect:yfiles.algorithms.YRectangle); + /** + * Creates a new instance using the provided values to initialize anchor, size, and up vector. + * @param anchorX The x coordinate of the anchor of the oriented rectangle. + * @param anchorY The y coordinate of the anchor of the oriented rectangle. + * @param width The width of the rectangle. + * @param height The height of the rectangle. + * @param upX The x component of the up vector. + * @param upY The y component of the up vector. + */ + constructor(anchorX:number,anchorY:number,width:number,height:number,upX:number,upY:number); + /** + * Creates a new instance using the provided values to initialize anchor and size. + *

    + * The oriented rectangle's up vector will be (0, -1). + *

    + * @param anchorX The x coordinate of the anchor of the oriented rectangle. + * @param anchorY The y coordinate of the anchor of the oriented rectangle. + * @param width The width of the rectangle. + * @param height The height of the rectangle. + */ + constructor(anchorX:number,anchorY:number,width:number,height:number); + /** + * Creates a new instance using the provided values to initialize anchor, size, and up vector. + * @param position The provider for the dynamic anchor of this instance. + * @param size The provider for the dynamic size of this instance. + * @param upVector The up vector. + */ + constructor(position:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,upVector:yfiles.algorithms.YVector); + /** + * Creates a new instance using the provided values to initialize the anchor and size. + *

    + * The oriented rectangle's up vector will be (0, -1). + *

    + * @param anchor The provider for the dynamic anchor of this instance. + * @param size The provider for the dynamic size of this instance. + */ + constructor(anchor:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension); + /** + * Copies the actual values from the given OrientedRectangle to this instance. + * @param other the OrientedRectangle to retrieve the values from + */ + adoptValues(other:yfiles.algorithms.YOrientedRectangle):void; + /** + * Determines the four corner points of an oriented rectangle. + * @param rect The rectangle to determine the bounds. + * @returns the array of corner points. + * @static + */ + static calcPoints(rect:yfiles.algorithms.YOrientedRectangle):yfiles.algorithms.YPoint[]; + /** + * Determines the coordinates of the four corners of an oriented rectangle. + * @param rect The rectangle to determine the bounds. + * @returns the array of coordinates of the corner points in which each even index has the x-coordinate and each odd index the + * y-coordinate + * @static + */ + static calcPointsInDouble(rect:yfiles.algorithms.YOrientedRectangle):number[]; + /** + * Determines whether or not the specified point lies inside this oriented rectangle. + * @param x the x-coordinate of the point to check. + * @param y the y-coordinate of the point to check. + * @param [closed=false] if true, all points on the border of the rectangle are considered to be contained. + * @returns true iff the specified point lies inside; false otherwise. + */ + contains(x:number,y:number,closed?:boolean):boolean; + /** + * Determines whether the given rectangle r1 contains rectangle r2, using an epsilon value. + * @param r1 The first rectangle. + * @param r2 The second rectangle. + * @param eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than + * or equal to that value, it will be considered a hit. + * @returns true iff the r1 contains r2. + * @static + */ + static contains(r1:yfiles.algorithms.YOrientedRectangle,r2:yfiles.algorithms.YOrientedRectangle,eps:number):boolean; + /** + * Determines whether the given oriented rectangle contains the provided point, using an epsilon value. + * @param rect The rectangle. + * @param p The point to test. + * @param eps fuzziness range. A positive value allows for fuzzy hit testing. If a point lies outside the given rectangle, but its + * distance is less than or equal to that value, it will be considered a hit. + * @returns true if the point lies inside the rectangle; false otherwise. + * @static + */ + static contains(rect:yfiles.algorithms.YOrientedRectangle,p:yfiles.algorithms.YPoint,eps:number):boolean; + /** + * Determines whether the given oriented rectangle contains the provided point, using an epsilon value. + * @param rect The rectangle. + * @param x x-coordinate of the point to test. + * @param y y-coordinate of the point to test. + * @param eps fuzziness range. A positive value allows for fuzzy hit testing. If a point lies outside the given rectangle, but its + * distance is less than or equal to that value, it will be considered a hit. + * @returns true if the point lies inside the rectangle; false otherwise. + * @static + */ + static contains(rect:yfiles.algorithms.YOrientedRectangle,x:number,y:number,eps:number):boolean; + /** + * Creates a new OrientedRectangle instance whose anchor point is moved by the specified distance values, but has the same + * width, height, and up vector as this rectangle. + * @param dx the distance to move the anchor point in x-direction. A positive value means "move" to the right, a negative value means + * "move" to the left. + * @param dy the distance to move the anchor point in y-direction. A positive value means "move" downwards, a negative value means + * "move" upwards. + * @returns a new OrientedRectangle instance whose anchor point is moved by the specified distance values. + */ + getMovedInstance(dx:number,dy:number):yfiles.algorithms.YOrientedRectangle; + /** + * Creates a new OrientedRectangle instance that has the specified width and height, but has the same anchor point and up + * vector as this rectangle. + * @param width the width of the new rectangle. + * @param height the height of the new rectangle. + * @returns a new OrientedRectangle instance that has the specified width and height. + */ + getResizedInstance(width:number,height:number):yfiles.algorithms.YOrientedRectangle; + /** + * Determines an intersection point of the specified oriented rectangle and the specified line segment. + *

    + * Note: there might be more than one intersection point. However this method only returns one intersection point or null + * if there is no intersection. + *

    + * @param rect + * @param line + * @param eps + * @returns an intersection point of the specified oriented rectangle and the specified line segment or null if the rectangle and + * the segment do not intersect. + * @static + */ + static intersectionPoint(rect:yfiles.algorithms.YOrientedRectangle,line:yfiles.algorithms.LineSegment,eps:number):yfiles.algorithms.YPoint; + /** + * Determines whether or not the specified oriented rectangle and the specified line segment intersect. + * @param rect + * @param line + * @param eps + * @returns true if the rectangle and the segment intersect and false otherwise. + * @static + */ + static intersects(rect:yfiles.algorithms.YOrientedRectangle,line:yfiles.algorithms.LineSegment,eps:number):boolean; + /** + * Determines whether a rectangle intersects an oriented rectangle, given an epsilon. + * @param orientedRectangle The oriented rectangle to test. + * @param rectangle The rectangle to test. + * @param eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than + * or equal to that value, it will be considered a hit. + * @returns Whether they have a non-empty intersection. + * @static + */ + static intersects(orientedRectangle:yfiles.algorithms.YOrientedRectangle,rectangle:yfiles.algorithms.YRectangle,eps:number):boolean; + /** + * Moves this rectangle by applying the offset to the anchor. + * @param dx The x offset to move the rectangle's position by. + * @param dy The y offset to move the rectangle's position by. + */ + moveBy(dx:number,dy:number):void; + /** + * Sets the anchor of this rectangle. + * @param x the new x-coordinate of the anchor point. + * @param y the new y-coordinate of the anchor point. + */ + setAnchor(x:number,y:number):void; + /** + * Sets the anchor of the OrientedRectangle so that the center of the rectangle coincides with the given coordinate pair. + * @param cx The x coordinate of the center. + * @param cy The y coordinate of the center. + */ + setCenter(cx:number,cy:number):void; + /** + * Sets the size of this rectangle. + * @param width the new width. + * @param height the new height. + */ + setSize(width:number,height:number):void; + /** + * Sets the components of the up vector to the new values. + * @param upX The x component of the normalized up vector. + * @param upY The y component of the normalized up vector. + */ + setUpVector(upX:number,upY:number):void; + /** + * Creates an immutable {@link yfiles.geometry.IOrientedRectangle} from a given {@link yfiles.algorithms.YOrientedRectangle}. + * @returns The {@link }. + */ + toImmutableOrientedRectangle():yfiles.geometry.IOrientedRectangle; + /** + * Gets whether this instance has negative width or height. + * @type {boolean} + */ + empty:boolean; + /** + * Gets or sets the anchor of this oriented rectangle. + * @type {yfiles.algorithms.YPoint} + */ + anchor:yfiles.algorithms.YPoint; + /** + * Gets the x-coordinate of this rectangle's anchor point. + * @type {number} + */ + anchorX:number; + /** + * Gets the y-coordinate of this rectangle's anchor point. + * @type {number} + */ + anchorY:number; + /** + * Gets or sets the size of this rectangle. + * @type {yfiles.algorithms.YDimension} + */ + size:yfiles.algorithms.YDimension; + /** + * Gets the width of this rectangle. + * @type {number} + */ + width:number; + /** + * Gets the height of this rectangle. + * @type {number} + */ + height:number; + /** + * Gets the x-component of this rectangle's up vector. + * @type {number} + */ + upX:number; + /** + * Gets the y-component of this rectangle's up vector. + * @type {number} + */ + upY:number; + /** + * Gets or sets the angle (measured in radians) of this rectangle. + *

    + * The angle of an oriented rectangle is the angle between the vector (0, -1) and the rectangle's up vector in counter + * clockwise order. An angle of 0 means the up vector points up in direction (0, -1). + *

    + * @type {number} + */ + angle:number; + /** + * Gets or sets the current center of the oriented rectangle. + * @type {yfiles.algorithms.YPoint} + */ + center:yfiles.algorithms.YPoint; + /** + * Calculates the paraxial bounding box of this oriented rectangle. + * @type {yfiles.algorithms.YRectangle} + */ + boundingBox:yfiles.algorithms.YRectangle; + static $class:yfiles.lang.Class; + } + /** + * This class represents a point in the plane with double coordinates. + *

    + * This class implements the immutable design pattern. + *

    + * @class + * @implements {yfiles.lang.IComparable} + * @final + */ + export interface YPoint extends Object,yfiles.lang.IComparable{} + export class YPoint { + /** + * Creates a new YPoint object for a given position. + * @param x the x coordinate of the point. + * @param y the y coordinate of the point. + */ + constructor(x:number,y:number); + /** + * Creates a new YPoint at location (0,0) + */ + constructor(); + /** + * Adds two points and returns the result. + * @param p1 an arbitrary instance of YPoint. + * @param p2 an arbitrary instance of YPoint. + * @returns + * @static + */ + static add(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * Comparable implementation. + *

    + * YPoints are ordered by ascending x-coordinates. If the x-coordinates of two points equal, then these points are ordered + * by ascending y-coordinates. + *

    + * @param o + * @returns + */ + compareTo(o:Object):number; + /** + * Returns the euclidean distance between two points. + * @param x1 x-coordinate of first point + * @param y1 y-coordinate of first point + * @param x2 x-coordinate of second point + * @param y2 y-coordinate of second point + * @returns the euclidean distance between first and second point + * @static + */ + static distance(x1:number,y1:number,x2:number,y2:number):number; + /** + * Returns the euclidean distance between two points. + * @param p1 an arbitrary point + * @param p2 an arbitrary point + * @returns the Euclidean distance between p1 and p2. + * @static + */ + static distance(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):number; + /** + * Returns the euclidean distance between this point and a given point. + * @param x the x coordinate of an arbitrary point + * @param y the y coordinate of an arbitrary point + * @returns the Euclidean distance between this point and the point (x,y). + */ + distanceTo(x:number,y:number):number; + /** + * Returns the euclidean distance between this point and a given point. + * @param p an arbitrary point + * @returns the Euclidean distance between this point and p. + */ + distanceTo(p:yfiles.algorithms.YPoint):number; + /** + * Returns a point that geometrically lies in in the middle of the line formed by the given points. + * @param p1 an arbitrary instance of YPoint. + * @param p2 an arbitrary instance of YPoint. + * @returns + * @static + */ + static midPoint(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * Returns the point, got by moving this point to another position. + * @param x the value which is added on the x-coordinate of the point. + * @param y the value which is added on the y-coordinate of the point. + * @returns a new instance of YPoint which is the result of the moving operation. + */ + moveBy(x:number,y:number):yfiles.algorithms.YPoint; + /** + * Subtracts two points (p1 - p2) and returns the result. + * @param p1 an arbitrary instance of YPoint. + * @param p2 an arbitrary instance of YPoint. + * @returns + * @static + */ + static subtract(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * Returns a copy of the given point with exchanged x- and y-coordinates. + * @param p an arbitrary instance of YPoint. + * @returns + * @static + */ + static swap(p:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * Creates a {@link yfiles.geometry.Point} from a given {@link yfiles.algorithms.YPoint}. + * @returns The {@link }. + */ + toPoint():yfiles.geometry.Point; + /** + * A YPoint constant with coordinates (0,0). + * @const + * @static + * @type {yfiles.algorithms.YPoint} + */ + static ORIGIN:yfiles.algorithms.YPoint; + /** + * Gets the x-coordinate of the point object. + * @type {number} + */ + x:number; + /** + * Gets the y-coordinate of the point object. + * @type {number} + */ + y:number; + static $class:yfiles.lang.Class; + } + /** + * This class represents an ordered list of points in the plane. + * @class + * @final + */ + export interface YPointPath extends Object{} + export class YPointPath { + /** + * Creates a new path from an array of points. + * @param path + */ + constructor(path:yfiles.algorithms.YPoint[]); + /** + * Creates a new path from a list of points. + * @param l a list of {@link } instances. + */ + constructor(l:yfiles.collections.IList); + /** + * Creates a new empty path. + */ + constructor(); + /** + * Calculate the (geometric) length of the path. + *

    + * The length of the path is the sum of lengths of all line segments making up the path. + *

    + * @returns the (geometric) length of the path + */ + calculateLength():number; + /** + * Create a point path with reverse ordering of the points. + * @returns + */ + createReverse():yfiles.algorithms.YPointPath; + /** + * Get the points in the path. + * @returns + */ + cursor():yfiles.algorithms.ICursor; + /** + * Returns a line segment in the path. + * @param i + * @returns + */ + getLineSegment(i:number):yfiles.algorithms.LineSegment; + /** + * Get the number of points in the path. + * @returns + */ + length():number; + /** + * Get the points in the path. + * @returns + */ + lineSegments():yfiles.algorithms.ILineSegmentCursor; + /** + * Get the points in the path. + * @returns + */ + points():yfiles.algorithms.IPointCursor; + /** + * Get the points in the list as array. + * @returns + */ + toArray():yfiles.algorithms.YPoint[]; + /** + * Get the points in the path as list. + * @returns a list of {@link } instances. + */ + toList():yfiles.collections.IList; + /** + * Defines a path with no points. + * @const + * @static + * @type {yfiles.algorithms.YPointPath} + */ + static EMPTY_PATH:yfiles.algorithms.YPointPath; + /** + * Gets the first point in the path. + * @type {yfiles.algorithms.YPoint} + */ + first:yfiles.algorithms.YPoint; + /** + * Gets the last point in the path. + * @type {yfiles.algorithms.YPoint} + */ + last:yfiles.algorithms.YPoint; + /** + * Gets the number of line segments in the path. + * @type {number} + */ + lineSegmentCount:number; + static $class:yfiles.lang.Class; + } + /** + * This class defines a rectangle and provides utility methods for it. + * @class + * @extends {yfiles.algorithms.YDimension} + * @implements {yfiles.algorithms.IPlaneObject} + */ + export interface YRectangle extends yfiles.algorithms.YDimension,yfiles.algorithms.IPlaneObject{} + export class YRectangle { + /** + * Creates a new rectangle with given upper left corner and size. + * @param x x-coordinate of upper left corner of the rectangle. + * @param y y-coordinate of upper left corner of the rectangle. + * @param width width of the rectangle. + * @param height height of the rectangle. + */ + constructor(x:number,y:number,width:number,height:number); + /** + * Creates a new rectangle with given upper left corner and size. + * @param pos upper left corner of the rectangle. + * @param size size of the rectangle. + */ + constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension); + /** + * Creates a new rectangle with upper left corner (0,0) and size (0,0). + */ + constructor(); + /** + * Checks whether or not this YRectangle contains the given rectangle. + * @param p + * @returns + */ + contains(p:yfiles.algorithms.YRectangle):boolean; + /** + * Checks whether or not this YRectangle contains the given point. + * @param p + * @returns + */ + contains(p:yfiles.algorithms.YPoint):boolean; + /** + * Checks whether or not this YRectangle contains the rectangle defined by the given frame. + * @param x + * @param y + * @param width + * @param height + * @returns + */ + contains(x:number,y:number,width:number,height:number):boolean; + /** + * Checks whether or not this YRectangle contains the given point. + * @param x the x-coordinate of the point to check. + * @param y the x-coordinate of the point to check. + * @returns true if the point lies inside the rectangle; false otherwise. + */ + contains(x:number,y:number):boolean; + /** + * Determines whether the specified rectangle contains the specified point. + * @param rx the x-coordinate of the upper left corner of the rectangle. + * @param ry the y-coordinate of the upper left corner of the rectangle. + * @param rw the width of the rectangle. + * @param rh the height of the rectangle. + * @param x the x-coordinate of the point to check. + * @param y the x-coordinate of the point to check. + * @param [closed=false] if true, all points on the border of the rectangle are considered to be contained. + * @returns true if the point lies inside the rectangle; false otherwise. + * @static + */ + static contains(rx:number,ry:number,rw:number,rh:number,x:number,y:number,closed?:boolean):boolean; + /** + * Returns the Euclidean distance to the passed rectangle. + *

    + * If they overlap, the distance is 0. + *

    + * @param other the second rectangle. + * @returns the distance to the given rectangle. + */ + getEuclideanDistance(other:yfiles.algorithms.YRectangle):number; + /** + * Returns the Manhattan distance to the passed rectangle. + *

    + * If they overlap the distance is 0. + *

    + * @param other the second rectangle. + * @returns the distance to the given rectangle. + */ + getManhattanDistance(other:yfiles.algorithms.YRectangle):number; + /** + * Returns whether or not the given rectangles intersect. + * @param r1 + * @param r2 + * @returns + * @static + */ + static intersects(r1:yfiles.algorithms.YRectangle,r2:yfiles.algorithms.YRectangle):boolean; + /** + * Creates a {@link yfiles.geometry.Rect} from a given {@link yfiles.algorithms.YRectangle}. + * @returns The {@link }. + */ + toRect():yfiles.geometry.Rect; + /** + * Gets x-coordinate of upper left corner. + * @type {number} + */ + x:number; + /** + * Gets y-coordinate of upper left corner. + * @type {number} + */ + y:number; + /** + * Gets coordinates of upper left corner. + * @type {yfiles.algorithms.YPoint} + */ + location:yfiles.algorithms.YPoint; + /** + * Gets this object. + * @type {yfiles.algorithms.YRectangle} + */ + boundingBox:yfiles.algorithms.YRectangle; + static $class:yfiles.lang.Class; + } + /** + * This class represents a vector in the 2-dimensional real vector space. + *

    + * This vector is an ordered 2 tuple and is defined by two doubles. + *

    + * @class + */ + export interface YVector extends Object{} + export class YVector { + /** + * Creates a new vector, whose direction is given by two points. + *

    + * The vector is defined by p1 - p2. + *

    + * @param p1 The first point. + * @param [p2=null] The second point. If no point is spcified, (0,0) is used instead. + */ + constructor(p1:yfiles.algorithms.YPoint,p2?:yfiles.algorithms.YPoint); + /** + * Creates a new vector which is a copy of another vector. + * @param v the vector, whose values are copied. + */ + constructor(v:yfiles.algorithms.YVector); + /** + * Creates a new vector, whose direction is given by two points. + *

    + * The vector is defined by (x1 - x2, y1 - y2). + *

    + * @param x1 the X-coordinate of the first point. + * @param y1 the Y-coordinate of the first point. + * @param x2 the X-coordinate of the second point. + * @param y2 the Y-coordinate of the second point. + */ + constructor(x1:number,y1:number,x2:number,y2:number); + /** + * Creates a new vector with given direction. + * @param dx the first coordinate + * @param dy the second coordinate + */ + constructor(dx:number,dy:number); + /** + * Adds a vector to this vector. + * @param v the vector to add. + */ + add(v:yfiles.algorithms.YVector):void; + /** + * Adds the vector to a point and returns the resulting point. + * @param p a point. + * @param v the vector to add to the point. + * @returns p+v + * @static + */ + static add(p:yfiles.algorithms.YPoint,v:yfiles.algorithms.YVector):yfiles.algorithms.YPoint; + /** + * Adds two vectors and returns the result. + * @param v first vector to sum. + * @param w second vector to sum. + * @returns v+w + * @static + */ + static add(v:yfiles.algorithms.YVector,w:yfiles.algorithms.YVector):yfiles.algorithms.YVector; + /** + * Returns the result of the addition of two angles between 0 and 2*Pi. + *

    + * The result is calculated modulo 2*Pi. + *

    + * @param a1 a value in [0,2Pi). + * @param a2 a value in [0,2Pi). + * @returns The sum of a1 and a2 modulo 2*Pi. + * @static + */ + static addAngle(a1:number,a2:number):number; + /** + * Returns the angle (measured in radians) between two vectors in clockwise order (with regards to screen coordinates) from + * v1 to v2. + *

    + * Screen coordinates mean positive x-direction is from left to right and positive y-direction is from top to bottom. + *

    + * @param v1 + * @param v2 + * @returns + * @static + */ + static angle(v1:yfiles.algorithms.YVector,v2:yfiles.algorithms.YVector):number; + /** + * Returns this vector with unit length. + * @param v + * @returns + * @static + */ + static getNormal(v:yfiles.algorithms.YVector):yfiles.algorithms.YVector; + /** + * Returns the length of the vector, this is the value of the euclidean norm. + * @returns a value > 0. + */ + length():number; + /** + * Assigns unit length to the vector. + *
    + */ + norm():void; + /** + * Returns the vector which is orthogonal to the given one and has unit length. + * @param v a vector. + * @returns a vector which is orthogonal to v with unit length. + * @static + */ + static orthoNormal(v:yfiles.algorithms.YVector):yfiles.algorithms.YVector; + /** + * Returns true if vector v1 is on the right side of v2. + * @param v1 + * @param v2 + * @returns + * @static + */ + static rightOf(v1:yfiles.algorithms.YVector,v2:yfiles.algorithms.YVector):boolean; + /** + * Returns a new YVector instance that is obtained by rotating this vector by the given angle (measured in radians) in + * clockwise direction (with regards to screen coordinates). + *

    + * Screen coordinates mean positive x-direction is from left to right and positive y-direction is from top to bottom. + *

    + * @param angle the angle of rotation in radians. + * @returns the rotated vector. + */ + rotate(angle:number):yfiles.algorithms.YVector; + /** + * Returns the value of the scalar product of two vectors. + * @param v1 the first vector. + * @param v2 the second vector. + * @returns v1.x * v2.x + v1.y * v2.y + * @static + */ + static scalarProduct(v1:yfiles.algorithms.YVector,v2:yfiles.algorithms.YVector):number; + /** + * Scales the vector by an factor. + * @param factor the scale factor, with which the length is multiplied. + */ + scale(factor:number):void; + /** + * Creates a {@link yfiles.geometry.Point} from a given {@link yfiles.algorithms.YVector}. + * @returns The {@link }. + */ + toPoint():yfiles.geometry.Point; + /** + * Gets the first coordinate of the vector. + * @type {number} + */ + x:number; + /** + * Gets the second coordinate of the vector. + * @type {number} + */ + y:number; + static $class:yfiles.lang.Class; + } /** * This class implements a directed graph structure. *

    @@ -75447,7 +77388,7 @@ declare namespace system{ * Also, it serves as a factory to create so-called maps ({@link yfiles.algorithms.INodeMap}, * {@link yfiles.algorithms.IEdgeMap}) that can be utilized to bind arbitrary data to nodes and edges. *

    - * @class yfiles.algorithms.Graph + * @class */ export interface Graph extends Object{} export class Graph { @@ -75461,14 +77402,12 @@ declare namespace system{ *

    * The new Graph instance also inherits all graph listeners registered with the given graph. *

    - * @param {yfiles.algorithms.Graph} graph The graph to be (partially) copied. - * @param {yfiles.algorithms.ICursor} [subNodes=null] A cursor to iterate over the nodes that actually induce the subgraph to be copied. - * @constructor + * @param graph The graph to be (partially) copied. + * @param [subNodes=null] A cursor to iterate over the nodes that actually induce the subgraph to be copied. */ constructor(graph:yfiles.algorithms.Graph,subNodes?:yfiles.algorithms.ICursor); /** * Instantiates an empty Graph object. - * @constructor */ constructor(); /** @@ -75476,8 +77415,8 @@ declare namespace system{ *

    * If there is already a data provider registered with that key, then it will be overwritten with the new one. *

    - * @param {Object} providerKey - * @param {yfiles.algorithms.IDataProvider} data + * @param providerKey + * @param data */ addDataProvider(providerKey:Object,data:yfiles.algorithms.IDataProvider):void; /** @@ -75501,15 +77440,15 @@ declare namespace system{ *
  • after targetReference, if targetD == AFTER
  • *
  • before targetReference, if targetD == BEFORE.
  • * - * @param {yfiles.algorithms.Edge} e The edge to be changed. - * @param {yfiles.algorithms.Node} newSource The new source node. - * @param {yfiles.algorithms.Edge} sourceReference Reference edge for insertion at the new source node. - * @param {yfiles.algorithms.GraphElementInsertion} sourceD One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. - * @param {yfiles.algorithms.Node} newTarget The new target node. - * @param {yfiles.algorithms.Edge} targetReference Reference edge for insertion at the new target node. - * @param {yfiles.algorithms.GraphElementInsertion} targetD One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. + * @param e The edge to be changed. + * @param newSource The new source node. + * @param sourceReference Reference edge for insertion at the new source node. + * @param sourceD One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. + * @param newTarget The new target node. + * @param targetReference Reference edge for insertion at the new target node. + * @param targetD One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. */ changeEdge(e:yfiles.algorithms.Edge,newSource:yfiles.algorithms.Node,sourceReference:yfiles.algorithms.Edge,sourceD:yfiles.algorithms.GraphElementInsertion,newTarget:yfiles.algorithms.Node,targetReference:yfiles.algorithms.Edge,targetD:yfiles.algorithms.GraphElementInsertion):void; /** @@ -75532,13 +77471,13 @@ declare namespace system{ *
  • after e2, if d2 == AFTER
  • *
  • before e2, if d2 == BEFORE.
  • * - * @param {yfiles.algorithms.Edge} e The edge to be changed. - * @param {yfiles.algorithms.Edge} e1 Reference edge for insertion at a new source node. - * @param {yfiles.algorithms.Edge} e2 Reference edge for insertion at a new target node. - * @param {yfiles.algorithms.GraphElementInsertion} d1 One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. - * @param {yfiles.algorithms.GraphElementInsertion} d2 One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. + * @param e The edge to be changed. + * @param e1 Reference edge for insertion at a new source node. + * @param e2 Reference edge for insertion at a new target node. + * @param d1 One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. + * @param d2 One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. */ changeEdge(e:yfiles.algorithms.Edge,e1:yfiles.algorithms.Edge,e2:yfiles.algorithms.Edge,d1:yfiles.algorithms.GraphElementInsertion,d2:yfiles.algorithms.GraphElementInsertion):void; /** @@ -75547,9 +77486,9 @@ declare namespace system{ * The edge is appended to the lists of incoming and outgoing edges at the given source node and target node, * respectively. *

    - * @param {yfiles.algorithms.Edge} e The edge to be changed. - * @param {yfiles.algorithms.Node} newSource The new source node of the given edge. - * @param {yfiles.algorithms.Node} newTarget The new target node of the given edge. + * @param e The edge to be changed. + * @param newSource The new source node of the given edge. + * @param newTarget The new target node of the given edge. */ changeEdge(e:yfiles.algorithms.Edge,newSource:yfiles.algorithms.Node,newTarget:yfiles.algorithms.Node):void; /** @@ -75558,21 +77497,21 @@ declare namespace system{ clear():void; /** * Whether or not this graph contains the given edge. - * @param {yfiles.algorithms.Edge} e - * @returns {boolean} + * @param e + * @returns */ contains(e:yfiles.algorithms.Edge):boolean; /** * Whether or not this graph contains the given node. - * @param {yfiles.algorithms.Node} v - * @returns {boolean} + * @param v + * @returns */ contains(v:yfiles.algorithms.Node):boolean; /** * Returns whether or not this graph contains an edge that connects the given nodes. - * @param {yfiles.algorithms.Node} source The source node. - * @param {yfiles.algorithms.Node} target The target node. - * @returns {boolean} + * @param source The source node. + * @param target The target node. + * @returns * @see yfiles.algorithms.Node#getEdgeTo * @see yfiles.algorithms.Node#getEdgeFrom * @see yfiles.algorithms.Node#getEdge @@ -75583,7 +77522,7 @@ declare namespace system{ *

    * Invokes {@link yfiles.algorithms.Graph#Graph}. *

    - * @returns {yfiles.algorithms.Graph} The newly created Graph object. + * @returns The newly created Graph object. */ createCopy():yfiles.algorithms.Graph; /** @@ -75607,15 +77546,15 @@ declare namespace system{ *
  • after e2, if d2 == AFTER
  • *
  • before e2, if d2 == BEFORE.
  • * - * @param {yfiles.algorithms.Node} v The source node of the edge. - * @param {yfiles.algorithms.Edge} e1 An edge with source node v. - * @param {yfiles.algorithms.Node} w The target node of the edge. - * @param {yfiles.algorithms.Edge} e2 An edge with target node w. - * @param {yfiles.algorithms.GraphElementInsertion} d1 One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. - * @param {yfiles.algorithms.GraphElementInsertion} d2 One of the object insertion specifiers {@link yfiles.algorithms.GraphElementInsertion#BEFORE} or - * {@link yfiles.algorithms.GraphElementInsertion#AFTER}. - * @returns {yfiles.algorithms.Edge} The newly created Edge object. + * @param v The source node of the edge. + * @param e1 An edge with source node v. + * @param w The target node of the edge. + * @param e2 An edge with target node w. + * @param d1 One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. + * @param d2 One of the object insertion specifiers {@link #BEFORE} or + * {@link #AFTER}. + * @returns The newly created Edge object. */ createEdge(v:yfiles.algorithms.Node,e1:yfiles.algorithms.Edge,w:yfiles.algorithms.Node,e2:yfiles.algorithms.Edge,d1:yfiles.algorithms.GraphElementInsertion,d2:yfiles.algorithms.GraphElementInsertion):yfiles.algorithms.Edge; /** @@ -75626,9 +77565,9 @@ declare namespace system{ *

    * The edge is appended to the lists of incoming and outgoing edges at the source node and target node, respectively. *

    - * @param {yfiles.algorithms.Node} v The source node of the edge. - * @param {yfiles.algorithms.Node} w The target node of the edge. - * @returns {yfiles.algorithms.Edge} The newly created Edge object. + * @param v The source node of the edge. + * @param w The target node of the edge. + * @returns The newly created Edge object. */ createEdge(v:yfiles.algorithms.Node,w:yfiles.algorithms.Node):yfiles.algorithms.Edge; /** @@ -75643,7 +77582,7 @@ declare namespace system{ *

    * In order to release the resources held by this map, {@link yfiles.algorithms.Graph#disposeEdgeMap} has to be called. *

    - * @returns {yfiles.algorithms.IEdgeMap} + * @returns */ createEdgeMap():yfiles.algorithms.IEdgeMap; /** @@ -75651,12 +77590,12 @@ declare namespace system{ *

    * Subclasses should override this method. *

    - * @returns {yfiles.algorithms.Graph} + * @returns */ createGraph():yfiles.algorithms.Graph; /** * Creates a new node in this graph and fires a corresponding notification event to inform registered listeners. - * @returns {yfiles.algorithms.Node} The newly created Node object. + * @returns The newly created Node object. */ createNode():yfiles.algorithms.Node; /** @@ -75671,7 +77610,7 @@ declare namespace system{ *

    * In order to release the resources held by this map, {@link yfiles.algorithms.Graph#disposeNodeMap} has to be called. *

    - * @returns {yfiles.algorithms.INodeMap} + * @returns */ createNodeMap():yfiles.algorithms.INodeMap; /** @@ -75684,7 +77623,7 @@ declare namespace system{ * Calling this method will destroy the edge map and associated resources can be freed. It is strongly recommended to * dispose of all edge maps that are not needed anymore using this method. *

    - * @param {yfiles.algorithms.IEdgeMap} map + * @param map */ disposeEdgeMap(map:yfiles.algorithms.IEdgeMap):void; /** @@ -75697,13 +77636,13 @@ declare namespace system{ * Calling this method will destroy the node map and associated resources can be freed. It is strongly recommended to * dispose of all node maps that are not needed anymore using this method. *

    - * @param {yfiles.algorithms.INodeMap} map + * @param map */ disposeNodeMap(map:yfiles.algorithms.INodeMap):void; /** * Low-level iteration support for adjacent edges. - * @param {yfiles.algorithms.Node} v - * @returns {yfiles.algorithms.Edge} + * @param v + * @returns * @protected * @static */ @@ -75714,28 +77653,28 @@ declare namespace system{ * The look-up domain of a returned data provider normally consists of either the nodes of the graph, or its edges, or * both. *

    - * @param {Object} providerKey - * @returns {yfiles.algorithms.IDataProvider} + * @param providerKey + * @returns */ getDataProvider(providerKey:Object):yfiles.algorithms.IDataProvider; /** * Returns an array containing all edges of this graph. - * @returns {Array.} + * @returns */ getEdgeArray():yfiles.algorithms.Edge[]; /** * Provides access to the edges of the graph. - * @returns {yfiles.algorithms.IEdgeCursor} An EdgeCursor to iterate over the edges in the graph. + * @returns An EdgeCursor to iterate over the edges in the graph. */ getEdgeCursor():yfiles.algorithms.IEdgeCursor; /** * Returns an array containing all nodes of this graph. - * @returns {Array.} + * @returns */ getNodeArray():yfiles.algorithms.Node[]; /** * Provides access to the nodes of the graph. - * @returns {yfiles.algorithms.INodeCursor} A NodeCursor to iterate over the nodes in the graph. + * @returns A NodeCursor to iterate over the nodes in the graph. */ getNodeCursor():yfiles.algorithms.INodeCursor; /** @@ -75753,7 +77692,7 @@ declare namespace system{ *

    * To reinsert a hidden node use {@link yfiles.algorithms.Graph#unhide}. *

    - * @param {yfiles.algorithms.Node} v + * @param v * @see yfiles.algorithms.Graph#hide * @see yfiles.algorithms.Graph#unhide */ @@ -75773,29 +77712,29 @@ declare namespace system{ *

    * To reinsert a hidden edge use {@link yfiles.algorithms.Graph#unhide}. *

    - * @param {yfiles.algorithms.Edge} e + * @param e * @see yfiles.algorithms.Graph#hide * @see yfiles.algorithms.Graph#unhide */ hide(e:yfiles.algorithms.Edge):void; /** * Moves the given edge to the first position within the sequence of edges in this graph. - * @param {yfiles.algorithms.Edge} e + * @param e */ moveToFirst(e:yfiles.algorithms.Edge):void; /** * Moves the given node to the first position within the sequence of nodes in this graph. - * @param {yfiles.algorithms.Node} v + * @param v */ moveToFirst(v:yfiles.algorithms.Node):void; /** * Moves the given edge to the last position within the sequence of edges in this graph. - * @param {yfiles.algorithms.Edge} e + * @param e */ moveToLast(e:yfiles.algorithms.Edge):void; /** * Moves the given node to the last position within the sequence of nodes in this graph. - * @param {yfiles.algorithms.Node} v + * @param v */ moveToLast(v:yfiles.algorithms.Node):void; /** @@ -75814,7 +77753,7 @@ declare namespace system{ * Note that reinserting an edge whose source/target is not in the graph (e.g., because it's currently hidden/removed) * causes an exception. Hence, in such cases, you first have to unhide/reinsert the corresponding endpoints. *

    - * @param {yfiles.algorithms.Edge} e The edge to be reinserted. + * @param e The edge to be reinserted. * @see yfiles.algorithms.Graph#removeEdge */ reInsertEdge(e:yfiles.algorithms.Edge):void; @@ -75825,13 +77764,13 @@ declare namespace system{ * The reinserted node is appended to the sequence of nodes in this graph, i.e., normally, its new position does not match * the position before its removal. *

    - * @param {yfiles.algorithms.Node} v The node to be reinserted. + * @param v The node to be reinserted. * @see yfiles.algorithms.Graph#removeNode */ reInsertNode(v:yfiles.algorithms.Node):void; /** * Removes the data provider that is registered using the given look-up key. - * @param {Object} providerKey + * @param providerKey */ removeDataProvider(providerKey:Object):void; /** @@ -75839,7 +77778,7 @@ declare namespace system{ *

    * The edge will be deselected before it gets removed. *

    - * @param {yfiles.algorithms.Edge} e The edge to be removed. + * @param e The edge to be removed. */ removeEdge(e:yfiles.algorithms.Edge):void; /** @@ -75851,7 +77790,7 @@ declare namespace system{ *

    * The node will be deselected before it gets removed. *

    - * @param {yfiles.algorithms.Node} v The node to be removed from this graph. + * @param v The node to be removed from this graph. */ removeNode(v:yfiles.algorithms.Node):void; /** @@ -75859,7 +77798,7 @@ declare namespace system{ *

    * This operation exchanges source and target node of the edge. *

    - * @param {yfiles.algorithms.Edge} e + * @param e */ reverseEdge(e:yfiles.algorithms.Edge):void; /** @@ -75869,8 +77808,8 @@ declare namespace system{ * order of the edges as returned by {@link yfiles.algorithms.Node#getOutEdgeCursor} and {@link yfiles.algorithms.Node#getInEdgeCursor} * respectively. *

    - * @param {yfiles.collections.IComparer.} inComparer The comparator used for the incoming edges at each node. - * @param {yfiles.collections.IComparer.} outComparer The comparator used for the outgoing edges at each node. + * @param inComparer The comparator used for the incoming edges at each node. + * @param outComparer The comparator used for the outgoing edges at each node. */ sortEdges(inComparer:yfiles.collections.IComparer,outComparer:yfiles.collections.IComparer):void; /** @@ -75879,7 +77818,7 @@ declare namespace system{ * If the given comparator is null, then the edges will not be sorted. This list determines the order of the edges as * returned by {@link yfiles.algorithms.Graph#getEdgeCursor}. *

    - * @param {yfiles.collections.IComparer.} comparer The comparator used for the edges. + * @param comparer The comparator used for the edges. */ sortEdges(comparer:yfiles.collections.IComparer):void; /** @@ -75888,7 +77827,7 @@ declare namespace system{ * If the given comparator is null, then the nodes will not be sorted. This list determines the order of the nodes as * returned by {@link yfiles.algorithms.Graph#getNodeCursor}. *

    - * @param {yfiles.collections.IComparer.} comparer The comparator used for the nodes. + * @param comparer The comparator used for the nodes. */ sortNodes(comparer:yfiles.collections.IComparer):void; /** @@ -75901,7 +77840,7 @@ declare namespace system{ * The only difference to a proper node reinsertion as performed by {@link yfiles.algorithms.Graph#reInsertNode} is that no event * will be emitted that signals the structural change (i.e. the node's reinsertion). *

    - * @param {yfiles.algorithms.Node} v + * @param v */ unhide(v:yfiles.algorithms.Node):void; /** @@ -75918,7 +77857,7 @@ declare namespace system{ * Note that unhiding an edge whose source/target is not in the graph (e.g., because it's currently hidden/removed) causes * an exception. Hence, in such cases, you first have to unhide/reinsert the corresponding endpoints. *

    - * @param {yfiles.algorithms.Edge} e + * @param e * @see yfiles.algorithms.Graph#hide * @see yfiles.algorithms.Graph#unhide */ @@ -76037,7 +77976,7 @@ declare namespace system{ *
  • Simple graph: A graph that contains no self-loops and parallel edges.
  • *
  • Planar graph: A graph that can be drawn on the plane without edge crossings.
  • * - * @class yfiles.algorithms.GraphChecker + * @class * @static */ export interface GraphChecker extends Object{} @@ -76047,8 +77986,8 @@ declare namespace system{ *

    * A graph is called acyclic if it contains no directed cycle. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is acyclic, false, otherwise + * @param graph the given graph + * @returns true if the graph is acyclic, false, otherwise * @static */ static isAcyclic(graph:yfiles.algorithms.Graph):boolean; @@ -76057,8 +77996,8 @@ declare namespace system{ *

    * A graph is called biconnected if it has no cut vertex or articulation point, i.e., no node whose removal disconnects the graph. *

    - * @param {yfiles.algorithms.Graph} graph the given undirected graph - * @returns {boolean} true if the graph is biconnected, false otherwise + * @param graph the given undirected graph + * @returns true if the graph is biconnected, false otherwise * @static */ static isBiconnected(graph:yfiles.algorithms.Graph):boolean; @@ -76068,8 +78007,8 @@ declare namespace system{ * A graph is called bipartite if its nodes can be partitioned into two sets such that each edge connects two nodes of different * sets. *

    - * @param {yfiles.algorithms.Graph} graph the given undirected graph - * @returns {boolean} true if the graph is bipartite, false otherwise + * @param graph the given undirected graph + * @returns true if the graph is bipartite, false otherwise * @static */ static isBipartite(graph:yfiles.algorithms.Graph):boolean; @@ -76078,8 +78017,8 @@ declare namespace system{ *

    * A graph is called connected if there exists an undirected path of edges between every pair of nodes. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is connected, false otherwise + * @param graph the given graph + * @returns true if the graph is connected, false otherwise * @static */ static isConnected(graph:yfiles.algorithms.Graph):boolean; @@ -76088,8 +78027,8 @@ declare namespace system{ *

    * A graph is called cyclic if it contains a directed cycle. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is cyclic, false, otherwise + * @param graph the given graph + * @returns true if the graph is cyclic, false, otherwise * @static */ static isCyclic(graph:yfiles.algorithms.Graph):boolean; @@ -76098,8 +78037,8 @@ declare namespace system{ *

    * A graph is a forest if its connected components are trees. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is a forest, false otherwise + * @param graph the given graph + * @returns true if the graph is a forest, false otherwise * @static */ static isForest(graph:yfiles.algorithms.Graph):boolean; @@ -76109,30 +78048,30 @@ declare namespace system{ * More precisely, the method returns true if the graph contains no two distinct edges e1, e2 that connect the same pairs * of nodes in either direction. *

    - * @param {yfiles.algorithms.Graph} graph the given undirected graph - * @returns {boolean} true if the graph contains no multiple edges, false otherwise + * @param graph the given undirected graph + * @returns true if the graph contains no multiple edges, false otherwise * @static */ static isMultipleEdgeFree(graph:yfiles.algorithms.Graph):boolean; /** * Checks whether or not the given graph is a directed rooted tree where each node has a maximum of n children. - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {number} n - * @returns {boolean} true if the graph is a directed rooted tree where each node has at most n children, false otherwise + * @param graph the given graph + * @param n + * @returns true if the graph is a directed rooted tree where each node has at most n children, false otherwise * @static */ static isNaryTree(graph:yfiles.algorithms.Graph,n:number):boolean; /** * Checks whether or not the given directed graph is a directed rooted tree. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is a directed rooted tree, false otherwise + * @param graph the given graph + * @returns true if the graph is a directed rooted tree, false otherwise * @static */ static isRootedTree(graph:yfiles.algorithms.Graph):boolean; /** * Checks whether or not the given graph contains no self-loops. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph contains no self-loops, false otherwise + * @param graph the given graph + * @returns true if the graph contains no self-loops, false otherwise * @static */ static isSelfLoopFree(graph:yfiles.algorithms.Graph):boolean; @@ -76142,8 +78081,8 @@ declare namespace system{ * A graph is called simple if it contains no two distinct edges e1, e2 where * e1.source() == e2.source() && e1.target() == e2.target(). *

    - * @param {yfiles.algorithms.Graph} graph the given directed graph - * @returns {boolean} true if the graph is simple, false otherwise + * @param graph the given directed graph + * @returns true if the graph is simple, false otherwise * @static */ static isSimple(graph:yfiles.algorithms.Graph):boolean; @@ -76152,15 +78091,15 @@ declare namespace system{ *

    * A graph is called strongly connected if there exists a directed path between each pair of nodes. *

    - * @param {yfiles.algorithms.Graph} graph the given directed graph - * @returns {boolean} true if the graph is strongly connected, false, otherwise + * @param graph the given directed graph + * @returns true if the graph is strongly connected, false, otherwise * @static */ static isStronglyConnected(graph:yfiles.algorithms.Graph):boolean; /** * Checks whether or not the given graph is an undirected tree. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is an undirected tree, false otherwise + * @param graph the given graph + * @returns true if the graph is an undirected tree, false otherwise * @static */ static isTree(graph:yfiles.algorithms.Graph):boolean; @@ -76182,7 +78121,7 @@ declare namespace system{ * remaining graph). * * - * @class yfiles.algorithms.GraphConnectivity + * @class * @static */ export interface GraphConnectivity extends Object{} @@ -76194,12 +78133,13 @@ declare namespace system{ * Articulation points are returned in the form of a {@link yfiles.algorithms.INodeMap} that returns for each node a boolean value * indicating whether or not it is an articulation point. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IEdgeMap} compNum the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns the zero-based index of the + * @param graph the input graph + * @param compNum the {@link } that will be filled during the execution and returns the zero-based index of the * biconnected component to which each edge belongs or -1 for self-loops - * @param {yfiles.algorithms.INodeMap} [aPoint=null] the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a boolean value indicating whether + * @param [aPoint=null] the {@link } that will be filled during the execution and returns a boolean value indicating whether * or not a given node is an articulation point - * @returns {number} the number of biconnected components + * @returns the number of biconnected components + * @see yfiles.algorithms.GraphConnectivity#biconnectedComponents * @see yfiles.algorithms.GraphConnectivity#biconnectedComponents * @static */ @@ -76210,8 +78150,8 @@ declare namespace system{ * The result is returned as an array of * {@link yfiles.algorithms.EdgeList}s each containing all edges that belong to the same biconnected component. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {Array.} an array of {@link yfiles.algorithms.EdgeList}s each containing all edges that belong to the same biconnected component + * @param graph the input graph + * @returns an array of {@link }s each containing all edges that belong to the same biconnected component * @see yfiles.algorithms.GraphConnectivity#biconnectedComponents * @static */ @@ -76224,10 +78164,10 @@ declare namespace system{ *

    * The connected components of a graph are the maximal connected subgraphs of which the graph consists. *

    - * @param {yfiles.algorithms.INodeMap} compNum the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns the zero-based index of the + * @param compNum the {@link } that will be filled during the execution and returns the zero-based index of the * connected component to which each node belongs - * @param {yfiles.algorithms.Graph} graph - * @returns {number} the number of connected components of the given graph + * @param graph + * @returns the number of connected components of the given graph * @static */ static connectedComponents(graph:yfiles.algorithms.Graph,compNum:yfiles.algorithms.INodeMap):number; @@ -76239,8 +78179,8 @@ declare namespace system{ *

    * The connected components of a graph are the maximal connected subgraphs of which the graph consists. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes that belong to the same connected component + * @param graph the input graph + * @returns an array of {@link }s each of which contains the nodes that belong to the same connected component * @static */ static connectedComponents(graph:yfiles.algorithms.Graph):yfiles.algorithms.NodeList[]; @@ -76263,10 +78203,10 @@ declare namespace system{ * Setting the maximum distance to 1 will only yield the direct neighbors of all start nodes. On the other hand, setting * the maximum distance to graph.N() or larger will yield all neighbors of all start nodes. *

    - * @param {yfiles.algorithms.Graph} graph - * @param {yfiles.algorithms.NodeList} startNodes - * @param {number} maxDistance - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} that contains all direct and indirect neighbors of a node + * @param graph + * @param startNodes + * @param maxDistance + * @returns a {@link } that contains all direct and indirect neighbors of a node * @static */ static getNeighbors(graph:yfiles.algorithms.Graph,startNodes:yfiles.algorithms.NodeList,maxDistance:number):yfiles.algorithms.NodeList; @@ -76289,10 +78229,10 @@ declare namespace system{ * Setting the maximum distance to 1 will only yield the direct predecessors of all start nodes. On the other hand, setting * the maximum distance to graph.N() or larger will yield all predecessors of all start nodes. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.NodeList} startNodes a {@link yfiles.algorithms.NodeList} containing the nodes from which the search starts - * @param {number} maxDistance an integer value that limits the distance between a start node and a returned node - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} that contains all direct and indirect predecessors of a node + * @param graph the given graph + * @param startNodes a {@link } containing the nodes from which the search starts + * @param maxDistance an integer value that limits the distance between a start node and a returned node + * @returns a {@link } that contains all direct and indirect predecessors of a node * @static */ static getPredecessors(graph:yfiles.algorithms.Graph,startNodes:yfiles.algorithms.NodeList,maxDistance:number):yfiles.algorithms.NodeList; @@ -76315,10 +78255,10 @@ declare namespace system{ * Setting the maximum distance to 1 will only yield the direct successors of all start nodes. On the other hand, setting * the maximum distance to graph.N() or larger will yield all successors of all start nodes. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.NodeList} startNodes a {@link yfiles.algorithms.NodeList} containing the nodes from which the search starts - * @param {number} maxDistance an integer value that limits the distance between a start node and a returned node - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} that contains all direct and indirect successors of a node + * @param graph the given graph + * @param startNodes a {@link } containing the nodes from which the search starts + * @param maxDistance an integer value that limits the distance between a start node and a returned node + * @returns a {@link } that contains all direct and indirect successors of a node * @static */ static getSuccessors(graph:yfiles.algorithms.Graph,startNodes:yfiles.algorithms.NodeList,maxDistance:number):yfiles.algorithms.NodeList; @@ -76327,8 +78267,8 @@ declare namespace system{ *

    * A graph is called biconnected if it has no cut vertex or articulation point, i.e., no node whose removal disconnects the graph. *

    - * @param {yfiles.algorithms.Graph} graph the given undirected graph - * @returns {boolean} true if the graph is biconnected, false otherwise + * @param graph the given undirected graph + * @returns true if the graph is biconnected, false otherwise * @static */ static isBiconnected(graph:yfiles.algorithms.Graph):boolean; @@ -76337,8 +78277,8 @@ declare namespace system{ *

    * A graph is called connected if there exists an undirected path of edges between every pair of nodes. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the graph is connected, false otherwise + * @param graph the given graph + * @returns true if the graph is connected, false otherwise * @static */ static isConnected(graph:yfiles.algorithms.Graph):boolean; @@ -76347,8 +78287,8 @@ declare namespace system{ *

    * A graph is called strongly connected if there exists a directed path between each pair of nodes. *

    - * @param {yfiles.algorithms.Graph} graph the given directed graph - * @returns {boolean} true if the graph is strongly connected, false, otherwise + * @param graph the given directed graph + * @returns true if the graph is strongly connected, false, otherwise * @static */ static isStronglyConnected(graph:yfiles.algorithms.Graph):boolean; @@ -76357,8 +78297,8 @@ declare namespace system{ *

    * The given graph is considered to be undirected. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} containing the edges added to the graph + * @param graph the input graph + * @returns an {@link } containing the edges added to the graph * @static */ static makeBiconnected(graph:yfiles.algorithms.Graph):yfiles.algorithms.EdgeList; @@ -76367,8 +78307,8 @@ declare namespace system{ *

    * The number of edges that will be added equals the number of separate components of the original graph minus 1. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} containing the edges added to the graph + * @param graph the input graph + * @returns an {@link } containing the edges added to the graph * @static */ static makeConnected(graph:yfiles.algorithms.Graph):yfiles.algorithms.EdgeList; @@ -76378,12 +78318,12 @@ declare namespace system{ *

    * The result is based on a depth first search. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.Node} start the node from which the search starts - * @param {boolean} directed true if the edges should be traversed from source to target, false if edges can be traversed in both directions - * @param {Array.} [forbidden=null] an array that holds for each {@link yfiles.algorithms.Edge} a {@link boolean} value indicating whether or not an edge can be traversed; an edge + * @param graph the given graph + * @param start the node from which the search starts + * @param directed true if the edges should be traversed from source to target, false if edges can be traversed in both directions + * @param [forbidden=null] an array that holds for each {@link } a {@link } value indicating whether or not an edge can be traversed; an edge * e is marked as forbidden if forbidden[e.index()] == true - * @param {Array.} reached an array that will be filled during the execution and returns for each {@link yfiles.algorithms.Node} a {@link boolean} value based on whether + * @param reached an array that will be filled during the execution and returns for each {@link } a {@link } value based on whether * the node can be reached during the DFS; if a node v is reachable, then reached[v.index()] = true * @static */ @@ -76396,10 +78336,10 @@ declare namespace system{ *

    * The strongly connected components of a graph are the strongly connected subgraphs of which it consists. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} compNum the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns the zero-based index of the + * @param graph the input graph + * @param compNum the {@link } that will be filled during the execution and returns the zero-based index of the * connected component to which each node belongs - * @returns {number} the number of strongly connected components of the given graph + * @returns the number of strongly connected components of the given graph * @see yfiles.algorithms.GraphConnectivity#stronglyConnectedComponents * @static */ @@ -76412,32 +78352,32 @@ declare namespace system{ *

    * The strongly connected components of a graph are the strongly connected subgraphs of which it consists. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {Array.} an array of - * {@link yfiles.algorithms.NodeList}s each of which contains the nodes that belong to the same strongly connected component + * @param graph the input graph + * @returns an array of + * {@link }s each of which contains the nodes that belong to the same strongly connected component * @see yfiles.algorithms.GraphConnectivity#stronglyConnectedComponents * @static */ static stronglyConnectedComponents(graph:yfiles.algorithms.Graph):yfiles.algorithms.NodeList[]; /** - * Transforms the return values of BiconnectedComponents to an array of {@link yfiles.algorithms.EdgeList}s, like it is returned by - * {@link yfiles.algorithms.GraphConnectivity#biconnectedComponents}. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IEdgeMap} compNum the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns the zero-based index of the + * Transforms the return values of {@link yfiles.algorithms.GraphConnectivity#biconnectedComponents} to an array of + * {@link yfiles.algorithms.EdgeList}s, like it is returned by {@link yfiles.algorithms.GraphConnectivity#biconnectedComponents}. + * @param graph the input graph + * @param compNum the {@link } that will be filled during the execution and returns the zero-based index of the * connected component to which each edge belongs - * @param {number} maxCompNum the maximum number of biconnected components - * @returns {Array.} an array of {@link yfiles.algorithms.EdgeList}s each containing all edges that belong to the same biconnected component + * @param maxCompNum the maximum number of biconnected components + * @returns an array of {@link }s each containing all edges that belong to the same biconnected component * @static */ static toEdgeListArray(graph:yfiles.algorithms.Graph,compNum:yfiles.algorithms.IEdgeMap,maxCompNum:number):yfiles.algorithms.EdgeList[]; /** * Transforms the return values of method {@link yfiles.algorithms.GraphConnectivity#connectedComponents} to an array of * {@link yfiles.algorithms.NodeList}s, like it is returned by {@link yfiles.algorithms.GraphConnectivity#connectedComponents}. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} compNum the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns the zero-based index of the + * @param graph the input graph + * @param compNum the {@link } that will be filled during the execution and returns the zero-based index of the * connected component to which each node belongs - * @param {number} maxCompNum the maximum number of connected components - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains the nodes that belong to the same connected component + * @param maxCompNum the maximum number of connected components + * @returns an array of {@link }s each of which contains the nodes that belong to the same connected component * @static */ static toNodeListArray(graph:yfiles.algorithms.Graph,compNum:yfiles.algorithms.INodeMap,maxCompNum:number):yfiles.algorithms.NodeList[]; @@ -76448,7 +78388,7 @@ declare namespace system{ *

    * This type does not add public functionality to its base type. *

    - * @class yfiles.algorithms.GraphObject + * @class */ export interface GraphObject extends Object{} export class GraphObject { @@ -76491,7 +78431,7 @@ declare namespace system{ * @see yfiles.algorithms.Groups#hierarchicalClustering * @see yfiles.algorithms.Groups#hierarchicalClustering * @see yfiles.algorithms.Groups#hierarchicalClustering - * @class yfiles.algorithms.Dendrogram + * @class */ export interface Dendrogram extends Object{} export class Dendrogram { @@ -76500,8 +78440,8 @@ declare namespace system{ *

    * If the given node is a {@link yfiles.algorithms.Dendrogram#isLeaf leaf} node, the returned list will be empty. *

    - * @param {yfiles.algorithms.Node} parent the parent node for which to retrieve the child nodes - * @returns {yfiles.algorithms.NodeList} the list of child nodes of the given parent node + * @param parent the parent node for which to retrieve the child nodes + * @returns the list of child nodes of the given parent node */ getChildren(parent:yfiles.algorithms.Node):yfiles.algorithms.NodeList; /** @@ -76514,22 +78454,22 @@ declare namespace system{ * created by this merging. Then, the cluster nodes of u will be returned as two {@link yfiles.algorithms.NodeList}s where the * first contains nodes v1, v2 and the second v3, v4. *

    - * @param {yfiles.algorithms.Node} node the given dendrogram node - * @returns {Array.} an array of - * {@link yfiles.algorithms.NodeList}s that contain the nodes of the original graph that are associated with the given dendrogram + * @param node the given dendrogram node + * @returns an array of + * {@link }s that contain the nodes of the original graph that are associated with the given dendrogram * node */ getClusterNodes(node:yfiles.algorithms.Node):yfiles.algorithms.NodeList[]; /** * Returns the dissimilarity value associated with the given node of the dendrogram. - * @param {yfiles.algorithms.Node} node the given dendrogram node - * @returns {number} the dissimilarity value associated with the given dendrogram node + * @param node the given dendrogram node + * @returns the dissimilarity value associated with the given dendrogram node */ getDissimilarityValue(node:yfiles.algorithms.Node):number; /** * Returns the level of the given node of the dendrogram. - * @param {yfiles.algorithms.Node} node the given dendrogram node - * @returns {number} the level of the given dendrogram node + * @param node the given dendrogram node + * @returns the level of the given dendrogram node */ getLevel(node:yfiles.algorithms.Node):number; /** @@ -76537,15 +78477,15 @@ declare namespace system{ *

    * If the given level index is greater than the {@link yfiles.algorithms.Dendrogram#levelCount number of levels}, then this method will return null. *

    - * @param {number} level the given level index - * @returns {yfiles.algorithms.Node} the node of the dendrogram that belongs to the given level index or null if there exists no level with the given index. + * @param level the given level index + * @returns the node of the dendrogram that belongs to the given level index or null if there exists no level with the given index. * @throws {Stubs.Exceptions.ArgumentError} if the given level is negative or greater than the {@link yfiles.algorithms.Dendrogram#nodeCount node count} minus one. */ getNodeAtLevel(level:number):yfiles.algorithms.Node; /** * Returns the node of original graph that is mapped with the given leaf node of the dendrogram. - * @param {yfiles.algorithms.Node} node the given leaf node - * @returns {yfiles.algorithms.Node} the node of original graph that is mapped with the given leaf node or null if the given node is an inner dendrogram + * @param node the given leaf node + * @returns the node of original graph that is mapped with the given leaf node or null if the given node is an inner dendrogram * node */ getOriginalNode(node:yfiles.algorithms.Node):yfiles.algorithms.Node; @@ -76555,8 +78495,8 @@ declare namespace system{ * A leaf node has no further children and represents a node of the original graph. The original node can be retrieved via * {@link yfiles.algorithms.Dendrogram#getOriginalNode}. *

    - * @param {yfiles.algorithms.Node} node a dendrogram node - * @returns {boolean} true if the given node is a leaf node, false otherwise + * @param node a dendrogram node + * @returns true if the given node is a leaf node, false otherwise */ isLeaf(node:yfiles.algorithms.Node):boolean; /** @@ -76599,9 +78539,9 @@ declare namespace system{ * distances between two nodes have to be symmetric, i.e., the distance between node n1 and n2 is equal to the distance * between node n2 and n1. *

    - * @param {yfiles.algorithms.Node} n1 the first node - * @param {yfiles.algorithms.Node} n2 the second node - * @returns {number} the distance between the two given nodes + * @param n1 the first node + * @param n2 the second node + * @returns the distance between the two given nodes * @abstract */ getDistance(n1:yfiles.algorithms.Node,n2:yfiles.algorithms.Node):number; @@ -76625,7 +78565,7 @@ declare namespace system{ *
  • K-means clustering algorithm partitions the nodes of a graph into k-clusters based on their positions on the plane and a given distance metric.
  • *
  • Hierarchical clustering creates a hierarchy of clusters in a bottom-to-top approach based on some distance metric and linkage.
  • * - * @class yfiles.algorithms.Groups + * @class * @static */ export interface Groups extends Object{} @@ -76636,10 +78576,10 @@ declare namespace system{ * Nodes will be grouped such that the nodes within each group are biconnected. Nodes that belong to multiple biconnected * components will be assigned to exactly one of these components. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} groupIDs the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns an integer value (cluster ID) for + * @param graph the input graph + * @param groupIDs the {@link } that will be filled during the execution and returns an integer value (cluster ID) for * each node - * @returns {number} the resulting number of different groups + * @returns the resulting number of different groups * @static */ static biconnectedComponentGrouping(graph:yfiles.algorithms.Graph,groupIDs:yfiles.algorithms.INodeMap):number; @@ -76661,14 +78601,14 @@ declare namespace system{ * overall computation time. The upper bound on the number of groups is * graph.N(). Also, the number of returned groups is never smaller than the number of connected components of the graph. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} clusterIDs the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns an integer value (cluster ID) for + * @param graph the input graph + * @param clusterIDs the {@link } that will be filled during the execution and returns an integer value (cluster ID) for * each node - * @param {number} qualityTimeRatio a value between 0.0 (low quality, fast) and 1.0 (high quality, slow); the recommended value is 0.5 - * @param {number} minGroupCount the minimum number of groups that will be returned - * @param {number} maxGroupCount the maximum number of groups that will be returned - * @param {boolean} refine true if the algorithm refines the current grouping, false if the algorithm discards the current grouping - * @returns {number} the resulting number of different groups + * @param qualityTimeRatio a value between 0.0 (low quality, fast) and 1.0 (high quality, slow); the recommended value is 0.5 + * @param minGroupCount the minimum number of groups that will be returned + * @param maxGroupCount the maximum number of groups that will be returned + * @param refine true if the algorithm refines the current grouping, false if the algorithm discards the current grouping + * @returns the resulting number of different groups * @throws {Stubs.Exceptions.ArgumentError} if minGroupCount > maxGroupCount or minGroupCount > graph.N() or maxGroupCount <= 0 * @static */ @@ -76684,15 +78624,15 @@ declare namespace system{ * overall computation time. The upper bound on the number of groups is * graph.N(). Also, the number of returned groups is never smaller than the number of connected components of the graph. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} clusterIDs the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns an integer value (cluster ID) for + * @param graph the input graph + * @param clusterIDs the {@link } that will be filled during the execution and returns an integer value (cluster ID) for * each node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {number} minGroupCount the minimum number of groups that will be returned - * @param {number} maxGroupCount the maximum number of groups that will be returned - * @param {yfiles.algorithms.IDataProvider} edgeCosts the {@link yfiles.algorithms.IDataProvider} that holds a positive {@link number} cost or null if the edges of the graph are considered to be + * @param directed true if the graph should be considered as directed, false otherwise + * @param minGroupCount the minimum number of groups that will be returned + * @param maxGroupCount the maximum number of groups that will be returned + * @param edgeCosts the {@link } that holds a positive {@link } cost or null if the edges of the graph are considered to be * of equal cost - * @returns {number} the resulting number of different groups + * @returns the resulting number of different groups * @throws {Stubs.Exceptions.ArgumentError} if minGroupCount > maxGroupCount or minGroupCount > graph.N() or maxGroupCount <= 0 * @static */ @@ -76713,13 +78653,13 @@ declare namespace system{ *

    * The maximum number of clusters needs to be greater than zero and less than the number of the nodes of the graph. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {number} maxCluster the maximum number of clusters that determines where to cut the hierarchic tree into clusters - * @param {yfiles.algorithms.INodeMap} clusterIDs the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns an integer value (cluster ID) for + * @param graph the input graph + * @param maxCluster the maximum number of clusters that determines where to cut the hierarchic tree into clusters + * @param clusterIDs the {@link } that will be filled during the execution and returns an integer value (cluster ID) for * each node - * @param {yfiles.algorithms.INodeDistanceProvider} distances a given {@link yfiles.algorithms.INodeDistanceProvider} object that determines the distance between any two graph nodes - * @param {yfiles.algorithms.Linkage} linkage one of the predefined linkage values - * @returns {number} the resulting number of clusters + * @param distances a given {@link } object that determines the distance between any two graph nodes + * @param linkage one of the predefined linkage values + * @returns the resulting number of clusters * @throws {Stubs.Exceptions.ArgumentError} if an unknown linkage is given or if the maximum number of clusters is less than or equal to zero or greater than the * number of nodes of the graph * @static @@ -76738,13 +78678,13 @@ declare namespace system{ * The result will be given based on the given cut-off value that is used for cutting the hierarchical tree at a point such * that the dissimilarity values of the nodes that remain at the dendrogram are less than this value. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} clusterIDs the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns an integer value (cluster ID) for + * @param graph the input graph + * @param clusterIDs the {@link } that will be filled during the execution and returns an integer value (cluster ID) for * each node - * @param {yfiles.algorithms.INodeDistanceProvider} distances a given {@link yfiles.algorithms.INodeDistanceProvider} object that determines the distance between any two nodes - * @param {yfiles.algorithms.Linkage} linkage one of the predefined linkage values - * @param {number} cutOff the cut-off value that determines where to cut the hierarchic tree into clusters - * @returns {number} the resulting number of clusters + * @param distances a given {@link } object that determines the distance between any two nodes + * @param linkage one of the predefined linkage values + * @param cutOff the cut-off value that determines where to cut the hierarchic tree into clusters + * @returns the resulting number of clusters * @throws {Stubs.Exceptions.ArgumentError} if an unknown linkage is used * @static */ @@ -76762,10 +78702,10 @@ declare namespace system{ * as a binary tree structure. It can easily be traversed by starting from the {@link yfiles.algorithms.Dendrogram#root root node} and moving on to nodes of the next * level via method {@link yfiles.algorithms.Dendrogram#getChildren}. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeDistanceProvider} distances a given {@link yfiles.algorithms.INodeDistanceProvider} object that determines the distance between any two nodes - * @param {yfiles.algorithms.Linkage} linkage one of the predefined linkage values - * @returns {yfiles.algorithms.Dendrogram} a {@link yfiles.algorithms.Dendrogram} which represents the result of the clustering as a binary tree + * @param graph the input graph + * @param distances a given {@link } object that determines the distance between any two nodes + * @param linkage one of the predefined linkage values + * @returns a {@link } which represents the result of the clustering as a binary tree * @throws {Stubs.Exceptions.ArgumentError} if an unknown linkage is given * @static */ @@ -76780,15 +78720,15 @@ declare namespace system{ * The distance can be defined using diverse metrics as euclidean distance, euclidean-squared distance, manhattan distance * or chebychev distance. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.INodeMap} clusterIDs the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns an integer value (cluster ID) for + * @param graph the input graph + * @param clusterIDs the {@link } that will be filled during the execution and returns an integer value (cluster ID) for * each node - * @param {yfiles.algorithms.IDataProvider} nodePositions the {@link yfiles.algorithms.IDataProvider} that holds a {@link yfiles.algorithms.YPoint point} representing the current position of each node in the graph - * @param {yfiles.algorithms.DistanceMetric} distanceMetric one of the predefined distance metrics - * @param {number} k the number of clusters - * @param {number} [iterations=100] the maximum number of iterations performed by the algorithm for convergence - * @param {Array.} [centroids=null] the initial centroids - * @returns {number} the number of resulting (non-empty) clusters + * @param nodePositions the {@link } that holds a {@link point} representing the current position of each node in the graph + * @param distanceMetric one of the predefined distance metrics + * @param k the number of clusters + * @param [iterations=100] the maximum number of iterations performed by the algorithm for convergence + * @param [centroids=null] the initial centroids + * @returns the number of resulting (non-empty) clusters * @throws {Stubs.Exceptions.ArgumentError} if the given distance metric is not supported * @static */ @@ -76804,15 +78744,15 @@ declare namespace system{ * or chebychev distance. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.algorithms.Graph} options.graph the input graph - * @param {yfiles.algorithms.INodeMap} options.clusterIDs the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns an integer value (cluster ID) for + * @param options.graph the input graph + * @param options.clusterIDs the {@link } that will be filled during the execution and returns an integer value (cluster ID) for * each node - * @param {yfiles.algorithms.IDataProvider} options.nodePositions the {@link yfiles.algorithms.IDataProvider} that holds a {@link yfiles.algorithms.YPoint point} representing the current position of each node in the graph - * @param {yfiles.algorithms.DistanceMetric} options.distanceMetric one of the predefined distance metrics - * @param {number} options.k the number of clusters - * @param {number} [options.iterations=100] the maximum number of iterations performed by the algorithm for convergence - * @param {Array.} [options.centroids=null] the initial centroids - * @returns {number} the number of resulting (non-empty) clusters + * @param options.nodePositions the {@link } that holds a {@link point} representing the current position of each node in the graph + * @param options.distanceMetric one of the predefined distance metrics + * @param options.k the number of clusters + * @param [options.iterations=100] the maximum number of iterations performed by the algorithm for convergence + * @param [options.centroids=null] the initial centroids + * @returns the number of resulting (non-empty) clusters * @throws {Stubs.Exceptions.ArgumentError} if the given distance metric is not supported * @static */ @@ -76891,8 +78831,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @param {Object} value + * @param dataHolder + * @param value * @abstract */ set(dataHolder:Object,value:Object):void; @@ -76901,8 +78841,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @param {boolean} value + * @param dataHolder + * @param value * @abstract */ setBoolean(dataHolder:Object,value:boolean):void; @@ -76911,8 +78851,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @param {number} value + * @param dataHolder + * @param value * @abstract */ setInt(dataHolder:Object,value:number):void; @@ -76921,8 +78861,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @param {number} value + * @param dataHolder + * @param value * @abstract */ setNumber(dataHolder:Object,value:number):void; @@ -76960,8 +78900,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @returns {Object} + * @param dataHolder + * @returns * @abstract */ get(dataHolder:Object):Object; @@ -76970,8 +78910,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @returns {boolean} + * @param dataHolder + * @returns * @abstract */ getBoolean(dataHolder:Object):boolean; @@ -76980,8 +78920,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @returns {number} + * @param dataHolder + * @returns * @abstract */ getInt(dataHolder:Object):number; @@ -76990,8 +78930,8 @@ declare namespace system{ *

    * This method may throw an UnsupportedOperationException. *

    - * @param {Object} dataHolder - * @returns {number} + * @param dataHolder + * @returns * @abstract */ getNumber(dataHolder:Object):number; @@ -77125,8 +79065,8 @@ declare namespace system{ export interface INodeSequencer extends Object{ /** * Returns a cursor that grants access to all nodes of the given graph in some order. - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.algorithms.INodeCursor} a {@link yfiles.algorithms.INodeCursor} that grants access to all nodes of a graph + * @param graph the input graph + * @returns a {@link } that grants access to all nodes of a graph * @abstract */ nodes(graph:yfiles.algorithms.Graph):yfiles.algorithms.INodeCursor; @@ -77143,7 +79083,7 @@ declare namespace system{ *

    * {@graph {"ann":{"s":[30,30],"d":0, "c":0},"styles":{"6":{"s":[35,35],"c":1, "f":"#FF0000", "b":0}},"n":[[425,305,6],[645,305],[425,525],[645,525,6],[485,365],[585,365,6],[485,465,6],[585,465]],"e":[[0,4],[0,1],[1,3],[3,2],[2,0],[4,6],[6,2],[6,7],[7,5],[5,4],[5,1],[7,3]],"vp":[425.0,305.0,250.0,250.0]}} Circular nodes represent one of the independent sets of the given graph *

    - * @class yfiles.algorithms.IndependentSets + * @class * @static */ export interface IndependentSets extends Object{} @@ -77153,8 +79093,8 @@ declare namespace system{ *

    * A greedy heuristic is applied which tries to find a large independent set. *

    - * @param {yfiles.algorithms.Graph} conflictGraph the input graph - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} containing an independent set of nodes + * @param conflictGraph the input graph + * @returns a {@link } containing an independent set of nodes * @see yfiles.algorithms.IndependentSets#getIndependentSet * @static */ @@ -77164,8 +79104,8 @@ declare namespace system{ *

    * The method iteratively calls method {@link yfiles.algorithms.IndependentSets#getIndependentSet}. *

    - * @param {yfiles.algorithms.Graph} conflictGraph the input graph - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList}s each of which contains an independent set of nodes + * @param conflictGraph the input graph + * @returns an array of {@link }s each of which contains an independent set of nodes * @see yfiles.algorithms.IndependentSets#getIndependentSet * @static */ @@ -77177,7 +79117,7 @@ declare namespace system{ *

    * It may be used to perform fast access and remove operations on that type of list. *

    - * @class yfiles.algorithms.ListCell + * @class * @final */ export interface ListCell extends Object{} @@ -77187,7 +79127,7 @@ declare namespace system{ *

    * If there is no predecessor, then null is returned. *

    - * @returns {yfiles.algorithms.ListCell} + * @returns */ pred():yfiles.algorithms.ListCell; /** @@ -77195,7 +79135,7 @@ declare namespace system{ *

    * If there is no successor, then null is returned. *

    - * @returns {yfiles.algorithms.ListCell} + * @returns */ succ():yfiles.algorithms.ListCell; /** @@ -77228,7 +79168,7 @@ declare namespace system{ * flow of maximum value from s to t that has the minimum total cost. * * - * @class yfiles.algorithms.NetworkFlows + * @class * @static */ export interface NetworkFlows extends Object{} @@ -77248,12 +79188,12 @@ declare namespace system{ *

    * Edges may have infinite capacity, which is denoted by the value 0x7FFFFFFF. *

    - * @param {yfiles.algorithms.Graph} graph the given network - * @param {yfiles.algorithms.Node} source the source node of the network - * @param {yfiles.algorithms.Node} sink the sink node of the network - * @param {yfiles.algorithms.IDataProvider} eCapDP the {@link yfiles.algorithms.IEdgeMap} that returns the integer capacity of each edge or null if no bound is specified - * @param {yfiles.algorithms.IEdgeMap} flowEM the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution with an integer flow for each edge - * @returns {number} the maximum flow value + * @param graph the given network + * @param source the source node of the network + * @param sink the sink node of the network + * @param eCapDP the {@link } that returns the integer capacity of each edge or null if no bound is specified + * @param flowEM the {@link } that will be filled during the execution with an integer flow for each edge + * @returns the maximum flow value * @see yfiles.algorithms.NetworkFlows#calcMaxFlowMinCut * @static */ @@ -77261,29 +79201,29 @@ declare namespace system{ /** * Solves a maximum flow problem using the preflow-push method but additionally marks all nodes that belong to the minimum * cut set that is associated with the source of the network. - * @param {yfiles.algorithms.Graph} graph the given network - * @param {yfiles.algorithms.Node} source the source node of the network - * @param {yfiles.algorithms.Node} sink the sink node of the network - * @param {yfiles.algorithms.IDataProvider} eCapDP the {@link yfiles.algorithms.IEdgeMap} that returns the integer capacity of each edge or null if no bound is specified - * @param {yfiles.algorithms.IEdgeMap} flowEM the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution with an integer flow for each edge - * @param {yfiles.algorithms.INodeMap} sourceCutNM the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a boolean value indicating whether + * @param graph the given network + * @param source the source node of the network + * @param sink the sink node of the network + * @param eCapDP the {@link } that returns the integer capacity of each edge or null if no bound is specified + * @param flowEM the {@link } that will be filled during the execution with an integer flow for each edge + * @param sourceCutNM the {@link } that will be filled during the execution and returns a boolean value indicating whether * or not a node belongs to the cut set associated with the source of the network - * @returns {number} the maximum flow value + * @returns the maximum flow value * @see yfiles.algorithms.NetworkFlows#calcMaxFlow * @static */ static calcMaxFlowMinCut(graph:yfiles.algorithms.Graph,source:yfiles.algorithms.Node,sink:yfiles.algorithms.Node,eCapDP:yfiles.algorithms.IDataProvider,flowEM:yfiles.algorithms.IEdgeMap,sourceCutNM:yfiles.algorithms.INodeMap):number; /** * Solves a minimum cost maximum flow problem. - * @param {yfiles.algorithms.Graph} graph the given network - * @param {yfiles.algorithms.Node} s the source node of the network - * @param {yfiles.algorithms.Node} t the sink node of the network - * @param {yfiles.algorithms.IDataProvider} uCapDP the {@link yfiles.algorithms.IDataProvider} that returns the integer capacity of each edge or null if no bound is specified - * @param {yfiles.algorithms.IDataProvider} cost0DP the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for each edge - * @param {yfiles.algorithms.IEdgeMap} flowEM the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution with an integer flow for each edge - * @param {yfiles.algorithms.INodeMap} dualsNM the {@link yfiles.algorithms.INodeMap} that will be filled during the execution with an integer value (dual value) for each node + * @param graph the given network + * @param s the source node of the network + * @param t the sink node of the network + * @param uCapDP the {@link } that returns the integer capacity of each edge or null if no bound is specified + * @param cost0DP the {@link } that returns a double value (cost) for each edge + * @param flowEM the {@link } that will be filled during the execution with an integer flow for each edge + * @param dualsNM the {@link } that will be filled during the execution with an integer value (dual value) for each node * or null if no such values occur; dual values are also referred as potentials - * @returns {number} the total cost of the flow + * @returns the total cost of the flow * @see yfiles.algorithms.NetworkFlows#minCostFlow * @see yfiles.algorithms.NetworkFlows#minCostFlow * @static @@ -77302,18 +79242,18 @@ declare namespace system{ *

    * There are no restriction for the costs. In particular, they can also be negative. *

    - * @param {yfiles.algorithms.Graph} graph the given network - * @param {yfiles.algorithms.IDataProvider} lCapDP the {@link yfiles.algorithms.IDataProvider} that returns the integer lower bound for the capacity of each edge or null if no + * @param graph the given network + * @param lCapDP the {@link } that returns the integer lower bound for the capacity of each edge or null if no * bound is specified - * @param {yfiles.algorithms.IDataProvider} uCapDP the {@link yfiles.algorithms.IDataProvider} that returns the integer upper bound for the capacity of each edge or null if no + * @param uCapDP the {@link } that returns the integer upper bound for the capacity of each edge or null if no * bound is specified - * @param {yfiles.algorithms.IDataProvider} cost0DP the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) of each edge - * @param {yfiles.algorithms.IDataProvider} supplyDP the {@link yfiles.algorithms.IDataProvider} that returns the supply/demand of each node; supply is denoted by a positive value, + * @param cost0DP the {@link } that returns a double value (cost) of each edge + * @param supplyDP the {@link } that returns the supply/demand of each node; supply is denoted by a positive value, * demand by a negative value - * @param {yfiles.algorithms.IEdgeMap} flowEM the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution with an integer flow for each edge - * @param {yfiles.algorithms.INodeMap} dualsNM the {@link yfiles.algorithms.INodeMap} that will be filled during the execution with an integer value (dual value) for each node + * @param flowEM the {@link } that will be filled during the execution with an integer flow for each edge + * @param dualsNM the {@link } that will be filled during the execution with an integer value (dual value) for each node * or null if no such values occur; dual values are also referred as potentials - * @returns {number} the total cost of the flow + * @returns the total cost of the flow * @see yfiles.algorithms.NetworkFlows#minCostFlow * @see yfiles.algorithms.NetworkFlows#minCostFlow * @static @@ -77321,15 +79261,15 @@ declare namespace system{ static minCostFlow(graph:yfiles.algorithms.Graph,lCapDP:yfiles.algorithms.IDataProvider,uCapDP:yfiles.algorithms.IDataProvider,cost0DP:yfiles.algorithms.IDataProvider,supplyDP:yfiles.algorithms.IDataProvider,flowEM:yfiles.algorithms.IEdgeMap,dualsNM:yfiles.algorithms.INodeMap):number; /** * Uses method {@link yfiles.algorithms.NetworkFlows#minCostFlow} to solve a minimum cost flow problem. - * @param {yfiles.algorithms.Graph} graph the given network - * @param {yfiles.algorithms.IDataProvider} uCapDP the {@link yfiles.algorithms.IDataProvider} that returns the integer capacity of each edge or null if no bound is specified - * @param {yfiles.algorithms.IDataProvider} cost0DP the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for each edge - * @param {yfiles.algorithms.IDataProvider} supplyDP the {@link yfiles.algorithms.IDataProvider} that returns the supply/demand of each node; supply is denoted by a positive value, + * @param graph the given network + * @param uCapDP the {@link } that returns the integer capacity of each edge or null if no bound is specified + * @param cost0DP the {@link } that returns a double value (cost) for each edge + * @param supplyDP the {@link } that returns the supply/demand of each node; supply is denoted by a positive value, * demand by a negative value - * @param {yfiles.algorithms.IEdgeMap} flowEM the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution with an integer flow for each edge - * @param {yfiles.algorithms.INodeMap} dualsNM the {@link yfiles.algorithms.INodeMap} that will be filled during the execution with an integer value (dual value) for each node + * @param flowEM the {@link } that will be filled during the execution with an integer flow for each edge + * @param dualsNM the {@link } that will be filled during the execution with an integer value (dual value) for each node * or null if no such values occur; dual values are also referred as potentials - * @returns {number} the total cost of the flow + * @returns the total cost of the flow * @see yfiles.algorithms.NetworkFlows#minCostFlow * @see yfiles.algorithms.NetworkFlows#minCostFlow * @static @@ -77345,10 +79285,9 @@ declare namespace system{ *

    *

    * Iteration over all three sets of edges is provided by means of bidirectional cursors that present a read-only view of - * the respective set - * ({@link yfiles.algorithms.Node#getEdgeCursor}, GetInEdgeCursor, GetOutEdgeCursor). Also supported is iteration over all nodes at - * opposite ends of either incoming edges or outgoing edges ({@link yfiles.algorithms.Node#getPredecessorCursor}, - * {@link yfiles.algorithms.Node#getSuccessorCursor}). + * the respective set ({@link yfiles.algorithms.Node#getEdgeCursor}, {@link yfiles.algorithms.Node#getInEdgeCursor}, + * {@link yfiles.algorithms.Node#getOutEdgeCursor}). Also supported is iteration over all nodes at opposite ends of either incoming + * edges or outgoing edges ({@link yfiles.algorithms.Node#getPredecessorCursor}, {@link yfiles.algorithms.Node#getSuccessorCursor}). *

    *

    * The number of overall edges at a node is called its degree ({@link yfiles.algorithms.Node#degree}), which is the sum of incoming and outgoing edges ({@link yfiles.algorithms.Node#inDegree}, {@link yfiles.algorithms.Node#outDegree}). @@ -77357,21 +79296,20 @@ declare namespace system{ * Important: Class Graph is the single authority for any structural changes to the graph data type. Specifically, this means that * there is no way to create or delete a node or an edge without using an actual Graph instance. *

    - * @class yfiles.algorithms.Node + * @class * @extends {yfiles.algorithms.GraphObject} */ export interface Node extends yfiles.algorithms.GraphObject{} export class Node { /** * Instantiates a new Node object that will be part of the given graph. - * @param {yfiles.algorithms.Graph} g The graph that the created node will belong to. - * @constructor + * @param g The graph that the created node will belong to. */ constructor(g:yfiles.algorithms.Graph); /** * Creates a copy of this node that will be inserted into the given graph. - * @param {yfiles.algorithms.Graph} g The graph that the created node will belong to. - * @returns {yfiles.algorithms.Node} The newly created Node object. + * @param g The graph that the created node will belong to. + * @returns The newly created Node object. */ createCopy(g:yfiles.algorithms.Graph):yfiles.algorithms.Node; /** @@ -77382,15 +79320,17 @@ declare namespace system{ *

    * Note that the first matching edge is returned, and that outgoing edges are tested prior to incoming edges. *

    - * @param {yfiles.algorithms.Node} opposite - * @returns {yfiles.algorithms.Edge} + * @param opposite + * @returns * @see yfiles.algorithms.Node#getEdgeFrom * @see yfiles.algorithms.Node#getEdgeTo */ getEdge(opposite:yfiles.algorithms.Node):yfiles.algorithms.Edge; /** * Returns an edge cursor for all incoming and outgoing edges at this node. - * @returns {yfiles.algorithms.IEdgeCursor} + * @returns + * @see yfiles.algorithms.Node#getInEdgeCursor + * @see yfiles.algorithms.Node#getOutEdgeCursor */ getEdgeCursor():yfiles.algorithms.IEdgeCursor; /** @@ -77398,8 +79338,8 @@ declare namespace system{ *

    * Otherwise null is returned. *

    - * @param {yfiles.algorithms.Node} source - * @returns {yfiles.algorithms.Edge} + * @param source + * @returns * @see yfiles.algorithms.Node#getEdge * @see yfiles.algorithms.Node#getEdgeTo */ @@ -77409,8 +79349,8 @@ declare namespace system{ *

    * Otherwise null is returned. *

    - * @param {yfiles.algorithms.Node} target - * @returns {yfiles.algorithms.Edge} + * @param target + * @returns * @see yfiles.algorithms.Node#getEdge * @see yfiles.algorithms.Node#getEdgeFrom */ @@ -77419,10 +79359,10 @@ declare namespace system{ * Returns an edge cursor for incoming edges at this node. *

    * If an edge is specified, the cursor starts at the given edge, and the cyclic sequence order is the same as returned by - * GetInEdgeCursor. + * {@link yfiles.algorithms.Node#getInEdgeCursor}. *

    - * @param {yfiles.algorithms.Edge} [startEdge=null] The first edge being accessed by the returned cursor. - * @returns {yfiles.algorithms.IEdgeCursor} + * @param [startEdge=null] The first edge being accessed by the returned cursor. + * @returns * @see yfiles.algorithms.Node#getOutEdgeCursor */ getInEdgeCursor(startEdge?:yfiles.algorithms.Edge):yfiles.algorithms.IEdgeCursor; @@ -77431,7 +79371,7 @@ declare namespace system{ *

    * Neighbor nodes are those at the opposite ends of both incoming and outgoing edges. *

    - * @returns {yfiles.algorithms.INodeCursor} + * @returns * @see yfiles.algorithms.Node#getPredecessorCursor * @see yfiles.algorithms.Node#getSuccessorCursor */ @@ -77440,10 +79380,10 @@ declare namespace system{ * Returns an edge cursor for outgoing edges at this node. *

    * If an edge is specified, the cursor starts at the given edge, and the cyclic sequence order is the same as returned by - * GetOutEdgeCursor. + * {@link yfiles.algorithms.Node#getOutEdgeCursor}. *

    - * @param {yfiles.algorithms.Edge} [startEdge=null] The first edge being accessed by the returned cursor. - * @returns {yfiles.algorithms.IEdgeCursor} + * @param [startEdge=null] The first edge being accessed by the returned cursor. + * @returns * @see yfiles.algorithms.Node#getInEdgeCursor */ getOutEdgeCursor(startEdge?:yfiles.algorithms.Edge):yfiles.algorithms.IEdgeCursor; @@ -77452,7 +79392,7 @@ declare namespace system{ *

    * Predecessor nodes are those at the opposite ends of incoming edges. *

    - * @returns {yfiles.algorithms.INodeCursor} + * @returns * @see yfiles.algorithms.Node#getSuccessorCursor */ getPredecessorCursor():yfiles.algorithms.INodeCursor; @@ -77461,19 +79401,19 @@ declare namespace system{ *

    * Successor nodes are those at the opposite ends of outgoing edges. *

    - * @returns {yfiles.algorithms.INodeCursor} + * @returns * @see yfiles.algorithms.Node#getPredecessorCursor */ getSuccessorCursor():yfiles.algorithms.INodeCursor; /** * Sorts incoming edges at this node according to the given comparator. - * @param {yfiles.collections.IComparer.} c + * @param c * @see yfiles.algorithms.Node#sortOutEdges */ sortInEdges(c:yfiles.collections.IComparer):void; /** * Sorts outgoing edges at this node according to the given comparator. - * @param {yfiles.collections.IComparer.} c + * @param c * @see yfiles.algorithms.Node#sortInEdges */ sortOutEdges(c:yfiles.collections.IComparer):void; @@ -77627,7 +79567,7 @@ declare namespace system{ } /** * Specialized list implementation for instances of type {@link yfiles.algorithms.Node}. - * @class yfiles.algorithms.NodeList + * @class * @extends {yfiles.algorithms.YList} * @implements {yfiles.collections.IEnumerable.} */ @@ -77635,69 +79575,63 @@ declare namespace system{ export class NodeList { /** * Creates a list that is initialized with the entries of the given list. - * @param {yfiles.algorithms.NodeList} list the values are added to the new list - * @constructor + * @param list the values are added to the new list */ constructor(list:yfiles.algorithms.NodeList); /** * Creates a list that is initialized with a single node provided. - * @param {yfiles.algorithms.Node} v - * @constructor + * @param v */ constructor(v:yfiles.algorithms.Node); /** * Creates a list that is initialized with the nodes provided by the given array of nodes. - * @param {Array.} a - * @constructor + * @param a */ constructor(a:yfiles.algorithms.Node[]); /** * Creates a list that is initialized with those nodes from the given NodeCursor object for which the given data provider * returns true upon calling its {@link yfiles.algorithms.IDataProvider#getBoolean getBool} method. - * @param {yfiles.algorithms.INodeCursor} nc A node cursor providing nodes that should be added to this list. - * @param {yfiles.algorithms.IDataProvider} predicate A data provider that acts as a inclusion predicate for each node accessible by the given node cursor. - * @constructor + * @param nc A node cursor providing nodes that should be added to this list. + * @param predicate A data provider that acts as a inclusion predicate for each node accessible by the given node cursor. */ constructor(nc:yfiles.algorithms.INodeCursor,predicate:yfiles.algorithms.IDataProvider); /** * Creates a list that is initialized with the nodes provided by the given NodeCursor object. - * @param {yfiles.algorithms.INodeCursor} c - * @constructor + * @param c */ constructor(c:yfiles.algorithms.INodeCursor); /** * Creates an empty node list. - * @constructor */ constructor(); /** * Returns the first node in this list, or null when the list is empty. - * @returns {yfiles.algorithms.Node} The first node in the list. + * @returns The first node in the list. */ firstNode():yfiles.algorithms.Node; /** * Returns an enumerator for this collection. - * @returns {yfiles.collections.IEnumerator.} + * @returns */ getEnumerator():yfiles.collections.IEnumerator; /** * Returns the last node in this list, or null when the list is empty. - * @returns {yfiles.algorithms.Node} The last node in the list. + * @returns The last node in the list. */ lastNode():yfiles.algorithms.Node; /** * Returns a node cursor for this node list. - * @returns {yfiles.algorithms.INodeCursor} A node cursor granting access to the nodes within this list. + * @returns A node cursor granting access to the nodes within this list. */ nodes():yfiles.algorithms.INodeCursor; /** * Removes the first node from this list and returns it. - * @returns {yfiles.algorithms.Node} The first node from the list. + * @returns The first node from the list. */ popNode():yfiles.algorithms.Node; /** * Returns a node array containing all elements of this list in the canonical order. - * @returns {Array.} + * @returns */ toNodeArray():yfiles.algorithms.Node[]; static $class:yfiles.lang.Class; @@ -77715,7 +79649,7 @@ declare namespace system{ *
  • A DFS completion ordering of the nodes of a graph is a node ordering identical to the order of node completion events in a {@link yfiles.algorithms.Dfs depth first search}.
  • *
  • An st-ordering (v_1,v_2,....,v_n) of a biconnected graph is a node ordering which guarantees that:
  • * - * @class yfiles.algorithms.NodeOrders + * @class * @static */ export interface NodeOrders extends Object{} @@ -77725,8 +79659,8 @@ declare namespace system{ *

    * This ordering is a reversed topological ordering in case the input graph is acyclic. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {Array.} order an array of {@link number}s that returns for each {@link yfiles.algorithms.Node} v, its zero-based index within the calculated ordering, i.e., + * @param graph the input graph + * @param order an array of {@link }s that returns for each {@link } v, its zero-based index within the calculated ordering, i.e., * order[v.index()] == 5 means that v is the 6-th node within the ordering * @see yfiles.algorithms.NodeOrders#topological * @see yfiles.algorithms.NodeOrders#dfsCompletion @@ -77741,8 +79675,8 @@ declare namespace system{ *

    * This ordering is a reversed topological ordering in case the input graph is acyclic. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} containing the nodes of the graph in the order identical to the order of node completion + * @param graph the input graph + * @returns a {@link } containing the nodes of the graph in the order identical to the order of node completion * events in a depth first search * @see yfiles.algorithms.NodeOrders#topological * @see yfiles.algorithms.NodeOrders#dfsCompletion @@ -77758,10 +79692,11 @@ declare namespace system{ *
  • Source node s and sink node t are connected by an edge.
  • *
  • For each node v_i in the ordering other than s or t, there are neighbors v_j and v_k with j < i and k > i.
  • * - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {Array.} stOrder an array of {@link number}s that will be filled during the execution and returns for each {@link yfiles.algorithms.Node} v, its zero-based + * @param graph the input graph + * @param stOrder an array of {@link }s that will be filled during the execution and returns for each {@link } v, its zero-based * index within the calculated ordering, i.e., stOrder[v.index()] == 5 means that v is the 6-th node within the ordering - * @param {yfiles.algorithms.Edge} [stEdge=null] an {@link yfiles.algorithms.Edge} that connects source node s and sink node t + * @param [stEdge=null] an {@link } that connects source node s and sink node t + * @see yfiles.algorithms.NodeOrders#st * @see yfiles.algorithms.NodeOrders#st * @static */ @@ -77769,7 +79704,7 @@ declare namespace system{ /** * Assigns an st-ordering to the nodes of a biconnected graph. *

    - * Like St but the result is returned as a {@link yfiles.algorithms.NodeList}. + * Like {@link yfiles.algorithms.NodeOrders#st} but the result is returned as a {@link yfiles.algorithms.NodeList}. *

    *

    * An st-ordering (v_1,v_2,....,v_n) of a biconnected graph is a node ordering which guarantees that: @@ -77778,8 +79713,8 @@ declare namespace system{ *

  • Source node s and sink node t are connected by an edge.
  • *
  • For each node v_i in the ordering other than s or t, there are neighbors v_j and v_k with j < i and k > i.
  • * - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} containing the nodes of the graph in the order defined by the st-ordering + * @param graph the input graph + * @returns a {@link } containing the nodes of the graph in the order defined by the st-ordering * @see yfiles.algorithms.NodeOrders#st * @static */ @@ -77787,20 +79722,20 @@ declare namespace system{ /** * Converts an array-based result returned by a method of this class to a {@link yfiles.algorithms.NodeList} that contains all * nodes in the order provided by the given array. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {Array.} order an array of {@link number}s that will be filled during the execution and returns for each {@link yfiles.algorithms.Node} v, its zero-based + * @param graph the input graph + * @param order an array of {@link }s that will be filled during the execution and returns for each {@link } v, its zero-based * index within the calculated ordering, i.e., order[v.index()] == 5 means that v is the 6-th node within the ordering - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} containing the nodes of the graph in the order provided by the given array + * @returns a {@link } containing the nodes of the graph in the order provided by the given array * @static */ static toNodeList(graph:yfiles.algorithms.Graph,order:number[]):yfiles.algorithms.NodeList; /** * Copies an array-based result returned by a method of this class to a {@link yfiles.algorithms.INodeMap} that will provide values * of basic type int. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {Array.} order an array of {@link number}s that returns for each {@link yfiles.algorithms.Node} v, its zero-based index within the calculated ordering, i.e., + * @param graph the input graph + * @param order an array of {@link }s that returns for each {@link } v, its zero-based index within the calculated ordering, i.e., * order[v.index()] == 5 means that v is the 6-th node within the ordering - * @param {yfiles.algorithms.INodeMap} result the {@link yfiles.algorithms.INodeMap} that will be filled during the execution with the zero-based index of each node within + * @param result the {@link } that will be filled during the execution with the zero-based index of each node within * the calculated ordering * @static */ @@ -77808,8 +79743,8 @@ declare namespace system{ /** * Copies a {@link yfiles.algorithms.NodeList}-based result returned by a method of this class to a {@link yfiles.algorithms.INodeMap} that * will provide values of basic type int. - * @param {yfiles.algorithms.NodeList} order a {@link yfiles.algorithms.NodeList} containing the nodes of the graph in the appropriate order - * @param {yfiles.algorithms.INodeMap} result the {@link yfiles.algorithms.INodeMap} that will be filled during the execution with the zero-based index of each node within + * @param order a {@link } containing the nodes of the graph in the appropriate order + * @param result the {@link } that will be filled during the execution with the zero-based index of each node within * the calculated ordering * @static */ @@ -77820,18 +79755,18 @@ declare namespace system{ * A topological ordering of the nodes of a directed graph is a linear ordering of the nodes such that for each directed * edge (u,v), node u lies before v in the ordering. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {Array.} order an array of {@link number}s that will be filled during the execution and returns for each {@link yfiles.algorithms.Node} v, its zero-based + * @param graph the input graph + * @param order an array of {@link }s that will be filled during the execution and returns for each {@link } v, its zero-based * index within the calculated ordering, i.e., order[v.index()] == 5 means that v is the 6-th node within the ordering - * @returns {boolean} true if the graph is acyclic, false otherwise + * @returns true if the graph is acyclic, false otherwise * @see yfiles.algorithms.NodeOrders#topological * @static */ static topological(graph:yfiles.algorithms.Graph,order:number[]):boolean; /** * Returns a topological ordering of the nodes of a directed acyclic graph. - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} containing the nodes of the graph in the order they appear in the topological ordering + * @param graph the input graph + * @returns a {@link } containing the nodes of the graph in the order they appear in the topological ordering * @throws {Stubs.Exceptions.ArgumentError} if the graph is cyclic * @see yfiles.algorithms.NodeOrders#topological * @static @@ -77856,7 +79791,7 @@ declare namespace system{ * NP-hard for undirected graphs, but can be solved in linear time for directed acyclic graphs. * * - * @class yfiles.algorithms.Paths + * @class * @static */ export interface Paths extends Object{} @@ -77867,8 +79802,8 @@ declare namespace system{ * The returned node path has length path.size()+1, if the given path is not empty. Otherwise, the returned path will be * empty. The i-th node in the returned path will be either source or target node of the i-th edge in the given path. *

    - * @param {yfiles.algorithms.EdgeList} path the given {@link yfiles.algorithms.EdgeList path of edges} - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList path of nodes} from the given {@link yfiles.algorithms.EdgeList path of edges} + * @param path the given {@link path of edges} + * @returns a {@link path of nodes} from the given {@link path of edges} * @static */ static constructNodePath(path:yfiles.algorithms.EdgeList):yfiles.algorithms.NodeList; @@ -77880,9 +79815,9 @@ declare namespace system{ *

    * The internal nodes on directed chains all have in-degree 1 and out-degree 1. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {boolean} directed true if the chain should be considered as directed, false otherwise - * @returns {Array.} an array of {@link yfiles.algorithms.EdgeList}s each of which contains the edges (at least two) that make up a chain + * @param graph the input graph + * @param directed true if the chain should be considered as directed, false otherwise + * @returns an array of {@link }s each of which contains the edges (at least two) that make up a chain * @see yfiles.algorithms.Paths#constructNodePath * @static */ @@ -77890,31 +79825,31 @@ declare namespace system{ /** * A variant of {@link yfiles.algorithms.Paths#findAllPaths} which returns all simple directed or undirected paths between two * given nodes and, additionally, allows to specify a filter for the paths to be returned. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} startNode the given start node - * @param {yfiles.algorithms.Node} endNode the given end node - * @param {boolean} directed true if the path should be considered as directed, false otherwise - * @param {function(yfiles.algorithms.EdgeList): boolean} filter a predicate that accepts or rejects a found {@link yfiles.algorithms.EdgeList} and adds it to the result - * @returns {Array.} an array of {@link yfiles.algorithms.EdgeList}s each of which represents a path between the start and end node. + * @param graph the input graph + * @param startNode the given start node + * @param endNode the given end node + * @param directed true if the path should be considered as directed, false otherwise + * @param filter a predicate that accepts or rejects a found {@link } and adds it to the result + * @returns an array of {@link }s each of which represents a path between the start and end node. * @static */ static findAllPaths(graph:yfiles.algorithms.Graph,startNode:yfiles.algorithms.Node,endNode:yfiles.algorithms.Node,directed:boolean,filter:(obj:yfiles.algorithms.EdgeList)=>boolean):yfiles.algorithms.EdgeList[]; /** * Returns all simple directed or undirected paths that connect a start node with an end node. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} startNode the given start node - * @param {yfiles.algorithms.Node} endNode the given end node - * @param {boolean} directed true if the path should be considered as directed, false otherwise - * @returns {Array.} an array of {@link yfiles.algorithms.EdgeList}s each of which represents a path between the start and end node + * @param graph the input graph + * @param startNode the given start node + * @param endNode the given end node + * @param directed true if the path should be considered as directed, false otherwise + * @returns an array of {@link }s each of which represents a path between the start and end node * @static */ static findAllPaths(graph:yfiles.algorithms.Graph,startNode:yfiles.algorithms.Node,endNode:yfiles.algorithms.Node,directed:boolean):yfiles.algorithms.EdgeList[]; /** * Finds all edges that belong to a directed path from a start node to an end node. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} startNode the given start node - * @param {yfiles.algorithms.Node} endNode the given end node - * @param {yfiles.algorithms.IEdgeMap} pathEdges the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution with a boolean value indicating whether or not + * @param graph the input graph + * @param startNode the given start node + * @param endNode the given end node + * @param pathEdges the {@link } that will be filled during the execution with a boolean value indicating whether or not * an edge belongs to a path connecting the two given nodes * @static */ @@ -77926,11 +79861,11 @@ declare namespace system{ *

    * The returned cursor only supports the operation {@link yfiles.algorithms.ICursor#ok}, {@link yfiles.algorithms.ICursor#current}, {@link yfiles.algorithms.ICursor#size} and {@link yfiles.algorithms.ICursor#next}. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} startNode the given start node - * @param {yfiles.algorithms.Node} endNode the given end node - * @param {boolean} directed true if the path should be considered as directed, false otherwise - * @returns {yfiles.algorithms.ICursor} a {@link yfiles.algorithms.ICursor} that calculates the next path in the sequence + * @param graph the input graph + * @param startNode the given start node + * @param endNode the given end node + * @param directed true if the path should be considered as directed, false otherwise + * @returns a {@link } that calculates the next path in the sequence * @static */ static findAllPathsCursor(graph:yfiles.algorithms.Graph,startNode:yfiles.algorithms.Node,endNode:yfiles.algorithms.Node,directed:boolean):yfiles.algorithms.ICursor; @@ -77940,20 +79875,20 @@ declare namespace system{ * All edges of the graph have an integral length associated with them. The longest path is defined as one of all directed * paths within the graph for which the edge lengths of all contained edges sum up to a maximum. *

    - * @param {yfiles.algorithms.Graph} graph a directed acyclic graph - * @param {yfiles.algorithms.IDataProvider} [edgeLength=null] the {@link yfiles.algorithms.IDataProvider} that returns the non-negative integer length of each edge - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} containing the edges of the longest directed path + * @param graph a directed acyclic graph + * @param [edgeLength=null] the {@link } that returns the non-negative integer length of each edge + * @returns an {@link } containing the edges of the longest directed path * @static */ static findLongestPath(graph:yfiles.algorithms.Graph,edgeLength?:yfiles.algorithms.IDataProvider):yfiles.algorithms.EdgeList; /** * Calculates the longest path from a given node to all other node in a given directed acyclic graph. - * @param {yfiles.algorithms.Graph} graph a directed acyclic graph - * @param {yfiles.algorithms.Node} startNode the node for which the distances are calculated - * @param {yfiles.algorithms.IEdgeMap} dist the {@link yfiles.algorithms.IEdgeMap} that returns the distance (i.e. weight) of type double for each edge - * @param {yfiles.algorithms.INodeMap} maxDist the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and holds the maximum distance between the given + * @param graph a directed acyclic graph + * @param startNode the node for which the distances are calculated + * @param dist the {@link } that returns the distance (i.e. weight) of type double for each edge + * @param maxDist the {@link } that will be filled during the execution and holds the maximum distance between the given * node and all other nodes - * @param {yfiles.algorithms.IEdgeMap} predicate the {@link yfiles.algorithms.IEdgeMap} that returns a boolean value indicating whether or not an edge should be considered + * @param predicate the {@link } that returns a boolean value indicating whether or not an edge should be considered * during the path search * @static */ @@ -77967,20 +79902,20 @@ declare namespace system{ * A heuristic is used for finding a path that is long. It is not guaranteed, though, that the returned path is actually * the longest path within the given graph, since that is a well known hard problem. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} containing the edges of an undirected simple path + * @param graph the given graph + * @returns an {@link } containing the edges of an undirected simple path * @static */ static findLongPath(graph:yfiles.algorithms.Graph):yfiles.algorithms.EdgeList; /** * Returns whether or not a directed path from a start node to another node in an acyclic graph exists. - * @param {yfiles.algorithms.Graph} graph an acyclic graph which contains the two nodes - * @param {yfiles.algorithms.NodeList} topSort a {@link yfiles.algorithms.NodeList list} of nodes sorted in topological order - * @param {yfiles.algorithms.IEdgeMap} predicate the {@link yfiles.algorithms.IEdgeMap} that returns a boolean value indicating whether or not an edge should be considered + * @param graph an acyclic graph which contains the two nodes + * @param topSort a {@link list} of nodes sorted in topological order + * @param predicate the {@link } that returns a boolean value indicating whether or not an edge should be considered * during the path search - * @param {yfiles.algorithms.Node} startNode - * @param {yfiles.algorithms.Node} endNode - * @returns {boolean} true if a directed path from a start node to another node exists, false otherwise + * @param startNode + * @param endNode + * @returns true if a directed path from a start node to another node exists, false otherwise * @static */ static findPath(graph:yfiles.algorithms.Graph,topSort:yfiles.algorithms.NodeList,startNode:yfiles.algorithms.Node,endNode:yfiles.algorithms.Node,predicate:yfiles.algorithms.IEdgeMap):boolean; @@ -77991,11 +79926,11 @@ declare namespace system{ * The edges are returned in the order that they appear in the found path. If the returned path is empty, no path between * the given nodes was found. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} startNode the first node of the path - * @param {yfiles.algorithms.Node} endNode the last node of the path - * @param {boolean} directed true if the path should be directed, false otherwise - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} containing the path edges between the start node and the end node + * @param graph the input graph + * @param startNode the first node of the path + * @param endNode the last node of the path + * @param directed true if the path should be directed, false otherwise + * @returns an {@link } containing the path edges between the start node and the end node * @static */ static findPath(graph:yfiles.algorithms.Graph,startNode:yfiles.algorithms.Node,endNode:yfiles.algorithms.Node,directed:boolean):yfiles.algorithms.EdgeList; @@ -78007,46 +79942,45 @@ declare namespace system{ * A planar embedding is represented by a {@link yfiles.algorithms.PlanarEmbedding#faces list of faces}. Each face is represented by a list of {@link yfiles.algorithms.Dart darts} which describe the * border of the face. *

    - * @class yfiles.algorithms.PlanarEmbedding + * @class * @final */ export interface PlanarEmbedding extends Object{} export class PlanarEmbedding { /** * Creates a new embedding for the specified planar graph. - * @param {yfiles.algorithms.Graph} graph a planar graph + * @param graph a planar graph * @throws {Stubs.Exceptions.ArgumentError} if the specified graph is not planar - * @constructor */ constructor(graph:yfiles.algorithms.Graph); /** * Returns the cyclic next dart of the given dart. - * @param {yfiles.algorithms.Dart} dart a dart - * @returns {yfiles.algorithms.Dart} the cyclic next dart of the given dart + * @param dart a dart + * @returns the cyclic next dart of the given dart */ getCyclicNext(dart:yfiles.algorithms.Dart):yfiles.algorithms.Dart; /** * Returns the cyclic previous dart of the given dart. - * @param {yfiles.algorithms.Dart} dart a dart - * @returns {yfiles.algorithms.Dart} the cyclic previous dart of the given dart + * @param dart a dart + * @returns the cyclic previous dart of the given dart */ getCyclicPrevious(dart:yfiles.algorithms.Dart):yfiles.algorithms.Dart; /** * Returns the two darts associated with the given edge. - * @param {yfiles.algorithms.Edge} edge an edge - * @returns {Array.} the two darts associated with the given edge + * @param edge an edge + * @returns the two darts associated with the given edge */ getDarts(edge:yfiles.algorithms.Edge):yfiles.algorithms.Dart[]; /** * Returns a {@link yfiles.collections.IList.} containing the (cyclic ordered) outgoing darts of the specified node. - * @param {yfiles.algorithms.Node} node a node - * @returns {yfiles.collections.IList.} a {@link yfiles.collections.IList.} containing the (cyclic ordered) outgoing darts + * @param node a node + * @returns a {@link } containing the (cyclic ordered) outgoing darts */ getOutgoingDarts(node:yfiles.algorithms.Node):yfiles.collections.IList; /** * Return whether or not the given graph is planar. - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {boolean} true if the given graph is planar, false otherwise + * @param graph the input graph + * @returns true if the given graph is planar, false otherwise * @static */ static isPlanar(graph:yfiles.algorithms.Graph):boolean; @@ -78079,7 +80013,7 @@ declare namespace system{ *
  • rank(v) - rank(w) >= length(v,w), for all (v,w) in E and,
  • *
  • the sum ∑(weight(v,w) * (rank(v) - rank(w))) over all (v,w) in E is minimized.
  • * - * @class yfiles.algorithms.RankAssignments + * @class * @static */ export interface RankAssignments extends Object{} @@ -78090,12 +80024,12 @@ declare namespace system{ *

    * Minimum edge length and weights should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph in which all the edges have directions, such that rank[source] < rank[target] and + * @param graph the input graph in which all the edges have directions, such that rank[source] < rank[target] and * rank[target] - rank[source] >= minlength[edge] - * @param {Array.} rank an array that will be filled with the ranking r of each node v such that rank[v.index] == r - * @param {Array.} minLength an array holding a non-negative value len of each edge e such that minLength[e.index] == len - * @param {number} [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) - * @returns {number} the number of layers + * @param rank an array that will be filled with the ranking r of each node v such that rank[v.index] == r + * @param minLength an array holding a non-negative value len of each edge e such that minLength[e.index] == len + * @param [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) + * @returns the number of layers * @see yfiles.algorithms.RankAssignments#simple * @static */ @@ -78111,31 +80045,33 @@ declare namespace system{ *

    * Minimum edge length and weights should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph in which all the edges have directions, such that rank[source] < rank[target] and + * @param graph the input graph in which all the edges have directions, such that rank[source] < rank[target] and * rank[target] - rank[source] >= minlength[edge] - * @param {yfiles.algorithms.INodeMap} rank the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns the integer ranking of each node - * @param {yfiles.algorithms.IEdgeMap} minLength the {@link yfiles.algorithms.IEdgeMap} that returns an integer value (minimum/tight length) of each edge - * @param {number} [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) - * @returns {number} + * @param rank the {@link } that will be filled during the execution and returns the integer ranking of each node + * @param minLength the {@link } that returns an integer value (minimum/tight length) of each edge + * @param [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) + * @returns * @see yfiles.algorithms.RankAssignments#simple * @static */ static simple(graph:yfiles.algorithms.Graph,rank:yfiles.algorithms.INodeMap,minLength:yfiles.algorithms.IEdgeMap,maximalDuration?:number):number; /** - * Similar to Simplex but, additionally, it is possible to provide a valid initial tree solution for the problem. + * Similar to {@link yfiles.algorithms.RankAssignments#simplex} but, additionally, it is possible to provide a valid initial tree + * solution for the problem. *

    * Minimum edge length and weights should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.INodeMap} layer the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns the zero-based ranking index for + * @param graph the given graph + * @param layer the {@link } that will be filled during the execution and returns the zero-based ranking index for * each node - * @param {yfiles.algorithms.IDataProvider} w the {@link yfiles.algorithms.IDataProvider} that returns an integer value (weight) of each edge - * @param {yfiles.algorithms.IDataProvider} minLength the {@link yfiles.algorithms.IDataProvider} that returns an integer value (minimum length) of each edge - * @param {yfiles.algorithms.IEdgeMap} tree the {@link yfiles.algorithms.IEdgeMap} that returns a boolean value indicating whether or not an edge is a tree edge - * @param {yfiles.algorithms.Node} _root the given root node of the tree solution - * @param {boolean} validRanking true if the argument layer contains a valid ranking, false otherwise - * @param {number} [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) - * @returns {number} the number of layers + * @param w the {@link } that returns an integer value (weight) of each edge + * @param minLength the {@link } that returns an integer value (minimum length) of each edge + * @param tree the {@link } that returns a boolean value indicating whether or not an edge is a tree edge + * @param _root the given root node of the tree solution + * @param validRanking true if the argument layer contains a valid ranking, false otherwise + * @param [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) + * @returns the number of layers + * @see yfiles.algorithms.RankAssignments#simplex * @see yfiles.algorithms.RankAssignments#simplex * @static */ @@ -78157,13 +80093,14 @@ declare namespace system{ *

    * Minimum edge length and weights should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.INodeMap} layer the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns the zero-based ranking index for + * @param graph the given graph + * @param layer the {@link } that will be filled during the execution and returns the zero-based ranking index for * each node - * @param {yfiles.algorithms.IDataProvider} w the {@link yfiles.algorithms.IDataProvider} that returns an integer value (weight) of each edge - * @param {yfiles.algorithms.IDataProvider} minLength the {@link yfiles.algorithms.IDataProvider} that returns an integer value (minimum length) of each edge - * @param {number} [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) - * @returns {number} the number of layers + * @param w the {@link } that returns an integer value (weight) of each edge + * @param minLength the {@link } that returns an integer value (minimum length) of each edge + * @param [maximalDuration=0x7FFFFFFFFFFFFFFF] a preferred time limit for the algorithm (in milliseconds) + * @returns the number of layers + * @see yfiles.algorithms.RankAssignments#simplex * @see yfiles.algorithms.RankAssignments#simplex * @static */ @@ -78186,7 +80123,7 @@ declare namespace system{ *
  • The all-pairs shortest path problem is the problem of finding shortest paths between every pair of * nodes such that the sum of the edge costs is minimized.
  • * - * @class yfiles.algorithms.ShortestPaths + * @class * @static */ export interface ShortestPaths extends Object{} @@ -78199,16 +80136,16 @@ declare namespace system{ *

    * This method yields the shortest distance from a given node s to all other nodes. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {Array.} cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] - * @param {Array.} dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] + * @param dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other * nodes. The distance from s to v is dist[v.index()]. If there is no path from s to v, then * dist[v.index()] == Double.POSITIVE_INFINITY. - * @param {Array.} [pred=null] an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param [pred=null] an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. - * @returns {boolean} true if the input graph is acyclic, false otherwise + * @returns true if the input graph is acyclic, false otherwise * @see yfiles.algorithms.ShortestPaths#acyclic * @see yfiles.algorithms.ShortestPaths#constructNodePath * @see yfiles.algorithms.ShortestPaths#constructEdgePath @@ -78223,14 +80160,14 @@ declare namespace system{ *

    * This method yields the shortest distance from a given node s to all other nodes. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns the double value (cost) for traversing each edge - * @param {yfiles.algorithms.INodeMap} dist the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (shortest distance) - * from node s to all other nodes or {@link number#POSITIVE_INFINITY} if no such paths exist - * @param {yfiles.algorithms.INodeMap} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param cost the {@link } that returns the double value (cost) for traversing each edge + * @param dist the {@link } that will be filled during the execution and returns a double value (shortest distance) + * from node s to all other nodes or {@link #POSITIVE_INFINITY} if no such paths exist + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists - * @returns {boolean} true if the input graph is acyclic, false otherwise + * @returns true if the input graph is acyclic, false otherwise * @see yfiles.algorithms.ShortestPaths#acyclic * @static */ @@ -78241,13 +80178,13 @@ declare namespace system{ * If the given graph contains a negative-cost cycle, then false is returned and the values returned in dist are left * unspecified. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {Array.} cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] - * @param {Array.>} dist an array of values that will be filled during the execution and returns the shortest path distances from all pairs of + * @param graph the input graph + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] + * @param dist an array of values that will be filled during the execution and returns the shortest path distances from all pairs of * nodes s and t in the graph. The distance from s to t is dist[s.index()][t.index()]. If there is no path from s to t, * then dist[s.index()][t.index()] == Double.POSITIVE_INFINITY. - * @returns {boolean} true if the given graph does not contain a negative-cost cycle, false otherwise + * @returns true if the given graph does not contain a negative-cost cycle, false otherwise * @static */ static allPairs(graph:yfiles.algorithms.Graph,directed:boolean,cost:number[],dist:number[][]):boolean; @@ -78261,15 +80198,15 @@ declare namespace system{ * other nodes. If, on the other hand, the given graph contains negative-cost cycles, this method will yield no reasonable * result which will be indicated by the return value false. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the source node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns the double value (cost) for traversing each edge - * @param {yfiles.algorithms.INodeMap} dist the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (shortest distance) - * from node s to all other nodes or {@link number#POSITIVE_INFINITY} if no such paths exist - * @param {yfiles.algorithms.INodeMap} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * @param graph the input graph + * @param s the source node + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost the {@link } that returns the double value (cost) for traversing each edge + * @param dist the {@link } that will be filled during the execution and returns a double value (shortest distance) + * from node s to all other nodes or {@link #POSITIVE_INFINITY} if no such paths exist + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists - * @returns {boolean} + * @returns * @see yfiles.algorithms.ShortestPaths#bellmanFord * @static */ @@ -78284,17 +80221,17 @@ declare namespace system{ * other nodes. If, on the other hand, the given graph contains negative-cost cycles, this method will yield no reasonable * result which will be indicated by the return value false. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {Array.} cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] - * @param {Array.} dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] + * @param dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other * nodes. The distance from s to v is dist[v.index()]. If there is no path from s to v, then * dist[v.index()] == Double.POSITIVE_INFINITY. - * @param {Array.} [pred=null] an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param [pred=null] an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. - * @returns {boolean} + * @returns * @see yfiles.algorithms.ShortestPaths#constructNodePath * @see yfiles.algorithms.ShortestPaths#constructEdgePath * @see yfiles.algorithms.ShortestPaths#bellmanFord @@ -78307,12 +80244,12 @@ declare namespace system{ *

    * If there is no path from node s to t, then an empty list is returned. *

    - * @param {yfiles.algorithms.Node} s the start node of the shortest path which must be the same start node that was specified when pred was calculated - * @param {yfiles.algorithms.Node} t the target node of the path - * @param {Array.} pred an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param s the start node of the shortest path which must be the same start node that was specified when pred was calculated + * @param t the target node of the path + * @param pred an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. - * @returns {yfiles.algorithms.EdgeList} a {@link yfiles.algorithms.EdgeList list} containing the edges on the shortest path from s to t in the correct order + * @returns a {@link list} containing the edges on the shortest path from s to t in the correct order * @see yfiles.algorithms.ShortestPaths#constructEdgePath * @static */ @@ -78323,11 +80260,11 @@ declare namespace system{ *

    * If there is no path from node s to t, then an empty list is returned. *

    - * @param {yfiles.algorithms.Node} s the start node of the shortest path which must be the same start node that was specified when pred was calculated - * @param {yfiles.algorithms.Node} t the target node of the path - * @param {yfiles.algorithms.IDataProvider} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * @param s the start node of the shortest path which must be the same start node that was specified when pred was calculated + * @param t the target node of the path + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists - * @returns {yfiles.algorithms.EdgeList} a {@link yfiles.algorithms.EdgeList list} containing the edges on the shortest path from s to t in the correct order + * @returns a {@link list} containing the edges on the shortest path from s to t in the correct order * @see yfiles.algorithms.ShortestPaths#constructEdgePath * @static */ @@ -78338,12 +80275,12 @@ declare namespace system{ *

    * If there is no path from node s to t, then an empty list is returned. *

    - * @param {yfiles.algorithms.Node} s the start node of the shortest path which must be the same start node that was specified when pred was calculated - * @param {yfiles.algorithms.Node} t the target node of the path - * @param {Array.} pred an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param s the start node of the shortest path which must be the same start node that was specified when pred was calculated + * @param t the target node of the path + * @param pred an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList list} containing the nodes on the shortest path from s to t in the correct order + * @returns a {@link list} containing the nodes on the shortest path from s to t in the correct order * @see yfiles.algorithms.ShortestPaths#constructNodePath * @static */ @@ -78354,11 +80291,11 @@ declare namespace system{ *

    * If there is no path from node s to t, then an empty list is returned. *

    - * @param {yfiles.algorithms.Node} s the start node of the shortest path which must be the same start node that was specified when pred was calculated - * @param {yfiles.algorithms.Node} t the target node of the path - * @param {yfiles.algorithms.IDataProvider} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * @param s the start node of the shortest path which must be the same start node that was specified when pred was calculated + * @param t the target node of the path + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList list} containing the nodes on the shortest path from s to t in the correct order + * @returns a {@link list} containing the nodes on the shortest path from s to t in the correct order * @see yfiles.algorithms.ShortestPaths#constructNodePath * @static */ @@ -78374,14 +80311,14 @@ declare namespace system{ *

    * The costs should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {Array.} cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] - * @param {Array.} dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] + * @param dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other * nodes. The distance from s to v is dist[v.index()]. If there is no path from s to v, then * dist[v.index()] == Double.POSITIVE_INFINITY. - * @param {Array.} [pred=null] an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param [pred=null] an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. * @see yfiles.algorithms.ShortestPaths#constructNodePath @@ -78401,13 +80338,13 @@ declare namespace system{ *

    * The costs should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns the double value (cost) for traversing each edge - * @param {yfiles.algorithms.INodeMap} dist the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (shortest distance) - * from node s to all other nodes or {@link number#POSITIVE_INFINITY} if no such paths exist - * @param {yfiles.algorithms.INodeMap} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost the {@link } that returns the double value (cost) for traversing each edge + * @param dist the {@link } that will be filled during the execution and returns a double value (shortest distance) + * from node s to all other nodes or {@link #POSITIVE_INFINITY} if no such paths exist + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists * @see yfiles.algorithms.ShortestPaths#constructNodePath * @see yfiles.algorithms.ShortestPaths#constructEdgePath @@ -78421,15 +80358,15 @@ declare namespace system{ *

    * This method assumes that each edge of the input graph has a cost of 1.0. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} start the start node - * @param {yfiles.algorithms.IDataProvider} targetMap the {@link yfiles.algorithms.IDataProvider} that returns a boolean value indicating whether or not a node belongs to the set of + * @param graph the input graph + * @param start the start node + * @param targetMap the {@link } that returns a boolean value indicating whether or not a node belongs to the set of * target nodes - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {number} maxLength the maximum edge length of the shortest paths - * @param {yfiles.algorithms.EdgeList} pathEdges a {@link yfiles.algorithms.EdgeList list} that will be filled during the execution and returns the edges on the shortest path from s to t in the correct + * @param directed true if the graph should be considered as directed, false otherwise + * @param maxLength the maximum edge length of the shortest paths + * @param pathEdges a {@link list} that will be filled during the execution and returns the edges on the shortest path from s to t in the correct * order - * @param {yfiles.algorithms.NodeList} pathNodes a {@link yfiles.algorithms.NodeList list} that will be filled during the execution and returns the nodes on the shortest path from s to t in the correct + * @param pathNodes a {@link list} that will be filled during the execution and returns the nodes on the shortest path from s to t in the correct * order * @static */ @@ -78439,11 +80376,11 @@ declare namespace system{ *

    * This method assumes that each edge of the input graph has a cost of 1.0. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} start the start node - * @param {yfiles.algorithms.Node} end the target node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IEdgeMap} pathMap the {@link yfiles.algorithms.IEdgeMap} that will be filled during the execution and returns a boolean value indicating whether + * @param graph the input graph + * @param start the start node + * @param end the target node + * @param directed true if the graph should be considered as directed, false otherwise + * @param pathMap the {@link } that will be filled during the execution and returns a boolean value indicating whether * or not the edge belongs to a shortest path connecting the two nodes * @static */ @@ -78456,12 +80393,12 @@ declare namespace system{ *

    * The cost should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} costDP the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for traversing each edge - * @param {yfiles.algorithms.Node} start the given start node - * @param {yfiles.algorithms.Node} end the given target node - * @param {number} k a non-negative integer value - * @returns {yfiles.algorithms.YList} a {@link yfiles.algorithms.YList list} of {@link yfiles.algorithms.EdgeList} objects each of which represents a path from start node to target node. The i-th + * @param graph the input graph + * @param costDP the {@link } that returns a double value (cost) for traversing each edge + * @param start the given start node + * @param end the given target node + * @param k a non-negative integer value + * @returns a {@link list} of {@link } objects each of which represents a path from start node to target node. The i-th * path in the list contains the i-th shortest path between the start and target node. * @static */ @@ -78475,41 +80412,41 @@ declare namespace system{ *

    * The cost should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} costDP the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for traversing each edge - * @param {yfiles.algorithms.Node} start the given start node - * @param {yfiles.algorithms.Node} end the given target node - * @param {number} k a non-negative integer value - * @returns {yfiles.algorithms.ICursor} a {@link yfiles.algorithms.ICursor cursor} that calculates the next path in the sequence only when needed + * @param graph the input graph + * @param costDP the {@link } that returns a double value (cost) for traversing each edge + * @param start the given start node + * @param end the given target node + * @param k a non-negative integer value + * @returns a {@link cursor} that calculates the next path in the sequence only when needed * @static */ static kShortestPathsCursor(graph:yfiles.algorithms.Graph,costDP:yfiles.algorithms.IDataProvider,start:yfiles.algorithms.Node,end:yfiles.algorithms.Node,k:number):yfiles.algorithms.ICursor; /** * Returns two edge-disjoint paths in a non-negatively weighted directed graph, such that both paths connect nodes s and t * and have minimum total length. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} source the source node of the shortest pair - * @param {yfiles.algorithms.Node} target the target node of the shortest pair - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} costDP the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for traversing each edge - * @returns {Array.} a two-dimensional array of {@link yfiles.algorithms.EdgeList}s holding the resulting edge-disjoint paths or null if no such + * @param graph the input graph + * @param source the source node of the shortest pair + * @param target the target node of the shortest pair + * @param directed true if the graph should be considered as directed, false otherwise + * @param costDP the {@link } that returns a double value (cost) for traversing each edge + * @returns a two-dimensional array of {@link }s holding the resulting edge-disjoint paths or null if no such * edge-disjoint paths exist * @static */ static shortestPair(graph:yfiles.algorithms.Graph,source:yfiles.algorithms.Node,target:yfiles.algorithms.Node,directed:boolean,costDP:yfiles.algorithms.IDataProvider):yfiles.algorithms.EdgeList[]; /** * This method solves the single-source shortest path problem for arbitrary graphs. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {Array.} cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] - * @param {Array.} dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] + * @param dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other * nodes. The distance from s to v is dist[v.index()]. If there is no path from s to v, then * dist[v.index()] == Double.POSITIVE_INFINITY. - * @param {Array.} [pred=null] an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param [pred=null] an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. - * @returns {boolean} true if the weighted graph does not contain a negative-cost cycle, false otherwise + * @returns true if the weighted graph does not contain a negative-cost cycle, false otherwise * @see yfiles.algorithms.ShortestPaths#constructNodePath * @see yfiles.algorithms.ShortestPaths#constructEdgePath * @see yfiles.algorithms.ShortestPaths#singleSource @@ -78518,15 +80455,15 @@ declare namespace system{ static singleSource(graph:yfiles.algorithms.Graph,s:yfiles.algorithms.Node,directed:boolean,cost:number[],dist:number[],pred?:yfiles.algorithms.Edge[]):boolean; /** * This method solves the single-source shortest path problem for arbitrary graphs. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the source node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns the double value (cost) for traversing each edge - * @param {yfiles.algorithms.INodeMap} dist the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (shortest distance) - * from node s to all other nodes or {@link number#POSITIVE_INFINITY} if no such paths exist - * @param {yfiles.algorithms.INodeMap} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * @param graph the input graph + * @param s the source node + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost the {@link } that returns the double value (cost) for traversing each edge + * @param dist the {@link } that will be filled during the execution and returns a double value (shortest distance) + * from node s to all other nodes or {@link #POSITIVE_INFINITY} if no such paths exist + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists - * @returns {boolean} true if the weighted graph does not contain a negative-cost cycle, false otherwise + * @returns true if the weighted graph does not contain a negative-cost cycle, false otherwise * @see yfiles.algorithms.ShortestPaths#constructNodePath * @see yfiles.algorithms.ShortestPaths#constructEdgePath * @see yfiles.algorithms.ShortestPaths#singleSource @@ -78545,15 +80482,15 @@ declare namespace system{ *

    * The costs should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the source node - * @param {yfiles.algorithms.Node} t the sink node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {Array.} cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] - * @param {Array.} pred an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param graph the input graph + * @param s the source node + * @param t the sink node + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] + * @param pred an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. - * @returns {number} the distance between sand t if a path between these two nodes exists or Double.POSITIVE_INFINITY otherwise + * @returns the distance between sand t if a path between these two nodes exists or Double.POSITIVE_INFINITY otherwise * @see yfiles.algorithms.ShortestPaths#constructNodePath * @see yfiles.algorithms.ShortestPaths#constructEdgePath * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink @@ -78571,14 +80508,14 @@ declare namespace system{ *

    * The costs should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the source node - * @param {yfiles.algorithms.Node} t the sink node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns the double value (cost) for traversing each edge - * @param {yfiles.algorithms.INodeMap} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * @param graph the input graph + * @param s the source node + * @param t the sink node + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost the {@link } that returns the double value (cost) for traversing each edge + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists - * @returns {number} a shortest {@link yfiles.algorithms.EdgeList path of edges} between source and sink + * @returns a shortest {@link path of edges} between source and sink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink @@ -78597,12 +80534,12 @@ declare namespace system{ *

    * The costs should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the source node - * @param {yfiles.algorithms.Node} t the sink node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {Array.} cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] - * @returns {yfiles.algorithms.EdgeList} a shortest {@link yfiles.algorithms.EdgeList path of edges} between source and sink + * @param graph the input graph + * @param s the source node + * @param t the sink node + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost an array of double values that returns the costs for traversing each edge; edge e has cost cost[e.index()] + * @returns a shortest {@link path of edges} between source and sink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink @@ -78621,12 +80558,12 @@ declare namespace system{ *

    * The costs should be non-negative. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the source node - * @param {yfiles.algorithms.Node} t the sink node - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns the double value (cost) for traversing each edge - * @returns {yfiles.algorithms.EdgeList} a shortest {@link yfiles.algorithms.EdgeList path of edges} between source and sink + * @param graph the input graph + * @param s the source node + * @param t the sink node + * @param directed true if the graph should be considered as directed, false otherwise + * @param cost the {@link } that returns the double value (cost) for traversing each edge + * @returns a shortest {@link path of edges} between source and sink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink * @see yfiles.algorithms.ShortestPaths#singleSourceSingleSink @@ -78636,13 +80573,13 @@ declare namespace system{ /** * Solves the single-source shortest path problem for arbitrary graphs in which each edge has a uniform cost of * 1.0. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {Array.} dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param directed true if the graph should be considered as directed, false otherwise + * @param dist an array of values that will be filled during the execution and returns the shortest distance from node s to all other * nodes. The distance from s to v is dist[v.index()]. If there is no path from s to v, then * dist[v.index()] == Double.POSITIVE_INFINITY. - * @param {Array.} [pred=null] an array of {@link yfiles.algorithms.Edge}s that will be filled during the execution and returns for each node t the shortest + * @param [pred=null] an array of {@link }s that will be filled during the execution and returns for each node t the shortest * path edge pred[t.index()] which is the last edge on the shortest path from s to t. If t == s or if there is no shortest * path from s to t, then pred[t.index()] == null. * @see yfiles.algorithms.ShortestPaths#constructNodePath @@ -78651,14 +80588,15 @@ declare namespace system{ */ static uniform(graph:yfiles.algorithms.Graph,s:yfiles.algorithms.Node,directed:boolean,dist:number[],pred?:yfiles.algorithms.Edge[]):void; /** - * Like Uniform but uses {@link yfiles.algorithms.INodeMap}s instead of arrays. - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.Node} s the node from which the shortest path search starts - * @param {boolean} directed true if the graph should be considered as directed, false otherwise - * @param {yfiles.algorithms.INodeMap} dist the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns a double value (shortest distance) - * from node s to all other nodes or {@link number#POSITIVE_INFINITY} if no such paths exist - * @param {yfiles.algorithms.INodeMap} pred the {@link yfiles.algorithms.INodeMap} that will be filled during the execution and returns for each node t the last edge on the + * Like {@link yfiles.algorithms.ShortestPaths#uniform} but uses {@link yfiles.algorithms.INodeMap}s instead of arrays. + * @param graph the input graph + * @param s the node from which the shortest path search starts + * @param directed true if the graph should be considered as directed, false otherwise + * @param dist the {@link } that will be filled during the execution and returns a double value (shortest distance) + * from node s to all other nodes or {@link #POSITIVE_INFINITY} if no such paths exist + * @param pred the {@link } that will be filled during the execution and returns for each node t the last edge on the * shortest path from s to t or null if t == s or no shortest path from s to t exists + * @see yfiles.algorithms.ShortestPaths#uniform * @see yfiles.algorithms.ShortestPaths#constructNodePath * @see yfiles.algorithms.ShortestPaths#constructEdgePath * @static @@ -78666,8 +80604,8 @@ declare namespace system{ static uniform(graph:yfiles.algorithms.Graph,s:yfiles.algorithms.Node,directed:boolean,dist:yfiles.algorithms.INodeMap,pred:yfiles.algorithms.INodeMap):void; /** * Convenience method that returns an array containing uniform edge costs of 1.0 for each edge of the given graph. - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {Array.} an array that contains uniform edge costs of value 1.0 (i.e., for each edge e: cost[e.index()] == 1.0) + * @param graph the input graph + * @returns an array that contains uniform edge costs of value 1.0 (i.e., for each edge e: cost[e.index()] == 1.0) * @static */ static uniformCost(graph:yfiles.algorithms.Graph):number[]; @@ -78675,15 +80613,15 @@ declare namespace system{ } /** * This class provides methods for efficiently sorting graph elements in graph structures. - * @class yfiles.algorithms.Sorting + * @class * @static */ export interface Sorting extends Object{} export class Sorting { /** * Sorts the nodes of a given graph by degree in ascending order. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {Array.} an array of {@link yfiles.algorithms.Node}s sorted by degree in ascending order + * @param graph the given graph + * @returns an array of {@link }s sorted by degree in ascending order * @static */ static sortNodesByDegree(graph:yfiles.algorithms.Graph):yfiles.algorithms.Node[]; @@ -78692,9 +80630,9 @@ declare namespace system{ *

    * The nodes are sorted in ascending order. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {yfiles.algorithms.IDataProvider} keys the {@link yfiles.algorithms.IDataProvider} that returns the keys based on which the nodes will be sorted - * @returns {Array.} an array of {@link yfiles.algorithms.Node}s sorted by an integer key in ascending order + * @param graph the given graph + * @param keys the {@link } that returns the keys based on which the nodes will be sorted + * @returns an array of {@link }s sorted by an integer key in ascending order * @static */ static sortNodesByIntKey(graph:yfiles.algorithms.Graph,keys:yfiles.algorithms.IDataProvider):yfiles.algorithms.Node[]; @@ -78712,16 +80650,16 @@ declare namespace system{ * that graph. * * - * @class yfiles.algorithms.SpanningTrees + * @class * @static */ export interface SpanningTrees extends Object{} export class SpanningTrees { /** * Returns the overall cost of a previously calculated minimum spanning tree. - * @param {yfiles.algorithms.EdgeList} treeEdges the given {@link yfiles.algorithms.EdgeList list} of edges that form a minimum spanning tree - * @param {yfiles.algorithms.IDataProvider} edgeCost the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for each tree edge - * @returns {number} the overall cost of the tree edges + * @param treeEdges the given {@link list} of edges that form a minimum spanning tree + * @param edgeCost the {@link } that returns a double value (cost) for each tree edge + * @returns the overall cost of the tree edges * @static */ static cost(treeEdges:yfiles.algorithms.EdgeList,edgeCost:yfiles.algorithms.IDataProvider):number; @@ -78733,9 +80671,9 @@ declare namespace system{ *
      *
    • J.B. Kruskal. On the shortest spanning subtree of a graph and the traveling salesman problem. Proceedings of the American Mathematical Society, pages 48-50, 1956.
    • *
    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for each edge - * @returns {yfiles.algorithms.EdgeList} a {@link yfiles.algorithms.EdgeList list} containing the edges that form the minimum spanning tree + * @param graph the input graph + * @param cost the {@link } that returns a double value (cost) for each edge + * @returns a {@link list} containing the edges that form the minimum spanning tree * @static */ static kruskal(graph:yfiles.algorithms.Graph,cost:yfiles.algorithms.IDataProvider):yfiles.algorithms.EdgeList; @@ -78744,9 +80682,9 @@ declare namespace system{ *

    * Currently, the result is obtained by calling {@link yfiles.algorithms.SpanningTrees#prim}. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for each edge - * @returns {yfiles.algorithms.EdgeList} a {@link yfiles.algorithms.EdgeList list} containing the edges that form the minimum spanning tree + * @param graph the input graph + * @param cost the {@link } that returns a double value (cost) for each edge + * @returns a {@link list} containing the edges that form the minimum spanning tree * @static */ static minimum(graph:yfiles.algorithms.Graph,cost:yfiles.algorithms.IDataProvider):yfiles.algorithms.EdgeList; @@ -78758,16 +80696,16 @@ declare namespace system{ *
      *
    • R.C. Prim. Shortest connection networks and some generalizations. Bell System Technical Journal, 36:1389-1401, 1957.
    • *
    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} cost the {@link yfiles.algorithms.IDataProvider} that returns a double value (cost) for each edge - * @returns {yfiles.algorithms.EdgeList} a {@link yfiles.algorithms.EdgeList list} containing the edges that form the minimum spanning tree + * @param graph the input graph + * @param cost the {@link } that returns a double value (cost) for each edge + * @returns a {@link list} containing the edges that form the minimum spanning tree * @static */ static prim(graph:yfiles.algorithms.Graph,cost:yfiles.algorithms.IDataProvider):yfiles.algorithms.EdgeList; /** * Calculates a spanning tree for the given graph in which each edge has a uniform cost of 1.0. - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.algorithms.EdgeList} a {@link yfiles.algorithms.EdgeList list} containing the edges that form the minimum spanning tree + * @param graph the input graph + * @returns a {@link list} containing the edges that form the minimum spanning tree * @static */ static uniform(graph:yfiles.algorithms.Graph):yfiles.algorithms.EdgeList; @@ -78788,7 +80726,7 @@ declare namespace system{ * from v to w in G of length 2 or more. * * - * @class yfiles.algorithms.Transitivity + * @class * @static */ export interface Transitivity extends Object{} @@ -78799,8 +80737,8 @@ declare namespace system{ * Given a G = (V,E) be a directed acyclic graph. The reflexive, transitive closure of G is a graph which contains edge (v,w) only if there exists a * path from v to w in G. *

    - * @param {yfiles.algorithms.Graph} graph the input graph to which this method will add transitive edges, if necessary - * @param {yfiles.algorithms.EdgeList} [addedEdges=null] a {@link yfiles.algorithms.EdgeList list} that will be filled during the execution and contains the edges that have been added to the graph by this method + * @param graph the input graph to which this method will add transitive edges, if necessary + * @param [addedEdges=null] a {@link list} that will be filled during the execution and contains the edges that have been added to the graph by this method * @static */ static transitiveClosure(graph:yfiles.algorithms.Graph,addedEdges?:yfiles.algorithms.EdgeList):void; @@ -78813,8 +80751,8 @@ declare namespace system{ * Given G = (V,E) be a directed acyclic graph. The transitive reduction of G is a graph which contains edge (v,w) only if there exists no path * from v to w in G of length 2 or more. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.EdgeList} [transitiveEdges=null] a {@link yfiles.algorithms.EdgeList list} that will be filled during the execution and contains all transitive edges of the given graph; removal of these + * @param graph the input graph + * @param [transitiveEdges=null] a {@link list} that will be filled during the execution and contains all transitive edges of the given graph; removal of these * edges will yield the transitive reduction of the graph * @static */ @@ -78852,7 +80790,7 @@ declare namespace system{ *
  • Eccentricity: The eccentricity of a tree node is the maximum distance to any other node.
  • *
  • Center node: The center of a tree is the set of nodes that have minimal eccentricity.
  • * - * @class yfiles.algorithms.Trees + * @class * @static */ export interface Trees extends Object{} @@ -78863,9 +80801,9 @@ declare namespace system{ *

    * A list of all reversed edges will be returned by this method. *

    - * @param {yfiles.algorithms.Graph} tree the given tree - * @param {yfiles.algorithms.Node} [root=null] the given root element - * @returns {yfiles.algorithms.EdgeList} an {@link yfiles.algorithms.EdgeList} containing the reversed edges + * @param tree the given tree + * @param [root=null] the given root element + * @returns an {@link } containing the reversed edges * @static */ static directTree(tree:yfiles.algorithms.Graph,root?:yfiles.algorithms.Node):yfiles.algorithms.EdgeList; @@ -78874,8 +80812,8 @@ declare namespace system{ *

    * The center node has the property of inducing a minimum depth tree when being used as the root of that tree. *

    - * @param {yfiles.algorithms.Graph} tree the given undirected tree - * @returns {yfiles.algorithms.Node} the center node of the given undirected tree + * @param tree the given undirected tree + * @returns the center node of the given undirected tree * @static */ static getCenterRoot(tree:yfiles.algorithms.Graph):yfiles.algorithms.Node; @@ -78885,9 +80823,9 @@ declare namespace system{ * A leaf node is a node with outdegree == 0 if the input is a directed rooted tree, and a node with * degree == 1, otherwise. *

    - * @param {yfiles.algorithms.Graph} tree the given tree - * @param {boolean} directedRootedTree true if the algorithm should consider the tree as directed, false otherwise - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} that contains all leaf nodes of the given tree + * @param tree the given tree + * @param directedRootedTree true if the algorithm should consider the tree as directed, false otherwise + * @returns a {@link } that contains all leaf nodes of the given tree * @static */ static getLeafNodes(tree:yfiles.algorithms.Graph,directedRootedTree:boolean):yfiles.algorithms.NodeList; @@ -78896,11 +80834,11 @@ declare namespace system{ *

    * It is not part of the given subset. *

    - * @param {yfiles.algorithms.Graph} tree the given directed rooted tree - * @param {yfiles.algorithms.Node} root the root of the tree - * @param {boolean} rootedDownward true if the tree is directed from the root to the leaves, false otherwise - * @param {yfiles.algorithms.NodeList} nodes the subset of nodes - * @returns {yfiles.algorithms.Node} the {@link yfiles.algorithms.Node nearest common ancestor} of the given subset of nodes + * @param tree the given directed rooted tree + * @param root the root of the tree + * @param rootedDownward true if the tree is directed from the root to the leaves, false otherwise + * @param nodes the subset of nodes + * @returns the {@link nearest common ancestor} of the given subset of nodes * @static */ static getNearestCommonAncestor(tree:yfiles.algorithms.Graph,root:yfiles.algorithms.Node,rootedDownward:boolean,nodes:yfiles.algorithms.NodeList):yfiles.algorithms.Node; @@ -78911,26 +80849,29 @@ declare namespace system{ *

    *
      *
    • If the input is a directed rooted tree or reversed directed rooted tree, it returns the corresponding root node.
    • - *
    • If the input is a tree, the method returns a maximum weight center node as defined in GetWeightedCenterNode.
    • + *
    • + * If the input is a tree, the method returns a maximum weight center node as defined in + * {@link yfiles.algorithms.Trees#getWeightedCenterNode}. + *
    • *
    • If the input is not a tree, a node with indegree == 0 (or outdegree == 0) is returned.
    • *
    - * @param {yfiles.algorithms.Graph} tree the given tree - * @returns {yfiles.algorithms.Node} a possible root for the given tree + * @param tree the given tree + * @returns a possible root for the given tree * @static */ static getRoot(tree:yfiles.algorithms.Graph):yfiles.algorithms.Node; /** * Returns the depths of each subtree of a rooted directed tree. - * @param {yfiles.algorithms.Graph} tree a rooted directed tree graph - * @param {yfiles.algorithms.INodeMap} subtreeDepthMap the {@link yfiles.algorithms.INodeMap} that will be filled during the execution with the depth of the subtree rooted at each + * @param tree a rooted directed tree graph + * @param subtreeDepthMap the {@link } that will be filled during the execution with the depth of the subtree rooted at each * node * @static */ static getSubTreeDepths(tree:yfiles.algorithms.Graph,subtreeDepthMap:yfiles.algorithms.INodeMap):void; /** * Returns the size (number of nodes) of each subtree of a rooted directed tree. - * @param {yfiles.algorithms.Graph} tree a rooted directed tree graph - * @param {yfiles.algorithms.INodeMap} subtreeSizeMap the {@link yfiles.algorithms.INodeMap} that will be filled during the execution with the size of the subtree rooted at each + * @param tree a rooted directed tree graph + * @param subtreeSizeMap the {@link } that will be filled during the execution with the size of the subtree rooted at each * node * @static */ @@ -78942,9 +80883,9 @@ declare namespace system{ * This method can also be applied to the result obtained by * {@link yfiles.algorithms.Trees#getUndirectedTreeNodes}. In this case, the subtrees are considered to be undirected. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {Array.} [treeNodes=null] an array of {@link yfiles.algorithms.NodeList}s previously calculated by {@link yfiles.algorithms.Trees#getTreeNodes} - * @returns {Array.} an array of {@link yfiles.algorithms.EdgeList} objects each containing edges that belong to a maximal subtree + * @param graph the given graph + * @param [treeNodes=null] an array of {@link }s previously calculated by {@link #getTreeNodes} + * @returns an array of {@link } objects each containing edges that belong to a maximal subtree * @static */ static getTreeEdges(graph:yfiles.algorithms.Graph,treeNodes?:yfiles.algorithms.NodeList[]):yfiles.algorithms.EdgeList[]; @@ -78955,8 +80896,8 @@ declare namespace system{ * For each list of tree nodes, the first node element is the root of a tree. On each such root, all outgoing edges connect * to nodes in the subtree and each in-degree of the root is at least two. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList} objects each containing nodes that belong to a maximal directed subtree + * @param graph the given graph + * @returns an array of {@link } objects each containing nodes that belong to a maximal directed subtree * @static */ static getTreeNodes(graph:yfiles.algorithms.Graph):yfiles.algorithms.NodeList[]; @@ -78966,8 +80907,8 @@ declare namespace system{ *

    * For each list of tree nodes, the first node is the only node of the subtree that may be incident to non-tree edges. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {Array.} an array of {@link yfiles.algorithms.NodeList} objects each containing nodes that belong to a maximal undirected subtree + * @param graph the given graph + * @returns an array of {@link } objects each containing nodes that belong to a maximal undirected subtree * @static */ static getUndirectedTreeNodes(graph:yfiles.algorithms.Graph):yfiles.algorithms.NodeList[]; @@ -78976,9 +80917,9 @@ declare namespace system{ *

    * The number of paths per node are stored in the given {@link yfiles.algorithms.INodeMap}. *

    - * @param {yfiles.algorithms.Graph} tree the given tree - * @param {yfiles.algorithms.INodeMap} [intWeight=null] the {@link yfiles.algorithms.INodeMap} that holds the number of paths per node - * @returns {yfiles.algorithms.Node} a {@link yfiles.algorithms.Node} used by the greatest number of all undirected paths + * @param tree the given tree + * @param [intWeight=null] the {@link } that holds the number of paths per node + * @returns a {@link } used by the greatest number of all undirected paths * @static */ static getWeightedCenterNode(tree:yfiles.algorithms.Graph,intWeight?:yfiles.algorithms.INodeMap):yfiles.algorithms.Node; @@ -78989,2633 +80930,47 @@ declare namespace system{ * directedRootedTree == true, each component has to be a directed rooted tree. Otherwise, each component has to be an * undirected tree. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {boolean} directedRootedTree true if the algorithm should check for directed rooted trees, false otherwise - * @returns {boolean} true if the given graph is a forest, false otherwise + * @param graph the given graph + * @param directedRootedTree true if the algorithm should check for directed rooted trees, false otherwise + * @returns true if the given graph is a forest, false otherwise * @static */ static isForest(graph:yfiles.algorithms.Graph,directedRootedTree:boolean):boolean; /** * Checks whether or not the given graph is a forest, that is, a graph whose connected components are directed rooted * trees. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the given graph is a forest, false otherwise + * @param graph the given graph + * @returns true if the given graph is a forest, false otherwise * @static */ static isForest(graph:yfiles.algorithms.Graph):boolean; /** * Checks whether or not the given graph is a directed rooted tree in which each node has a maximum of n children. - * @param {yfiles.algorithms.Graph} graph the given graph - * @param {number} n the allowed maximum of children - * @returns {boolean} true if the given graph is a n-ary tree, false otherwise + * @param graph the given graph + * @param n the allowed maximum of children + * @returns true if the given graph is a n-ary tree, false otherwise * @static */ static isNaryTree(graph:yfiles.algorithms.Graph,n:number):boolean; /** * Checks whether or not the given graph is a directed rooted tree. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the given graph is a directed rooted tree, false otherwise + * @param graph the given graph + * @returns true if the given graph is a directed rooted tree, false otherwise * @static */ static isRootedTree(graph:yfiles.algorithms.Graph):boolean; /** * Checks whether or not the given graph is an undirected tree. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {boolean} true if the given graph is an undirected tree, false otherwise + * @param graph the given graph + * @returns true if the given graph is an undirected tree, false otherwise * @static */ static isTree(graph:yfiles.algorithms.Graph):boolean; static $class:yfiles.lang.Class; } - /** - * An implementation of a doubly linked list that provides direct access to the cells that store the elements. - *

    - * The cells are represented by class {@link yfiles.algorithms.ListCell}. - *

    - *

    - * This class supports fast access and removal operations, specifically, it is possible to remove an element in constant - * time (i.e. O(1)) given a reference to its list cell. - *

    - *

    - * Class YList supports iteration over the elements either by using the list cells directly (methods {@link yfiles.algorithms.YList#firstCell}/{@link yfiles.algorithms.YList#lastCell} together with - * {@link yfiles.algorithms.YList#succCell}/{@link yfiles.algorithms.YList#predCell}, respectively) or by means of a cursor - * ({@link yfiles.algorithms.YList#cursor}). - *

    - *

    - * Furthermore, YList offers its own {@link yfiles.algorithms.YList#sort} method. Note that this class also provides all relevant - * methods to use the list like a stack data type. - *

    - *

    - * This implementation permits null as values. It implements the {@link yfiles.collections.IList.} interface but does not support the {@link yfiles.algorithms.YList#subList} - * method. The implementation of this method will throw an {@link Stubs.Exceptions.NotSupportedError} if invoked. The {@link yfiles.algorithms.YList#cursor} - * returned by instances of this class is not fail fast. - *

    - * @class yfiles.algorithms.YList - * @implements {yfiles.collections.IList.} - */ - export interface YList extends Object,yfiles.collections.IList{} - export class YList { - /** - * Creates a list that is initialized with the elements provided by the given array of objects. - * @param {Array.} a - * @constructor - */ - constructor(a:Object[]); - /** - * Creates a list that is initialized with those elements from the given YCursor object for which the given data provider - * returns true upon calling its {@link yfiles.algorithms.IDataProvider#getBoolean getBool} method. - * @param {yfiles.algorithms.ICursor} c A cursor providing objects that should be added to this list. - * @param {yfiles.algorithms.IDataProvider} predicate A data provider that acts as a inclusion predicate for each object accessible by the given cursor. - * @constructor - */ - constructor(c:yfiles.algorithms.ICursor,predicate:yfiles.algorithms.IDataProvider); - /** - * Creates a list that is initialized with the elements provided by the given Collection object. - * @param {yfiles.collections.IEnumerable.} c - * @constructor - */ - constructor(c:yfiles.collections.IEnumerable); - /** - * Creates a list that is initialized with the elements provided by the given YCursor object. - * @param {yfiles.algorithms.ICursor} c - * @constructor - */ - constructor(c:yfiles.algorithms.ICursor); - /** - * Creates an empty doubly linked list. - * @constructor - */ - constructor(); - /** - * Appends all elements provided by the given cursor to this list. - *

    - * The cursor will be moved from its given position to the end. - *

    - *

    - * Be aware that a statement like aList.append(aList.cursor()) results in an infinite recursion. - *

    - * @param {yfiles.algorithms.ICursor} c - */ - addAll(c:yfiles.algorithms.ICursor):void; - /** - * Appends all elements provided by the given collection to this list. - * @param {yfiles.collections.ICollection.} collection - * @returns {boolean} Whether there have been elements appended. - */ - addAll(collection:yfiles.collections.ICollection):boolean; - /** - * - * @param {number} index - * @param {yfiles.collections.ICollection.} c - * @returns {boolean} - */ - addAll(index:number,c:yfiles.collections.ICollection):boolean; - /** - * Inserts the given object at the head of this list. - * @param {Object} o - * @returns {yfiles.algorithms.ListCell} The newly created ListCell object that stores the given object. - */ - addFirst(o:Object):yfiles.algorithms.ListCell; - /** - * Adds a formerly removed ListCell object at the head of this list. - *

    - * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. - *

    - * @param {yfiles.algorithms.ListCell} cell A list cell which is not part of any list. - */ - addFirstCell(cell:yfiles.algorithms.ListCell):void; - /** - * Inserts the given object at the tail of this list. - * @param {Object} o - * @returns {yfiles.algorithms.ListCell} The newly created ListCell object that stores the given object. - */ - addLast(o:Object):yfiles.algorithms.ListCell; - /** - * Adds a formerly removed ListCell object at the tail of this list. - *

    - * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. - *

    - * @param {yfiles.algorithms.ListCell} cell A list cell which is not part of any list. - */ - addLastCell(cell:yfiles.algorithms.ListCell):void; - /** - * Removes all elements from this list. - */ - clear():void; - /** - * Whether or not this list contains all the elements in the given collection. - *

    - * Equality of elements is defined by the {@link Object#equals} method. - *

    - * @param {yfiles.collections.ICollection.} collection - * @returns {boolean} - */ - containsAll(collection:yfiles.collections.ICollection):boolean; - /** - * Copies the elements of this collection to an array, starting at the specified array index. - * @param {Array.} array The one-dimensional array that is the destination of the elements copied from this collection. - * @param {number} arrayIndex The zero-based index in array at which copying begins. - */ - copyTo(array:Object[],arrayIndex:number):void; - /** - * Returns a cursor for this list. - *

    - * All cursor operations are supported. This cursor implementation is not fail-fast and continues to work if this list is - * modified during the traversal as long as the current ListCell the cursor points at is this in this list or has been - * removed from this list but has not been added to another instance since then. - *

    - * @returns {yfiles.algorithms.ICursor} - */ - cursor():yfiles.algorithms.ICursor; - /** - * Returns the cyclic predecessor cell of the given list cell. - *

    - * The last cell is returned as the cyclic predecessor of the first list cell. - *

    - * @param {yfiles.algorithms.ListCell} c - * @returns {yfiles.algorithms.ListCell} - */ - cyclicPred(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; - /** - * Returns the cyclic successor cell of the given list cell. - *

    - * The first cell is returned as the cyclic successor of the last list cell. - *

    - * @param {yfiles.algorithms.ListCell} c - * @returns {yfiles.algorithms.ListCell} - */ - cyclicSucc(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; - /** - * Returns the i-th element of this list. - * @param {number} i - * @returns {Object} - */ - elementAt(i:number):Object; - /** - * Returns the {@link yfiles.algorithms.ListCell} where object o is stored. - *

    - * This operation returns null, if no such cell exists. Equality of elements is defined by the {@link Object#equals} method. The first - * element in the list that matches that criteria is returned. - *

    - * @param {Object} o - * @returns {yfiles.algorithms.ListCell} the ListCell that contains the element or null if no such ListCell was found - */ - findCell(o:Object):yfiles.algorithms.ListCell; - /** - * Gets the element at the specified index. - * @param {number} index The zero-based index of the element to get or set. - * @returns {Object} The element at the specified index. - * @see yfiles.algorithms.YList#set - */ - get(index:number):Object; - /** - * Gets the cell at the given index. - * @param {number} index the zero-based index of the cell in this list. - * @returns {yfiles.algorithms.ListCell} The cell. - * @throws {Stubs.Exceptions.IndexOutOfRangeError} if the index is negative or greater or equal than the {@link yfiles.algorithms.YList#size} - */ - getCell(index:number):yfiles.algorithms.ListCell; - /** - * Returns an enumerator that iterates through this collection. - * @returns {yfiles.collections.IEnumerator.} An {@link yfiles.collections.IEnumerator.} that can be used to iterate through this collection. - */ - getEnumerator():yfiles.collections.IEnumerator; - /** - * Returns the element stored in the given list cell. - * @param {yfiles.algorithms.ListCell} c - * @returns {Object} - */ - getInfo(c:yfiles.algorithms.ListCell):Object; - /** - * Whether or not this list contains the given element. - *

    - * Equality of elements is defined by the {@link Object#equals} method. - *

    - * @param {Object} o - * @returns {boolean} - */ - includes(o:Object):boolean; - /** - * Returns the zero-based index of the given element in this list. - *

    - * If the given element is not in the list, -1 is returned. - *

    - * @param {Object} obj - * @returns {number} - */ - indexOf(obj:Object):number; - /** - * - * @param {number} index - * @param {Object} element - */ - insert(index:number,element:Object):void; - /** - * Inserts the given object into this list with respect to a given reference list cell. - *

    - * The (newly created) list cell that stores the object is inserted right after the reference list cell refCell. - *

    - *

    - * If refCell == null, the given object is inserted at the head of the list. - *

    - * @param {Object} o The object to be inserted. - * @param {yfiles.algorithms.ListCell} refCell The list cell used to reference the position. - * @returns {yfiles.algorithms.ListCell} The newly created ListCell object that stores object o. - */ - insertAfter(o:Object,refCell:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; - /** - * Inserts the given object into this list with respect to a given reference list cell. - *

    - * The (newly created) list cell that stores the object is inserted right before the reference list cell refCell. - *

    - *

    - * If refCell == null, the given object is appended to the list. - *

    - * @param {Object} o The object to be inserted. - * @param {yfiles.algorithms.ListCell} refCell The list cell used to reference the position. - * @returns {yfiles.algorithms.ListCell} The newly created ListCell object that stores object o. - */ - insertBefore(o:Object,refCell:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; - /** - * Inserts a formerly removed ListCell object into this list with respect to a given reference list cell. - *

    - * The ListCell object is inserted right after the reference list cell refCell. - *

    - *

    - * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. - *

    - * @param {yfiles.algorithms.ListCell} cellToInsert A list cell which is not part of any list. - * @param {yfiles.algorithms.ListCell} refCell The list cell used to reference the position. - */ - insertCellAfter(cellToInsert:yfiles.algorithms.ListCell,refCell:yfiles.algorithms.ListCell):void; - /** - * Inserts a formerly removed ListCell object into this list with respect to a given reference list cell. - *

    - * The ListCell object is inserted right before the reference list cell refCell. - *

    - *

    - * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. - *

    - * @param {yfiles.algorithms.ListCell} cellToInsert A list cell which is not part of any list. - * @param {yfiles.algorithms.ListCell} refCell The list cell used to reference the position. - */ - insertCellBefore(cellToInsert:yfiles.algorithms.ListCell,refCell:yfiles.algorithms.ListCell):void; - /** - * Checks whether this list contains elements. - * @returns {boolean} - */ - isEmpty():boolean; - /** - * - * @param {Object} o - * @returns {number} - */ - lastIndexOf(o:Object):number; - /** - * Equivalent to {@link yfiles.algorithms.YList#firstObject}. - * @returns {Object} - */ - peek():Object; - /** - * Removes the first element from this list and returns it. - * @returns {Object} - */ - pop():Object; - /** - * Removes the last element from this list and returns it. - * @returns {Object} - */ - popLast():Object; - /** - * Returns the predecessor cell of the given list cell. - * @param {yfiles.algorithms.ListCell} c - * @returns {yfiles.algorithms.ListCell} - */ - predCell(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; - /** - * Equivalent to {@link yfiles.algorithms.YList#addFirst}. - * @param {Object} o - * @returns {yfiles.algorithms.ListCell} - */ - push(o:Object):yfiles.algorithms.ListCell; - /** - * Removes the given object from this list. - *

    - * Only the first element for which equality to o holds gets removed. - *

    - * @param {Object} o - * @returns {boolean} - */ - remove(o:Object):boolean; - /** - * Removes the given collection of objects from this list. - * @param {yfiles.collections.ICollection.} collection - * @returns {boolean} Whether there have been elements removed. - */ - removeAll(collection:yfiles.collections.ICollection):boolean; - /** - * - * @param {number} index - */ - removeAt(index:number):void; - /** - * Removes the element pointed to by the given YCursor object. - * @param {yfiles.algorithms.ICursor} c - * @returns {Object} The removed element. - */ - removeAtCursor(c:yfiles.algorithms.ICursor):Object; - /** - * Removes the given list cell, and hence the element stored in it, from this list. - * @param {yfiles.algorithms.ListCell} c - * @returns {Object} The element that is stored in the removed cell. - */ - removeCell(c:yfiles.algorithms.ListCell):Object; - /** - * Retains only those elements in this list which are contained in the given collection. - * @param {yfiles.collections.ICollection.} collection - * @returns {boolean} Whether there have been elements removed. - */ - retainAll(collection:yfiles.collections.ICollection):boolean; - /** - * Reverses the sequence of elements in this list. - */ - reverse():void; - /** - * Sets the element at the specified index. - * @param {number} index The zero-based index of the element to get or set. - * @param value The element at the specified index. - * @see yfiles.algorithms.YList#get - */ - set(index:number,value:Object):void; - /** - * Updates the element stored in the given list cell with the given object. - * @param {yfiles.algorithms.ListCell} c - * @param {Object} value - */ - setInfo(c:yfiles.algorithms.ListCell,value:Object):void; - /** - * Sorts the elements in this list according to the given comparator. - *

    - * NOTE: The elements will be assigned to different list cells by this method. - *

    - * @param {yfiles.collections.IComparer.} comparer - */ - sort(comparer:yfiles.collections.IComparer):void; - /** - * Sorts the elements in this list into ascending order, according to their natural ordering. - *

    - * All elements must implement the {@link yfiles.lang.IComparable} interface. Furthermore, all elements in this list must be - * mutually comparable (that is, e1.compareTo(e2) must not throw a ClassCastException for any elements e1 and e2 in this - * list). - *

    - *

    - * NOTE: The elements will be assigned to different list cells by this method. - *

    - */ - sort():void; - /** - * Transfers the contents of the given list to the end of this list. - *

    - * The given list will be empty after this operation. - *

    - *

    - * Note that this operation transfers the list cells of the given list to this list. No new list cells are created by this - * operation. - *

    - * @param {yfiles.algorithms.YList} list - */ - splice(list:yfiles.algorithms.YList):void; - /** - * - * @param {number} fromIndex - * @param {number} toIndex - * @returns {yfiles.collections.IList.} - */ - subList(fromIndex:number,toIndex:number):yfiles.collections.IList; - /** - * Returns the successor cell of the given list cell. - * @param {yfiles.algorithms.ListCell} c - * @returns {yfiles.algorithms.ListCell} - */ - succCell(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; - /** - * Returns an array representation of this list. - * @returns {Array.} - */ - toArray():Object[]; - /** - * Gets the number of elements in this list. - * @type {number} - */ - size:number; - /** - * Gets the first element of this list. - * @type {Object} - */ - firstObject:Object; - /** - * Gets the last element of this list. - * @type {Object} - */ - lastObject:Object; - /** - * Gets the first cell of this list. - * @type {yfiles.algorithms.ListCell} - */ - firstCell:yfiles.algorithms.ListCell; - /** - * Gets the last cell of this list. - * @type {yfiles.algorithms.ListCell} - */ - lastCell:yfiles.algorithms.ListCell; - static $class:yfiles.lang.Class; - } - /** - * This class represents a line in the 2D-dimensional affine space. - *

    - * The line is defined by the equation ax + by + c = 0 - *

    - * @class yfiles.algorithms.AffineLine - */ - export interface AffineLine extends Object{} - export class AffineLine { - /** - * Creates an affine line which is defined by two points. - * @param {yfiles.algorithms.YPoint} p1 - * @param {yfiles.algorithms.YPoint} p2 - * @constructor - */ - constructor(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint); - /** - * Creates an affine line which is defined by a point and a vector. - * @param {yfiles.algorithms.YPoint} p1 - * @param {yfiles.algorithms.YVector} v - * @constructor - */ - constructor(p1:yfiles.algorithms.YPoint,v:yfiles.algorithms.YVector); - /** - * Returns the crossing of two lines. - *

    - * If the lines are parallel, null is returned. - *

    - * @param {yfiles.algorithms.AffineLine} l1 - * @param {yfiles.algorithms.AffineLine} l2 - * @returns {yfiles.algorithms.YPoint} - * @static - */ - static getCrossing(l1:yfiles.algorithms.AffineLine,l2:yfiles.algorithms.AffineLine):yfiles.algorithms.YPoint; - /** - * Projects an point on the line in direction of the X-axis. - * @param {yfiles.algorithms.YPoint} p - * @returns {yfiles.algorithms.YPoint} - */ - getXProjection(p:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * Projects an point on the line in direction of the Y-axis. - * @param {yfiles.algorithms.YPoint} p - * @returns {yfiles.algorithms.YPoint} - */ - getYProjection(p:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * Gets a from ax+by+c = 0 - * @type {number} - */ - a:number; - /** - * Gets b from ax+by+c = 0 - * @type {number} - */ - b:number; - /** - * Gets c from ax+by+c = 0 - * @type {number} - */ - c:number; - static $class:yfiles.lang.Class; - } - /** - * The handle of a segment of a borderline. - * @class yfiles.algorithms.BorderLineSegment - */ - export interface BorderLineSegment extends Object{} - export class BorderLineSegment { - /** - * Returns the segment's value at the given position. - *

    - * Note: In case the position lies outside the segments range, the calculated value might be invalid. As the segment is not - * aware of any offsets the position also must not include any offsets. - *

    - * @param {number} position the position the value is retrieved for. - * @returns {number} the segment's value at the given position. - */ - getValueAt(position:number):number; - /** - * Returns the next segment or null if there is no such segment. - * @returns {yfiles.algorithms.BorderLineSegment} - */ - next():yfiles.algorithms.BorderLineSegment; - /** - * Returns the previous segment or null if there is no such segment. - * @returns {yfiles.algorithms.BorderLineSegment} - */ - prev():yfiles.algorithms.BorderLineSegment; - /** - * Gets the end of this segment. - * @type {number} - */ - end:number; - static $class:yfiles.lang.Class; - } - /** - * This class can be used to easily model an orthogonal border line or sky-line. - *

    - * It provides methods for measuring the distance between different BorderLine instances, merging multiple instances, - * modifying and efficiently moving them around. - *

    - * @class yfiles.algorithms.BorderLine - */ - export interface BorderLine extends Object{} - export class BorderLine { - /** - * Creates a new BorderLine from a single segment. - * @param {number} min the beginning of this borderline - * @param {number} max the ending of this borderline - * @param {number} valueAtMin the value of the segment at the beginning of this borderline - * @param {number} valueAtMax the value of the segment at the ending of this borderline - * @constructor - */ - constructor(min:number,max:number,valueAtMin:number,valueAtMax:number); - /** - * Creates a new BorderLine from a single segment. - * @param {number} min the beginning of this borderline - * @param {number} max the ending of this borderline - * @param {number} value the value of the segment - * @constructor - */ - constructor(min:number,max:number,value:number); - /** - * Creates a new BorderLine with the given value from -Double.MAX_VALUE to Double.MAX_VALUE. - * @param {number} value the value of the segment - * @constructor - */ - constructor(value:number); - /** - * Adds the given offset to the segments' positions. - *

    - * This method has complexity O(1). - *

    - * @param {number} delta the delta to add to the positions - */ - addOffset(delta:number):void; - /** - * Adds the given offset to the current values of the whole borderline. - *

    - * This method has complexity O(1). - *

    - * @param {number} delta the delta to add to the values - */ - addValueOffset(delta:number):void; - /** - * Convenience method that copies the actual data from the given argument to this instance. - * @param {yfiles.algorithms.BorderLine} other the argument to retrieve the values from - */ - adoptValues(other:yfiles.algorithms.BorderLine):void; - /** - * Creates a copy of this borderline. - *

    - * Optionally negates the values or offsets. - *

    - * @param {boolean} negateValues whether the values are negated - * @param {boolean} negateOffsets whether the offsets are negated - * @returns {yfiles.algorithms.BorderLine} the copy of the borderline - */ - createCopy(negateValues:boolean,negateOffsets:boolean):yfiles.algorithms.BorderLine; - /** - * Merges this borderline with the given borderline using the "maximum" policy. - *

    - * That means the resulting borderline will have greater value of both borderline on each position. If you imagine each - * borderline as a the upper border of a plane, the resulting borderline will be the upper border of the merged planes. - *

    - * @param {yfiles.algorithms.BorderLine} other the other borderline - * @returns {yfiles.algorithms.BorderLine} a new borderline that is the result of the merge - */ - createMax(other:yfiles.algorithms.BorderLine):yfiles.algorithms.BorderLine; - /** - * Merges this borderline with the given borderline using the "minimum" policy. - *

    - * That means the resulting borderline will have smaller value of both borderline on each position. If you imagine each - * borderline as a the lower border of a plane, the resulting borderline will be the lower border of the merged planes. - *

    - * @param {yfiles.algorithms.BorderLine} other the other borderline - * @returns {yfiles.algorithms.BorderLine} a new borderline that is the result of the merge - */ - createMin(other:yfiles.algorithms.BorderLine):yfiles.algorithms.BorderLine; - /** - * Returns the first segment or null if there is no such segment. - * @returns {yfiles.algorithms.BorderLineSegment} - */ - firstSegment():yfiles.algorithms.BorderLineSegment; - /** - * Calculates the minimal distance between this borderline and the other one. - *

    - * The other one is treated as if the values were all greater. - *

    - * @param {yfiles.algorithms.BorderLine} greater - * @returns {number} - */ - getDistanceTo(greater:yfiles.algorithms.BorderLine):number; - /** - * Returns the maximum position of the given segment. - * @param {yfiles.algorithms.BorderLineSegment} s the segment - * @returns {number} - */ - getMax(s:yfiles.algorithms.BorderLineSegment):number; - /** - * Calculates the maximum value in the interval from->to. - * @param {number} from - * @param {number} to - * @returns {number} - */ - getMaxValue(from:number,to:number):number; - /** - * Returns the minimum position of the given segment. - * @param {yfiles.algorithms.BorderLineSegment} s the segment - * @returns {number} - */ - getMin(s:yfiles.algorithms.BorderLineSegment):number; - /** - * Calculates the minimum value in the interval from->to. - * @param {number} from - * @param {number} to - * @returns {number} - */ - getMinValue(from:number,to:number):number; - /** - * Returns the segment at the given position. - * @param {number} pos the position - * @returns {yfiles.algorithms.BorderLineSegment} - */ - getSegmentAt(pos:number):yfiles.algorithms.BorderLineSegment; - /** - * Returns the slope of the given segment. - * @param {yfiles.algorithms.BorderLineSegment} s the segment - * @returns {number} - */ - getSlope(s:yfiles.algorithms.BorderLineSegment):number; - /** - * Returns the value of the minimum of the given segment. - *

    - * If the segment's slope is 0, it's the value of the whole segment. In case the slope differs from 0, it's the value of - * the start of the slope. - *

    - * @param {yfiles.algorithms.BorderLineSegment} s the segment - * @returns {number} - */ - getValue(s:yfiles.algorithms.BorderLineSegment):number; - /** - * Returns the value that is set on this borderline at the specified position. - *

    - * The position must lie within the range of the segment. - *

    - * @param {yfiles.algorithms.BorderLineSegment} segment The segment whose value shall be returned. - * @param {number} pos the position where the value will be retrieved. - * @returns {number} the value - * @throws {Stubs.Exceptions.ArgumentError} if pos is outside the segment's range. - */ - getValueAt(segment:yfiles.algorithms.BorderLineSegment,pos:number):number; - /** - * Returns the value that is set on this borderline at the specified position. - *

    - * The position must lie within the range of the segment that is stored in cell. - *

    - * @param {yfiles.algorithms.ListCell} cell The list cell containing the segment whose value shall be returned. - * @param {number} pos the position - * @returns {number} the value - * @throws {Stubs.Exceptions.ArgumentError} if pos is outside the segment's range that is stored in cell. - */ - getValueAt(cell:yfiles.algorithms.ListCell,pos:number):number; - /** - * Returns the value that is set on this borderline at the specified position. - * @param {number} pos the position - * @returns {number} the value - * @throws {Stubs.Exceptions.IndexOutOfRangeError} if the position is outside of the borderline. - */ - getValueAt(pos:number):number; - /** - * Grows this BorderLine horizontally, so that the {@link yfiles.algorithms.BorderLine#getValueAt values} of the BorderLine stay the same however their {@link yfiles.algorithms.BorderLine#getMin start} and {@link yfiles.algorithms.BorderLine#getMax end} - * points are moved in the direction of toMin and toMax. - *

    - * This is useful for scenarios where a BorderLine is needed that consists of an enlarged border. - *

    - *

    - * Note that this method normalizes the segments, i.e., it transforms each segment with slope != 0 to a segment with slope - * == 0. - *

    - * @param {number} toMin the delta by which the border should be extended towards -Infinity - * @param {number} toMax the delta by which the border should be extended towards +Infinity - * @param {boolean} positive whether the BorderLine should be interpreted to point in positive direction. This influences the direction into which a - * segment's border is extended. - */ - grow(toMin:number,toMax:number,positive:boolean):void; - /** - * Returns the last segment or null if there is no such segment. - * @returns {yfiles.algorithms.BorderLineSegment} - */ - lastSegment():yfiles.algorithms.BorderLineSegment; - /** - * Merges this borderline with the given borderline using the "maximum" policy. - * @param {yfiles.algorithms.BorderLine} other the other borderline - */ - mergeWithMax(other:yfiles.algorithms.BorderLine):void; - /** - * Merges this borderline with the given borderline using the "minimum" policy. - * @param {yfiles.algorithms.BorderLine} other the other borderline - */ - mergeWithMin(other:yfiles.algorithms.BorderLine):void; - /** - * Returns the next segment or null if there is no such segment. - * @param {yfiles.algorithms.BorderLineSegment} s - * @returns {yfiles.algorithms.BorderLineSegment} - */ - next(s:yfiles.algorithms.BorderLineSegment):yfiles.algorithms.BorderLineSegment; - /** - * Returns the previous segment or null if there is no such segment. - * @param {yfiles.algorithms.BorderLineSegment} s - * @returns {yfiles.algorithms.BorderLineSegment} - */ - prev(s:yfiles.algorithms.BorderLineSegment):yfiles.algorithms.BorderLineSegment; - /** - * Assures that all values in the given interval are greater or equal than the given value. - * @param {number} min the lower end of the interval - * @param {number} max the upper end of the interval - * @param {number} value the smallest possible value for the interval - */ - setMaxValue(min:number,max:number,value:number):void; - /** - * Assures that all values in the given interval are less or equal than the given value. - * @param {number} min the lower end of the interval - * @param {number} max the upper end of the interval - * @param {number} value the greatest possible value for the interval - */ - setMinValue(min:number,max:number,value:number):void; - /** - * Sets a specific interval to a slope starting at a given value. - * @param {number} min the left side of the interval. - * @param {number} max the right side of the interval. - * @param {number} value the value at min where the slope starts. - * @param {number} slope the slope of the segment in the given interval. - * @throws {Stubs.Exceptions.ArgumentError} if min is greater than max. - */ - setSloped(min:number,max:number,value:number,slope:number):void; - /** - * Sets a specific interval described by min and max to a given value. - * @param {number} min the left side of the interval. - * @param {number} max the right side of the interval. - * @param {number} value the value for the whole interval. - */ - setValue(min:number,max:number,value:number):void; - /** - * Gets the smallest position of this borderline - * @type {number} - */ - min:number; - /** - * Gets the greatest position of this borderline - * @type {number} - */ - max:number; - /** - * Gets the minimum value that is set on this borderline - * @type {number} - */ - minValue:number; - /** - * Gets the maximum value that is set on this borderline - * @type {number} - */ - maxValue:number; - static $class:yfiles.lang.Class; - } - /** - * This class provides useful geometric primitives and advanced geometric algorithms. - * @class yfiles.algorithms.Geom - * @static - */ - export interface Geom extends Object{} - export class Geom { - /** - * Calculates the convex hull for a set of points. - * @param {yfiles.algorithms.YList} points a list of {@link yfiles.algorithms.YPoint} objects - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.algorithms.YPoint} objects that constitute the convex hull of the given points. The list contains points - * in counter clockwise order around the hull. The first point is the one with the smallest x coordinate. If two such - * points exist then of these points the one with the smallest y coordinate is chosen as the first one. - * @static - */ - static calcConvexHull(points:yfiles.algorithms.YList):yfiles.algorithms.YList; - /** - * Calculates the intersection point of two affine lines. - *

    - * Each line is given by two points. - *

    - * @param {yfiles.algorithms.YPoint} p1 one point on the first line. - * @param {yfiles.algorithms.YPoint} p2 another point on the first line. - * @param {yfiles.algorithms.YPoint} p3 one point on the second line. - * @param {yfiles.algorithms.YPoint} p4 another point on the second line. - * @returns {yfiles.algorithms.YPoint} the intersection point of the specified lines or null if there is no intersection. - * @static - */ - static calcIntersection(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint,p3:yfiles.algorithms.YPoint,p4:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * Calculates the intersection point of two affine lines. - *

    - * Each line is given by a point and a direction vector. - *

    - * @param {yfiles.algorithms.YPoint} p1 origin point of the first line. - * @param {yfiles.algorithms.YVector} d1 direction vector of the first line. - * @param {yfiles.algorithms.YPoint} p2 origin point of the second line. - * @param {yfiles.algorithms.YVector} d2 direction vector of the second line. - * @returns {yfiles.algorithms.YPoint} the intersection point of the specified lines or null if there is no intersection. - * @static - */ - static calcIntersection(p1:yfiles.algorithms.YPoint,d1:yfiles.algorithms.YVector,p2:yfiles.algorithms.YPoint,d2:yfiles.algorithms.YVector):yfiles.algorithms.YPoint; - /** - * Calculates the intersection point of two affine lines. - *

    - * Each line is given by the coordinates of two points. - *

    - * @param {number} x1 x-coordinate of one point on the first line. - * @param {number} y1 y-coordinate of one point on the first line. - * @param {number} x2 x-coordinate of another point on the first line. - * @param {number} y2 y-coordinate of another point on the first line. - * @param {number} x3 x-coordinate of one point on the second line. - * @param {number} y3 y-coordinate of one point on the second line. - * @param {number} x4 x-coordinate of another point on the second line. - * @param {number} y4 y-coordinate of another point on the second line. - * @returns {yfiles.algorithms.YPoint} the intersection point of the specified lines or null if there is no intersection. - * @static - */ - static calcIntersection(x1:number,y1:number,x2:number,y2:number,x3:number,y3:number,x4:number,y4:number):yfiles.algorithms.YPoint; - /** - * Intersects the pair of specified source Rectangle2D objects and puts the result into the specified destination Rectangle2D - * object. - *

    - * If one or both of the source rectangles have negative width or height, the resulting rectangle will be located at (0,0) - * with a width and height of -1. One of the source rectangles can also be the destination to avoid creating a third - * Rectangle2D object, but in this case the original points of this source rectangle will be overwritten by this method. - *

    - * @param {yfiles.algorithms.Rectangle2D} r1 the first of a pair of Rectangle2D objects to be intersected with each other - * @param {yfiles.algorithms.Rectangle2D} r2 the second of a pair of Rectangle2D objects to be intersected with each other - * @param {yfiles.algorithms.Rectangle2D} dest the Rectangle2D that holds the results of the intersection of r1 and r2 - * @returns {yfiles.algorithms.Rectangle2D} - * @static - */ - static calcIntersection(r1:yfiles.algorithms.Rectangle2D,r2:yfiles.algorithms.Rectangle2D,dest:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; - /** - * Unions the pair of source Rectangle2D objects and puts the result into the specified destination Rectangle2D object. - *

    - * If one of the source rectangles has negative width or height, it is excluded from the union. If both source rectangles - * have negative width or height, the destination rectangle will become a copy of r1. One of the source rectangles can also - * be the destination to avoid creating a third Rectangle2D object, but in this case the original points of this source - * rectangle will be overwritten by this method. If the destination is null, a new Rectangle2D is created. - *

    - * @param {yfiles.algorithms.Rectangle2D} r1 the first of a pair of Rectangle2D objects to be combined with each other - * @param {yfiles.algorithms.Rectangle2D} r2 the second of a pair of Rectangle2D objects to be combined with each other - * @param {yfiles.algorithms.Rectangle2D} dest the Rectangle2D that holds the results of the union of r1 and r2 - * @returns {yfiles.algorithms.Rectangle2D} - * @static - */ - static calcUnion(r1:yfiles.algorithms.Rectangle2D,r2:yfiles.algorithms.Rectangle2D,dest:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; - /** - * Returns true iff the given points are collinear, i.e. - *

    - * all three points lie on a common line. - *

    - *

    - * Same as {@link yfiles.algorithms.Geom#orientation orientation(p,q,r) == 0} - *

    - * @param {yfiles.algorithms.YPoint} p - * @param {yfiles.algorithms.YPoint} q - * @param {yfiles.algorithms.YPoint} r - * @returns {boolean} - * @static - */ - static collinear(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):boolean; - /** - * Determines the distance of the point p to the line segment [l1, l2]. - * @param {number} pointX the x coordinate of p - * @param {number} pointY the y coordinate of p - * @param {number} lineX1 the x coordinate of l1 - * @param {number} lineY1 the y coordinate of l1 - * @param {number} lineX2 the x coordinate of l2 - * @param {number} lineY2 the y coordinate of l2 - * @returns {number} - * @static - */ - static distanceToLineSegment(pointX:number,pointY:number,lineX1:number,lineY1:number,lineX2:number,lineY2:number):number; - /** - * Same as {@link yfiles.algorithms.Geom#orientation orientation(p,q,r) > 0} - * @param {yfiles.algorithms.YPoint} p - * @param {yfiles.algorithms.YPoint} q - * @param {yfiles.algorithms.YPoint} r - * @returns {boolean} - * @static - */ - static leftTurn(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):boolean; - /** - * Returns whether the two lines defined by the given coordinates intersect or not. - * @param {number} x1 - * @param {number} y1 - * @param {number} x2 - * @param {number} y2 - * @param {number} x3 - * @param {number} y3 - * @param {number} x4 - * @param {number} y4 - * @returns {boolean} - * @static - */ - static linesIntersect(x1:number,y1:number,x2:number,y2:number,x3:number,y3:number,x4:number,y4:number):boolean; - /** - * Same as {@link yfiles.algorithms.Geom#orientation} with double values as arguments. - * @param {number} px - * @param {number} py - * @param {number} qx - * @param {number} qy - * @param {number} rx - * @param {number} ry - * @returns {number} - * @static - */ - static orientation(px:number,py:number,qx:number,qy:number,rx:number,ry:number):number; - /** - * Returns the orientation of point r relative to the directed line from point p to point q. - *

    - * The given tuple of points is said to have positive orientation if p and q are distinct and r lies to the left of the - * oriented line passing through p and q and oriented from p to q. - *

    - *

    - * The tuple is said to have negative orientation if p and q are distinct and r lies to the right of the line, and the - * tuple is said to have orientation zero if the three points are collinear. - *

    - * @param {yfiles.algorithms.YPoint} p - * @param {yfiles.algorithms.YPoint} q - * @param {yfiles.algorithms.YPoint} r - * @returns {number} +1 in the case of positive orientation, -1 in the case of negative orientation and 0 in the case of zero orientation. - * @static - */ - static orientation(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):number; - /** - * Determines the projection of the point p onto the line segment [l1, l2]. - *

    - * The resulting point is - *

    - *
      - *
    • the orthogonal projection of p onto the line through l1 and l2, iff the projection lies on the line segment [l1, l2]
    • - *
    • the end point of the line segment [l1, l2] that is closest to p, otherwise
    • - *
    - * @param {number} pointX the x coordinate of p - * @param {number} pointY the y coordinate of p - * @param {number} lineX1 the x coordinate of l1 - * @param {number} lineY1 the y coordinate of l1 - * @param {number} lineX2 the x coordinate of l2 - * @param {number} lineY2 the y coordinate of l2 - * @returns {yfiles.algorithms.YPoint} - * @static - */ - static projection(pointX:number,pointY:number,lineX1:number,lineY1:number,lineX2:number,lineY2:number):yfiles.algorithms.YPoint; - /** - * Same as {@link yfiles.algorithms.Geom#orientation orientation(p,q,r) < 0} - * @param {yfiles.algorithms.YPoint} p - * @param {yfiles.algorithms.YPoint} q - * @param {yfiles.algorithms.YPoint} r - * @returns {boolean} - * @static - */ - static rightTurn(p:yfiles.algorithms.YPoint,q:yfiles.algorithms.YPoint,r:yfiles.algorithms.YPoint):boolean; - /** - * Returns +1 if point d lies left of the directed circle through points a, b, and c, 0 if a,b,c and d are cocircular, and - * -1 otherwise. - * @param {yfiles.algorithms.YPoint} a - * @param {yfiles.algorithms.YPoint} b - * @param {yfiles.algorithms.YPoint} c - * @param {yfiles.algorithms.YPoint} d - * @returns {number} - * @static - */ - static sideOfCircle(a:yfiles.algorithms.YPoint,b:yfiles.algorithms.YPoint,c:yfiles.algorithms.YPoint,d:yfiles.algorithms.YPoint):number; - /** - * Converts the given degree value from radian to angular - * @param {number} angrad - * @returns {number} - * @static - */ - static toDegrees(angrad:number):number; - /** - * Converts the given degree value from angular to radian. - * @param {number} angdeg - * @returns {number} - * @static - */ - static toRadians(angdeg:number):number; - static $class:yfiles.lang.Class; - } - /** - * This is an interface for a sequence of instances of LineSegment. - * @interface - * @implements {yfiles.algorithms.ICursor} - */ - export interface ILineSegmentCursor extends Object,yfiles.algorithms.ICursor{ - /** - * Gets the instance of LineSegment the cursor is currently pointing on. - * @abstract - * @type {yfiles.algorithms.LineSegment} - */ - lineSegment:yfiles.algorithms.LineSegment; - } - var ILineSegmentCursor:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * This interface describes a 2-dimensional object which has a finite bounding box. - * @interface - */ - export interface IPlaneObject extends Object{ - /** - * Gets the smallest Rectangle which contains the object. - * @abstract - * @type {yfiles.algorithms.YRectangle} - */ - boundingBox:yfiles.algorithms.YRectangle; - } - var IPlaneObject:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * This is an interface for a sequence of instances of YPoint. - * @interface - * @implements {yfiles.algorithms.ICursor} - */ - export interface IPointCursor extends Object,yfiles.algorithms.ICursor{ - /** - * Gets the instance of YPoint the cursor is currently pointing on. - * @abstract - * @type {yfiles.algorithms.YPoint} - */ - point:yfiles.algorithms.YPoint; - } - var IPointCursor:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * Double-precision immutable insets representation. - * @class yfiles.algorithms.Insets - * @implements {yfiles.lang.ICloneable} - */ - export interface Insets extends Object,yfiles.lang.ICloneable{} - export class Insets { - /** - * Creates a new instance with the given values - * @param {number} top The new top inset value - * @param {number} left The new left inset value - * @param {number} bottom The new bottom inset value - * @param {number} right The new right inset value - * @constructor - */ - constructor(top:number,left:number,bottom:number,right:number); - /** - * - * @returns {Object} - */ - clone():Object; - /** - * Creates a {@link yfiles.geometry.Insets} from a given {@link yfiles.algorithms.Insets}. - * @returns {yfiles.geometry.Insets} The {@link yfiles.geometry.Insets}. - */ - toInsets():yfiles.geometry.Insets; - /** - * The inset from the top. - * @const - * @type {number} - */ - top:number; - /** - * The inset from the left. - * @const - * @type {number} - */ - left:number; - /** - * The inset from the bottom. - * @const - * @type {number} - */ - bottom:number; - /** - * The inset from the right. - * @const - * @type {number} - */ - right:number; - static $class:yfiles.lang.Class; - } - /** - * An instance of this interface handles intersections found by the IntersectionAlgorithm, - * @interface - */ - export interface IIntersectionHandler extends Object{ - /** - * This method is called at every intersection. - * @param {Object} a - * @param {Object} b - * @abstract - */ - checkIntersection(a:Object,b:Object):void; - } - var IIntersectionHandler:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * This class calculates the intersection of rectangles in the plane with the help of a sweep-line algorithm. - *

    - *
    The complexity is O(n log n + s) where n is the number of rectangles and s the number of intersections. - *

    - * @class yfiles.algorithms.IntersectionAlgorithm - * @static - */ - export interface IntersectionAlgorithm extends Object{} - export class IntersectionAlgorithm { - /** - * Calculates the intersections of rectangles in the plane. - *

    - * Every found intersection is reported to an - * IntersectionHandler. Rectangles with negative size are completely ignored by this implementation (i.e. never generate - * intersections) - *

    - * @param {yfiles.algorithms.YList} objects a list of PlaneObject objects. - * @param {yfiles.algorithms.IIntersectionHandler} iHandler intersections are reported to this class. - * @static - */ - static intersect(objects:yfiles.algorithms.YList,iHandler:yfiles.algorithms.IIntersectionHandler):void; - static $class:yfiles.lang.Class; - } - /** - * This class represents a line segment in the plane. - *

    - * A line segment is defined by its two end points. - *

    - * @class yfiles.algorithms.LineSegment - * @implements {yfiles.algorithms.IPlaneObject} - */ - export interface LineSegment extends Object,yfiles.algorithms.IPlaneObject{} - export class LineSegment { - /** - * Returns a new LineSegment. - * @param {yfiles.algorithms.YPoint} p1 the first end point of the line segment. - * @param {yfiles.algorithms.YPoint} p2 the second end point of the line segment. - * @constructor - */ - constructor(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint); - /** - * Checks whether a line segment intersects a paraxial box. - *

    - * Implemented using the Cohen-Sutherland algorithm. - *

    - * @param {number} boxX1 x-coordinate of the upper left corner of the box - * @param {number} boxY1 y-coordinate of the upper left corner of the box - * @param {number} boxX2 x-coordinate of the lower right corner of the box - * @param {number} boxY2 y-coordinate of the lower right corner of the box - * @param {number} sX1 x-coordinate of the first end point of the line segment - * @param {number} sY1 y-coordinate of the first end point of the line segment - * @param {number} sX2 x-coordinate of the second end point of the line segment - * @param {number} sY2 y-coordinate of the second end point of the line segment - * @returns {boolean} true if the line segment intersects the box, false otherwise. - * @static - */ - static boxIntersectsSegment(boxX1:number,boxY1:number,boxX2:number,boxY2:number,sX1:number,sY1:number,sX2:number,sY2:number):boolean; - /** - * Checks whether a line segment intersects a box. - *

    - * Implemented using the Cohen-Sutherland algorithm. - *

    - * @param {yfiles.algorithms.YRectangle} box A rectangle - * @param {number} x1 x-coordinate of the first end point of the line segment - * @param {number} y1 y-coordinate of the first end point of the line segment - * @param {number} x2 x-coordinate of the second end point of the line segment - * @param {number} y2 y-coordinate of the second end point of the line segment - * @returns {boolean} true if the line segment intersects the box, false otherwise. - * @static - */ - static boxIntersectsSegment(box:yfiles.algorithms.YRectangle,x1:number,y1:number,x2:number,y2:number):boolean; - /** - * Checks whether a line segment intersects a box. - * @param {yfiles.algorithms.YRectangle} box A rectangle. - * @param {yfiles.algorithms.YPoint} s first end point of the line segment. - * @param {yfiles.algorithms.YPoint} t second end point of the line segment. - * @returns {boolean} true if the line segments intersects the box, false otherwise. - * @static - */ - static boxIntersectsSegment(box:yfiles.algorithms.YRectangle,s:yfiles.algorithms.YPoint,t:yfiles.algorithms.YPoint):boolean; - /** - * Checks whether a given point lies on this line segment. - * @param {yfiles.algorithms.YPoint} point an arbitrary point. - * @returns {boolean} true if the line segments intersects the box, false otherwise. - */ - contains(point:yfiles.algorithms.YPoint):boolean; - /** - * Returns intersection point between the two line segments, if there is one or null if the two line segments do not - * intersect. - * @param {yfiles.algorithms.LineSegment} s1 first line segment - * @param {yfiles.algorithms.LineSegment} s2 second line segment - * @returns {yfiles.algorithms.YPoint} - * @static - */ - static getIntersection(s1:yfiles.algorithms.LineSegment,s2:yfiles.algorithms.LineSegment):yfiles.algorithms.YPoint; - /** - * Checks whether the line segment intersects a point. - * @param {yfiles.algorithms.YPoint} p a point - * @returns {boolean} true if the line segments intersects the given point, false otherwise. - */ - intersects(p:yfiles.algorithms.YPoint):boolean; - /** - * Checks whether the line segment intersects a box. - * @param {yfiles.algorithms.YRectangle} box A rectangle. - * @returns {boolean} true if the line segments intersects the box, false otherwise. - */ - intersects(box:yfiles.algorithms.YRectangle):boolean; - /** - * Determines if the given points define a horizontal line segment. - *

    - * This methods allows for y-coordinate differences of up to 1e-8. - *

    - * @param {yfiles.algorithms.YPoint} p1 - * @param {yfiles.algorithms.YPoint} p2 - * @returns {boolean} true if the given points define a horizontal line segment; false otherwise. - * @static - */ - static isHorizontalSegment(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):boolean; - /** - * Returns if the projection on the X axis of the line segment covers a certain point on the X Axis. - * @param {number} x - * @returns {boolean} - */ - isInXIntervall(x:number):boolean; - /** - * Returns if the projection on the Y axis of the line segment covers a certain point on the Y Axis. - * @param {number} y - * @returns {boolean} - */ - isInYIntervall(y:number):boolean; - /** - * Determines if the given points define a vertical line segment. - *

    - * This methods allows for x-coordinate differences of up to 1e-8. - *

    - * @param {yfiles.algorithms.YPoint} p1 - * @param {yfiles.algorithms.YPoint} p2 - * @returns {boolean} true if the given points define a vertical line segment; false otherwise. - * @static - */ - static isVerticalSegment(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):boolean; - /** - * Returns the length of the line segment, this is the value of the Euclidean norm. - * @returns {number} an value > 0. - */ - length():number; - /** - * Returns the affine line defined by the end points of the line segment. - * @returns {yfiles.algorithms.AffineLine} - */ - toAffineLine():yfiles.algorithms.AffineLine; - /** - * Returns the vector pointing from the first end point to the second end point of the line segment. - * @returns {yfiles.algorithms.YVector} - */ - toYVector():yfiles.algorithms.YVector; - /** - * Gets if this segment is considered vertical, i.e. - *

    - * the x values of the end point differ less then 0.00000001 - *

    - * @type {boolean} - */ - isVertical:boolean; - /** - * Gets if the interval is horizontal. - * @type {boolean} - */ - isHorizontal:boolean; - /** - * Gets the first end point of the line segment. - * @type {yfiles.algorithms.YPoint} - */ - firstEndPoint:yfiles.algorithms.YPoint; - /** - * Gets the second end point of the line segment. - * @type {yfiles.algorithms.YPoint} - */ - secondEndPoint:yfiles.algorithms.YPoint; - /** - * Gets the y value of the line on x coordinate 0. - * @type {number} - */ - xOffset:number; - /** - * Gets the slope of the line segment. - * @type {number} - */ - slope:number; - /** - * Gets the smallest Rectangle which contains the object. - * @type {yfiles.algorithms.YRectangle} - */ - boundingBox:yfiles.algorithms.YRectangle; - /** - * Gets the distance from start to end point in x-coordinates. - * @type {number} - */ - deltaX:number; - /** - * Gets the distance from start to end point in y-coordinates. - * @type {number} - */ - deltaY:number; - static $class:yfiles.lang.Class; - } - /** - * Represents a two-dimensional point located at (x, y). - * @class yfiles.algorithms.Point2D - * @implements {yfiles.lang.ICloneable} - */ - export interface Point2D extends Object,yfiles.lang.ICloneable{} - export class Point2D { - /** - * Creates a new instance at the given location. - * @param {number} x The x coordinate of the new point - * @param {number} y The x coordinate of the new point - * @constructor - */ - constructor(x:number,y:number); - /** - * Creates a new instance that is located at (0, 0) - * @constructor - */ - constructor(); - /** - * Creates a new instance of this class that has the same values as this objects. - * @returns {Object} a new instance of this class that has the same values as this objects. - */ - clone():Object; - /** - * Calculates the distance between this points and another one, given as its coordinates. - * @param {number} px The x coordinate of the second point. - * @param {number} py The y coordinate of the second point. - * @returns {number} the distance between this points and another one, given as its coordinates. - */ - distance(px:number,py:number):number; - /** - * Calculates the distance between this points and another one. - * @param {yfiles.algorithms.Point2D} p The second point. - * @returns {number} the distance between this points and another one. - */ - distance(p:yfiles.algorithms.Point2D):number; - /** - * Calculates the distance between two points, given as their coordinates. - * @param {number} x1 The x coordinate of the first point. - * @param {number} y1 The y coordinate of the first point. - * @param {number} x2 The x coordinate of the second point. - * @param {number} y2 The y coordinate of the second point. - * @returns {number} the distance between two points, given as their coordinates. - * @static - */ - static distance(x1:number,y1:number,x2:number,y2:number):number; - /** - * Calculates the squared distance between this points and another one, given as its coordinates. - * @param {number} px The x coordinate of the second point. - * @param {number} py The y coordinate of the second point. - * @returns {number} the squared distance between this points and another one, given as its coordinates. - */ - distanceSq(px:number,py:number):number; - /** - * Calculates the squared distance between this points and another one. - * @param {yfiles.algorithms.Point2D} p The second point. - * @returns {number} the squared distance between this points and another one. - */ - distanceSq(p:yfiles.algorithms.Point2D):number; - /** - * Calculates the squared distance between two points, given as their coordinates. - * @param {number} x1 The x coordinate of the first point. - * @param {number} y1 The y coordinate of the first point. - * @param {number} x2 The x coordinate of the second point. - * @param {number} y2 The y coordinate of the second point. - * @returns {number} the squared distance between two points, given as their coordinates. - * @static - */ - static distanceSq(x1:number,y1:number,x2:number,y2:number):number; - /** - * Sets the location of this point to the given coordinates. - * @param {number} x the new x coordinate - * @param {number} y the new y coordinate - */ - setLocation(x:number,y:number):void; - /** - * Creates a {@link yfiles.geometry.Point} from a given {@link yfiles.algorithms.Point2D}. - * @returns {yfiles.geometry.Point} The {@link yfiles.geometry.Point}. - */ - toPoint():yfiles.geometry.Point; - /** - * Sets the location of this point to the same values as for the given point. - * @type {yfiles.algorithms.Point2D} - */ - location:yfiles.algorithms.Point2D; - /** - * Gets the x coordinate of this point. - * @type {number} - */ - x:number; - /** - * Gets the y coordinate of this point. - * @type {number} - */ - y:number; - static $class:yfiles.lang.Class; - } - /** - * Represents a two-dimensional rectangle of size (width x height), located at the point (x, y). - * @class yfiles.algorithms.Rectangle2D - * @implements {yfiles.lang.ICloneable} - */ - export interface Rectangle2D extends Object,yfiles.lang.ICloneable{} - export class Rectangle2D { - /** - * Creates a new rectangle of the specified size at the specified location. - * @param {number} x the x-coordinate of the upper left corner of the created rectangle. - * @param {number} y the y-coordinate of the upper left corner of the created rectangle. - * @param {number} width the width of the created rectangle. - * @param {number} height the height of the created rectangle. - * @constructor - */ - constructor(x:number,y:number,width:number,height:number); - /** - * Creates a new rectangle of size (0 x 0) at the location (0, 0). - * @constructor - */ - constructor(); - /** - * Adds a point, specified by its coordinates, to this rectangle. - *

    - * The rectangle will be grown if necessary. Note that for points that would lie on the right or bottom border of the - * rectangle, {@link yfiles.algorithms.Rectangle2D#contains} will still return false for the added point. - *

    - * @param {number} px the x coordinate of the point to add - * @param {number} py the y coordinate of the point to add - */ - add(px:number,py:number):void; - /** - * Adds a rectangle to this rectangle. - *

    - * The rectangle will be grown to the union of both rectangles - *

    - * @param {yfiles.algorithms.Rectangle2D} r the rectangle to add - */ - add(r:yfiles.algorithms.Rectangle2D):void; - /** - * Creates a new instance of this class that has the same values as this objects. - * @returns {Object} a new instance of this class that has the same values as this objects. - */ - clone():Object; - /** - * Checks whether this rectangle completely contains the second specified rectangle. - * @param {number} x the x coordinate of the second rectangle. - * @param {number} y the y coordinate of the second rectangle. - * @param {number} width the width coordinate of the second rectangle. - * @param {number} height the height coordinate of the second rectangle. - * @returns {boolean} true if this rectangle contains the second one - */ - contains(x:number,y:number,width:number,height:number):boolean; - /** - * Checks if the point specified by the given coordinates is contained in this rectangle. - * @param {number} x the x-coordinate of the point. - * @param {number} y the y-coordinate of the point. - * @returns {boolean} true if the specified point is contained in this rectangle; false otherwise. - */ - contains(x:number,y:number):boolean; - /** - * Checks whether this rectangle completely contains the second specified rectangle. - * @param {yfiles.algorithms.Rectangle2D} rect the rectangle to check for containment - * @returns {boolean} true if this rectangle contains the second one - */ - contains(rect:yfiles.algorithms.Rectangle2D):boolean; - /** - * Calculates the intersection of this rectangle with the given rectangle and returns the result as new rectangle. - * @param {yfiles.algorithms.Rectangle2D} r a rectangle to intersect with this rectangle. - * @returns {yfiles.algorithms.Rectangle2D} a new rectangle that represents the calculated intersection. - */ - createIntersection(r:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; - /** - * Calculates the union of this rectangle with the given rectangle and returns the result as new rectangle. - * @param {yfiles.algorithms.Rectangle2D} r a rectangle to union with this rectangle. - * @returns {yfiles.algorithms.Rectangle2D} a new rectangle that represents the calculated union. - */ - createUnion(r:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; - /** - * Calculates the intersection of the first and second specified rectangle and sets the resulting location and size to the - * third rectangle. - * @param {yfiles.algorithms.Rectangle2D} src1 the first rectangle to intersect. - * @param {yfiles.algorithms.Rectangle2D} src2 the second rectangle to intersect. - * @param {yfiles.algorithms.Rectangle2D} dst the rectangle to which the result is set. - * @static - */ - static intersect(src1:yfiles.algorithms.Rectangle2D,src2:yfiles.algorithms.Rectangle2D,dst:yfiles.algorithms.Rectangle2D):void; - /** - * Checks whether this rectangle and the second specified rectangle intersect. - * @param {number} x the x coordinate of the second rectangle. - * @param {number} y the y coordinate of the second rectangle. - * @param {number} width the width coordinate of the second rectangle. - * @param {number} height the height coordinate of the second rectangle. - * @returns {boolean} true if both rectangles intersect - */ - intersects(x:number,y:number,width:number,height:number):boolean; - /** - * Checks whether this rectangle and the second specified rectangle intersect. - * @param {yfiles.algorithms.Rectangle2D} rect the rectangle to check for intersection - * @returns {boolean} true if both rectangles intersect - */ - intersects(rect:yfiles.algorithms.Rectangle2D):boolean; - /** - * Checks if the line segment specified by the given coordinates intersects this rectangle. - * @param {number} x1 the x-coordinate of the first end point of the line. - * @param {number} y1 the y-coordinate of the first end point of the line. - * @param {number} x2 the x-coordinate of the other end point of the line. - * @param {number} y2 the y-coordinate of the other end point of the line. - * @returns {boolean} true if the specified line intersects this rectangle; false otherwise. - */ - intersectsLine(x1:number,y1:number,x2:number,y2:number):boolean; - /** - * Sets the outer bounds of this rectangle based on the specified location and size. - * @param {number} x the new x-coordinate of the upper left corner. - * @param {number} y the new y-coordinate of the upper left corner. - * @param {number} width the new width. - * @param {number} height the new height. - */ - setFrame(x:number,y:number,width:number,height:number):void; - /** - * Sets the outer bounds of this rectangle based on the specified new center and corner. - * @param {number} centerX the x-coordinate of the new center of this rectangle. - * @param {number} centerY the y-coordinate of the new center of this rectangle. - * @param {number} cornerX the x-coordinate of any new corner of this rectangle. - * @param {number} cornerY the y-coordinate of any new corner of this rectangle. - */ - setFrameFromCenter(centerX:number,centerY:number,cornerX:number,cornerY:number):void; - /** - * Sets the outer bounds of this rectangle based on the specified new center and corner. - * @param {yfiles.algorithms.Point2D} center the new center of this rectangle. - * @param {yfiles.algorithms.Point2D} corner any new corner of this rectangle. - */ - setFrameFromCenter(center:yfiles.algorithms.Point2D,corner:yfiles.algorithms.Point2D):void; - /** - * Sets the outer bounds of this rectangle based on the end points of one of its diagonals. - * @param {number} x1 the x-coordinate of the first end point of a diagonal. - * @param {number} y1 the y-coordinate of the first end point of a diagonal. - * @param {number} x2 the x-coordinate of the other end point of a diagonal. - * @param {number} y2 the y-coordinate of the other end point of a diagonal. - */ - setFrameFromDiagonal(x1:number,y1:number,x2:number,y2:number):void; - /** - * Sets the outer bounds of this rectangle based on the end points of one of its diagonals. - * @param {yfiles.algorithms.Point2D} p1 the first end point of a diagonal. - * @param {yfiles.algorithms.Point2D} p2 the other end point of a diagonal. - */ - setFrameFromDiagonal(p1:yfiles.algorithms.Point2D,p2:yfiles.algorithms.Point2D):void; - /** - * Sets the location and size of this rectangle to the specified values. - * @param {number} x the new x-coordinate of the upper left corner. - * @param {number} y the new y-coordinate of the upper left corner. - * @param {number} width the new width. - * @param {number} height the new height. - */ - setRect(x:number,y:number,width:number,height:number):void; - /** - * Creates a {@link yfiles.geometry.Rect} from a given {@link yfiles.algorithms.Rectangle2D}. - * @returns {yfiles.geometry.Rect} The {@link yfiles.geometry.Rect}. - */ - toRect():yfiles.geometry.Rect; - /** - * Calculates the union of the first and second specified rectangle and sets the resulting location and size to the third - * rectangle. - * @param {yfiles.algorithms.Rectangle2D} src1 the first rectangle to union. - * @param {yfiles.algorithms.Rectangle2D} src2 the second rectangle to union. - * @param {yfiles.algorithms.Rectangle2D} dst the rectangle to which the result is set. - * @static - */ - static union(src1:yfiles.algorithms.Rectangle2D,src2:yfiles.algorithms.Rectangle2D,dst:yfiles.algorithms.Rectangle2D):void; - /** - * Gets or sets the outer bounds of this rectangle in double coordinates. - * @type {yfiles.algorithms.Rectangle2D} - */ - frame:yfiles.algorithms.Rectangle2D; - /** - * Sets the location and size of this rectangle to be similar to the specified rectangle. - * @type {yfiles.algorithms.Rectangle2D} - */ - rect:yfiles.algorithms.Rectangle2D; - /** - * Gets the x coordinate of the upper left corner. - * @type {number} - */ - x:number; - /** - * Gets the y coordinate of the upper left corner. - * @type {number} - */ - y:number; - /** - * Gets the width of this rectangle. - * @type {number} - */ - width:number; - /** - * Gets the height of this rectangle. - * @type {number} - */ - height:number; - /** - * Gets whether this instance is empty, i.e. - *

    - * covers no area. - *

    - * @type {boolean} - */ - empty:boolean; - /** - * Gets the smallest x coordinate of this rectangle. - * @type {number} - */ - minX:number; - /** - * Gets the smallest y coordinate of this rectangle. - * @type {number} - */ - minY:number; - /** - * Gets the largest x coordinate of this rectangle. - * @type {number} - */ - maxX:number; - /** - * Gets the largest y coordinate of this rectangle. - * @type {number} - */ - maxY:number; - /** - * Gets the x coordinate of the center point of this rectangle. - * @type {number} - */ - centerX:number; - /** - * Gets the y coordinate of the center point of this rectangle. - * @type {number} - */ - centerY:number; - /** - * Gets the bounds of this instance in double precision. - * @type {yfiles.algorithms.Rectangle2D} - */ - bounds2D:yfiles.algorithms.Rectangle2D; - static $class:yfiles.lang.Class; - } - /** - * This class provides algorithms for the triangulation of point sets in the plane. - * @class yfiles.algorithms.Triangulator - * @static - */ - export interface Triangulator extends Object{} - export class Triangulator { - /** - * Computes a Delauney triangulation of the given points. - *

    - * A Delauney triangulation is a triangulation such that none of the given points is inside the circumcircle of any of the - * calculated triangles. - *

    - *

    - * The calculated triangulation is represented by an embedded graph, i.e. to each edge there exists a reverse edge and the - * outedges around each node are in embedded order. The returned edge and the (optional) reverseEdgeMap can be used to - * construct all faces of the plane graph and to determine its outer face. - *

    - * @param {yfiles.algorithms.Graph} result a graph whose nodes represent the points that need to be triangulated. - * @param {yfiles.algorithms.IDataProvider} pointData must provide the location (YPoint) for each node in the given graph. - * @param {yfiles.algorithms.IEdgeMap} revMap a node map that will contain for each edge its reverse edge. If this argument is null then no reverse edge information - * will be available. - * @returns {yfiles.algorithms.Edge} an edge on the outer face of the result graph. - * @static - */ - static calcDelauneyTriangulation(result:yfiles.algorithms.Graph,pointData:yfiles.algorithms.IDataProvider,revMap:yfiles.algorithms.IEdgeMap):yfiles.algorithms.Edge; - /** - * Computes a triangulation of the given points. - *

    - * The calculated triangulation is represented by an embedded graph, i.e. to each edge there exists a reverse edge and the - * outedges around each node are in embedded order. The returned edge and the (optional) reverseEdgeMap can be used to - * construct all faces of the plane graph and to determine its outer face. - *

    - * @param {yfiles.algorithms.YList} points the point set to be triangulated. The points must be provided as a YList of YPoints. - * @param {yfiles.algorithms.Graph} result the resulting triangulation - * @param {yfiles.algorithms.INodeMap} resultMap the node map that forms the link between a point and a node. - * @param {yfiles.algorithms.IEdgeMap} reverseEdgeMap a node map that will contain for each edge its reverse edge. If this argument is null then no reverse edge information - * will be available. - * @returns {yfiles.algorithms.Edge} an edge on the outer face of the result graph. - * @static - */ - static triangulatePoints(points:yfiles.algorithms.YList,result:yfiles.algorithms.Graph,resultMap:yfiles.algorithms.INodeMap,reverseEdgeMap:yfiles.algorithms.IEdgeMap):yfiles.algorithms.Edge; - /** - * Computes a triangulation of the given points. - *

    - * The calculated triangulation is represented by an embedded graph, i.e. to each edge there exists a reverse edge and the - * outedges around each node are in embedded order. The returned edge and the (optional) reverseEdgeMap can be used to - * construct all faces of the plane graph and to determine its outer face. - *

    - * @param {yfiles.algorithms.Graph} result a graph whose nodes represent the points that need to be triangulated. - * @param {yfiles.algorithms.IDataProvider} pointData must provide the location (YPoint) for each node in the given graph. - * @param {yfiles.algorithms.IEdgeMap} reverseEdgeMap a node map that will contain for each edge its reverse edge. If this argument is null then no reverse edge information - * will be available. - * @returns {yfiles.algorithms.Edge} an edge on the outer face of the result graph. - * @static - */ - static triangulatePoints(result:yfiles.algorithms.Graph,pointData:yfiles.algorithms.IDataProvider,reverseEdgeMap:yfiles.algorithms.IEdgeMap):yfiles.algorithms.Edge; - static $class:yfiles.lang.Class; - } - /** - * This class represents the size of an object. - *

    - * An instance of this class implements the immutable design pattern. - *

    - * @class yfiles.algorithms.YDimension - * @implements {yfiles.lang.IComparable} - */ - export interface YDimension extends Object,yfiles.lang.IComparable{} - export class YDimension { - /** - * Creates a new YDimension2D object for given size. - * @param {number} width - * @param {number} height - * @constructor - */ - constructor(width:number,height:number); - /** - * - * @param {Object} o - * @returns {number} - */ - compareTo(o:Object):number; - /** - * Creates a {@link yfiles.geometry.Size} from a given {@link yfiles.algorithms.YDimension}. - * @returns {yfiles.geometry.Size} The {@link yfiles.geometry.Size}. - */ - toSize():yfiles.geometry.Size; - /** - * Gets the width of the dimension object. - * @type {number} - */ - width:number; - /** - * Gets the height of the dimension object. - * @type {number} - */ - height:number; - static $class:yfiles.lang.Class; - } - /** - * An oriented rectangle in 2D coordinate space with double precision coordinates. - *

    - * The rectangle's height extends from its {@link yfiles.algorithms.YOrientedRectangle#anchor anchor point} in the direction of its up - * vector ({@link yfiles.algorithms.YOrientedRectangle#upX ux}, {@link yfiles.algorithms.YOrientedRectangle#upY uy}). Its width extends from its {@link yfiles.algorithms.YOrientedRectangle#anchor anchor point} in - * direction (-uy, ux) (i.e. perpendicular to the up vector). This means that an oriented rectangle with anchor point (0, 0) width - * 100, height 10, and up vector (0, -1) is a paraxial rectangle with upper left corner (0, -10) and lower right corner - * (100, 0). - *

    - * @class yfiles.algorithms.YOrientedRectangle - * @implements {yfiles.algorithms.IPlaneObject} - */ - export interface YOrientedRectangle extends Object,yfiles.algorithms.IPlaneObject{} - export class YOrientedRectangle { - /** - * Creates a new instance using the provided rectangle's values to initialize anchor, size, and up vector. - * @param {yfiles.algorithms.YOrientedRectangle} rect the provided rectangle. - * @constructor - */ - constructor(rect:yfiles.algorithms.YOrientedRectangle); - /** - * Creates a new instance using the provided rectangle's values to initialize anchor and size. - *

    - * The oriented rectangle's up vector will be (0, -1). - *

    - * @param {yfiles.algorithms.YRectangle} rect the provided rectangle. - * @constructor - */ - constructor(rect:yfiles.algorithms.YRectangle); - /** - * Creates a new instance using the provided values to initialize anchor, size, and up vector. - * @param {number} anchorX The x coordinate of the anchor of the oriented rectangle. - * @param {number} anchorY The y coordinate of the anchor of the oriented rectangle. - * @param {number} width The width of the rectangle. - * @param {number} height The height of the rectangle. - * @param {number} upX The x component of the up vector. - * @param {number} upY The y component of the up vector. - * @constructor - */ - constructor(anchorX:number,anchorY:number,width:number,height:number,upX:number,upY:number); - /** - * Creates a new instance using the provided values to initialize anchor and size. - *

    - * The oriented rectangle's up vector will be (0, -1). - *

    - * @param {number} anchorX The x coordinate of the anchor of the oriented rectangle. - * @param {number} anchorY The y coordinate of the anchor of the oriented rectangle. - * @param {number} width The width of the rectangle. - * @param {number} height The height of the rectangle. - * @constructor - */ - constructor(anchorX:number,anchorY:number,width:number,height:number); - /** - * Creates a new instance using the provided values to initialize anchor, size, and up vector. - * @param {yfiles.algorithms.YPoint} position The provider for the dynamic anchor of this instance. - * @param {yfiles.algorithms.YDimension} size The provider for the dynamic size of this instance. - * @param {yfiles.algorithms.YVector} upVector The up vector. - * @constructor - */ - constructor(position:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,upVector:yfiles.algorithms.YVector); - /** - * Creates a new instance using the provided values to initialize the anchor and size. - *

    - * The oriented rectangle's up vector will be (0, -1). - *

    - * @param {yfiles.algorithms.YPoint} anchor The provider for the dynamic anchor of this instance. - * @param {yfiles.algorithms.YDimension} size The provider for the dynamic size of this instance. - * @constructor - */ - constructor(anchor:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension); - /** - * Copies the actual values from the given OrientedRectangle to this instance. - * @param {yfiles.algorithms.YOrientedRectangle} other the OrientedRectangle to retrieve the values from - */ - adoptValues(other:yfiles.algorithms.YOrientedRectangle):void; - /** - * Determines the four corner points of an oriented rectangle. - * @param {yfiles.algorithms.YOrientedRectangle} rect The rectangle to determine the bounds. - * @returns {Array.} the array of corner points. - * @static - */ - static calcPoints(rect:yfiles.algorithms.YOrientedRectangle):yfiles.algorithms.YPoint[]; - /** - * Determines the coordinates of the four corners of an oriented rectangle. - * @param {yfiles.algorithms.YOrientedRectangle} rect The rectangle to determine the bounds. - * @returns {Array.} the array of coordinates of the corner points in which each even index has the x-coordinate and each odd index the - * y-coordinate - * @static - */ - static calcPointsInDouble(rect:yfiles.algorithms.YOrientedRectangle):number[]; - /** - * Determines whether or not the specified point lies inside this oriented rectangle. - * @param {number} x the x-coordinate of the point to check. - * @param {number} y the y-coordinate of the point to check. - * @param {boolean} [closed=false] if true, all points on the border of the rectangle are considered to be contained. - * @returns {boolean} true iff the specified point lies inside; false otherwise. - */ - contains(x:number,y:number,closed?:boolean):boolean; - /** - * Determines whether the given rectangle r1 contains rectangle r2, using an epsilon value. - * @param {yfiles.algorithms.YOrientedRectangle} r1 The first rectangle. - * @param {yfiles.algorithms.YOrientedRectangle} r2 The second rectangle. - * @param {number} eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than - * or equal to that value, it will be considered a hit. - * @returns {boolean} true iff the r1 contains r2. - * @static - */ - static contains(r1:yfiles.algorithms.YOrientedRectangle,r2:yfiles.algorithms.YOrientedRectangle,eps:number):boolean; - /** - * Determines whether the given oriented rectangle contains the provided point, using an epsilon value. - * @param {yfiles.algorithms.YOrientedRectangle} rect The rectangle. - * @param {yfiles.algorithms.YPoint} p The point to test. - * @param {number} eps fuzziness range. A positive value allows for fuzzy hit testing. If a point lies outside the given rectangle, but its - * distance is less than or equal to that value, it will be considered a hit. - * @returns {boolean} true if the point lies inside the rectangle; false otherwise. - * @static - */ - static contains(rect:yfiles.algorithms.YOrientedRectangle,p:yfiles.algorithms.YPoint,eps:number):boolean; - /** - * Determines whether the given oriented rectangle contains the provided point, using an epsilon value. - * @param {yfiles.algorithms.YOrientedRectangle} rect The rectangle. - * @param {number} x x-coordinate of the point to test. - * @param {number} y y-coordinate of the point to test. - * @param {number} eps fuzziness range. A positive value allows for fuzzy hit testing. If a point lies outside the given rectangle, but its - * distance is less than or equal to that value, it will be considered a hit. - * @returns {boolean} true if the point lies inside the rectangle; false otherwise. - * @static - */ - static contains(rect:yfiles.algorithms.YOrientedRectangle,x:number,y:number,eps:number):boolean; - /** - * Creates a new OrientedRectangle instance whose anchor point is moved by the specified distance values, but has the same - * width, height, and up vector as this rectangle. - * @param {number} dx the distance to move the anchor point in x-direction. A positive value means "move" to the right, a negative value means - * "move" to the left. - * @param {number} dy the distance to move the anchor point in y-direction. A positive value means "move" downwards, a negative value means - * "move" upwards. - * @returns {yfiles.algorithms.YOrientedRectangle} a new OrientedRectangle instance whose anchor point is moved by the specified distance values. - */ - getMovedInstance(dx:number,dy:number):yfiles.algorithms.YOrientedRectangle; - /** - * Creates a new OrientedRectangle instance that has the specified width and height, but has the same anchor point and up - * vector as this rectangle. - * @param {number} width the width of the new rectangle. - * @param {number} height the height of the new rectangle. - * @returns {yfiles.algorithms.YOrientedRectangle} a new OrientedRectangle instance that has the specified width and height. - */ - getResizedInstance(width:number,height:number):yfiles.algorithms.YOrientedRectangle; - /** - * Determines an intersection point of the specified oriented rectangle and the specified line segment. - *

    - * Note: there might be more than one intersection point. However this method only returns one intersection point or null - * if there is no intersection. - *

    - * @param {yfiles.algorithms.YOrientedRectangle} rect - * @param {yfiles.algorithms.LineSegment} line - * @param {number} eps - * @returns {yfiles.algorithms.YPoint} an intersection point of the specified oriented rectangle and the specified line segment or null if the rectangle and - * the segment do not intersect. - * @static - */ - static intersectionPoint(rect:yfiles.algorithms.YOrientedRectangle,line:yfiles.algorithms.LineSegment,eps:number):yfiles.algorithms.YPoint; - /** - * Determines whether or not the specified oriented rectangle and the specified line segment intersect. - * @param {yfiles.algorithms.YOrientedRectangle} rect - * @param {yfiles.algorithms.LineSegment} line - * @param {number} eps - * @returns {boolean} true if the rectangle and the segment intersect and false otherwise. - * @static - */ - static intersects(rect:yfiles.algorithms.YOrientedRectangle,line:yfiles.algorithms.LineSegment,eps:number):boolean; - /** - * Determines whether a rectangle intersects an oriented rectangle, given an epsilon. - * @param {yfiles.algorithms.YOrientedRectangle} orientedRectangle The oriented rectangle to test. - * @param {yfiles.algorithms.YRectangle} rectangle The rectangle to test. - * @param {number} eps A positive value allows for fuzzy hit testing. If the point lies outside the given object but it's distance is less than - * or equal to that value, it will be considered a hit. - * @returns {boolean} Whether they have a non-empty intersection. - * @static - */ - static intersects(orientedRectangle:yfiles.algorithms.YOrientedRectangle,rectangle:yfiles.algorithms.YRectangle,eps:number):boolean; - /** - * Moves this rectangle by applying the offset to the anchor. - * @param {number} dx The x offset to move the rectangle's position by. - * @param {number} dy The y offset to move the rectangle's position by. - */ - moveBy(dx:number,dy:number):void; - /** - * Sets the anchor of this rectangle. - * @param {number} x the new x-coordinate of the anchor point. - * @param {number} y the new y-coordinate of the anchor point. - */ - setAnchor(x:number,y:number):void; - /** - * Sets the anchor of the OrientedRectangle so that the center of the rectangle coincides with the given coordinate pair. - * @param {number} cx The x coordinate of the center. - * @param {number} cy The y coordinate of the center. - */ - setCenter(cx:number,cy:number):void; - /** - * Sets the size of this rectangle. - * @param {number} width the new width. - * @param {number} height the new height. - */ - setSize(width:number,height:number):void; - /** - * Sets the components of the up vector to the new values. - * @param {number} upX The x component of the normalized up vector. - * @param {number} upY The y component of the normalized up vector. - */ - setUpVector(upX:number,upY:number):void; - /** - * Creates an immutable {@link yfiles.geometry.IOrientedRectangle} from a given {@link yfiles.algorithms.YOrientedRectangle}. - * @returns {yfiles.geometry.IOrientedRectangle} The {@link yfiles.geometry.IOrientedRectangle}. - */ - toImmutableOrientedRectangle():yfiles.geometry.IOrientedRectangle; - /** - * Gets whether this instance has negative width or height. - * @type {boolean} - */ - empty:boolean; - /** - * Gets or sets the anchor of this oriented rectangle. - * @type {yfiles.algorithms.YPoint} - */ - anchor:yfiles.algorithms.YPoint; - /** - * Gets the x-coordinate of this rectangle's anchor point. - * @type {number} - */ - anchorX:number; - /** - * Gets the y-coordinate of this rectangle's anchor point. - * @type {number} - */ - anchorY:number; - /** - * Gets or sets the size of this rectangle. - * @type {yfiles.algorithms.YDimension} - */ - size:yfiles.algorithms.YDimension; - /** - * Gets the width of this rectangle. - * @type {number} - */ - width:number; - /** - * Gets the height of this rectangle. - * @type {number} - */ - height:number; - /** - * Gets the x-component of this rectangle's up vector. - * @type {number} - */ - upX:number; - /** - * Gets the y-component of this rectangle's up vector. - * @type {number} - */ - upY:number; - /** - * Gets or sets the angle (measured in radians) of this rectangle. - *

    - * The angle of an oriented rectangle is the angle between the vector (0, -1) and the rectangle's up vector in counter - * clockwise order. An angle of 0 means the up vector points up in direction (0, -1). - *

    - * @type {number} - */ - angle:number; - /** - * Gets or sets the current center of the oriented rectangle. - * @type {yfiles.algorithms.YPoint} - */ - center:yfiles.algorithms.YPoint; - /** - * Calculates the paraxial bounding box of this oriented rectangle. - * @type {yfiles.algorithms.YRectangle} - */ - boundingBox:yfiles.algorithms.YRectangle; - static $class:yfiles.lang.Class; - } - /** - * This class represents a point in the plane with double coordinates. - *

    - * This class implements the immutable design pattern. - *

    - * @class yfiles.algorithms.YPoint - * @implements {yfiles.lang.IComparable} - * @final - */ - export interface YPoint extends Object,yfiles.lang.IComparable{} - export class YPoint { - /** - * Creates a new YPoint object for a given position. - * @param {number} x the x coordinate of the point. - * @param {number} y the y coordinate of the point. - * @constructor - */ - constructor(x:number,y:number); - /** - * Creates a new YPoint at location (0,0) - * @constructor - */ - constructor(); - /** - * Adds two points and returns the result. - * @param {yfiles.algorithms.YPoint} p1 an arbitrary instance of YPoint. - * @param {yfiles.algorithms.YPoint} p2 an arbitrary instance of YPoint. - * @returns {yfiles.algorithms.YPoint} - * @static - */ - static add(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * Comparable implementation. - *

    - * YPoints are ordered by ascending x-coordinates. If the x-coordinates of two points equal, then these points are ordered - * by ascending y-coordinates. - *

    - * @param {Object} o - * @returns {number} - */ - compareTo(o:Object):number; - /** - * Returns the euclidean distance between two points. - * @param {number} x1 x-coordinate of first point - * @param {number} y1 y-coordinate of first point - * @param {number} x2 x-coordinate of second point - * @param {number} y2 y-coordinate of second point - * @returns {number} the euclidean distance between first and second point - * @static - */ - static distance(x1:number,y1:number,x2:number,y2:number):number; - /** - * Returns the euclidean distance between two points. - * @param {yfiles.algorithms.YPoint} p1 an arbitrary point - * @param {yfiles.algorithms.YPoint} p2 an arbitrary point - * @returns {number} the Euclidean distance between p1 and p2. - * @static - */ - static distance(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):number; - /** - * Returns the euclidean distance between this point and a given point. - * @param {number} x the x coordinate of an arbitrary point - * @param {number} y the y coordinate of an arbitrary point - * @returns {number} the Euclidean distance between this point and the point (x,y). - */ - distanceTo(x:number,y:number):number; - /** - * Returns the euclidean distance between this point and a given point. - * @param {yfiles.algorithms.YPoint} p an arbitrary point - * @returns {number} the Euclidean distance between this point and p. - */ - distanceTo(p:yfiles.algorithms.YPoint):number; - /** - * Returns a point that geometrically lies in in the middle of the line formed by the given points. - * @param {yfiles.algorithms.YPoint} p1 an arbitrary instance of YPoint. - * @param {yfiles.algorithms.YPoint} p2 an arbitrary instance of YPoint. - * @returns {yfiles.algorithms.YPoint} - * @static - */ - static midPoint(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * Returns the point, got by moving this point to another position. - * @param {number} x the value which is added on the x-coordinate of the point. - * @param {number} y the value which is added on the y-coordinate of the point. - * @returns {yfiles.algorithms.YPoint} a new instance of YPoint which is the result of the moving operation. - */ - moveBy(x:number,y:number):yfiles.algorithms.YPoint; - /** - * Subtracts two points (p1 - p2) and returns the result. - * @param {yfiles.algorithms.YPoint} p1 an arbitrary instance of YPoint. - * @param {yfiles.algorithms.YPoint} p2 an arbitrary instance of YPoint. - * @returns {yfiles.algorithms.YPoint} - * @static - */ - static subtract(p1:yfiles.algorithms.YPoint,p2:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * Returns a copy of the given point with exchanged x- and y-coordinates. - * @param {yfiles.algorithms.YPoint} p an arbitrary instance of YPoint. - * @returns {yfiles.algorithms.YPoint} - * @static - */ - static swap(p:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * Creates a {@link yfiles.geometry.Point} from a given {@link yfiles.algorithms.YPoint}. - * @returns {yfiles.geometry.Point} The {@link yfiles.geometry.Point}. - */ - toPoint():yfiles.geometry.Point; - /** - * A YPoint constant with coordinates (0,0). - * @const - * @static - * @type {yfiles.algorithms.YPoint} - */ - static ORIGIN:yfiles.algorithms.YPoint; - /** - * Gets the x-coordinate of the point object. - * @type {number} - */ - x:number; - /** - * Gets the y-coordinate of the point object. - * @type {number} - */ - y:number; - static $class:yfiles.lang.Class; - } - /** - * This class represents an ordered list of points in the plane. - * @class yfiles.algorithms.YPointPath - * @final - */ - export interface YPointPath extends Object{} - export class YPointPath { - /** - * Creates a new path from an array of points. - * @param {Array.} path - * @constructor - */ - constructor(path:yfiles.algorithms.YPoint[]); - /** - * Creates a new path from a list of points. - * @param {yfiles.collections.IList.} l a list of {@link yfiles.algorithms.YPoint} instances. - * @constructor - */ - constructor(l:yfiles.collections.IList); - /** - * Creates a new empty path. - * @constructor - */ - constructor(); - /** - * Calculate the (geometric) length of the path. - *

    - * The length of the path is the sum of lengths of all line segments making up the path. - *

    - * @returns {number} the (geometric) length of the path - */ - calculateLength():number; - /** - * Create a point path with reverse ordering of the points. - * @returns {yfiles.algorithms.YPointPath} - */ - createReverse():yfiles.algorithms.YPointPath; - /** - * Get the points in the path. - * @returns {yfiles.algorithms.ICursor} - */ - cursor():yfiles.algorithms.ICursor; - /** - * Returns a line segment in the path. - * @param {number} i - * @returns {yfiles.algorithms.LineSegment} - */ - getLineSegment(i:number):yfiles.algorithms.LineSegment; - /** - * Get the number of points in the path. - * @returns {number} - */ - length():number; - /** - * Get the points in the path. - * @returns {yfiles.algorithms.ILineSegmentCursor} - */ - lineSegments():yfiles.algorithms.ILineSegmentCursor; - /** - * Get the points in the path. - * @returns {yfiles.algorithms.IPointCursor} - */ - points():yfiles.algorithms.IPointCursor; - /** - * Get the points in the list as array. - * @returns {Array.} - */ - toArray():yfiles.algorithms.YPoint[]; - /** - * Get the points in the path as list. - * @returns {yfiles.collections.IList.} a list of {@link yfiles.algorithms.YPoint} instances. - */ - toList():yfiles.collections.IList; - /** - * Defines a path with no points. - * @const - * @static - * @type {yfiles.algorithms.YPointPath} - */ - static EMPTY_PATH:yfiles.algorithms.YPointPath; - /** - * Gets the first point in the path. - * @type {yfiles.algorithms.YPoint} - */ - first:yfiles.algorithms.YPoint; - /** - * Gets the last point in the path. - * @type {yfiles.algorithms.YPoint} - */ - last:yfiles.algorithms.YPoint; - /** - * Gets the number of line segments in the path. - * @type {number} - */ - lineSegmentCount:number; - static $class:yfiles.lang.Class; - } - /** - * This class defines a rectangle and provides utility methods for it. - * @class yfiles.algorithms.YRectangle - * @extends {yfiles.algorithms.YDimension} - * @implements {yfiles.algorithms.IPlaneObject} - */ - export interface YRectangle extends yfiles.algorithms.YDimension,yfiles.algorithms.IPlaneObject{} - export class YRectangle { - /** - * Creates a new rectangle with given upper left corner and size. - * @param {number} x x-coordinate of upper left corner of the rectangle. - * @param {number} y y-coordinate of upper left corner of the rectangle. - * @param {number} width width of the rectangle. - * @param {number} height height of the rectangle. - * @constructor - */ - constructor(x:number,y:number,width:number,height:number); - /** - * Creates a new rectangle with given upper left corner and size. - * @param {yfiles.algorithms.YPoint} pos upper left corner of the rectangle. - * @param {yfiles.algorithms.YDimension} size size of the rectangle. - * @constructor - */ - constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension); - /** - * Creates a new rectangle with upper left corner (0,0) and size (0,0). - * @constructor - */ - constructor(); - /** - * Checks whether or not this YRectangle contains the given rectangle. - * @param {yfiles.algorithms.YRectangle} p - * @returns {boolean} - */ - contains(p:yfiles.algorithms.YRectangle):boolean; - /** - * Checks whether or not this YRectangle contains the given point. - * @param {yfiles.algorithms.YPoint} p - * @returns {boolean} - */ - contains(p:yfiles.algorithms.YPoint):boolean; - /** - * Checks whether or not this YRectangle contains the rectangle defined by the given frame. - * @param {number} x - * @param {number} y - * @param {number} width - * @param {number} height - * @returns {boolean} - */ - contains(x:number,y:number,width:number,height:number):boolean; - /** - * Checks whether or not this YRectangle contains the given point. - * @param {number} x the x-coordinate of the point to check. - * @param {number} y the x-coordinate of the point to check. - * @returns {boolean} true if the point lies inside the rectangle; false otherwise. - */ - contains(x:number,y:number):boolean; - /** - * Determines whether the specified rectangle contains the specified point. - * @param {number} rx the x-coordinate of the upper left corner of the rectangle. - * @param {number} ry the y-coordinate of the upper left corner of the rectangle. - * @param {number} rw the width of the rectangle. - * @param {number} rh the height of the rectangle. - * @param {number} x the x-coordinate of the point to check. - * @param {number} y the x-coordinate of the point to check. - * @param {boolean} [closed=false] if true, all points on the border of the rectangle are considered to be contained. - * @returns {boolean} true if the point lies inside the rectangle; false otherwise. - * @static - */ - static contains(rx:number,ry:number,rw:number,rh:number,x:number,y:number,closed?:boolean):boolean; - /** - * Returns the Euclidean distance to the passed rectangle. - *

    - * If they overlap, the distance is 0. - *

    - * @param {yfiles.algorithms.YRectangle} other the second rectangle. - * @returns {number} the distance to the given rectangle. - */ - getEuclideanDistance(other:yfiles.algorithms.YRectangle):number; - /** - * Returns the Manhattan distance to the passed rectangle. - *

    - * If they overlap the distance is 0. - *

    - * @param {yfiles.algorithms.YRectangle} other the second rectangle. - * @returns {number} the distance to the given rectangle. - */ - getManhattanDistance(other:yfiles.algorithms.YRectangle):number; - /** - * Returns whether or not the given rectangles intersect. - * @param {yfiles.algorithms.YRectangle} r1 - * @param {yfiles.algorithms.YRectangle} r2 - * @returns {boolean} - * @static - */ - static intersects(r1:yfiles.algorithms.YRectangle,r2:yfiles.algorithms.YRectangle):boolean; - /** - * Creates a {@link yfiles.geometry.Rect} from a given {@link yfiles.algorithms.YRectangle}. - * @returns {yfiles.geometry.Rect} The {@link yfiles.geometry.Rect}. - */ - toRect():yfiles.geometry.Rect; - /** - * Gets x-coordinate of upper left corner. - * @type {number} - */ - x:number; - /** - * Gets y-coordinate of upper left corner. - * @type {number} - */ - y:number; - /** - * Gets coordinates of upper left corner. - * @type {yfiles.algorithms.YPoint} - */ - location:yfiles.algorithms.YPoint; - /** - * Gets this object. - * @type {yfiles.algorithms.YRectangle} - */ - boundingBox:yfiles.algorithms.YRectangle; - static $class:yfiles.lang.Class; - } - /** - * This class represents a vector in the 2-dimensional real vector space. - *

    - * This vector is an ordered 2 tuple and is defined by two doubles. - *

    - * @class yfiles.algorithms.YVector - */ - export interface YVector extends Object{} - export class YVector { - /** - * Creates a new vector, whose direction is given by two points. - *

    - * The vector is defined by p1 - p2. - *

    - * @param {yfiles.algorithms.YPoint} p1 The first point. - * @param {yfiles.algorithms.YPoint} [p2=null] The second point. If no point is spcified, (0,0) is used instead. - * @constructor - */ - constructor(p1:yfiles.algorithms.YPoint,p2?:yfiles.algorithms.YPoint); - /** - * Creates a new vector which is a copy of another vector. - * @param {yfiles.algorithms.YVector} v the vector, whose values are copied. - * @constructor - */ - constructor(v:yfiles.algorithms.YVector); - /** - * Creates a new vector, whose direction is given by two points. - *

    - * The vector is defined by (x1 - x2, y1 - y2). - *

    - * @param {number} x1 the X-coordinate of the first point. - * @param {number} y1 the Y-coordinate of the first point. - * @param {number} x2 the X-coordinate of the second point. - * @param {number} y2 the Y-coordinate of the second point. - * @constructor - */ - constructor(x1:number,y1:number,x2:number,y2:number); - /** - * Creates a new vector with given direction. - * @param {number} dx the first coordinate - * @param {number} dy the second coordinate - * @constructor - */ - constructor(dx:number,dy:number); - /** - * Adds a vector to this vector. - * @param {yfiles.algorithms.YVector} v the vector to add. - */ - add(v:yfiles.algorithms.YVector):void; - /** - * Adds the vector to a point and returns the resulting point. - * @param {yfiles.algorithms.YPoint} p a point. - * @param {yfiles.algorithms.YVector} v the vector to add to the point. - * @returns {yfiles.algorithms.YPoint} p+v - * @static - */ - static add(p:yfiles.algorithms.YPoint,v:yfiles.algorithms.YVector):yfiles.algorithms.YPoint; - /** - * Adds two vectors and returns the result. - * @param {yfiles.algorithms.YVector} v first vector to sum. - * @param {yfiles.algorithms.YVector} w second vector to sum. - * @returns {yfiles.algorithms.YVector} v+w - * @static - */ - static add(v:yfiles.algorithms.YVector,w:yfiles.algorithms.YVector):yfiles.algorithms.YVector; - /** - * Returns the result of the addition of two angles between 0 and 2*Pi. - *

    - * The result is calculated modulo 2*Pi. - *

    - * @param {number} a1 a value in [0,2Pi). - * @param {number} a2 a value in [0,2Pi). - * @returns {number} The sum of a1 and a2 modulo 2*Pi. - * @static - */ - static addAngle(a1:number,a2:number):number; - /** - * Returns the angle (measured in radians) between two vectors in clockwise order (with regards to screen coordinates) from - * v1 to v2. - *

    - * Screen coordinates mean positive x-direction is from left to right and positive y-direction is from top to bottom. - *

    - * @param {yfiles.algorithms.YVector} v1 - * @param {yfiles.algorithms.YVector} v2 - * @returns {number} - * @static - */ - static angle(v1:yfiles.algorithms.YVector,v2:yfiles.algorithms.YVector):number; - /** - * Returns this vector with unit length. - * @param {yfiles.algorithms.YVector} v - * @returns {yfiles.algorithms.YVector} - * @static - */ - static getNormal(v:yfiles.algorithms.YVector):yfiles.algorithms.YVector; - /** - * Returns the length of the vector, this is the value of the euclidean norm. - * @returns {number} a value > 0. - */ - length():number; - /** - * Assigns unit length to the vector. - *
    - */ - norm():void; - /** - * Returns the vector which is orthogonal to the given one and has unit length. - * @param {yfiles.algorithms.YVector} v a vector. - * @returns {yfiles.algorithms.YVector} a vector which is orthogonal to v with unit length. - * @static - */ - static orthoNormal(v:yfiles.algorithms.YVector):yfiles.algorithms.YVector; - /** - * Returns true if vector v1 is on the right side of v2. - * @param {yfiles.algorithms.YVector} v1 - * @param {yfiles.algorithms.YVector} v2 - * @returns {boolean} - * @static - */ - static rightOf(v1:yfiles.algorithms.YVector,v2:yfiles.algorithms.YVector):boolean; - /** - * Returns a new YVector instance that is obtained by rotating this vector by the given angle (measured in radians) in - * clockwise direction (with regards to screen coordinates). - *

    - * Screen coordinates mean positive x-direction is from left to right and positive y-direction is from top to bottom. - *

    - * @param {number} angle the angle of rotation in radians. - * @returns {yfiles.algorithms.YVector} the rotated vector. - */ - rotate(angle:number):yfiles.algorithms.YVector; - /** - * Returns the value of the scalar product of two vectors. - * @param {yfiles.algorithms.YVector} v1 the first vector. - * @param {yfiles.algorithms.YVector} v2 the second vector. - * @returns {number} v1.x * v2.x + v1.y * v2.y - * @static - */ - static scalarProduct(v1:yfiles.algorithms.YVector,v2:yfiles.algorithms.YVector):number; - /** - * Scales the vector by an factor. - * @param {number} factor the scale factor, with which the length is multiplied. - */ - scale(factor:number):void; - /** - * Creates a {@link yfiles.geometry.Point} from a given {@link yfiles.algorithms.YVector}. - * @returns {yfiles.geometry.Point} The {@link yfiles.geometry.Point}. - */ - toPoint():yfiles.geometry.Point; - /** - * Gets the first coordinate of the vector. - * @type {number} - */ - x:number; - /** - * Gets the second coordinate of the vector. - * @type {number} - */ - y:number; - static $class:yfiles.lang.Class; - } /** * This class provides access to some Comparator instances that are commonly used in yFiles. - * @class yfiles.algorithms.Comparers + * @class * @static */ export interface Comparers extends Object{} @@ -81629,9 +80984,9 @@ declare namespace system{ *

    * Warning: This method does not handle NaN! If you need NaN-safe comparison, use {@link yfiles.lang.Object_Interface#compare} instead. *

    - * @param {number} d1 the first number to compare. - * @param {number} d2 the second number to compare. - * @returns {number} a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the + * @param d1 the first number to compare. + * @param d2 the second number to compare. + * @returns a negative integer, zero, or a positive integer as the first argument is less than, equal to, or greater than the * second. * @see yfiles.collections.IComparer.#compare * @static @@ -81639,7 +80994,7 @@ declare namespace system{ static compare(d1:number,d2:number):number; /** * Returns a {@link yfiles.collections.IComparer.} that compares to Objects of type Comparable. - * @returns {yfiles.collections.IComparer.} + * @returns * @static */ static createComparableComparer():yfiles.collections.IComparer; @@ -81649,8 +81004,8 @@ declare namespace system{ * Two objects are compared by comparing the {@link yfiles.lang.IComparable} instances the given data provider returns for each of * these objects. *

    - * @param {yfiles.algorithms.IDataProvider} dp a data provider that must return a {@link yfiles.lang.IComparable} for each object that is being compared by this comparator. - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares arbitrary objects. + * @param dp a data provider that must return a {@link } for each object that is being compared by this comparator. + * @returns a {@link } that compares arbitrary objects. * @static */ static createComparableDataComparer(dp:yfiles.algorithms.IDataProvider):yfiles.collections.IComparer; @@ -81659,8 +81014,8 @@ declare namespace system{ *

    * Two objects are compared by comparing the int value the given data provider returns for each of these objects. *

    - * @param {yfiles.algorithms.IDataProvider} dp a data provider that must return an int value for each object that is being compared by this comparator. - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares arbitrary objects. + * @param dp a data provider that must return an int value for each object that is being compared by this comparator. + * @returns a {@link } that compares arbitrary objects. * @static */ static createIntDataComparer(dp:yfiles.algorithms.IDataProvider):yfiles.collections.IComparer; @@ -81670,8 +81025,8 @@ declare namespace system{ * Two edges are compared by comparing their source nodes. Each source node e.source() in turn is compared by the int value * provided by the given data provider: dp.getInt(e.source()). *

    - * @param {yfiles.algorithms.IDataProvider} dp a data provider that must return an int value for the source node of each edge being compared. - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares edges. + * @param dp a data provider that must return an int value for the source node of each edge being compared. + * @returns a {@link } that compares edges. * @static */ static createIntDataSourceComparer(dp:yfiles.algorithms.IDataProvider):yfiles.collections.IComparer; @@ -81681,8 +81036,8 @@ declare namespace system{ * Two edges are compared by comparing their target nodes. Each target node e.target() in turn is compared by the int value * provided by the given data provider: dp.getInt(e.target()). *

    - * @param {yfiles.algorithms.IDataProvider} dp a data provider that must return an int value for the target node of each edge being compared. - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares edges. + * @param dp a data provider that must return an int value for the target node of each edge being compared. + * @returns a {@link } that compares edges. * @static */ static createIntDataTargetComparer(dp:yfiles.algorithms.IDataProvider):yfiles.collections.IComparer; @@ -81691,8 +81046,8 @@ declare namespace system{ *

    * Two objects are compared by comparing the double value the given data provider returns for each of these objects. *

    - * @param {yfiles.algorithms.IDataProvider} dp a data provider that must return a double value for each object that is being compared by this comparator. - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares arbitrary objects. + * @param dp a data provider that must return a double value for each object that is being compared by this comparator. + * @returns a {@link } that compares arbitrary objects. * @static */ static createNumberDataComparer(dp:yfiles.algorithms.IDataProvider):yfiles.collections.IComparer; @@ -81702,8 +81057,8 @@ declare namespace system{ * Two edges are compared by comparing their source nodes. Each source node e.source() in turn is compared by the double * value provided by the given data provider: dp.getDouble(e.source()). *

    - * @param {yfiles.algorithms.IDataProvider} dp a data provider that must return a double value for the source node of each edge being compared. - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares edges. + * @param dp a data provider that must return a double value for the source node of each edge being compared. + * @returns a {@link } that compares edges. * @static */ static createNumberDataSourceComparer(dp:yfiles.algorithms.IDataProvider):yfiles.collections.IComparer; @@ -81713,8 +81068,8 @@ declare namespace system{ * Two edges are compared by comparing their target nodes. Each target node e.target() in turn is compared by the double * value provided by the given data provider: dp.getDouble(e.target()). *

    - * @param {yfiles.algorithms.IDataProvider} dp a data provider that must return a double value for the target node of each edge being compared. - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares edges. + * @param dp a data provider that must return a double value for the target node of each edge being compared. + * @returns a {@link } that compares edges. * @static */ static createNumberDataTargetComparer(dp:yfiles.algorithms.IDataProvider):yfiles.collections.IComparer; @@ -81722,16 +81077,16 @@ declare namespace system{ } /** * Provides utility methods for working with {@link yfiles.algorithms.ICursor cursors}. - * @class yfiles.algorithms.Cursors + * @class * @static */ export interface Cursors extends Object{} export class Cursors { /** * Creates a new cursor that provides a logical view on the concatenation of the two given cursors. - * @param {yfiles.algorithms.ICursor} c1 - first concatenation argument - * @param {yfiles.algorithms.ICursor} c2 - second concatenation argument - * @returns {yfiles.algorithms.ICursor} + * @param c1 - first concatenation argument + * @param c2 - second concatenation argument + * @returns * @static */ static concatenate(c1:yfiles.algorithms.ICursor,c2:yfiles.algorithms.ICursor):yfiles.algorithms.ICursor; @@ -81744,8 +81099,8 @@ declare namespace system{ * Note that the returned cursor does not support the {@link yfiles.algorithms.ICursor#prev prev} and {@link yfiles.algorithms.ICursor#toLast toLast} operations. *

    * Type parameter T. - * @param {yfiles.collections.ICollection.} c The collection. - * @returns {yfiles.algorithms.ICursor} The cursor view of the given collection. + * @param c The collection. + * @returns The cursor view of the given collection. * @template T * @static */ @@ -81757,8 +81112,8 @@ declare namespace system{ * {@link yfiles.algorithms.IEdgeCursor#cyclicPrev}. *

    * Type parameter T. - * @param {yfiles.collections.ICollection.} c The collection. - * @returns {yfiles.algorithms.IEdgeCursor} an {@link yfiles.algorithms.IEdgeCursor} view of the given collection. + * @param c The collection. + * @returns an {@link } view of the given collection. * @template T * @static */ @@ -81770,17 +81125,17 @@ declare namespace system{ * {@link yfiles.algorithms.INodeCursor#cyclicPrev}. *

    * Type parameter T. - * @param {yfiles.collections.ICollection.} c The collection. - * @returns {yfiles.algorithms.INodeCursor} an {@link yfiles.algorithms.INodeCursor} view of the given collection. + * @param c The collection. + * @returns an {@link } view of the given collection. * @template T * @static */ static createNodeCursor(c:yfiles.collections.ICollection):yfiles.algorithms.INodeCursor; /** * Creates or fills an array with the values provided by the cursor - * @param {yfiles.algorithms.ICursor} cursor the cursor - * @param {Array.} dest the array to fill with the values or null if the method should create the array itself - * @returns {Array.} dest or a newly created array filled with the values from cursor + * @param cursor the cursor + * @param dest the array to fill with the values or null if the method should create the array itself + * @returns dest or a newly created array filled with the values from cursor * @static */ static toArray(cursor:yfiles.algorithms.ICursor,dest:Object[]):Object[]; @@ -81789,7 +81144,7 @@ declare namespace system{ /** * An abstract adapter class for providing data. *

    - * The data provision methods in this class throw a {@link Stubs.Exceptions.NotSupportedError} and {@link yfiles.algorithms.DataProviderAdapter#defined} + * The data provision methods in this class throw a {@link yfiles.lang.Exception} and {@link yfiles.algorithms.DataProviderAdapter#defined} * always returns false. *

    *

    @@ -81798,7 +81153,7 @@ declare namespace system{ *

    * Extend this class to provide either typed or untyped data for a certain lookup domain. *

    - * @class yfiles.algorithms.DataProviderAdapter + * @class * @implements {yfiles.algorithms.IDataProvider} */ export interface DataProviderAdapter extends Object,yfiles.algorithms.IDataProvider{} @@ -81809,35 +81164,35 @@ declare namespace system{ * Subclasses should override this method to make clear for which data holders there is a value accessible via this data * provider. *

    - * @param {Object} dataHolder - * @returns {boolean} false. + * @param dataHolder + * @returns false. */ defined(dataHolder:Object):boolean; /** * Subclasses may override this method to provide access to object values. - * @param {Object} dataHolder - * @returns {Object} + * @param dataHolder + * @returns * @throws {Stubs.Exceptions.NotSupportedError} unless overwritten. */ get(dataHolder:Object):Object; /** * Subclasses may override this method to provide access to boolean values. - * @param {Object} dataHolder - * @returns {boolean} + * @param dataHolder + * @returns * @throws {Stubs.Exceptions.NotSupportedError} unless overwritten. */ getBoolean(dataHolder:Object):boolean; /** * Subclasses may override this method to provide access to integer values. - * @param {Object} dataHolder - * @returns {number} + * @param dataHolder + * @returns * @throws {Stubs.Exceptions.NotSupportedError} unless overwritten. */ getInt(dataHolder:Object):number; /** * Subclasses may override this method to provide access to double values. - * @param {Object} dataHolder - * @returns {number} + * @param dataHolder + * @returns * @throws {Stubs.Exceptions.NotSupportedError} unless overwritten. */ getNumber(dataHolder:Object):number; @@ -81845,15 +81200,15 @@ declare namespace system{ } /** * This class provides convenience and transformation services for DataProviders. - * @class yfiles.algorithms.DataProviders + * @class * @static */ export interface DataProviders extends Object{} export class DataProviders { /** * Returns a DataProvider that returns the given value for each key. - * @param {Object} data constant Object data returned by the created data provider. - * @returns {yfiles.algorithms.IDataProvider} a data provider view of a single value. + * @param data constant Object data returned by the created data provider. + * @returns a data provider view of a single value. * @static */ static createConstantDataProvider(data:Object):yfiles.algorithms.IDataProvider; @@ -81862,8 +81217,8 @@ declare namespace system{ *

    * The Object value data[edge.index()] will be returned by the data provider upon the method call get(edge). *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each edge of a static graph + * @returns a data provider view of the given array * @static */ static createEdgeDataProvider(data:Object[]):yfiles.algorithms.IDataProvider; @@ -81881,11 +81236,11 @@ declare namespace system{ *

    * The Object value objectData[edge.index()] will be returned by the data provider upon the method call get(edge). *

    - * @param {Array.} doubleData double data for each edge of a static graph - * @param {Array.} intData int data for each edge of a static graph - * @param {Array.} boolData boolean data for each edge of a static graph - * @param {Array.} objectData Object data for each edge of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given arrays + * @param doubleData double data for each edge of a static graph + * @param intData int data for each edge of a static graph + * @param boolData boolean data for each edge of a static graph + * @param objectData Object data for each edge of a static graph + * @returns a data provider view of the given arrays * @static */ static createEdgeDataProviderForArrays(doubleData:number[],intData:number[],boolData:boolean[],objectData:Object[]):yfiles.algorithms.IDataProvider; @@ -81894,8 +81249,8 @@ declare namespace system{ *

    * The boolean value data[edge.index()] will be returned by the data provider upon the method call getBool(edge). *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each edge of a static graph + * @returns a data provider view of the given array * @static */ static createEdgeDataProviderForBoolean(data:boolean[]):yfiles.algorithms.IDataProvider; @@ -81904,8 +81259,8 @@ declare namespace system{ *

    * The int value data[edge.index()] will be returned by the data provider upon the method call getInt(edge). *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each edge of a static graph + * @returns a data provider view of the given array * @static */ static createEdgeDataProviderForInt(data:number[]):yfiles.algorithms.IDataProvider; @@ -81914,15 +81269,15 @@ declare namespace system{ *

    * The double value data[edge.index()] will be returned by the data provider upon the method call getDouble(edge). *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each edge of a static graph + * @returns a data provider view of the given array * @static */ static createEdgeDataProviderForNumber(data:number[]):yfiles.algorithms.IDataProvider; /** * Returns a DataProvider that returns the negated boolean values provided by another data provider. - * @param {yfiles.algorithms.IDataProvider} data - * @returns {yfiles.algorithms.IDataProvider} + * @param data + * @returns * @static */ static createNegatedDataProvider(data:yfiles.algorithms.IDataProvider):yfiles.algorithms.IDataProvider; @@ -81931,8 +81286,8 @@ declare namespace system{ *

    * The Object value data[node.index()] will be returned by the data provider upon the method call get(node). *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each node of a static graph + * @returns a data provider view of the given array * @static */ static createNodeDataProvider(data:Object[]):yfiles.algorithms.IDataProvider; @@ -81941,8 +81296,8 @@ declare namespace system{ *

    * The boolean value data[node.index()] will be returned by the data provider upon the method call getBool(node). *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each node of a static graph + * @returns a data provider view of the given array * @static */ static createNodeDataProviderForBoolean(data:boolean[]):yfiles.algorithms.IDataProvider; @@ -81951,8 +81306,8 @@ declare namespace system{ *

    * The int value data[node.index()] will be returned by the data provider upon the method call getInt(node). *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each node of a static graph + * @returns a data provider view of the given array * @static */ static createNodeDataProviderForInt(data:number[]):yfiles.algorithms.IDataProvider; @@ -81961,8 +81316,8 @@ declare namespace system{ *

    * The double value data[node.index()] will be returned by the data provider upon the method call getDouble(node). *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given array + * @param data array data for each node of a static graph + * @returns a data provider view of the given array * @static */ static createNodeDataProviderForNumber(data:number[]):yfiles.algorithms.IDataProvider; @@ -81980,25 +81335,25 @@ declare namespace system{ *

    * The Object value objectData[node.index()] will be returned by the data provider upon the method call get(node). *

    - * @param {Array.} doubleData double data for each node of a static graph - * @param {Array.} intData int data for each node of a static graph - * @param {Array.} boolData boolean data for each node of a static graph - * @param {Array.} objectData Object data for each node of a static graph - * @returns {yfiles.algorithms.IDataProvider} a data provider view of the given arrays + * @param doubleData double data for each node of a static graph + * @param intData int data for each node of a static graph + * @param boolData boolean data for each node of a static graph + * @param objectData Object data for each node of a static graph + * @returns a data provider view of the given arrays * @static */ static createNodeDataProviderWithArrays(doubleData:number[],intData:number[],boolData:boolean[],objectData:Object[]):yfiles.algorithms.IDataProvider; /** * Returns a DataProvider for edges that return the data provider values bound to their source nodes. - * @param {yfiles.algorithms.IDataProvider} nodeData - * @returns {yfiles.algorithms.IDataProvider} + * @param nodeData + * @returns * @static */ static createSourceDataProvider(nodeData:yfiles.algorithms.IDataProvider):yfiles.algorithms.IDataProvider; /** * Returns a DataProvider for edges that return the data provider values bound to their target nodes. - * @param {yfiles.algorithms.IDataProvider} nodeData - * @returns {yfiles.algorithms.IDataProvider} + * @param nodeData + * @returns * @static */ static createTargetDataProvider(nodeData:yfiles.algorithms.IDataProvider):yfiles.algorithms.IDataProvider; @@ -82017,7 +81372,7 @@ declare namespace system{ * by default prevent the graph instance from firing events, other code might cease to work correctly. Use this class for * short term removal of nodes and edges, only. *

    - * @class yfiles.algorithms.GraphPartitionManager + * @class */ export interface GraphPartitionManager extends Object{} export class GraphPartitionManager { @@ -82026,14 +81381,13 @@ declare namespace system{ *

    * All non-static hiding and unhiding methods will refer to the given graph. *

    - * @param {yfiles.algorithms.Graph} graph - * @param {yfiles.algorithms.IDataProvider} partitionId - * @constructor + * @param graph + * @param partitionId */ constructor(graph:yfiles.algorithms.Graph,partitionId:yfiles.algorithms.IDataProvider); /** * Assures that only nodes are visible in the graph that are associated with the given partitionId. - * @param {Object} partitionId the partitionId for the nodes that will be made visible + * @param partitionId the partitionId for the nodes that will be made visible */ displayPartition(partitionId:Object):void; /** @@ -82041,7 +81395,7 @@ declare namespace system{ *

    * The hidden nodes and adjacent edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.NodeList} nl + * @param nl */ hide(nl:yfiles.algorithms.NodeList):void; /** @@ -82049,7 +81403,7 @@ declare namespace system{ *

    * The hidden edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.EdgeList} el + * @param el */ hide(el:yfiles.algorithms.EdgeList):void; /** @@ -82057,7 +81411,7 @@ declare namespace system{ *

    * The hidden edge will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.Edge} e + * @param e */ hide(e:yfiles.algorithms.Edge):void; /** @@ -82065,7 +81419,7 @@ declare namespace system{ *

    * The hidden elements will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.Node} v + * @param v */ hide(v:yfiles.algorithms.Node):void; /** @@ -82080,7 +81434,7 @@ declare namespace system{ *

    * The hidden edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.IEdgeCursor} ec + * @param ec */ hideEdgeCursor(ec:yfiles.algorithms.IEdgeCursor):void; /** @@ -82095,7 +81449,7 @@ declare namespace system{ *

    * The hidden nodes and adjacent edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.ICursor} cursor + * @param cursor */ hideItemCursor(cursor:yfiles.algorithms.ICursor):void; /** @@ -82111,12 +81465,12 @@ declare namespace system{ *

    * The hidden nodes and adjacent edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.INodeCursor} nc + * @param nc */ hideNodeCursor(nc:yfiles.algorithms.INodeCursor):void; /** * Hides nodes and adjacent edges that have the given partitionId associated. - * @param {Object} partitionId the id + * @param partitionId the id */ hidePartition(partitionId:Object):void; /** @@ -82131,7 +81485,7 @@ declare namespace system{ *

    * This method must also be called whenever the content of the given DataProvider changes. *

    - * @param {yfiles.algorithms.IDataProvider} partitionId the data provider that holds the partitionIds for all elements. + * @param partitionId the data provider that holds the partitionIds for all elements. */ initPartitions(partitionId:yfiles.algorithms.IDataProvider):void; /** @@ -82145,13 +81499,13 @@ declare namespace system{ simplifyGraph():void; /** * This method will be called whenever the partition manager is requested to unhide the given node from the graph. - * @param {yfiles.algorithms.Node} v + * @param v * @protected */ unhide(v:yfiles.algorithms.Node):void; /** * This method will be called whenever the partition manager is requested to unhide the given edge from the graph. - * @param {yfiles.algorithms.Edge} e + * @param e * @protected */ unhide(e:yfiles.algorithms.Edge):void; @@ -82172,7 +81526,7 @@ declare namespace system{ unhideNodes():void; /** * Unhides nodes that have the given partitionId associated. - * @param {Object} partitionId the id + * @param partitionId the id */ unhidePartition(partitionId:Object):void; /** @@ -82202,7 +81556,7 @@ declare namespace system{ * by default prevent the graph instance from firing events, other code might cease to work correctly. Use this class for * short term removal of nodes and edges, only. *

    - * @class yfiles.algorithms.LayoutGraphHider + * @class */ export interface LayoutGraphHider extends Object{} export class LayoutGraphHider { @@ -82211,18 +81565,17 @@ declare namespace system{ *

    * All non-static hiding and unhiding methods will refer to the given graph. *

    - * @param {yfiles.algorithms.Graph} g - * @constructor + * @param g */ constructor(g:yfiles.algorithms.Graph); /** * The edges that are currently hidden - * @returns {yfiles.algorithms.IEdgeCursor} a cursor of the currently hidden edges + * @returns a cursor of the currently hidden edges */ getHiddenEdgeCursor():yfiles.algorithms.IEdgeCursor; /** * The nodes that are currently hidden - * @returns {yfiles.algorithms.INodeCursor} a cursor of the currently hidden nodes + * @returns a cursor of the currently hidden nodes */ getHiddenNodeCursor():yfiles.algorithms.INodeCursor; /** @@ -82230,7 +81583,7 @@ declare namespace system{ *

    * The hidden nodes and adjacent edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.NodeList} nl + * @param nl */ hide(nl:yfiles.algorithms.NodeList):void; /** @@ -82238,7 +81591,7 @@ declare namespace system{ *

    * The hidden edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.EdgeList} el + * @param el */ hide(el:yfiles.algorithms.EdgeList):void; /** @@ -82246,7 +81599,7 @@ declare namespace system{ *

    * The hidden edge will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.Edge} e + * @param e */ hide(e:yfiles.algorithms.Edge):void; /** @@ -82254,7 +81607,7 @@ declare namespace system{ *

    * The hidden elements will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.Node} v + * @param v */ hide(v:yfiles.algorithms.Node):void; /** @@ -82269,7 +81622,7 @@ declare namespace system{ *

    * The hidden edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.IEdgeCursor} ec + * @param ec */ hideEdgeCursor(ec:yfiles.algorithms.IEdgeCursor):void; /** @@ -82284,7 +81637,7 @@ declare namespace system{ *

    * The hidden nodes and adjacent edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.ICursor} cursor + * @param cursor */ hideItemCursor(cursor:yfiles.algorithms.ICursor):void; /** @@ -82300,7 +81653,7 @@ declare namespace system{ *

    * The hidden nodes and adjacent edges will be stored so that they can be unhidden again at a later time. *

    - * @param {yfiles.algorithms.INodeCursor} nc + * @param nc */ hideNodeCursor(nc:yfiles.algorithms.INodeCursor):void; /** @@ -82316,8 +81669,8 @@ declare namespace system{ * The induced subgraph defined by the given edges consists of the given edges and all nodes that are solely connected to * the rest of the graph by the given edges. *

    - * @param {yfiles.algorithms.Graph} graph - * @param {yfiles.algorithms.IEdgeCursor} ec + * @param graph + * @param ec * @static */ static hideSubgraph(graph:yfiles.algorithms.Graph,ec:yfiles.algorithms.IEdgeCursor):void; @@ -82332,13 +81685,13 @@ declare namespace system{ simplifyGraph():void; /** * This method will be called whenever the hider is requested to unhide the given node from the graph. - * @param {yfiles.algorithms.Node} v + * @param v * @protected */ unhide(v:yfiles.algorithms.Node):void; /** * This method will be called whenever the hider is requested to unhide the given edge from the graph. - * @param {yfiles.algorithms.Edge} e + * @param e * @protected */ unhide(e:yfiles.algorithms.Edge):void; @@ -82355,7 +81708,7 @@ declare namespace system{ * Note that unhiding an edge whose source/target is not in the graph (e.g., because it's currently hidden/removed) causes * an exception. Hence, in such cases, you first have to unhide/reinsert the corresponding endpoints. *

    - * @param {yfiles.algorithms.Edge} e the edge that will be unhidden + * @param e the edge that will be unhidden */ unhideEdge(e:yfiles.algorithms.Edge):void; /** @@ -82367,7 +81720,7 @@ declare namespace system{ * Note that unhiding an edge whose source/target is not in the graph (e.g., because it's currently hidden/removed) causes * an exception. Hence, in such cases, you first have to unhide/reinsert the corresponding endpoints. *

    - * @param {yfiles.algorithms.EdgeList} edges the edges that will be unhidden + * @param edges the edges that will be unhidden */ unhideEdges(edges:yfiles.algorithms.EdgeList):void; /** @@ -82379,8 +81732,8 @@ declare namespace system{ *

    * Also updates {@link yfiles.algorithms.LayoutGraphHider#hiddenNodes} and {@link yfiles.algorithms.LayoutGraphHider#hiddenEdges}. *

    - * @param {yfiles.algorithms.Node} v the node that will be unhidden - * @param {boolean} unhideAdjacentEdges whether of not to unhide previously hidden edges connected at v whose other end point is not hidden, i.e. it is part of + * @param v the node that will be unhidden + * @param unhideAdjacentEdges whether of not to unhide previously hidden edges connected at v whose other end point is not hidden, i.e. it is part of * the graph. */ unhideNode(v:yfiles.algorithms.Node,unhideAdjacentEdges:boolean):void; @@ -82389,8 +81742,8 @@ declare namespace system{ *

    * Also updates {@link yfiles.algorithms.LayoutGraphHider#hiddenNodes} and {@link yfiles.algorithms.LayoutGraphHider#hiddenEdges}. *

    - * @param {yfiles.algorithms.NodeList} nodes the nodes that will be unhidden - * @param {boolean} unhideAdjacentEdges whether of not to unhide previously hidden edges connected at the given nodes whose other end point is not hidden, i.e. + * @param nodes the nodes that will be unhidden + * @param unhideAdjacentEdges whether of not to unhide previously hidden edges connected at the given nodes whose other end point is not hidden, i.e. * it is part of the graph. */ unhideNodes(nodes:yfiles.algorithms.NodeList,unhideAdjacentEdges:boolean):void; @@ -82411,8 +81764,8 @@ declare namespace system{ * Parts of the subgraph that are already contained in the given graph will not be unhidden and pose no problem to this * method. *

    - * @param {yfiles.algorithms.Graph} graph - * @param {yfiles.algorithms.IEdgeCursor} ec + * @param graph + * @param ec * @static */ static unhideSubgraph(graph:yfiles.algorithms.Graph,ec:yfiles.algorithms.IEdgeCursor):void; @@ -82446,7 +81799,7 @@ declare namespace system{ /** * This class provides convenience and transformation services for Node- and EdgeMaps and other layout-related collection * types. - * @class yfiles.algorithms.Maps + * @class * @static */ export interface Maps extends Object{} @@ -82457,8 +81810,8 @@ declare namespace system{ * Accessing basic value types is solved by storing the corresponding wrapper types Double, Integer and Boolean within the * given Map. *

    - * @param {yfiles.collections.IMap.} map - * @returns {yfiles.algorithms.IDataMap} + * @param map + * @returns * @static */ static createDataMap(map:yfiles.collections.IMap):yfiles.algorithms.IDataMap; @@ -82468,8 +81821,8 @@ declare namespace system{ * Accessing basic value types is solved by storing the corresponding wrapper types Double, Integer and Boolean within the * given Map. *

    - * @param {yfiles.collections.IMap.} map - * @returns {yfiles.algorithms.IEdgeMap} + * @param map + * @returns * @static */ static createEdgeMap(map:yfiles.collections.IMap):yfiles.algorithms.IEdgeMap; @@ -82478,7 +81831,7 @@ declare namespace system{ *

    * The preconditions specified in java.util.HashMap apply for the keys and values of this map. *

    - * @returns {yfiles.algorithms.IDataMap} + * @returns * @static */ static createHashedDataMap():yfiles.algorithms.IDataMap; @@ -82487,7 +81840,7 @@ declare namespace system{ *

    * The preconditions specified in java.util.HashMap apply for the keys and values of this map. *

    - * @returns {yfiles.algorithms.IEdgeMap} + * @returns * @static */ static createHashedEdgeMap():yfiles.algorithms.IEdgeMap; @@ -82496,7 +81849,7 @@ declare namespace system{ *

    * The preconditions specified in java.util.HashMap apply for the keys and values of this map. *

    - * @returns {yfiles.algorithms.INodeMap} + * @returns * @static */ static createHashedNodeMap():yfiles.algorithms.INodeMap; @@ -82504,8 +81857,8 @@ declare namespace system{ * Factory method that creates a {@link yfiles.collections.IMap.} that is a special hash map implementation mainly used by the layout algorithms. * Type parameter K. * Type parameter V. - * @param {yfiles.collections.ICollection.>} [entries=null] The items to optionally populate the set with initially. - * @returns {yfiles.collections.IMap.} A new instance. + * @param [entries=null] The items to optionally populate the set with initially. + * @returns A new instance. * @template K,V * @static */ @@ -82514,8 +81867,8 @@ declare namespace system{ * Factory method that creates an {@link yfiles.collections.ICollection.} implementation with set semantics that is a special hash map based implementation mainly * used by the layout algorithms. * Type parameter T. - * @param {yfiles.collections.IEnumerable.} [items=null] The items to optionally populate the set with initially. - * @returns {yfiles.collections.ICollection.} A new instance. + * @param [items=null] The items to optionally populate the set with initially. + * @returns A new instance. * @template T * @static */ @@ -82526,10 +81879,10 @@ declare namespace system{ * A high performance map is a facade to another map which will allow to reset all bound values to a default value in * constant time. *

    - * @param {yfiles.algorithms.IDataProvider} backingProvider - * @param {yfiles.algorithms.IDataAcceptor} backingAcceptor - * @param {number} defaultValue - * @returns {yfiles.algorithms.INodeMap} + * @param backingProvider + * @param backingAcceptor + * @param defaultValue + * @returns * @static */ static createHighPerformanceDoubleMap(backingProvider:yfiles.algorithms.IDataProvider,backingAcceptor:yfiles.algorithms.IDataAcceptor,defaultValue:number):yfiles.algorithms.INodeMap; @@ -82539,9 +81892,9 @@ declare namespace system{ * A high performance map is a facade to another map which will allow to reset all bound values to a default value in * constant time. *

    - * @param {yfiles.algorithms.IDataMap} backingMap - * @param {number} defaultValue - * @returns {yfiles.algorithms.INodeMap} + * @param backingMap + * @param defaultValue + * @returns * @static */ static createHighPerformanceDoubleMap(backingMap:yfiles.algorithms.IDataMap,defaultValue:number):yfiles.algorithms.INodeMap; @@ -82551,10 +81904,10 @@ declare namespace system{ * A high performance map is a facade to another map which will allow to reset all bound values to a default value in * constant time. *

    - * @param {yfiles.algorithms.IDataProvider} backingProvider - * @param {yfiles.algorithms.IDataAcceptor} backingAcceptor - * @param {number} defaultValue - * @returns {yfiles.algorithms.INodeMap} + * @param backingProvider + * @param backingAcceptor + * @param defaultValue + * @returns * @static */ static createHighPerformanceIntMap(backingProvider:yfiles.algorithms.IDataProvider,backingAcceptor:yfiles.algorithms.IDataAcceptor,defaultValue:number):yfiles.algorithms.INodeMap; @@ -82564,9 +81917,9 @@ declare namespace system{ * A high performance map is a facade to another map which will allow to reset all bound values to a default value in * constant time. *

    - * @param {yfiles.algorithms.IDataMap} backingMap - * @param {number} defaultValue - * @returns {yfiles.algorithms.INodeMap} + * @param backingMap + * @param defaultValue + * @returns * @static */ static createHighPerformanceIntMap(backingMap:yfiles.algorithms.IDataMap,defaultValue:number):yfiles.algorithms.INodeMap; @@ -82576,10 +81929,10 @@ declare namespace system{ * A high performance map is a facade to another map which will allow to reset all bound values to a default value in * constant time. *

    - * @param {yfiles.algorithms.IDataProvider} backingProvider - * @param {yfiles.algorithms.IDataAcceptor} backingAcceptor - * @param {Object} defaultValue - * @returns {yfiles.algorithms.INodeMap} + * @param backingProvider + * @param backingAcceptor + * @param defaultValue + * @returns * @static */ static createHighPerformanceMap(backingProvider:yfiles.algorithms.IDataProvider,backingAcceptor:yfiles.algorithms.IDataAcceptor,defaultValue:Object):yfiles.algorithms.INodeMap; @@ -82589,9 +81942,9 @@ declare namespace system{ * A high performance map is a facade to another map which will allow to reset all bound values to a default value in * constant time. *

    - * @param {yfiles.algorithms.IDataMap} backingMap - * @param {Object} defaultValue - * @returns {yfiles.algorithms.INodeMap} + * @param backingMap + * @param defaultValue + * @returns * @static */ static createHighPerformanceMap(backingMap:yfiles.algorithms.IDataMap,defaultValue:Object):yfiles.algorithms.INodeMap; @@ -82604,8 +81957,8 @@ declare namespace system{ *

    * Warning! The indices of the accessed edges must not change during the use of this EdgeMap. *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IEdgeMap} a EdgeMap view of the given array + * @param data array data for each edge of a static graph + * @returns a EdgeMap view of the given array * @static */ static createIndexEdgeMap(data:Object[]):yfiles.algorithms.IEdgeMap; @@ -82618,8 +81971,8 @@ declare namespace system{ *

    * Warning! The indices of the accessed edges must not change during the use of this EdgeMap. *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IEdgeMap} a EdgeMap view of the given array + * @param data array data for each edge of a static graph + * @returns a EdgeMap view of the given array * @static */ static createIndexEdgeMapForBoolean(data:boolean[]):yfiles.algorithms.IEdgeMap; @@ -82632,8 +81985,8 @@ declare namespace system{ *

    * Warning! The indices of the accessed edges must not change during the use of this EdgeMap. *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IEdgeMap} a EdgeMap view of the given array + * @param data array data for each edge of a static graph + * @returns a EdgeMap view of the given array * @static */ static createIndexEdgeMapForInt(data:number[]):yfiles.algorithms.IEdgeMap; @@ -82646,8 +81999,8 @@ declare namespace system{ *

    * Warning! The indices of the accessed edges must not change during the use of this EdgeMap. *

    - * @param {Array.} data array data for each edge of a static graph - * @returns {yfiles.algorithms.IEdgeMap} a EdgeMap view of the given array + * @param data array data for each edge of a static graph + * @returns a EdgeMap view of the given array * @static */ static createIndexEdgeMapForNumber(data:number[]):yfiles.algorithms.IEdgeMap; @@ -82672,11 +82025,11 @@ declare namespace system{ *

    * Warning! The indices of the accessed edges must not change during the use of this EdgeMap. *

    - * @param {Array.} doubleData double data for each edge of a static graph - * @param {Array.} intData int data for each edge of a static graph - * @param {Array.} boolData boolean data for each edge of a static graph - * @param {Array.} objectData Object data for each edge of a static graph - * @returns {yfiles.algorithms.IEdgeMap} a EdgeMap view of the given arrays + * @param doubleData double data for each edge of a static graph + * @param intData int data for each edge of a static graph + * @param boolData boolean data for each edge of a static graph + * @param objectData Object data for each edge of a static graph + * @returns a EdgeMap view of the given arrays * @static */ static createIndexEdgeMapFromArrays(doubleData:number[],intData:number[],boolData:boolean[],objectData:Object[]):yfiles.algorithms.IEdgeMap; @@ -82686,8 +82039,8 @@ declare namespace system{ * The Object value data[node.index()] will be accessed by the NodeMap upon the method calls get(node) and set(node,value). * Warning! The indices of the accessed nodes must not change during the use of this NodeMap. *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.INodeMap} a NodeMap view of the given array + * @param data array data for each node of a static graph + * @returns a NodeMap view of the given array * @static */ static createIndexNodeMap(data:Object[]):yfiles.algorithms.INodeMap; @@ -82697,8 +82050,8 @@ declare namespace system{ * The boolean value data[node.index()] will be accessed by the NodeMap upon the method calls getBool(node) and * setBool(node,value). *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.INodeMap} a NodeMap view of the given array + * @param data array data for each node of a static graph + * @returns a NodeMap view of the given array * @static */ static createIndexNodeMapForBoolean(data:boolean[]):yfiles.algorithms.INodeMap; @@ -82708,8 +82061,8 @@ declare namespace system{ * The int value data[node.index()] will be accessed by the NodeMap upon the method calls getInt(node) and * setInt(node,value). Warning! The indices of the accessed nodes must not change during the use of this NodeMap. *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.INodeMap} a NodeMap view of the given array + * @param data array data for each node of a static graph + * @returns a NodeMap view of the given array * @static */ static createIndexNodeMapForInt(data:number[]):yfiles.algorithms.INodeMap; @@ -82722,8 +82075,8 @@ declare namespace system{ *

    * Warning! The indices of the accessed nodes must not change during the use of this NodeMap. *

    - * @param {Array.} data array data for each node of a static graph - * @returns {yfiles.algorithms.INodeMap} a NodeMap view of the given array + * @param data array data for each node of a static graph + * @returns a NodeMap view of the given array * @static */ static createIndexNodeMapForNumber(data:number[]):yfiles.algorithms.INodeMap; @@ -82748,11 +82101,11 @@ declare namespace system{ *

    * Warning! The indices of the accessed nodes must not change during the use of this NodeMap. *

    - * @param {Array.} doubleData double data for each node of a static graph - * @param {Array.} intData int data for each node of a static graph - * @param {Array.} boolData boolean data for each node of a static graph - * @param {Array.} objectData Object data for each node of a static graph - * @returns {yfiles.algorithms.INodeMap} a NodeMap view of the given arrays + * @param doubleData double data for each node of a static graph + * @param intData int data for each node of a static graph + * @param boolData boolean data for each node of a static graph + * @param objectData Object data for each node of a static graph + * @returns a NodeMap view of the given arrays * @static */ static createIndexNodeMapFromArrays(doubleData:number[],intData:number[],boolData:boolean[],objectData:Object[]):yfiles.algorithms.INodeMap; @@ -82762,1717 +82115,452 @@ declare namespace system{ * Accessing basic value types is solved by storing the corresponding wrapper types Double, Integer and Boolean within the * given Map. *

    - * @param {yfiles.collections.IMap.} map - * @returns {yfiles.algorithms.INodeMap} + * @param map + * @returns * @static */ static createNodeMap(map:yfiles.collections.IMap):yfiles.algorithms.INodeMap; static $class:yfiles.lang.Class; } - }export namespace layout{ /** - * This class represents a column of a {@link yfiles.layout.PartitionGrid partition grid} structure. + * An implementation of a doubly linked list that provides direct access to the cells that store the elements. *

    - * The results of the calculation of the geometry of the column will be placed into the instances of this class after the - * layout. + * The cells are represented by class {@link yfiles.algorithms.ListCell}. *

    - * @see yfiles.layout.PartitionGrid - * @class yfiles.layout.ColumnDescriptor - * @implements {yfiles.lang.IComparable} + *

    + * This class supports fast access and removal operations, specifically, it is possible to remove an element in constant + * time (i.e. O(1)) given a reference to its list cell. + *

    + *

    + * Class YList supports iteration over the elements either by using the list cells directly (methods {@link yfiles.algorithms.YList#firstCell}/{@link yfiles.algorithms.YList#lastCell} together with + * {@link yfiles.algorithms.YList#succCell}/{@link yfiles.algorithms.YList#predCell}, respectively) or by means of a cursor + * ({@link yfiles.algorithms.YList#cursor}). + *

    + *

    + * Furthermore, YList offers its own {@link yfiles.algorithms.YList#sort} method. Note that this class also provides all relevant + * methods to use the list like a stack data type. + *

    + *

    + * This implementation permits null as values. It implements the {@link yfiles.collections.IList.} interface but does not support the {@link yfiles.algorithms.YList#subList} + * method. The implementation of this method will throw an {@link yfiles.lang.Exception} if invoked. The {@link yfiles.algorithms.YList#cursor} + * returned by instances of this class is not fail fast. + *

    + * @class + * @implements {yfiles.collections.IList.} */ - export interface ColumnDescriptor extends Object,yfiles.lang.IComparable{} - export class ColumnDescriptor { + export interface YList extends Object,yfiles.collections.IList{} + export class YList { /** - * Compares this {@link yfiles.layout.ColumnDescriptor} instance with a given other {@link yfiles.layout.ColumnDescriptor} instance based - * on the indices of the two instances. - * @param {Object} o the {@link yfiles.layout.ColumnDescriptor} to compare to - * @returns {number} -1, 0 or 1 if this {@link yfiles.layout.ColumnDescriptor} is less than, equal to, or greater than the given other - * {@link yfiles.layout.ColumnDescriptor} + * Creates a list that is initialized with the elements provided by the given array of objects. + * @param a */ - compareTo(o:Object):number; + constructor(a:Object[]); /** - * Gets the index of the column within the {@link yfiles.layout.PartitionGrid partition grid}. - * @type {number} + * Creates a list that is initialized with those elements from the given YCursor object for which the given data provider + * returns true upon calling its {@link yfiles.algorithms.IDataProvider#getBoolean getBool} method. + * @param c A cursor providing objects that should be added to this list. + * @param predicate A data provider that acts as a inclusion predicate for each object accessible by the given cursor. */ - index:number; + constructor(c:yfiles.algorithms.ICursor,predicate:yfiles.algorithms.IDataProvider); /** - * Gets or sets the minimum width of the column. - *

    - * The minimum width is defined to be at least 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the minimum width is negative - * @type {number} + * Creates a list that is initialized with the elements provided by the given Collection object. + * @param c */ - minimumWidth:number; + constructor(c:yfiles.collections.IEnumerable); /** - * Gets or sets the left column inset in which no element will lie in the resulting layout. - *

    - * The column inset must be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the left inset is negative - * @type {number} + * Creates a list that is initialized with the elements provided by the given YCursor object. + * @param c */ - leftInset:number; + constructor(c:yfiles.algorithms.ICursor); /** - * Gets or sets the right column inset in which no element will lie in the resulting layout. - *

    - * The column inset must be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the right inset is negative - * @type {number} - */ - rightInset:number; - /** - * Gets or sets the computed width of the column after the layout has been calculated. - *

    - * The computed width needs to be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the computed width is negative - * @type {number} - */ - computedWidth:number; - /** - * Gets or sets the original width of the column. - *

    - * The original width should be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the original width is negative - * @type {number} - */ - originalWidth:number; - /** - * Gets or sets the original position (smallest x-coordinate) of the column. - * @type {number} - */ - originalPosition:number; - /** - * Gets or sets the computed position (smallest x-coordinate) of the column after the layout has been calculated. - * @type {number} - */ - computedPosition:number; - /** - * Gets or sets the tightness factor of this column. - *

    - * This value must lie within the interval [0,1]. - *

    - *

    - * The larger the value, the more the column will be forced to obtain its minimum width: - *

    - *
      - *
    • a value of 0.0d will disable the compression of the column.
    • - *
    • a value of 1.0d will try to force the column to obtain its specified {@link yfiles.layout.ColumnDescriptor#minimumWidth minimum width}.
    • - *
    - * @throws {Stubs.Exceptions.ArgumentError} if the tightness value is outside the interval [0,1] - * @type {number} - */ - tightness:number; - /** - * Gets or sets whether the index of the column is fixed or it should be chosen automatically in order to minimize edge - * lengths. - *

    - * For all columns where this property is enabled, the relative ordering given by the indices is preserved. The remaining - * columns may be sorted again so that the overall edge lengths are minimized. - *

    - * @type {boolean} - */ - indexFixed:boolean; - static $class:yfiles.lang.Class; - } - /** - * This class represents a single partition cell, i.e., a pair consisting of a row and a column. - * @class yfiles.layout.PartitionCellIdEntry - * @implements {yfiles.lang.IComparable} - * @final - */ - export interface PartitionCellIdEntry extends Object,yfiles.lang.IComparable{} - export class PartitionCellIdEntry { - /** - * Compares this {@link yfiles.layout.PartitionCellIdEntry} instance with a given other {@link yfiles.layout.PartitionCellIdEntry} - * instance. - *

    - * The comparison is based on the indices of the {@link yfiles.layout.PartitionCellIdEntry#row rows} and {@link yfiles.layout.PartitionCellIdEntry#column columns} of the two pairs. A {@link yfiles.layout.PartitionCellIdEntry} is - * considered to be smaller than another pair if its {@link yfiles.layout.RowDescriptor#index row index} is smaller than the row index of the other pair. If the row - * indices are equal, the {@link yfiles.layout.PartitionCellIdEntry} with the smaller {@link yfiles.layout.ColumnDescriptor#index column index} is said to be smaller. Hence, - * two {@link yfiles.layout.PartitionCellIdEntry} instances are equal, if the row and column indices are equal. - *

    - * @param {Object} o the {@link yfiles.layout.PartitionCellIdEntry} to be compared - * @returns {number} -1, 0 or 1 if this {@link yfiles.layout.PartitionCellIdEntry} is smaller than, equal to, or greater than the given other {@link yfiles.layout.PartitionCellIdEntry} - * instance - */ - compareTo(o:Object):number; - /** - * Gets the {@link yfiles.layout.RowDescriptor} associated with this {@link yfiles.layout.PartitionCellId partition cell}. - * @type {yfiles.layout.RowDescriptor} - */ - row:yfiles.layout.RowDescriptor; - /** - * Gets the {@link yfiles.layout.ColumnDescriptor} associated with this {@link yfiles.layout.PartitionCellId partition cell}. - * @type {yfiles.layout.ColumnDescriptor} - */ - column:yfiles.layout.ColumnDescriptor; - static $class:yfiles.lang.Class; - } - /** - * {@link yfiles.layout.PartitionCellId} represents an identifier for partition cells of a {@link yfiles.layout.PartitionGrid partition grid} structure. - * @see yfiles.layout.PartitionGrid - * @class yfiles.layout.PartitionCellId - */ - export interface PartitionCellId extends Object{} - export class PartitionCellId { - /** - * Gets a {@link yfiles.collections.ICollection. collection} of elements of type {@link yfiles.layout.PartitionCellIdEntry}. - *

    - * Each pair consists of a {@link yfiles.layout.ColumnDescriptor column} and a {@link yfiles.layout.RowDescriptor row} defining a single {@link yfiles.layout.PartitionCellId partition cell}. - *

    - * @type {yfiles.collections.IEnumerable.} - */ - cells:yfiles.collections.IEnumerable; - /** - * Gets whether or not this {@link yfiles.layout.PartitionCellId} represents a multi-cell, i.e., a cell spanning multiple - * rows/columns. - *

    - * This means that it was created using {@link yfiles.layout.PartitionGrid#createCellSpanId}, - * {@link yfiles.layout.PartitionGrid#createCellSpanId}, {@link yfiles.layout.PartitionGrid#createCellSpanId}, {@link yfiles.layout.PartitionGrid#createColumnSpanId} - * or {@link yfiles.layout.PartitionGrid#createRowSpanId}. - *

    - * @type {boolean} - */ - isSpanning:boolean; - /** - * Gets the first {@link yfiles.layout.RowDescriptor row} associated with this {@link yfiles.layout.PartitionCellId partition cell} identifier. - * @type {yfiles.layout.RowDescriptor} - */ - row:yfiles.layout.RowDescriptor; - /** - * Gets the first {@link yfiles.layout.ColumnDescriptor column} associated with this {@link yfiles.layout.PartitionCellId partition cell} identifier. - * @type {yfiles.layout.ColumnDescriptor} - */ - column:yfiles.layout.ColumnDescriptor; - static $class:yfiles.lang.Class; - } - /** - * This class represents a partition grid that partitions the drawing area into rectangular partition cells. - *

    - * Such a structure allows, for example, to model vertical/horizontal swimlanes which are often used in flow diagrams to - * separate logical units. - *

    - *

    - * The grid consists of rows and columns that are created using the corresponding constructors of this class or methods {@link yfiles.layout.PartitionGrid#addRow} - * and {@link yfiles.layout.PartitionGrid#addColumn}. The {@link yfiles.layout.PartitionGrid} object has to be registered with the graph - * using the {@link yfiles.algorithms.IDataProvider} key {@link yfiles.layout.PartitionGrid#PARTITION_GRID_DP_KEY}. - *

    - *

    - * Each node can be assigned to a {@link yfiles.layout.PartitionCellId} which represents a set of partition cells. The mapping has - * to be registered with the graph using {@link yfiles.algorithms.IDataProvider} key - * {@link yfiles.layout.PartitionGrid#PARTITION_CELL_ID_DP_KEY}. Simple partition cell identifiers which represent a single - * partition cell, i.e., a row/column pair, can be created using method {@link yfiles.layout.PartitionGrid#createCellId} or - * {@link yfiles.layout.PartitionGrid#createCellId}. - *

    - *

    - * Nodes can also be mapped to a partition cell identifier that represents a multi-cell, i.e., a cell spanning multiple - * columns and rows. Please note, however, that multi-cells are not allowed to overlap each other. This means that the user - * has to ensure that each partition cell (row/column pair) is associated with at most one partition cell identifier. The - * multi-cell identifier can be created using methods {@link yfiles.layout.PartitionGrid#createCellSpanId}, - * {@link yfiles.layout.PartitionGrid#createCellSpanId}, {@link yfiles.layout.PartitionGrid#createCellSpanId}, - * {@link yfiles.layout.PartitionGrid#createColumnSpanId}, and {@link yfiles.layout.PartitionGrid#createRowSpanId}. - *

    - *

    - * {@graph {"ann":{"s":[60,30],"d":1, "lblB" : 1, "lblFont" : "16px sans-serif"},"n":[[265,290,230,142,2,[[265,313.6,230,23.6,5,"Column 0"]]],[311.5,386.5,[[336.16,410.85,10.67,18.7]]],[411.5,346.5,[[436.16,370.85,10.67,18.7]]],[505,289,299,144,2,[[505,312.6,299,23.6,5,"Column 1"]]],[631.5,366.5,[[656.16,390.85,10.67,18.7]]],[731.5,326.5,[[756.16,350.85,10.67,18.7]]],[531.5,326.5,[[556.16,350.85,10.67,18.7]]],[819,290,250,140,2,[[819,313.6,250,23.6,5,"Column 2"]]],[831.5,326.5,[[856.16,350.85,10.67,18.7]]],[265,449,230,123,2],[411.5,466.5,[[436.16,490.85,10.67,18.7]]],[411.5,526.5,[[436.16,550.85,10.67,18.7]]],[505,449,299,123,2],[819,449,250,123,2],[931.5,466.5,[[956.16,490.85,10.67,18.7]]],[505,589,299,104,2],[819,589,250,104,2],[531.5,606.5,[[552.83,630.85,17.35,18.7]]],[265,589,230,104,2],[411.5,606.5,[[432.83,630.85,17.35,18.7]]],[831.5,606.5,[[852.83,630.85,17.35,18.7]]],[105,348.2,150,23.6,2,[[105,371.8,150,23.6,5,"Row 0"]]],[105,488.2,150,23.6,2,[[105,511.8,150,23.6,5,"Row 1"]]],[105,628.2,150,23.6,2,[[105,651.8,150,23.6,5,"Row 2"]]]],"e":[[1,2,30,-10,-30,-0,[381.5,391.5,381.5,361.5]],[1,4,30,-0,-30,10,[581.5,401.5,581.5,391.5]],[2,4,30,7.5,-30,-0,[481.5,369,481.5,381.5]],[4,5,30,-0,-30,7.5,[701.5,381.5,701.5,349]],[2,6,30,-7.5,-30,-0,[481.5,354,481.5,341.5]],[6,4,30,7.5,-30,-10,[601.5,349,601.5,371.5]],[6,5,30,-7.5,-30,-7.5,[621.5,334,621.5,341.5,681.5,341.5,681.5,334]],[5,8,30,-0,-30,-0],[8,14,30,-0,-30,-7.5,[901.5,341.5,901.5,474]],[10,14,30,-0,-30,7.5,[881.5,481.5,881.5,489]],[1,17,30,10,-30,10,[381.5,411.5,381.5,661.5,481.5,661.5,481.5,631.5]],[11,17,30,-0,-30,-10,[481.5,541.5,481.5,611.5]],[19,17,30,-0,-30,-0],[17,20,30,-0,-30,-0]],"vp":[105.0,289.0,964.0,404.0]}} Sample output of a layout algorithm with a partition grid - *

    - * @class yfiles.layout.PartitionGrid - */ - export interface PartitionGrid extends Object{} - export class PartitionGrid { - /** - * Creates an instance of {@link yfiles.layout.PartitionGrid} with the given number of rows and columns as well as with given - * insets and minimum sizes. - * @param {number} rowCount the number of rows - * @param {number} columnCount the number of columns - * @param {number} rowInsets the top and bottom insets of the rows - * @param {number} columnInsets the left and right insets of the columns - * @param {number} minRowSize the minimum row height - * @param {number} minColumnSize the minimum column width - * @constructor - */ - constructor(rowCount:number,columnCount:number,rowInsets:number,columnInsets:number,minRowSize:number,minColumnSize:number); - /** - * Creates an instance of {@link yfiles.layout.PartitionGrid} with the given number of rows and columns. - * @param {number} rowCount the number of rows - * @param {number} columnCount the number of columns - * @constructor - */ - constructor(rowCount:number,columnCount:number); - /** - * Creates a new empty instance of {@link yfiles.layout.PartitionGrid}. - * @constructor + * Creates an empty doubly linked list. */ constructor(); /** - * Adds a new {@link yfiles.layout.ColumnDescriptor column} to the {@link yfiles.layout.PartitionGrid} instance. + * Appends all elements provided by the given cursor to this list. *

    - * The index of the column (as returned by {@link yfiles.layout.ColumnDescriptor#index}) is equal to the size of the list returned by {@link yfiles.layout.PartitionGrid#columns}. + * The cursor will be moved from its given position to the end. *

    - * @returns {yfiles.layout.ColumnDescriptor} a new {@link yfiles.layout.ColumnDescriptor} instance - */ - addColumn():yfiles.layout.ColumnDescriptor; - /** - * Adds a new {@link yfiles.layout.RowDescriptor row} to the {@link yfiles.layout.PartitionGrid} instance. - *

    - * The index of the row (as returned by {@link yfiles.layout.RowDescriptor#index}) is equal to the size of the list returned by {@link yfiles.layout.PartitionGrid#rows}. - *

    - * @returns {yfiles.layout.RowDescriptor} a new {@link yfiles.layout.RowDescriptor} instance - */ - addRow():yfiles.layout.RowDescriptor; - /** - * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents the cell defined by the given column and row index. - * @param {number} rowIndex the row index of the row defining the cell - * @param {number} columnIndex the column index of the column defining the cell - * @returns {yfiles.layout.PartitionCellId} a {@link yfiles.layout.PartitionCellId} instance - * @throws {Stubs.Exceptions.ArgumentError} if the given column/row index is not valid - */ - createCellId(rowIndex:number,columnIndex:number):yfiles.layout.PartitionCellId; - /** - * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents the cell defined by the given {@link yfiles.layout.ColumnDescriptor column} and {@link yfiles.layout.RowDescriptor row}. - * @param {yfiles.layout.RowDescriptor} rd the row defining the cell - * @param {yfiles.layout.ColumnDescriptor} cd the column defining the cell - * @returns {yfiles.layout.PartitionCellId} a {@link yfiles.layout.PartitionCellId} instance - * @throws {Stubs.Exceptions.ArgumentError} if the given column/row is null - */ - createCellId(rd:yfiles.layout.RowDescriptor,cd:yfiles.layout.ColumnDescriptor):yfiles.layout.PartitionCellId; - /** - * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a multi-cell spanning multiple columns and rows. - *

    - * The partition cell identifier represents all cells defined by a row between fromRow and toRow (both including) and a - * column between fromRow and toCol (both including). - *

    - *

    - * A group node mapped to such a partition cell identifier represents the multi-cell, i.e., its boundary corresponds to the - * smallest rectangle containing all partition cells specified by the partition cell identifier. The boundary does not - * depend on the partition cells associated with the group's descendants. Hence, each non-group descendant has to be - * manually assigned to one of the partition cells. Furthermore, edges incident to such a group node are not considered - * during the layout. - *

    - * @param {yfiles.layout.RowDescriptor} fromRow the topmost row defining the cell - * @param {yfiles.layout.ColumnDescriptor} fromCol the leftmost column defining the cell - * @param {yfiles.layout.RowDescriptor} toRow the bottommost row defining the cell - * @param {yfiles.layout.ColumnDescriptor} toCol the rightmost column defining the cell - * @returns {yfiles.layout.PartitionCellId} a {@link yfiles.layout.PartitionCellId} instance - */ - createCellSpanId(fromRow:yfiles.layout.RowDescriptor,fromCol:yfiles.layout.ColumnDescriptor,toRow:yfiles.layout.RowDescriptor,toCol:yfiles.layout.ColumnDescriptor):yfiles.layout.PartitionCellId; - /** - * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a multi-cell spanning multiple columns and rows. - *

    - * The partition cell identifier represents all cells defined by a row with index between fromRowIndex and toRowIndex (both - * including) and a column with index between fromColIndex and toColIndex (both including). - *

    - *

    - * A group node mapped to such a partition cell identifier represents the multi-cell, i.e., its boundary corresponds to the - * smallest rectangle containing all partition cells specified by the partition cell identifier. The boundary does not - * depend on the partition cells associated with the group's descendants. Hence, each non-group descendant has to be - * manually assigned to one of the partition cells. Furthermore, edges incident to such a group node are not considered - * during the layout. - *

    - * @param {number} fromRowIndex the row index of the topmost row defining the cell - * @param {number} fromColIndex the column index of the leftmost column defining the cell - * @param {number} toRowIndex the row index of the bottommost row defining the cell - * @param {number} toColIndex the column index of the rightmost column defining the cell - * @returns {yfiles.layout.PartitionCellId} a {@link yfiles.layout.PartitionCellId} instance - */ - createCellSpanId(fromRowIndex:number,fromColIndex:number,toRowIndex:number,toColIndex:number):yfiles.layout.PartitionCellId; - /** - * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a multi-cell spanning multiple columns and rows. - *

    - * The partition cell identifier represents all cells spanned by the columns of columnList and rows of rowList. - *

    - *

    - * A group node mapped to such a partition cell identifier represents the multi-cell, i.e., its boundary corresponds to the - * smallest rectangle containing all partition cells specified by the partition cell identifier. The boundary does not - * depend on the partition cells associated with the group's descendants. Hence, each non-group descendant has to be - * manually assigned to one of the partition cells. Furthermore, edges incident to such a group node are not considered - * during the layout. - *

    - * @param {yfiles.collections.ICollection.} rowList the {@link yfiles.layout.RowDescriptor rows} defining the cell - * @param {yfiles.collections.ICollection.} columnList the {@link yfiles.layout.ColumnDescriptor columns} defining the cell - * @returns {yfiles.layout.PartitionCellId} a {@link yfiles.layout.PartitionCellId} instance - */ - createCellSpanId(rowList:yfiles.collections.ICollection,columnList:yfiles.collections.ICollection):yfiles.layout.PartitionCellId; - /** - * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a cell spanning a whole column. - *

    - * A group node mapped to such a partition cell identifier represents the column, i.e., its enclosing boundary corresponds - * to that of the column. The boundary does not depend on the partition cells associated with the group's descendants. - * Hence, each non-group descendant has to be manually assigned to one of the partition cells. Furthermore, edges incident - * to such a group node are not considered during the layout. - *

    - * @param {number} columnIndex the column index of the column defining the cell - * @returns {yfiles.layout.PartitionCellId} a {@link yfiles.layout.PartitionCellId} instance - */ - createColumnSpanId(columnIndex:number):yfiles.layout.PartitionCellId; - /** - * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a cell spanning a whole row. - *

    - * A group node mapped to such a partition cell identifier represents the row, i.e., its enclosing boundary corresponds to - * that of the row. The boundary does not depend on the partition cells associated with the group's descendants. Hence, - * each non-group descendant has to be manually assigned to one of the partition cells. Furthermore, edges incident to such - * a group node are not considered during the layout. - *

    - * @param {number} rowIndex the row index of the row defining the cell - * @returns {yfiles.layout.PartitionCellId} a {@link yfiles.layout.PartitionCellId} instance - */ - createRowSpanId(rowIndex:number):yfiles.layout.PartitionCellId; - /** - * Finalizes the orientation changes and is called at the end of the {@link yfiles.layout.OrientationLayout} stage. - *

    - * Points are transferred to their final positions through {@link yfiles.layout.OrientationLayout#completeTransform}. - *

    - * @param {yfiles.layout.OrientationLayout} orientationLayouter an {@link yfiles.layout.OrientationLayout} instance - * @see yfiles.layout.OrientationLayout - */ - finalizeOrientationChange(orientationLayouter:yfiles.layout.OrientationLayout):void; - /** - * Returns the {@link yfiles.layout.ColumnDescriptor column} with the given index. - * @param {number} index the index of the column to be returned - * @returns {yfiles.layout.ColumnDescriptor} the {@link yfiles.layout.ColumnDescriptor column} with the given index or null if no such column exists - */ - getColumn(index:number):yfiles.layout.ColumnDescriptor; - /** - * Returns the {@link yfiles.layout.PartitionGrid} instance associated with the given graph. - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {yfiles.layout.PartitionGrid} the {@link yfiles.layout.PartitionGrid} of the graph or null if the graph has no associated partition grid - * @static - */ - static getPartitionGrid(graph:yfiles.algorithms.Graph):yfiles.layout.PartitionGrid; - /** - * Returns the {@link yfiles.layout.RowDescriptor row} with the given index. - * @param {number} index the index of the row to be returned - * @returns {yfiles.layout.RowDescriptor} the {@link yfiles.layout.RowDescriptor row} with the given index or null if no such row exists - */ - getRow(index:number):yfiles.layout.RowDescriptor; - static hasAtLeastTwoNonEmptyRows(graph:yfiles.algorithms.Graph):boolean; - /** - * Prepares for the orientation changes and is called at the beginning of the {@link yfiles.layout.OrientationLayout} stage. - *

    - * Original points are transferred to their temporary positions through {@link yfiles.layout.OrientationLayout#prepareTransform}. - *

    - * @param {yfiles.layout.OrientationLayout} orientationLayouter an {@link yfiles.layout.OrientationLayout} instance - * @see yfiles.layout.OrientationLayout - */ - prepareOrientationChange(orientationLayouter:yfiles.layout.OrientationLayout):void; - /** - * Data provider key for storing the partition grid structure - *

    - * If the {@link yfiles.algorithms.IDataProvider} contains a partition grid structure, this structure will be considered during - * layout (provided that the layout algorithm supports such constraints). - *

    - * @const - * @static - * @type {yfiles.algorithms.GraphDpKey.} - */ - static PARTITION_GRID_DP_KEY:yfiles.algorithms.GraphDpKey; - /** - * Data provider key for storing a set of partition cells for each node - *

    - * Each node is placed inside the columns/rows defined by the corresponding {@link yfiles.layout.PartitionCellId} identifier. - * Instances can be shared among multiple nodes, but don't have to be shared. - *

    - * @see yfiles.layout.PartitionCellId - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static PARTITION_CELL_ID_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Gets or sets whether or not the order of the columns should be chosen automatically to minimize edge lengths. - *

    - * For all columns where {@link yfiles.layout.ColumnDescriptor#indexFixed} is set to - * true, the relative ordering given by the indices is preserved. The remaining columns may be sorted again so that the - * overall edge lengths are minimized. - *

    - * @type {boolean} - */ - optimizeColumnOrder:boolean; - /** - * Gets or sets whether or not the order of the rows should be chosen automatically to minimize edge lengths. - *

    - * For all rows where {@link yfiles.layout.RowDescriptor#indexFixed} is set to - * true, the relative ordering given by the indices is preserved. The remaining rows may be sorted again so that the - * overall edge lengths are minimized. - *

    - * @type {boolean} - */ - optimizeRowOrder:boolean; - /** - * Gets the list of rows of the {@link yfiles.layout.PartitionGrid partition grid}. - * @type {yfiles.algorithms.YList} - */ - rows:yfiles.algorithms.YList; - /** - * Gets the columns of the {@link yfiles.layout.PartitionGrid partition grid}. - * @type {yfiles.algorithms.YList} - */ - columns:yfiles.algorithms.YList; - static $class:yfiles.lang.Class; - } - /** - * This class represents a row of a {@link yfiles.layout.PartitionGrid partition grid} structure. - *

    - * The results of the calculation of the geometry of the row will be placed into the instances of this class after the - * layout. - *

    - * @see yfiles.layout.PartitionGrid - * @class yfiles.layout.RowDescriptor - * @implements {yfiles.lang.IComparable} - */ - export interface RowDescriptor extends Object,yfiles.lang.IComparable{} - export class RowDescriptor { - /** - * Compares this {@link yfiles.layout.RowDescriptor} instance with a given other {@link yfiles.layout.RowDescriptor} instance based on the - * indices of the two instances. - * @param {Object} o the {@link yfiles.layout.RowDescriptor} to compare to - * @returns {number} -1, 0 or 1 if this {@link yfiles.layout.RowDescriptor} is less than, equal to, or greater than the given other - * {@link yfiles.layout.RowDescriptor} - */ - compareTo(o:Object):number; - /** - * Gets the index of the row within the {@link yfiles.layout.PartitionGrid partition grid}. - * @type {number} - */ - index:number; - /** - * Gets or sets the minimum height of the row. - *

    - * The minimum height is defined to be at least 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the minimum height is negative - * @type {number} - */ - minimumHeight:number; - /** - * Gets or sets the top inset in which no element will lie in the resulting layout. - *

    - * The inset value needs to be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given top inset is negative - * @type {number} - */ - topInset:number; - /** - * Gets or sets the bottom inset in which no element will lie in the resulting layout. - *

    - * The inset value needs to be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given bottom inset is negative - * @type {number} - */ - bottomInset:number; - /** - * Gets or sets the computed height of the row after the layout has been calculated. - *

    - * The computed height needs to be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the computed height is negative - * @type {number} - */ - computedHeight:number; - /** - * Gets or sets the original position (smallest y-coordinate) of the row. - * @type {number} - */ - originalPosition:number; - /** - * Gets or sets the original height of the row. - *

    - * The original height needs to be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the original height is negative - * @type {number} - */ - originalHeight:number; - /** - * Gets or sets the computed position (smallest y-coordinate) of the row after the layout has been calculated. - * @type {number} - */ - computedPosition:number; - /** - * Gets or sets the tightness factor of this row. - *

    - * This value must lie within the interval [0,1]. - *

    - *

    - * The larger the value, the more the row will be forced to obtain its minimum height: - *

    - *
      - *
    • a value of 0.0d will disable the compression of the row.
    • - *
    • a value of 1.0d will try to force the row to obtain its specified {@link yfiles.layout.RowDescriptor#minimumHeight minimum height}.
    • - *
    - * @throws {Stubs.Exceptions.ArgumentError} if the tightness value is outside the interval [0,1] - * @type {number} - */ - tightness:number; - /** - * Gets or sets whether the index of the row is fixed or it should be chosen automatically in order to minimize edge - * lengths. - *

    - * For all rows where this property is enabled, the relative ordering given by the indices is preserved. The remaining rows - * may be sorted again so that the overall edge lengths are minimized. - *

    - * @type {boolean} - */ - indexFixed:boolean; - static $class:yfiles.lang.Class; - } - export enum InterEdgeRoutingStyle{ - /** - * An inter-edge routing style based on which the edge layout of inter-edges will be adopted from the - * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @see yfiles.layout.FixGroupLayoutStage#interEdgeRoutingStyle - */ - ADOPT, - /** - * An inter-edge routing style based on which inter-edges are routed in an orthogonal style. - * @see yfiles.layout.FixGroupLayoutStage#interEdgeRoutingStyle - * @see yfiles.layout.FixGroupLayoutStage#interEdgeRouter - */ - ORTHOGONAL, - /** - * An inter-edge routing style based on which inter-edges are routed as straight lines. - * @see yfiles.layout.FixGroupLayoutStage#interEdgeRoutingStyle - * @see yfiles.layout.FixGroupLayoutStage#interEdgeRouter - */ - STRAIGHTLINE - } - /** - * This interface defines {@link yfiles.algorithms.IDataProvider} keys for those layout algorithms that can handle hierarchically - * grouped graphs. - *

    - * There are two groups of {@link yfiles.algorithms.IDataProvider} keys. {@link yfiles.algorithms.IDataProvider}s registered with - * {@link yfiles.layout.GroupingKeys#NODE_ID_DP_KEY}, {@link yfiles.layout.GroupingKeys#GROUP_DP_KEY} and {@link yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY} - * define the relationship of nodes within the hierarchy. A parent node is defined for each node in the graph. This parent - * is the containing group node. For top-level nodes, this parent is null. - *

    - *

    - * {@link yfiles.layout.GroupingKeys#GROUP_NODE_INSETS_DP_KEY} and {@link yfiles.layout.GroupingKeys#MINIMUM_NODE_SIZE_DP_KEY} are used for - * registering - * {@link yfiles.algorithms.IDataProvider}s that add layout information to group nodes such as the insets and the minimum size - * respectively. - *

    - * @see yfiles.layout.GroupingSupport - * @class yfiles.layout.GroupingKeys - * @static - */ - export interface GroupingKeys extends Object{} - export class GroupingKeys { - /** - * Data provider key for assigning a unique ID for each node. - *

    - * The IDs of the nodes need to differ based on {@link Object#hashCode} and {@link Object#equals}. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static NODE_ID_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for describing the hierarchy of nodes in the graph. - * @see yfiles.layout.GroupingKeys#NODE_ID_DP_KEY - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static PARENT_NODE_ID_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for distinguishing normal nodes from group nodes. - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static GROUP_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for assigning insets for group nodes. - *

    - * Insets reserve space around the contents of a group node. Labels and other visual decorations may be placed inside this - * space. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static GROUP_NODE_INSETS_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for assigning minimum sizes for group nodes. - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static MINIMUM_NODE_SIZE_DP_KEY:yfiles.algorithms.NodeDpKey; - static $class:yfiles.lang.Class; - } - /** - * This class provides convenient and efficient access to the hierarchic graph structure. - *

    - * The grouping information is provided through {@link yfiles.algorithms.IDataProvider}s registered with the graph with keys - * {@link yfiles.layout.GroupingKeys#NODE_ID_DP_KEY}, {@link yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY} and - * {@link yfiles.layout.GroupingKeys#GROUP_DP_KEY}. It describes the hierarchy as a tree where a group node is the parent of the - * nodes that it contains. - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":1},"n":[[444,-37.38,62,82.38,2,[[444,-15,62,22.38,"9"]]],[460,0,[[469.66,24.35,10.67,18.7,"5"]]],[536,0,[[545.66,24.35,10.67,18.7,"6"]]],[384,0,[[393.66,24.35,10.67,18.7,"4"]]],[596,-10,50,50,2,[[596,12.38,50,22.38,"7"]]],[140,-74.75,214,134.75,2,[[140,-52.38,214,22.38,"10"]]],[156,0,[[165.66,24.35,10.67,18.7,"1"]]],[216,-37.38,122,82.38,2,[[216,-15,122,22.38,"8"]]],[232,0,[[241.66,24.35,10.67,18.7,"2"]]],[292,0,[[301.66,24.35,10.67,18.7,"3"]]]],"e":[],"vp":[140.0,-75.0,506.0,135.0]}} This is an example graph that contains group nodes. {@graph {"ann":{"s":[30,30],"d":1},"n":[[34.5,70,42,52.38,2,[[34.5,92.38,42,22.38,"10"]]],[200,162.38,42,52.38,2,[[200,184.75,42,22.38,"9"]]],[150,277.13,[[159.66,301.48,10.67,18.7,"4"]]],[179.25,0,[[160.9,22.7,66.7,18.7,"Virtual Root"]]],[0,277.13,[[9.66,301.48,10.67,18.7,"1"]]],[206,277.13,[[215.66,301.48,10.67,18.7,"5"]]],[69,162.38,42,52.38,2,[[69,184.75,42,22.38,"8"]]],[50,277.13,[[59.66,301.48,10.67,18.7,"2"]]],[100,277.13,[[109.66,301.48,10.67,18.7,"3"]]],[312,254.75,42,52.38,2,[[312,277.13,42,22.38,"7"]]],[262,277.13,[[271.66,301.48,10.67,18.7,"6"]]]],"e":[[3,0,[194.25,50,55.5,50]],[3,2,[194.25,50,165,50]],[3,1,[194.25,50,221,50]],[0,4,[55.5,142.38,15,142.38]],[1,5],[0,6,[55.5,142.38,90,142.38]],[6,7,[90,234.75,65,234.75]],[6,8,[90,234.75,115,234.75]],[3,9,[194.25,50,333,50]],[3,10,[194.25,50,277,50]]],"vp":[0.0,0.0,354.0,308.0]}} The hierarchy tree of the grouped graph reveals the relationship - * among the nodes. The corresponding nodes have the same labels as in the grouped graph. Group nodes are considered as the - * parents of their content which can consist of group nodes and/or normal nodes. Top-level nodes are children of a - * {@link yfiles.layout.GroupingSupport#root virtual root}. Leaf nodes can either be normal nodes or empty groups. - *

    - * @class yfiles.layout.GroupingSupport - */ - export interface GroupingSupport extends Object{} - export class GroupingSupport { - /** - * Creates a new {@link yfiles.layout.GroupingSupport} instance that represents the hierarchy of the graph. - *

    - * The hierarchy information is cached during the constructor call. Later modifications to the graph are not considered and - * may lead to errors when using this {@link yfiles.layout.GroupingSupport} instance. - *

    - * @param {yfiles.algorithms.Graph} graph the graph instance from which the hierarchy information is obtained - * @constructor - */ - constructor(graph:yfiles.algorithms.Graph); - /** - * Creates a {@link yfiles.algorithms.INodeMap} to store hierarchy information for each node. - *

    - * This method is called in {@link yfiles.layout.GroupingSupport#init} and may be overridden to customize how the {@link yfiles.algorithms.INodeMap} - * is created. - *

    - * @param {yfiles.algorithms.Graph} graph the current graph - * @returns {yfiles.algorithms.INodeMap} the new instance of {@link yfiles.algorithms.INodeMap} - * @see yfiles.layout.GroupingSupport#init - * @see yfiles.layout.GroupingSupport#disposeInfoMap - * @protected - */ - createInfoMap(graph:yfiles.algorithms.Graph):yfiles.algorithms.INodeMap; - /** - * Disposes of all internal data structures held by this {@link yfiles.layout.GroupingSupport instance}. - *

    - * {@link yfiles.layout.GroupingSupport} should be disposed of when it is not needed anymore, or if the state of the graph changes - * (e.g. new nodes are added). - *

    - */ - dispose():void; - /** - * Disposes of the {@link yfiles.algorithms.INodeMap} created to store hierarchy information for each node. - *

    - * This method is called in {@link yfiles.layout.GroupingSupport#dispose} and may be overridden to revert changes from - * {@link yfiles.layout.GroupingSupport#createInfoMap}. - *

    - * @param {yfiles.algorithms.Graph} graph the current graph - * @param {yfiles.algorithms.INodeMap} infoMap the {@link yfiles.algorithms.INodeMap} which contains the hierarchy information for each node - * @see yfiles.layout.GroupingSupport#dispose - * @see yfiles.layout.GroupingSupport#createInfoMap - * @protected - */ - disposeInfoMap(graph:yfiles.algorithms.Graph,infoMap:yfiles.algorithms.INodeMap):void; - /** - * Returns the direct children of the given group node. - *

    - * If the {@link yfiles.layout.GroupingSupport#root virtual root of the hierarchy tree} is passed, all top-level nodes are returned. - *

    - * @param {yfiles.algorithms.Node} parent the group node - * @returns {yfiles.algorithms.NodeList} a set of child nodes of the given parent node - * @see yfiles.layout.GroupingSupport#root - * @see yfiles.layout.GroupingSupport#getParent - * @see yfiles.layout.GroupingSupport#getDescendants - */ - getChildren(parent:yfiles.algorithms.Node):yfiles.algorithms.NodeList; - /** - * Returns all descendants of the given group node. - *

    - * All nodes in the subtree rooted at this group node are collected recursively. - *

    - *

    - * If the {@link yfiles.layout.GroupingSupport#root virtual root of the hierarchy tree} is passed, all nodes in the graph are returned. - *

    - * @param {yfiles.algorithms.Node} parent the group node - * @returns {yfiles.algorithms.NodeList} a set of nodes that belong to a subtree of the hierarchy tree rooted at the given parent - * @see yfiles.layout.GroupingSupport#root - * @see yfiles.layout.GroupingSupport#getParent - * @see yfiles.layout.GroupingSupport#getChildren - */ - getDescendants(parent:yfiles.algorithms.Node):yfiles.algorithms.NodeList; - /** - * Returns all edges crossing the bounds of the given group node such that their targets are inside the group node while - * their sources lie outside the group node. - * @param {yfiles.algorithms.Node} group the group node whose bounds are crossed - * @returns {yfiles.algorithms.EdgeList} a set of edges that cross the bounds of the group node starting outside the group node - * @see yfiles.layout.GroupingSupport#getEdgesGoingOut - * @see yfiles.layout.GroupingSupport#isNormalEdge - */ - getEdgesGoingIn(group:yfiles.algorithms.Node):yfiles.algorithms.EdgeList; - /** - * Returns all edges crossing the bounds of the given group node such that their sources are inside the group node while - * their targets lie outside the group node. - * @param {yfiles.algorithms.Node} group the group node whose bounds are crossed - * @returns {yfiles.algorithms.EdgeList} a set of edges that cross the bounds of the group node starting inside the group node - * @see yfiles.layout.GroupingSupport#getEdgesGoingIn - * @see yfiles.layout.GroupingSupport#isNormalEdge - */ - getEdgesGoingOut(group:yfiles.algorithms.Node):yfiles.algorithms.EdgeList; - /** - * Returns the nearest common ancestor of the given nodes in the hierarchy structure. - *

    - * The nearest common ancestor is the local root of the smallest subtree in the hierarchy tree that contains both nodes. - * This group is the first node that contains these two nodes. If no such node exists, the {@link yfiles.layout.GroupingSupport#root virtual root} is returned. - *

    - *

    - * Common ancestors in special cases: - *

    - *
      - *
    • node1 == node2: the parent of node1/node2
    • - *
    • node1 is parent of node2: the parent of node1
    • - *
    • node2 is parent of node1: the parent of node2
    • - *
    - * @param {yfiles.algorithms.Node} node1 one of the two nodes whose common ancestor is determined - * @param {yfiles.algorithms.Node} node2 one of the two nodes whose common ancestor is determined - * @returns {yfiles.algorithms.Node} the nearest common ancestor node or {@link yfiles.layout.GroupingSupport#root} - */ - getNearestCommonAncestor(node1:yfiles.algorithms.Node,node2:yfiles.algorithms.Node):yfiles.algorithms.Node; - /** - * Returns the parent for the given node. - *

    - * The parent is the containing group node. - *

    - * @param {yfiles.algorithms.Node} node the node for which the parent is determined - * @returns {yfiles.algorithms.Node} the parent of the given node or null for a top-level node - * @throws {Stubs.Exceptions.ArgumentError} if the given node is null - * @see yfiles.layout.GroupingSupport#getChildren - * @see yfiles.layout.GroupingSupport#getDescendants - * @see yfiles.layout.GroupingSupport#getNearestCommonAncestor - */ - getParent(node:yfiles.algorithms.Node):yfiles.algorithms.Node; - /** - * Returns an immediate child of the group node that represents the given node. - *

    - * If this node is already a child of the group node, the group node will be its representative. In case the node is - * located further down in the hierarchy, the child of the group node, which is also an ancestor of the node, is used. - * There is no representative if the node is not a descendant of the group. - *

    - * @param {yfiles.algorithms.Node} node the node for which a representative is searched - * @param {yfiles.algorithms.Node} group the group node to which the representative should belong - * @returns {yfiles.algorithms.Node} the representative or null if the node is not a descendant of the group - * @throws {Stubs.Exceptions.ArgumentError} if the given node is null - */ - getRepresentative(node:yfiles.algorithms.Node,group:yfiles.algorithms.Node):yfiles.algorithms.Node; - /** - * Determines whether or not the given node is a group node with children. - *

    - * Normal nodes never have children. - *

    - * @param {yfiles.algorithms.Node} node the potential parent - * @returns {boolean} true if the given node has children, false otherwise - * @see yfiles.layout.GroupingSupport#getChildren - * @see yfiles.layout.GroupingSupport#isGroupNode - */ - hasChildren(node:yfiles.algorithms.Node):boolean; - /** - * Initializes internal data structures. - *

    - * This method is called from {@link yfiles.layout.GroupingSupport} and retrieves the state of the hierarchic graph at the moment - * of invocation. It may be overridden to append additional information used for group handling. - *

    - * @see yfiles.layout.GroupingSupport#dispose - * @protected - */ - init():void; - /** - * Returns whether or not the given graph is flat. - *

    - * A graph is considered to be flat if there exist no group nodes or there exist group nodes but none of them has children. - *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {boolean} true if there are no groups or only empty groups in the graph, false otherwise - * @see yfiles.layout.GroupingSupport#isGrouped - * @static - */ - static isFlat(graph:yfiles.algorithms.Graph):boolean; - /** - * Returns whether or not the given graph is grouped. - *

    - * A graph is considered to be grouped if there are {@link yfiles.algorithms.IDataProvider}s registered with the graph with keys - * {@link yfiles.layout.GroupingKeys#GROUP_DP_KEY}, {@link yfiles.layout.GroupingKeys#NODE_ID_DP_KEY} and - * {@link yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY}. - *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {boolean} true if the graph contains hierarchic information, false otherwise - * @see yfiles.layout.GroupingSupport#isFlat - * @static - */ - static isGrouped(graph:yfiles.algorithms.Graph):boolean; - /** - * Determines whether or not the given node is a group node. - *

    - * While group nodes may have children, normal nodes never have children. - *

    - * @param {yfiles.algorithms.Node} node the potential group node - * @returns {boolean} true if the given node is a group node, false otherwise - * @see yfiles.layout.GroupingSupport#hasChildren - */ - isGroupNode(node:yfiles.algorithms.Node):boolean; - /** - * Determines whether or not the given edge is a normal edge as opposed to an edge that crosses any group node bounds. - *

    - * Source and target of a normal edge are part of the same hierarchy level and share the same parent node. - *

    - * @param {yfiles.algorithms.Edge} edge the edge to check - * @returns {boolean} true if the given edge is normal, false otherwise - * @see yfiles.layout.GroupingSupport#getEdgesGoingIn - * @see yfiles.layout.GroupingSupport#getEdgesGoingOut - */ - isNormalEdge(edge:yfiles.algorithms.Edge):boolean; - /** - * Gets the {@link yfiles.algorithms.Graph} instance for which this {@link yfiles.layout.GroupingSupport} object provides hierarchy - * information. - * @type {yfiles.algorithms.Graph} - */ - graph:yfiles.algorithms.Graph; - /** - * Gets a {@link yfiles.algorithms.Node} instance associated with the virtual root of the hierarchy tree. - *

    - * This instance can be given to the {@link yfiles.layout.GroupingSupport#getChildren} to obtain the nodes of the top level of the - * hierarchy. - *

    - * @see yfiles.layout.GroupingSupport#getChildren - * @type {yfiles.algorithms.Node} - */ - root:yfiles.algorithms.Node; - static $class:yfiles.lang.Class; - } - /** - * A {@link yfiles.layout.ILayoutStage layout stage} that hides the group nodes of hierarchically grouped graphs. - *

    - * This stage removes all group nodes and adjacent edges from the graph before passing it to the - * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. After the core layout algorithm has arranged the graph, the hidden elements will be reinserted. - *

    - *

    - * This stage is used by layout algorithms that cannot handle grouped graphs (e.g. {@link yfiles.circular.CircularLayout}). - *

    - * @class yfiles.layout.HideGroupsStage - * @extends {yfiles.layout.LayoutStageBase} - */ - export interface HideGroupsStage extends yfiles.layout.LayoutStageBase{} - export class HideGroupsStage { - /** - * Creates an instance of {@link yfiles.layout.HideGroupsStage} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor - */ - constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); - /** - * Hides the group nodes and their incident edges of the input graph. - *

    - * Furthermore, this method removes all grouping-related {@link yfiles.algorithms.IDataProvider}s from the input graph. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @see yfiles.layout.GroupingKeys#NODE_ID_DP_KEY - * @see yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY - * @see yfiles.layout.GroupingKeys#GROUP_DP_KEY - * @see yfiles.layout.HideGroupsStage#unhideGroupNodes - */ - hideGroupNodes(graph:yfiles.layout.LayoutGraph):void; - /** - * Un-hides the group nodes and their incident edges of the input graph that were previously hidden using method - * {@link yfiles.layout.HideGroupsStage#hideGroupNodes}. - *

    - * Furthermore, this method restores all previously removed grouping related - * {@link yfiles.algorithms.IDataProvider}s on the input graph. - *

    - * @param {yfiles.layout.LayoutGraph} graph the given graph - * @see yfiles.layout.GroupingKeys#NODE_ID_DP_KEY - * @see yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY - * @see yfiles.layout.GroupingKeys#GROUP_DP_KEY - * @see yfiles.layout.HideGroupsStage#hideGroupNodes - */ - unhideGroupNodes(graph:yfiles.layout.LayoutGraph):void; - /** - * Gets or sets whether or not empty group nodes, i.e., group nodes without children, will be hidden by this stage. - * @type {boolean} - */ - hidingEmptyGroupNodes:boolean; - /** - * Gets or sets the {@link yfiles.layout.IGroupBoundsCalculator} instance for calculating the sizes of group nodes. - *

    - * For every group which is in its open state, the {@link yfiles.layout.IGroupBoundsCalculator} will be asked to calculate the - * bounds for the group's child nodes. The resulting size will be used during the ongoing layout calculation. - *

    - * @type {yfiles.layout.IGroupBoundsCalculator} - */ - groupBoundsCalculator:yfiles.layout.IGroupBoundsCalculator; - static $class:yfiles.lang.Class; - } - /** - * A {@link yfiles.layout.IGroupBoundsCalculator} is responsible for calculating the bounds of a group node during a layout - * process. - * @interface - */ - export interface IGroupBoundsCalculator extends Object{ - /** - * Calculates the bounds of the given group node that contains the given list of child nodes. - *

    - * This method is called during the layout process. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} groupNode the group node whose bounds will be calculated - * @param {yfiles.algorithms.NodeList} children a {@link yfiles.algorithms.NodeList} containing the nodes that reside inside the group node - * @returns {yfiles.algorithms.Rectangle2D} a {@link yfiles.algorithms.Rectangle2D} instance that describes the bounds of the group node - * @abstract - */ - calculateBounds(graph:yfiles.layout.LayoutGraph,groupNode:yfiles.algorithms.Node,children:yfiles.algorithms.NodeList):yfiles.algorithms.Rectangle2D; - } - var IGroupBoundsCalculator:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * This {@link yfiles.layout.IGroupBoundsCalculator} calculates the bounds of group nodes and allows to specify custom insets for - * each group node. - *

    - * {@link yfiles.algorithms.Insets Insets} are provided by a {@link yfiles.algorithms.IDataProvider} that must have been registered with the graph using the - * specified {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key} prior to the invocation of the layout algorithm. - *

    - * @class yfiles.layout.InsetsGroupBoundsCalculator - * @implements {yfiles.layout.IGroupBoundsCalculator} - */ - export interface InsetsGroupBoundsCalculator extends Object,yfiles.layout.IGroupBoundsCalculator{} - export class InsetsGroupBoundsCalculator { - /** - * Constructs an instance of {@link yfiles.layout.InsetsGroupBoundsCalculator} using the given {@link yfiles.algorithms.IDataProvider} key - * as {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey group node insets key} and the given insets as {@link yfiles.layout.InsetsGroupBoundsCalculator#defaultInsets default insets}. - * @param {Object} [groupNodeInsetsDPKey=null] the {@link yfiles.algorithms.IDataProvider} key to use as {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key} - * @param {yfiles.algorithms.Insets} [defaultInsets=null] the insets to use as {@link yfiles.layout.InsetsGroupBoundsCalculator#defaultInsets default insets} - * @constructor - */ - constructor(groupNodeInsetsDPKey?:Object,defaultInsets?:yfiles.algorithms.Insets); - /** - * Constructs an instance of {@link yfiles.layout.InsetsGroupBoundsCalculator} using the given {@link yfiles.algorithms.IDataProvider} key - * as {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey group node insets key} and the given insets as {@link yfiles.layout.InsetsGroupBoundsCalculator#defaultInsets default insets}. - * @param {Object} options The parameters to pass. - * @param {Object} [options.groupNodeInsetsDPKey=null] the {@link yfiles.algorithms.IDataProvider} key to use as {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key} - * @param {yfiles.algorithms.Insets} [options.defaultInsets=null] the insets to use as {@link yfiles.layout.InsetsGroupBoundsCalculator#defaultInsets default insets} - * @constructor - */ - constructor(options:{groupNodeInsetsDPKey?:Object,defaultInsets?:yfiles.algorithms.Insets}); - /** - * Calculates the bounds of the given group node and enlarges the bounds by the insets associated with the group node. - *

    - * The {@link yfiles.algorithms.Insets insets} associated with the group node will be retrieved from a {@link yfiles.algorithms.IDataProvider} registered with the - * graph with the current {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key}. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} groupNode the group node whose bounds will be calculated - * @param {yfiles.algorithms.NodeList} children a {@link yfiles.algorithms.NodeList} containing the nodes that reside inside the group node - * @returns {yfiles.algorithms.Rectangle2D} a {@link yfiles.algorithms.Rectangle2D} instance that describes the bounds of the group node - */ - calculateBounds(graph:yfiles.layout.LayoutGraph,groupNode:yfiles.algorithms.Node,children:yfiles.algorithms.NodeList):yfiles.algorithms.Rectangle2D; - /** - * Enlarges the given graph bounds by the insets associated with the given group node. - *

    - * The {@link yfiles.algorithms.Insets insets} associated with the group node will be retrieved from a {@link yfiles.algorithms.IDataProvider} registered with the - * graph with the current {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key}. - *

    - *

    - * This method is called while {@link yfiles.layout.InsetsGroupBoundsCalculator#calculateBounds calculating the group bounds} to realize the support for custom insets. It may be overridden - * to change the way specific insets influence the group node bounds. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} groupNode the group node whose bounds should be enlarged - * @param {yfiles.algorithms.NodeList} children the list of nodes that the given group node contains - * @param {yfiles.algorithms.Rectangle2D} bounds a {@link yfiles.algorithms.Rectangle2D} instance representing the bounds of the given group node - * @returns {yfiles.algorithms.Rectangle2D} a {@link yfiles.algorithms.Rectangle2D} instance representing the enlarged bounds of the given group node - */ - createEnlargedBounds(graph:yfiles.layout.LayoutGraph,groupNode:yfiles.algorithms.Node,children:yfiles.algorithms.NodeList,bounds:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; - /** - * Gets or sets whether or not the labels of nodes contained in a group are considered while calculating the bounds of the - * group node. - * @type {boolean} - */ - considerNodeLabels:boolean; - /** - * Gets or sets whether or not the labels of edges contained in a group are considered while calculating the bounds of the - * group node. - * @type {boolean} - */ - considerEdgeLabels:boolean; - /** - * Gets or sets whether or not the calculation of the bounds of a group node considers the {@link yfiles.layout.NodeHalo NodeHalos} associated with the - * group's child nodes. - * @type {boolean} - */ - considerNodeHalos:boolean; - /** - * Gets or sets the default insets that will be used if the {@link yfiles.algorithms.IDataProvider} registered with the {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key} - * does not contain a mapping for a specific node. - * @type {yfiles.algorithms.Insets} - */ - defaultInsets:yfiles.algorithms.Insets; - /** - * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that is used to access the insets for the group - * nodes. - *

    - * The {@link yfiles.algorithms.IDataProvider} registered with this key must provide a mapping from each group node to a {@link yfiles.algorithms.Insets} - * (or {@link yfiles.algorithms.Insets}) instance. - *

    - * @type {Object} - */ - groupNodeInsetsDpKey:Object; - static $class:yfiles.lang.Class; - } - /** - * A special {@link yfiles.layout.ComponentLayout} implementation that allows to lay out isolated subgraphs within a group as - * separate components. - *

    - * {@link yfiles.orthogonal.OrthogonalLayout OrthogonalLayout} uses this layout stage to arrange components. - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":0},"n":[[-5,16,210,336.38,2],[10,110,1],[10,35,1],[85,35,1],[160,35,1],[160,110,1],[10,285],[85,285],[85,210]],"e":[[1,2,0,-15,0,15],[2,3,15,0,-15,0],[3,4,15,0,-15,0],[4,5,0,15,0,-15],[5,1,-15,0,15,0],[6,8,0,-15,-15,0,[25,225]],[8,7,0,15,0,-15],[7,6,-15,0,15,0]],"vp":[-5.0,16.0,210.0,337.0]}} Example of a hierarchically grouped graph with two components that are laid out by {@link yfiles.orthogonal.OrthogonalLayout OrthogonalLayout} as separate - * components. - *

    - * @class yfiles.layout.IsolatedGroupComponentLayout - * @extends {yfiles.layout.ComponentLayout} - */ - export interface IsolatedGroupComponentLayout extends yfiles.layout.ComponentLayout{} - export class IsolatedGroupComponentLayout { - /** - * Creates an instance of {@link yfiles.layout.IsolatedGroupComponentLayout} with the given layout algorithm as - * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] the core layout algorithm that will be invoked for each component of the graph - * @constructor - */ - constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); - /** - * Determines the nodes that belong to the same graph component. - *

    - * Unlike - * {@link yfiles.layout.ComponentLayout}, this implementation additionally identifies isolated subgraphs within a group as separate - * components. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.INodeMap} compNumber the {@link yfiles.algorithms.INodeMap} that will be filled by the layout algorithm, such that it contains the zero-based index - * of the component number to which each node belongs - * @returns {number} the number of separate components - * @protected - */ - findIsolatedGraphComponents(graph:yfiles.layout.LayoutGraph,compNumber:yfiles.algorithms.INodeMap):number; - static $class:yfiles.lang.Class; - } - /** - * This {@link yfiles.layout.IGroupBoundsCalculator} allows custom insets for group nodes and guarantees that their provided - * minimum sizes will be maintained. - *

    - * As a subclass of {@link yfiles.layout.InsetsGroupBoundsCalculator}, this class supports custom insets for each group node. - * Furthermore, it guarantees that a desired minimum size is maintained. The minimum sizes are provided by a {@link yfiles.algorithms.IDataProvider} - * registered with the graph using the specified {@link yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey minimum node size key}. - *

    - * @class yfiles.layout.MinimumSizeGroupBoundsCalculator - * @extends {yfiles.layout.InsetsGroupBoundsCalculator} - */ - export interface MinimumSizeGroupBoundsCalculator extends yfiles.layout.InsetsGroupBoundsCalculator{} - export class MinimumSizeGroupBoundsCalculator { - /** - * Creates a new instance of {@link yfiles.layout.MinimumSizeGroupBoundsCalculator} with the given key as {@link yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey minimum node size key}. - * @param {Object} minSizeDataProviderKey the {@link yfiles.algorithms.IDataProvider} key to use as {@link yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey minimum size key} - * @constructor - */ - constructor(minSizeDataProviderKey:Object); - /** - * Creates a new instance of {@link yfiles.layout.MinimumSizeGroupBoundsCalculator} with default settings. - * @constructor - */ - constructor(); - /** - * Gets or sets how the nodes are resized horizontally if the calculated width is smaller than the preferred minimum width - * of a group node. - *

    - * The alignment is defined to be a value between 0 and 1, such that: - *

    - *
      - *
    • A value of 0 means that the nodes grow to the right while the left border remains unchanged.
    • - *
    • A value of 1 means that the nodes grow to the left while the right border remains unchanged.
    • - *
    - * @throws {Stubs.Exceptions.ArgumentError} if the given value does not lie within [0,1] - * @type {number} - */ - xAlignment:number; - /** - * Gets or sets how the nodes are resized vertically if the calculated height is smaller than the preferred minimum height - * of a group node. - *

    - * The alignment is defined to be a value between 0 and 1, such that: - *

    - *
      - *
    • A value of 0 means that the nodes grow downwards while the top border remains unchanged.
    • - *
    • A value of 1 means that the nodes grow upwards while the bottom border remains unchanged.
    • - *
    - * @throws {Stubs.Exceptions.ArgumentError} if the given value does not lie within [0,1] - * @type {number} - */ - yAlignment:number; - /** - * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that is used to access the minimum sizes for the - * group nodes. - *

    - * The {@link yfiles.algorithms.IDataProvider} registered with this key must provide a mapping from each group node to a {@link yfiles.algorithms.YDimension} - * object defining the minimum width and height of the group node. - *

    - * @see yfiles.layout.MinimumSizeGroupBoundsCalculator#defaultMinimumNodeSize - * @type {Object} - */ - minimumNodeSizeDpKey:Object; - /** - * Gets or sets the default minimum size (width and height) for group nodes. - *

    - * The default minimum size is used if the {@link yfiles.algorithms.IDataProvider} registered with the {@link yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey minimum size key} does not - * contain a mapping for a group node. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given {@link yfiles.algorithms.YDimension} is null - * @see yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey - * @type {yfiles.algorithms.YDimension} - */ - defaultMinimumNodeSize:yfiles.algorithms.YDimension; - static $class:yfiles.lang.Class; - } - /** - * This layout algorithm recursively traverses a hierarchically organized graph in a bottom-up fashion and applies a - * specified layout algorithm to the contents (direct children) of each group node. - *

    - * Layout Style The way a graph is arranged depends on the {@link yfiles.layout.ILayoutAlgorithm layout algorithms} which are applied to the different group nodes. {@link yfiles.layout.RecursiveGroupLayout} - * is able to produce different layout styles for the content of each group node. - *

    - *

    - * This layout algorithm can be either applied if a {@link yfiles.layout.ILayoutAlgorithm layout algorithm} cannot handle grouped graphs by itself or if the - * content of (some) group nodes should be arranged differently. - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":1},"styles":{"6":{"c":1}},"n":[[-17.5,755,335,340,2],[166.25,770],[247.5,840],[85,840],[172.5,910],[272.5,910],[72.5,910],[272.5,980],[222.5,910],[97.5,980],[47.5,980],[-2.5,910],[147.5,980],[122.5,1050],[172.5,1050],[197.5,980],[-2.5,980],[-2.5,1050],[929.97,593,673.03,664,2],[1028.43,230.79,493.13,238.42,2],[1451.74,249.79,54.83,54.83],[1043.43,336.11,54.83,54.83],[1376.74,346.07],[1143.26,334.82],[1223.95,267.93,37.09,37.09],[1223.95,335.02,37.09,37.09],[1223.95,402.12,37.09,37.09],[1306.05,338.57],[351.41,46.3,547.17,607.39,2],[392.91,738,464.18,374,2],[600.69,849.79,44.43,44.43],[803.73,927.82,38.37,38.37],[600.69,1024.79,44.43,44.43],[707.91,932],[707.91,1032],[507.91,757],[503.73,852.82,38.37,38.37],[407.91,857],[1329,1038,6],[1269,795,6],[1472,612,6],[1411,1025,6],[1427,744,6],[1355,779,6],[1157,888,6],[1108,838,6],[1230,723,6],[1351,946,6],[1185,810,6],[1387,847,6],[1185,956,6],[1221,1212,6],[1311,715,6],[962,988,6],[1558,700,6],[1053,639,6],[1264,993,6],[1509,1121,6],[1143,742,6],[1453,871,6],[1248,1077,6],[1430,943,6],[1093,947,6],[1173,1025,6],[1249.93,858.93,83.14,83.14,6],[406.42,266.45,6],[535.29,224.58,6],[407.4,568.81,54.23,54.23,6],[366.41,92.7,54.23,54.23,6],[464.05,443.83,6],[450.74,65.3,54.23,54.23,6],[464.05,224.58,6],[592.93,401.96,6],[714.87,571.77,41.35,41.35,6],[842.24,530.39,41.35,41.35,6],[793.59,463.42,41.35,41.35,6],[793.59,597.35,41.35,41.35,6],[614.94,334.2,6],[535.29,443.83,6],[714.87,489,41.35,41.35,6],[406.42,401.96,6],[592.93,266.45,6],[384.4,334.2,6],[595.06,86,54.23,54.23,6],[668.28,135.99,54.23,54.23,6],[720.4,207.72,54.23,54.23,6],[745.32,292.81,54.23,54.23,6]],"e":[[1,2],[1,3],[3,4],[2,5],[3,6],[5,7],[2,8],[6,9],[6,10],[3,11],[4,12],[12,13],[12,14],[4,15],[11,16],[16,17],[0,19,0,-170,0,-119.21,[150,0,1275,0]],[21,22,27.41,13.71,-15,7.5,[1108.26,377.23,1158.26,454.21,1336.05,454.21,1361.74,368.57]],[22,20,15,-0,-27.41,18.28,[1416.74,361.07,1436.74,295.48]],[21,23,27.41,-13.71,-15,-0],[23,20,15,-11.25,-27.41,-18.28,[1183.26,338.57,1208.95,252.93,1391.74,252.93,1436.74,258.93]],[23,24,15,-3.75,-18.55,-0,[1183.26,346.07,1208.95,286.48]],[24,20,18.55,-9.27,-27.41,-0],[23,25,15,3.75,-18.55,-0],[23,26,15,11.25,-18.55,-0,[1183.26,361.07,1208.95,420.66]],[25,27,18.55,-0,-15,-0],[24,27,18.55,9.27,-15,-10,[1271.05,295.75,1291.05,343.57]],[26,27,18.55,-0,-15,10,[1271.05,420.66,1291.05,363.57]],[27,22,15,-0,-15,-7.5],[29,28,0,-187,0,303.7],[31,30,0,-19.18,22.21,0,[822.91,872]],[31,32,0,19.18,0,22.21,[822.91,1097,622.91,1097]],[2,32],[32,30,0,-22.21,0,22.21],[31,33,-19.18,0,15,0],[33,32,-15,0,12.5,-22.21,[635.41,947]],[33,34,0,15,0,-15],[34,32,-15,0,22.21,0],[34,31,15,0,-12.5,19.18,[810.41,1047]],[35,30,15,0,0,-22.21,[622.91,772]],[35,36,0,15,0,-19.18],[32,36,-22.21,-12.5,0,19.18,[522.91,1034.5]],[36,30,19.18,0,-22.21,0],[36,37,-19.18,0,15,0],[32,37,-22.21,0,0,15,[422.91,1047]],[37,35,0,-15,-15,0,[422.91,772]],[42,40],[42,54],[41,57],[58,55],[60,51],[62,53],[64,38],[64,39],[64,41,[1330.6,964.06,1337.99,974.52,1346.6,984.13,1356.64,992.4]],[64,42,[1301.28,892.93,1380.34,828.69,1390.42,819.61,1400.14,810]],[64,43],[64,44],[64,45],[64,46,[1257.8,823.49,1254.58,812.63,1252.57,801.6]],[64,47],[64,48],[64,49],[64,50],[64,52,[1313.2,816.82,1315.29,805.72]],[64,56],[64,58,[1227.75,807.43,1218.48,798.12,1198.26,783.57]],[64,59,[1401.91,896.21,1413.4,895.03]],[64,60,[1249.83,992.24,1246.96,1005.02,1247.3,1018.2]],[64,61],[64,62],[64,63],[40,19],[69,67],[65,71],[66,71],[71,70],[71,69],[71,68],[72,21],[73,74],[75,74],[73,76],[74,76],[77,72],[77,71],[71,78],[78,72],[78,69],[72,79],[79,75],[79,73],[69,80],[72,80],[66,81],[81,77],[65,82],[82,81],[82,80],[82,77],[83,81],[84,81],[85,81],[86,81],[51,33]],"vp":[-18.0,0.0,1621.0,1257.0]}}Concept - *

    - *

    - * {@link yfiles.layout.RecursiveGroupLayout} uses a hierarchy tree representation of the grouped graph in which the content nodes - * are the children of their containing group node. That way, it can traverse the tree recursively while arranging only the - * direct children of each group node. The layout algorithm starts by arranging the leaves in the hierarchy tree, then - * works its way up to the root computing the layout for each group node in the tree. - *

    - *

    - * All nodes other than the direct children are temporarily hidden. The layout algorithm performs two steps for each group - * node. - *

    - *
      - *
    1. - * It arranges the direct children using either the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} or a special layout algorithm retrieved from a {@link yfiles.algorithms.IDataProvider} - * registered with - * {@link yfiles.layout.RecursiveGroupLayout#GROUP_NODE_LAYOUT_DP_KEY}. The content of group nodes among the children is already - * arranged at this time and will be ignored. These group nodes are handled like normal nodes with a size that encloses the - * content. - *
    2. - *
    3. - * Then {@link yfiles.layout.RecursiveGroupLayout} computes the final size of the group node using an implementation of - * {@link yfiles.layout.IGroupBoundsCalculator}. Customized {@link yfiles.layout.IGroupBoundsCalculator}s can be specified using - * {@link yfiles.layout.RecursiveGroupLayout#groupBoundsCalculator}. Aside from the resulting layout, this size is used in the following iteration. - *
    4. - *
    - *

    - * After a layout is applied to all group nodes, the layout algorithm computes routes for the edges whose source node is - * located at a different hierarchy level than its target node. The edge routing algorithm for these so-called inter-edges - * can be {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter customized}. - *

    - *

    - * Note that {@link yfiles.layout.RecursiveGroupLayout} can run without a - * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. In this case no layout is calculated, instead the group node bounds are merely adjusted to fit - * their respective contents. - *

    - *

    - * Features There are two alternatives for applying different layout styles to the contents of group nodes: - *

    - *
      - *
    1. - * Mapping each group node to a corresponding {@link yfiles.layout.ILayoutAlgorithm layout algorithm} by registering a {@link yfiles.algorithms.IDataProvider} with key - * {@link yfiles.layout.RecursiveGroupLayout#GROUP_NODE_LAYOUT_DP_KEY}. The content of the hierarchy root is arranged with the - * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - *
    2. - *
    3. Using {@link yfiles.layout.LayoutMultiplexer} as {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}.
    4. - *
    - *

    - * Since {@link yfiles.layout.RecursiveGroupLayout} delegates the actual arrangement of the graph to other layout algorithms, it - * will support the same features as the currently used layout algorithm. - *

    - *

    - * The improvement of the routing of inter-edges is based on the {@link yfiles.layout.RecursiveGroupLayout#autoAssignPortCandidates insertion} of {@link yfiles.layout.PortCandidate}s or the {@link yfiles.layout.RecursiveGroupLayout#replacePortConstraints conversion} - * of {@link yfiles.layout.PortConstraint}s into {@link yfiles.layout.PortCandidate}s. Hence, they only work well if the applied layout - * algorithm supports {@link yfiles.layout.PortCandidate}s. - *

    - *

    - * This algorithm also provides a {@link yfiles.layout.RecursiveGroupLayout#fromSketchMode From Sketch mode} that should be activated if the applied layout algorithm runs in From - * Sketch mode, too. Otherwise, the initial coordinates may not be considered correctly. - *

    - * @class yfiles.layout.RecursiveGroupLayout - * @extends {yfiles.layout.LayoutStageBase} - */ - export interface RecursiveGroupLayout extends yfiles.layout.LayoutStageBase{} - export class RecursiveGroupLayout { - /** - * Creates a new instance of {@link yfiles.layout.RecursiveGroupLayout} with default settings using the given {@link yfiles.layout.ILayoutAlgorithm layout algorithm} and - * {@link yfiles.layout.IGroupBoundsCalculator} implementation. - * @param {yfiles.layout.ILayoutAlgorithm} core the layout algorithm that is applied in each step of the recursion - * @param {yfiles.layout.IGroupBoundsCalculator} gbc the {@link yfiles.layout.IGroupBoundsCalculator} for calculating group sizes - * @constructor - */ - constructor(core:yfiles.layout.ILayoutAlgorithm,gbc:yfiles.layout.IGroupBoundsCalculator); - /** - * Creates a new instance of {@link yfiles.layout.RecursiveGroupLayout} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [core=null] The layout algorithm that is applied in each recursion step. - * @constructor - */ - constructor(core?:yfiles.layout.ILayoutAlgorithm); - /** - * Reroutes the given inter-edges using the current {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter edge routing algorithm}. - *

    - * This method is called after calculating the overall layout when the positions of all nodes and normal edges are fixed. - *

    - *

    - * If no {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter inter-edge router} is specified, this method resets the path of all inter-edges that don't connect to the proper - * location within the group. This may happen for inter-edges without - * {@link yfiles.layout.PortCandidate}s or if the applied layout algorithm doesn't support such constraints. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.EdgeList} interEdges the edges which traverse the boundary of a group node - * @see yfiles.layout.RecursiveGroupLayout#autoAssignPortCandidates - * @see yfiles.layout.RecursiveGroupLayout#replacePortConstraints - * @see yfiles.layout.RecursiveGroupLayout#interEdgeRouter - * @protected - */ - routeInterEdges(graph:yfiles.layout.LayoutGraph,interEdges:yfiles.algorithms.EdgeList):void; - /** - * Data provider key for arranging the content of each group node with an individual layout algorithm. - *

    - * The specified layouter instance is applied to the content of the group node. To arrange the top level elements the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} - * is used. - *

    - * @see yfiles.layout.RecursiveGroupLayout#NULL_LAYOUT - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static GROUP_NODE_LAYOUT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for assigning source split ids to edges connecting to group nodes. - *

    - * The edges will be aligned with edges that connect to the same group node and have the same split id at their source - * (preferably) or target. - *

    - * @see yfiles.layout.RecursiveGroupLayout#TARGET_SPLIT_ID_DP_KEY - * @see yfiles.hierarchic.HierarchicLayout - * @see yfiles.hierarchic.EdgeLayoutDescriptor#directGroupContentEdgeRouting - * @const - * @static - * @type {yfiles.algorithms.EdgeDpKey.} - */ - static SOURCE_SPLIT_ID_DP_KEY:yfiles.algorithms.EdgeDpKey; - /** - * Data provider key for assigning target split ids to edges connecting to group nodes. - *

    - * The edges will be aligned with edges that connect to the same group node and have the same split id at their source or - * target (preferably). - *

    - * @see yfiles.layout.RecursiveGroupLayout#SOURCE_SPLIT_ID_DP_KEY - * @see yfiles.hierarchic.HierarchicLayout - * @see yfiles.hierarchic.EdgeLayoutDescriptor#directGroupContentEdgeRouting - * @const - * @static - * @type {yfiles.algorithms.EdgeDpKey.} - */ - static TARGET_SPLIT_ID_DP_KEY:yfiles.algorithms.EdgeDpKey; - /** - * A constant that represents a {@link yfiles.layout.ILayoutAlgorithm} implementation that does nothing. - *

    - * This implementation can be assigned to group nodes to keep their content unchanged. The layout algorithm will still - * calculate the sizes of the group nodes. - *

    - * @const - * @static - * @type {yfiles.layout.ILayoutAlgorithm} - */ - static NULL_LAYOUT:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets whether or not to consider the initial coordinates of the graph elements. - *

    - * When using the initial coordinates, {@link yfiles.layout.RecursiveGroupLayout} sets the coordinates of the nodes to their - * initial position before the corresponding {@link yfiles.layout.ILayoutAlgorithm layout algorithm} is called. - *

    - * @type {boolean} - */ - fromSketchMode:boolean; - /** - * Gets or sets whether or not temporary {@link yfiles.layout.PortCandidate}s are inserted to improve the routing of inter-edges. - *

    - * If enabled, {@link yfiles.layout.RecursiveGroupLayout} will insert {@link yfiles.layout.PortCandidate}s for all inter-edges that cross a - * group node border. Those {@link yfiles.layout.PortCandidate}s are located at the relative position of the real source/target - * node. Inter-edges that connect to such {@link yfiles.layout.PortCandidate}s will be routed when the layout of the containing - * group node is calculated and will not be {@link yfiles.layout.RecursiveGroupLayout#routeInterEdges rerouted} later. This may produce more suitable edge routes but cannot prevent - * edges from crossing nodes. - *

    - *

    - * Without temporary or user specified {@link yfiles.layout.PortCandidate}s, inter-edges will always end at the border/center of - * the corresponding group node. Thus, they are rerouted afterwards using an {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter edge routing algorithm}. - *

    - * @see yfiles.layout.RecursiveGroupLayout#routeInterEdges - * @see yfiles.layout.RecursiveGroupLayout#interEdgeRouter - * @see yfiles.layout.PortCandidate - * @type {boolean} - */ - autoAssignPortCandidates:boolean; - /** - * Gets or sets whether or not {@link yfiles.layout.PortConstraint}s of inter-edges are temporarily replaced by - * {@link yfiles.layout.PortCandidate}s. - *

    - * If disabled, inter-edges will always end at the border/center of the corresponding group node, even if those edges have - * port constraints. Thus, they are {@link yfiles.layout.RecursiveGroupLayout#routeInterEdges rerouted} later without considering the constraint. Enabling this settings may produce - * more suitable edge routes but cannot prevent edges from crossing nodes. - *

    - *

    - * Port candidates are automatically redirected to their original location. Hence, enabling this option may produce more - * suitable edge routes if the layout algorithm applied to the content of a group node can handle port candidates. - *

    - * @see yfiles.layout.RecursiveGroupLayout#routeInterEdges - * @see yfiles.layout.PortCandidate - * @type {boolean} - */ - replacePortConstraints:boolean; - /** - * Gets or sets whether empty group nodes are handled like group nodes with content or like normal nodes. - *

    - * If they are handled like other group nodes, {@link yfiles.layout.RecursiveGroupLayout} will resize them according to their - * (non-existing) content. This results in small empty group nodes. Handled like normal nodes, empty group nodes will keep - * their initial size. - *

    - * @type {boolean} - */ - considerEmptyGroups:boolean; - /** - * Gets or sets the current edge routing algorithm for handling inter-edges. - *

    - * During layout, edges that connect from outside a group node to the content inside (inter-edges) are temporarily - * connected to the group node itself. Hence, these edges have to be routed after restoring the original graph structure - * using this edge routing algorithm. - *

    - *

    - * It is required that a suitable {@link yfiles.layout.RecursiveGroupLayout#interEdgesDpKey selection key} is specified. The same selection key must be used for setting the sphere of - * action for the edge router. - *

    - * @see yfiles.layout.RecursiveGroupLayout#interEdgesDpKey - * @type {yfiles.layout.ILayoutAlgorithm} - */ - interEdgeRouter:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets the key for marking the inter-edges to be routed. - *

    - * The key should be used by the specified {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter inter-edge routing algorithm} to obtain the edges to be routed. This layouter - * automatically marks these edges and registers the {@link yfiles.algorithms.IDataProvider} using the specified key. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified key is null - * @see yfiles.layout.RecursiveGroupLayout#interEdgeRouter - * @type {Object} - */ - interEdgesDpKey:Object; - /** - * Gets or sets a {@link yfiles.layout.IGroupBoundsCalculator} which computes the sizes of all group nodes. - *

    - * This {@link yfiles.layout.IGroupBoundsCalculator} is used each time after calculating the layout for a content graph. - *

    - * @type {yfiles.layout.IGroupBoundsCalculator} - */ - groupBoundsCalculator:yfiles.layout.IGroupBoundsCalculator; - static $class:yfiles.lang.Class; - } - export enum OperationType{ - /** - * Operation specifier defining that the graph will be mirrored at the x-axis. - * @see yfiles.layout.GraphTransformer#operation - */ - MIRROR_X_AXIS, - /** - * Operation specifier defining that the graph will be mirrored at the y-axis. - * @see yfiles.layout.GraphTransformer#operation - */ - MIRROR_Y_AXIS, - /** - * Operation specifier defining that the graph will be rotated. - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.GraphTransformer#rotationAngle - * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled - */ - ROTATE, - /** - * Operation specifier defining that the graph will be scaled. - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.GraphTransformer#scaleFactor - * @see yfiles.layout.GraphTransformer#setScaleFactors - * @see yfiles.layout.GraphTransformer#scaleNodeSize - */ - SCALE, - /** - * Operation specifier defining that the graph will be translated. - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.GraphTransformer#translateX - * @see yfiles.layout.GraphTransformer#translateY - */ - TRANSLATE - } - /** - * This layout algorithm applies geometric transformations to (sub-)graphs. - *

    - * Layout Style There are several ways to transform the graph that include mirroring, rotating, scaling and translating. {@graph {"ann":{"s":[30,30],"d":1},"n":[[-15,235],[-15,360],[-15,110],[235,485],[110,485],[360,485],[-15,485],[485,235],[485,360],[235,-15],[110,-15],[360,-15],[485,110],[-15,-15],[485,485],[485,-15],[235,235,1],[146.61,146.61,1],[146.61,323.39,1],[58.22,235,1],[323.39,323.39,1],[235,411.78,1],[323.39,146.61,1],[235,58.22,1],[411.78,235,1]],"e":[[1,0],[0,2],[4,3],[3,5],[1,6],[6,4],[7,8],[9,10],[11,9],[12,7],[2,13],[13,10],[8,14],[14,5],[11,15],[12,15],[16,17],[16,18],[19,17],[19,18],[20,16],[18,21],[21,20],[22,16],[23,22],[23,17],[20,24],[22,24],[17,0],[19,1],[23,2],[18,3],[4,19],[5,21],[20,7],[21,8],[9,22],[10,23],[24,11],[24,12]],"vp":[-15.0,-15.0,530.0,530.0]}} - *

    - *

    - * The highlighted subgraph is rotated by 45 degrees - *

    - *

    - * Features - *

    - *

    - * The layout can be {@link yfiles.layout.OperationType#SCALE scaled} with independent factors for the horizontal and vertical scaling. Optionally, the sizes of - * nodes can be scaled, too. - *

    - *

    - * The layout can be mirrored either on the {@link yfiles.layout.OperationType#MIRROR_X_AXIS x-axis} or the {@link yfiles.layout.OperationType#MIRROR_Y_AXIS y-axis}. - *

    - *

    - * A {@link yfiles.layout.OperationType#ROTATE rotation} can be specified. Instead of {@link yfiles.layout.GraphTransformer#rotationAngle defining} a rotation angle the angle can be {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled determined automatically} to fit - * specific bounds. - *

    - *

    - * The coordinates in the layout can be {@link yfiles.layout.OperationType#TRANSLATE translated} by a specific vector. - *

    - *

    - * To only apply previously mentioned transformations to a subgraph, the {@link yfiles.layout.SubgraphLayout} needs to be {@link yfiles.layout.MultiStageLayout#subgraphLayoutEnabled enabled}. - * Then the nodes in the subgraph must be marked in a {@link yfiles.algorithms.IDataProvider} registered with the according {@link yfiles.layout.SubgraphLayout#affectedNodesDpKey key}. - *

    - * @class yfiles.layout.GraphTransformer - * @extends {yfiles.layout.MultiStageLayout} - * @implements {yfiles.layout.ILayoutStage} - */ - export interface GraphTransformer extends yfiles.layout.MultiStageLayout,yfiles.layout.ILayoutStage{} - export class GraphTransformer { - /** - * Creates a new instance of {@link yfiles.layout.GraphTransformer} with default settings. - * @constructor - */ - constructor(); - /** - * Rotates the given graph so its resulting bounding box fits best to the given bounds. - * @param {yfiles.layout.LayoutGraph} graph the graph that is rotated - * @param {number} width the width of the preferred layout bounds - * @param {number} height the height of the preferred layout bounds - * @returns {number} the rotation angle - * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled - * @static - */ - static applyBestFitRotationAngle(graph:yfiles.layout.LayoutGraph,width:number,height:number):number; - /** - * Returns the rotation angle for the graph that will result in a layout that fits best to the given bounds. - * @param {yfiles.layout.LayoutGraph} graph the graph that is rotated - * @param {number} width the width of the preferred layout bounds - * @param {number} height the height of the preferred layout bounds - * @returns {number} the rotation angle - * @see yfiles.layout.GraphTransformer#applyBestFitRotationAngle - * @static - */ - static findBestFitRotationAngle(graph:yfiles.layout.LayoutGraph,width:number,height:number):number; - /** - * Specifies the preferred size of the layout. - *

    - * If performing a {@link yfiles.layout.OperationType#ROTATE rotation} and this rotation should be - * {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled automatically fitted}, then the given preferred size defines the aspect ratio that will be used for fitting the layout - * rotation. - *

    - *

    - * The preferred width and height need to be non-negative. - *

    - * @param {number} width the preferred width of the layout - * @param {number} height the preferred height of the layout - * @throws {Stubs.Exceptions.ArgumentError} if the specified width or height is negative - * @see yfiles.layout.GraphTransformer#preferredWidth - * @see yfiles.layout.GraphTransformer#preferredHeight - * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#ROTATE - */ - preferredLayoutSize(width:number,height:number):void; - /** - * Fits the given graph into the specified rectangular bounds. - *

    - * If the bounding box fits in the given bounds, nothing is done. Otherwise, the graph is scaled and optionally moved to - * fit. - *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to modify - * @param {number} x the upper left x-coordinate of the bounds - * @param {number} y the upper left y-coordinate of the bounds - * @param {number} w the width of the bounds - * @param {number} h the height of the bounds - * @static - */ - static setMaximalBounds(graph:yfiles.layout.LayoutGraph,x:number,y:number,w:number,h:number):void; - /** - * Specifies the horizontal and vertical scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. *

    - * Only positive scaling factors are allowed. + * Be aware that a statement like aList.append(aList.cursor()) results in an infinite recursion. *

    - * @param {number} xFactor the horizontal scaling factor - * @param {number} yFactor the vertical scaling factor - * @throws {Stubs.Exceptions.ArgumentError} if one the specified scaling factors is negative or 0 - * @see yfiles.layout.GraphTransformer#scaleFactorX - * @see yfiles.layout.GraphTransformer#scaleFactorY - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#SCALE + * @param c */ - setScaleFactors(xFactor:number,yFactor:number):void; + addAll(c:yfiles.algorithms.ICursor):void; /** - * Translates the layout coordinates by the given vector. - * @param {yfiles.layout.LayoutGraph} graph the graph that is translated - * @param {number} dx the horizontal distance the given graph is moved - * @param {number} dy the vertical distance the given graph is moved - * @see yfiles.layout.OperationType#TRANSLATE - * @see yfiles.layout.GraphTransformer#operation - * @static + * Appends all elements provided by the given collection to this list. + * @param collection + * @returns Whether there have been elements appended. */ - static translate(graph:yfiles.layout.LayoutGraph,dx:number,dy:number):void; + addAll(collection:yfiles.collections.ICollection):boolean; /** * - * @type {yfiles.layout.ILayoutAlgorithm} + * @param index + * @param c + * @returns */ - coreLayout:yfiles.layout.ILayoutAlgorithm; + addAll(index:number,c:yfiles.collections.ICollection):boolean; /** - * Gets or sets the transformation operation. - * @throws {Stubs.Exceptions.ArgumentError} if the specified operation is unknown - * @type {yfiles.layout.OperationType} + * Inserts the given object at the head of this list. + * @param o + * @returns The newly created ListCell object that stores the given object. */ - operation:yfiles.layout.OperationType; + addFirst(o:Object):yfiles.algorithms.ListCell; /** - * Gets or sets the angle of rotation. + * Adds a formerly removed ListCell object at the head of this list. *

    - * The angle must be given in degrees. + * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. *

    - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#ROTATE + * @param cell A list cell which is not part of any list. + */ + addFirstCell(cell:yfiles.algorithms.ListCell):void; + /** + * Inserts the given object at the tail of this list. + * @param o + * @returns The newly created ListCell object that stores the given object. + */ + addLast(o:Object):yfiles.algorithms.ListCell; + /** + * Adds a formerly removed ListCell object at the tail of this list. + *

    + * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. + *

    + * @param cell A list cell which is not part of any list. + */ + addLastCell(cell:yfiles.algorithms.ListCell):void; + /** + * Removes all elements from this list. + */ + clear():void; + /** + * Whether or not this list contains all the elements in the given collection. + *

    + * Equality of elements is defined by the {@link Object#equals} method. + *

    + * @param collection + * @returns + */ + containsAll(collection:yfiles.collections.ICollection):boolean; + /** + * Copies the elements of this collection to an array, starting at the specified array index. + * @param array The one-dimensional array that is the destination of the elements copied from this collection. + * @param arrayIndex The zero-based index in array at which copying begins. + */ + copyTo(array:Object[],arrayIndex:number):void; + /** + * Returns a cursor for this list. + *

    + * All cursor operations are supported. This cursor implementation is not fail-fast and continues to work if this list is + * modified during the traversal as long as the current ListCell the cursor points at is this in this list or has been + * removed from this list but has not been added to another instance since then. + *

    + * @returns + */ + cursor():yfiles.algorithms.ICursor; + /** + * Returns the cyclic predecessor cell of the given list cell. + *

    + * The last cell is returned as the cyclic predecessor of the first list cell. + *

    + * @param c + * @returns + */ + cyclicPred(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; + /** + * Returns the cyclic successor cell of the given list cell. + *

    + * The first cell is returned as the cyclic successor of the last list cell. + *

    + * @param c + * @returns + */ + cyclicSucc(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; + /** + * Returns the i-th element of this list. + * @param i + * @returns + */ + elementAt(i:number):Object; + /** + * Returns the {@link yfiles.algorithms.ListCell} where object o is stored. + *

    + * This operation returns null, if no such cell exists. Equality of elements is defined by the {@link Object#equals} method. The first + * element in the list that matches that criteria is returned. + *

    + * @param o + * @returns the ListCell that contains the element or null if no such ListCell was found + */ + findCell(o:Object):yfiles.algorithms.ListCell; + /** + * Gets the element at the specified index. + * @param index The zero-based index of the element to get or set. + * @returns The element at the specified index. + * @see yfiles.algorithms.YList#set + */ + get(index:number):Object; + /** + * Gets the cell at the given index. + * @param index the zero-based index of the cell in this list. + * @returns The cell. + * @throws {Stubs.Exceptions.IndexOutOfRangeError} if the index is negative or greater or equal than the {@link yfiles.algorithms.YList#size} + */ + getCell(index:number):yfiles.algorithms.ListCell; + /** + * Returns an enumerator that iterates through this collection. + * @returns An {@link } that can be used to iterate through this collection. + */ + getEnumerator():yfiles.collections.IEnumerator; + /** + * Returns the element stored in the given list cell. + * @param c + * @returns + */ + getInfo(c:yfiles.algorithms.ListCell):Object; + /** + * Whether or not this list contains the given element. + *

    + * Equality of elements is defined by the {@link Object#equals} method. + *

    + * @param o + * @returns + */ + includes(o:Object):boolean; + /** + * Returns the zero-based index of the given element in this list. + *

    + * If the given element is not in the list, -1 is returned. + *

    + * @param obj + * @returns + */ + indexOf(obj:Object):number; + /** + * + * @param index + * @param element + */ + insert(index:number,element:Object):void; + /** + * Inserts the given object into this list with respect to a given reference list cell. + *

    + * The (newly created) list cell that stores the object is inserted right after the reference list cell refCell. + *

    + *

    + * If refCell == null, the given object is inserted at the head of the list. + *

    + * @param o The object to be inserted. + * @param refCell The list cell used to reference the position. + * @returns The newly created ListCell object that stores object o. + */ + insertAfter(o:Object,refCell:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; + /** + * Inserts the given object into this list with respect to a given reference list cell. + *

    + * The (newly created) list cell that stores the object is inserted right before the reference list cell refCell. + *

    + *

    + * If refCell == null, the given object is appended to the list. + *

    + * @param o The object to be inserted. + * @param refCell The list cell used to reference the position. + * @returns The newly created ListCell object that stores object o. + */ + insertBefore(o:Object,refCell:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; + /** + * Inserts a formerly removed ListCell object into this list with respect to a given reference list cell. + *

    + * The ListCell object is inserted right after the reference list cell refCell. + *

    + *

    + * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. + *

    + * @param cellToInsert A list cell which is not part of any list. + * @param refCell The list cell used to reference the position. + */ + insertCellAfter(cellToInsert:yfiles.algorithms.ListCell,refCell:yfiles.algorithms.ListCell):void; + /** + * Inserts a formerly removed ListCell object into this list with respect to a given reference list cell. + *

    + * The ListCell object is inserted right before the reference list cell refCell. + *

    + *

    + * Attention: If the ListCell object is still part of any list, then that list will be corrupted afterwards. + *

    + * @param cellToInsert A list cell which is not part of any list. + * @param refCell The list cell used to reference the position. + */ + insertCellBefore(cellToInsert:yfiles.algorithms.ListCell,refCell:yfiles.algorithms.ListCell):void; + /** + * Checks whether this list contains elements. + * @returns + */ + isEmpty():boolean; + /** + * + * @param o + * @returns + */ + lastIndexOf(o:Object):number; + /** + * Equivalent to {@link yfiles.algorithms.YList#firstObject}. + * @returns + */ + peek():Object; + /** + * Removes the first element from this list and returns it. + * @returns + */ + pop():Object; + /** + * Removes the last element from this list and returns it. + * @returns + */ + popLast():Object; + /** + * Returns the predecessor cell of the given list cell. + * @param c + * @returns + */ + predCell(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; + /** + * Equivalent to {@link yfiles.algorithms.YList#addFirst}. + * @param o + * @returns + */ + push(o:Object):yfiles.algorithms.ListCell; + /** + * Removes the given object from this list. + *

    + * Only the first element for which equality to o holds gets removed. + *

    + * @param o + * @returns + */ + remove(o:Object):boolean; + /** + * Removes the given collection of objects from this list. + * @param collection + * @returns Whether there have been elements removed. + */ + removeAll(collection:yfiles.collections.ICollection):boolean; + /** + * + * @param index + */ + removeAt(index:number):void; + /** + * Removes the element pointed to by the given YCursor object. + * @param c + * @returns The removed element. + */ + removeAtCursor(c:yfiles.algorithms.ICursor):Object; + /** + * Removes the given list cell, and hence the element stored in it, from this list. + * @param c + * @returns The element that is stored in the removed cell. + */ + removeCell(c:yfiles.algorithms.ListCell):Object; + /** + * Retains only those elements in this list which are contained in the given collection. + * @param collection + * @returns Whether there have been elements removed. + */ + retainAll(collection:yfiles.collections.ICollection):boolean; + /** + * Reverses the sequence of elements in this list. + */ + reverse():void; + /** + * Sets the element at the specified index. + * @param index The zero-based index of the element to get or set. + * @param value The element at the specified index. + * @see yfiles.algorithms.YList#get + */ + set(index:number,value:Object):void; + /** + * Updates the element stored in the given list cell with the given object. + * @param c + * @param value + */ + setInfo(c:yfiles.algorithms.ListCell,value:Object):void; + /** + * Sorts the elements in this list according to the given comparator. + *

    + * NOTE: The elements will be assigned to different list cells by this method. + *

    + * @param comparer + */ + sort(comparer:yfiles.collections.IComparer):void; + /** + * Sorts the elements in this list into ascending order, according to their natural ordering. + *

    + * All elements must implement the {@link yfiles.lang.IComparable} interface. Furthermore, all elements in this list must be + * mutually comparable (that is, e1.compareTo(e2) must not throw a ClassCastException for any elements e1 and e2 in this + * list). + *

    + *

    + * NOTE: The elements will be assigned to different list cells by this method. + *

    + */ + sort():void; + /** + * Transfers the contents of the given list to the end of this list. + *

    + * The given list will be empty after this operation. + *

    + *

    + * Note that this operation transfers the list cells of the given list to this list. No new list cells are created by this + * operation. + *

    + * @param list + */ + splice(list:yfiles.algorithms.YList):void; + /** + * + * @param fromIndex + * @param toIndex + * @returns + */ + subList(fromIndex:number,toIndex:number):yfiles.collections.IList; + /** + * Returns the successor cell of the given list cell. + * @param c + * @returns + */ + succCell(c:yfiles.algorithms.ListCell):yfiles.algorithms.ListCell; + /** + * Returns an array representation of this list. + * @returns + */ + toArray():Object[]; + /** + * Gets the number of elements in this list. * @type {number} */ - rotationAngle:number; + size:number; /** - * Gets or sets whether or not to automatically choose the best fitting rotation angle. - *

    - * The angle will be chosen such that the bounding box after the rotation fits best to the {@link yfiles.layout.GraphTransformer#preferredLayoutSize preferred aspect ratio}. - *

    - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#ROTATE - * @type {boolean} + * Gets the first element of this list. + * @type {Object} */ - bestFitRotationEnabled:boolean; + firstObject:Object; /** - * Gets or sets the preferred height of the layout. - *

    - * This value will be used for {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled fitting the rotation} to preferred bounds. - *

    - *

    - * The preferred height needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified height is negative - * @see yfiles.layout.GraphTransformer#preferredWidth - * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#ROTATE - * @type {number} + * Gets the last element of this list. + * @type {Object} */ - preferredHeight:number; + lastObject:Object; /** - * Gets or sets the preferred width of the layout. - *

    - * This value will be used for {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled fitting the rotation} to preferred bounds. - *

    - *

    - * The preferred width needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified width is negative - * @see yfiles.layout.GraphTransformer#preferredHeight - * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#ROTATE - * @type {number} + * Gets the first cell of this list. + * @type {yfiles.algorithms.ListCell} */ - preferredWidth:number; + firstCell:yfiles.algorithms.ListCell; /** - * Gets or sets whether or not to also scale node sizes when performing the {@link yfiles.layout.OperationType#SCALE scale operation}. - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#SCALE - * @type {boolean} + * Gets the last cell of this list. + * @type {yfiles.algorithms.ListCell} */ - scaleNodeSize:boolean; - /** - * Sets the uniform scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. - *

    - * This factor applies vertical and horizontal. - *

    - *

    - * Only positive scaling factors are allowed. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified scaling factor is negative or 0 - * @see yfiles.layout.GraphTransformer#scaleFactorX - * @see yfiles.layout.GraphTransformer#scaleFactorY - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#SCALE - * @type {number} - */ - scaleFactor:number; - /** - * Gets or sets the vertical scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. - *

    - * Only positive scaling factors are allowed. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified scaling factor is negative or 0 - * @see yfiles.layout.GraphTransformer#scaleFactorX - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#SCALE - * @type {number} - */ - scaleFactorY:number; - /** - * Gets or sets the horizontal scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. - *

    - * Only positive scaling factors are allowed. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified scaling factor is negative or 0 - * @see yfiles.layout.GraphTransformer#scaleFactorY - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#SCALE - * @type {number} - */ - scaleFactorX:number; - /** - * Gets or sets the horizontal translation distance. - *

    - * A positive value means the graph is moved to the right while, a negative value means the graph is moved to the left. - *

    - * @see yfiles.layout.GraphTransformer#translateY - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#TRANSLATE - * @type {number} - */ - translateX:number; - /** - * Gets or sets the vertical translation distance. - *

    - * A positive value means the graph is moved downwards, while a negative value means the graph is moved upwards. - *

    - * @see yfiles.layout.GraphTransformer#translateX - * @see yfiles.layout.GraphTransformer#operation - * @see yfiles.layout.OperationType#TRANSLATE - * @type {number} - */ - translateY:number; + lastCell:yfiles.algorithms.ListCell; static $class:yfiles.lang.Class; } + }export namespace layout{ /** * {@link yfiles.layout.BendConverter} replaces edge bends with dummy nodes for the {@link yfiles.layout.BendConverter#coreLayout core layout algorithm}. *

    @@ -84487,27 +82575,24 @@ declare namespace system{ * When the dummy elements have been inserted, edge information about {@link yfiles.layout.BendConverter#adoptPortConstraints port constraints}, {@link yfiles.layout.BendConverter#adoptEdgeGroups edge groups} and {@link yfiles.layout.BendConverter#adoptAffectedEdges selection state} can * be adopted from the original edges. That way, the {@link yfiles.layout.BendConverter#coreLayout core layout algorithm} can access the mentioned information. *

    - * @class yfiles.layout.BendConverter + * @class * @implements {yfiles.layout.ILayoutStage} */ export interface BendConverter extends Object,yfiles.layout.ILayoutStage{} export class BendConverter { /** * Creates a new {@link yfiles.layout.BendConverter} instance with the given size as the width and height for the dummy nodes. - * @param {number} size the size for the dummy nodes + * @param size the size for the dummy nodes * @throws {Stubs.Exceptions.ArgumentError} if the given size is negative - * @constructor */ constructor(size:number); /** * Creates a new instance of {@link yfiles.layout.BendConverter} with the given {@link yfiles.layout.BendConverter#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} core the core layout algorithm - * @constructor + * @param core the core layout algorithm */ constructor(core:yfiles.layout.ILayoutAlgorithm); /** * Creates a new {@link yfiles.layout.BendConverter} instance with default settings. - * @constructor */ constructor(); /** @@ -84519,9 +82604,9 @@ declare namespace system{ *

    * The current implementation does nothing. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the edge whose bends were replaced by the given dummy nodes - * @param {yfiles.algorithms.NodeList} dummyNodes the dummy nodes representing the bends of the edge + * @param graph the input graph + * @param edge the edge whose bends were replaced by the given dummy nodes + * @param dummyNodes the dummy nodes representing the bends of the edge * @protected */ addedPathForEdge(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge,dummyNodes:yfiles.algorithms.NodeList):void; @@ -84531,7 +82616,7 @@ declare namespace system{ * After the {@link yfiles.layout.BendConverter#coreLayout core layout algorithm} has finished, the edges between the dummy nodes are reconnected and the dummy nodes are * replaced by bends again. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph */ applyLayout(graph:yfiles.layout.LayoutGraph):void; /** @@ -84549,7 +82634,7 @@ declare namespace system{ * {@link yfiles.layout.BendConverter#coreLayout core layout algorithm}. It may be overridden to extend the edge-specific information that should be adopted by the dummy * edges. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @see yfiles.layout.BendConverter#restore * @see yfiles.layout.BendConverter#adoptAffectedEdges * @see yfiles.layout.BendConverter#adoptPortConstraints @@ -84563,7 +82648,7 @@ declare namespace system{ * This method is called by {@link yfiles.layout.BendConverter#applyLayout} after invoking the {@link yfiles.layout.BendConverter#coreLayout core layout algorithm}. It may be * overridden to clean up all additional information added in {@link yfiles.layout.BendConverter#prepare}. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph arranged by the {@link yfiles.layout.BendConverter#coreLayout core layout algorithm} + * @param graph the graph arranged by the {@link #coreLayout core layout algorithm} * @see yfiles.layout.BendConverter#prepare * @see yfiles.layout.BendConverter#adoptAffectedEdges * @see yfiles.layout.BendConverter#adoptPortConstraints @@ -84633,15 +82718,14 @@ declare namespace system{ * associated graph layout. This comes in handy if an application has its own graph and only provides a graph interface * adapter to the yFiles graph layout machinery. *

    - * @class yfiles.layout.BufferedLayout + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface BufferedLayout extends yfiles.layout.LayoutStageBase{} export class BufferedLayout { /** * Creates a new {@link yfiles.layout.BufferedLayout} instance using the given {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] the core layout routine - * @constructor + * @param [coreLayouter=null] the core layout routine */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); static $class:yfiles.lang.Class; @@ -84690,15 +82774,14 @@ declare namespace system{ * IDs to the nodes. *

    * @see yfiles.layout.MultiStageLayout - * @class yfiles.layout.ComponentLayout + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface ComponentLayout extends yfiles.layout.LayoutStageBase{} export class ComponentLayout { /** * Creates a new {@link yfiles.layout.ComponentLayout} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algortihm. - * @constructor + * @param [coreLayouter=null] The core layout algortihm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -84708,14 +82791,16 @@ declare namespace system{ * the graph's components such that their bounding boxes do not overlap. Subclasses may want to override this method to * introduce custom component arrangement styles. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {Array.} nodes the nodes of the components; the i-th list contains the nodes of the i-th component - * @param {Array.} edges the edges of the components; the i-th list contains the edges of the i-th component - * @param {Array.} bbox the bounds of the components; the i-th rectangle describes the bounding box of the i-th component - * @param {Array.} boxes the extended bounds of the components; the i-th rectangle describes the bounding box of the i-th component extended by + * @param graph the input graph + * @param nodes the nodes of the components; the i-th list contains the nodes of the i-th component + * @param edges the edges of the components; the i-th list contains the edges of the i-th component + * @param bbox the bounds of the components; the i-th rectangle describes the bounding box of the i-th component + * @param boxes the extended bounds of the components; the i-th rectangle describes the bounding box of the i-th component extended by * the spacing between components. The method arranges these boxes in such a way that they do not overlap. Then, the i-th * graph component must be placed inside the i-th box * @see yfiles.layout.ComponentLayout#arrangeFields + * @see yfiles.layout.LayoutGraphUtilities#arrangeRectangleRows + * @see yfiles.layout.LayoutGraphUtilities#arrangeRectangleMultiRows * @protected */ arrangeComponents(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.NodeList[],edges:yfiles.algorithms.EdgeList[],bbox:yfiles.algorithms.YRectangle[],boxes:yfiles.algorithms.Rectangle2D[]):void; @@ -84729,15 +82814,15 @@ declare namespace system{ * {@link yfiles.layout.ComponentArrangementStyles#PACKED_COMPACT_CIRCLE}. It may be overridden to adjust the component arrangement * strategy of the mentioned styles. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {Array.} nodes the nodes of the components; the i-th list contains the nodes of the i-th component - * @param {Array.} edges the edges of the components; the i-th list contains the edges of the i-th component - * @param {Array.} bbox the bounds of the components; the i-th rectangle describes the bounding box of the i-th component - * @param {Array.} boxes the extended bounds of the components; the i-th rectangle describes the bounding box of the i-th component - * @param {boolean} circular true if the arrangement should be circular, false if it should be rectangular - * @param {boolean} fill true if it is allowed to place components in empty spaces inside other + * @param graph the input graph + * @param nodes the nodes of the components; the i-th list contains the nodes of the i-th component + * @param edges the edges of the components; the i-th list contains the edges of the i-th component + * @param bbox the bounds of the components; the i-th rectangle describes the bounding box of the i-th component + * @param boxes the extended bounds of the components; the i-th rectangle describes the bounding box of the i-th component + * @param circular true if the arrangement should be circular, false if it should be rectangular + * @param fill true if it is allowed to place components in empty spaces inside other * components, false otherwise - * @param {boolean} fromSketch true if the initial coordinates should be considered, false otherwise + * @param fromSketch true if the initial coordinates should be considered, false otherwise * @protected */ arrangeFields(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.NodeList[],edges:yfiles.algorithms.EdgeList[],bbox:yfiles.algorithms.YRectangle[],boxes:yfiles.algorithms.Rectangle2D[],circular:boolean,fill:boolean,fromSketch:boolean):void; @@ -84748,8 +82833,8 @@ declare namespace system{ * {@link yfiles.layout.ComponentLayout#considerLabels}, the returned bounding box will also include node and edge labels. It may be overridden to extend the bounds to reserve * space for other elements. *

    - * @param {yfiles.layout.LayoutGraph} graph the subgraph containing the nodes and edges of a component - * @returns {yfiles.algorithms.Rectangle2D} the bounding box of the component + * @param graph the subgraph containing the nodes and edges of a component + * @returns the bounding box of the component * @see yfiles.layout.ComponentLayout#considerLabels * @protected */ @@ -84766,9 +82851,9 @@ declare namespace system{ * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. However, most of the layout algorithms cannot handle disconnected graphs. Also, edges between * custom components will be ignored. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.INodeMap} compNumber a map that will be filled with the zero-based index of the component to which the node belongs - * @returns {number} the number of connected components of this graph + * @param graph the input graph + * @param compNumber a map that will be filled with the zero-based index of the component to which the node belongs + * @returns the number of connected components of this graph * @see yfiles.algorithms.GraphConnectivity#connectedComponents * @protected */ @@ -84779,11 +82864,11 @@ declare namespace system{ * This method is called by {@link yfiles.layout.ComponentLayout#arrangeComponents} and {@link yfiles.layout.ComponentLayout#arrangeFields} * to move the components to overlap-free positions. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.NodeList} nodes the nodes in the moving subgraph - * @param {yfiles.algorithms.EdgeList} edges the edges in the moving subgraph - * @param {yfiles.algorithms.YPoint} origin the new origin of the graph - * @param {yfiles.algorithms.YRectangle} rectangle the current bounds of the subgraph + * @param graph the input graph + * @param nodes the nodes in the moving subgraph + * @param edges the edges in the moving subgraph + * @param origin the new origin of the graph + * @param rectangle the current bounds of the subgraph * @protected */ setOrigin(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.NodeList,edges:yfiles.algorithms.EdgeList,origin:yfiles.algorithms.YPoint,rectangle:yfiles.algorithms.YRectangle):void; @@ -84887,7 +82972,7 @@ declare namespace system{ * Note that the pipeline only works when all {@link yfiles.layout.ILayoutStage}s call their core layout algorithm which is the * next {@link yfiles.layout.ILayoutStage} in the pipeline. *

    - * @class yfiles.layout.CompositeLayoutStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface CompositeLayoutStage extends yfiles.layout.LayoutStageBase{} @@ -84897,14 +82982,12 @@ declare namespace system{ *

    * The inner {@link yfiles.layout.ILayoutStage} will be wrapped by the outer {@link yfiles.layout.ILayoutStage}. *

    - * @param {yfiles.layout.ILayoutStage} outerStage the wrapping {@link yfiles.layout.ILayoutStage} - * @param {yfiles.layout.ILayoutStage} innerStage the wrapped {@link yfiles.layout.ILayoutStage} - * @constructor + * @param outerStage the wrapping {@link } + * @param innerStage the wrapped {@link } */ constructor(outerStage:yfiles.layout.ILayoutStage,innerStage:yfiles.layout.ILayoutStage); /** * Creates a new {@link yfiles.layout.CompositeLayoutStage} instance with an empty pipeline. - * @constructor */ constructor(); /** @@ -84914,7 +82997,7 @@ declare namespace system{ * pre-processing code will be executed after the already added {@link yfiles.layout.ILayoutStage}s' pre-processing code, while its * post-processing code will be executed before the post-processing code of all the other {@link yfiles.layout.ILayoutStage}s. *

    - * @param {yfiles.layout.ILayoutStage} stage the stage to append + * @param stage the stage to append */ appendStage(stage:yfiles.layout.ILayoutStage):void; /** @@ -84924,7 +83007,7 @@ declare namespace system{ * code will be executed before the already added {@link yfiles.layout.ILayoutStage}s' pre-processing code, while its * post-processing code will be executed after the post-processing code of all the other {@link yfiles.layout.ILayoutStage}s. *

    - * @param {yfiles.layout.ILayoutStage} stage the stage to prepend + * @param stage the stage to prepend */ prependStage(stage:yfiles.layout.ILayoutStage):void; /** @@ -84960,15 +83043,14 @@ declare namespace system{ * original graph. The original graph will stay unchanged until this method is called. *

    * @see yfiles.layout.BufferedLayout - * @class yfiles.layout.CopiedLayoutGraph + * @class * @extends {yfiles.layout.LayoutGraph} */ export interface CopiedLayoutGraph extends yfiles.layout.LayoutGraph{} export class CopiedLayoutGraph { /** * Creates a new {@link yfiles.layout.CopiedLayoutGraph} instance which is a copy of the given graph. - * @param {yfiles.layout.LayoutGraph} graph the original graph - * @constructor + * @param graph the original graph */ constructor(graph:yfiles.layout.LayoutGraph); /** @@ -84988,8 +83070,8 @@ declare namespace system{ *

    * This method can be used for keeping the {@link yfiles.layout.CopiedLayoutGraph} in sync with the original graph. *

    - * @param {Object} originalEdge the original edge - * @returns {yfiles.algorithms.Edge} the copy of the original edge + * @param originalEdge the original edge + * @returns the copy of the original edge */ createCopiedEdge(originalEdge:Object):yfiles.algorithms.Edge; /** @@ -85004,32 +83086,32 @@ declare namespace system{ *

    * This method can be used for keeping the {@link yfiles.layout.CopiedLayoutGraph} in sync with the original graph. *

    - * @param {Object} originalNode the original node - * @returns {yfiles.algorithms.Node} the copy of the original node + * @param originalNode the original node + * @returns the copy of the original node */ createCopiedNode(originalNode:Object):yfiles.algorithms.Node; /** * Returns the copied edge that corresponds to the given original edge. - * @param {Object} originalEdge an edge of the original graph whose copy resides in this graph - * @returns {yfiles.algorithms.Edge} an edge in this graph that is the copy of the given original edge + * @param originalEdge an edge of the original graph whose copy resides in this graph + * @returns an edge in this graph that is the copy of the given original edge */ getCopiedEdge(originalEdge:Object):yfiles.algorithms.Edge; /** * Returns the copied node that corresponds to the given original node. - * @param {Object} originalNode a node of the original graph whose copy resides in this graph - * @returns {yfiles.algorithms.Node} a node in this graph that is the copy of the given original node + * @param originalNode a node of the original graph whose copy resides in this graph + * @returns a node in this graph that is the copy of the given original node */ getCopiedNode(originalNode:Object):yfiles.algorithms.Node; /** * Returns the original edge that corresponds to the given copied edge. - * @param {yfiles.algorithms.Edge} copiedEdge the edge in this graph that is a copy of the returned edge - * @returns {Object} the edge in the original graph whose copy is the given edge + * @param copiedEdge the edge in this graph that is a copy of the returned edge + * @returns the edge in the original graph whose copy is the given edge */ getOriginalEdge(copiedEdge:yfiles.algorithms.Edge):Object; /** * Returns the original node that corresponds to the given copied node. - * @param {yfiles.algorithms.Node} copiedNode the node in this graph that is a copy of the returned node - * @returns {Object} the node in the original graph whose copy is the given node + * @param copiedNode the node in this graph that is a copy of the returned node + * @returns the node in the original graph whose copy is the given node */ getOriginalNode(copiedNode:yfiles.algorithms.Node):Object; /** @@ -85079,15 +83161,14 @@ declare namespace system{ * sub-set of edges can be changed. Use a {@link yfiles.algorithms.IDataProvider} registered with the specified {@link yfiles.layout.CurveFittingLayoutStage#affectedEdgesDpKey selection key} to * mark edges which should be part of the considered sub-set. *

    - * @class yfiles.layout.CurveFittingLayoutStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface CurveFittingLayoutStage extends yfiles.layout.LayoutStageBase{} export class CurveFittingLayoutStage { /** * Creates a new {@link yfiles.layout.CurveFittingLayoutStage} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [core=null] The core layout algorithm. - * @constructor + * @param [core=null] The core layout algorithm. */ constructor(core?:yfiles.layout.ILayoutAlgorithm); /** @@ -85141,27 +83222,24 @@ declare namespace system{ /** * {@link yfiles.layout.DefaultLayoutGraph} is a default implementation of {@link yfiles.layout.LayoutGraph} which holds the complete * layout information about the graph and its elements. - * @class yfiles.layout.DefaultLayoutGraph + * @class * @extends {yfiles.layout.LayoutGraph} */ export interface DefaultLayoutGraph extends yfiles.layout.LayoutGraph{} export class DefaultLayoutGraph { /** * Creates a new {@link yfiles.layout.DefaultLayoutGraph} instance which is a copy of the given subgraph. - * @param {yfiles.layout.LayoutGraph} graph the original graph - * @param {yfiles.algorithms.ICursor} nodeSubset the nodes that induce a subgraph of the original graph - * @constructor + * @param graph the original graph + * @param nodeSubset the nodes that induce a subgraph of the original graph */ constructor(graph:yfiles.layout.LayoutGraph,nodeSubset:yfiles.algorithms.ICursor); /** * Creates a new {@link yfiles.layout.DefaultLayoutGraph} instance which is a copy of the given graph. - * @param {yfiles.layout.LayoutGraph} argGraph the original graph - * @constructor + * @param argGraph the original graph */ constructor(argGraph:yfiles.layout.LayoutGraph); /** * Creates a new {@link yfiles.layout.DefaultLayoutGraph} instance with default settings. - * @constructor */ constructor(); /** @@ -85170,7 +83248,7 @@ declare namespace system{ * This method is called by {@link yfiles.layout.DefaultLayoutGraph#getLayout} if there is no layout information assigned to an * edge, yet. It may be overridden to create custom {@link yfiles.layout.IEdgeLayout}s. *

    - * @returns {yfiles.layout.IEdgeLayout} the layout of an edge + * @returns the layout of an edge * @protected */ createEdgeLayout():yfiles.layout.IEdgeLayout; @@ -85180,7 +83258,7 @@ declare namespace system{ * This method is called by {@link yfiles.layout.DefaultLayoutGraph#getLayout} if there is no layout information assigned to a * node, yet. It may be overridden to create custom {@link yfiles.layout.INodeLayout}s. *

    - * @returns {yfiles.layout.INodeLayout} the layout of a node + * @returns the layout of a node * @protected */ createNodeLayout():yfiles.layout.INodeLayout; @@ -85189,8 +83267,8 @@ declare namespace system{ *

    * The layout information consists of the location, size and orientation of the label. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @param {Array.} layout the layout information for the labels of the edge + * @param edge the edge + * @param layout the layout information for the labels of the edge */ setLabelLayout(edge:yfiles.algorithms.Edge,layout:yfiles.layout.IEdgeLabelLayout[]):void; /** @@ -85198,8 +83276,8 @@ declare namespace system{ *

    * The layout information consists of the location, size and orientation of the label. *

    - * @param {yfiles.algorithms.Node} node the node - * @param {Array.} layout the layout information for the labels of the node + * @param node the node + * @param layout the layout information for the labels of the node */ setLabelLayout(node:yfiles.algorithms.Node,layout:yfiles.layout.INodeLabelLayout[]):void; /** @@ -85207,8 +83285,8 @@ declare namespace system{ *

    * The layout information consists of the location, size and orientation of the label. *

    - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.layout.INodeLabelLayout} layout the layout information for the label of the node + * @param node the node + * @param layout the layout information for the label of the node */ setLabelLayout(node:yfiles.algorithms.Node,layout:yfiles.layout.INodeLabelLayout):void; /** @@ -85216,8 +83294,8 @@ declare namespace system{ *

    * The layout information consists of the locations of the control and end points of the edge. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.layout.IEdgeLayout} layout the layout information for the edge + * @param edge the edge + * @param layout the layout information for the edge */ setLayout(edge:yfiles.algorithms.Edge,layout:yfiles.layout.IEdgeLayout):void; /** @@ -85225,8 +83303,8 @@ declare namespace system{ *

    * The layout information consists of the location and size of the node. *

    - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.layout.INodeLayout} layout the layout information for the node + * @param node the node + * @param layout the layout information for the node */ setLayout(node:yfiles.algorithms.Node,layout:yfiles.layout.INodeLayout):void; /** @@ -85255,15 +83333,15 @@ declare namespace system{ } /** * {@link yfiles.layout.Direction} provides four main directions and some methods to work with them. - * @class yfiles.layout.Direction + * @class * @final */ export interface Direction extends Object{} export class Direction { /** * Returns the direction encoded as an integer value. - * @returns {number} 0 for direction {@link yfiles.layout.Direction#UP}, 1 for {@link yfiles.layout.Direction#RIGHT}, 2 for {@link yfiles.layout.Direction#DOWN}, and - * 3 for {@link yfiles.layout.Direction#LEFT} + * @returns 0 for direction {@link #UP}, 1 for {@link #RIGHT}, 2 for {@link #DOWN}, and + * 3 for {@link #LEFT} */ getDirection():number; /** @@ -85349,7 +83427,7 @@ declare namespace system{ * Furthermore, there's the possibility to mask out arbitrary edge label candidates. This can either be done by specifying * predefined candidate masks or combining several label positions with a logical or-operation to a user-defined mask. *

    - * @class yfiles.layout.DiscreteEdgeLabelLayoutModel + * @class * @implements {yfiles.layout.IEdgeLabelLayoutModel} */ export interface DiscreteEdgeLabelLayoutModel extends Object,yfiles.layout.IEdgeLabelLayoutModel{} @@ -85359,22 +83437,20 @@ declare namespace system{ *

    * The candidates mask can either describe multiple or single valid positions. *

    - * @param {yfiles.layout.DiscreteEdgeLabelPositions} candidateMask the position mask that defines the allowed positions for an edge label - * @constructor + * @param candidateMask the position mask that defines the allowed positions for an edge label */ constructor(candidateMask:yfiles.layout.DiscreteEdgeLabelPositions); /** * Creates a new instance of {@link yfiles.layout.DiscreteEdgeLabelLayoutModel} with default settings. - * @constructor */ constructor(); /** * - * @param {yfiles.algorithms.YOrientedRectangle} labelBounds - * @param {yfiles.layout.IEdgeLayout} edgeLayout - * @param {yfiles.layout.INodeLayout} sourceNode - * @param {yfiles.layout.INodeLayout} targetNode - * @returns {Object} + * @param labelBounds + * @param edgeLayout + * @param sourceNode + * @param targetNode + * @returns */ createModelParameter(labelBounds:yfiles.algorithms.YOrientedRectangle,edgeLayout:yfiles.layout.IEdgeLayout,sourceNode:yfiles.layout.INodeLayout,targetNode:yfiles.layout.INodeLayout):Object; /** @@ -85383,29 +83459,29 @@ declare namespace system{ * This model parameter can be passed to {@link yfiles.layout.DiscreteEdgeLabelLayoutModel#getLabelPlacement} to determine the * label's position. *

    - * @param {number} position one of the valid positions - * @returns {Object} a model parameter that encodes the specified position + * @param position one of the valid positions + * @returns a model parameter that encodes the specified position * @throws {Stubs.Exceptions.ArgumentError} if the specified position is unknown * @static */ static createPositionParameter(position:number):Object; /** * - * @param {yfiles.layout.IEdgeLabelLayout} label - * @param {yfiles.layout.IEdgeLayout} edgeLayout - * @param {yfiles.layout.INodeLayout} sourceNode - * @param {yfiles.layout.INodeLayout} targetNode - * @returns {yfiles.algorithms.YList} + * @param label + * @param edgeLayout + * @param sourceNode + * @param targetNode + * @returns */ getLabelCandidates(label:yfiles.layout.IEdgeLabelLayout,edgeLayout:yfiles.layout.IEdgeLayout,sourceNode:yfiles.layout.INodeLayout,targetNode:yfiles.layout.INodeLayout):yfiles.algorithms.YList; /** * - * @param {yfiles.algorithms.YDimension} labelSize - * @param {yfiles.layout.IEdgeLayout} edgeLayout - * @param {yfiles.layout.INodeLayout} sourceNode - * @param {yfiles.layout.INodeLayout} targetNode - * @param {Object} param - * @returns {yfiles.algorithms.YOrientedRectangle} + * @param labelSize + * @param edgeLayout + * @param sourceNode + * @param targetNode + * @param param + * @returns */ getLabelPlacement(labelSize:yfiles.algorithms.YDimension,edgeLayout:yfiles.layout.IEdgeLayout,sourceNode:yfiles.layout.INodeLayout,targetNode:yfiles.layout.INodeLayout,param:Object):yfiles.algorithms.YOrientedRectangle; /** @@ -85414,19 +83490,19 @@ declare namespace system{ * This method is called by {@link yfiles.layout.DiscreteEdgeLabelLayoutModel#getLabelPlacement} and {@link yfiles.layout.DiscreteEdgeLabelLayoutModel#getLabelCandidates} * to retrieve a valid position. *

    - * @param {yfiles.algorithms.YDimension} labelSize the size of the label that should be placed - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the source node of the label-owning edge - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the target node of the label-owning edge - * @param {yfiles.layout.DiscreteEdgeLabelPositions} position the label position that is valid in this model - * @returns {yfiles.algorithms.YOrientedRectangle} the oriented box of the label + * @param labelSize the size of the label that should be placed + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the source node of the label-owning edge + * @param targetLayout the layout of the target node of the label-owning edge + * @param position the label position that is valid in this model + * @returns the oriented box of the label * @protected */ getLabelPlacementForPosition(labelSize:yfiles.algorithms.YDimension,edgeLayout:yfiles.layout.IEdgeLayout,sourceLayout:yfiles.layout.INodeLayout,targetLayout:yfiles.layout.INodeLayout,position:yfiles.layout.DiscreteEdgeLabelPositions):yfiles.algorithms.YOrientedRectangle; /** * Returns the position specifier that is encoded by the given model parameter. - * @param {Object} parameter the model parameter - * @returns {number} the position specifier + * @param parameter the model parameter + * @returns the position specifier * @throws {Stubs.Exceptions.ArgumentError} if the specified model parameter is not valid for this model * @static */ @@ -85436,8 +83512,8 @@ declare namespace system{ *

    * If the model parameter describes a position that is accepted by the candidate mask, this is a valid parameter. *

    - * @param {Object} parameter the model parameter - * @returns {boolean} true if the label position described by the given model parameter is allowed, false otherwise + * @param parameter the model parameter + * @returns true if the label position described by the given model parameter is allowed, false otherwise */ isParameterValid(parameter:Object):boolean; /** @@ -85516,7 +83592,7 @@ declare namespace system{ * Furthermore, there's the possibility to mask out arbitrary node label candidates. This can either be done by specifying * predefined candidate masks or a combination of valid positions of this model using a logical or-operation. *

    - * @class yfiles.layout.DiscreteNodeLabelLayoutModel + * @class * @implements {yfiles.layout.INodeLabelLayoutModel} */ export interface DiscreteNodeLabelLayoutModel extends Object,yfiles.layout.INodeLabelLayoutModel{} @@ -85526,36 +83602,34 @@ declare namespace system{ *

    * The specified mask can also describe a single position. *

    - * @param {yfiles.layout.DiscreteNodeLabelPositions} candidateMask the position mask that defines the allowed positions for a node label - * @param {number} [inset=4.0] the inset value that defines the internal label distance to the node's border - * @constructor + * @param candidateMask the position mask that defines the allowed positions for a node label + * @param [inset=4.0] the inset value that defines the internal label distance to the node's border */ constructor(candidateMask:yfiles.layout.DiscreteNodeLabelPositions,inset?:number); /** * Creates a new instance of {@link yfiles.layout.DiscreteNodeLabelLayoutModel} with default settings. - * @constructor */ constructor(); /** * - * @param {yfiles.algorithms.YOrientedRectangle} labelBounds - * @param {yfiles.layout.INodeLayout} nodeLayout - * @returns {Object} + * @param labelBounds + * @param nodeLayout + * @returns */ createModelParameter(labelBounds:yfiles.algorithms.YOrientedRectangle,nodeLayout:yfiles.layout.INodeLayout):Object; /** * - * @param {yfiles.layout.INodeLabelLayout} labelLayout - * @param {yfiles.layout.INodeLayout} nodeLayout - * @returns {yfiles.algorithms.YList} + * @param labelLayout + * @param nodeLayout + * @returns */ getLabelCandidates(labelLayout:yfiles.layout.INodeLabelLayout,nodeLayout:yfiles.layout.INodeLayout):yfiles.algorithms.YList; /** * - * @param {yfiles.algorithms.YDimension} labelSize - * @param {yfiles.layout.INodeLayout} nodeLayout - * @param {Object} parameter - * @returns {yfiles.algorithms.YOrientedRectangle} + * @param labelSize + * @param nodeLayout + * @param parameter + * @returns */ getLabelPlacement(labelSize:yfiles.algorithms.YDimension,nodeLayout:yfiles.layout.INodeLayout,parameter:Object):yfiles.algorithms.YOrientedRectangle; /** @@ -85564,10 +83638,10 @@ declare namespace system{ * This method is called by {@link yfiles.layout.DiscreteNodeLabelLayoutModel#getLabelPlacement} and {@link yfiles.layout.DiscreteNodeLabelLayoutModel#getLabelCandidates} * to retrieve a valid position. *

    - * @param {yfiles.algorithms.YDimension} labelSize the size of the label that should be placed - * @param {yfiles.layout.INodeLayout} nodeLayout the layout of the node to which the label belongs - * @param {yfiles.layout.DiscreteNodeLabelPositions} position the label position that is valid in this model - * @returns {yfiles.algorithms.YOrientedRectangle} the oriented box of the label + * @param labelSize the size of the label that should be placed + * @param nodeLayout the layout of the node to which the label belongs + * @param position the label position that is valid in this model + * @returns the oriented box of the label * @protected */ getLabelPlacementForPosition(labelSize:yfiles.algorithms.YDimension,nodeLayout:yfiles.layout.INodeLayout,position:yfiles.layout.DiscreteNodeLabelPositions):yfiles.algorithms.YOrientedRectangle; @@ -85576,8 +83650,8 @@ declare namespace system{ *

    * If the model parameter describes a position that is accepted by the candidate mask, this is a valid parameter. *

    - * @param {Object} parameter the model parameter - * @returns {boolean} true if the label position described by the given model parameter is allowed, false otherwise + * @param parameter the model parameter + * @returns true if the label position described by the given model parameter is allowed, false otherwise */ isParameterValid(parameter:Object):boolean; /** @@ -85625,19 +83699,17 @@ declare namespace system{ *

    * @see yfiles.layout.EdgeBundling * @see yfiles.layout.EdgeBundling#EDGE_BUNDLE_DESCRIPTOR_DP_KEY - * @class yfiles.layout.EdgeBundleDescriptor + * @class */ export interface EdgeBundleDescriptor extends Object{} export class EdgeBundleDescriptor { /** * Creates a new {@link yfiles.layout.EdgeBundleDescriptor} representing a copy of the given other descriptor instance. - * @param {yfiles.layout.EdgeBundleDescriptor} descriptor the descriptor to copy - * @constructor + * @param descriptor the descriptor to copy */ constructor(descriptor:yfiles.layout.EdgeBundleDescriptor); /** * Creates a new {@link yfiles.layout.EdgeBundleDescriptor} with default settings. - * @constructor */ constructor(); /** @@ -85649,7 +83721,7 @@ declare namespace system{ *

    *

    * If the direction of some edges is taken into consideration while the direction of some others (adjacent to the same - * node) is ignored, the undirected edges are also bundled separately. This is done to distinguished them from the incoming + * node) is ignored, the undirected edges are also bundled separately. This is done to distinguish them from the incoming * and outgoing edges of the particular node. *

    * @type {boolean} @@ -85695,21 +83767,19 @@ declare namespace system{ *

    * @see yfiles.layout.EdgeBundleDescriptor * @see yfiles.circular.CircularLayout#edgeBundling - * @class yfiles.layout.EdgeBundling + * @class */ export interface EdgeBundling extends Object{} export class EdgeBundling { /** * Creates a new {@link yfiles.layout.EdgeBundling} instance with the given {@link yfiles.layout.EdgeBundling#bundlingStrength bundling strength} and {@link yfiles.layout.EdgeBundling#bundlingQuality bundling quality}. - * @param {number} bundlingStrength the bundling strength from the interval [0,1] - * @param {number} bundlingQuality the bundling quality from the interval [0,1] + * @param bundlingStrength the bundling strength from the interval [0,1] + * @param bundlingQuality the bundling quality from the interval [0,1] * @throws {Stubs.Exceptions.ArgumentError} if the given bundling strength or quality is not within [0,1] - * @constructor */ constructor(bundlingStrength:number,bundlingQuality:number); /** * Creates a new {@link yfiles.layout.EdgeBundling} instance with default settings. - * @constructor */ constructor(); /** @@ -85767,7 +83837,7 @@ declare namespace system{ } /** * An {@link yfiles.layout.EdgeLabelCandidate} describes one valid placement for an edge label considering the label model. - * @class yfiles.layout.EdgeLabelCandidate + * @class * @extends {yfiles.layout.LabelCandidate} */ export interface EdgeLabelCandidate extends yfiles.layout.LabelCandidate{} @@ -85775,21 +83845,19 @@ declare namespace system{ /** * Creates a new instance of {@link yfiles.layout.EdgeLabelCandidate} described by location, size, model parameter and internal * flag. - * @param {yfiles.algorithms.YPoint} pos the location of the upper left corner of the candidate - * @param {yfiles.algorithms.YDimension} size the size of the candidate - * @param {Object} param the parameters of the label model associated with this candidate - * @param {yfiles.layout.IEdgeLabelLayout} owner the label associated with the candidate - * @param {boolean} [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise - * @constructor + * @param pos the location of the upper left corner of the candidate + * @param size the size of the candidate + * @param param the parameters of the label model associated with this candidate + * @param owner the label associated with the candidate + * @param [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise */ constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,param:Object,owner:yfiles.layout.IEdgeLabelLayout,internal?:boolean); /** * Creates a new instance of {@link yfiles.layout.EdgeLabelCandidate} described by its box, model parameter and internal flag. - * @param {yfiles.algorithms.YOrientedRectangle} labelBox the box that specifies the candidate's size and position - * @param {Object} param the parameters of the label model associated with this candidate - * @param {yfiles.layout.IEdgeLabelLayout} owner the label associated with the candidate - * @param {boolean} [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise - * @constructor + * @param labelBox the box that specifies the candidate's size and position + * @param param the parameters of the label model associated with this candidate + * @param owner the label associated with the candidate + * @param [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise */ constructor(labelBox:yfiles.algorithms.YOrientedRectangle,param:Object,owner:yfiles.layout.IEdgeLabelLayout,internal?:boolean); static $class:yfiles.lang.Class; @@ -85809,14 +83877,13 @@ declare namespace system{ * descriptors (combinations of the same setting, e.g., source or target for the {@link yfiles.layout.PreferredPlacementDescriptor#placeAlongEdge}), {@link yfiles.layout.EdgeLabelOrientationSupport#preProcessLabel} * removes combinations and replaces the original descriptor with a non-ambiguous one during the layout calculation. *

    - * @class yfiles.layout.EdgeLabelOrientationSupport + * @class */ export interface EdgeLabelOrientationSupport extends Object{} export class EdgeLabelOrientationSupport { /** * Creates a new {@link yfiles.layout.EdgeLabelOrientationSupport} instance. * @see yfiles.layout.OrientationLayout#considerEdgeLabels - * @constructor */ constructor(); /** @@ -85824,17 +83891,17 @@ declare namespace system{ *

    * The created descriptor will be one without any combinations of settings, e.g., source or target for the {@link yfiles.layout.PreferredPlacementDescriptor#placeAlongEdge}. *

    - * @param {yfiles.layout.PreferredPlacementDescriptor} ambiguous an ambiguous {@link yfiles.layout.PreferredPlacementDescriptor} - * @returns {yfiles.layout.PreferredPlacementDescriptor} a non-ambiguous version of the given ambiguous {@link yfiles.layout.PreferredPlacementDescriptor} + * @param ambiguous an ambiguous {@link } + * @returns a non-ambiguous version of the given ambiguous {@link } * @protected */ createNonAmbiguous(ambiguous:yfiles.layout.PreferredPlacementDescriptor):yfiles.layout.PreferredPlacementDescriptor; /** * Calculates the up vector of an edge label considering the preferred placement of the label as well as the direction of * the edge segment the label is attached to. - * @param {yfiles.layout.PreferredPlacementDescriptor} descriptor the data describing the preferred label orientation - * @param {yfiles.layout.Direction} segmentDirection the direction the edge segment is pointing to - * @returns {yfiles.algorithms.YVector} the up vector for the edge label that considers the preferred placement of the label as well as the direction of the + * @param descriptor the data describing the preferred label orientation + * @param segmentDirection the direction the edge segment is pointing to + * @returns the up vector for the edge label that considers the preferred placement of the label as well as the direction of the * edge segment the label is attached to * @static */ @@ -85845,25 +83912,25 @@ declare namespace system{ * The up vector starts in the lower-left corner of the label and points up. If the label is paraxial it is (0, -1). The * right vector starts at the same point and points right. In a paraxial label it is (1, 0). *

    - * @param {number} rightVectorAngle the angle in radians the right vector is rotated by - * @returns {yfiles.algorithms.YVector} the up vector for a label whose right vector is rotated clockwise by the given angle + * @param rightVectorAngle the angle in radians the right vector is rotated by + * @returns the up vector for a label whose right vector is rotated clockwise by the given angle * @static */ static getLabelUpVector(rightVectorAngle:number):yfiles.algorithms.YVector; /** * Transforms a direction of the layout to the oriented layout direction. - * @param {yfiles.layout.Direction} direction direction in the layout - * @param {yfiles.layout.LayoutOrientation} orientation the orientation of the layout - * @param {yfiles.layout.MirrorModes} mirrorMask the mask to determine whether or not the orientation is mirrored - * @returns {yfiles.layout.Direction} the direction in the oriented layout + * @param direction direction in the layout + * @param orientation the orientation of the layout + * @param mirrorMask the mask to determine whether or not the orientation is mirrored + * @returns the direction in the oriented layout * @static */ static getOrientedDirection(direction:yfiles.layout.Direction,orientation:yfiles.layout.LayoutOrientation,mirrorMask:yfiles.layout.MirrorModes):yfiles.layout.Direction; /** * Returns whether or not the orientation is mirrored. - * @param {yfiles.layout.LayoutOrientation} orientation the orientation of the layout - * @param {yfiles.layout.MirrorModes} mirrorMask the mask to determine whether or not the orientation is mirrored - * @returns {boolean} true if the orientation is mirrored, false otherwise + * @param orientation the orientation of the layout + * @param mirrorMask the mask to determine whether or not the orientation is mirrored + * @returns true if the orientation is mirrored, false otherwise * @static */ static isOrientationMirrored(orientation:yfiles.layout.LayoutOrientation,mirrorMask:yfiles.layout.MirrorModes):boolean; @@ -85877,7 +83944,7 @@ declare namespace system{ * Algorithms that are executed after this call and before {@link yfiles.layout.EdgeLabelOrientationSupport#resetAmbiguousLabelDescriptors} * will handle port labels like normal source or target labels. *

    - * @param {yfiles.layout.LabelLayoutData} portLabel an edge label that had a {@link yfiles.layout.LabelPlacements#AT_SOURCE_PORT} or {@link yfiles.layout.LabelPlacements#AT_TARGET_PORT} + * @param portLabel an edge label that had a {@link #AT_SOURCE_PORT} or {@link #AT_TARGET_PORT} * placement preference * @throws {Stubs.Exceptions.InvalidOperationError} if {@link yfiles.layout.EdgeLabelOrientationSupport#replaceAmbiguousLabelDescriptors} was never called for the graph containing * the given label. @@ -85895,8 +83962,8 @@ declare namespace system{ * This method is called by the core layout algorithm with the integrated edge labeling for each edge label after the * location of the label is determined. *

    - * @param {yfiles.algorithms.Graph} graph the graph to get the orientation information from - * @param {yfiles.layout.LabelLayoutData} label the information about the edge label whose location is determined + * @param graph the graph to get the orientation information from + * @param label the information about the edge label whose location is determined */ postProcessLabel(graph:yfiles.algorithms.Graph,label:yfiles.layout.LabelLayoutData):void; /** @@ -85913,9 +83980,9 @@ declare namespace system{ * layout algorithm uses the geometry of labels. It should be called as soon as the direction of the segment the label * belongs to is determined. *

    - * @param {yfiles.algorithms.Graph} graph the graph to get the orientation information from - * @param {yfiles.layout.LabelLayoutData} label the information about the edge label whose segment direction is determined - * @param {yfiles.layout.Direction} segmentDirection the direction of the segment the edge label belongs to + * @param graph the graph to get the orientation information from + * @param label the information about the edge label whose segment direction is determined + * @param segmentDirection the direction of the segment the edge label belongs to */ preProcessLabel(graph:yfiles.algorithms.Graph,label:yfiles.layout.LabelLayoutData,segmentDirection:yfiles.layout.Direction):void; /** @@ -85929,7 +83996,7 @@ declare namespace system{ * This method should be called by a layout algorithm at the beginning of the layout calculation to assure that the label's * placement is handled consistently. *

    - * @param {yfiles.algorithms.Graph} graph the input graph + * @param graph the input graph */ replaceAmbiguousLabelDescriptors(graph:yfiles.algorithms.Graph):void; /** @@ -85939,14 +84006,14 @@ declare namespace system{ * This method should be called by a layout algorithm at the end of the layout calculation to assure that the original * state of the graph is not corrupted. *

    - * @param {yfiles.algorithms.Graph} graph the input graph + * @param graph the input graph */ resetAmbiguousLabelDescriptors(graph:yfiles.algorithms.Graph):void; /** * Calculates and sets the up vector of an edge label considering the preferred placement of the label as well as the * direction of the edge segment the label is attached to. - * @param {yfiles.layout.LabelLayoutData} label the data that describes the label orientation and is used for setting the new up vector - * @param {yfiles.layout.Direction} segmentDirection the direction the edge segment is pointing to + * @param label the data that describes the label orientation and is used for setting the new up vector + * @param segmentDirection the direction the edge segment is pointing to * @see yfiles.layout.EdgeLabelOrientationSupport#getEdgeLabelUpVector * @static */ @@ -85960,15 +84027,14 @@ declare namespace system{ * The absolute coordinates of the {@link yfiles.layout.FixNodeLayoutStage#calculateFixPoint fix point} are the same before and after invoking the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. However, the * relative coordinates of the nodes are altered by the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. *

    - * @class yfiles.layout.FixNodeLayoutStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface FixNodeLayoutStage extends yfiles.layout.LayoutStageBase{} export class FixNodeLayoutStage { /** * Creates a new {@link yfiles.layout.FixNodeLayoutStage} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor + * @param [coreLayouter=null] The core layout algorithm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -85980,9 +84046,9 @@ declare namespace system{ * This method is called by {@link yfiles.layout.FixNodeLayoutStage#calculateFixPoint} and may be overridden to customize the size * of the bounds. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph associated with the specified nodes - * @param {yfiles.algorithms.NodeList} fixed the list of nodes for which to determine the bounding box - * @returns {yfiles.algorithms.Rectangle2D} the bounding box of the specified nodes + * @param graph the graph associated with the specified nodes + * @param fixed the list of nodes for which to determine the bounding box + * @returns the bounding box of the specified nodes * @see yfiles.layout.FixNodeLayoutStage#includingEdges * @see yfiles.layout.FixNodeLayoutStage#includingLabels * @see yfiles.layout.FixNodeLayoutStage#calculateFixPoint @@ -86000,9 +84066,9 @@ declare namespace system{ * coordinates before and after invoking the * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. It may be overridden to introduce a custom policy for retrieving the fix point. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph associated with the specified nodes - * @param {yfiles.algorithms.NodeList} fixed the list of nodes for which a fix point has to be determined - * @returns {yfiles.algorithms.YPoint} the fix point for the specified nodes in the specified graph + * @param graph the graph associated with the specified nodes + * @param fixed the list of nodes for which a fix point has to be determined + * @returns the fix point for the specified nodes in the specified graph * @see yfiles.layout.FixNodeLayoutStage#fixPointPolicy * @see yfiles.layout.FixNodeLayoutStage#calculateBounds * @see yfiles.layout.FixNodeLayoutStage#calculateFixPoint @@ -86019,8 +84085,8 @@ declare namespace system{ * {@link yfiles.layout.FixNodeLayoutStage#calculateFixPoint}. It may be overridden to introduce a custom policy for retrieving the * fix point. *

    - * @param {yfiles.algorithms.Rectangle2D} bounds the rectangle for which to determine the fix point - * @returns {yfiles.algorithms.YPoint} the fix point of the specified rectangle or null if nothing should be fixed + * @param bounds the rectangle for which to determine the fix point + * @returns the fix point of the specified rectangle or null if nothing should be fixed * @throws {Stubs.Exceptions.ArgumentError} if the current fix point policy is invalid * @see yfiles.layout.FixNodeLayoutStage#fixPointPolicy * @protected @@ -86066,15 +84132,14 @@ declare namespace system{ * after applying the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. Therefore, it either replaces the source/target port by the original port or * adds the original port to the edge path calculated by the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} (see method {@link yfiles.layout.FixPortLocationStage#keepCalculatedPorts}). *

    - * @class yfiles.layout.FixPortLocationStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface FixPortLocationStage extends yfiles.layout.LayoutStageBase{} export class FixPortLocationStage { /** * Creates a new {@link yfiles.layout.FixPortLocationStage} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor + * @param [coreLayouter=null] The core layout algorithm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -86099,22 +84164,20 @@ declare namespace system{ *

    * @see yfiles.layout.FreeEdgeLabelLayoutModelParameter#setPoint * @see yfiles.layout.FreeEdgeLabelLayoutModelParameter#angle - * @class yfiles.layout.FreeEdgeLabelLayoutModelParameter + * @class */ export interface FreeEdgeLabelLayoutModelParameter extends Object{} export class FreeEdgeLabelLayoutModelParameter { /** * Creates a new instance of {@link yfiles.layout.FreeEdgeLabelLayoutModelParameter} with the given radius, angle and rotation * angle. - * @param {number} radius the distance of the label from the source node of the underlying edge - * @param {number} theta the angle in radians between the first segment of the underlying edge and the imaginary line to the center of the label - * @param {number} [angle=0] the rotation angle of the label - * @constructor + * @param radius the distance of the label from the source node of the underlying edge + * @param theta the angle in radians between the first segment of the underlying edge and the imaginary line to the center of the label + * @param [angle=0] the rotation angle of the label */ constructor(radius:number,theta:number,angle?:number); /** * Creates a new instance of {@link yfiles.layout.FreeEdgeLabelLayoutModelParameter} with radius 50 and angle 0. - * @constructor */ constructor(); /** @@ -86124,8 +84187,8 @@ declare namespace system{ * y-coordinate corresponds to the angle between the first segment of the underlying edge and the imaginary line to the * center of the label. *

    - * @param {number} radius the distance to the source point - * @param {number} theta the location on the radius + * @param radius the distance to the source point + * @param theta the location on the radius */ setPoint(radius:number,theta:number):void; /** @@ -86147,14 +84210,13 @@ declare namespace system{ } /** * {@link yfiles.layout.FreeEdgeLabelLayoutModel} allows placing edge labels at any location. - * @class yfiles.layout.FreeEdgeLabelLayoutModel + * @class * @implements {yfiles.layout.IEdgeLabelLayoutModel} */ export interface FreeEdgeLabelLayoutModel extends Object,yfiles.layout.IEdgeLabelLayoutModel{} export class FreeEdgeLabelLayoutModel { /** * Creates a new instance of {@link yfiles.layout.FreeEdgeLabelLayoutModel}. - * @constructor */ constructor(); /** @@ -86166,32 +84228,32 @@ declare namespace system{ * This parameter can be passed to {@link yfiles.layout.FreeEdgeLabelLayoutModel#getLabelPlacement} to retrieve the current label * box. *

    - * @param {yfiles.algorithms.YOrientedRectangle} labelBounds the oriented box of the label the parameter represents - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the source node of the label-owning edge - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the target node of the label-owning edge - * @returns {Object} the model parameter representing the given label location + * @param labelBounds the oriented box of the label the parameter represents + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the source node of the label-owning edge + * @param targetLayout the layout of the target node of the label-owning edge + * @returns the model parameter representing the given label location * @throws {Stubs.Exceptions.ArgumentError} if one or more of the given bounds' values are invalid, i.e., NaN * @see yfiles.layout.FreeEdgeLabelLayoutModel#getLabelPlacement */ createModelParameter(labelBounds:yfiles.algorithms.YOrientedRectangle,edgeLayout:yfiles.layout.IEdgeLayout,sourceLayout:yfiles.layout.INodeLayout,targetLayout:yfiles.layout.INodeLayout):Object; /** * Returns the {@link yfiles.layout.EdgeLabelCandidate} that describes the current label position. - * @param {yfiles.layout.IEdgeLabelLayout} labelLayout the label for which candidates should be generated - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the source node of the label-owning edge - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the target node of the label-owning edge - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.layout.EdgeLabelCandidate} instances + * @param labelLayout the label for which candidates should be generated + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the source node of the label-owning edge + * @param targetLayout the layout of the target node of the label-owning edge + * @returns a list of {@link } instances */ getLabelCandidates(labelLayout:yfiles.layout.IEdgeLabelLayout,edgeLayout:yfiles.layout.IEdgeLayout,sourceLayout:yfiles.layout.INodeLayout,targetLayout:yfiles.layout.INodeLayout):yfiles.algorithms.YList; /** * - * @param {yfiles.algorithms.YDimension} labelSize - * @param {yfiles.layout.IEdgeLayout} edgeLayout - * @param {yfiles.layout.INodeLayout} sourceNode - * @param {yfiles.layout.INodeLayout} targetNode - * @param {Object} param - * @returns {yfiles.algorithms.YOrientedRectangle} + * @param labelSize + * @param edgeLayout + * @param sourceNode + * @param targetNode + * @param param + * @returns */ getLabelPlacement(labelSize:yfiles.algorithms.YDimension,edgeLayout:yfiles.layout.IEdgeLayout,sourceNode:yfiles.layout.INodeLayout,targetNode:yfiles.layout.INodeLayout,param:Object):yfiles.algorithms.YOrientedRectangle; /** @@ -86216,15 +84278,14 @@ declare namespace system{ * the upper-left corner of the node. *

    * @see yfiles.layout.FreeNodeLabelLayoutModelParameter#setPoint - * @class yfiles.layout.FreeNodeLabelLayoutModelParameter + * @class */ export interface FreeNodeLabelLayoutModelParameter extends Object{} export class FreeNodeLabelLayoutModelParameter { /** * Creates a new instance of {@link yfiles.layout.FreeNodeLabelLayoutModelParameter} with the given offset. - * @param {number} dx the horizontal offset - * @param {number} dy the vertical offset - * @constructor + * @param dx the horizontal offset + * @param dy the vertical offset */ constructor(dx:number,dy:number); /** @@ -86232,13 +84293,12 @@ declare namespace system{ *

    * It has no offset, i.e., the upper-left corners of both node label and node are at the same location. *

    - * @constructor */ constructor(); /** * Specifies the offset of the label's center to the upper-left corner of the node. - * @param {number} dx the horizontal offset - * @param {number} dy the vertical offset + * @param dx the horizontal offset + * @param dy the vertical offset */ setPoint(dx:number,dy:number):void; /** @@ -86254,14 +84314,13 @@ declare namespace system{ * The location of the label does not need to satisfy any constraints. The {@link yfiles.layout.FreeNodeLabelLayoutModel#createModelParameter model parameter} describes a fixed offset between * the upper-left corner of the node and the center of the label. *

    - * @class yfiles.layout.FreeNodeLabelLayoutModel + * @class * @implements {yfiles.layout.INodeLabelLayoutModel} */ export interface FreeNodeLabelLayoutModel extends Object,yfiles.layout.INodeLabelLayoutModel{} export class FreeNodeLabelLayoutModel { /** * Returns a new instance of {@link yfiles.layout.FreeNodeLabelLayoutModel}. - * @constructor */ constructor(); /** @@ -86273,26 +84332,26 @@ declare namespace system{ * This parameter can be passed to {@link yfiles.layout.FreeNodeLabelLayoutModel#getLabelPlacement} to retrieve the current label * box. *

    - * @param {yfiles.algorithms.YOrientedRectangle} labelBounds the bounds of the label the parameter represents - * @param {yfiles.layout.INodeLayout} nodeLayout the layout of the node to which the label belongs - * @returns {Object} the model parameter + * @param labelBounds the bounds of the label the parameter represents + * @param nodeLayout the layout of the node to which the label belongs + * @returns the model parameter * @throws {Stubs.Exceptions.ArgumentError} if one or more of the given bounds' values are invalid, i.e., NaN * @see yfiles.layout.FreeNodeLabelLayoutModel#getLabelPlacement */ createModelParameter(labelBounds:yfiles.algorithms.YOrientedRectangle,nodeLayout:yfiles.layout.INodeLayout):Object; /** * Returns the {@link yfiles.layout.NodeLabelCandidate} that describes the current label position. - * @param {yfiles.layout.INodeLabelLayout} labelLayout the label for which candidates should be generated - * @param {yfiles.layout.INodeLayout} nodeLayout the layout of the node to which the label belongs - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.layout.NodeLabelCandidate} instances + * @param labelLayout the label for which candidates should be generated + * @param nodeLayout the layout of the node to which the label belongs + * @returns a list of {@link } instances */ getLabelCandidates(labelLayout:yfiles.layout.INodeLabelLayout,nodeLayout:yfiles.layout.INodeLayout):yfiles.algorithms.YList; /** * - * @param {yfiles.algorithms.YDimension} labelSize - * @param {yfiles.layout.INodeLayout} nodeLayout - * @param {Object} param - * @returns {yfiles.algorithms.YOrientedRectangle} + * @param labelSize + * @param nodeLayout + * @param param + * @returns */ getLabelPlacement(labelSize:yfiles.algorithms.YDimension,nodeLayout:yfiles.layout.INodeLayout,param:Object):yfiles.algorithms.YOrientedRectangle; /** @@ -87187,14 +85246,13 @@ declare namespace system{ * The {@link yfiles.layout.GraphLayoutLineWrapper} can be used on an existing graph layout or on the result of the * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. *

    - * @class yfiles.layout.GraphLayoutLineWrapper + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface GraphLayoutLineWrapper extends yfiles.layout.LayoutStageBase{} export class GraphLayoutLineWrapper { /** * Creates a new {@link yfiles.layout.GraphLayoutLineWrapper} instance with default settings. - * @constructor */ constructor(); /** @@ -87274,6 +85332,1411 @@ declare namespace system{ fixedWidth:number; static $class:yfiles.lang.Class; } + /** + * This class represents a column of a {@link yfiles.layout.PartitionGrid partition grid} structure. + *

    + * The results of the calculation of the geometry of the column will be placed into the instances of this class after the + * layout. + *

    + * @see yfiles.layout.PartitionGrid + * @class + * @implements {yfiles.lang.IComparable} + */ + export interface ColumnDescriptor extends Object,yfiles.lang.IComparable{} + export class ColumnDescriptor { + /** + * Compares this {@link yfiles.layout.ColumnDescriptor} instance with a given other {@link yfiles.layout.ColumnDescriptor} instance based + * on the indices of the two instances. + * @param o the {@link } to compare to + * @returns -1, 0 or 1 if this {@link } is less than, equal to, or greater than the given other + * {@link } + */ + compareTo(o:Object):number; + /** + * Gets the index of the column within the {@link yfiles.layout.PartitionGrid partition grid}. + * @type {number} + */ + index:number; + /** + * Gets or sets the minimum width of the column. + *

    + * The minimum width is defined to be at least 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the minimum width is negative + * @type {number} + */ + minimumWidth:number; + /** + * Gets or sets the left column inset in which no element will lie in the resulting layout. + *

    + * The column inset must be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the left inset is negative + * @type {number} + */ + leftInset:number; + /** + * Gets or sets the right column inset in which no element will lie in the resulting layout. + *

    + * The column inset must be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the right inset is negative + * @type {number} + */ + rightInset:number; + /** + * Gets or sets the computed width of the column after the layout has been calculated. + *

    + * The computed width needs to be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the computed width is negative + * @type {number} + */ + computedWidth:number; + /** + * Gets or sets the original width of the column. + *

    + * The original width should be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the original width is negative + * @type {number} + */ + originalWidth:number; + /** + * Gets or sets the original position (smallest x-coordinate) of the column. + * @type {number} + */ + originalPosition:number; + /** + * Gets or sets the computed position (smallest x-coordinate) of the column after the layout has been calculated. + * @type {number} + */ + computedPosition:number; + /** + * Gets or sets the tightness factor of this column. + *

    + * This value must lie within the interval [0,1]. + *

    + *

    + * The larger the value, the more the column will be forced to obtain its minimum width: + *

    + *
      + *
    • a value of 0.0d will disable the compression of the column.
    • + *
    • a value of 1.0d will try to force the column to obtain its specified {@link yfiles.layout.ColumnDescriptor#minimumWidth minimum width}.
    • + *
    + * @throws {Stubs.Exceptions.ArgumentError} if the tightness value is outside the interval [0,1] + * @type {number} + */ + tightness:number; + /** + * Gets or sets whether the index of the column is fixed or it should be chosen automatically in order to minimize edge + * lengths. + *

    + * For all columns where this property is enabled, the relative ordering given by the indices is preserved. The remaining + * columns may be sorted again so that the overall edge lengths are minimized. + *

    + * @type {boolean} + */ + indexFixed:boolean; + static $class:yfiles.lang.Class; + } + /** + * This class represents a single partition cell, i.e., a pair consisting of a row and a column. + * @class + * @implements {yfiles.lang.IComparable} + * @final + */ + export interface PartitionCellIdEntry extends Object,yfiles.lang.IComparable{} + export class PartitionCellIdEntry { + /** + * Compares this {@link yfiles.layout.PartitionCellIdEntry} instance with a given other {@link yfiles.layout.PartitionCellIdEntry} + * instance. + *

    + * The comparison is based on the indices of the {@link yfiles.layout.PartitionCellIdEntry#row rows} and {@link yfiles.layout.PartitionCellIdEntry#column columns} of the two pairs. A {@link yfiles.layout.PartitionCellIdEntry} is + * considered to be smaller than another pair if its {@link yfiles.layout.RowDescriptor#index row index} is smaller than the row index of the other pair. If the row + * indices are equal, the {@link yfiles.layout.PartitionCellIdEntry} with the smaller {@link yfiles.layout.ColumnDescriptor#index column index} is said to be smaller. Hence, + * two {@link yfiles.layout.PartitionCellIdEntry} instances are equal, if the row and column indices are equal. + *

    + * @param o the {@link } to be compared + * @returns -1, 0 or 1 if this {@link } is smaller than, equal to, or greater than the given other {@link } + * instance + */ + compareTo(o:Object):number; + /** + * Gets the {@link yfiles.layout.RowDescriptor} associated with this {@link yfiles.layout.PartitionCellId partition cell}. + * @type {yfiles.layout.RowDescriptor} + */ + row:yfiles.layout.RowDescriptor; + /** + * Gets the {@link yfiles.layout.ColumnDescriptor} associated with this {@link yfiles.layout.PartitionCellId partition cell}. + * @type {yfiles.layout.ColumnDescriptor} + */ + column:yfiles.layout.ColumnDescriptor; + static $class:yfiles.lang.Class; + } + /** + * {@link yfiles.layout.PartitionCellId} represents an identifier for partition cells of a {@link yfiles.layout.PartitionGrid partition grid} structure. + * @see yfiles.layout.PartitionGrid + * @class + */ + export interface PartitionCellId extends Object{} + export class PartitionCellId { + /** + * Gets a {@link yfiles.collections.ICollection. collection} of elements of type {@link yfiles.layout.PartitionCellIdEntry}. + *

    + * Each pair consists of a {@link yfiles.layout.ColumnDescriptor column} and a {@link yfiles.layout.RowDescriptor row} defining a single {@link yfiles.layout.PartitionCellId partition cell}. + *

    + * @type {yfiles.collections.IEnumerable.} + */ + cells:yfiles.collections.IEnumerable; + /** + * Gets whether or not this {@link yfiles.layout.PartitionCellId} represents a multi-cell, i.e., a cell spanning multiple + * rows/columns. + *

    + * This means that it was created using {@link yfiles.layout.PartitionGrid#createCellSpanId}, + * {@link yfiles.layout.PartitionGrid#createCellSpanId}, {@link yfiles.layout.PartitionGrid#createCellSpanId}, {@link yfiles.layout.PartitionGrid#createColumnSpanId} + * or {@link yfiles.layout.PartitionGrid#createRowSpanId}. + *

    + * @type {boolean} + */ + isSpanning:boolean; + /** + * Gets the first {@link yfiles.layout.RowDescriptor row} associated with this {@link yfiles.layout.PartitionCellId partition cell} identifier. + * @type {yfiles.layout.RowDescriptor} + */ + row:yfiles.layout.RowDescriptor; + /** + * Gets the first {@link yfiles.layout.ColumnDescriptor column} associated with this {@link yfiles.layout.PartitionCellId partition cell} identifier. + * @type {yfiles.layout.ColumnDescriptor} + */ + column:yfiles.layout.ColumnDescriptor; + static $class:yfiles.lang.Class; + } + /** + * This class represents a partition grid that partitions the drawing area into rectangular partition cells. + *

    + * Such a structure allows, for example, to model vertical/horizontal swimlanes which are often used in flow diagrams to + * separate logical units. + *

    + *

    + * The grid consists of rows and columns that are created using the corresponding constructors of this class or methods {@link yfiles.layout.PartitionGrid#addRow} + * and {@link yfiles.layout.PartitionGrid#addColumn}. The {@link yfiles.layout.PartitionGrid} object has to be registered with the graph + * using the {@link yfiles.algorithms.IDataProvider} key {@link yfiles.layout.PartitionGrid#PARTITION_GRID_DP_KEY}. + *

    + *

    + * Each node can be assigned to a {@link yfiles.layout.PartitionCellId} which represents a set of partition cells. The mapping has + * to be registered with the graph using {@link yfiles.algorithms.IDataProvider} key + * {@link yfiles.layout.PartitionGrid#PARTITION_CELL_ID_DP_KEY}. Simple partition cell identifiers which represent a single + * partition cell, i.e., a row/column pair, can be created using method {@link yfiles.layout.PartitionGrid#createCellId} or + * {@link yfiles.layout.PartitionGrid#createCellId}. + *

    + *

    + * Nodes can also be mapped to a partition cell identifier that represents a multi-cell, i.e., a cell spanning multiple + * columns and rows. Please note, however, that multi-cells are not allowed to overlap each other. This means that the user + * has to ensure that each partition cell (row/column pair) is associated with at most one partition cell identifier. The + * multi-cell identifier can be created using methods {@link yfiles.layout.PartitionGrid#createCellSpanId}, + * {@link yfiles.layout.PartitionGrid#createCellSpanId}, {@link yfiles.layout.PartitionGrid#createCellSpanId}, + * {@link yfiles.layout.PartitionGrid#createColumnSpanId}, and {@link yfiles.layout.PartitionGrid#createRowSpanId}. + *

    + *

    + * {@graph {"ann":{"s":[60,30],"d":1, "lblB" : 1, "lblFont" : "16px sans-serif"},"n":[[265,290,230,142,2,[[265,313.6,230,23.6,5,"Column 0"]]],[311.5,386.5,[[336.16,410.85,10.67,18.7]]],[411.5,346.5,[[436.16,370.85,10.67,18.7]]],[505,289,299,144,2,[[505,312.6,299,23.6,5,"Column 1"]]],[631.5,366.5,[[656.16,390.85,10.67,18.7]]],[731.5,326.5,[[756.16,350.85,10.67,18.7]]],[531.5,326.5,[[556.16,350.85,10.67,18.7]]],[819,290,250,140,2,[[819,313.6,250,23.6,5,"Column 2"]]],[831.5,326.5,[[856.16,350.85,10.67,18.7]]],[265,449,230,123,2],[411.5,466.5,[[436.16,490.85,10.67,18.7]]],[411.5,526.5,[[436.16,550.85,10.67,18.7]]],[505,449,299,123,2],[819,449,250,123,2],[931.5,466.5,[[956.16,490.85,10.67,18.7]]],[505,589,299,104,2],[819,589,250,104,2],[531.5,606.5,[[552.83,630.85,17.35,18.7]]],[265,589,230,104,2],[411.5,606.5,[[432.83,630.85,17.35,18.7]]],[831.5,606.5,[[852.83,630.85,17.35,18.7]]],[105,348.2,150,23.6,2,[[105,371.8,150,23.6,5,"Row 0"]]],[105,488.2,150,23.6,2,[[105,511.8,150,23.6,5,"Row 1"]]],[105,628.2,150,23.6,2,[[105,651.8,150,23.6,5,"Row 2"]]]],"e":[[1,2,30,-10,-30,-0,[381.5,391.5,381.5,361.5]],[1,4,30,-0,-30,10,[581.5,401.5,581.5,391.5]],[2,4,30,7.5,-30,-0,[481.5,369,481.5,381.5]],[4,5,30,-0,-30,7.5,[701.5,381.5,701.5,349]],[2,6,30,-7.5,-30,-0,[481.5,354,481.5,341.5]],[6,4,30,7.5,-30,-10,[601.5,349,601.5,371.5]],[6,5,30,-7.5,-30,-7.5,[621.5,334,621.5,341.5,681.5,341.5,681.5,334]],[5,8,30,-0,-30,-0],[8,14,30,-0,-30,-7.5,[901.5,341.5,901.5,474]],[10,14,30,-0,-30,7.5,[881.5,481.5,881.5,489]],[1,17,30,10,-30,10,[381.5,411.5,381.5,661.5,481.5,661.5,481.5,631.5]],[11,17,30,-0,-30,-10,[481.5,541.5,481.5,611.5]],[19,17,30,-0,-30,-0],[17,20,30,-0,-30,-0]],"vp":[105.0,289.0,964.0,404.0]}} Sample output of a layout algorithm with a partition grid + *

    + * @class + */ + export interface PartitionGrid extends Object{} + export class PartitionGrid { + /** + * Creates an instance of {@link yfiles.layout.PartitionGrid} with the given number of rows and columns as well as with given + * insets and minimum sizes. + * @param rowCount the number of rows + * @param columnCount the number of columns + * @param rowInsets the top and bottom insets of the rows + * @param columnInsets the left and right insets of the columns + * @param minRowSize the minimum row height + * @param minColumnSize the minimum column width + */ + constructor(rowCount:number,columnCount:number,rowInsets:number,columnInsets:number,minRowSize:number,minColumnSize:number); + /** + * Creates an instance of {@link yfiles.layout.PartitionGrid} with the given number of rows and columns. + * @param rowCount the number of rows + * @param columnCount the number of columns + */ + constructor(rowCount:number,columnCount:number); + /** + * Creates a new empty instance of {@link yfiles.layout.PartitionGrid}. + */ + constructor(); + /** + * Adds a new {@link yfiles.layout.ColumnDescriptor column} to the {@link yfiles.layout.PartitionGrid} instance. + *

    + * The index of the column (as returned by {@link yfiles.layout.ColumnDescriptor#index}) is equal to the size of the list returned by {@link yfiles.layout.PartitionGrid#columns}. + *

    + * @returns a new {@link } instance + */ + addColumn():yfiles.layout.ColumnDescriptor; + /** + * Adds a new {@link yfiles.layout.RowDescriptor row} to the {@link yfiles.layout.PartitionGrid} instance. + *

    + * The index of the row (as returned by {@link yfiles.layout.RowDescriptor#index}) is equal to the size of the list returned by {@link yfiles.layout.PartitionGrid#rows}. + *

    + * @returns a new {@link } instance + */ + addRow():yfiles.layout.RowDescriptor; + /** + * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents the cell defined by the given column and row index. + * @param rowIndex the row index of the row defining the cell + * @param columnIndex the column index of the column defining the cell + * @returns a {@link } instance + * @throws {Stubs.Exceptions.ArgumentError} if the given column/row index is not valid + */ + createCellId(rowIndex:number,columnIndex:number):yfiles.layout.PartitionCellId; + /** + * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents the cell defined by the given {@link yfiles.layout.ColumnDescriptor column} and {@link yfiles.layout.RowDescriptor row}. + * @param rd the row defining the cell + * @param cd the column defining the cell + * @returns a {@link } instance + * @throws {Stubs.Exceptions.ArgumentError} if the given column/row is null + */ + createCellId(rd:yfiles.layout.RowDescriptor,cd:yfiles.layout.ColumnDescriptor):yfiles.layout.PartitionCellId; + /** + * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a multi-cell spanning multiple columns and rows. + *

    + * The partition cell identifier represents all cells defined by a row between fromRow and toRow (both including) and a + * column between fromRow and toCol (both including). + *

    + *

    + * A group node mapped to such a partition cell identifier represents the multi-cell, i.e., its boundary corresponds to the + * smallest rectangle containing all partition cells specified by the partition cell identifier. The boundary does not + * depend on the partition cells associated with the group's descendants. Hence, each non-group descendant has to be + * manually assigned to one of the partition cells. Furthermore, edges incident to such a group node are not considered + * during the layout. + *

    + * @param fromRow the topmost row defining the cell + * @param fromCol the leftmost column defining the cell + * @param toRow the bottommost row defining the cell + * @param toCol the rightmost column defining the cell + * @returns a {@link } instance + */ + createCellSpanId(fromRow:yfiles.layout.RowDescriptor,fromCol:yfiles.layout.ColumnDescriptor,toRow:yfiles.layout.RowDescriptor,toCol:yfiles.layout.ColumnDescriptor):yfiles.layout.PartitionCellId; + /** + * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a multi-cell spanning multiple columns and rows. + *

    + * The partition cell identifier represents all cells defined by a row with index between fromRowIndex and toRowIndex (both + * including) and a column with index between fromColIndex and toColIndex (both including). + *

    + *

    + * A group node mapped to such a partition cell identifier represents the multi-cell, i.e., its boundary corresponds to the + * smallest rectangle containing all partition cells specified by the partition cell identifier. The boundary does not + * depend on the partition cells associated with the group's descendants. Hence, each non-group descendant has to be + * manually assigned to one of the partition cells. Furthermore, edges incident to such a group node are not considered + * during the layout. + *

    + * @param fromRowIndex the row index of the topmost row defining the cell + * @param fromColIndex the column index of the leftmost column defining the cell + * @param toRowIndex the row index of the bottommost row defining the cell + * @param toColIndex the column index of the rightmost column defining the cell + * @returns a {@link } instance + */ + createCellSpanId(fromRowIndex:number,fromColIndex:number,toRowIndex:number,toColIndex:number):yfiles.layout.PartitionCellId; + /** + * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a multi-cell spanning multiple columns and rows. + *

    + * The partition cell identifier represents all cells spanned by the columns of columnList and rows of rowList. + *

    + *

    + * A group node mapped to such a partition cell identifier represents the multi-cell, i.e., its boundary corresponds to the + * smallest rectangle containing all partition cells specified by the partition cell identifier. The boundary does not + * depend on the partition cells associated with the group's descendants. Hence, each non-group descendant has to be + * manually assigned to one of the partition cells. Furthermore, edges incident to such a group node are not considered + * during the layout. + *

    + * @param rowList the {@link rows} defining the cell + * @param columnList the {@link columns} defining the cell + * @returns a {@link } instance + */ + createCellSpanId(rowList:yfiles.collections.ICollection,columnList:yfiles.collections.ICollection):yfiles.layout.PartitionCellId; + /** + * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a cell spanning a whole column. + *

    + * A group node mapped to such a partition cell identifier represents the column, i.e., its enclosing boundary corresponds + * to that of the column. The boundary does not depend on the partition cells associated with the group's descendants. + * Hence, each non-group descendant has to be manually assigned to one of the partition cells. Furthermore, edges incident + * to such a group node are not considered during the layout. + *

    + * @param columnIndex the column index of the column defining the cell + * @returns a {@link } instance + */ + createColumnSpanId(columnIndex:number):yfiles.layout.PartitionCellId; + /** + * Creates a {@link yfiles.layout.PartitionCellId partition cell} identifier that represents a cell spanning a whole row. + *

    + * A group node mapped to such a partition cell identifier represents the row, i.e., its enclosing boundary corresponds to + * that of the row. The boundary does not depend on the partition cells associated with the group's descendants. Hence, + * each non-group descendant has to be manually assigned to one of the partition cells. Furthermore, edges incident to such + * a group node are not considered during the layout. + *

    + * @param rowIndex the row index of the row defining the cell + * @returns a {@link } instance + */ + createRowSpanId(rowIndex:number):yfiles.layout.PartitionCellId; + /** + * Finalizes the orientation changes and is called at the end of the {@link yfiles.layout.OrientationLayout} stage. + *

    + * Points are transferred to their final positions through {@link yfiles.layout.OrientationLayout#completeTransform}. + *

    + * @param orientationLayouter an {@link } instance + * @see yfiles.layout.OrientationLayout + */ + finalizeOrientationChange(orientationLayouter:yfiles.layout.OrientationLayout):void; + /** + * Returns the {@link yfiles.layout.ColumnDescriptor column} with the given index. + * @param index the index of the column to be returned + * @returns the {@link column} with the given index or null if no such column exists + */ + getColumn(index:number):yfiles.layout.ColumnDescriptor; + /** + * Returns the {@link yfiles.layout.PartitionGrid} instance associated with the given graph. + * @param graph the given graph + * @returns the {@link } of the graph or null if the graph has no associated partition grid + * @static + */ + static getPartitionGrid(graph:yfiles.algorithms.Graph):yfiles.layout.PartitionGrid; + /** + * Returns the {@link yfiles.layout.RowDescriptor row} with the given index. + * @param index the index of the row to be returned + * @returns the {@link row} with the given index or null if no such row exists + */ + getRow(index:number):yfiles.layout.RowDescriptor; + static hasAtLeastTwoNonEmptyRows(graph:yfiles.algorithms.Graph):boolean; + /** + * Prepares for the orientation changes and is called at the beginning of the {@link yfiles.layout.OrientationLayout} stage. + *

    + * Original points are transferred to their temporary positions through {@link yfiles.layout.OrientationLayout#prepareTransform}. + *

    + * @param orientationLayouter an {@link } instance + * @see yfiles.layout.OrientationLayout + */ + prepareOrientationChange(orientationLayouter:yfiles.layout.OrientationLayout):void; + /** + * Data provider key for storing the partition grid structure + *

    + * If the {@link yfiles.algorithms.IDataProvider} contains a partition grid structure, this structure will be considered during + * layout (provided that the layout algorithm supports such constraints). + *

    + * @const + * @static + * @type {yfiles.algorithms.GraphDpKey.} + */ + static PARTITION_GRID_DP_KEY:yfiles.algorithms.GraphDpKey; + /** + * Data provider key for storing a set of partition cells for each node + *

    + * Each node is placed inside the columns/rows defined by the corresponding {@link yfiles.layout.PartitionCellId} identifier. + * Instances can be shared among multiple nodes, but don't have to be shared. + *

    + * @see yfiles.layout.PartitionCellId + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static PARTITION_CELL_ID_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Gets or sets whether or not the order of the columns should be chosen automatically to minimize edge lengths. + *

    + * For all columns where {@link yfiles.layout.ColumnDescriptor#indexFixed} is set to + * true, the relative ordering given by the indices is preserved. The remaining columns may be sorted again so that the + * overall edge lengths are minimized. + *

    + * @type {boolean} + */ + optimizeColumnOrder:boolean; + /** + * Gets or sets whether or not the order of the rows should be chosen automatically to minimize edge lengths. + *

    + * For all rows where {@link yfiles.layout.RowDescriptor#indexFixed} is set to + * true, the relative ordering given by the indices is preserved. The remaining rows may be sorted again so that the + * overall edge lengths are minimized. + *

    + * @type {boolean} + */ + optimizeRowOrder:boolean; + /** + * Gets the list of rows of the {@link yfiles.layout.PartitionGrid partition grid}. + * @type {yfiles.algorithms.YList} + */ + rows:yfiles.algorithms.YList; + /** + * Gets the columns of the {@link yfiles.layout.PartitionGrid partition grid}. + * @type {yfiles.algorithms.YList} + */ + columns:yfiles.algorithms.YList; + static $class:yfiles.lang.Class; + } + /** + * This class represents a row of a {@link yfiles.layout.PartitionGrid partition grid} structure. + *

    + * The results of the calculation of the geometry of the row will be placed into the instances of this class after the + * layout. + *

    + * @see yfiles.layout.PartitionGrid + * @class + * @implements {yfiles.lang.IComparable} + */ + export interface RowDescriptor extends Object,yfiles.lang.IComparable{} + export class RowDescriptor { + /** + * Compares this {@link yfiles.layout.RowDescriptor} instance with a given other {@link yfiles.layout.RowDescriptor} instance based on the + * indices of the two instances. + * @param o the {@link } to compare to + * @returns -1, 0 or 1 if this {@link } is less than, equal to, or greater than the given other + * {@link } + */ + compareTo(o:Object):number; + /** + * Gets the index of the row within the {@link yfiles.layout.PartitionGrid partition grid}. + * @type {number} + */ + index:number; + /** + * Gets or sets the minimum height of the row. + *

    + * The minimum height is defined to be at least 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the minimum height is negative + * @type {number} + */ + minimumHeight:number; + /** + * Gets or sets the top inset in which no element will lie in the resulting layout. + *

    + * The inset value needs to be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given top inset is negative + * @type {number} + */ + topInset:number; + /** + * Gets or sets the bottom inset in which no element will lie in the resulting layout. + *

    + * The inset value needs to be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given bottom inset is negative + * @type {number} + */ + bottomInset:number; + /** + * Gets or sets the computed height of the row after the layout has been calculated. + *

    + * The computed height needs to be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the computed height is negative + * @type {number} + */ + computedHeight:number; + /** + * Gets or sets the original position (smallest y-coordinate) of the row. + * @type {number} + */ + originalPosition:number; + /** + * Gets or sets the original height of the row. + *

    + * The original height needs to be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the original height is negative + * @type {number} + */ + originalHeight:number; + /** + * Gets or sets the computed position (smallest y-coordinate) of the row after the layout has been calculated. + * @type {number} + */ + computedPosition:number; + /** + * Gets or sets the tightness factor of this row. + *

    + * This value must lie within the interval [0,1]. + *

    + *

    + * The larger the value, the more the row will be forced to obtain its minimum height: + *

    + *
      + *
    • a value of 0.0d will disable the compression of the row.
    • + *
    • a value of 1.0d will try to force the row to obtain its specified {@link yfiles.layout.RowDescriptor#minimumHeight minimum height}.
    • + *
    + * @throws {Stubs.Exceptions.ArgumentError} if the tightness value is outside the interval [0,1] + * @type {number} + */ + tightness:number; + /** + * Gets or sets whether the index of the row is fixed or it should be chosen automatically in order to minimize edge + * lengths. + *

    + * For all rows where this property is enabled, the relative ordering given by the indices is preserved. The remaining rows + * may be sorted again so that the overall edge lengths are minimized. + *

    + * @type {boolean} + */ + indexFixed:boolean; + static $class:yfiles.lang.Class; + } + export enum InterEdgeRoutingStyle{ + /** + * An inter-edge routing style based on which the edge layout of inter-edges will be adopted from the + * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. + * @see yfiles.layout.FixGroupLayoutStage#interEdgeRoutingStyle + */ + ADOPT, + /** + * An inter-edge routing style based on which inter-edges are routed in an orthogonal style. + * @see yfiles.layout.FixGroupLayoutStage#interEdgeRoutingStyle + * @see yfiles.layout.FixGroupLayoutStage#interEdgeRouter + */ + ORTHOGONAL, + /** + * An inter-edge routing style based on which inter-edges are routed as straight lines. + * @see yfiles.layout.FixGroupLayoutStage#interEdgeRoutingStyle + * @see yfiles.layout.FixGroupLayoutStage#interEdgeRouter + */ + STRAIGHTLINE + } + /** + * This interface defines {@link yfiles.algorithms.IDataProvider} keys for those layout algorithms that can handle hierarchically + * grouped graphs. + *

    + * There are two groups of {@link yfiles.algorithms.IDataProvider} keys. {@link yfiles.algorithms.IDataProvider}s registered with + * {@link yfiles.layout.GroupingKeys#NODE_ID_DP_KEY}, {@link yfiles.layout.GroupingKeys#GROUP_DP_KEY} and {@link yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY} + * define the relationship of nodes within the hierarchy. A parent node is defined for each node in the graph. This parent + * is the containing group node. For top-level nodes, this parent is null. + *

    + *

    + * {@link yfiles.layout.GroupingKeys#GROUP_NODE_INSETS_DP_KEY} and {@link yfiles.layout.GroupingKeys#MINIMUM_NODE_SIZE_DP_KEY} are used for + * registering + * {@link yfiles.algorithms.IDataProvider}s that add layout information to group nodes such as the insets and the minimum size + * respectively. + *

    + * @see yfiles.layout.GroupingSupport + * @class + * @static + */ + export interface GroupingKeys extends Object{} + export class GroupingKeys { + /** + * Data provider key for assigning a unique ID for each node + *

    + * The IDs of the nodes need to differ based on {@link Object#hashCode} and {@link Object#equals}. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static NODE_ID_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for describing the hierarchy of nodes in the graph + * @see yfiles.layout.GroupingKeys#NODE_ID_DP_KEY + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static PARENT_NODE_ID_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for distinguishing normal nodes from group nodes + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static GROUP_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for assigning insets for group nodes + *

    + * Insets reserve space around the contents of a group node. Labels and other visual decorations may be placed inside this + * space. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static GROUP_NODE_INSETS_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for assigning minimum sizes for group nodes + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static MINIMUM_NODE_SIZE_DP_KEY:yfiles.algorithms.NodeDpKey; + static $class:yfiles.lang.Class; + } + /** + * This class provides convenient and efficient access to the hierarchic graph structure. + *

    + * The grouping information is provided through {@link yfiles.algorithms.IDataProvider}s registered with the graph with keys + * {@link yfiles.layout.GroupingKeys#NODE_ID_DP_KEY}, {@link yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY} and + * {@link yfiles.layout.GroupingKeys#GROUP_DP_KEY}. It describes the hierarchy as a tree where a group node is the parent of the + * nodes that it contains. + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":1},"n":[[444,-37.38,62,82.38,2,[[444,-15,62,22.38,"9"]]],[460,0,[[469.66,24.35,10.67,18.7,"5"]]],[536,0,[[545.66,24.35,10.67,18.7,"6"]]],[384,0,[[393.66,24.35,10.67,18.7,"4"]]],[596,-10,50,50,2,[[596,12.38,50,22.38,"7"]]],[140,-74.75,214,134.75,2,[[140,-52.38,214,22.38,"10"]]],[156,0,[[165.66,24.35,10.67,18.7,"1"]]],[216,-37.38,122,82.38,2,[[216,-15,122,22.38,"8"]]],[232,0,[[241.66,24.35,10.67,18.7,"2"]]],[292,0,[[301.66,24.35,10.67,18.7,"3"]]]],"e":[],"vp":[140.0,-75.0,506.0,135.0]}} This is an example graph that contains group nodes. {@graph {"ann":{"s":[30,30],"d":1},"n":[[34.5,70,42,52.38,2,[[34.5,92.38,42,22.38,"10"]]],[200,162.38,42,52.38,2,[[200,184.75,42,22.38,"9"]]],[150,277.13,[[159.66,301.48,10.67,18.7,"4"]]],[179.25,0,[[160.9,22.7,66.7,18.7,"Virtual Root"]]],[0,277.13,[[9.66,301.48,10.67,18.7,"1"]]],[206,277.13,[[215.66,301.48,10.67,18.7,"5"]]],[69,162.38,42,52.38,2,[[69,184.75,42,22.38,"8"]]],[50,277.13,[[59.66,301.48,10.67,18.7,"2"]]],[100,277.13,[[109.66,301.48,10.67,18.7,"3"]]],[312,254.75,42,52.38,2,[[312,277.13,42,22.38,"7"]]],[262,277.13,[[271.66,301.48,10.67,18.7,"6"]]]],"e":[[3,0,[194.25,50,55.5,50]],[3,2,[194.25,50,165,50]],[3,1,[194.25,50,221,50]],[0,4,[55.5,142.38,15,142.38]],[1,5],[0,6,[55.5,142.38,90,142.38]],[6,7,[90,234.75,65,234.75]],[6,8,[90,234.75,115,234.75]],[3,9,[194.25,50,333,50]],[3,10,[194.25,50,277,50]]],"vp":[0.0,0.0,354.0,308.0]}} The hierarchy tree of the grouped graph reveals the relationship + * among the nodes. The corresponding nodes have the same labels as in the grouped graph. Group nodes are considered as the + * parents of their content which can consist of group nodes and/or normal nodes. Top-level nodes are children of a + * {@link yfiles.layout.GroupingSupport#root virtual root}. Leaf nodes can either be normal nodes or empty groups. + *

    + * @class + */ + export interface GroupingSupport extends Object{} + export class GroupingSupport { + /** + * Creates a new {@link yfiles.layout.GroupingSupport} instance that represents the hierarchy of the graph. + *

    + * The hierarchy information is cached during the constructor call. Later modifications to the graph are not considered and + * may lead to errors when using this {@link yfiles.layout.GroupingSupport} instance. + *

    + * @param graph the graph instance from which the hierarchy information is obtained + */ + constructor(graph:yfiles.algorithms.Graph); + /** + * Creates a {@link yfiles.algorithms.INodeMap} to store hierarchy information for each node. + *

    + * This method is called in {@link yfiles.layout.GroupingSupport#init} and may be overridden to customize how the {@link yfiles.algorithms.INodeMap} + * is created. + *

    + * @param graph the current graph + * @returns the new instance of {@link } + * @see yfiles.layout.GroupingSupport#init + * @see yfiles.layout.GroupingSupport#disposeInfoMap + * @protected + */ + createInfoMap(graph:yfiles.algorithms.Graph):yfiles.algorithms.INodeMap; + /** + * Disposes of all internal data structures held by this {@link yfiles.layout.GroupingSupport instance}. + *

    + * {@link yfiles.layout.GroupingSupport} should be disposed of when it is not needed anymore, or if the state of the graph changes + * (e.g. new nodes are added). + *

    + */ + dispose():void; + /** + * Disposes of the {@link yfiles.algorithms.INodeMap} created to store hierarchy information for each node. + *

    + * This method is called in {@link yfiles.layout.GroupingSupport#dispose} and may be overridden to revert changes from + * {@link yfiles.layout.GroupingSupport#createInfoMap}. + *

    + * @param graph the current graph + * @param infoMap the {@link } which contains the hierarchy information for each node + * @see yfiles.layout.GroupingSupport#dispose + * @see yfiles.layout.GroupingSupport#createInfoMap + * @protected + */ + disposeInfoMap(graph:yfiles.algorithms.Graph,infoMap:yfiles.algorithms.INodeMap):void; + /** + * Returns the direct children of the given group node. + *

    + * If the {@link yfiles.layout.GroupingSupport#root virtual root of the hierarchy tree} is passed, all top-level nodes are returned. + *

    + * @param parent the group node + * @returns a set of child nodes of the given parent node + * @see yfiles.layout.GroupingSupport#root + * @see yfiles.layout.GroupingSupport#getParent + * @see yfiles.layout.GroupingSupport#getDescendants + */ + getChildren(parent:yfiles.algorithms.Node):yfiles.algorithms.NodeList; + /** + * Returns all descendants of the given group node. + *

    + * All nodes in the subtree rooted at this group node are collected recursively. + *

    + *

    + * If the {@link yfiles.layout.GroupingSupport#root virtual root of the hierarchy tree} is passed, all nodes in the graph are returned. + *

    + * @param parent the group node + * @returns a set of nodes that belong to a subtree of the hierarchy tree rooted at the given parent + * @see yfiles.layout.GroupingSupport#root + * @see yfiles.layout.GroupingSupport#getParent + * @see yfiles.layout.GroupingSupport#getChildren + */ + getDescendants(parent:yfiles.algorithms.Node):yfiles.algorithms.NodeList; + /** + * Returns all edges crossing the bounds of the given group node such that their targets are inside the group node while + * their sources lie outside the group node. + * @param group the group node whose bounds are crossed + * @returns a set of edges that cross the bounds of the group node starting outside the group node + * @see yfiles.layout.GroupingSupport#getEdgesGoingOut + * @see yfiles.layout.GroupingSupport#isNormalEdge + */ + getEdgesGoingIn(group:yfiles.algorithms.Node):yfiles.algorithms.EdgeList; + /** + * Returns all edges crossing the bounds of the given group node such that their sources are inside the group node while + * their targets lie outside the group node. + * @param group the group node whose bounds are crossed + * @returns a set of edges that cross the bounds of the group node starting inside the group node + * @see yfiles.layout.GroupingSupport#getEdgesGoingIn + * @see yfiles.layout.GroupingSupport#isNormalEdge + */ + getEdgesGoingOut(group:yfiles.algorithms.Node):yfiles.algorithms.EdgeList; + /** + * Returns the nearest common ancestor of the given nodes in the hierarchy structure. + *

    + * The nearest common ancestor is the local root of the smallest subtree in the hierarchy tree that contains both nodes. + * This group is the first node that contains these two nodes. If no such node exists, the {@link yfiles.layout.GroupingSupport#root virtual root} is returned. + *

    + *

    + * Common ancestors in special cases: + *

    + *
      + *
    • node1 == node2: the parent of node1/node2
    • + *
    • node1 is parent of node2: the parent of node1
    • + *
    • node2 is parent of node1: the parent of node2
    • + *
    + * @param node1 one of the two nodes whose common ancestor is determined + * @param node2 one of the two nodes whose common ancestor is determined + * @returns the nearest common ancestor node or {@link #root} + */ + getNearestCommonAncestor(node1:yfiles.algorithms.Node,node2:yfiles.algorithms.Node):yfiles.algorithms.Node; + /** + * Returns the parent for the given node. + *

    + * The parent is the containing group node. + *

    + * @param node the node for which the parent is determined + * @returns the parent of the given node or null for a top-level node + * @throws {Stubs.Exceptions.ArgumentError} if the given node is null + * @see yfiles.layout.GroupingSupport#getChildren + * @see yfiles.layout.GroupingSupport#getDescendants + * @see yfiles.layout.GroupingSupport#getNearestCommonAncestor + */ + getParent(node:yfiles.algorithms.Node):yfiles.algorithms.Node; + /** + * Returns an immediate child of the group node that represents the given node. + *

    + * If this node is already a child of the group node, the group node will be its representative. In case the node is + * located further down in the hierarchy, the child of the group node, which is also an ancestor of the node, is used. + * There is no representative if the node is not a descendant of the group. + *

    + * @param node the node for which a representative is searched + * @param group the group node to which the representative should belong + * @returns the representative or null if the node is not a descendant of the group + * @throws {Stubs.Exceptions.ArgumentError} if the given node is null + */ + getRepresentative(node:yfiles.algorithms.Node,group:yfiles.algorithms.Node):yfiles.algorithms.Node; + /** + * Determines whether or not the given node is a group node with children. + *

    + * Normal nodes never have children. + *

    + * @param node the potential parent + * @returns true if the given node has children, false otherwise + * @see yfiles.layout.GroupingSupport#getChildren + * @see yfiles.layout.GroupingSupport#isGroupNode + */ + hasChildren(node:yfiles.algorithms.Node):boolean; + /** + * Initializes internal data structures. + *

    + * This method is called from {@link yfiles.layout.GroupingSupport} and retrieves the state of the hierarchic graph at the moment + * of invocation. It may be overridden to append additional information used for group handling. + *

    + * @see yfiles.layout.GroupingSupport#dispose + * @protected + */ + init():void; + /** + * Returns whether or not the given graph is flat. + *

    + * A graph is considered to be flat if there exist no group nodes or there exist group nodes but none of them has children. + *

    + * @param graph the input graph + * @returns true if there are no groups or only empty groups in the graph, false otherwise + * @see yfiles.layout.GroupingSupport#isGrouped + * @static + */ + static isFlat(graph:yfiles.algorithms.Graph):boolean; + /** + * Returns whether or not the given graph is grouped. + *

    + * A graph is considered to be grouped if there are {@link yfiles.algorithms.IDataProvider}s registered with the graph with keys + * {@link yfiles.layout.GroupingKeys#GROUP_DP_KEY}, {@link yfiles.layout.GroupingKeys#NODE_ID_DP_KEY} and + * {@link yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY}. + *

    + * @param graph the input graph + * @returns true if the graph contains hierarchic information, false otherwise + * @see yfiles.layout.GroupingSupport#isFlat + * @static + */ + static isGrouped(graph:yfiles.algorithms.Graph):boolean; + /** + * Determines whether or not the given node is a group node. + *

    + * While group nodes may have children, normal nodes never have children. + *

    + * @param node the potential group node + * @returns true if the given node is a group node, false otherwise + * @see yfiles.layout.GroupingSupport#hasChildren + */ + isGroupNode(node:yfiles.algorithms.Node):boolean; + /** + * Determines whether or not the given edge is a normal edge as opposed to an edge that crosses any group node bounds. + *

    + * Source and target of a normal edge are part of the same hierarchy level and share the same parent node. + *

    + * @param edge the edge to check + * @returns true if the given edge is normal, false otherwise + * @see yfiles.layout.GroupingSupport#getEdgesGoingIn + * @see yfiles.layout.GroupingSupport#getEdgesGoingOut + */ + isNormalEdge(edge:yfiles.algorithms.Edge):boolean; + /** + * Gets the {@link yfiles.algorithms.Graph} instance for which this {@link yfiles.layout.GroupingSupport} object provides hierarchy + * information. + * @type {yfiles.algorithms.Graph} + */ + graph:yfiles.algorithms.Graph; + /** + * Gets a {@link yfiles.algorithms.Node} instance associated with the virtual root of the hierarchy tree. + *

    + * This instance can be given to the {@link yfiles.layout.GroupingSupport#getChildren} to obtain the nodes of the top level of the + * hierarchy. + *

    + * @see yfiles.layout.GroupingSupport#getChildren + * @type {yfiles.algorithms.Node} + */ + root:yfiles.algorithms.Node; + static $class:yfiles.lang.Class; + } + /** + * A {@link yfiles.layout.ILayoutStage layout stage} that hides the group nodes of hierarchically grouped graphs. + *

    + * This stage removes all group nodes and adjacent edges from the graph before passing it to the + * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. After the core layout algorithm has arranged the graph, the hidden elements will be reinserted. + *

    + *

    + * This stage is used by layout algorithms that cannot handle grouped graphs (e.g. {@link yfiles.circular.CircularLayout}). + *

    + * @class + * @extends {yfiles.layout.LayoutStageBase} + */ + export interface HideGroupsStage extends yfiles.layout.LayoutStageBase{} + export class HideGroupsStage { + /** + * Creates an instance of {@link yfiles.layout.HideGroupsStage} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. + * @param [coreLayouter=null] The core layout algorithm. + */ + constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); + /** + * Hides the group nodes and their incident edges of the input graph. + *

    + * Furthermore, this method removes all grouping-related {@link yfiles.algorithms.IDataProvider}s from the input graph. + *

    + * @param graph the input graph + * @see yfiles.layout.GroupingKeys#NODE_ID_DP_KEY + * @see yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY + * @see yfiles.layout.GroupingKeys#GROUP_DP_KEY + * @see yfiles.layout.HideGroupsStage#unhideGroupNodes + */ + hideGroupNodes(graph:yfiles.layout.LayoutGraph):void; + /** + * Un-hides the group nodes and their incident edges of the input graph that were previously hidden using method + * {@link yfiles.layout.HideGroupsStage#hideGroupNodes}. + *

    + * Furthermore, this method restores all previously removed grouping related + * {@link yfiles.algorithms.IDataProvider}s on the input graph. + *

    + * @param graph the given graph + * @see yfiles.layout.GroupingKeys#NODE_ID_DP_KEY + * @see yfiles.layout.GroupingKeys#PARENT_NODE_ID_DP_KEY + * @see yfiles.layout.GroupingKeys#GROUP_DP_KEY + * @see yfiles.layout.HideGroupsStage#hideGroupNodes + */ + unhideGroupNodes(graph:yfiles.layout.LayoutGraph):void; + /** + * Gets or sets whether or not empty group nodes, i.e., group nodes without children, will be hidden by this stage. + * @type {boolean} + */ + hidingEmptyGroupNodes:boolean; + /** + * Gets or sets the {@link yfiles.layout.IGroupBoundsCalculator} instance for calculating the sizes of group nodes. + *

    + * For every group which is in its open state, the {@link yfiles.layout.IGroupBoundsCalculator} will be asked to calculate the + * bounds for the group's child nodes. The resulting size will be used during the ongoing layout calculation. + *

    + * @type {yfiles.layout.IGroupBoundsCalculator} + */ + groupBoundsCalculator:yfiles.layout.IGroupBoundsCalculator; + static $class:yfiles.lang.Class; + } + /** + * A {@link yfiles.layout.IGroupBoundsCalculator} is responsible for calculating the bounds of a group node during a layout + * process. + * @interface + */ + export interface IGroupBoundsCalculator extends Object{ + /** + * Calculates the bounds of the given group node that contains the given list of child nodes. + *

    + * This method is called during the layout process. + *

    + * @param graph the input graph + * @param groupNode the group node whose bounds will be calculated + * @param children a {@link } containing the nodes that reside inside the group node + * @returns a {@link } instance that describes the bounds of the group node + * @abstract + */ + calculateBounds(graph:yfiles.layout.LayoutGraph,groupNode:yfiles.algorithms.Node,children:yfiles.algorithms.NodeList):yfiles.algorithms.Rectangle2D; + } + var IGroupBoundsCalculator:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * This {@link yfiles.layout.IGroupBoundsCalculator} calculates the bounds of group nodes and allows to specify custom insets for + * each group node. + *

    + * {@link yfiles.algorithms.Insets Insets} are provided by a {@link yfiles.algorithms.IDataProvider} that must have been registered with the graph using the + * specified {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key} prior to the invocation of the layout algorithm. + *

    + * @class + * @implements {yfiles.layout.IGroupBoundsCalculator} + */ + export interface InsetsGroupBoundsCalculator extends Object,yfiles.layout.IGroupBoundsCalculator{} + export class InsetsGroupBoundsCalculator { + /** + * Constructs an instance of {@link yfiles.layout.InsetsGroupBoundsCalculator} using the given {@link yfiles.algorithms.IDataProvider} key + * as {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey group node insets key} and the given insets as {@link yfiles.layout.InsetsGroupBoundsCalculator#defaultInsets default insets}. + * @param [groupNodeInsetsDPKey=null] the {@link } key to use as {@link #groupNodeInsetsDpKey insets key} + * @param [defaultInsets=null] the insets to use as {@link #defaultInsets default insets} + */ + constructor(groupNodeInsetsDPKey?:Object,defaultInsets?:yfiles.algorithms.Insets); + /** + * Constructs an instance of {@link yfiles.layout.InsetsGroupBoundsCalculator} using the given {@link yfiles.algorithms.IDataProvider} key + * as {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey group node insets key} and the given insets as {@link yfiles.layout.InsetsGroupBoundsCalculator#defaultInsets default insets}. + * @param {Object} options The parameters to pass. + * @param [options.groupNodeInsetsDPKey=null] the {@link } key to use as {@link #groupNodeInsetsDpKey insets key} + * @param [options.defaultInsets=null] the insets to use as {@link #defaultInsets default insets} + */ + constructor(options:{groupNodeInsetsDPKey?:Object,defaultInsets?:yfiles.algorithms.Insets}); + /** + * Calculates the bounds of the given group node and enlarges the bounds by the insets associated with the group node. + *

    + * The {@link yfiles.algorithms.Insets insets} associated with the group node will be retrieved from a {@link yfiles.algorithms.IDataProvider} registered with the + * graph with the current {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key}. + *

    + * @param graph the input graph + * @param groupNode the group node whose bounds will be calculated + * @param children a {@link } containing the nodes that reside inside the group node + * @returns a {@link } instance that describes the bounds of the group node + */ + calculateBounds(graph:yfiles.layout.LayoutGraph,groupNode:yfiles.algorithms.Node,children:yfiles.algorithms.NodeList):yfiles.algorithms.Rectangle2D; + /** + * Enlarges the given graph bounds by the insets associated with the given group node. + *

    + * The {@link yfiles.algorithms.Insets insets} associated with the group node will be retrieved from a {@link yfiles.algorithms.IDataProvider} registered with the + * graph with the current {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key}. + *

    + *

    + * This method is called while {@link yfiles.layout.InsetsGroupBoundsCalculator#calculateBounds calculating the group bounds} to realize the support for custom insets. It may be overridden + * to change the way specific insets influence the group node bounds. + *

    + * @param graph the input graph + * @param groupNode the group node whose bounds should be enlarged + * @param children the list of nodes that the given group node contains + * @param bounds a {@link } instance representing the bounds of the given group node + * @returns a {@link } instance representing the enlarged bounds of the given group node + */ + createEnlargedBounds(graph:yfiles.layout.LayoutGraph,groupNode:yfiles.algorithms.Node,children:yfiles.algorithms.NodeList,bounds:yfiles.algorithms.Rectangle2D):yfiles.algorithms.Rectangle2D; + /** + * Gets or sets whether or not the labels of nodes contained in a group are considered while calculating the bounds of the + * group node. + * @type {boolean} + */ + considerNodeLabels:boolean; + /** + * Gets or sets whether or not the labels of edges contained in a group are considered while calculating the bounds of the + * group node. + * @type {boolean} + */ + considerEdgeLabels:boolean; + /** + * Gets or sets whether or not the calculation of the bounds of a group node considers the {@link yfiles.layout.NodeHalo NodeHalos} associated with the + * group's child nodes. + * @type {boolean} + */ + considerNodeHalos:boolean; + /** + * Gets or sets the default insets that will be used if the {@link yfiles.algorithms.IDataProvider} registered with the {@link yfiles.layout.InsetsGroupBoundsCalculator#groupNodeInsetsDpKey insets key} + * does not contain a mapping for a specific node. + * @type {yfiles.algorithms.Insets} + */ + defaultInsets:yfiles.algorithms.Insets; + /** + * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that is used to access the insets for the group + * nodes. + *

    + * The {@link yfiles.algorithms.IDataProvider} registered with this key must provide a mapping from each group node to a {@link yfiles.algorithms.Insets} + * (or {@link yfiles.algorithms.Insets}) instance. + *

    + * @type {Object} + */ + groupNodeInsetsDpKey:Object; + static $class:yfiles.lang.Class; + } + /** + * A special {@link yfiles.layout.ComponentLayout} implementation that allows to lay out isolated subgraphs within a group as + * separate components. + *

    + * {@link yfiles.orthogonal.OrthogonalLayout OrthogonalLayout} uses this layout stage to arrange components. + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":0},"n":[[-5,16,210,336.38,2],[10,110,1],[10,35,1],[85,35,1],[160,35,1],[160,110,1],[10,285],[85,285],[85,210]],"e":[[1,2,0,-15,0,15],[2,3,15,0,-15,0],[3,4,15,0,-15,0],[4,5,0,15,0,-15],[5,1,-15,0,15,0],[6,8,0,-15,-15,0,[25,225]],[8,7,0,15,0,-15],[7,6,-15,0,15,0]],"vp":[-5.0,16.0,210.0,337.0]}} Example of a hierarchically grouped graph with two components that are laid out by {@link yfiles.orthogonal.OrthogonalLayout OrthogonalLayout} as separate + * components. + *

    + * @class + * @extends {yfiles.layout.ComponentLayout} + */ + export interface IsolatedGroupComponentLayout extends yfiles.layout.ComponentLayout{} + export class IsolatedGroupComponentLayout { + /** + * Creates an instance of {@link yfiles.layout.IsolatedGroupComponentLayout} with the given layout algorithm as + * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. + * @param [coreLayouter=null] the core layout algorithm that will be invoked for each component of the graph + */ + constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); + /** + * Determines the nodes that belong to the same graph component. + *

    + * Unlike + * {@link yfiles.layout.ComponentLayout}, this implementation additionally identifies isolated subgraphs within a group as separate + * components. + *

    + * @param graph the input graph + * @param compNumber the {@link } that will be filled by the layout algorithm, such that it contains the zero-based index + * of the component number to which each node belongs + * @returns the number of separate components + * @protected + */ + findIsolatedGraphComponents(graph:yfiles.layout.LayoutGraph,compNumber:yfiles.algorithms.INodeMap):number; + static $class:yfiles.lang.Class; + } + /** + * This {@link yfiles.layout.IGroupBoundsCalculator} allows custom insets for group nodes and guarantees that their provided + * minimum sizes will be maintained. + *

    + * As a subclass of {@link yfiles.layout.InsetsGroupBoundsCalculator}, this class supports custom insets for each group node. + * Furthermore, it guarantees that a desired minimum size is maintained. The minimum sizes are provided by a {@link yfiles.algorithms.IDataProvider} + * registered with the graph using the specified {@link yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey minimum node size key}. + *

    + * @class + * @extends {yfiles.layout.InsetsGroupBoundsCalculator} + */ + export interface MinimumSizeGroupBoundsCalculator extends yfiles.layout.InsetsGroupBoundsCalculator{} + export class MinimumSizeGroupBoundsCalculator { + /** + * Creates a new instance of {@link yfiles.layout.MinimumSizeGroupBoundsCalculator} with the given key as {@link yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey minimum node size key}. + * @param minSizeDataProviderKey the {@link } key to use as {@link #minimumNodeSizeDpKey minimum size key} + */ + constructor(minSizeDataProviderKey:Object); + /** + * Creates a new instance of {@link yfiles.layout.MinimumSizeGroupBoundsCalculator} with default settings. + */ + constructor(); + /** + * Gets or sets how the nodes are resized horizontally if the calculated width is smaller than the preferred minimum width + * of a group node. + *

    + * The alignment is defined to be a value between 0 and 1, such that: + *

    + *
      + *
    • A value of 0 means that the nodes grow to the right while the left border remains unchanged.
    • + *
    • A value of 1 means that the nodes grow to the left while the right border remains unchanged.
    • + *
    + * @throws {Stubs.Exceptions.ArgumentError} if the given value does not lie within [0,1] + * @type {number} + */ + xAlignment:number; + /** + * Gets or sets how the nodes are resized vertically if the calculated height is smaller than the preferred minimum height + * of a group node. + *

    + * The alignment is defined to be a value between 0 and 1, such that: + *

    + *
      + *
    • A value of 0 means that the nodes grow downwards while the top border remains unchanged.
    • + *
    • A value of 1 means that the nodes grow upwards while the bottom border remains unchanged.
    • + *
    + * @throws {Stubs.Exceptions.ArgumentError} if the given value does not lie within [0,1] + * @type {number} + */ + yAlignment:number; + /** + * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that is used to access the minimum sizes for the + * group nodes. + *

    + * The {@link yfiles.algorithms.IDataProvider} registered with this key must provide a mapping from each group node to a {@link yfiles.algorithms.YDimension} + * object defining the minimum width and height of the group node. + *

    + * @see yfiles.layout.MinimumSizeGroupBoundsCalculator#defaultMinimumNodeSize + * @type {Object} + */ + minimumNodeSizeDpKey:Object; + /** + * Gets or sets the default minimum size (width and height) for group nodes. + *

    + * The default minimum size is used if the {@link yfiles.algorithms.IDataProvider} registered with the {@link yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey minimum size key} does not + * contain a mapping for a group node. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given {@link yfiles.algorithms.YDimension} is null + * @see yfiles.layout.MinimumSizeGroupBoundsCalculator#minimumNodeSizeDpKey + * @type {yfiles.algorithms.YDimension} + */ + defaultMinimumNodeSize:yfiles.algorithms.YDimension; + static $class:yfiles.lang.Class; + } + /** + * This layout algorithm recursively traverses a hierarchically organized graph in a bottom-up fashion and applies a + * specified layout algorithm to the contents (direct children) of each group node. + *

    + * Layout Style The way a graph is arranged depends on the {@link yfiles.layout.ILayoutAlgorithm layout algorithms} which are applied to the different group nodes. {@link yfiles.layout.RecursiveGroupLayout} + * is able to produce different layout styles for the content of each group node. + *

    + *

    + * This layout algorithm can be either applied if a {@link yfiles.layout.ILayoutAlgorithm layout algorithm} cannot handle grouped graphs by itself or if the + * content of (some) group nodes should be arranged differently. + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":1},"styles":{"6":{"c":1}},"n":[[-17.5,755,335,340,2],[166.25,770],[247.5,840],[85,840],[172.5,910],[272.5,910],[72.5,910],[272.5,980],[222.5,910],[97.5,980],[47.5,980],[-2.5,910],[147.5,980],[122.5,1050],[172.5,1050],[197.5,980],[-2.5,980],[-2.5,1050],[929.97,593,673.03,664,2],[1028.43,230.79,493.13,238.42,2],[1451.74,249.79,54.83,54.83],[1043.43,336.11,54.83,54.83],[1376.74,346.07],[1143.26,334.82],[1223.95,267.93,37.09,37.09],[1223.95,335.02,37.09,37.09],[1223.95,402.12,37.09,37.09],[1306.05,338.57],[351.41,46.3,547.17,607.39,2],[392.91,738,464.18,374,2],[600.69,849.79,44.43,44.43],[803.73,927.82,38.37,38.37],[600.69,1024.79,44.43,44.43],[707.91,932],[707.91,1032],[507.91,757],[503.73,852.82,38.37,38.37],[407.91,857],[1329,1038,6],[1269,795,6],[1472,612,6],[1411,1025,6],[1427,744,6],[1355,779,6],[1157,888,6],[1108,838,6],[1230,723,6],[1351,946,6],[1185,810,6],[1387,847,6],[1185,956,6],[1221,1212,6],[1311,715,6],[962,988,6],[1558,700,6],[1053,639,6],[1264,993,6],[1509,1121,6],[1143,742,6],[1453,871,6],[1248,1077,6],[1430,943,6],[1093,947,6],[1173,1025,6],[1249.93,858.93,83.14,83.14,6],[406.42,266.45,6],[535.29,224.58,6],[407.4,568.81,54.23,54.23,6],[366.41,92.7,54.23,54.23,6],[464.05,443.83,6],[450.74,65.3,54.23,54.23,6],[464.05,224.58,6],[592.93,401.96,6],[714.87,571.77,41.35,41.35,6],[842.24,530.39,41.35,41.35,6],[793.59,463.42,41.35,41.35,6],[793.59,597.35,41.35,41.35,6],[614.94,334.2,6],[535.29,443.83,6],[714.87,489,41.35,41.35,6],[406.42,401.96,6],[592.93,266.45,6],[384.4,334.2,6],[595.06,86,54.23,54.23,6],[668.28,135.99,54.23,54.23,6],[720.4,207.72,54.23,54.23,6],[745.32,292.81,54.23,54.23,6]],"e":[[1,2],[1,3],[3,4],[2,5],[3,6],[5,7],[2,8],[6,9],[6,10],[3,11],[4,12],[12,13],[12,14],[4,15],[11,16],[16,17],[0,19,0,-170,0,-119.21,[150,0,1275,0]],[21,22,27.41,13.71,-15,7.5,[1108.26,377.23,1158.26,454.21,1336.05,454.21,1361.74,368.57]],[22,20,15,-0,-27.41,18.28,[1416.74,361.07,1436.74,295.48]],[21,23,27.41,-13.71,-15,-0],[23,20,15,-11.25,-27.41,-18.28,[1183.26,338.57,1208.95,252.93,1391.74,252.93,1436.74,258.93]],[23,24,15,-3.75,-18.55,-0,[1183.26,346.07,1208.95,286.48]],[24,20,18.55,-9.27,-27.41,-0],[23,25,15,3.75,-18.55,-0],[23,26,15,11.25,-18.55,-0,[1183.26,361.07,1208.95,420.66]],[25,27,18.55,-0,-15,-0],[24,27,18.55,9.27,-15,-10,[1271.05,295.75,1291.05,343.57]],[26,27,18.55,-0,-15,10,[1271.05,420.66,1291.05,363.57]],[27,22,15,-0,-15,-7.5],[29,28,0,-187,0,303.7],[31,30,0,-19.18,22.21,0,[822.91,872]],[31,32,0,19.18,0,22.21,[822.91,1097,622.91,1097]],[2,32],[32,30,0,-22.21,0,22.21],[31,33,-19.18,0,15,0],[33,32,-15,0,12.5,-22.21,[635.41,947]],[33,34,0,15,0,-15],[34,32,-15,0,22.21,0],[34,31,15,0,-12.5,19.18,[810.41,1047]],[35,30,15,0,0,-22.21,[622.91,772]],[35,36,0,15,0,-19.18],[32,36,-22.21,-12.5,0,19.18,[522.91,1034.5]],[36,30,19.18,0,-22.21,0],[36,37,-19.18,0,15,0],[32,37,-22.21,0,0,15,[422.91,1047]],[37,35,0,-15,-15,0,[422.91,772]],[42,40],[42,54],[41,57],[58,55],[60,51],[62,53],[64,38],[64,39],[64,41,[1330.6,964.06,1337.99,974.52,1346.6,984.13,1356.64,992.4]],[64,42,[1301.28,892.93,1380.34,828.69,1390.42,819.61,1400.14,810]],[64,43],[64,44],[64,45],[64,46,[1257.8,823.49,1254.58,812.63,1252.57,801.6]],[64,47],[64,48],[64,49],[64,50],[64,52,[1313.2,816.82,1315.29,805.72]],[64,56],[64,58,[1227.75,807.43,1218.48,798.12,1198.26,783.57]],[64,59,[1401.91,896.21,1413.4,895.03]],[64,60,[1249.83,992.24,1246.96,1005.02,1247.3,1018.2]],[64,61],[64,62],[64,63],[40,19],[69,67],[65,71],[66,71],[71,70],[71,69],[71,68],[72,21],[73,74],[75,74],[73,76],[74,76],[77,72],[77,71],[71,78],[78,72],[78,69],[72,79],[79,75],[79,73],[69,80],[72,80],[66,81],[81,77],[65,82],[82,81],[82,80],[82,77],[83,81],[84,81],[85,81],[86,81],[51,33]],"vp":[-18.0,0.0,1621.0,1257.0]}}Concept + *

    + *

    + * {@link yfiles.layout.RecursiveGroupLayout} uses a hierarchy tree representation of the grouped graph in which the content nodes + * are the children of their containing group node. That way, it can traverse the tree recursively while arranging only the + * direct children of each group node. The layout algorithm starts by arranging the leaves in the hierarchy tree, then + * works its way up to the root computing the layout for each group node in the tree. + *

    + *

    + * All nodes other than the direct children are temporarily hidden. The layout algorithm performs two steps for each group + * node. + *

    + *
      + *
    1. + * It arranges the direct children using either the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} or a special layout algorithm retrieved from a {@link yfiles.algorithms.IDataProvider} + * registered with + * {@link yfiles.layout.RecursiveGroupLayout#GROUP_NODE_LAYOUT_DP_KEY}. The content of group nodes among the children is already + * arranged at this time and will be ignored. These group nodes are handled like normal nodes with a size that encloses the + * content. + *
    2. + *
    3. + * Then {@link yfiles.layout.RecursiveGroupLayout} computes the final size of the group node using an implementation of + * {@link yfiles.layout.IGroupBoundsCalculator}. Customized {@link yfiles.layout.IGroupBoundsCalculator}s can be specified using + * {@link yfiles.layout.RecursiveGroupLayout#groupBoundsCalculator}. Aside from the resulting layout, this size is used in the following iteration. + *
    4. + *
    + *

    + * After a layout is applied to all group nodes, the layout algorithm computes routes for the edges whose source node is + * located at a different hierarchy level than its target node. The edge routing algorithm for these so-called inter-edges + * can be {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter customized}. + *

    + *

    + * Note that {@link yfiles.layout.RecursiveGroupLayout} can run without a + * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. In this case no layout is calculated, instead the group node bounds are merely adjusted to fit + * their respective contents. + *

    + *

    + * Features There are two alternatives for applying different layout styles to the contents of group nodes: + *

    + *
      + *
    1. + * Mapping each group node to a corresponding {@link yfiles.layout.ILayoutAlgorithm layout algorithm} by registering a {@link yfiles.algorithms.IDataProvider} with key + * {@link yfiles.layout.RecursiveGroupLayout#GROUP_NODE_LAYOUT_DP_KEY}. The content of the hierarchy root is arranged with the + * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. + *
    2. + *
    3. Using {@link yfiles.layout.LayoutMultiplexer} as {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}.
    4. + *
    + *

    + * Since {@link yfiles.layout.RecursiveGroupLayout} delegates the actual arrangement of the graph to other layout algorithms, it + * will support the same features as the currently used layout algorithm. + *

    + *

    + * The improvement of the routing of inter-edges is based on the {@link yfiles.layout.RecursiveGroupLayout#autoAssignPortCandidates insertion} of {@link yfiles.layout.PortCandidate}s or the {@link yfiles.layout.RecursiveGroupLayout#replacePortConstraints conversion} + * of {@link yfiles.layout.PortConstraint}s into {@link yfiles.layout.PortCandidate}s. Hence, they only work well if the applied layout + * algorithm supports {@link yfiles.layout.PortCandidate}s. + *

    + *

    + * This algorithm also provides a {@link yfiles.layout.RecursiveGroupLayout#fromSketchMode From Sketch mode} that should be activated if the applied layout algorithm runs in From + * Sketch mode, too. Otherwise, the initial coordinates may not be considered correctly. + *

    + * @class + * @extends {yfiles.layout.LayoutStageBase} + */ + export interface RecursiveGroupLayout extends yfiles.layout.LayoutStageBase{} + export class RecursiveGroupLayout { + /** + * Creates a new instance of {@link yfiles.layout.RecursiveGroupLayout} with default settings using the given {@link yfiles.layout.ILayoutAlgorithm layout algorithm} and + * {@link yfiles.layout.IGroupBoundsCalculator} implementation. + * @param core the layout algorithm that is applied in each step of the recursion + * @param gbc the {@link } for calculating group sizes + */ + constructor(core:yfiles.layout.ILayoutAlgorithm,gbc:yfiles.layout.IGroupBoundsCalculator); + /** + * Creates a new instance of {@link yfiles.layout.RecursiveGroupLayout} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. + * @param [core=null] The layout algorithm that is applied in each recursion step. + */ + constructor(core?:yfiles.layout.ILayoutAlgorithm); + /** + * Reroutes the given inter-edges using the current {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter edge routing algorithm}. + *

    + * This method is called after calculating the overall layout when the positions of all nodes and normal edges are fixed. + *

    + *

    + * If no {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter inter-edge router} is specified, this method {@link yfiles.layout.LayoutGraphUtilities#resetPath resets the path} of all inter-edges that don't connect to the proper + * location within the group. This may happen for inter-edges without + * {@link yfiles.layout.PortCandidate}s or if the applied layout algorithm doesn't support such constraints. + *

    + * @param graph the input graph + * @param interEdges the edges which traverse the boundary of a group node + * @see yfiles.layout.RecursiveGroupLayout#autoAssignPortCandidates + * @see yfiles.layout.RecursiveGroupLayout#replacePortConstraints + * @see yfiles.layout.RecursiveGroupLayout#interEdgeRouter + * @protected + */ + routeInterEdges(graph:yfiles.layout.LayoutGraph,interEdges:yfiles.algorithms.EdgeList):void; + /** + * Data provider key for arranging the content of each group node with an individual layout algorithm + *

    + * The specified layouter instance is applied to the content of the group node. To arrange the top level elements the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} + * is used. + *

    + * @see yfiles.layout.RecursiveGroupLayout#NULL_LAYOUT + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static GROUP_NODE_LAYOUT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for assigning source split ids to edges connecting to group nodes + *

    + * The edges will be aligned with edges that connect to the same group node and have the same split id at their source + * (preferably) or target. + *

    + * @see yfiles.layout.RecursiveGroupLayout#TARGET_SPLIT_ID_DP_KEY + * @see yfiles.hierarchic.HierarchicLayout + * @see yfiles.hierarchic.EdgeLayoutDescriptor#directGroupContentEdgeRouting + * @const + * @static + * @type {yfiles.algorithms.EdgeDpKey.} + */ + static SOURCE_SPLIT_ID_DP_KEY:yfiles.algorithms.EdgeDpKey; + /** + * Data provider key for assigning target split ids to edges connecting to group nodes + *

    + * The edges will be aligned with edges that connect to the same group node and have the same split id at their source or + * target (preferably). + *

    + * @see yfiles.layout.RecursiveGroupLayout#SOURCE_SPLIT_ID_DP_KEY + * @see yfiles.hierarchic.HierarchicLayout + * @see yfiles.hierarchic.EdgeLayoutDescriptor#directGroupContentEdgeRouting + * @const + * @static + * @type {yfiles.algorithms.EdgeDpKey.} + */ + static TARGET_SPLIT_ID_DP_KEY:yfiles.algorithms.EdgeDpKey; + /** + * A constant that represents a {@link yfiles.layout.ILayoutAlgorithm} implementation that does nothing. + *

    + * This implementation can be assigned to group nodes to keep their content unchanged. The layout algorithm will still + * calculate the sizes of the group nodes. + *

    + * @const + * @static + * @type {yfiles.layout.ILayoutAlgorithm} + */ + static NULL_LAYOUT:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets whether or not to consider the initial coordinates of the graph elements. + *

    + * When using the initial coordinates, {@link yfiles.layout.RecursiveGroupLayout} sets the coordinates of the nodes to their + * initial position before the corresponding {@link yfiles.layout.ILayoutAlgorithm layout algorithm} is called. + *

    + * @type {boolean} + */ + fromSketchMode:boolean; + /** + * Gets or sets whether or not temporary {@link yfiles.layout.PortCandidate}s are inserted to improve the routing of inter-edges. + *

    + * If enabled, {@link yfiles.layout.RecursiveGroupLayout} will insert {@link yfiles.layout.PortCandidate}s for all inter-edges that cross a + * group node border. Those {@link yfiles.layout.PortCandidate}s are located at the relative position of the real source/target + * node. Inter-edges that connect to such {@link yfiles.layout.PortCandidate}s will be routed when the layout of the containing + * group node is calculated and will not be {@link yfiles.layout.RecursiveGroupLayout#routeInterEdges rerouted} later. This may produce more suitable edge routes but cannot prevent + * edges from crossing nodes. + *

    + *

    + * Without temporary or user specified {@link yfiles.layout.PortCandidate}s, inter-edges will always end at the border/center of + * the corresponding group node. Thus, they are rerouted afterwards using an {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter edge routing algorithm}. + *

    + * @see yfiles.layout.RecursiveGroupLayout#routeInterEdges + * @see yfiles.layout.RecursiveGroupLayout#interEdgeRouter + * @see yfiles.layout.PortCandidate + * @type {boolean} + */ + autoAssignPortCandidates:boolean; + /** + * Gets or sets whether or not {@link yfiles.layout.PortConstraint}s of inter-edges are temporarily replaced by + * {@link yfiles.layout.PortCandidate}s. + *

    + * If disabled, inter-edges will always end at the border/center of the corresponding group node, even if those edges have + * port constraints. Thus, they are {@link yfiles.layout.RecursiveGroupLayout#routeInterEdges rerouted} later without considering the constraint. Enabling this settings may produce + * more suitable edge routes but cannot prevent edges from crossing nodes. + *

    + *

    + * Port candidates are automatically redirected to their original location. Hence, enabling this option may produce more + * suitable edge routes if the layout algorithm applied to the content of a group node can handle port candidates. + *

    + * @see yfiles.layout.RecursiveGroupLayout#routeInterEdges + * @see yfiles.layout.PortCandidate + * @type {boolean} + */ + replacePortConstraints:boolean; + /** + * Gets or sets whether empty group nodes are handled like group nodes with content or like normal nodes. + *

    + * If they are handled like other group nodes, {@link yfiles.layout.RecursiveGroupLayout} will resize them according to their + * (non-existing) content. This results in small empty group nodes. Handled like normal nodes, empty group nodes will keep + * their initial size. + *

    + * @type {boolean} + */ + considerEmptyGroups:boolean; + /** + * Gets or sets the current edge routing algorithm for handling inter-edges. + *

    + * During layout, edges that connect from outside a group node to the content inside (inter-edges) are temporarily + * connected to the group node itself. Hence, these edges have to be routed after restoring the original graph structure + * using this edge routing algorithm. + *

    + *

    + * It is required that a suitable {@link yfiles.layout.RecursiveGroupLayout#interEdgesDpKey selection key} is specified. The same selection key must be used for setting the sphere of + * action for the edge router. + *

    + * @see yfiles.layout.RecursiveGroupLayout#interEdgesDpKey + * @type {yfiles.layout.ILayoutAlgorithm} + */ + interEdgeRouter:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets the key for marking the inter-edges to be routed. + *

    + * The key should be used by the specified {@link yfiles.layout.RecursiveGroupLayout#interEdgeRouter inter-edge routing algorithm} to obtain the edges to be routed. This layouter + * automatically marks these edges and registers the {@link yfiles.algorithms.IDataProvider} using the specified key. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified key is null + * @see yfiles.layout.RecursiveGroupLayout#interEdgeRouter + * @type {Object} + */ + interEdgesDpKey:Object; + /** + * Gets or sets a {@link yfiles.layout.IGroupBoundsCalculator} which computes the sizes of all group nodes. + *

    + * This {@link yfiles.layout.IGroupBoundsCalculator} is used each time after calculating the layout for a content graph. + *

    + * @type {yfiles.layout.IGroupBoundsCalculator} + */ + groupBoundsCalculator:yfiles.layout.IGroupBoundsCalculator; + static $class:yfiles.lang.Class; + } /** * A {@link yfiles.layout.ILayoutStage} that temporarily removes all nodes and edges with NaN-coordinates. *

    @@ -87299,7 +86762,7 @@ declare namespace system{ * Since this stage only hides the invalid graph elements and doesn't apply any new coordinates, it is not defined where * those nodes and edges will be placed within the calculated layout. *

    - * @class yfiles.layout.HandleNaNCoordinatesStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface HandleNaNCoordinatesStage extends yfiles.layout.LayoutStageBase{} @@ -87362,11 +86825,11 @@ declare namespace system{ * A model parameter can be an arbitrary {@link Object}. However it must contain all information to allow restoring of the encoded * location with this {@link yfiles.layout.IEdgeLabelLayoutModel}. *

    - * @param {yfiles.algorithms.YOrientedRectangle} labelBounds the oriented box of the label, encoding the label location for which the parameter should be created - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the source node of the label-owning edge - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the target node of the label-owning edge - * @returns {Object} the model parameter representing the given label location + * @param labelBounds the oriented box of the label, encoding the label location for which the parameter should be created + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the source node of the label-owning edge + * @param targetLayout the layout of the target node of the label-owning edge + * @returns the model parameter representing the given label location * @see yfiles.layout.IEdgeLabelLayoutModel#getLabelPlacement * @abstract */ @@ -87377,22 +86840,22 @@ declare namespace system{ * In case the implementing {@link yfiles.layout.IEdgeLabelLayoutModel} allows every possible location, this method always returns * the current location as a {@link yfiles.layout.LabelCandidate}. *

    - * @param {yfiles.layout.IEdgeLabelLayout} labelLayout the label for which candidates should be generated - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the source node of the label-owning edge - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the target node of the label-owning edge - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.layout.EdgeLabelCandidate} instances + * @param labelLayout the label for which candidates should be generated + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the source node of the label-owning edge + * @param targetLayout the layout of the target node of the label-owning edge + * @returns a list of {@link } instances * @abstract */ getLabelCandidates(labelLayout:yfiles.layout.IEdgeLabelLayout,edgeLayout:yfiles.layout.IEdgeLayout,sourceLayout:yfiles.layout.INodeLayout,targetLayout:yfiles.layout.INodeLayout):yfiles.algorithms.YList; /** * Returns the oriented box of the label for the position encoded by the given model parameter. - * @param {yfiles.algorithms.YDimension} labelSize the width and height of the label - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the source node of the label-owning edge - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the target node of the label-owning edge - * @param {Object} parameter the model parameter that describes the abstract position of the label within this model - * @returns {yfiles.algorithms.YOrientedRectangle} the oriented bounds of the label + * @param labelSize the width and height of the label + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the source node of the label-owning edge + * @param targetLayout the layout of the target node of the label-owning edge + * @param parameter the model parameter that describes the abstract position of the label within this model + * @returns the oriented bounds of the label * @abstract */ getLabelPlacement(labelSize:yfiles.algorithms.YDimension,edgeLayout:yfiles.layout.IEdgeLayout,sourceLayout:yfiles.layout.INodeLayout,targetLayout:yfiles.layout.INodeLayout,parameter:Object):yfiles.algorithms.YOrientedRectangle; @@ -87422,8 +86885,8 @@ declare namespace system{ export interface IEdgeLayout extends Object{ /** * Adds a control point to the end of the control point sequence. - * @param {number} x the absolute x-coordinate of the new control point - * @param {number} y the absolute y-coordinate of the new control point + * @param x the absolute x-coordinate of the new control point + * @param y the absolute y-coordinate of the new control point * @abstract */ addPoint(x:number,y:number):void; @@ -87441,8 +86904,8 @@ declare namespace system{ * The first control point in the sequence has index 0 and the last control point has index {@link yfiles.layout.IEdgeLayout#pointCount} * -1. *

    - * @param {number} index the position of the control point in the control point sequence - * @returns {yfiles.algorithms.YPoint} the absolute coordinates of the control point at the given index + * @param index the position of the control point in the control point sequence + * @returns the absolute coordinates of the control point at the given index * @see yfiles.layout.IEdgeLayout#setPoint * @abstract */ @@ -87452,7 +86915,7 @@ declare namespace system{ *

    * The source and target points are not included in the point count. *

    - * @returns {number} the number of control points + * @returns the number of control points * @abstract */ pointCount():number; @@ -87462,9 +86925,9 @@ declare namespace system{ * The first control point in the sequence has index 0 and the last control point has index {@link yfiles.layout.IEdgeLayout#pointCount} * -1. *

    - * @param {number} index the position of the changing control point in the sequence - * @param {number} x the new absolute x-coordinate of the control point at the given index - * @param {number} y the new absolute y-coordinate of the control point at the given index + * @param index the position of the changing control point in the sequence + * @param x the new absolute x-coordinate of the control point at the given index + * @param y the new absolute y-coordinate of the control point at the given index * @abstract */ setPoint(index:number,x:number,y:number):void; @@ -87520,12 +86983,12 @@ declare namespace system{ * Implementing classes use a point on the connecting edge segment (specified with an offset to the node's center) along * with a direction pointing to the node and calculate the intersection between this line and the node. *

    - * @param {yfiles.layout.INodeLayout} nodeLayout the layout information of the node - * @param {number} xOffset the x-coordinate of a point on the last line segment relative to the node's center - * @param {number} yOffset the y-coordinate of a point on the last line segment relative to the node's center - * @param {number} dx the x-component of the normalized direction vector indicating the direction of the segment pointing towards the node - * @param {number} dy the y-component of the normalized direction vector indicating the direction of the segment pointing towards the node - * @returns {yfiles.algorithms.YPoint} the intersection coordinates relative to the node's center or null if no such intersection was found + * @param nodeLayout the layout information of the node + * @param xOffset the x-coordinate of a point on the last line segment relative to the node's center + * @param yOffset the y-coordinate of a point on the last line segment relative to the node's center + * @param dx the x-component of the normalized direction vector indicating the direction of the segment pointing towards the node + * @param dy the y-component of the normalized direction vector indicating the direction of the segment pointing towards the node + * @returns the intersection coordinates relative to the node's center or null if no such intersection was found * @abstract */ calculateIntersectionPoint(nodeLayout:yfiles.layout.INodeLayout,xOffset:number,yOffset:number,dx:number,dy:number):yfiles.algorithms.YPoint; @@ -87537,7 +87000,7 @@ declare namespace system{ /** * Helper class that declares several keys for {@link yfiles.algorithms.IDataProvider} that provide * {@link yfiles.layout.IIntersectionCalculator}. - * @class yfiles.layout.IntersectionCalculatorKeys + * @class * @static */ export interface IntersectionCalculatorKeys extends Object{} @@ -87630,8 +87093,8 @@ declare namespace system{ * The given {@link yfiles.layout.ILabelLayout} has to be created with method {@link yfiles.layout.ILabelLayoutFactory#createLabelLayout} * or {@link yfiles.layout.ILabelLayoutFactory#createLabelLayout}. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.layout.IEdgeLabelLayout} labelLayout the edge label layout that should be added to the given edge + * @param edge the edge + * @param labelLayout the edge label layout that should be added to the given edge * @throws {Stubs.Exceptions.ArgumentError} if the given label layout has already been added to the graph * @see yfiles.layout.ILabelLayoutFactory#createLabelLayout * @see yfiles.layout.ILabelLayoutFactory#createLabelLayout @@ -87644,8 +87107,8 @@ declare namespace system{ * The given label layout has to be created with method {@link yfiles.layout.ILabelLayoutFactory#createLabelLayout} or * {@link yfiles.layout.ILabelLayoutFactory#createLabelLayout}. *

    - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.layout.INodeLabelLayout} labelLayout the node label layout that should be added to the given node + * @param node the node + * @param labelLayout the node label layout that should be added to the given node * @throws {Stubs.Exceptions.ArgumentError} if the given label layout has already been added to the graph * @see yfiles.layout.ILabelLayoutFactory#createLabelLayout * @see yfiles.layout.ILabelLayoutFactory#createLabelLayout @@ -87654,22 +87117,22 @@ declare namespace system{ addLabelLayout(node:yfiles.algorithms.Node,labelLayout:yfiles.layout.INodeLabelLayout):void; /** * Creates a new {@link yfiles.layout.ILabelLayout} for the given edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.YOrientedRectangle} orientedBox the box specifying the size and location of the label - * @param {yfiles.layout.IEdgeLabelLayoutModel} model specifies the model of the created edge label - * @param {yfiles.layout.PreferredPlacementDescriptor} descriptor specifies the preferred placement descriptor of the created label. If this value is + * @param edge the edge + * @param orientedBox the box specifying the size and location of the label + * @param model specifies the model of the created edge label + * @param descriptor specifies the preferred placement descriptor of the created label. If this value is * null, the default descriptor is used - * @returns {yfiles.layout.IEdgeLabelLayout} a new edge label layout + * @returns a new edge label layout * @see yfiles.layout.ILabelLayoutFactory#addLabelLayout * @abstract */ createLabelLayout(edge:yfiles.algorithms.Edge,orientedBox:yfiles.algorithms.YOrientedRectangle,model:yfiles.layout.IEdgeLabelLayoutModel,descriptor:yfiles.layout.PreferredPlacementDescriptor):yfiles.layout.IEdgeLabelLayout; /** * Creates a new {@link yfiles.layout.ILabelLayout} for the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.algorithms.YOrientedRectangle} orientedBox the box specifying the size and location of the label - * @param {yfiles.layout.INodeLabelLayoutModel} model specifies the model of the created node label - * @returns {yfiles.layout.INodeLabelLayout} a new node label layout + * @param node the node + * @param orientedBox the box specifying the size and location of the label + * @param model specifies the model of the created node label + * @returns a new node label layout * @see yfiles.layout.ILabelLayoutFactory#addLabelLayout * @abstract */ @@ -87680,9 +87143,9 @@ declare namespace system{ * This method should create a {@link yfiles.layout.ILabelLayout} with an {@link yfiles.layout.IEdgeLabelLayoutModel} that supports the * desired oriented label box exactly as given. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.YOrientedRectangle} orientedBox the box specifying the size and location of the label - * @returns {yfiles.layout.IEdgeLabelLayout} a new edge label layout + * @param edge the edge + * @param orientedBox the box specifying the size and location of the label + * @returns a new edge label layout * @see yfiles.layout.ILabelLayoutFactory#addLabelLayout * @abstract */ @@ -87693,25 +87156,25 @@ declare namespace system{ * This method should create a {@link yfiles.layout.ILabelLayout} with a {@link yfiles.layout.INodeLabelLayoutModel} that supports the * desired oriented label box exactly as given. *

    - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.algorithms.YOrientedRectangle} orientedBox the box specifying the size and location of the label - * @returns {yfiles.layout.INodeLabelLayout} a new node label layout + * @param node the node + * @param orientedBox the box specifying the size and location of the label + * @returns a new node label layout * @see yfiles.layout.ILabelLayoutFactory#addLabelLayout * @abstract */ createLabelLayout(node:yfiles.algorithms.Node,orientedBox:yfiles.algorithms.YOrientedRectangle):yfiles.layout.INodeLabelLayout; /** * Removes the given {@link yfiles.layout.IEdgeLabelLayout} from the given edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.layout.IEdgeLabelLayout} labelLayout the label layout that should be removed from the given edge + * @param edge the edge + * @param labelLayout the label layout that should be removed from the given edge * @see yfiles.layout.ILabelLayoutFactory#addLabelLayout * @abstract */ removeLabelLayout(edge:yfiles.algorithms.Edge,labelLayout:yfiles.layout.IEdgeLabelLayout):void; /** * Removes the given node label layout from the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.layout.INodeLabelLayout} labelLayout the label layout that should be removed from the given node + * @param node the node + * @param labelLayout the label layout that should be removed from the given node * @see yfiles.layout.ILabelLayoutFactory#addLabelLayout * @abstract */ @@ -87753,7 +87216,7 @@ declare namespace system{ *

    * The call to this routine will only succeed if the layout algorithm can handle the input graph. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @abstract */ applyLayout(graph:yfiles.layout.LayoutGraph):void; @@ -87764,7 +87227,7 @@ declare namespace system{ }; /** * Helper class that provides unique identifiers for some general purpose {@link yfiles.algorithms.IDataProvider data providers}. - * @class yfiles.layout.LayoutKeys + * @class * @static */ export interface LayoutKeys extends Object{} @@ -87903,9 +87366,9 @@ declare namespace system{ * A model parameter can be an arbitrary {@link Object}. However it must contain all information to allow restoring of the encoded * location with this {@link yfiles.layout.INodeLabelLayoutModel}. *

    - * @param {yfiles.algorithms.YOrientedRectangle} labelBounds the box of the label, encoding the label location for which the parameter should be created - * @param {yfiles.layout.INodeLayout} nodeLayout the layout of the node to which the label belongs - * @returns {Object} the model parameter representing the given label location + * @param labelBounds the box of the label, encoding the label location for which the parameter should be created + * @param nodeLayout the layout of the node to which the label belongs + * @returns the model parameter representing the given label location * @see yfiles.layout.INodeLabelLayoutModel#getLabelPlacement * @abstract */ @@ -87916,18 +87379,18 @@ declare namespace system{ * In case the implementing {@link yfiles.layout.INodeLabelLayoutModel} allows every possible location, this method always returns * the current location as a {@link yfiles.layout.LabelCandidate}. *

    - * @param {yfiles.layout.INodeLabelLayout} labelLayout the label for which candidates should be generated - * @param {yfiles.layout.INodeLayout} nodeLayout the layout of the node to which the label belongs - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.layout.NodeLabelCandidate} instances + * @param labelLayout the label for which candidates should be generated + * @param nodeLayout the layout of the node to which the label belongs + * @returns a list of {@link } instances * @abstract */ getLabelCandidates(labelLayout:yfiles.layout.INodeLabelLayout,nodeLayout:yfiles.layout.INodeLayout):yfiles.algorithms.YList; /** * Returns the bounds of the label for the position encoded by the given model parameter. - * @param {yfiles.algorithms.YDimension} labelSize the width and height of the label - * @param {yfiles.layout.INodeLayout} nodeLayout the layout of the node to which the label belongs - * @param {Object} param the model parameter that describes the abstract position of the label within this model - * @returns {yfiles.algorithms.YOrientedRectangle} the oriented box of the label + * @param labelSize the width and height of the label + * @param nodeLayout the layout of the node to which the label belongs + * @param param the model parameter that describes the abstract position of the label within this model + * @returns the oriented box of the label * @abstract */ getLabelPlacement(labelSize:yfiles.algorithms.YDimension,nodeLayout:yfiles.layout.INodeLayout,param:Object):yfiles.algorithms.YOrientedRectangle; @@ -87956,15 +87419,15 @@ declare namespace system{ export interface INodeLayout extends Object{ /** * Sets the coordinates of the upper-left corner of the node. - * @param {number} x the new x-coordinate of the node - * @param {number} y the new y-coordinate of the node + * @param x the new x-coordinate of the node + * @param y the new y-coordinate of the node * @abstract */ setLocation(x:number,y:number):void; /** * Sets the size of the node. - * @param {number} width the new width of the node - * @param {number} height the new height of the node + * @param width the new width of the node + * @param height the new height of the node * @abstract */ setSize(width:number,height:number):void; @@ -88019,9 +87482,9 @@ declare namespace system{ export interface IPartitionInterEdgeRouter extends Object{ /** * Routes inter-edges of the partitioned graph. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} partitionIDDP the partition ID for each node in the graph - * @param {yfiles.algorithms.IDataProvider} interEdgeDP the map that marks inter-edges + * @param graph the input graph + * @param partitionIDDP the partition ID for each node in the graph + * @param interEdgeDP the map that marks inter-edges * @abstract */ routeInterEdges(graph:yfiles.layout.LayoutGraph,partitionIDDP:yfiles.algorithms.IDataProvider,interEdgeDP:yfiles.algorithms.IDataProvider):void; @@ -88039,15 +87502,15 @@ declare namespace system{ var IPartitionInterEdgeRouter:{ /** * Routes inter-edges using {@link yfiles.router.ChannelEdgeRouter}. - * @param {yfiles.router.ChannelEdgeRouter} [router=null] The router instance to use for the edge routing. If not specified, a internal instance is used. - * @returns {yfiles.layout.IPartitionInterEdgeRouter} + * @param [router=null] The router instance to use for the edge routing. If not specified, a internal instance is used. + * @returns * @static */ createChannelInterEdgeRouter?(router?:yfiles.router.ChannelEdgeRouter):yfiles.layout.IPartitionInterEdgeRouter; /** * Routes inter-edges using {@link yfiles.router.EdgeRouter}. - * @param {yfiles.router.EdgeRouter} [router=null] The router instance to use for the edge routing. If not specified, a internal instance is used. - * @returns {yfiles.layout.IPartitionInterEdgeRouter} + * @param [router=null] The router instance to use for the edge routing. If not specified, a internal instance is used. + * @returns * @static */ createPolylineInterEdgeRouter?(router?:yfiles.router.EdgeRouter):yfiles.layout.IPartitionInterEdgeRouter; @@ -88077,8 +87540,8 @@ declare namespace system{ *

    * Profits need to have a value between 0 and 1. *

    - * @param {yfiles.layout.LabelCandidate} candidate the candidate - * @returns {number} the profit of the candidate + * @param candidate the candidate + * @returns the profit of the candidate * @abstract */ getProfit(candidate:yfiles.layout.LabelCandidate):number; @@ -88097,28 +87560,26 @@ declare namespace system{ * @see yfiles.layout.INodeLabelLayoutModel * @see yfiles.layout.IEdgeLabelLayoutModel * @see yfiles.labeling.GenericLabeling - * @class yfiles.layout.LabelCandidate + * @class * @implements {yfiles.algorithms.IPlaneObject} */ export interface LabelCandidate extends Object,yfiles.algorithms.IPlaneObject{} export class LabelCandidate { /** * Creates a new instance of {@link yfiles.layout.LabelCandidate} described by location, size, model parameter and internal flag. - * @param {yfiles.algorithms.YPoint} pos the location of the upper left corner of the candidate - * @param {yfiles.algorithms.YDimension} size the size of the candidate - * @param {Object} param the parameters of the label model associated with this candidate - * @param {yfiles.layout.ILabelLayout} owner the label associated with the candidate - * @param {boolean} [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise - * @constructor + * @param pos the location of the upper left corner of the candidate + * @param size the size of the candidate + * @param param the parameters of the label model associated with this candidate + * @param owner the label associated with the candidate + * @param [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise */ constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,param:Object,owner:yfiles.layout.ILabelLayout,internal?:boolean); /** * Creates a new instance of {@link yfiles.layout.LabelCandidate} described by its box, model parameter and internal flag. - * @param {yfiles.algorithms.YOrientedRectangle} labelBox the box that specifies the candidate's size and position - * @param {Object} param the parameters of the label model associated with this candidate - * @param {yfiles.layout.ILabelLayout} owner the label associated with the candidate - * @param {boolean} [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise - * @constructor + * @param labelBox the box that specifies the candidate's size and position + * @param param the parameters of the label model associated with this candidate + * @param owner the label associated with the candidate + * @param [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise */ constructor(labelBox:yfiles.algorithms.YOrientedRectangle,param:Object,owner:yfiles.layout.ILabelLayout,internal?:boolean); /** @@ -88277,14 +87738,13 @@ declare namespace system{ } /** * {@link yfiles.layout.LabelLayoutBase} is the default implementation of the {@link yfiles.layout.ILabelLayout} interface. - * @class yfiles.layout.LabelLayoutBase + * @class * @implements {yfiles.layout.ILabelLayout} */ export interface LabelLayoutBase extends Object,yfiles.layout.ILabelLayout{} export class LabelLayoutBase { /** * Creates a new {@link yfiles.layout.LabelLayoutBase} instance. - * @constructor */ constructor(); /** @@ -88326,32 +87786,30 @@ declare namespace system{ * edges of a {@link yfiles.layout.LayoutGraph}. The {@link yfiles.algorithms.IDataProvider DataProviders} must be registered with the input graph using one of the keys * defined in {@link yfiles.layout.LabelLayoutKeys}. *

    - * @class yfiles.layout.LabelLayoutData + * @class */ export interface LabelLayoutData extends Object{} export class LabelLayoutData { /** * Creates a new instance of {@link yfiles.layout.LabelLayoutData} for a label with the given width and height. - * @param {number} width the width of the label - * @param {number} height the height of the label - * @constructor + * @param width the width of the label + * @param height the height of the label */ constructor(width:number,height:number); /** * Creates a new instance of {@link yfiles.layout.LabelLayoutData} for a label with the given oriented box and preferred placement * descriptor. - * @param {yfiles.algorithms.YOrientedRectangle} bounds the box of the label - * @param {yfiles.layout.PreferredPlacementDescriptor} [preferredPlacement=null] a preferred placement descriptor + * @param bounds the box of the label + * @param [preferredPlacement=null] a preferred placement descriptor * @throws {Stubs.Exceptions.ArgumentError} if the specified descriptor is null * @see yfiles.layout.PreferredPlacementDescriptor * @see yfiles.layout.LabelLayoutData#preferredPlacementDescriptor - * @constructor */ constructor(bounds:yfiles.algorithms.YOrientedRectangle,preferredPlacement?:yfiles.layout.PreferredPlacementDescriptor); /** * Specifies the coordinates of the upper-left corner of the bounding box of the label. - * @param {number} x the new x-coordinate of the upper-left corner - * @param {number} y the new y-coordinate of the upper-left corner + * @param x the new x-coordinate of the upper-left corner + * @param y the new y-coordinate of the upper-left corner * @see yfiles.layout.LabelLayoutData#x * @see yfiles.layout.LabelLayoutData#y * @see yfiles.algorithms.YOrientedRectangle#boundingBox @@ -88359,8 +87817,8 @@ declare namespace system{ setLocation(x:number,y:number):void; /** * Specifies the width and height of the {@link yfiles.layout.LabelLayoutData#bounds oriented box} of this label. - * @param {number} width the width of the oriented box - * @param {number} height the height of the oriented box + * @param width the width of the oriented box + * @param height the height of the oriented box * @see yfiles.layout.LabelLayoutData#bounds */ setSize(width:number,height:number):void; @@ -88413,7 +87871,7 @@ declare namespace system{ * to automatically translate information provided by the standard label layout classes {@link yfiles.layout.IEdgeLabelLayout} and * {@link yfiles.layout.INodeLabelLayout} to layout data accessible through the keys defined below. *

    - * @class yfiles.layout.LabelLayoutKeys + * @class * @static */ export interface LabelLayoutKeys extends Object{} @@ -88475,14 +87933,13 @@ declare namespace system{ * by the label model. The best label layout results are achieved by choosing {@link yfiles.layout.FreeEdgeLabelLayoutModel} for * edge layouts and {@link yfiles.layout.FreeNodeLabelLayoutModel} for node layouts. *

    - * @class yfiles.layout.LabelLayoutTranslator + * @class * @implements {yfiles.layout.ILayoutStage} */ export interface LabelLayoutTranslator extends Object,yfiles.layout.ILayoutStage{} export class LabelLayoutTranslator { /** * Creates a new {@link yfiles.layout.LabelLayoutTranslator} instance with default settings. - * @constructor */ constructor(); /** @@ -88491,7 +87948,7 @@ declare namespace system{ *

    * Afterwards, the calculated layout data will be written back to the original label layout. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph */ applyLayout(graph:yfiles.layout.LayoutGraph):void; /** @@ -88572,71 +88029,68 @@ declare namespace system{ *

    * {@link yfiles.layout.ILayoutAlgorithm Layout algorithms} work on {@link yfiles.layout.LayoutGraph}s and arrange their nodes and edges. *

    - * @class yfiles.layout.LayoutGraph + * @class * @extends {yfiles.algorithms.Graph} */ export interface LayoutGraph extends yfiles.algorithms.Graph{} export class LayoutGraph { /** * Creates a new {@link yfiles.layout.LayoutGraph} which is a copy of the given subgraph. - * @param {yfiles.layout.LayoutGraph} graph the original graph - * @param {yfiles.algorithms.ICursor} nodeSubset the nodes that induce the subgraph - * @constructor + * @param graph the original graph + * @param nodeSubset the nodes that induce the subgraph */ constructor(graph:yfiles.layout.LayoutGraph,nodeSubset:yfiles.algorithms.ICursor); /** * Creates a new {@link yfiles.layout.LayoutGraph} which is a copy of the given subgraph. - * @param {yfiles.layout.LayoutGraph} subgraph the original subgraph - * @constructor + * @param subgraph the original subgraph */ constructor(subgraph:yfiles.layout.LayoutGraph); /** * Creates a new, empty {@link yfiles.layout.LayoutGraph} with default settings. - * @constructor */ constructor(); /** * Creates a new {@link yfiles.layout.ILabelLayoutFactory} for this {@link yfiles.layout.LayoutGraph} that can be used for copying layout * information of labels. - * @returns {yfiles.layout.ILabelLayoutFactory} the new {@link yfiles.layout.ILabelLayoutFactory} + * @returns the new {@link } * @protected * @abstract */ createLabelFactory():yfiles.layout.ILabelLayoutFactory; /** * Returns the rectangle describing the bounding box of the given node. - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.algorithms.YRectangle} the bounds of the node + * @param node the node + * @returns the bounds of the node * @see yfiles.layout.LayoutGraph#getLocation * @see yfiles.layout.LayoutGraph#getSize */ getBoundingBox(node:yfiles.algorithms.Node):yfiles.algorithms.YRectangle; /** * Returns the center coordinates of the given node. - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.algorithms.YPoint} the location of the node's center + * @param node the node + * @returns the location of the node's center * @see yfiles.layout.INodeLayout * @see yfiles.layout.LayoutGraph#setCenter */ getCenter(node:yfiles.algorithms.Node):yfiles.algorithms.YPoint; /** * Returns the x-coordinate of the given node's center. - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the x-value of the node's center coordinate + * @param node the node + * @returns the x-value of the node's center coordinate * @see yfiles.layout.INodeLayout */ getCenterX(node:yfiles.algorithms.Node):number; /** * Returns the y-coordinate of the given node's center. - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the y-value of the node's center coordinate + * @param node the node + * @returns the y-value of the node's center coordinate * @see yfiles.layout.INodeLayout */ getCenterY(node:yfiles.algorithms.Node):number; /** * Returns the height of the given node. - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the height of the node + * @param node the node + * @returns the height of the node * @see yfiles.layout.INodeLayout#height */ getHeight(node:yfiles.algorithms.Node):number; @@ -88645,8 +88099,8 @@ declare namespace system{ *

    * The layout information consists of the location, size and orientation of the label. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {Array.} the layout information for the edge's labels + * @param edge the edge + * @returns the layout information for the edge's labels * @abstract */ getLabelLayout(edge:yfiles.algorithms.Edge):yfiles.layout.IEdgeLabelLayout[]; @@ -88655,8 +88109,8 @@ declare namespace system{ *

    * The layout information consists of the location, size and orientation of the label. *

    - * @param {yfiles.algorithms.Node} node the node - * @returns {Array.} the layout information for the node's labels + * @param node the node + * @returns the layout information for the node's labels * @abstract */ getLabelLayout(node:yfiles.algorithms.Node):yfiles.layout.INodeLabelLayout[]; @@ -88665,8 +88119,8 @@ declare namespace system{ *

    * The layout information consists of the locations of the control points and end points of the edge. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.layout.IEdgeLayout} the layout information for the edge + * @param edge the edge + * @returns the layout information for the edge * @abstract */ getLayout(edge:yfiles.algorithms.Edge):yfiles.layout.IEdgeLayout; @@ -88675,30 +88129,30 @@ declare namespace system{ *

    * The layout information consists of the location and size of the node. *

    - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.layout.INodeLayout} the layout information for the node + * @param node the node + * @returns the layout information for the node * @abstract */ getLayout(node:yfiles.algorithms.Node):yfiles.layout.INodeLayout; /** * Returns the coordinates of the given node's upper-left corner. - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.algorithms.YPoint} the location of the node's upper-left corner + * @param node the node + * @returns the location of the node's upper-left corner * @see yfiles.layout.INodeLayout#x * @see yfiles.layout.INodeLayout#y */ getLocation(node:yfiles.algorithms.Node):yfiles.algorithms.YPoint; /** * Returns the edge to which the given {@link yfiles.layout.IEdgeLabelLayout} belongs. - * @param {yfiles.layout.IEdgeLabelLayout} labelLayout the label's layout information - * @returns {yfiles.algorithms.Edge} the edge that owns the label + * @param labelLayout the label's layout information + * @returns the edge that owns the label * @abstract */ getOwnerEdge(labelLayout:yfiles.layout.IEdgeLabelLayout):yfiles.algorithms.Edge; /** * Returns the node to which the given {@link yfiles.layout.INodeLabelLayout} belongs. - * @param {yfiles.layout.INodeLabelLayout} labelLayout the label's layout information - * @returns {yfiles.algorithms.Node} the node that owns the label + * @param labelLayout the label's layout information + * @returns the node that owns the label * @abstract */ getOwnerNode(labelLayout:yfiles.layout.INodeLabelLayout):yfiles.algorithms.Node; @@ -88708,8 +88162,8 @@ declare namespace system{ * The path of an edge is the position of the source port, followed by the positions of the bends, followed by the position * of the target port. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YPointPath} the path of the given edge + * @param edge the edge + * @returns the path of the given edge */ getPath(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPointPath; /** @@ -88718,36 +88172,36 @@ declare namespace system{ * The path of an edge is the position of the source port, followed by the positions of the bends, followed by the position * of the target port. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.algorithms.YPoint}s representing the path of the given edge + * @param edge the edge + * @returns a list of {@link }s representing the path of the given edge */ getPathList(edge:yfiles.algorithms.Edge):yfiles.algorithms.YList; /** * Returns the control points of an edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.algorithms.YPoint}s representing the sequence of control points of the edge + * @param edge the edge + * @returns a list of {@link }s representing the sequence of control points of the edge * @see yfiles.layout.IEdgeLayout */ getPointList(edge:yfiles.algorithms.Edge):yfiles.algorithms.YList; /** * Returns the control points of an edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YPointPath} a {@link yfiles.algorithms.YPointPath} representing the sequence of control points of the edge + * @param edge the edge + * @returns a {@link } representing the sequence of control points of the edge * @see yfiles.layout.IEdgeLayout */ getPoints(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPointPath; /** * Returns the size of the given node. - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.algorithms.YDimension} the size of the node + * @param node the node + * @returns the size of the node * @see yfiles.layout.INodeLayout#width * @see yfiles.layout.INodeLayout#height */ getSize(node:yfiles.algorithms.Node):yfiles.algorithms.YDimension; /** * Returns the absolute coordinates of the source point of the given edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YPoint} the absolute source point coordinates of the edge + * @param edge the edge + * @returns the absolute source point coordinates of the edge */ getSourcePointAbs(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPoint; /** @@ -88755,15 +88209,15 @@ declare namespace system{ *

    * The coordinates are interpreted relative to the center of the source node. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YPoint} the relative source point coordinates of the edge + * @param edge the edge + * @returns the relative source point coordinates of the edge * @see yfiles.layout.IEdgeLayout#sourcePoint */ getSourcePointRel(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPoint; /** * Returns the absolute coordinates of the target point of the given edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YPoint} the absolute target point coordinates of the edge + * @param edge the edge + * @returns the absolute target point coordinates of the edge */ getTargetPointAbs(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPoint; /** @@ -88771,76 +88225,76 @@ declare namespace system{ *

    * The coordinates are interpreted relative to the center of the target node. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.YPoint} the relative target point coordinates of the edge + * @param edge the edge + * @returns the relative target point coordinates of the edge * @see yfiles.layout.IEdgeLayout#targetPoint */ getTargetPointRel(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPoint; /** * Returns the width of the given node. - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the width of the node + * @param node the node + * @returns the width of the node * @see yfiles.layout.INodeLayout#width */ getWidth(node:yfiles.algorithms.Node):number; /** * Returns the x-coordinate of the given node's upper-left corner. - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the x-value of the node's upper-left corner + * @param node the node + * @returns the x-value of the node's upper-left corner * @see yfiles.layout.INodeLayout#x */ getX(node:yfiles.algorithms.Node):number; /** * Returns the y-coordinate of the given node's upper-left corner. - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the y-value of the node's upper-left corner + * @param node the node + * @returns the y-value of the node's upper-left corner * @see yfiles.layout.INodeLayout#y */ getY(node:yfiles.algorithms.Node):number; /** * Moves the upper-left corner of a node by a given vector. - * @param {yfiles.algorithms.Node} node the node - * @param {number} dx the x-component of the vector - * @param {number} dy the y-component of the vector + * @param node the node + * @param dx the x-component of the vector + * @param dy the y-component of the vector */ moveBy(node:yfiles.algorithms.Node,dx:number,dy:number):void; /** * Specifies the center coordinates of the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {number} x the new x-coordinate of the node's center - * @param {number} y the new y-coordinate of the node's center + * @param node the node + * @param x the new x-coordinate of the node's center + * @param y the new y-coordinate of the node's center * @see yfiles.layout.INodeLayout */ setCenter(node:yfiles.algorithms.Node,x:number,y:number):void; /** * Specifies the center coordinates of the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.algorithms.YPoint} position the new location of the node's center + * @param node the node + * @param position the new location of the node's center * @see yfiles.layout.INodeLayout * @see yfiles.layout.LayoutGraph#setCenter */ setCenter(node:yfiles.algorithms.Node,position:yfiles.algorithms.YPoint):void; /** * Specifies the two end points of the given edge in absolute coordinates. - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.YPoint} source the port on the source side of the edge - * @param {yfiles.algorithms.YPoint} target the port on the target side of the edge + * @param edge the edge + * @param source the port on the source side of the edge + * @param target the port on the target side of the edge * @see yfiles.layout.LayoutGraph#setSourcePointAbs * @see yfiles.layout.LayoutGraph#setTargetPointAbs */ setEndPointsAbs(edge:yfiles.algorithms.Edge,source:yfiles.algorithms.YPoint,target:yfiles.algorithms.YPoint):void; /** * Specifies the coordinates of the upper-left corner of the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {number} x the new x-coordinate of the upper-left corner - * @param {number} y the new y-coordinate of the upper-left corner + * @param node the node + * @param x the new x-coordinate of the upper-left corner + * @param y the new y-coordinate of the upper-left corner * @see yfiles.layout.INodeLayout#setLocation */ setLocation(node:yfiles.algorithms.Node,x:number,y:number):void; /** * Specifies the coordinates of the upper-left corner of the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.algorithms.YPoint} position the new location of the upper-left corner + * @param node the node + * @param position the new location of the upper-left corner * @see yfiles.layout.INodeLayout#setLocation * @see yfiles.layout.LayoutGraph#setLocation */ @@ -88854,8 +88308,8 @@ declare namespace system{ *

    * Both source and target port are expected to be given in absolute coordinates. *

    - * @param {yfiles.algorithms.Edge} edge an edge in the graph - * @param {yfiles.algorithms.YList} path the list of {@link yfiles.algorithms.YPoint}s representing the new path sequence of the edge + * @param edge an edge in the graph + * @param path the list of {@link }s representing the new path sequence of the edge */ setPath(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YList):void; /** @@ -88867,8 +88321,8 @@ declare namespace system{ *

    * Both source and target port are expected to be given in absolute coordinates. *

    - * @param {yfiles.algorithms.Edge} edge an edge in the graph - * @param {yfiles.algorithms.YPointPath} path the new path sequence of the edge + * @param edge an edge in the graph + * @param path the new path sequence of the edge */ setPath(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YPointPath):void; /** @@ -88876,8 +88330,8 @@ declare namespace system{ *

    * The source and target points of the edge will not be modified. *

    - * @param {yfiles.algorithms.Edge} edge an edge in the graph - * @param {yfiles.algorithms.YList} points the list of {@link yfiles.algorithms.YPoint}s representing the new sequence of control points + * @param edge an edge in the graph + * @param points the list of {@link }s representing the new sequence of control points */ setPoints(edge:yfiles.algorithms.Edge,points:yfiles.algorithms.YList):void; /** @@ -88885,30 +88339,30 @@ declare namespace system{ *

    * The source and target points of the edge will not be modified. *

    - * @param {yfiles.algorithms.Edge} edge an edge in the graph - * @param {yfiles.algorithms.YPointPath} points the new sequence of control points + * @param edge an edge in the graph + * @param points the new sequence of control points */ setPoints(edge:yfiles.algorithms.Edge,points:yfiles.algorithms.YPointPath):void; /** * Specifies the width and height of the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {number} width the new width of the node - * @param {number} height the new height of the node + * @param node the node + * @param width the new width of the node + * @param height the new height of the node * @see yfiles.layout.INodeLayout#setSize */ setSize(node:yfiles.algorithms.Node,width:number,height:number):void; /** * Specifies the size of the given node. - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.algorithms.YDimension} size the new size of the node + * @param node the node + * @param size the new size of the node * @see yfiles.layout.LayoutGraph#setSize * @see yfiles.layout.INodeLayout#setSize */ setSize(node:yfiles.algorithms.Node,size:yfiles.algorithms.YDimension):void; /** * Specifies the absolute coordinates of the source point of the given edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.YPoint} point the new absolute source point coordinates of the edge + * @param edge the edge + * @param point the new absolute source point coordinates of the edge */ setSourcePointAbs(edge:yfiles.algorithms.Edge,point:yfiles.algorithms.YPoint):void; /** @@ -88916,15 +88370,15 @@ declare namespace system{ *

    * The coordinates are interpreted relative to the center of the source node. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.YPoint} point the new relative source point coordinates of the edge + * @param edge the edge + * @param point the new relative source point coordinates of the edge * @see yfiles.layout.IEdgeLayout#sourcePoint */ setSourcePointRel(edge:yfiles.algorithms.Edge,point:yfiles.algorithms.YPoint):void; /** * Specifies the absolute coordinates of the target point of the given edge. - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.YPoint} point the new absolute target point coordinates of the edge + * @param edge the edge + * @param point the new absolute target point coordinates of the edge */ setTargetPointAbs(edge:yfiles.algorithms.Edge,point:yfiles.algorithms.YPoint):void; /** @@ -88932,8 +88386,8 @@ declare namespace system{ *

    * The coordinates are interpreted relative to the center of the target node. *

    - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.YPoint} point the new relative target point coordinates of the edge + * @param edge the edge + * @param point the new relative target point coordinates of the edge * @see yfiles.layout.IEdgeLayout#targetPoint */ setTargetPointRel(edge:yfiles.algorithms.Edge,point:yfiles.algorithms.YPoint):void; @@ -88948,7 +88402,7 @@ declare namespace system{ * The {@link yfiles.layout.LayoutGraphUtilities} provides several helper and utility functions for {@link yfiles.layout.LayoutGraph} and * the {@link yfiles.layout.ILayoutAlgorithm layout algorithms}. * @see yfiles.layout.LayoutGraph - * @class yfiles.layout.LayoutGraphUtilities + * @class * @static */ export interface LayoutGraphUtilities extends Object{} @@ -88966,16 +88420,16 @@ declare namespace system{ * vertical or horizontal coordinate axis do not overlap. For example, after vertically distributing nodes, (n1.y + n1.height) <= n2.y * for two consecutively placed nodes n1 and n2. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the specified nodes - * @param {yfiles.algorithms.NodeList} nodes the subset of the specified graph's nodes that is arranged - * @param {yfiles.algorithms.Node} referenceNode if null, the common coordinate for aligning the specified nodes is calculated as the the vertical minimum (top-aligned), + * @param graph the graph that contains the specified nodes + * @param nodes the subset of the specified graph's nodes that is arranged + * @param referenceNode if null, the common coordinate for aligning the specified nodes is calculated as the the vertical minimum (top-aligned), * the vertical center, the vertical maximum (bottom-aligned), the horizontal minimum (left-aligned), the horizontal * center, or the horizontal maximum (right-aligned) of the bounds of the specified nodes; otherwise the appropriate * coordinate of the given reference node's bounds is used as common coordinate for aligning the specified nodes. The - * reference node is ignored when {@link yfiles.layout.NodeAlignment#DISTRIBUTED distributing} nodes. - * @param {boolean} vertical true if nodes should be aligned (or distributed) according to their y-coordinates; otherwise nodes are aligned (or + * reference node is ignored when {@link #DISTRIBUTED distributing} nodes. + * @param vertical true if nodes should be aligned (or distributed) according to their y-coordinates; otherwise nodes are aligned (or * distributed) according to their x-coordinates. - * @param {yfiles.layout.NodeAlignment} mode one of the valid alignment modes + * @param mode one of the valid alignment modes * @static */ static alignNodeLayouts(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.NodeList,referenceNode:yfiles.algorithms.Node,vertical:boolean,mode:yfiles.layout.NodeAlignment):void; @@ -88985,10 +88439,10 @@ declare namespace system{ *

    * The aspect ratio must be greater than 0. *

    - * @param {Array.} rectangles the rectangles whose coordinates will be modified - * @param {yfiles.algorithms.Rectangle2D} finalRect the exact dimension will be placed in this rectangle - * @param {number} aspectRatio the preferred aspect ratio of the grid - * @returns {yfiles.algorithms.YDimension} the dimension of the grid + * @param rectangles the rectangles whose coordinates will be modified + * @param finalRect the exact dimension will be placed in this rectangle + * @param aspectRatio the preferred aspect ratio of the grid + * @returns the dimension of the grid * @throws {Stubs.Exceptions.ArgumentError} if the given aspect ratio is less than or equal to zero * @static */ @@ -89004,15 +88458,15 @@ declare namespace system{ *

    * The preferred width and height should be greater than 0, otherwise the nodes are not arranged. *

    - * @param {Array.} rectangles the rectangles to arrange (coordinates will be assigned) - * @param {yfiles.algorithms.Rectangle2D} finalRect the exact resulting dimension will be stored in this rectangle - * @param {number} preferredWidth the preferred width of the result rectangle - * @param {number} preferredHeight the preferred height of the result rectangle - * @param {boolean} compaction true if the algorithm tries to always minimize the resulting dimension, whilst respecting the given constraints, false + * @param rectangles the rectangles to arrange (coordinates will be assigned) + * @param finalRect the exact resulting dimension will be stored in this rectangle + * @param preferredWidth the preferred width of the result rectangle + * @param preferredHeight the preferred height of the result rectangle + * @param compaction true if the algorithm tries to always minimize the resulting dimension, whilst respecting the given constraints, false * otherwise - * @param {yfiles.layout.MultiRowConstraint} constraintMode the width or height constraints to consider - * @param {yfiles.layout.RowAlignment} [alignment=yfiles.layout.RowAlignment.LEADING] the alignment inside a row - * @returns {number} the number of rows used + * @param constraintMode the width or height constraints to consider + * @param [alignment=yfiles.layout.RowAlignment.LEADING] the alignment inside a row + * @returns the number of rows used * @see yfiles.layout.LayoutGraphUtilities#arrangeRectangleMultiRows * @static */ @@ -89026,20 +88480,20 @@ declare namespace system{ *

    * The aspect ratio must be greater than 0. *

    - * @param {Array.} rectangles the rectangles whose coordinates will be modified - * @param {yfiles.algorithms.Rectangle2D} finalRect the exact dimension of the resulting rectangle - * @param {number} aspectRatio the preferred aspect ratio of the resulting rectangle - * @param {yfiles.layout.RowAlignment} [alignment=yfiles.layout.RowAlignment.LEADING] one of the valid row alignments - * @returns {number} the number of used rows + * @param rectangles the rectangles whose coordinates will be modified + * @param finalRect the exact dimension of the resulting rectangle + * @param aspectRatio the preferred aspect ratio of the resulting rectangle + * @param [alignment=yfiles.layout.RowAlignment.LEADING] one of the valid row alignments + * @returns the number of used rows * @throws {Stubs.Exceptions.ArgumentError} if the aspect ratio is 0 or less * @static */ static arrangeRectangleRows(rectangles:yfiles.algorithms.Rectangle2D[],finalRect:yfiles.algorithms.Rectangle2D,aspectRatio:number,alignment?:yfiles.layout.RowAlignment):number; /** * Applies the reversed layout of the first edge to the second edge. - * @param {yfiles.layout.LayoutGraph} graph the graph to which both edges belong - * @param {yfiles.algorithms.Edge} edge1 the edge which adopts the points - * @param {yfiles.algorithms.Edge} edge2 the template + * @param graph the graph to which both edges belong + * @param edge1 the edge which adopts the points + * @param edge2 the template * @static */ static assignReverseLayout(graph:yfiles.layout.LayoutGraph,edge1:yfiles.algorithms.Edge,edge2:yfiles.algorithms.Edge):void; @@ -89048,8 +88502,8 @@ declare namespace system{ *

    * That means, it rotates the rectangle by 180 degrees without changing the rectangle's center. *

    - * @param {yfiles.algorithms.YOrientedRectangle} rect the given rectangle - * @returns {boolean} true if the given rectangle was flipped, false otherwise + * @param rect the given rectangle + * @returns true if the given rectangle was flipped, false otherwise * @static */ static autoFlipBox(rect:yfiles.algorithms.YOrientedRectangle):boolean; @@ -89058,8 +88512,8 @@ declare namespace system{ *

    * On a clipped edge, the source and target port will be located at the border of the corresponding node. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the edge to clip + * @param graph the graph to which the edge belongs + * @param edge the edge to clip * @static */ static clipEdgeOnBounds(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):void; @@ -89068,9 +88522,9 @@ declare namespace system{ *

    * On the clipped edge, the source and target port will be located at the border of the corresponding node. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the clipped edge - * @returns {yfiles.algorithms.YPointPath} the clipped path of the edge + * @param graph the graph to which the edge belongs + * @param edge the clipped edge + * @returns the clipped path of the edge * @static */ static clipEdgePathOnBounds(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):yfiles.algorithms.YPointPath; @@ -89080,11 +88534,11 @@ declare namespace system{ * On the clipped edge, the source and target port will be located inside the node with an inset to the border of the * corresponding node. *

    - * @param {yfiles.layout.IEdgeLayout} edge the clipped edge - * @param {yfiles.layout.INodeLayout} source the source of the edge - * @param {yfiles.layout.INodeLayout} target the target of the edge - * @param {number} [inset=0.0] the inset of the node - * @returns {yfiles.algorithms.YPointPath} the clipped path of the edge + * @param edge the clipped edge + * @param source the source of the edge + * @param target the target of the edge + * @param [inset=0.0] the inset of the node + * @returns the clipped path of the edge * @static */ static clipEdgePathOnBounds(edge:yfiles.layout.IEdgeLayout,source:yfiles.layout.INodeLayout,target:yfiles.layout.INodeLayout,inset?:number):yfiles.algorithms.YPointPath; @@ -89093,17 +88547,17 @@ declare namespace system{ *

    * On a clipped edge, the source and target port will be located at the border of the corresponding node. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph + * @param graph the graph * @see yfiles.layout.LayoutGraphUtilities#clipEdgeOnBounds * @static */ static clipEdgesOnBounds(graph:yfiles.layout.LayoutGraph):void; /** * Returns the path of a given edge path clipped on the given bounding boxes of the source and target node. - * @param {yfiles.algorithms.YPointPath} path the path that will be clipped - * @param {yfiles.algorithms.YRectangle} sourceBox the box of the source node that the given path should be clipped at - * @param {yfiles.algorithms.YRectangle} targetBox the box of the target node that the given path should be clipped at - * @returns {yfiles.algorithms.YPointPath} the path clipped on the given nodes boxes + * @param path the path that will be clipped + * @param sourceBox the box of the source node that the given path should be clipped at + * @param targetBox the box of the target node that the given path should be clipped at + * @returns the path clipped on the given nodes boxes * @static */ static clipPathOnBounds(path:yfiles.algorithms.YPointPath,sourceBox:yfiles.algorithms.YRectangle,targetBox:yfiles.algorithms.YRectangle):yfiles.algorithms.YPointPath; @@ -89112,17 +88566,17 @@ declare namespace system{ *

    * The method only considers edges that are marked in the given {@link yfiles.algorithms.IDataProvider}. *

    - * @param {yfiles.layout.LayoutGraph} graph the underlying graph - * @param {yfiles.algorithms.IDataProvider} considerEdges the edges to consider - * @returns {yfiles.layout.EdgeFlow} one of the predefined flow directions + * @param graph the underlying graph + * @param considerEdges the edges to consider + * @returns one of the predefined flow directions * @static */ static determineEdgeFlowDirection(graph:yfiles.layout.LayoutGraph,considerEdges:yfiles.algorithms.IDataProvider):yfiles.layout.EdgeFlow; /** * Returns a {@link string} representation of the path of the given edge. - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {string} the {@link string} that contains all control points of the edge + * @param graph the graph to which the edge belongs + * @param edge the edge + * @returns the {@link } that contains all control points of the edge * @static */ static edgeLayoutString(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):string; @@ -89132,9 +88586,9 @@ declare namespace system{ * In this case, the bounding box is the smallest paraxial rectangle which contains the control points as well as the * absolute coordinates of the source and target point of the edge. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the edge - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.algorithms.Rectangle2D} the bounding box of the edge + * @param graph the graph that contains the edge + * @param edge the edge + * @returns the bounding box of the edge * @see yfiles.layout.LayoutGraph#getSourcePointAbs * @see yfiles.layout.LayoutGraph#getTargetPointAbs * @see yfiles.layout.LayoutGraph#getLayout @@ -89147,9 +88601,9 @@ declare namespace system{ * In this case, the bounding box is the smallest paraxial rectangle which contains the given node. It is identical to the * node's bounds. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the node - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.algorithms.Rectangle2D} the bounding box of the node + * @param graph the graph that contains the node + * @param node the node + * @returns the bounding box of the node * @see yfiles.layout.LayoutGraph#getLayout * @static */ @@ -89162,13 +88616,13 @@ declare namespace system{ * as well as the source and target points of all edges. If node or edge labels should be included, it also contains their * boxes. {@link yfiles.layout.NodeHalo}s can also extend the bounding box if desired. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the given nodes and edges - * @param {yfiles.algorithms.INodeCursor} nodes the nodes to include in the bounding box - * @param {yfiles.algorithms.IEdgeCursor} edges the edges to include in the bounding box - * @param {boolean} includeNodeLabels true if labels of nodes should be included, false otherwise - * @param {boolean} includeEdgeLabels true if labels of edges should be included, false otherwise - * @param {boolean} [includeHalos=false] true if {@link yfiles.layout.NodeHalo}s should be included, false otherwise - * @returns {yfiles.algorithms.Rectangle2D} the bounding box of the given nodes and edges + * @param graph the graph that contains the given nodes and edges + * @param nodes the nodes to include in the bounding box + * @param edges the edges to include in the bounding box + * @param includeNodeLabels true if labels of nodes should be included, false otherwise + * @param includeEdgeLabels true if labels of edges should be included, false otherwise + * @param [includeHalos=false] true if {@link }s should be included, false otherwise + * @returns the bounding box of the given nodes and edges * @static */ static getBoundingBox(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.INodeCursor,edges:yfiles.algorithms.IEdgeCursor,includeNodeLabels:boolean,includeEdgeLabels:boolean,includeHalos?:boolean):yfiles.algorithms.Rectangle2D; @@ -89179,11 +88633,11 @@ declare namespace system{ * In this case, the bounding box is the smallest paraxial rectangle which contains the given nodes and the control points * as well as the source and target points of all edges. If labels should be included, it also contains their boxes. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the given nodes and edges - * @param {yfiles.algorithms.INodeCursor} nodes the nodes to include in the bounding box - * @param {yfiles.algorithms.IEdgeCursor} edges the edges to include in the bounding box - * @param {boolean} includeLabels true if labels of nodes and edges should be included, false otherwise - * @returns {yfiles.algorithms.Rectangle2D} the bounding box of the given nodes and edges + * @param graph the graph that contains the given nodes and edges + * @param nodes the nodes to include in the bounding box + * @param edges the edges to include in the bounding box + * @param includeLabels true if labels of nodes and edges should be included, false otherwise + * @returns the bounding box of the given nodes and edges * @see yfiles.layout.LayoutGraphUtilities#getBoundingBox * @static */ @@ -89194,10 +88648,10 @@ declare namespace system{ * In this case, the bounding box is the smallest paraxial rectangle which contains the given nodes and the control points * as well as the source and target points of all edges. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the nodes and edges - * @param {yfiles.algorithms.INodeCursor} nodes the nodes to include in the bounding box - * @param {yfiles.algorithms.IEdgeCursor} edges the edges to include in the bounding box - * @returns {yfiles.algorithms.Rectangle2D} the bounding box containing the given nodes and edges + * @param graph the graph that contains the nodes and edges + * @param nodes the nodes to include in the bounding box + * @param edges the edges to include in the bounding box + * @returns the bounding box containing the given nodes and edges * @see yfiles.layout.LayoutGraphUtilities#getBoundingBoxOfEdges * @see yfiles.layout.LayoutGraphUtilities#getBoundingBoxOfNodes * @static @@ -89209,9 +88663,9 @@ declare namespace system{ * In this case, the bounding box is the smallest paraxial rectangle which contains the control points as well as the * absolute coordinates of the source and target points of all given edges. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the edges - * @param {yfiles.algorithms.IEdgeCursor} edges the edges to include in the bounding box - * @returns {yfiles.algorithms.Rectangle2D} the bounding box containing the given edges + * @param graph the graph that contains the edges + * @param edges the edges to include in the bounding box + * @returns the bounding box containing the given edges * @see yfiles.layout.LayoutGraph#getSourcePointAbs * @see yfiles.layout.LayoutGraph#getTargetPointAbs * @see yfiles.layout.LayoutGraph#getLayout @@ -89223,17 +88677,17 @@ declare namespace system{ *

    * In this case, the bounding box is the smallest paraxial rectangle which contains the given nodes. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the nodes - * @param {yfiles.algorithms.INodeCursor} nodes the nodes to include in the bounding box - * @returns {yfiles.algorithms.Rectangle2D} the bounding box containing the given nodes + * @param graph the graph that contains the nodes + * @param nodes the nodes to include in the bounding box + * @returns the bounding box containing the given nodes * @see yfiles.layout.LayoutGraph#getLayout * @static */ static getBoundingBoxOfNodes(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.INodeCursor):yfiles.algorithms.Rectangle2D; /** * Returns the {@link yfiles.layout.ILabelLayoutFactory} for the given graph. - * @param {yfiles.layout.LayoutGraph} graph the graph - * @returns {yfiles.layout.ILabelLayoutFactory} the label factory of the graph + * @param graph the graph + * @returns the label factory of the graph * @static */ static getLabelFactory(graph:yfiles.layout.LayoutGraph):yfiles.layout.ILabelLayoutFactory; @@ -89244,13 +88698,13 @@ declare namespace system{ * The parameter describes the abstract position of the label within the specified model. The parameter must have been * generated by that model. *

    - * @param {yfiles.layout.IEdgeLabelLayoutModel} model the {@link yfiles.layout.IEdgeLabelLayoutModel} used for placing the label - * @param {yfiles.algorithms.YDimension} labelSize the size of the label that should be placed - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the edge's source node - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the edge's target node - * @param {Object} param the model parameter - * @returns {yfiles.algorithms.YPoint} the upper-left corner of the label's bounding box + * @param model the {@link } used for placing the label + * @param labelSize the size of the label that should be placed + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the edge's source node + * @param targetLayout the layout of the edge's target node + * @param param the model parameter + * @returns the upper-left corner of the label's bounding box * @see yfiles.layout.IEdgeLabelLayoutModel#getLabelPlacement * @see yfiles.algorithms.YOrientedRectangle#boundingBox * @static @@ -89263,11 +88717,11 @@ declare namespace system{ * The parameter describes the abstract position of the label within the specified model. The parameter must have been * generated by that model. *

    - * @param {yfiles.layout.INodeLabelLayoutModel} model the {@link yfiles.layout.INodeLabelLayoutModel} used for placing the label - * @param {yfiles.algorithms.YDimension} labelSize the size of the label - * @param {yfiles.layout.INodeLayout} nodeLayout the layout of the node to which the label belongs - * @param {Object} param the model parameter - * @returns {yfiles.algorithms.YPoint} the upper-left corner of the label's bounding box + * @param model the {@link } used for placing the label + * @param labelSize the size of the label + * @param nodeLayout the layout of the node to which the label belongs + * @param param the model parameter + * @returns the upper-left corner of the label's bounding box * @see yfiles.layout.INodeLabelLayoutModel#getLabelPlacement * @see yfiles.algorithms.YOrientedRectangle#boundingBox * @static @@ -89275,17 +88729,17 @@ declare namespace system{ static getLabelPlacement(model:yfiles.layout.INodeLabelLayoutModel,labelSize:yfiles.algorithms.YDimension,nodeLayout:yfiles.layout.INodeLayout,param:Object):yfiles.algorithms.YPoint; /** * Returns the distance between the centers of the two given nodes. - * @param {yfiles.layout.LayoutGraph} graph the graph to which the nodes belong - * @param {yfiles.algorithms.Node} node1 the first node - * @param {yfiles.algorithms.Node} node2 the second node - * @returns {number} the distance between the nodes' centers + * @param graph the graph to which the nodes belong + * @param node1 the first node + * @param node2 the second node + * @returns the distance between the nodes' centers * @static */ static getNodeDistance(graph:yfiles.layout.LayoutGraph,node1:yfiles.algorithms.Node,node2:yfiles.algorithms.Node):number; /** * Returns a {@link string} representation of all node positions in the graph. - * @param {yfiles.layout.LayoutGraph} graph the graph - * @returns {string} the {@link string} containing all node locations + * @param graph the graph + * @returns the {@link } containing all node locations * @see yfiles.layout.LayoutGraph#getLocation * @static */ @@ -89295,9 +88749,9 @@ declare namespace system{ *

    * The path starts at the source point, traverses through all control points and ends at the target point. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {number} the length of the edge's path + * @param graph the graph to which the edge belongs + * @param edge the edge + * @returns the length of the edge's path * @static */ static getPathLength(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):number; @@ -89311,11 +88765,11 @@ declare namespace system{ *

    * The nodes can be enlarged by a halo to check if the edge keeps some distance to the nodes. *

    - * @param {yfiles.layout.IEdgeLayout} edge the edge - * @param {yfiles.layout.INodeLayout} source the source of the edge - * @param {yfiles.layout.INodeLayout} target the target of the edge - * @param {number} halo the halo for the nodes - * @returns {boolean} true if the edge is outside the nodes, false otherwise + * @param edge the edge + * @param source the source of the edge + * @param target the target of the edge + * @param halo the halo for the nodes + * @returns true if the edge is outside the nodes, false otherwise * @static */ static isEdgeOutsideNodes(edge:yfiles.layout.IEdgeLayout,source:yfiles.layout.INodeLayout,target:yfiles.layout.INodeLayout,halo:number):boolean; @@ -89325,9 +88779,9 @@ declare namespace system{ * The edge is outside the nodes if its control points as well as the source and target point are not inside the nodes' * bounding boxes. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {boolean} true if the edge is outside the nodes, false otherwise + * @param graph the graph to which the edge belongs + * @param edge the edge + * @returns true if the edge is outside the nodes, false otherwise * @static */ static isEdgeOutsideNodes(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):boolean; @@ -89336,9 +88790,9 @@ declare namespace system{ *

    * The method only considers edges marked in the given {@link yfiles.algorithms.IDataProvider}. *

    - * @param {yfiles.layout.LayoutGraph} graph the underlying graph - * @param {yfiles.algorithms.IDataProvider} considerEdges the edges to consider - * @returns {boolean} true if most of the edges in the graph are routed octilinear, false otherwise + * @param graph the underlying graph + * @param considerEdges the edges to consider + * @returns true if most of the edges in the graph are routed octilinear, false otherwise * @static */ static isUsingOctilinearEdgeRoutes(graph:yfiles.layout.LayoutGraph,considerEdges:yfiles.algorithms.IDataProvider):boolean; @@ -89347,108 +88801,108 @@ declare namespace system{ *

    * The method only considers edges marked in the given {@link yfiles.algorithms.IDataProvider}. *

    - * @param {yfiles.layout.LayoutGraph} graph the underlying graph - * @param {yfiles.algorithms.IDataProvider} considerEdges the edges to consider - * @returns {boolean} true if most of the edges in the graph are routed orthogonally, false otherwise + * @param graph the underlying graph + * @param considerEdges the edges to consider + * @returns true if most of the edges in the graph are routed orthogonally, false otherwise * @static */ static isUsingOrthogonalEdgeRoutes(graph:yfiles.layout.LayoutGraph,considerEdges:yfiles.algorithms.IDataProvider):boolean; /** * Moves all control points of the given edge by the vector (dx,dy). - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Edge} edge the edge - * @param {number} dx the horizontal distance to move - * @param {number} dy the vertical distance to move + * @param graph the graph + * @param edge the edge + * @param dx the horizontal distance to move + * @param dy the vertical distance to move * @static */ static moveEdge(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge,dx:number,dy:number):void; /** * Moves the control points of all edges accessible through the given {@link yfiles.algorithms.IEdgeCursor} by the vector (dx,dy). - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.IEdgeCursor} edges the edges to be moved - * @param {number} dx the horizontal distance to move - * @param {number} dy the vertical distance to move + * @param graph the graph + * @param edges the edges to be moved + * @param dx the horizontal distance to move + * @param dy the vertical distance to move * @static */ static moveEdges(graph:yfiles.layout.LayoutGraph,edges:yfiles.algorithms.IEdgeCursor,dx:number,dy:number):void; /** * Moves the given node by the vector (dx,dy). - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Node} node the node - * @param {number} dx the horizontal distance to move - * @param {number} dy the vertical distance to move + * @param graph the graph + * @param node the node + * @param dx the horizontal distance to move + * @param dy the vertical distance to move * @static */ static moveNode(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node,dx:number,dy:number):void; /** * Moves all nodes accessible through the given {@link yfiles.algorithms.INodeCursor} by the vector (dx,dy). - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.INodeCursor} nodes the nodes to be moved - * @param {number} dx the horizontal distance to move - * @param {number} dy the vertical distance to move + * @param graph the graph + * @param nodes the nodes to be moved + * @param dx the horizontal distance to move + * @param dy the vertical distance to move * @static */ static moveNodes(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.INodeCursor,dx:number,dy:number):void; /** * Moves the subgraph induced by the nodes accessible through the given {@link yfiles.algorithms.INodeCursor} by the vector * (dx,dy). - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the subgraph - * @param {yfiles.algorithms.INodeCursor} nodes the nodes that induce the subgraph - * @param {number} dx the horizontal distance to move - * @param {number} dy the vertical distance to move + * @param graph the graph that contains the subgraph + * @param nodes the nodes that induce the subgraph + * @param dx the horizontal distance to move + * @param dy the vertical distance to move * @static */ static moveSubgraph(graph:yfiles.layout.LayoutGraph,nodes:yfiles.algorithms.INodeCursor,dx:number,dy:number):void; /** * Moves the subgraph induced by the edges accessible through the given {@link yfiles.algorithms.IEdgeCursor} by the vector * (dx,dy). - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the subgraph - * @param {yfiles.algorithms.IEdgeCursor} edges the edges that induce the subgraph - * @param {number} dx the horizontal distance to move - * @param {number} dy the vertical distance to move + * @param graph the graph that contains the subgraph + * @param edges the edges that induce the subgraph + * @param dx the horizontal distance to move + * @param dy the vertical distance to move * @static */ static moveSubgraphOfEdges(graph:yfiles.layout.LayoutGraph,edges:yfiles.algorithms.IEdgeCursor,dx:number,dy:number):void; /** * Checks whether or not the path of the given edge intersects the interior of a given rectangular area. - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the edge - * @param {yfiles.algorithms.Rectangle2D} rect the rectangular area to check for intersection - * @returns {boolean} true if the edge path intersects with the given rectangle, false otherwise + * @param graph the graph to which the edge belongs + * @param edge the edge + * @param rect the rectangular area to check for intersection + * @returns true if the edge path intersects with the given rectangle, false otherwise * @static */ static pathIntersectsRect(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge,rect:yfiles.algorithms.Rectangle2D):boolean; /** * Removes successive bends that have the same coordinates from the given edge. - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Edge} edge the edge + * @param graph the graph + * @param edge the edge * @static */ static removeDuplicateBends(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):void; /** * Removes successive bends that have the same coordinates from all edges in the graph. - * @param {yfiles.layout.LayoutGraph} graph the graph + * @param graph the graph * @static */ static removeDuplicateBends(graph:yfiles.layout.LayoutGraph):void; /** * Assigns a trivial path which has no control points to the specified edge. - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Edge} edge the edge - * @param {boolean} [resetPorts=true] true if the ports of the edge should be set to the center of the corresponding nodes, false otherwise + * @param graph the graph + * @param edge the edge + * @param [resetPorts=true] true if the ports of the edge should be set to the center of the corresponding nodes, false otherwise * @static */ static resetPath(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge,resetPorts?:boolean):void; /** * Assigns a trivial path which has no control points to all edges in the specified graph. - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {boolean} [resetPorts=true] true if the ports of the edges should be set to the center of the corresponding nodes, false otherwise + * @param graph the graph + * @param [resetPorts=true] true if the ports of the edges should be set to the center of the corresponding nodes, false otherwise * @static */ static resetPaths(graph:yfiles.layout.LayoutGraph,resetPorts?:boolean):void; /** * Sets the ports of all edges in the graph to the center of the nodes. - * @param {yfiles.layout.LayoutGraph} graph the graph + * @param graph the graph * @see yfiles.layout.LayoutGraph#setSourcePointRel * @see yfiles.layout.LayoutGraph#setTargetPointRel * @static @@ -89459,20 +88913,20 @@ declare namespace system{ *

    * The order of the control points is reversed and source and target point are swapped. *

    - * @param {yfiles.layout.IEdgeLayout} el the layout information of an edge + * @param el the layout information of an edge * @static */ static reverseEdgeLayout(el:yfiles.layout.IEdgeLayout):void; /** * Rounds the locations of the control points and ports of the given edge to integer values. - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the edge whose values are rounded + * @param graph the graph to which the edge belongs + * @param edge the edge whose values are rounded * @static */ static roundEdgeLayout(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):void; /** * Rounds coordinates and sizes in the layout of an entire graph to integer values. - * @param {yfiles.layout.LayoutGraph} graph the graph + * @param graph the graph * @see yfiles.layout.LayoutGraphUtilities#roundNodeLayout * @see yfiles.layout.LayoutGraphUtilities#roundEdgeLayout * @static @@ -89480,8 +88934,8 @@ declare namespace system{ static roundLayout(graph:yfiles.layout.LayoutGraph):void; /** * Rounds the location and size of the given node to integer values. - * @param {yfiles.layout.LayoutGraph} graph the graph to which the node belongs - * @param {yfiles.algorithms.Node} node the node whose values are rounded + * @param graph the graph to which the node belongs + * @param node the node whose values are rounded * @static */ static roundNodeLayout(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):void; @@ -89494,14 +88948,14 @@ declare namespace system{ * The position of the leading edge may be adjusted if there is an odd number of parallel edges. It will be moved from the * center to achieve a more symmetric port assignment. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Edge} leadingEdge the leading edge - * @param {yfiles.algorithms.EdgeList} edges the list of edges that will be aligned with the leading edge - * @param {number} lineDistance the distance between two edges - * @param {boolean} [adjustLeadingEdge=false] true if the leading edge should be adjusted if the size of list is odd, false otherwise - * @param {boolean} [joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise - * @param {number} [absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined - * @param {number} [relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined + * @param graph the graph + * @param leadingEdge the leading edge + * @param edges the list of edges that will be aligned with the leading edge + * @param lineDistance the distance between two edges + * @param [adjustLeadingEdge=false] true if the leading edge should be adjusted if the size of list is odd, false otherwise + * @param [joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise + * @param [absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined + * @param [relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined * @static */ static routeEdgesParallel(graph:yfiles.layout.LayoutGraph,leadingEdge:yfiles.algorithms.Edge,edges:yfiles.algorithms.EdgeList,lineDistance:number,adjustLeadingEdge?:boolean,joinEnds?:boolean,absJoinDistance?:number,relJoinDistance?:number):void; @@ -89515,14 +88969,14 @@ declare namespace system{ * center to achieve a more symmetric port assignment. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.layout.LayoutGraph} options.graph the graph - * @param {yfiles.algorithms.Edge} options.leadingEdge the leading edge - * @param {yfiles.algorithms.EdgeList} options.edges the list of edges that will be aligned with the leading edge - * @param {number} options.lineDistance the distance between two edges - * @param {boolean} [options.adjustLeadingEdge=false] true if the leading edge should be adjusted if the size of list is odd, false otherwise - * @param {boolean} [options.joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise - * @param {number} [options.absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined - * @param {number} [options.relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined + * @param options.graph the graph + * @param options.leadingEdge the leading edge + * @param options.edges the list of edges that will be aligned with the leading edge + * @param options.lineDistance the distance between two edges + * @param [options.adjustLeadingEdge=false] true if the leading edge should be adjusted if the size of list is odd, false otherwise + * @param [options.joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise + * @param [options.absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined + * @param [options.relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined * @static */ static routeEdgesParallel(options:{graph:yfiles.layout.LayoutGraph,leadingEdge:yfiles.algorithms.Edge,edges:yfiles.algorithms.EdgeList,lineDistance:number,adjustLeadingEdge?:boolean,joinEnds?:boolean,absJoinDistance?:number,relJoinDistance?:number}):void; @@ -89531,13 +88985,13 @@ declare namespace system{ *

    * The second edge gets a path that is parallel to the path of the first (leading) edge. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Edge} leadingEdge the leading edge - * @param {yfiles.algorithms.Edge} edge the edge to be adjusted - * @param {number} lineDistance the distance between the two edges - * @param {boolean} [joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise - * @param {number} [absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined - * @param {number} [relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined + * @param graph the graph + * @param leadingEdge the leading edge + * @param edge the edge to be adjusted + * @param lineDistance the distance between the two edges + * @param [joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise + * @param [absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined + * @param [relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined * @static */ static routeEdgesParallel(graph:yfiles.layout.LayoutGraph,leadingEdge:yfiles.algorithms.Edge,edge:yfiles.algorithms.Edge,lineDistance:number,joinEnds?:boolean,absJoinDistance?:number,relJoinDistance?:number):void; @@ -89547,13 +89001,13 @@ declare namespace system{ * The second edge gets a path that is parallel to the path of the first (leading) edge. *

    * @param {Object} options The parameters to pass. - * @param {yfiles.layout.LayoutGraph} options.graph the graph - * @param {yfiles.algorithms.Edge} options.leadingEdge the leading edge - * @param {yfiles.algorithms.Edge} options.edge the edge to be adjusted - * @param {number} options.lineDistance the distance between the two edges - * @param {boolean} [options.joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise - * @param {number} [options.absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined - * @param {number} [options.relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined + * @param options.graph the graph + * @param options.leadingEdge the leading edge + * @param options.edge the edge to be adjusted + * @param options.lineDistance the distance between the two edges + * @param [options.joinEnds=false] true if the edges should share their end points (the ones of the leading edge), false otherwise + * @param [options.absJoinDistance=0.0] the absolute distance between the end points and the beginning of the parallel segment routing if the ends are joined + * @param [options.relJoinDistance=0.0] the relative distance, measured relative to the length of the first/last segments if the ends are joined * @static */ static routeEdgesParallel(options:{graph:yfiles.layout.LayoutGraph,leadingEdge:yfiles.algorithms.Edge,edge:yfiles.algorithms.Edge,lineDistance:number,joinEnds?:boolean,absJoinDistance?:number,relJoinDistance?:number}):void; @@ -89563,8 +89017,8 @@ declare namespace system{ * For a self-loop edge, source and target are identical. The path of the self-loop will start at the top of the node, go * around the upper-left corner and end at the left side of the node. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to which the edge belongs - * @param {yfiles.algorithms.Edge} edge the self-loop + * @param graph the graph to which the edge belongs + * @param edge the self-loop * @static */ static routeSelfLoop(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):void; @@ -89588,14 +89042,13 @@ declare namespace system{ * as the core layout algorithm of {@link yfiles.layout.ComponentLayout}) or for the contents of group nodes (when used as the core * layout algorithm of {@link yfiles.layout.RecursiveGroupLayout}). *

    - * @class yfiles.layout.LayoutMultiplexer + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface LayoutMultiplexer extends yfiles.layout.LayoutStageBase{} export class LayoutMultiplexer { /** * Creates a new instance of {@link yfiles.layout.LayoutMultiplexer}. - * @constructor */ constructor(); /** @@ -89610,8 +89063,8 @@ declare namespace system{ * This method is called in {@link yfiles.layout.LayoutMultiplexer#applyLayout} and may be overridden to implement a different way * of selecting the {@link yfiles.layout.ILayoutAlgorithm layout algorithms}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.layout.ILayoutAlgorithm} the according layout algorithm + * @param graph the input graph + * @returns the according layout algorithm * @protected */ getCoreLayout(graph:yfiles.layout.LayoutGraph):yfiles.layout.ILayoutAlgorithm; @@ -89635,20 +89088,19 @@ declare namespace system{ * need to be considered anymore. *

    * @see yfiles.layout.MultiStageLayout - * @class yfiles.layout.LayoutStageBase + * @class * @implements {yfiles.layout.ILayoutStage} */ export interface LayoutStageBase extends Object,yfiles.layout.ILayoutStage{} export class LayoutStageBase { /** * Creates a new {@link yfiles.layout.ILayoutStage} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor + * @param [coreLayouter=null] The core layout algorithm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** * - * @param {yfiles.layout.LayoutGraph} graph + * @param graph * @abstract */ applyLayout(graph:yfiles.layout.LayoutGraph):void; @@ -89658,7 +89110,7 @@ declare namespace system{ * Overriding classes may call this method during {@link yfiles.layout.ILayoutAlgorithm#applyLayout} to delegate arranging the * graph to the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. They can add pre- and post-processing code before and after this call. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @protected */ applyLayoutCore(graph:yfiles.layout.LayoutGraph):void; @@ -89679,7 +89131,7 @@ declare namespace system{ * This {@link yfiles.layout.ILayoutStage} is especially useful to prevent that the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} has to handle zero-sized * nodes or nodes with negative sizes. *

    - * @class yfiles.layout.MinimumNodeSizeStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface MinimumNodeSizeStage extends yfiles.layout.LayoutStageBase{} @@ -89687,10 +89139,9 @@ declare namespace system{ /** * Creates a new {@link yfiles.layout.MinimumNodeSizeStage} instance using the given {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} along with a specific * minimum width and height for the nodes. - * @param {yfiles.layout.ILayoutAlgorithm} coreLayouter the core layout routine - * @param {number} minWidth the minimum width of nodes that should be enforced - * @param {number} minHeight the minimum height of nodes that should be enforced - * @constructor + * @param coreLayouter the core layout routine + * @param minWidth the minimum width of nodes that should be enforced + * @param minHeight the minimum height of nodes that should be enforced */ constructor(coreLayouter:yfiles.layout.ILayoutAlgorithm,minWidth:number,minHeight:number); /** @@ -89698,8 +89149,7 @@ declare namespace system{ *

    * The nodes will be enlarged to be at least 1 wide and 1 high. *

    - * @param {yfiles.layout.ILayoutAlgorithm} coreLayouter the core routine - * @constructor + * @param coreLayouter the core routine */ constructor(coreLayouter:yfiles.layout.ILayoutAlgorithm); static $class:yfiles.lang.Class; @@ -89750,14 +89200,13 @@ declare namespace system{ * In order to take effect, a stage that is not already activated by default needs to be activated using the corresponding * method, e.g., {@link yfiles.layout.MultiStageLayout#hideGroupsStageEnabled}. Vice versa, a stage can also be deactivated, if necessary. *

    - * @class yfiles.layout.MultiStageLayout + * @class * @implements {yfiles.layout.ILayoutAlgorithm} */ export interface MultiStageLayout extends Object,yfiles.layout.ILayoutAlgorithm{} export class MultiStageLayout { /** * Creates a new {@link yfiles.layout.MultiStageLayout} instance with default settings. - * @constructor */ constructor(); /** @@ -89767,7 +89216,7 @@ declare namespace system{ * prepended {@link yfiles.layout.ILayoutStage}s, all predefined stages, and all previously appended {@link yfiles.layout.ILayoutStage}s, * but just before the invocation of the {@link yfiles.layout.MultiStageLayout#applyLayoutCore layout algorithm}. *

    - * @param {yfiles.layout.ILayoutStage} stage the {@link yfiles.layout.ILayoutStage} instance to be added + * @param stage the {@link } instance to be added * @see yfiles.layout.MultiStageLayout#removeStage * @see yfiles.layout.MultiStageLayout#prependStage */ @@ -89777,7 +89226,7 @@ declare namespace system{ *

    * This method executes all activated {@link yfiles.layout.ILayoutStage}s in the layout pipeline as well as the {@link yfiles.layout.MultiStageLayout#applyLayoutCore layout algorithm}. *

    - * @param {yfiles.layout.LayoutGraph} layoutGraph the input graph + * @param layoutGraph the input graph * @see yfiles.layout.MultiStageLayout#appendStage * @see yfiles.layout.MultiStageLayout#prependStage * @see yfiles.layout.MultiStageLayout#applyLayoutCore @@ -89788,13 +89237,13 @@ declare namespace system{ *

    * This method should be implemented by subclasses in order to perform the layout routine of the layout algorithm. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @abstract */ applyLayoutCore(graph:yfiles.layout.LayoutGraph):void; /** * Checks the sizes of the nodes to be non-zero. - * @param {yfiles.layout.LayoutGraph} g The graph to check. + * @param g The graph to check. * @protected */ checkNodeSize(g:yfiles.layout.LayoutGraph):void; @@ -89810,7 +89259,7 @@ declare namespace system{ * all previously prepended {@link yfiles.layout.ILayoutStage}s, all predefined stages, and all appended * {@link yfiles.layout.ILayoutStage}s. *

    - * @param {yfiles.layout.ILayoutStage} stage the {@link yfiles.layout.ILayoutStage} instance to be added + * @param stage the {@link } instance to be added * @see yfiles.layout.MultiStageLayout#removeStage * @see yfiles.layout.MultiStageLayout#appendStage */ @@ -89821,7 +89270,7 @@ declare namespace system{ * This method can only remove {@link yfiles.layout.ILayoutStage}s that have been previously added using {@link yfiles.layout.MultiStageLayout#appendStage} * or {@link yfiles.layout.MultiStageLayout#prependStage}. Predefined {@link yfiles.layout.ILayoutStage}s can be deactivated separately. *

    - * @param {yfiles.layout.ILayoutStage} stage a {@link yfiles.layout.ILayoutStage} to be removed from the layout pipeline + * @param stage a {@link } to be removed from the layout pipeline * @see yfiles.layout.MultiStageLayout#prependStage * @see yfiles.layout.MultiStageLayout#appendStage * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled @@ -90006,7 +89455,7 @@ declare namespace system{ *
  • {@link yfiles.layout.RecursiveGroupLayout}
  • *
  • {@link yfiles.layout.ComponentLayout}
  • * - * @class yfiles.layout.NodeHalo + * @class * @final */ export interface NodeHalo extends Object{} @@ -90016,11 +89465,11 @@ declare namespace system{ *

    * The values must not be negative, {@link number#NaN} or {@link number#POSITIVE_INFINITY}. *

    - * @param {number} top the {@link yfiles.layout.NodeHalo} size at the top side of the node - * @param {number} left the {@link yfiles.layout.NodeHalo} size at the left side of the node - * @param {number} bottom the {@link yfiles.layout.NodeHalo} size at the bottom side of the node - * @param {number} right the {@link yfiles.layout.NodeHalo} size at the right side of the node - * @returns {yfiles.layout.NodeHalo} the newly created {@link yfiles.layout.NodeHalo} + * @param top the {@link } size at the top side of the node + * @param left the {@link } size at the left side of the node + * @param bottom the {@link } size at the bottom side of the node + * @param right the {@link } size at the right side of the node + * @returns the newly created {@link } * @throws {Stubs.Exceptions.ArgumentError} if one of the values is negative, {@link number#NaN} or {@link number#POSITIVE_INFINITY} * @static */ @@ -90030,8 +89479,8 @@ declare namespace system{ *

    * The value must not be negative, {@link number#NaN} or {@link number#POSITIVE_INFINITY}. *

    - * @param {number} value the halo size at each side of the node - * @returns {yfiles.layout.NodeHalo} the newly created {@link yfiles.layout.NodeHalo} + * @param value the halo size at each side of the node + * @returns the newly created {@link } * @throws {Stubs.Exceptions.ArgumentError} if the value is negative, {@link number#NaN} or {@link number#POSITIVE_INFINITY} * @static */ @@ -90041,9 +89490,9 @@ declare namespace system{ *

    * If no such {@link yfiles.layout.NodeHalo} is available, this method returns a {@link yfiles.layout.NodeHalo#ZERO_HALO}. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph containing the given node - * @param {yfiles.algorithms.Node} node the node whose {@link yfiles.layout.NodeHalo} will be determined - * @returns {yfiles.layout.NodeHalo} the {@link yfiles.layout.NodeHalo} of the given node if available, otherwise a {@link yfiles.layout.NodeHalo#ZERO_HALO} + * @param graph the graph containing the given node + * @param node the node whose {@link } will be determined + * @returns the {@link } of the given node if available, otherwise a {@link #ZERO_HALO} * @static */ static getHalo(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):yfiles.layout.NodeHalo; @@ -90055,9 +89504,9 @@ declare namespace system{ *

    * If the node does not have a {@link yfiles.layout.NodeHalo} assigned, this box has the same size as the node. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph containing the given node - * @param {yfiles.algorithms.Node} node the node whose {@link yfiles.layout.NodeHalo} will be determined - * @returns {yfiles.algorithms.YRectangle} a {@link yfiles.algorithms.YRectangle} instance with the bounds of the given node including its {@link yfiles.layout.NodeHalo} + * @param graph the graph containing the given node + * @param node the node whose {@link } will be determined + * @returns a {@link } instance with the bounds of the given node including its {@link } * @static */ static getHaloBox(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):yfiles.algorithms.YRectangle; @@ -90067,8 +89516,8 @@ declare namespace system{ * This method looks for a {@link yfiles.algorithms.IDataProvider} that has been registered with the given graph using * {@link yfiles.layout.NodeHalo#NODE_HALO_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {boolean} true if a {@link yfiles.algorithms.IDataProvider} has been registered with the according key, false otherwise + * @param graph the input graph + * @returns true if a {@link } has been registered with the according key, false otherwise * @static */ static hasHalos(graph:yfiles.layout.LayoutGraph):boolean; @@ -90114,7 +89563,7 @@ declare namespace system{ } /** * A {@link yfiles.layout.NodeLabelCandidate} describes one valid placement for a node label considering the label model. - * @class yfiles.layout.NodeLabelCandidate + * @class * @extends {yfiles.layout.LabelCandidate} */ export interface NodeLabelCandidate extends yfiles.layout.LabelCandidate{} @@ -90122,21 +89571,19 @@ declare namespace system{ /** * Creates a new instance of {@link yfiles.layout.NodeLabelCandidate} described by location, size, model parameter and internal * flag. - * @param {yfiles.algorithms.YPoint} pos the location of the upper left corner of the candidate - * @param {yfiles.algorithms.YDimension} size the size of the candidate - * @param {Object} param the parameters of the label model associated with this candidate - * @param {yfiles.layout.INodeLabelLayout} owner the label associated with the candidate - * @param {boolean} [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise - * @constructor + * @param pos the location of the upper left corner of the candidate + * @param size the size of the candidate + * @param param the parameters of the label model associated with this candidate + * @param owner the label associated with the candidate + * @param [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise */ constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,param:Object,owner:yfiles.layout.INodeLabelLayout,internal?:boolean); /** * Creates a new instance of {@link yfiles.layout.NodeLabelCandidate} described by its box, model parameter and internal flag. - * @param {yfiles.algorithms.YOrientedRectangle} labelBox the box that specifies the candidate's size and position - * @param {Object} param the parameters of the label model associated with this candidate - * @param {yfiles.layout.INodeLabelLayout} owner the label associated with the candidate - * @param {boolean} [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise - * @constructor + * @param labelBox the box that specifies the candidate's size and position + * @param param the parameters of the label model associated with this candidate + * @param owner the label associated with the candidate + * @param [internal=false] true if the candidate is allowed to overlap with its owner, false otherwise */ constructor(labelBox:yfiles.algorithms.YOrientedRectangle,param:Object,owner:yfiles.layout.INodeLabelLayout,internal?:boolean); static $class:yfiles.lang.Class; @@ -90155,15 +89602,14 @@ declare namespace system{ * in the graph with a {@link yfiles.lang.IComparable} value using a {@link yfiles.algorithms.IDataProvider} registered with the key {@link yfiles.layout.NormalizeGraphElementOrderStage#NODE_COMPARABLE_DP_KEY} * or {@link yfiles.layout.NormalizeGraphElementOrderStage#EDGE_COMPARABLE_DP_KEY}, respectively. *

    - * @class yfiles.layout.NormalizeGraphElementOrderStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface NormalizeGraphElementOrderStage extends yfiles.layout.LayoutStageBase{} export class NormalizeGraphElementOrderStage { /** * Creates a new {@link yfiles.layout.NormalizeGraphElementOrderStage} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor + * @param [coreLayouter=null] The core layout algorithm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -90176,9 +89622,9 @@ declare namespace system{ * with keys {@link yfiles.layout.NormalizeGraphElementOrderStage#NODE_COMPARABLE_DP_KEY} and {@link yfiles.layout.NormalizeGraphElementOrderStage#EDGE_COMPARABLE_DP_KEY} * and used for several layout calculations. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataMap} comparableNodeMap the map that will be filled with comparable values for the nodes - * @param {yfiles.algorithms.IDataMap} comparableEdgeMap the map that will be filled with comparable values for the edges + * @param graph the input graph + * @param comparableNodeMap the map that will be filled with comparable values for the nodes + * @param comparableEdgeMap the map that will be filled with comparable values for the edges * @static */ static fillComparableMapFromGraph(graph:yfiles.algorithms.Graph,comparableNodeMap:yfiles.algorithms.IDataMap,comparableEdgeMap:yfiles.algorithms.IDataMap):void; @@ -90255,28 +89701,25 @@ declare namespace system{ * If no {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} is specified, {@link yfiles.layout.OrientationLayout} can work alone. It will just change the * orientation of the layout without arranging nodes and edges. *

    - * @class yfiles.layout.OrientationLayout + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface OrientationLayout extends yfiles.layout.LayoutStageBase{} export class OrientationLayout { /** * Creates a new {@link yfiles.layout.OrientationLayout} instance using the given orientation. - * @param {yfiles.layout.LayoutOrientation} orientation the orientation specifier + * @param orientation the orientation specifier * @throws {Stubs.Exceptions.ArgumentError} if the specified orientation is unknown * @see yfiles.layout.OrientationLayout#orientation - * @constructor */ constructor(orientation:yfiles.layout.LayoutOrientation); /** * Creates a new {@link yfiles.layout.OrientationLayout} instance using the given {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} coreLayouter the core layout routine - * @constructor + * @param coreLayouter the core layout routine */ constructor(coreLayouter:yfiles.layout.ILayoutAlgorithm); /** * Creates a new {@link yfiles.layout.OrientationLayout} instance with default settings. - * @constructor */ constructor(); /** @@ -90289,7 +89732,7 @@ declare namespace system{ * This method is called by {@link yfiles.layout.OrientationLayout#applyLayout} after invoking the * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. It may be overridden to extend the orientation change to custom layout features. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @see yfiles.layout.OrientationLayout#prepareOrientationChange */ completeOrientationChange(graph:yfiles.layout.LayoutGraph):void; @@ -90298,8 +89741,8 @@ declare namespace system{ *

    * The point is transformed from {@link yfiles.layout.LayoutOrientation#TOP_TO_BOTTOM} orientation to the desired orientation. *

    - * @param {yfiles.algorithms.YPoint} point the calculated point - * @returns {yfiles.algorithms.YPoint} the transformed point + * @param point the calculated point + * @returns the transformed point * @see yfiles.layout.OrientationLayout#completeOrientationChange */ completeTransform(point:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; @@ -90308,8 +89751,8 @@ declare namespace system{ *

    * The transform will correspond to the currently set orientation. *

    - * @param {yfiles.algorithms.Insets} insets the original insets - * @returns {yfiles.algorithms.Insets} the oriented insets + * @param insets the original insets + * @returns the oriented insets * @see yfiles.layout.OrientationLayout#orientation */ createOrientedInsets(insets:yfiles.algorithms.Insets):yfiles.algorithms.Insets; @@ -90318,8 +89761,8 @@ declare namespace system{ *

    * The transform will correspond to the currently set orientation. *

    - * @param {yfiles.layout.NodeHalo} halo the original {@link yfiles.layout.NodeHalo} - * @returns {yfiles.layout.NodeHalo} the oriented {@link yfiles.layout.NodeHalo} + * @param halo the original {@link } + * @returns the oriented {@link } * @see yfiles.layout.OrientationLayout#orientation */ createOrientedNodeHalo(halo:yfiles.layout.NodeHalo):yfiles.layout.NodeHalo; @@ -90328,8 +89771,8 @@ declare namespace system{ *

    * The transform will correspond to the currently set orientation. *

    - * @param {yfiles.algorithms.YDimension} nodeSize the original node size - * @returns {yfiles.algorithms.YDimension} the oriented node size + * @param nodeSize the original node size + * @returns the oriented node size * @see yfiles.layout.OrientationLayout#orientation */ createOrientedNodeSize(nodeSize:yfiles.algorithms.YDimension):yfiles.algorithms.YDimension; @@ -90339,8 +89782,8 @@ declare namespace system{ *

    * Horizontal orientations get mirrored at the x-axis while vertical orientations are mirrored at the y-axis. *

    - * @param {yfiles.layout.LayoutOrientation} orientation the layout orientation for which to check the mirror state - * @returns {boolean} true if the layout algorithm will mirror the graph at the corresponding axis for the given layout orientation, false + * @param orientation the layout orientation for which to check the mirror state + * @returns true if the layout algorithm will mirror the graph at the corresponding axis for the given layout orientation, false * otherwise * @see yfiles.layout.OrientationLayout#orientation * @see yfiles.layout.OrientationLayout#mirrorMode @@ -90356,7 +89799,7 @@ declare namespace system{ * This method is called by {@link yfiles.layout.OrientationLayout#applyLayout} before invoking the * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. It might be overridden to extend the preparations to custom layout features. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @see yfiles.layout.OrientationLayout#completeOrientationChange */ prepareOrientationChange(graph:yfiles.layout.LayoutGraph):void; @@ -90365,8 +89808,8 @@ declare namespace system{ *

    * The point is transformed so it matches the {@link yfiles.layout.LayoutOrientation#TOP_TO_BOTTOM} orientation. *

    - * @param {yfiles.algorithms.YPoint} point the original point - * @returns {yfiles.algorithms.YPoint} the transformed point + * @param point the original point + * @returns the transformed point * @see yfiles.layout.OrientationLayout#prepareOrientationChange */ prepareTransform(point:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; @@ -90376,9 +89819,9 @@ declare namespace system{ * This method is called by {@link yfiles.layout.OrientationLayout#prepareOrientationChange} and {@link yfiles.layout.OrientationLayout#completeOrientationChange} * to get the according point location. *

    - * @param {yfiles.algorithms.YPoint} point the original/calculated point - * @param {boolean} prepare true if this method is called during preparation, false if it is called during completion - * @returns {yfiles.algorithms.YPoint} the transformed point + * @param point the original/calculated point + * @param prepare true if this method is called during preparation, false if it is called during completion + * @returns the transformed point * @see yfiles.layout.OrientationLayout#prepareOrientationChange * @see yfiles.layout.OrientationLayout#completeOrientationChange * @see yfiles.layout.OrientationLayout#prepareTransform @@ -90447,7 +89890,7 @@ declare namespace system{ * @see yfiles.layout.IntersectionCalculatorKeys#SOURCE_INTERSECTION_CALCULATOR_DP_KEY * @see yfiles.layout.IntersectionCalculatorKeys#TARGET_INTERSECTION_CALCULATOR_DP_KEY * @see yfiles.layout.PortConstraint - * @class yfiles.layout.PortCalculator + * @class * @extends {yfiles.layout.LayoutStageBase} * @implements {yfiles.layout.ILayoutStage} */ @@ -90455,12 +89898,11 @@ declare namespace system{ export class PortCalculator { /** * Creates a new {@link yfiles.layout.PortCalculator} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @constructor */ constructor(); /** * Performs the actual port calculation on the specified graph instance. - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @protected */ calculatePorts(graph:yfiles.layout.LayoutGraph):void; @@ -90470,11 +89912,11 @@ declare namespace system{ * This implementation uses {@link yfiles.layout.PortCalculator#Eps} to add some tolerance to the comparison. It is called by {@link yfiles.layout.PortCalculator#calculatePorts} * and may be overridden to change the accuracy/tolerance of the comparison. *

    - * @param {number} x1 the x-coordinate of the first point - * @param {number} y1 the y-coordinate of the first point - * @param {number} x2 the x-coordinate of the second point - * @param {number} y2 the y-coordinate of the second point - * @returns {boolean} true if both points are considered equal, false otherwise + * @param x1 the x-coordinate of the first point + * @param y1 the y-coordinate of the first point + * @param x2 the x-coordinate of the second point + * @param y2 the y-coordinate of the second point + * @returns true if both points are considered equal, false otherwise * @see yfiles.layout.PortCalculator#calculatePorts * @see yfiles.layout.PortCalculator#Eps * @protected @@ -90547,42 +89989,42 @@ declare namespace system{ * them are {@link yfiles.hierarchic.HierarchicLayout}, {@link yfiles.router.EdgeRouter}, {@link yfiles.router.ChannelEdgeRouter} and * {@link yfiles.router.BusRouter}. *

    - * @class yfiles.layout.PortCandidate + * @class */ export interface PortCandidate extends Object{} export class PortCandidate { /** * Factory method that creates a fixed {@link yfiles.layout.PortCandidate} instance with the given cost of usage, direction and * offset values. - * @param {yfiles.layout.PortDirections} directionMask any combination of the default direction specifiers - * @param {number} xOffset the X-offset relative to the center of the node - * @param {number} yOffset the Y-offset relative to the center of the node - * @param {number} [cost=0.0] the penalty cost for using this {@link yfiles.layout.PortCandidate} instance - * @returns {yfiles.layout.PortCandidate} a new {@link yfiles.layout.PortCandidate} instance + * @param directionMask any combination of the default direction specifiers + * @param xOffset the X-offset relative to the center of the node + * @param yOffset the Y-offset relative to the center of the node + * @param [cost=0.0] the penalty cost for using this {@link } instance + * @returns a new {@link } instance * @static */ static createCandidate(xOffset:number,yOffset:number,directionMask:yfiles.layout.PortDirections,cost?:number):yfiles.layout.PortCandidate; /** * Factory method that creates a free {@link yfiles.layout.PortCandidate} instance with the given direction and cost of usage. - * @param {yfiles.layout.PortDirections} directionMask any combination of the default direction specifiers - * @param {number} cost the penalty cost for using this {@link yfiles.layout.PortCandidate} - * @returns {yfiles.layout.PortCandidate} a new {@link yfiles.layout.PortCandidate} instance + * @param directionMask any combination of the default direction specifiers + * @param cost the penalty cost for using this {@link } + * @returns a new {@link } instance * @static */ static createCandidate(directionMask:yfiles.layout.PortDirections,cost:number):yfiles.layout.PortCandidate; /** * Factory method that returns a free {@link yfiles.layout.PortCandidate} instance with zero cost of usage and the direction * specified by the {@link yfiles.layout.PortConstraint#side side} of the given {@link yfiles.layout.PortConstraint}. - * @param {yfiles.layout.PortConstraint} fromPortConstraint the {@link yfiles.layout.PortConstraint} whose {@link yfiles.layout.PortConstraint#side side} should be used as direction - * @returns {yfiles.layout.PortCandidate} a new {@link yfiles.layout.PortCandidate} instance + * @param fromPortConstraint the {@link } whose {@link #side side} should be used as direction + * @returns a new {@link } instance * @static */ static createCandidate(fromPortConstraint:yfiles.layout.PortConstraint):yfiles.layout.PortCandidate; /** * Factory method that creates a free {@link yfiles.layout.PortCandidate} instance with the given direction and zero cost of * usage. - * @param {yfiles.layout.PortDirections} directionMask any combination of the default direction specifiers - * @returns {yfiles.layout.PortCandidate} a new {@link yfiles.layout.PortCandidate} instance + * @param directionMask any combination of the default direction specifiers + * @returns a new {@link } instance * @static */ static createCandidate(directionMask:yfiles.layout.PortDirections):yfiles.layout.PortCandidate; @@ -90592,8 +90034,8 @@ declare namespace system{ * If the direction mask is not required to be calculated with respect to the actual {@link yfiles.layout.OrientationLayout#orientation layout orientation}, {@link yfiles.layout.PortCandidate#direction} should be used * instead. *

    - * @param {yfiles.layout.LayoutOrientation} layoutOrientation - * @returns {yfiles.layout.PortDirections} the direction of this {@link yfiles.layout.PortCandidate} with respect to the given layout orientation + * @param layoutOrientation + * @returns the direction of this {@link } with respect to the given layout orientation * @see yfiles.layout.PortCandidate#direction */ getDirectionForLayoutOrientation(layoutOrientation:yfiles.layout.LayoutOrientation):yfiles.layout.PortDirections; @@ -90604,9 +90046,9 @@ declare namespace system{ * The X-offset encodes the horizontal distance of the port relative to the center of a node. If the {@link yfiles.layout.PortCandidate} * is not {@link yfiles.layout.PortCandidate#fixed fixed} (i.e., free), the X-offset is equal to zero. *

    - * @param {yfiles.layout.LayoutOrientation} layoutOrientation the layout orientation - * @param {yfiles.layout.MirrorModes} mirrorMask the mirror mask - * @returns {number} the X-offset of the port with respect to the given orientation and mirror mask + * @param layoutOrientation the layout orientation + * @param mirrorMask the mirror mask + * @returns the X-offset of the port with respect to the given orientation and mirror mask */ getXOffsetForLayoutOrientation(layoutOrientation:yfiles.layout.LayoutOrientation,mirrorMask:yfiles.layout.MirrorModes):number; /** @@ -90616,8 +90058,8 @@ declare namespace system{ * The X-offset encodes the horizontal distance of the port relative to the center of a node. If the {@link yfiles.layout.PortCandidate} * is not {@link yfiles.layout.PortCandidate#fixed fixed} (i.e., free), the X-offset is equal to zero. *

    - * @param {yfiles.layout.LayoutOrientation} layoutOrientation the layout orientation - * @returns {number} the X-offset of the {@link yfiles.layout.PortCandidate} with respect to the given layout orientation + * @param layoutOrientation the layout orientation + * @returns the X-offset of the {@link } with respect to the given layout orientation */ getXOffsetForLayoutOrientation(layoutOrientation:yfiles.layout.LayoutOrientation):number; /** @@ -90627,9 +90069,9 @@ declare namespace system{ * The Y-offset encodes the vertical distance of the port relative to the center of a node. If the {@link yfiles.layout.PortCandidate} * is not {@link yfiles.layout.PortCandidate#fixed fixed} (i.e., free), the Y-offset is equal to zero. *

    - * @param {yfiles.layout.LayoutOrientation} layoutOrientation the layout orientation - * @param {yfiles.layout.MirrorModes} mirrorMask the mirror mask - * @returns {number} the Y-offset of the {@link yfiles.layout.PortCandidate} with respect to the given orientation and mirror mask + * @param layoutOrientation the layout orientation + * @param mirrorMask the mirror mask + * @returns the Y-offset of the {@link } with respect to the given orientation and mirror mask */ getYOffsetForLayoutOrientation(layoutOrientation:yfiles.layout.LayoutOrientation,mirrorMask:yfiles.layout.MirrorModes):number; /** @@ -90639,14 +90081,14 @@ declare namespace system{ * The Y-offset encodes the vertical distance of the port relative to the center of a node. If the {@link yfiles.layout.PortCandidate} * is not {@link yfiles.layout.PortCandidate#fixed fixed} (i.e., free), the Y-offset is equal to zero. *

    - * @param {yfiles.layout.LayoutOrientation} layoutOrientation the layout orientation - * @returns {number} the Y-offset of the {@link yfiles.layout.PortCandidate} with respect to the given layout orientation + * @param layoutOrientation the layout orientation + * @returns the Y-offset of the {@link } with respect to the given layout orientation */ getYOffsetForLayoutOrientation(layoutOrientation:yfiles.layout.LayoutOrientation):number; /** * Returns whether or not this {@link yfiles.layout.PortCandidate} lies in the given direction. - * @param {yfiles.layout.PortDirections} directionMask one of the default direction specifiers - * @returns {boolean} true if this {@link yfiles.layout.PortCandidate} lies in the given direction, false otherwise + * @param directionMask one of the default direction specifiers + * @returns true if this {@link } lies in the given direction, false otherwise */ isInDirection(directionMask:yfiles.layout.PortDirections):boolean; /** @@ -90657,7 +90099,7 @@ declare namespace system{ *

    * If this {@link yfiles.layout.PortCandidate} is {@link yfiles.layout.PortCandidate#fixed fixed}, the resulting {@link yfiles.layout.PortConstraint} will be {@link yfiles.layout.PortConstraint#strong strong}. *

    - * @returns {yfiles.layout.PortConstraint} a {@link yfiles.layout.PortConstraint} that matches this {@link yfiles.layout.PortCandidate} + * @returns a {@link } that matches this {@link } */ toPortConstraint():yfiles.layout.PortConstraint; /** @@ -90670,19 +90112,19 @@ declare namespace system{ *

    * If this {@link yfiles.layout.PortCandidate} is {@link yfiles.layout.PortCandidate#fixed fixed}, the resulting {@link yfiles.layout.PortConstraint} will be {@link yfiles.layout.PortConstraint#strong strong}. *

    - * @param {yfiles.layout.LayoutOrientation} layoutOrientation - * @returns {yfiles.layout.PortConstraint} a {@link yfiles.layout.PortConstraint} that matches this {@link yfiles.layout.PortCandidate} with respect to the given orientation + * @param layoutOrientation + * @returns a {@link } that matches this {@link } with respect to the given orientation */ toPortConstraintForLayoutOrientation(layoutOrientation:yfiles.layout.LayoutOrientation):yfiles.layout.PortConstraint; /** - * Data provider key for specifying source port candidates for each edge. + * Data provider key for specifying source port candidates for each edge * @const * @static * @type {yfiles.algorithms.EdgeDpKey.>} */ static SOURCE_PORT_CANDIDATE_COLLECTION_DP_KEY:yfiles.algorithms.EdgeDpKey>; /** - * Data provider key for specifying target port candidates for each edge. + * Data provider key for specifying target port candidates for each edge * @const * @static * @type {yfiles.algorithms.EdgeDpKey.>} @@ -90748,27 +90190,27 @@ declare namespace system{ export interface IPortCandidateMatcher extends Object{ /** * Returns the next best matching {@link yfiles.layout.IPortCandidateSetEntry} for the given parameters. - * @param {yfiles.algorithms.Edge} edge the edge for which to find a candidate - * @param {boolean} source true if the given edge connects to its source node, false otherwise - * @param {number} xOffset the preferred X-offset of the port relative to the center of the node - * @param {number} yOffset the preferred Y-offset of the port relative to the center of the node - * @param {yfiles.layout.PortDirections} directionMask any combination of default directions defined in {@link yfiles.layout.PortCandidate} - * @returns {yfiles.layout.IPortCandidateSetEntry} a matching {@link yfiles.layout.IPortCandidateSetEntry} instance + * @param edge the edge for which to find a candidate + * @param source true if the given edge connects to its source node, false otherwise + * @param xOffset the preferred X-offset of the port relative to the center of the node + * @param yOffset the preferred Y-offset of the port relative to the center of the node + * @param directionMask any combination of default directions defined in {@link } + * @returns a matching {@link } instance * @abstract */ findMatchingCandidate(edge:yfiles.algorithms.Edge,source:boolean,xOffset:number,yOffset:number,directionMask:yfiles.layout.PortDirections):yfiles.layout.IPortCandidateSetEntry; /** * Returns the next best matching {@link yfiles.layout.IPortCandidateSetEntry} for the given parameters. - * @param {yfiles.algorithms.Edge} edge the edge for which to find a candidate - * @param {boolean} source true if the given edge connects to its source node, false otherwise - * @param {yfiles.layout.PortDirections} directionMask any combination of default directions defined in {@link yfiles.layout.PortCandidate} - * @returns {yfiles.layout.IPortCandidateSetEntry} a matching {@link yfiles.layout.IPortCandidateSetEntry} instance + * @param edge the edge for which to find a candidate + * @param source true if the given edge connects to its source node, false otherwise + * @param directionMask any combination of default directions defined in {@link } + * @returns a matching {@link } instance * @abstract */ findMatchingCandidate(edge:yfiles.algorithms.Edge,source:boolean,directionMask:yfiles.layout.PortDirections):yfiles.layout.IPortCandidateSetEntry; /** * Returns the next best matching {@link yfiles.layout.IPortCandidateSetEntry}. - * @returns {yfiles.layout.IPortCandidateSetEntry} a matching {@link yfiles.layout.IPortCandidateSetEntry} instance + * @returns a matching {@link } instance * @abstract */ findMatchingCandidate():yfiles.layout.IPortCandidateSetEntry; @@ -90833,16 +90275,15 @@ declare namespace system{ * them are {@link yfiles.hierarchic.HierarchicLayout}, {@link yfiles.router.EdgeRouter}, {@link yfiles.router.ChannelEdgeRouter} and * {@link yfiles.router.BusRouter}. *

    - * @class yfiles.layout.PortCandidateSet + * @class */ export interface PortCandidateSet extends Object{} export class PortCandidateSet { /** * Creates a new empty {@link yfiles.layout.PortCandidateSet} instance. *

    - * Addition of {@link yfiles.layout.PortCandidate}s to this {@link yfiles.layout.PortCandidateSet set} can be performed using Add or {@link yfiles.layout.PortCandidateSet#add}. + * Addition of {@link yfiles.layout.PortCandidate}s to this {@link yfiles.layout.PortCandidateSet set} can be performed using {@link yfiles.layout.PortCandidateSet#add}. *

    - * @constructor */ constructor(); /** @@ -90854,8 +90295,8 @@ declare namespace system{ *

    * The capacity must be greater than zero. *

    - * @param {yfiles.layout.PortCandidate} p the {@link yfiles.layout.PortCandidate} to add - * @param {number} [connections=1] the capacity of the given port + * @param p the {@link } to add + * @param [connections=1] the capacity of the given port * @throws {Stubs.Exceptions.ArgumentError} if the given capacity is less than or equal to zero */ add(p:yfiles.layout.PortCandidate,connections?:number):void; @@ -90868,7 +90309,7 @@ declare namespace system{ *

    * This method may be overridden to support custom implementations of {@link yfiles.layout.IPortCandidateMatcher}. *

    - * @returns {yfiles.layout.IPortCandidateMatcher} a new {@link yfiles.layout.IPortCandidateMatcher} instance + * @returns a new {@link } instance */ createMatcher():yfiles.layout.IPortCandidateMatcher; /** @@ -90879,12 +90320,12 @@ declare namespace system{ *

    * This method may be overridden to customize the calculation of the cost of usage of an {@link yfiles.layout.IPortCandidateSetEntry entry}. *

    - * @param {yfiles.layout.IPortCandidateSetEntry} entry the entry for which the cost is computed - * @param {yfiles.algorithms.Edge} edge the edge that will connect to the {@link yfiles.layout.PortCandidate} associated with the entry - * @param {boolean} source true if the given edge connects to its source node, false otherwise - * @param {number} xOffset the preferred X-offset of the port relative to the center of the node - * @param {number} yOffset the preferred Y-offset of the port relative to the center of the node - * @returns {number} the penalty cost for the usage of the given {@link yfiles.layout.IPortCandidateSetEntry} + * @param entry the entry for which the cost is computed + * @param edge the edge that will connect to the {@link } associated with the entry + * @param source true if the given edge connects to its source node, false otherwise + * @param xOffset the preferred X-offset of the port relative to the center of the node + * @param yOffset the preferred Y-offset of the port relative to the center of the node + * @returns the penalty cost for the usage of the given {@link } */ getCost(entry:yfiles.layout.IPortCandidateSetEntry,edge:yfiles.algorithms.Edge,source:boolean,xOffset:number,yOffset:number):number; /** @@ -90895,19 +90336,19 @@ declare namespace system{ *

    * This method may be overridden to customize the calculation of the priority of {@link yfiles.layout.IPortCandidateSetEntry entries}. *

    - * @param {yfiles.layout.IPortCandidateSetEntry} entry the entry for which the cost is computed - * @param {yfiles.algorithms.Edge} edge the edge that will connect to the {@link yfiles.layout.PortCandidate} associated with the entry - * @param {boolean} source true if the given edge connects to its source node, false otherwise - * @returns {number} the priority of the given {@link yfiles.layout.IPortCandidateSetEntry} + * @param entry the entry for which the cost is computed + * @param edge the edge that will connect to the {@link } associated with the entry + * @param source true if the given edge connects to its source node, false otherwise + * @returns the priority of the given {@link } */ getPriority(entry:yfiles.layout.IPortCandidateSetEntry,edge:yfiles.algorithms.Edge,source:boolean):number; /** * Removes the given {@link yfiles.layout.IPortCandidateSetEntry entry} from the list of candidate entries. - * @param {yfiles.layout.IPortCandidateSetEntry} entry the entry to remove + * @param entry the entry to remove */ remove(entry:yfiles.layout.IPortCandidateSetEntry):void; /** - * Data provider key for specifying a port candidate set for each node. + * Data provider key for specifying a port candidate set for each node * @const * @static * @type {yfiles.algorithms.NodeDpKey.} @@ -90962,7 +90403,7 @@ declare namespace system{ * and {@link yfiles.router.BusRouter}. *

    * @see yfiles.layout.PortConstraintKeys - * @class yfiles.layout.PortConstraint + * @class */ export interface PortConstraint extends Object{} export class PortConstraint { @@ -90973,9 +90414,9 @@ declare namespace system{ * If the {@link yfiles.layout.PortConstraint} is strong, the layout or routing algorithm should use the port coordinates of this * constraint. *

    - * @param {yfiles.layout.PortSide} side one of the default side specifiers - * @param {boolean} [strong=false] true if this {@link yfiles.layout.PortConstraint} is strong, false otherwise - * @returns {yfiles.layout.PortConstraint} a new {@link yfiles.layout.PortConstraint} instance + * @param side one of the default side specifiers + * @param [strong=false] true if this {@link } is strong, false otherwise + * @returns a new {@link } instance * @throws {Stubs.Exceptions.ArgumentError} if an unknown side is given * @static */ @@ -90986,9 +90427,9 @@ declare namespace system{ * To retrieve the {@link yfiles.algorithms.IDataProvider} that holds information about source {@link yfiles.layout.PortConstraint}s, key {@link yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY} * is used. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} e the edge - * @returns {yfiles.layout.PortConstraint} the source {@link yfiles.layout.PortConstraint} of the given edge or null if there is none + * @param graph the input graph + * @param e the edge + * @returns the source {@link } of the given edge or null if there is none * @static */ static getSPC(graph:yfiles.layout.LayoutGraph,e:yfiles.algorithms.Edge):yfiles.layout.PortConstraint; @@ -90998,9 +90439,9 @@ declare namespace system{ * To retrieve the {@link yfiles.algorithms.IDataProvider} that holds information about target {@link yfiles.layout.PortConstraint}s, key {@link yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY} * is used. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} e the edge - * @returns {yfiles.layout.PortConstraint} the target {@link yfiles.layout.PortConstraint} of the given edge or null if there is none + * @param graph the input graph + * @param e the edge + * @returns the target {@link } of the given edge or null if there is none * @static */ static getTPC(graph:yfiles.layout.LayoutGraph,e:yfiles.algorithms.Edge):yfiles.layout.PortConstraint; @@ -91011,9 +90452,9 @@ declare namespace system{ * {@link yfiles.layout.PortConstraint}s, keys {@link yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY} and {@link yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY} * are used. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} e the edge - * @returns {boolean} true if the edge has source or target {@link yfiles.layout.PortConstraint}s, false otherwise + * @param graph the input graph + * @param e the edge + * @returns true if the edge has source or target {@link }s, false otherwise * @static */ static hasPC(graph:yfiles.layout.LayoutGraph,e:yfiles.algorithms.Edge):boolean; @@ -91023,9 +90464,9 @@ declare namespace system{ * To retrieve the {@link yfiles.algorithms.IDataProvider} that holds information about source {@link yfiles.layout.PortConstraint}s, key {@link yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY} * is used. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} e the edge - * @returns {boolean} true if the edge has source {@link yfiles.layout.PortConstraint}s, false otherwise + * @param graph the input graph + * @param e the edge + * @returns true if the edge has source {@link }s, false otherwise * @static */ static hasSPC(graph:yfiles.layout.LayoutGraph,e:yfiles.algorithms.Edge):boolean; @@ -91035,9 +90476,9 @@ declare namespace system{ * To retrieve the {@link yfiles.algorithms.IDataProvider} that holds information about target {@link yfiles.layout.PortConstraint}s, key {@link yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY} * is used. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} e the edge - * @returns {boolean} true if the edge has target {@link yfiles.layout.PortConstraint}s, false otherwise + * @param graph the input graph + * @param e the edge + * @returns true if the edge has target {@link }s, false otherwise * @static */ static hasTPC(graph:yfiles.layout.LayoutGraph,e:yfiles.algorithms.Edge):boolean; @@ -91084,13 +90525,12 @@ declare namespace system{ /** * The {@link yfiles.layout.PortConstraintConfigurator} provides the possibility to create * {@link yfiles.layout.PortConstraint}s according to the initial connecting side of an edge. - * @class yfiles.layout.PortConstraintConfigurator + * @class */ export interface PortConstraintConfigurator extends Object{} export class PortConstraintConfigurator { /** * Creates a new {@link yfiles.layout.PortConstraintConfigurator} instance. - * @constructor */ constructor(); /** @@ -91098,29 +90538,29 @@ declare namespace system{ *

    * The side of the constraint is set up according to the current drawing of the edge within the given graph. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the edge - * @param {boolean} source true if a source {@link yfiles.layout.PortConstraint} for the given edge will be created, false for a target - * {@link yfiles.layout.PortConstraint} - * @param {boolean} strong true if a strong {@link yfiles.layout.PortConstraint} is created, false for a weak {@link yfiles.layout.PortConstraint} - * @returns {yfiles.layout.PortConstraint} the {@link yfiles.layout.PortConstraint} for the given edge whose side is retrieved from the initial drawing + * @param graph the input graph + * @param edge the edge + * @param source true if a source {@link } for the given edge will be created, false for a target + * {@link } + * @param strong true if a strong {@link } is created, false for a weak {@link } + * @returns the {@link } for the given edge whose side is retrieved from the initial drawing */ createPortConstraintFromSketch(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge,source:boolean,strong:boolean):yfiles.layout.PortConstraint; /** * Creates {@link yfiles.layout.PortConstraint}s for some edges of the given graph. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.IEdgeCursor} ec the {@link yfiles.algorithms.IEdgeCursor} that provides access to the edges for which to create {@link yfiles.layout.PortConstraint}s - * @param {yfiles.algorithms.IEdgeMap} spcMap the {@link yfiles.algorithms.IEdgeMap} that will be used for storing the source {@link yfiles.layout.PortConstraint}s of the edges - * @param {boolean} strongSP true if strong source {@link yfiles.layout.PortConstraint}s should be assigned, false otherwise - * @param {yfiles.algorithms.IEdgeMap} tpcMap the {@link yfiles.algorithms.IEdgeMap} that will be used for storing the target {@link yfiles.layout.PortConstraint}s of the edges - * @param {boolean} strongTP true if strong target {@link yfiles.layout.PortConstraint}s should be assigned, false otherwise + * @param graph the input graph + * @param ec the {@link } that provides access to the edges for which to create {@link }s + * @param spcMap the {@link } that will be used for storing the source {@link }s of the edges + * @param strongSP true if strong source {@link }s should be assigned, false otherwise + * @param tpcMap the {@link } that will be used for storing the target {@link }s of the edges + * @param strongTP true if strong target {@link }s should be assigned, false otherwise */ createPortConstraintsFromSketch(graph:yfiles.layout.LayoutGraph,ec:yfiles.algorithms.IEdgeCursor,spcMap:yfiles.algorithms.IEdgeMap,strongSP:boolean,tpcMap:yfiles.algorithms.IEdgeMap,strongTP:boolean):void; /** * Creates weak {@link yfiles.layout.PortConstraint}s for all edges of the given graph. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.IEdgeMap} spcMap the {@link yfiles.algorithms.IEdgeMap} that will be used for storing the source {@link yfiles.layout.PortConstraint}s of the edges - * @param {yfiles.algorithms.IEdgeMap} tpcMap the {@link yfiles.algorithms.IEdgeMap} that will be used for storing the target {@link yfiles.layout.PortConstraint}s of the edges + * @param graph the input graph + * @param spcMap the {@link } that will be used for storing the source {@link }s of the edges + * @param tpcMap the {@link } that will be used for storing the target {@link }s of the edges */ createPortConstraintsFromSketch(graph:yfiles.layout.LayoutGraph,spcMap:yfiles.algorithms.IEdgeMap,tpcMap:yfiles.algorithms.IEdgeMap):void; static $class:yfiles.lang.Class; @@ -91138,7 +90578,7 @@ declare namespace system{ * Layout algorithms that support {@link yfiles.layout.PortConstraint}s or edge groups will access the * {@link yfiles.algorithms.IDataProvider}s using the provided keys. *

    - * @class yfiles.layout.PortConstraintKeys + * @class * @static */ export interface PortConstraintKeys extends Object{} @@ -91178,7 +90618,7 @@ declare namespace system{ */ static TARGET_GROUP_ID_DP_KEY:yfiles.algorithms.EdgeDpKey; /** - * Data provider key for assigning port group ids to the edges' source. + * Data provider key for assigning port group ids to the edges' source *

    * All edges with the same port id at a node will share the same port location. However, they will be routed * independently. @@ -91189,7 +90629,7 @@ declare namespace system{ */ static SOURCE_PORT_GROUP_ID_DP_KEY:yfiles.algorithms.EdgeDpKey; /** - * Data provider key for assigning port group ids to the edges' target. + * Data provider key for assigning port group ids to the edges' target *

    * All edges with the same port id at a node will share the same port location. However, they will be routed * independently. @@ -91232,30 +90672,28 @@ declare namespace system{ * A {@link yfiles.layout.PreferredPlacementDescriptor} must be set for each label and will be retrieved by the layout algorithms * calling {@link yfiles.layout.IEdgeLabelLayout#preferredPlacementDescriptor}. *

    - * @class yfiles.layout.PreferredPlacementDescriptor + * @class */ export interface PreferredPlacementDescriptor extends Object{} export class PreferredPlacementDescriptor { /** * Creates a new {@link yfiles.layout.PreferredPlacementDescriptor} instance that copies the given descriptor. - * @param {yfiles.layout.PreferredPlacementDescriptor} descriptor the {@link yfiles.layout.PreferredPlacementDescriptor} that is copied - * @constructor + * @param descriptor the {@link } that is copied */ constructor(descriptor:yfiles.layout.PreferredPlacementDescriptor); /** * Creates a new {@link yfiles.layout.PreferredPlacementDescriptor} instance with default settings. - * @constructor */ constructor(); /** * Clones this instance by returning a {@link Object#memberwiseClone} or this in case this instance is already {@link yfiles.layout.PreferredPlacementDescriptor#isFrozen frozen}. - * @returns {Object} An instance of the same type as this instance. + * @returns An instance of the same type as this instance. */ clone():Object; /** * Makes this {@link yfiles.layout.PreferredPlacementDescriptor} instance immutable. *

    - * If this instance is immutable, all setter methods will throw an {@link Stubs.Exceptions.InvalidOperationError} when invoked. + * If this instance is immutable, all setter methods will throw an {@link yfiles.lang.Exception} when invoked. *

    * @see yfiles.layout.PreferredPlacementDescriptor#isFrozen */ @@ -91263,9 +90701,9 @@ declare namespace system{ /** * Returns whether or not this is an immutable instance of {@link yfiles.layout.PreferredPlacementDescriptor}. *

    - * If this instance is immutable, all setter methods will throw an {@link Stubs.Exceptions.InvalidOperationError} when invoked. + * If this instance is immutable, all setter methods will throw an {@link yfiles.lang.Exception} when invoked. *

    - * @returns {boolean} true if this instance is immutable, false otherwise + * @returns true if this instance is immutable, false otherwise * @see yfiles.layout.PreferredPlacementDescriptor#freeze */ isFrozen():boolean; @@ -91275,8 +90713,8 @@ declare namespace system{ * Descriptor instances returned by this method will use default values for all properties but {@link yfiles.layout.PreferredPlacementDescriptor#placeAlongEdge placement along edge} and * {@link yfiles.layout.PreferredPlacementDescriptor#sideOfEdge side of edge}. *

    - * @param {yfiles.layout.LabelPlacements} placement a combination of valid placements along the edge and valid sides of the edge - * @returns {yfiles.layout.PreferredPlacementDescriptor} an immutable descriptor instance for the specified placement + * @param placement a combination of valid placements along the edge and valid sides of the edge + * @returns an immutable descriptor instance for the specified placement * @see yfiles.layout.PreferredPlacementDescriptor#isFrozen * @see yfiles.layout.PreferredPlacementDescriptor#placeAlongEdge * @see yfiles.layout.PreferredPlacementDescriptor#sideOfEdge @@ -91471,14 +90909,13 @@ declare namespace system{ * A collinear bend forms a straight line with its preceding bend and its subsequent bend. The angle between the connecting * edge segments is either 0 or 180 degrees. *

    - * @class yfiles.layout.RemoveCollinearBendsStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface RemoveCollinearBendsStage extends yfiles.layout.LayoutStageBase{} export class RemoveCollinearBendsStage { /** * Creates a new {@link yfiles.layout.RemoveCollinearBendsStage} instance with default settings. - * @constructor */ constructor(); /** @@ -91510,16 +90947,15 @@ declare namespace system{ /** * {@link yfiles.layout.ReverseEdgesStage} selectively reverses edges in a graph, while keeping the layout and label positions of * the reversed edges as close to the pre-reversal layout and positions as possible. - * @class yfiles.layout.ReverseEdgesStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface ReverseEdgesStage extends yfiles.layout.LayoutStageBase{} export class ReverseEdgesStage { /** * Creates a new {@link yfiles.layout.ReverseEdgesStage} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. + * @param [coreLayouter=null] The core layout algorithm. * @see yfiles.layout.LayoutStageBase#coreLayout - * @constructor */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -91528,9 +90964,9 @@ declare namespace system{ *

    * Only edges in the graph component to which the specified node belongs will be marked. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to which the specified node belongs - * @param {yfiles.algorithms.Node} root the node to be considered the root of its tree component - * @param {yfiles.algorithms.IDataAcceptor} reversedEdges a {@link yfiles.algorithms.IDataAcceptor} to mark edges for reversal + * @param graph the graph to which the specified node belongs + * @param root the node to be considered the root of its tree component + * @param reversedEdges a {@link } to mark edges for reversal * @throws {Stubs.Exceptions.ArgumentError} if the specified root node is null or does not belong to the specified graph * @see yfiles.layout.ReverseEdgesStage#AFFECTED_EDGES_DP_KEY * @static @@ -91544,8 +90980,8 @@ declare namespace system{ * specified edge are adjusted to match the pre-reversal position as closely as possible. (Depending on a label's model it * might not always be possible to achieve an exact match.) *

    - * @param {yfiles.layout.LayoutGraph} graph the graph to which the specified edge belongs - * @param {yfiles.algorithms.Edge} edge the edge to be reversed + * @param graph the graph to which the specified edge belongs + * @param edge the edge to be reversed * @see yfiles.layout.LayoutGraphUtilities#reverseEdgeLayout */ reverseEdge(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):void; @@ -91558,7 +90994,7 @@ declare namespace system{ *

    * Implementation detail: This method calls {@link yfiles.layout.ReverseEdgesStage#reverseEdge} in order to reverse a selected edge. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph in which to reverse edges. + * @param graph the graph in which to reverse edges. * @see yfiles.layout.ReverseEdgesStage#AFFECTED_EDGES_DP_KEY * @see yfiles.layout.ReverseEdgesStage#reverseEdge */ @@ -91615,15 +91051,14 @@ declare namespace system{ * can be used for marking those self-loops. *

    * @see yfiles.layout.MultiStageLayout - * @class yfiles.layout.SelfLoopRouter + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface SelfLoopRouter extends yfiles.layout.LayoutStageBase{} export class SelfLoopRouter { /** * Creates a new {@link yfiles.layout.SelfLoopRouter} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor + * @param [coreLayouter=null] The core layout algorithm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -91635,7 +91070,7 @@ declare namespace system{ * This method is called by {@link yfiles.layout.SelfLoopRouter#applyLayout} after the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} has arranged the graph * and all self-loops have been reinserted into the graph. It may be overridden to introduce custom self-loop styles. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @protected */ layoutSelfLoops(graph:yfiles.layout.LayoutGraph):void; @@ -91712,24 +91147,23 @@ declare namespace system{ * One possible application would be to bundle several {@link yfiles.layout.ILayoutAlgorithm layout algorithms} and pass a single {@link yfiles.layout.ILayoutAlgorithm} * instance to a {@link yfiles.layout.BufferedLayout}. *

    - * @class yfiles.layout.SequentialLayout + * @class * @implements {yfiles.layout.ILayoutAlgorithm} */ export interface SequentialLayout extends Object,yfiles.layout.ILayoutAlgorithm{} export class SequentialLayout { /** * Creates a new {@link yfiles.layout.SequentialLayout} instance with an empty chain of {@link yfiles.layout.ILayoutAlgorithm layout algorithms}. - * @constructor */ constructor(); /** * Appends the given {@link yfiles.layout.ILayoutAlgorithm layout algorithm} to the end of the chain. - * @param {yfiles.layout.ILayoutAlgorithm} layouter the {@link yfiles.layout.ILayoutAlgorithm layout algorithm} to append + * @param layouter the {@link layout algorithm} to append */ appendLayout(layouter:yfiles.layout.ILayoutAlgorithm):void; /** * Appends the specified list of {@link yfiles.layout.ILayoutAlgorithm layout algorithms} to the end of the chain. - * @param {yfiles.collections.ICollection.} layouters the list of {@link yfiles.layout.ILayoutAlgorithm layout algorithms} to append + * @param layouters the list of {@link layout algorithms} to append */ appendLayouts(layouters:yfiles.collections.ICollection):void; /** @@ -91737,7 +91171,7 @@ declare namespace system{ *

    * The order of the layout algorithms is defined by the order in which they were appended. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph */ applyLayout(graph:yfiles.layout.LayoutGraph):void; /** @@ -91762,20 +91196,19 @@ declare namespace system{ * The ranking of edge label positions depends on the locations described in the {@link yfiles.layout.PreferredPlacementDescriptor} * associated with an edge. *

    - * @class yfiles.layout.SimpleProfitModel + * @class * @implements {yfiles.layout.IProfitModel} */ export interface SimpleProfitModel extends Object,yfiles.layout.IProfitModel{} export class SimpleProfitModel { /** * Creates a new instance of {@link yfiles.layout.SimpleProfitModel}. - * @constructor */ constructor(); /** * - * @param {yfiles.layout.LabelCandidate} candidate - * @returns {number} + * @param candidate + * @returns */ getProfit(candidate:yfiles.layout.LabelCandidate):number; static $class:yfiles.lang.Class; @@ -91793,25 +91226,24 @@ declare namespace system{ * {@link yfiles.layout.SliderMode#CENTER} mode on the left, {@link yfiles.layout.SliderMode#SIDE} mode in the middle and {@link yfiles.layout.SliderMode#SINGLE_SIDE} * on the right *

    - * @class yfiles.layout.SliderEdgeLabelLayoutModel + * @class * @implements {yfiles.layout.IEdgeLabelLayoutModel} */ export interface SliderEdgeLabelLayoutModel extends Object,yfiles.layout.IEdgeLabelLayoutModel{} export class SliderEdgeLabelLayoutModel { /** * Creates a new instance of {@link yfiles.layout.SliderEdgeLabelLayoutModel} with the given mode. - * @param {yfiles.layout.SliderMode} mode the slider mode + * @param mode the slider mode * @see yfiles.layout.SliderEdgeLabelLayoutModel#mode - * @constructor */ constructor(mode:yfiles.layout.SliderMode); /** * - * @param {yfiles.algorithms.YOrientedRectangle} labelBounds - * @param {yfiles.layout.IEdgeLayout} edgeLayout - * @param {yfiles.layout.INodeLayout} sourceNode - * @param {yfiles.layout.INodeLayout} targetNode - * @returns {Object} + * @param labelBounds + * @param edgeLayout + * @param sourceNode + * @param targetNode + * @returns */ createModelParameter(labelBounds:yfiles.algorithms.YOrientedRectangle,edgeLayout:yfiles.layout.IEdgeLayout,sourceNode:yfiles.layout.INodeLayout,targetNode:yfiles.layout.INodeLayout):Object; /** @@ -91820,21 +91252,21 @@ declare namespace system{ * The number of candidates and their respective locations are computed depending on the geometries of both label and * edge. *

    - * @param {yfiles.layout.IEdgeLabelLayout} labelLayout the label for which candidates should be generated - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge to which the label belongs - * @param {yfiles.layout.INodeLayout} sourceLayout the layout of the source node of the label-owning edge - * @param {yfiles.layout.INodeLayout} targetLayout the layout of the target node of the label-owning edge - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.layout.EdgeLabelCandidate} instances + * @param labelLayout the label for which candidates should be generated + * @param edgeLayout the layout of the edge to which the label belongs + * @param sourceLayout the layout of the source node of the label-owning edge + * @param targetLayout the layout of the target node of the label-owning edge + * @returns a list of {@link } instances */ getLabelCandidates(labelLayout:yfiles.layout.IEdgeLabelLayout,edgeLayout:yfiles.layout.IEdgeLayout,sourceLayout:yfiles.layout.INodeLayout,targetLayout:yfiles.layout.INodeLayout):yfiles.algorithms.YList; /** * - * @param {yfiles.algorithms.YDimension} labelSize - * @param {yfiles.layout.IEdgeLayout} edgeLayout - * @param {yfiles.layout.INodeLayout} sourceNode - * @param {yfiles.layout.INodeLayout} targetNode - * @param {Object} para - * @returns {yfiles.algorithms.YOrientedRectangle} + * @param labelSize + * @param edgeLayout + * @param sourceNode + * @param targetNode + * @param para + * @returns */ getLabelPlacement(labelSize:yfiles.algorithms.YDimension,edgeLayout:yfiles.layout.IEdgeLayout,sourceNode:yfiles.layout.INodeLayout,targetNode:yfiles.layout.INodeLayout,para:Object):yfiles.algorithms.YOrientedRectangle; /** @@ -91906,15 +91338,14 @@ declare namespace system{ * The nodes that induce this subgraph are marked using a {@link yfiles.algorithms.IDataProvider} registered with a {@link yfiles.layout.SubgraphLayout#affectedNodesDpKey specific key}. * They will be arranged by the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. *

    - * @class yfiles.layout.SubgraphLayout + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface SubgraphLayout extends yfiles.layout.LayoutStageBase{} export class SubgraphLayout { /** * Creates a new {@link yfiles.layout.SubgraphLayout} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor + * @param [coreLayouter=null] The core layout algorithm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -91928,15 +91359,14 @@ declare namespace system{ } /** * A {@link yfiles.layout.SwimlaneRepresentative SwimlaneRepresentative} represents the position and arrangement mode for a swimlane. - * @class yfiles.layout.SwimlaneRepresentative + * @class */ export interface SwimlaneRepresentative extends Object{} export class SwimlaneRepresentative { /** * Creates a new {@link yfiles.layout.SwimlaneRepresentative} instance. - * @param {number} swimlanePos denotes the current position of the represented swimlane - * @param {boolean} allowRearrangement true if the represented swimlane may be {@link yfiles.layout.SwimlaneRepresentative#allowRearrangement rearranged}, false otherwise - * @constructor + * @param swimlanePos denotes the current position of the represented swimlane + * @param allowRearrangement true if the represented swimlane may be {@link #allowRearrangement rearranged}, false otherwise */ constructor(swimlanePos:number,allowRearrangement:boolean); /** @@ -91964,7 +91394,7 @@ declare namespace system{ *

    * It is used by {@link yfiles.hierarchic.HierarchicLayout} to arrange the nodes in lanes. *

    - * @class yfiles.layout.Swimlanes + * @class * @static */ export interface Swimlanes extends Object{} @@ -91978,10 +91408,10 @@ declare namespace system{ *
  • the number of swimlanes traversed by edges
  • *
  • the number of swimlanes spanned by {@link yfiles.layout.GroupingSupport#isGroupNode group nodes}
  • * - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} node2Swimlane the assignment of nodes to swimlanes - * @param {number} iterations the number of iterations performed by the heuristic. - * @param {yfiles.layout.SwimlanesMode} mode one of the valid swimlane ordering mode specifier + * @param graph the input graph + * @param node2Swimlane the assignment of nodes to swimlanes + * @param iterations the number of iterations performed by the heuristic. + * @param mode one of the valid swimlane ordering mode specifier * @see yfiles.layout.SwimlaneRepresentative * @see yfiles.layout.GroupingSupport * @static @@ -91996,8 +91426,8 @@ declare namespace system{ *
  • the number of swimlanes traversed by edges
  • *
  • the number of swimlanes spanned by {@link yfiles.layout.GroupingSupport#isGroupNode group nodes}
  • * - * @param {yfiles.algorithms.Graph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} node2Swimlane the assignment of nodes to swimlanes + * @param graph the input graph + * @param node2Swimlane the assignment of nodes to swimlanes * @see yfiles.layout.SwimlaneRepresentative * @see yfiles.layout.GroupingSupport * @static @@ -92005,6 +91435,291 @@ declare namespace system{ static arrangeSwimlanes(graph:yfiles.algorithms.Graph,node2Swimlane:yfiles.algorithms.IDataProvider):void; static $class:yfiles.lang.Class; } + export enum OperationType{ + /** + * Operation specifier defining that the graph will be mirrored at the x-axis. + * @see yfiles.layout.GraphTransformer#operation + */ + MIRROR_X_AXIS, + /** + * Operation specifier defining that the graph will be mirrored at the y-axis. + * @see yfiles.layout.GraphTransformer#operation + */ + MIRROR_Y_AXIS, + /** + * Operation specifier defining that the graph will be rotated. + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.GraphTransformer#rotationAngle + * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled + */ + ROTATE, + /** + * Operation specifier defining that the graph will be scaled. + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.GraphTransformer#scaleFactor + * @see yfiles.layout.GraphTransformer#setScaleFactors + * @see yfiles.layout.GraphTransformer#scaleNodeSize + */ + SCALE, + /** + * Operation specifier defining that the graph will be translated. + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.GraphTransformer#translateX + * @see yfiles.layout.GraphTransformer#translateY + */ + TRANSLATE + } + /** + * This layout algorithm applies geometric transformations to (sub-)graphs. + *

    + * Layout Style There are several ways to transform the graph that include mirroring, rotating, scaling and translating. {@graph {"ann":{"s":[30,30],"d":1},"n":[[-15,235],[-15,360],[-15,110],[235,485],[110,485],[360,485],[-15,485],[485,235],[485,360],[235,-15],[110,-15],[360,-15],[485,110],[-15,-15],[485,485],[485,-15],[235,235,1],[146.61,146.61,1],[146.61,323.39,1],[58.22,235,1],[323.39,323.39,1],[235,411.78,1],[323.39,146.61,1],[235,58.22,1],[411.78,235,1]],"e":[[1,0],[0,2],[4,3],[3,5],[1,6],[6,4],[7,8],[9,10],[11,9],[12,7],[2,13],[13,10],[8,14],[14,5],[11,15],[12,15],[16,17],[16,18],[19,17],[19,18],[20,16],[18,21],[21,20],[22,16],[23,22],[23,17],[20,24],[22,24],[17,0],[19,1],[23,2],[18,3],[4,19],[5,21],[20,7],[21,8],[9,22],[10,23],[24,11],[24,12]],"vp":[-15.0,-15.0,530.0,530.0]}} + *

    + *

    + * The highlighted subgraph is rotated by 45 degrees + *

    + *

    + * Features + *

    + *

    + * The layout can be {@link yfiles.layout.OperationType#SCALE scaled} with independent factors for the horizontal and vertical scaling. Optionally, the sizes of + * nodes can be scaled, too. + *

    + *

    + * The layout can be mirrored either on the {@link yfiles.layout.OperationType#MIRROR_X_AXIS x-axis} or the {@link yfiles.layout.OperationType#MIRROR_Y_AXIS y-axis}. + *

    + *

    + * A {@link yfiles.layout.OperationType#ROTATE rotation} can be specified. Instead of {@link yfiles.layout.GraphTransformer#rotationAngle defining} a rotation angle the angle can be {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled determined automatically} to fit + * specific bounds. + *

    + *

    + * The coordinates in the layout can be {@link yfiles.layout.OperationType#TRANSLATE translated} by a specific vector. + *

    + *

    + * To only apply previously mentioned transformations to a subgraph, the {@link yfiles.layout.SubgraphLayout} needs to be {@link yfiles.layout.MultiStageLayout#subgraphLayoutEnabled enabled}. + * Then the nodes in the subgraph must be marked in a {@link yfiles.algorithms.IDataProvider} registered with the according {@link yfiles.layout.SubgraphLayout#affectedNodesDpKey key}. + *

    + * @class + * @extends {yfiles.layout.MultiStageLayout} + * @implements {yfiles.layout.ILayoutStage} + */ + export interface GraphTransformer extends yfiles.layout.MultiStageLayout,yfiles.layout.ILayoutStage{} + export class GraphTransformer { + /** + * Creates a new instance of {@link yfiles.layout.GraphTransformer} with default settings. + */ + constructor(); + /** + * Rotates the given graph so its resulting bounding box fits best to the given bounds. + * @param graph the graph that is rotated + * @param width the width of the preferred layout bounds + * @param height the height of the preferred layout bounds + * @returns the rotation angle + * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled + * @static + */ + static applyBestFitRotationAngle(graph:yfiles.layout.LayoutGraph,width:number,height:number):number; + /** + * Returns the rotation angle for the graph that will result in a layout that fits best to the given bounds. + * @param graph the graph that is rotated + * @param width the width of the preferred layout bounds + * @param height the height of the preferred layout bounds + * @returns the rotation angle + * @see yfiles.layout.GraphTransformer#applyBestFitRotationAngle + * @static + */ + static findBestFitRotationAngle(graph:yfiles.layout.LayoutGraph,width:number,height:number):number; + /** + * Specifies the preferred size of the layout. + *

    + * If performing a {@link yfiles.layout.OperationType#ROTATE rotation} and this rotation should be + * {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled automatically fitted}, then the given preferred size defines the aspect ratio that will be used for fitting the layout + * rotation. + *

    + *

    + * The preferred width and height need to be non-negative. + *

    + * @param width the preferred width of the layout + * @param height the preferred height of the layout + * @throws {Stubs.Exceptions.ArgumentError} if the specified width or height is negative + * @see yfiles.layout.GraphTransformer#preferredWidth + * @see yfiles.layout.GraphTransformer#preferredHeight + * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#ROTATE + */ + preferredLayoutSize(width:number,height:number):void; + /** + * Fits the given graph into the specified rectangular bounds. + *

    + * If the bounding box fits in the given bounds, nothing is done. Otherwise, the graph is scaled and optionally moved to + * fit. + *

    + * @param graph the graph to modify + * @param x the upper left x-coordinate of the bounds + * @param y the upper left y-coordinate of the bounds + * @param w the width of the bounds + * @param h the height of the bounds + * @static + */ + static setMaximalBounds(graph:yfiles.layout.LayoutGraph,x:number,y:number,w:number,h:number):void; + /** + * Specifies the horizontal and vertical scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. + *

    + * Only positive scaling factors are allowed. + *

    + * @param xFactor the horizontal scaling factor + * @param yFactor the vertical scaling factor + * @throws {Stubs.Exceptions.ArgumentError} if one the specified scaling factors is negative or 0 + * @see yfiles.layout.GraphTransformer#scaleFactorX + * @see yfiles.layout.GraphTransformer#scaleFactorY + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#SCALE + */ + setScaleFactors(xFactor:number,yFactor:number):void; + /** + * Translates the layout coordinates by the given vector. + * @param graph the graph that is translated + * @param dx the horizontal distance the given graph is moved + * @param dy the vertical distance the given graph is moved + * @see yfiles.layout.OperationType#TRANSLATE + * @see yfiles.layout.GraphTransformer#operation + * @static + */ + static translate(graph:yfiles.layout.LayoutGraph,dx:number,dy:number):void; + /** + * + * @type {yfiles.layout.ILayoutAlgorithm} + */ + coreLayout:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets the transformation operation. + * @throws {Stubs.Exceptions.ArgumentError} if the specified operation is unknown + * @type {yfiles.layout.OperationType} + */ + operation:yfiles.layout.OperationType; + /** + * Gets or sets the angle of rotation. + *

    + * The angle must be given in degrees. + *

    + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#ROTATE + * @type {number} + */ + rotationAngle:number; + /** + * Gets or sets whether or not to automatically choose the best fitting rotation angle. + *

    + * The angle will be chosen such that the bounding box after the rotation fits best to the {@link yfiles.layout.GraphTransformer#preferredLayoutSize preferred aspect ratio}. + *

    + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#ROTATE + * @type {boolean} + */ + bestFitRotationEnabled:boolean; + /** + * Gets or sets the preferred height of the layout. + *

    + * This value will be used for {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled fitting the rotation} to preferred bounds. + *

    + *

    + * The preferred height needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified height is negative + * @see yfiles.layout.GraphTransformer#preferredWidth + * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#ROTATE + * @type {number} + */ + preferredHeight:number; + /** + * Gets or sets the preferred width of the layout. + *

    + * This value will be used for {@link yfiles.layout.GraphTransformer#bestFitRotationEnabled fitting the rotation} to preferred bounds. + *

    + *

    + * The preferred width needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified width is negative + * @see yfiles.layout.GraphTransformer#preferredHeight + * @see yfiles.layout.GraphTransformer#bestFitRotationEnabled + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#ROTATE + * @type {number} + */ + preferredWidth:number; + /** + * Gets or sets whether or not to also scale node sizes when performing the {@link yfiles.layout.OperationType#SCALE scale operation}. + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#SCALE + * @type {boolean} + */ + scaleNodeSize:boolean; + /** + * Sets the uniform scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. + *

    + * This factor applies vertical and horizontal. + *

    + *

    + * Only positive scaling factors are allowed. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified scaling factor is negative or 0 + * @see yfiles.layout.GraphTransformer#scaleFactorX + * @see yfiles.layout.GraphTransformer#scaleFactorY + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#SCALE + * @type {number} + */ + scaleFactor:number; + /** + * Gets or sets the vertical scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. + *

    + * Only positive scaling factors are allowed. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified scaling factor is negative or 0 + * @see yfiles.layout.GraphTransformer#scaleFactorX + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#SCALE + * @type {number} + */ + scaleFactorY:number; + /** + * Gets or sets the horizontal scaling factor used for the {@link yfiles.layout.OperationType#SCALE scale operation}. + *

    + * Only positive scaling factors are allowed. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified scaling factor is negative or 0 + * @see yfiles.layout.GraphTransformer#scaleFactorY + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#SCALE + * @type {number} + */ + scaleFactorX:number; + /** + * Gets or sets the horizontal translation distance. + *

    + * A positive value means the graph is moved to the right while, a negative value means the graph is moved to the left. + *

    + * @see yfiles.layout.GraphTransformer#translateY + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#TRANSLATE + * @type {number} + */ + translateX:number; + /** + * Gets or sets the vertical translation distance. + *

    + * A positive value means the graph is moved downwards, while a negative value means the graph is moved upwards. + *

    + * @see yfiles.layout.GraphTransformer#translateX + * @see yfiles.layout.GraphTransformer#operation + * @see yfiles.layout.OperationType#TRANSLATE + * @type {number} + */ + translateY:number; + static $class:yfiles.lang.Class; + } /** * A {@link yfiles.layout.ILayoutStage layout stage} that can handle fixed nodes in hierarchically grouped graphs. *

    @@ -92032,19 +91747,18 @@ declare namespace system{ * {@graph {"ann":{"s":[30,30],"d":1},"styles":{"6":{"c":1}},"n":[[759.46,-86.88,290.54,283.26,2],[982.99,109.5,6],[796.47,109.5,6],[854.11,-67.88,6],[925.35,-67.88,6],[1005,41.75,6],[925.35,151.37,6],[796.47,-26.01,6],[774.46,41.75,6],[982.99,-26.01,6],[854.11,151.37,6],[123.31,-231.69,216.69,224.72,2],[212.57,-132.33,6],[263.97,-67.88,6],[263.97,-196.77,6],[138.31,-168.09,6],[194.23,-51.97,6],[295,-132.33,6],[138.31,-96.56,6],[194.23,-212.69,6],[265,40.5,430,339,2],[465,234.5,45,30],[380,59.5,45,30],[465,284.5,45,30],[380,109.5,45,30],[465,84.5,45,30],[465,134.5,45,30],[550,209.5,45,30],[380,309.5,45,30],[550,259.5,45,30],[380,259.5,45,30],[465,334.5,45,30],[550,134.5,45,30],[635,134.5,45,30],[465,184.5,45,30],[280,184.5,60,30]],"e":[[9,4],[3,7],[8,7],[4,3],[2,8],[10,2],[6,10],[1,6],[5,1],[2,3],[2,9],[2,1],[5,9],[12,18],[12,13],[12,14],[12,15],[12,19],[12,17],[12,16],[30,21],[21,29],[21,27],[35,22],[30,23],[35,24],[24,26],[24,25],[26,32],[35,28],[35,30],[30,31],[30,34],[32,33],[33,2],[33,8],[33,7],[35,17]],"vp":[123.0,-232.0,927.0,612.0]}} Initial graph. Nodes inside groups have to remain at their relative positions. {@graph {"ann":{"s":[30,30],"d":1},"styles":{"6":{"c":1}},"n":[[754.73,68.37,290.54,283.26,2],[978.26,264.75,6],[791.74,264.75,6],[849.38,87.37,6],[920.62,87.37,6],[1000.27,197,6],[920.62,306.63,6],[791.74,129.25,6],[769.73,197,6],[978.26,129.25,6],[849.38,306.63,6],[-18.35,97.64,216.69,224.72,2],[70.92,197,6],[122.31,261.44,6],[122.31,132.56,6],[-3.35,161.24,6],[52.58,277.36,6],[153.35,197,6],[-3.35,232.76,6],[52.58,116.64,6],[265,40.5,430,339,2],[465,234.5,45,30],[380,59.5,45,30],[465,284.5,45,30],[380,109.5,45,30],[465,84.5,45,30],[465,134.5,45,30],[550,209.5,45,30],[380,309.5,45,30],[550,259.5,45,30],[380,259.5,45,30],[465,334.5,45,30],[550,134.5,45,30],[635,134.5,45,30],[465,184.5,45,30],[280,184.5,60,30]],"e":[[9,4],[3,7],[8,7],[4,3],[2,8],[10,2],[6,10],[1,6],[5,1],[2,3],[2,9],[2,1],[5,9],[12,18],[12,13],[12,14],[12,15],[12,19],[12,17],[12,16],[30,21],[21,29],[21,27],[35,22],[30,23],[35,24],[24,26],[24,25],[26,32],[35,28],[35,30],[30,31],[30,34],[32,33],[33,8,22.5,6,-2.49,-14.78,[782.24,155.5]],[33,7,22.5,-6,-15,-0.75],[33,2,0,15,-15,0,[657.5,279.75]],[35,17,-30,6.25,13.66,-6.25]],"vp":[-19.0,40.0,1065.0,340.0]}} Example after using {@link yfiles.layout.FixGroupLayoutStage} * with {@link yfiles.orthogonal.OrthogonalLayout}. Nodes inside groups did not change relative positions. *

    - * @class yfiles.layout.FixGroupLayoutStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface FixGroupLayoutStage extends yfiles.layout.LayoutStageBase{} export class FixGroupLayoutStage { /** * Creates a new instance of {@link yfiles.layout.FixGroupLayoutStage} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [core=null] The core layout algorithm. - * @constructor + * @param [core=null] The core layout algorithm. */ constructor(core?:yfiles.layout.ILayoutAlgorithm); /** - * Data provider key for selecting group nodes whose contents should keep their relative positions. + * Data provider key for selecting group nodes whose contents should keep their relative positions *

    * A group node is considered selected in this context, if the corresponding {@link yfiles.algorithms.IDataProvider} returns true for the * group node or any of its ancestor (group) nodes. @@ -92081,8 +91795,8 @@ declare namespace system{ *

    * Nodes that share a common partition ID are considered to belong to the same partition. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.INodeMap} partitionIDMap the map that is filled with the resulting partition IDs + * @param graph the input graph + * @param partitionIDMap the map that is filled with the resulting partition IDs * @abstract */ findPartitions(graph:yfiles.layout.LayoutGraph,partitionIDMap:yfiles.algorithms.INodeMap):void; @@ -92105,9 +91819,9 @@ declare namespace system{ *

    * Edges which connect nodes that belong to two different partitions are called inter-edges *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} partitionIDDP the partition ID for each node in the graph - * @param {yfiles.algorithms.IDataProvider} interEdgeDP the map which marks inter-edges + * @param graph the input graph + * @param partitionIDDP the partition ID for each node in the graph + * @param interEdgeDP the map which marks inter-edges * @abstract */ placePartitions(graph:yfiles.layout.LayoutGraph,partitionIDDP:yfiles.algorithms.IDataProvider,interEdgeDP:yfiles.algorithms.IDataProvider):void; @@ -92133,29 +91847,28 @@ declare namespace system{ * method {@link yfiles.layout.PartitionLayout#interEdgeRouter} * * - * @class yfiles.layout.PartitionLayout + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface PartitionLayout extends yfiles.layout.LayoutStageBase{} export class PartitionLayout { /** * Creates a new {@link yfiles.layout.PartitionLayout} instance with default settings. - * @constructor */ constructor(); /** * Creates a {@link yfiles.layout.IPartitionPlacer} that uses {@link yfiles.layout.ComponentLayout} to place the partitions. - * @param {yfiles.layout.ComponentLayout} [componentLayout=null] An optional {@link yfiles.layout.ComponentLayout} to use. - * @returns {yfiles.layout.IPartitionPlacer} + * @param [componentLayout=null] An optional {@link } to use. + * @returns * @static */ static createComponentPartitionPlacer(componentLayout?:yfiles.layout.ComponentLayout):yfiles.layout.IPartitionPlacer; /** * Creates a {@link yfiles.layout.IPartitionFinder} that uses {@link yfiles.algorithms.Groups#edgeBetweennessClustering} as strategy for * finding graph partitions. - * @param {number} [minimumPartitionCount=0] The minimum number of partitions the result should have. - * @param {number} [maximumPartitionCount=0x7FFFFFFF] The maximum number of partitions the result should have. - * @returns {yfiles.layout.IPartitionFinder} + * @param [minimumPartitionCount=0] The minimum number of partitions the result should have. + * @param [maximumPartitionCount=0x7FFFFFFF] The maximum number of partitions the result should have. + * @returns * @static */ static createEdgeBetweennessPartitionFinder(minimumPartitionCount?:number,maximumPartitionCount?:number):yfiles.layout.IPartitionFinder; @@ -92163,9 +91876,9 @@ declare namespace system{ * Creates a {@link yfiles.layout.IPartitionFinder} that uses {@link yfiles.algorithms.Groups#edgeBetweennessClustering} as strategy for * finding graph partitions. * @param {Object} options The parameters to pass. - * @param {number} [options.minimumPartitionCount=0] The minimum number of partitions the result should have. - * @param {number} [options.maximumPartitionCount=0x7FFFFFFF] The maximum number of partitions the result should have. - * @returns {yfiles.layout.IPartitionFinder} + * @param [options.minimumPartitionCount=0] The minimum number of partitions the result should have. + * @param [options.maximumPartitionCount=0x7FFFFFFF] The maximum number of partitions the result should have. + * @returns * @static */ static createEdgeBetweennessPartitionFinder(options:{minimumPartitionCount?:number,maximumPartitionCount?:number}):yfiles.layout.IPartitionFinder; @@ -92211,15 +91924,14 @@ declare namespace system{ * @see yfiles.layout.PortCandidate * @see yfiles.layout.PortCandidateSet * @see yfiles.layout.PortPlacementStage#pathCorrection - * @class yfiles.layout.PortPlacementStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface PortPlacementStage extends yfiles.layout.LayoutStageBase{} export class PortPlacementStage { /** * Creates a new {@link yfiles.layout.PortPlacementStage} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. - * @constructor + * @param [coreLayouter=null] The core layout algorithm. */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -92238,7 +91950,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.layout.ComponentLayout}. - * @class yfiles.layout.ComponentLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface ComponentLayoutData extends yfiles.layout.LayoutData{} @@ -92279,7 +91991,7 @@ declare namespace system{ * This is especially useful if several layouts are run at once, for example a general layout and a subsequent edge * routing. *

    - * @class yfiles.layout.CompositeLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface CompositeLayoutData extends yfiles.layout.LayoutData{} @@ -92304,7 +92016,7 @@ declare namespace system{ * Type parameter TItem: The type of the items that are mapped. * Type parameter TValue: The type of the values the items are mapped to. * Type parameter TContext: The type of the context passed to the {@link yfiles.layout.ContextItemMapping.#contextDelegate} - * @class yfiles.layout.ContextItemMapping. + * @class * @extends {yfiles.layout.ItemMapping.} * @template TItem,TValue,TContext */ @@ -92313,10 +92025,10 @@ declare namespace system{ constructor(); /** * Provides a mapper mapping the items to values. - * @param {yfiles.layout.LayoutGraphAdapter} adapter The graph adapter the mapper shall be provided for. - * @param {yfiles.layout.ILayoutAlgorithm} layout The layout using the mapper. - * @param {TContext} context The context object passed to the {@link yfiles.layout.ContextItemMapping.#contextDelegate}. - * @returns {yfiles.collections.IMapper.} A mapper mapping the items to values. + * @param adapter The graph adapter the mapper shall be provided for. + * @param layout The layout using the mapper. + * @param context The context object passed to the {@link #contextDelegate}. + * @returns A mapper mapping the items to values. */ provideMapperForContext(adapter:yfiles.layout.LayoutGraphAdapter,layout:yfiles.layout.ILayoutAlgorithm,context:TContext):yfiles.collections.IMapper; /** @@ -92336,7 +92048,7 @@ declare namespace system{ *

    * Type parameter TKey: The type of the keys. * Type parameter TValue: The type of the values. - * @class yfiles.layout.DataProviderAdapter. + * @class * @implements {yfiles.algorithms.IDataProvider} * @template TKey,TValue */ @@ -92344,33 +92056,32 @@ declare namespace system{ export class DataProviderAdapter { /** * Creates a new instance that adapts the provided mapper instance. - * @param {yfiles.lang.Class} keyType The type of the keys. - * @param {yfiles.collections.IMapper.} mapper The mapper to adapt. - * @constructor + * @param keyType The type of the keys. + * @param mapper The mapper to adapt. */ constructor(keyType:yfiles.lang.Class,mapper:yfiles.collections.IMapper); /** * - * @param {Object} dataHolder - * @returns {Object} + * @param dataHolder + * @returns */ get(dataHolder:Object):Object; /** * - * @param {Object} dataHolder - * @returns {boolean} + * @param dataHolder + * @returns */ getBoolean(dataHolder:Object):boolean; /** * - * @param {Object} dataHolder - * @returns {number} + * @param dataHolder + * @returns */ getInt(dataHolder:Object):number; /** * - * @param {Object} dataHolder - * @returns {number} + * @param dataHolder + * @returns */ getNumber(dataHolder:Object):number; static $class:yfiles.lang.Class; @@ -92380,7 +92091,7 @@ declare namespace system{ * Type parameter K: The type of the key for the mapper. * Type parameter V: The type of the value for the mapper. * @see yfiles.layout.DataProviderAdapter. - * @class yfiles.layout.DataMapAdapter. + * @class * @extends {yfiles.layout.DataProviderAdapter.} * @implements {yfiles.algorithms.IDataMap} * @template K,V @@ -92389,34 +92100,33 @@ declare namespace system{ export class DataMapAdapter { /** * Initializes a new instance of the {@link yfiles.layout.DataMapAdapter.} class. - * @param {yfiles.lang.Class} keyType1 The type of the key for the mapper. - * @param {yfiles.lang.Class} valueType The type of the value for the mapper. - * @param {yfiles.collections.IMapper.} mapper The mapper to adapt. - * @constructor + * @param keyType The type of the key for the mapper. + * @param valueType The type of the value for the mapper. + * @param mapper The mapper to adapt. */ - constructor(keyType1:yfiles.lang.Class,valueType:yfiles.lang.Class,mapper:yfiles.collections.IMapper); + constructor(keyType:yfiles.lang.Class,valueType:yfiles.lang.Class,mapper:yfiles.collections.IMapper); /** * - * @param {Object} dataHolder - * @param {Object} value + * @param dataHolder + * @param value */ set(dataHolder:Object,value:Object):void; /** * - * @param {Object} dataHolder - * @param {boolean} value + * @param dataHolder + * @param value */ setBoolean(dataHolder:Object,value:boolean):void; /** * - * @param {Object} dataHolder - * @param {number} value + * @param dataHolder + * @param value */ setInt(dataHolder:Object,value:number):void; /** * - * @param {Object} dataHolder - * @param {number} value + * @param dataHolder + * @param value */ setNumber(dataHolder:Object,value:number):void; static $class:yfiles.lang.Class; @@ -92427,7 +92137,7 @@ declare namespace system{ * This class supports {@link yfiles.layout.LayoutData} implementations and does not usually have to be used explicitly. *

    * Type parameter T: The type of the items in the collection. - * @class yfiles.layout.DpKeyItemCollection. + * @class * @extends {yfiles.layout.ItemCollection.} * @template T */ @@ -92452,7 +92162,7 @@ declare namespace system{ * {@link yfiles.algorithms.Graph}. Unless that conversion needs to be customized, or aforementioned classes cannot be used, this * class usually doesn't need to be used explicitly. *

    - * @class yfiles.layout.ExtendedEdgeLabelCandidate + * @class * @extends {yfiles.layout.EdgeLabelCandidate} */ export interface ExtendedEdgeLabelCandidate extends yfiles.layout.EdgeLabelCandidate{} @@ -92462,13 +92172,12 @@ declare namespace system{ *

    * Returns a new instance of ExtendedEdgeLabelCandidate. *

    - * @param {yfiles.algorithms.YPoint} pos the location of the upper left corner of the candidate. - * @param {yfiles.algorithms.YDimension} size the size of the candidate. - * @param {Object} param the parameters of the labeling model associated with this candidate. - * @param {yfiles.layout.IEdgeLabelLayout} owner the label associated to the candidate. - * @param {boolean} internal flag whether the candidate is allowed to overlap the layout of the edge. - * @param {yfiles.graph.ILabelCandidateDescriptor} descriptor the label candidate descriptor. - * @constructor + * @param pos the location of the upper left corner of the candidate. + * @param size the size of the candidate. + * @param param the parameters of the labeling model associated with this candidate. + * @param owner the label associated to the candidate. + * @param internal flag whether the candidate is allowed to overlap the layout of the edge. + * @param descriptor the label candidate descriptor. */ constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,param:Object,owner:yfiles.layout.IEdgeLabelLayout,internal:boolean,descriptor:yfiles.graph.ILabelCandidateDescriptor); /** @@ -92476,12 +92185,11 @@ declare namespace system{ *

    * Returns a new instance of ExtendedEdgeLabelCandidate. *

    - * @param {yfiles.algorithms.YOrientedRectangle} orientedBox the label size and orientation - * @param {Object} param the parameters of the labeling model associated with this candidate. - * @param {yfiles.layout.IEdgeLabelLayout} owner the label associated to the candidate. - * @param {boolean} internal flag whether the candidate is allowed to overlap the layout of the edge. - * @param {yfiles.graph.ILabelCandidateDescriptor} descriptor the label candidate descriptor. - * @constructor + * @param orientedBox the label size and orientation + * @param param the parameters of the labeling model associated with this candidate. + * @param owner the label associated to the candidate. + * @param internal flag whether the candidate is allowed to overlap the layout of the edge. + * @param descriptor the label candidate descriptor. */ constructor(orientedBox:yfiles.algorithms.YOrientedRectangle,param:Object,owner:yfiles.layout.IEdgeLabelLayout,internal:boolean,descriptor:yfiles.graph.ILabelCandidateDescriptor); /** @@ -92489,12 +92197,11 @@ declare namespace system{ *

    * Returns a new instance of ExtendedEdgeLabelCandidate. *

    - * @param {yfiles.algorithms.YPoint} pos the location of the upper left corner of the candidate. - * @param {yfiles.algorithms.YDimension} size the size of the candidate. - * @param {Object} param the parameters of the labeling model associated with this candidate. - * @param {yfiles.layout.IEdgeLabelLayout} owner the label associated to the candidate. - * @param {yfiles.graph.ILabelCandidateDescriptor} descriptor the label candidate descriptor. - * @constructor + * @param pos the location of the upper left corner of the candidate. + * @param size the size of the candidate. + * @param param the parameters of the labeling model associated with this candidate. + * @param owner the label associated to the candidate. + * @param descriptor the label candidate descriptor. */ constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,param:Object,owner:yfiles.layout.IEdgeLabelLayout,descriptor:yfiles.graph.ILabelCandidateDescriptor); /** @@ -92513,7 +92220,7 @@ declare namespace system{ * {@link yfiles.algorithms.Graph}. Unless that conversion needs to be customized, or aforementioned classes cannot be used, this * class usually doesn't need to be used explicitly. *

    - * @class yfiles.layout.ExtendedLabelCandidateProfitModel + * @class * @implements {yfiles.layout.IProfitModel} */ export interface ExtendedLabelCandidateProfitModel extends Object,yfiles.layout.IProfitModel{} @@ -92524,8 +92231,8 @@ declare namespace system{ * This implementation returns the profit for instances of {@link yfiles.layout.ExtendedNodeLabelCandidate} or 0.0 for other * {@link yfiles.layout.LabelCandidate}s. *

    - * @param {yfiles.layout.LabelCandidate} candidate a label candidate - * @returns {number} a value between 0 and 1. + * @param candidate a label candidate + * @returns a value between 0 and 1. */ getProfit(candidate:yfiles.layout.LabelCandidate):number; static $class:yfiles.lang.Class; @@ -92538,7 +92245,7 @@ declare namespace system{ * {@link yfiles.algorithms.Graph}. Unless that conversion needs to be customized, or aforementioned classes cannot be used, this * class usually doesn't need to be used explicitly. *

    - * @class yfiles.layout.ExtendedNodeLabelCandidate + * @class * @extends {yfiles.layout.NodeLabelCandidate} */ export interface ExtendedNodeLabelCandidate extends yfiles.layout.NodeLabelCandidate{} @@ -92548,13 +92255,12 @@ declare namespace system{ *

    * Returns a new instance of NodeLabelCandidate. *

    - * @param {yfiles.algorithms.YPoint} pos the location of the upper left corner of the candidate. - * @param {yfiles.algorithms.YDimension} size the size of the candidate. - * @param {Object} param the parameters of the labeling model associated with this candidate. - * @param {yfiles.layout.INodeLabelLayout} owner the label associated to the candidate. - * @param {boolean} internal flag whether the candidate is inside the node, or outside. - * @param {yfiles.graph.ILabelCandidateDescriptor} descriptor the label candidate descriptor. - * @constructor + * @param pos the location of the upper left corner of the candidate. + * @param size the size of the candidate. + * @param param the parameters of the labeling model associated with this candidate. + * @param owner the label associated to the candidate. + * @param internal flag whether the candidate is inside the node, or outside. + * @param descriptor the label candidate descriptor. */ constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,param:Object,owner:yfiles.layout.INodeLabelLayout,internal:boolean,descriptor:yfiles.graph.ILabelCandidateDescriptor); /** @@ -92562,12 +92268,11 @@ declare namespace system{ *

    * Returns a new instance of NodeLabelCandidate. *

    - * @param {yfiles.algorithms.YOrientedRectangle} orientedBox the label size and orientation - * @param {Object} param the parameters of the labeling model associated with this candidate. - * @param {yfiles.layout.INodeLabelLayout} owner the label associated to the candidate. - * @param {boolean} internal flag whether the candidate is inside the node, or outside. - * @param {yfiles.graph.ILabelCandidateDescriptor} descriptor the label candidate descriptor. - * @constructor + * @param orientedBox the label size and orientation + * @param param the parameters of the labeling model associated with this candidate. + * @param owner the label associated to the candidate. + * @param internal flag whether the candidate is inside the node, or outside. + * @param descriptor the label candidate descriptor. */ constructor(orientedBox:yfiles.algorithms.YOrientedRectangle,param:Object,owner:yfiles.layout.INodeLabelLayout,internal:boolean,descriptor:yfiles.graph.ILabelCandidateDescriptor); /** @@ -92575,12 +92280,11 @@ declare namespace system{ *

    * Returns a new instance of ExtendedNodeLabelCandidate. *

    - * @param {yfiles.algorithms.YPoint} pos the location of the upper left corner of the candidate. - * @param {yfiles.algorithms.YDimension} size the size of the candidate. - * @param {Object} param the parameters of the labeling model associated with this candidate. - * @param {yfiles.layout.INodeLabelLayout} owner the label associated to the candidate. - * @param {yfiles.graph.ILabelCandidateDescriptor} descriptor the label candidate descriptor. - * @constructor + * @param pos the location of the upper left corner of the candidate. + * @param size the size of the candidate. + * @param param the parameters of the labeling model associated with this candidate. + * @param owner the label associated to the candidate. + * @param descriptor the label candidate descriptor. */ constructor(pos:yfiles.algorithms.YPoint,size:yfiles.algorithms.YDimension,param:Object,owner:yfiles.layout.INodeLabelLayout,descriptor:yfiles.graph.ILabelCandidateDescriptor); /** @@ -92592,7 +92296,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.layout.FixGroupLayoutStage}. - * @class yfiles.layout.FixGroupLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface FixGroupLayoutData extends yfiles.layout.LayoutData{} @@ -92620,7 +92324,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.layout.FixNodeLayoutStage}. - * @class yfiles.layout.FixNodeLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface FixNodeLayoutData extends yfiles.layout.LayoutData{} @@ -92644,16 +92348,16 @@ declare namespace system{ * This class supports {@link yfiles.layout.LayoutData} implementations and does not usually have to be used explicitly. *

    * Type parameter TItem: The type of the items in the collection. - * @class yfiles.layout.ItemCollection. + * @class * @template TItem */ export interface ItemCollection extends Object{} export class ItemCollection { /** * Provides a mapper describing which elements are contained in this {@link yfiles.layout.ItemCollection.}. - * @param {yfiles.layout.LayoutGraphAdapter} adapter The graph adapter the mapper shall be provided for. - * @param {yfiles.layout.ILayoutAlgorithm} layout The layout using the item collection. - * @returns {yfiles.collections.IMapper.} + * @param adapter The graph adapter the mapper shall be provided for. + * @param layout The layout using the item collection. + * @returns */ provideMapper(adapter:yfiles.layout.LayoutGraphAdapter,layout:yfiles.layout.ILayoutAlgorithm):yfiles.collections.IMapper; /** @@ -92697,34 +92401,49 @@ declare namespace system{ * and {@link yfiles.layout.ItemMapping.#constant} should be set on each instance. *

    *

    - * This class supports {@link yfiles.layout.LayoutData} implementations and does not usually have to be used explicitly. + * This class supports {@link yfiles.layout.LayoutData} implementations and does not usually have to be instantiated by client code + * explicitly. Instances of this class are properties of concrete {@link yfiles.layout.LayoutData} implementations. *

    * Type parameter TItem: The type of the items that are mapped. * Type parameter TValue: The type of the values the items are mapped to. - * @class yfiles.layout.ItemMapping. + * @class * @template TItem,TValue */ export interface ItemMapping extends Object{} export class ItemMapping { /** * Provides a mapper mapping the items to values. - * @param {yfiles.layout.LayoutGraphAdapter} adapter The graph adapter the mapper shall be provided for. - * @param {yfiles.layout.ILayoutAlgorithm} layout The layout using the mapper. - * @returns {yfiles.collections.IMapper.} A mapper mapping the items to values. + *

    + * This implementation returns the {@link yfiles.layout.ItemMapping.#mapper} if one has been set, otherwise it will create a mapper from the {@link yfiles.layout.ItemMapping.#delegate} if one has been + * specified or uses a constant mapper if a {@link yfiles.layout.ItemMapping.#constant} has been specified. If none have been specified, null is returned. + *

    + * @param adapter The graph adapter the mapper shall be provided for. + * @param layout The layout using the mapper. + * @returns A mapper that maps items to values or null. */ provideMapper(adapter:yfiles.layout.LayoutGraphAdapter,layout:yfiles.layout.ILayoutAlgorithm):yfiles.collections.IMapper; /** * Gets or sets a delegate that implements the mapping. + *

    + * This value will be ignored if either {@link yfiles.layout.ItemMapping.#mapper} as also been set. It overrides values set to the {@link yfiles.layout.ItemMapping.#constant} property. + *

    * @type {function(TItem): TValue} */ delegate:(key:TItem)=>TValue; /** * Gets or sets an {@link yfiles.collections.IMapper.} that realizes the mapping. + *

    + * Getting this property will automatically create an instance. Values set will override the effect of any values set to + * the {@link yfiles.layout.ItemMapping.#constant} or {@link yfiles.layout.ItemMapping.#delegate} properties. + *

    * @type {yfiles.collections.IMapper.} */ mapper:yfiles.collections.IMapper; /** * Gets or sets a constant value all items are mapped to. + *

    + * This value will be ignored if either {@link yfiles.layout.ItemMapping.#mapper} or {@link yfiles.layout.ItemMapping.#delegate} have also been set. + *

    * @type {TValue} */ constant:TValue; @@ -92738,17 +92457,23 @@ declare namespace system{ * affect the complete layout are available on the specific layout class itself. *

    *

    - * The {@link yfiles.layout.LayoutExecutor} {@link yfiles.layout.LayoutData#apply applies} these configurations when {@link yfiles.layout.LayoutExecutor#start started}. + * The {@link yfiles.layout.LayoutExecutor} {@link yfiles.layout.LayoutData#apply applies} these configurations when {@link yfiles.layout.LayoutExecutor#start started}. So does + * {@link yfiles.layout.LayoutGraphAdapter#applyLayout}. *

    - * @class yfiles.layout.LayoutData + * @see yfiles.layout.LayoutExecutor#layoutData + * @see yfiles.layout.LayoutGraphAdapter#applyLayout + * @class */ export interface LayoutData extends Object{} export class LayoutData { /** * Applies this layout data to the specified layoutGraphAdapter. - * @param {yfiles.layout.LayoutGraphAdapter} layoutGraphAdapter The adapter to add the layout data to. - * @param {yfiles.layout.ILayoutAlgorithm} layout The layout that shall use this layout data. - * @param {yfiles.layout.CopiedLayoutGraph} layoutGraph The layout graph used for the layout calculation. + *

    + * This method should be called before a layout is executed. It will configure the adapter and graph for to the layout. + *

    + * @param layoutGraphAdapter The adapter to add the layout data to. + * @param layout The layout that shall use this layout data. + * @param layoutGraph The layout graph used for the layout calculation. * @abstract */ apply(layoutGraphAdapter:yfiles.layout.LayoutGraphAdapter,layout:yfiles.layout.ILayoutAlgorithm,layoutGraph:yfiles.layout.CopiedLayoutGraph):void; @@ -92764,16 +92489,15 @@ declare namespace system{ * can be used instead. *

    * @see yfiles.layout.LayoutGraphAdapter - * @class yfiles.layout.LayoutExecutor + * @class */ export interface LayoutExecutor extends Object{} export class LayoutExecutor { /** * Initializes a new instance of the {@link yfiles.layout.LayoutExecutor} class. - * @param {yfiles.view.GraphComponent} graphComponent The control which will be animated and provides the {@link yfiles.graph.IGraph} instance. - * @param {yfiles.graph.IGraph} graph The graph to layout. - * @param {yfiles.layout.ILayoutAlgorithm} layout The {@link yfiles.layout.ILayoutAlgorithm} to use. - * @constructor + * @param graphComponent The control which will be animated and provides the {@link } instance. + * @param graph The graph to layout. + * @param layout The {@link } to use. */ constructor(graphComponent:yfiles.view.GraphComponent,graph:yfiles.graph.IGraph,layout:yfiles.layout.ILayoutAlgorithm); /** @@ -92782,9 +92506,8 @@ declare namespace system{ * Use the {@link yfiles.layout.LayoutExecutor#start} method to actually execute the task. This will disable animation and content * rect updates. *

    - * @param {yfiles.view.GraphComponent} graphComponent The control which will be animated and provides the {@link yfiles.graph.IGraph} instance. - * @param {yfiles.layout.ILayoutAlgorithm} layout The {@link yfiles.layout.ILayoutAlgorithm} to use. - * @constructor + * @param graphComponent The control which will be animated and provides the {@link } instance. + * @param layout The {@link } to use. */ constructor(graphComponent:yfiles.view.GraphComponent,layout:yfiles.layout.ILayoutAlgorithm); /** @@ -92792,14 +92515,14 @@ declare namespace system{ *

    * This method is called upon first access to the {@link yfiles.layout.LayoutExecutor#abortHandler} property. *

    - * @returns {yfiles.algorithms.AbortHandler} A new {@link yfiles.algorithms.AbortHandler} instance to use during layout calculation. + * @returns A new {@link } instance to use during layout calculation. * @protected */ createAbortHandler():yfiles.algorithms.AbortHandler; /** * Factory method that creates the {@link yfiles.view.IAnimation} that will be used by this instance after the layout has been * calculated. - * @returns {yfiles.view.IAnimation} The animation to use after the layout. + * @returns The animation to use after the layout. * @see yfiles.layout.LayoutExecutor#duration * @see yfiles.layout.LayoutExecutor#animateViewport * @see yfiles.layout.LayoutExecutor#createMorphAnimation @@ -92809,14 +92532,14 @@ declare namespace system{ createAnimation():yfiles.view.IAnimation; /** * Factory method that creates the animation for the {@link yfiles.graph.IGraph}. - * @returns {yfiles.view.IAnimation} The animation instance. + * @returns The animation instance. * @see yfiles.layout.LayoutExecutor#createAnimation * @protected */ createMorphAnimation():yfiles.view.IAnimation; /** * Creates an animation that morphs the layout of all {@link yfiles.graph.ITable}s in the graph. - * @returns {yfiles.view.IAnimation} + * @returns * @see yfiles.view.TableAnimation * @see yfiles.layout.LayoutExecutor#configureTableLayout * @protected @@ -92827,14 +92550,14 @@ declare namespace system{ *

    * This method is called upon first access to the {@link yfiles.layout.LayoutExecutor#tableLayoutConfigurator} property. *

    - * @returns {yfiles.layout.TableLayoutConfigurator} A new instance of the {@link yfiles.layout.TableLayoutConfigurator} class. + * @returns A new instance of the {@link } class. * @protected */ createTableLayoutConfigurator():yfiles.layout.TableLayoutConfigurator; /** * Factory method that creates the animation for the {@link yfiles.view.CanvasComponent#viewport}. - * @param {yfiles.geometry.Rect} targetBounds The target bounds of the animation. - * @returns {yfiles.view.IAnimation} The animation instance. + * @param targetBounds The target bounds of the animation. + * @returns The animation instance. * @see yfiles.layout.LayoutExecutor#createAnimation * @protected */ @@ -92851,7 +92574,7 @@ declare namespace system{ * By default, the value is computed with {@link yfiles.layout.LayoutGraphUtilities#getBoundingBox} with labels and {@link yfiles.layout.LayoutExecutor#targetBoundsInsets} taken into * account. *

    - * @returns {yfiles.geometry.Rect} The desired content rectangle and the bounds for a viewport animation. + * @returns The desired content rectangle and the bounds for a viewport animation. * @protected */ getTargetBounds():yfiles.geometry.Rect; @@ -92879,10 +92602,10 @@ declare namespace system{ * performed. *

    *

    - * If this instance is already running, this method returns immedetaly without doing anything, return the previous + * If this instance is already running, this method returns immedetaly without doing anything and returns the previous * Promise. *

    - * @returns {Promise.} A Promise that will be fulfilled once the layout and optional animation is done. + * @returns A Promise that will be fulfilled once the layout and optional animation is done. * @see yfiles.layout.LayoutExecutor#execute */ start():Promise; @@ -92897,11 +92620,12 @@ declare namespace system{ * To just skip the animation but let the calculation finish normally, the {@link yfiles.layout.LayoutExecutor#duration} can be set to zero at any time before the * animation was started. *

    - * @returns {Promise.} + * @returns */ stop():Promise; /** - * Gets the {@link yfiles.algorithms.AbortHandler} that is used during the layout calculation. + * Gets the {@link yfiles.algorithms.AbortHandler} that is used during the layout calculation, unless another {@link yfiles.algorithms.AbortHandler} + * has been configured via {@link yfiles.layout.LayoutExecutor#layoutData} or by registering an {@link yfiles.collections.IMapper.} in the graph's {@link yfiles.graph.IGraph#mapperRegistry}. * @see yfiles.layout.LayoutExecutor#createAbortHandler * @type {yfiles.algorithms.AbortHandler} */ @@ -93084,17 +92808,16 @@ declare namespace system{ *

    * @see yfiles.layout.CopiedLayoutGraph * @see yfiles.layout.ILayoutAlgorithm - * @class yfiles.layout.LayoutGraphAdapter + * @class */ export interface LayoutGraphAdapter extends Object{} export class LayoutGraphAdapter { /** * Creates the adapter using a given {@link yfiles.graph.IGraph} and {@link yfiles.view.ISelectionModel.}. - * @param {yfiles.graph.IGraph} graph The graph to build an adapter for. - * @param {yfiles.view.ISelectionModel.} [selectionModel=null] The optional selection model to use by the {@link yfiles.layout.LayoutKeys#AFFECTED_NODES_DP_KEY} and {@link yfiles.layout.LayoutKeys#AFFECTED_EDGES_DP_KEY} - * {@link yfiles.algorithms.IDataProvider} instances that are automatically bound to this adapter. + * @param graph The graph to build an adapter for. + * @param [selectionModel=null] The optional selection model to use by the {@link #AFFECTED_NODES_DP_KEY} and {@link #AFFECTED_EDGES_DP_KEY} + * {@link } instances that are automatically bound to this adapter. * @throws {Stubs.Exceptions.ArgumentError} graph is null. - * @constructor */ constructor(graph:yfiles.graph.IGraph,selectionModel?:yfiles.view.ISelectionModel); /** @@ -93102,7 +92825,6 @@ declare namespace system{ *

    * Before this instance can be used for automatic layouts, you mus assign a value to the {@link yfiles.layout.LayoutGraphAdapter#adaptedGraph} property. *

    - * @constructor */ constructor(); /** @@ -93112,54 +92834,55 @@ declare namespace system{ *

    * Type parameter K: The type of the key to use. * Type parameter V: The type of the value to use. - * @param {yfiles.lang.Class} valueType The type of the value to use. - * @param {yfiles.lang.Class} keyType The type of the key to use. - * @param {Object} dataKey The look-up key to register the data provider with. - * @param {yfiles.collections.IMapper.} mapper The mapper wrapped as data provider. - * @returns {yfiles.algorithms.IDataProvider} + * @param valueType The type of the value to use. + * @param keyType The type of the key to use. + * @param dataKey The look-up key to register the data provider with. + * @param mapper The mapper wrapped as data provider. + * @returns * @template K,V */ addDataProvider(keyType:yfiles.lang.Class,valueType:yfiles.lang.Class,dataKey:Object,mapper:yfiles.collections.IMapper):yfiles.algorithms.IDataProvider; /** - * Convenience method that applies a {@link yfiles.layout.ILayoutAlgorithm layout algorithm} to an {@link yfiles.graph.IGraph}. - * @param {yfiles.layout.ILayoutAlgorithm} layout The layout algorithm to apply. - * @param {yfiles.layout.LayoutData} [layoutData=null] The layout data. + * Convenience method that applies a {@link yfiles.layout.ILayoutAlgorithm layout algorithm} to an {@link yfiles.graph.IGraph}, optionally applying some + * {@link yfiles.layout.LayoutData}. + * @param layout The layout algorithm to apply. + * @param [layoutData=null] The layout data. */ applyLayout(layout:yfiles.layout.ILayoutAlgorithm,layoutData?:yfiles.layout.LayoutData):void; /** * Static convenience method that applies a {@link yfiles.layout.ILayoutAlgorithm layout algorithm} to an {@link yfiles.graph.IGraph}. - * @param {yfiles.layout.ILayoutAlgorithm} layout The layout algorithm to apply. - * @param {yfiles.graph.IGraph} graph The graph to compute the layout on. - * @param {yfiles.layout.LayoutData} [layoutData=null] The layout data. + * @param layout The layout algorithm to apply. + * @param graph The graph to compute the layout on. + * @param [layoutData=null] The layout data. * @static */ static applyLayout(graph:yfiles.graph.IGraph,layout:yfiles.layout.ILayoutAlgorithm,layoutData?:yfiles.layout.LayoutData):void; /** * Creates a {@link yfiles.layout.CopiedLayoutGraph} for this instance. - * @returns {yfiles.layout.CopiedLayoutGraph} An instance whose {@link yfiles.layout.CopiedLayoutGraph#commitLayoutToOriginalGraph} will update this instance. + * @returns An instance whose {@link #commitLayoutToOriginalGraph} will update this instance. */ createCopiedLayoutGraph():yfiles.layout.CopiedLayoutGraph; /** * Creates the {@link yfiles.layout.EdgeLabelCandidate} for a given label and {@link yfiles.graph.ILabelModelParameter} combination. - * @param {yfiles.graph.ILabel} originalLabel The original label. - * @param {yfiles.graph.ILabel} dummyLabel The dummy label that describes the current laid out label. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to create a candidate for. - * @param {yfiles.layout.IEdgeLabelLayout} labelLayout The {@link yfiles.layout.IEdgeLabelLayout} of the label to pass to the candidate. - * @returns {yfiles.layout.EdgeLabelCandidate} A candidate to yield for the labeling algorithms or null. + * @param originalLabel The original label. + * @param dummyLabel The dummy label that describes the current laid out label. + * @param layoutParameter The parameter to create a candidate for. + * @param labelLayout The {@link } of the label to pass to the candidate. + * @returns A candidate to yield for the labeling algorithms or null. */ createEdgeLabelCandidate(originalLabel:yfiles.graph.ILabel,dummyLabel:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter,labelLayout:yfiles.layout.IEdgeLabelLayout):yfiles.layout.EdgeLabelCandidate; /** * Factory method that creates an {@link yfiles.layout.IEdgeLayout} implementation that wraps the given {@link yfiles.graph.IEdge} - * @param {yfiles.graph.IEdge} edge The edge to wrap. - * @returns {yfiles.layout.IEdgeLayout} A wrapper instance. + * @param edge The edge to wrap. + * @returns A wrapper instance. * @protected */ createEdgeLayout(edge:yfiles.graph.IEdge):yfiles.layout.IEdgeLayout; /** * Callback factory method that creates the {@link yfiles.layout.INodeLayout} for the given {@link yfiles.graph.IPort} that is used as a * dummy to represent the port at the {@link yfiles.graph.IEdge} that owns port. - * @param {yfiles.graph.IPort} port The port to create the layout for. - * @returns {yfiles.layout.INodeLayout} A suitable implementation of {@link yfiles.layout.INodeLayout} that uses the {@link yfiles.graph.IPort#location port's location} as the center of the node. + * @param port The port to create the layout for. + * @returns A suitable implementation of {@link } that uses the {@link #location port's location} as the center of the node. * @see yfiles.layout.LayoutGraphAdapter#edgePortNodeSize * @see yfiles.layout.LayoutGraphAdapter#hideEdgesAtEdges * @protected @@ -93167,49 +92890,49 @@ declare namespace system{ createEdgePortLayout(port:yfiles.graph.IPort):yfiles.layout.INodeLayout; /** * Creates a {@link yfiles.layout.NodeLabelCandidate} for a given label and {@link yfiles.graph.ILabelModelParameter} combination. - * @param {yfiles.graph.ILabel} originalLabel The original label. - * @param {yfiles.graph.ILabel} dummyLabel The dummy label that describes the current laid out label. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to create a candidate for. - * @param {yfiles.layout.INodeLabelLayout} ownerLayout The {@link yfiles.layout.INodeLabelLayout} of the label to pass to the candidate. - * @returns {yfiles.layout.NodeLabelCandidate} A candidate to yield for the labeling algorithms or null. + * @param originalLabel The original label. + * @param dummyLabel The dummy label that describes the current laid out label. + * @param layoutParameter The parameter to create a candidate for. + * @param ownerLayout The {@link } of the label to pass to the candidate. + * @returns A candidate to yield for the labeling algorithms or null. */ createNodeLabelCandidate(originalLabel:yfiles.graph.ILabel,dummyLabel:yfiles.graph.ILabel,layoutParameter:yfiles.graph.ILabelModelParameter,ownerLayout:yfiles.layout.INodeLabelLayout):yfiles.layout.NodeLabelCandidate; /** * Factory method that creates a {@link yfiles.layout.INodeLayout} implementation that wraps the given {@link yfiles.graph.INode} - * @param {yfiles.graph.INode} node The node to wrap. - * @returns {yfiles.layout.INodeLayout} A wrapper instance. + * @param node The node to wrap. + * @returns A wrapper instance. * @protected */ createNodeLayout(node:yfiles.graph.INode):yfiles.layout.INodeLayout; /** * - * @returns {yfiles.collections.IEnumerable.} + * @returns */ edgeObjects():yfiles.collections.IEnumerable; /** * - * @param {Object} dataKey - * @returns {yfiles.algorithms.IDataProvider} + * @param dataKey + * @returns */ getDataProvider(dataKey:Object):yfiles.algorithms.IDataProvider; /** * - * @param {Object} edge - * @returns {Array.} + * @param edge + * @returns */ getEdgeLabelLayout(edge:Object):yfiles.layout.IEdgeLabelLayout[]; /** * - * @param {Object} edge - * @returns {yfiles.layout.IEdgeLayout} + * @param edge + * @returns */ getEdgeLayout(edge:Object):yfiles.layout.IEdgeLayout; /** * Callback that retrieves the label candidate descriptor for the given label and parameter. - * @param {yfiles.graph.ILabel} originalLabel The original label to which a parameter will be applied. - * @param {yfiles.graph.ILabel} dummyLabel The dummy label to which the parameter will be applied. - * @param {yfiles.graph.ILabelModelParameter} layoutParameter The parameter to apply. - * @returns {yfiles.graph.ILabelCandidateDescriptor} A descriptor or null. + * @param originalLabel The original label to which a parameter will be applied. + * @param dummyLabel The dummy label to which the parameter will be applied. + * @param layoutParameter The parameter to apply. + * @returns A descriptor or null. * @see yfiles.layout.LayoutGraphAdapter#createNodeLabelCandidate * @see yfiles.layout.LayoutGraphAdapter#createEdgeLabelCandidate * @see yfiles.layout.LayoutGraphAdapter#getLabelCandidateDescriptorProvider @@ -93222,38 +92945,38 @@ declare namespace system{ * This implementation uses the {@link yfiles.graph.IGraph}'s {@link yfiles.graph.ILookup} to find an implementation of the * {@link yfiles.graph.ILabelCandidateDescriptorProvider}. *

    - * @param {yfiles.graph.IGraph} graph The graph. - * @returns {yfiles.graph.ILabelCandidateDescriptorProvider} The result of a {@link yfiles.graph.ILookup#lookup} query on graph for the {@link yfiles.graph.ILabelCandidateDescriptorProvider} type. + * @param graph The graph. + * @returns The result of a {@link #lookup} query on graph for the {@link } type. * @protected */ getLabelCandidateDescriptorProvider(graph:yfiles.graph.IGraph):yfiles.graph.ILabelCandidateDescriptorProvider; /** * - * @param {Object} node - * @returns {Array.} + * @param node + * @returns */ getNodeLabelLayout(node:Object):yfiles.layout.INodeLabelLayout[]; /** * - * @param {Object} o - * @returns {yfiles.layout.INodeLayout} + * @param o + * @returns */ getNodeLayout(o:Object):yfiles.layout.INodeLayout; /** * - * @param {Object} edgeObject - * @returns {Object} + * @param edgeObject + * @returns */ getSource(edgeObject:Object):Object; /** * - * @param {Object} edgeObject - * @returns {Object} + * @param edgeObject + * @returns */ getTarget(edgeObject:Object):Object; /** * - * @returns {yfiles.collections.IEnumerable.} + * @returns */ nodeObjects():yfiles.collections.IEnumerable; /** @@ -93262,8 +92985,8 @@ declare namespace system{ * This method is called only for ports which are owned by edges. These are represented by dummy nodes during the layout, * and newLocation is the position of the dummy node after the layout. *

    - * @param {yfiles.graph.IPort} port The edge port that should be placed. - * @param {yfiles.geometry.Point} newLocation The new location of the port as calculated by the layout algorithm. + * @param port The edge port that should be placed. + * @param newLocation The new location of the port as calculated by the layout algorithm. * @protected */ setEdgePortLocation(port:yfiles.graph.IPort,newLocation:yfiles.geometry.Point):void; @@ -93273,8 +92996,8 @@ declare namespace system{ * The default implementation calls {@link yfiles.graph.IGraph#setRelativePortLocation} with * newRelativeLocation. Depending on the port location model, the actual resulting port location may be different. *

    - * @param {yfiles.graph.IPort} port The port that should be placed. - * @param {yfiles.geometry.Point} newRelativeLocation The new coordinate offsets relative to the center of the node's {@link yfiles.graph.INode#layout}'s center. + * @param port The port that should be placed. + * @param newRelativeLocation The new coordinate offsets relative to the center of the node's {@link #layout}'s center. * @protected */ setRelativePortLocation(port:yfiles.graph.IPort,newRelativeLocation:yfiles.geometry.Point):void; @@ -93488,14 +93211,14 @@ declare namespace system{ /** * Specifies a {@link yfiles.layout.PartitionGrid} for a layout. *

    - * The {@link yfiles.layout.PartitionCellId} mapping has to be specified by either setting the {@link yfiles.layout.PartitionGridData#cellIds} property, or both the {@link yfiles.layout.PartitionGridData#rowIndices} and {@link yfiles.layout.PartitionGridData#columnIndices} - * properties. When {@link yfiles.layout.PartitionGridData#cellIds} is set, the {@link yfiles.layout.PartitionGridData#grid} property is expected to be set as well. Otherwise the size of the grid may be induced by - * the maximum row and column indices returned by {@link yfiles.layout.PartitionGridData#rowIndices} and {@link yfiles.layout.PartitionGridData#columnIndices}. + * The {@link yfiles.layout.PartitionCellId} mapping has to be specified by either setting the {@link yfiles.layout.PartitionGridData#cellIds} property, or either or both of the + * {@link yfiles.layout.PartitionGridData#rowIndices} and {@link yfiles.layout.PartitionGridData#columnIndices} properties. When {@link yfiles.layout.PartitionGridData#cellIds} is set, the {@link yfiles.layout.PartitionGridData#grid} property must be set as well. Otherwise the size of the grid may be induced by the + * maximum row and column indices returned by {@link yfiles.layout.PartitionGridData#rowIndices} and {@link yfiles.layout.PartitionGridData#columnIndices}. *

    *

    * Note that cell spanning is only supported using the {@link yfiles.layout.PartitionGridData#cellIds}. *

    - * @class yfiles.layout.PartitionGridData + * @class * @extends {yfiles.layout.LayoutData} */ export interface PartitionGridData extends yfiles.layout.LayoutData{} @@ -93526,7 +93249,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.layout.PartitionLayout}. - * @class yfiles.layout.PartitionLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface PartitionLayoutData extends yfiles.layout.LayoutData{} @@ -93560,7 +93283,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.layout.RecursiveGroupLayout}. - * @class yfiles.layout.RecursiveGroupLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface RecursiveGroupLayoutData extends yfiles.layout.LayoutData{} @@ -93638,7 +93361,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.layout.ReverseEdgesStage}. - * @class yfiles.layout.ReverseEdgesStageData + * @class * @extends {yfiles.layout.LayoutData} */ export interface ReverseEdgesStageData extends yfiles.layout.LayoutData{} @@ -93687,7 +93410,7 @@ declare namespace system{ * This class supports {@link yfiles.layout.LayoutData} implementations and does not usually have to be used explicitly. *

    * Type parameter V: The type of the items in the collection. - * @class yfiles.layout.SingleItemCollection. + * @class * @extends {yfiles.layout.ItemCollection.} * @template V */ @@ -93709,14 +93432,14 @@ declare namespace system{ * a partition grid before the layout is calculated and {@link yfiles.layout.TableLayoutConfigurator#restore} the graph * afterwards. *

    - * @class yfiles.layout.TableLayoutConfigurator + * @class */ export interface TableLayoutConfigurator extends Object{} export class TableLayoutConfigurator { /** * Destroy all information that results from a previous {@link yfiles.layout.TableLayoutConfigurator#prepare} and a subsequent * layout - * @param {yfiles.graph.IGraph} graph + * @param graph */ cleanUp(graph:yfiles.graph.IGraph):void; /** @@ -93725,9 +93448,9 @@ declare namespace system{ * This method does not modify originalTable. You also need to call {@link yfiles.layout.TableLayoutConfigurator#cleanUp} * explicitly if you don't need the {@link yfiles.layout.TableLayoutConfigurator} anymore. *

    - * @param {yfiles.graph.ITable} originalTable The table - * @param {yfiles.geometry.Rect} nodeLayout The final layout of the node that owns the table - * @returns {Array.} The sizes of all leaf rows in originalTable, in their natural order. + * @param originalTable The table + * @param nodeLayout The final layout of the node that owns the table + * @returns The sizes of all leaf rows in originalTable, in their natural order. */ getColumnLayout(originalTable:yfiles.graph.ITable,nodeLayout:yfiles.geometry.Rect):number[]; /** @@ -93736,19 +93459,19 @@ declare namespace system{ * This method does not modify originalTable. You also need to call {@link yfiles.layout.TableLayoutConfigurator#cleanUp} * explicitly if you don't need the {@link yfiles.layout.TableLayoutConfigurator} anymore. *

    - * @param {yfiles.graph.ITable} originalTable The table - * @param {yfiles.geometry.Rect} nodeLayout The final layout of the node that owns the table - * @returns {Array.} The sizes of all leaf rows in originalTable, in their natural order. + * @param originalTable The table + * @param nodeLayout The final layout of the node that owns the table + * @returns The sizes of all leaf rows in originalTable, in their natural order. */ getRowLayout(originalTable:yfiles.graph.ITable,nodeLayout:yfiles.geometry.Rect):number[]; /** * Setup partition grid information from a graph that contains table structures - * @param {yfiles.graph.IGraph} graph + * @param graph */ prepare(graph:yfiles.graph.IGraph):void; /** * Write back all information from the partition grid - * @param {yfiles.graph.IGraph} graph + * @param graph */ restore(graph:yfiles.graph.IGraph):void; /** @@ -93818,7 +93541,7 @@ declare namespace system{ * @see yfiles.algorithms.SpanningTrees * @see yfiles.algorithms.Transitivity * @see yfiles.algorithms.Trees - * @class yfiles.layout.YGraphAdapter + * @class */ export interface YGraphAdapter extends Object{} export class YGraphAdapter { @@ -93827,8 +93550,7 @@ declare namespace system{ *

    * This will create a copy of the originalGraph that has the same structure and makes it available via the {@link yfiles.layout.YGraphAdapter#yGraph} property. *

    - * @param {yfiles.graph.IGraph} originalGraph The original graph whose structure will be copied. - * @constructor + * @param originalGraph The original graph whose structure will be copied. */ constructor(originalGraph:yfiles.graph.IGraph); /** @@ -93839,10 +93561,10 @@ declare namespace system{ *

    * Type parameter K: The type of the keys in the mapper. * Type parameter V: The type of the values in the mapper. - * @param {yfiles.lang.Class} valueType The type of the values in the mapper. - * @param {yfiles.lang.Class} keyType The type of the keys in the mapper. - * @param {yfiles.collections.IMapper.} mapper The mapper to direct requests to. - * @returns {yfiles.algorithms.IDataMap} An {@link yfiles.algorithms.IDataMap} that will delegate the functionality to the mapper. + * @param valueType The type of the values in the mapper. + * @param keyType The type of the keys in the mapper. + * @param mapper The mapper to direct requests to. + * @returns An {@link } that will delegate the functionality to the mapper. * @see yfiles.layout.YGraphAdapter#createDataProvider * @template K,V */ @@ -93855,10 +93577,10 @@ declare namespace system{ *

    * Type parameter K: The type of the keys in the mapper. * Type parameter V: The type of the values in the mapper. - * @param {yfiles.lang.Class} valueType The type of the values in the mapper. - * @param {yfiles.lang.Class} keyType The type of the keys in the mapper. - * @param {function(K): V} getter The mapper delegate to direct requests to. - * @returns {yfiles.algorithms.IDataProvider} A DataProvider that will delegate requests to the getter. + * @param valueType The type of the values in the mapper. + * @param keyType The type of the keys in the mapper. + * @param getter The mapper delegate to direct requests to. + * @returns A DataProvider that will delegate requests to the getter. * @template K,V */ createDataProvider(keyType:yfiles.lang.Class,valueType:yfiles.lang.Class,getter:(key:K)=>V):yfiles.algorithms.IDataProvider; @@ -93870,10 +93592,10 @@ declare namespace system{ *

    * Type parameter K: The type of the keys in the mapper. * Type parameter V: The type of the values in the mapper. - * @param {yfiles.lang.Class} valueType The type of the values in the mapper. - * @param {yfiles.lang.Class} keyType The type of the keys in the mapper. - * @param {yfiles.collections.IMapper.} mapper The mapper to direct requests to. - * @returns {yfiles.algorithms.IDataProvider} A DataProvider that will delegate requests to the mapper. + * @param valueType The type of the values in the mapper. + * @param keyType The type of the keys in the mapper. + * @param mapper The mapper to direct requests to. + * @returns A DataProvider that will delegate requests to the mapper. * @template K,V */ createDataProvider(keyType:yfiles.lang.Class,valueType:yfiles.lang.Class,mapper:yfiles.collections.IMapper):yfiles.algorithms.IDataProvider; @@ -93883,8 +93605,8 @@ declare namespace system{ * This method is useful where algorithms yield {@link yfiles.algorithms.EdgeList} instances as results and the result needs to be * interpreted in terms of the {@link yfiles.layout.YGraphAdapter#originalGraph}. *

    - * @param {yfiles.algorithms.EdgeList} edges The edge list. - * @returns {yfiles.collections.IListEnumerable.} An enumerable that contains the {@link yfiles.layout.YGraphAdapter#getOriginalEdge original} edges for the ones in the list. + * @param edges The edge list. + * @returns An enumerable that contains the {@link #getOriginalEdge original} edges for the ones in the list. */ createEdgeEnumerable(edges:yfiles.algorithms.EdgeList):yfiles.collections.IListEnumerable; /** @@ -93893,8 +93615,8 @@ declare namespace system{ * This method is useful where algorithms require {@link yfiles.algorithms.EdgeList} instances as input and those edges are * available as {@link yfiles.collections.IEnumerable.}s in the {@link yfiles.layout.YGraphAdapter#originalGraph}. *

    - * @param {yfiles.collections.IEnumerable.} edges The edges from the {@link yfiles.layout.YGraphAdapter#originalGraph}. - * @returns {yfiles.algorithms.EdgeList} An {@link yfiles.algorithms.EdgeList} that contains the {@link yfiles.layout.YGraphAdapter#getCopiedEdge copied} edges for the ones in the enumerable. + * @param edges The edges from the {@link #originalGraph}. + * @returns An {@link } that contains the {@link #getCopiedEdge copied} edges for the ones in the enumerable. */ createEdgeList(edges:yfiles.collections.IEnumerable):yfiles.algorithms.EdgeList; /** @@ -93905,8 +93627,8 @@ declare namespace system{ * corresponding dynamic callback that provides the values for the {@link yfiles.layout.YGraphAdapter#getOriginalEdge original edges}. *

    * Type parameter V: The type of the values in the mapper. - * @param {function(yfiles.graph.IEdge): V} getter The mapper delegate to direct read requests to. - * @returns {yfiles.algorithms.IEdgeMap} An {@link yfiles.algorithms.INodeMap} that will delegate reads to the getter. + * @param getter The mapper delegate to direct read requests to. + * @returns An {@link } that will delegate reads to the getter. * @template V */ createEdgeMap(getter:(key:yfiles.graph.IEdge)=>V):yfiles.algorithms.IEdgeMap; @@ -93917,8 +93639,8 @@ declare namespace system{ * corresponding {@link yfiles.collections.IMapper.} instances that provide and accept the values for the {@link yfiles.layout.YGraphAdapter#getOriginalEdge original edges}. *

    * Type parameter V: The type of the values in the mapper. - * @param {yfiles.collections.IMapper.} mapper The mapper to direct requests to. - * @returns {yfiles.algorithms.IEdgeMap} An {@link yfiles.algorithms.IEdgeMap} that will delegate reads and writes to the mapper. + * @param mapper The mapper to direct requests to. + * @returns An {@link } that will delegate reads and writes to the mapper. * @template V */ createEdgeMap(mapper:yfiles.collections.IMapper):yfiles.algorithms.IEdgeMap; @@ -93930,8 +93652,8 @@ declare namespace system{ * instances that use the {@link yfiles.layout.YGraphAdapter#getOriginalNode original nodes}. *

    * Type parameter T: The type of the values in the mapper. - * @param {yfiles.algorithms.INodeMap} nodeMap The map to direct requests to. - * @returns {yfiles.collections.IMapper.} A mapper that will delegate requests to the nodeMap. + * @param nodeMap The map to direct requests to. + * @returns A mapper that will delegate requests to the nodeMap. * @template T */ createEdgeMapper(nodeMap:yfiles.algorithms.INodeMap):yfiles.collections.IMapper; @@ -93943,8 +93665,8 @@ declare namespace system{ * {@link yfiles.collections.IMapper.} instances that use the {@link yfiles.layout.YGraphAdapter#getOriginalEdge original edges} and the {@link yfiles.layout.YGraphAdapter#getOriginalNode original nodes}. *

    * Type parameter T: The type of the values in the mapper. - * @param {yfiles.algorithms.IDataProvider} dataProvider The provider to direct requests to. - * @returns {yfiles.collections.IMapper.} A mapper that will delegate requests to the dataProvider. + * @param dataProvider The provider to direct requests to. + * @returns A mapper that will delegate requests to the dataProvider. * @template T */ createMapper(dataProvider:yfiles.algorithms.IDataProvider):yfiles.collections.IMapper; @@ -93954,8 +93676,8 @@ declare namespace system{ * This method is useful where algorithms yield {@link yfiles.algorithms.NodeList} instances as results and the result needs to be * interpreted in terms of the {@link yfiles.layout.YGraphAdapter#originalGraph}. *

    - * @param {yfiles.algorithms.NodeList} nodes The node list. - * @returns {yfiles.collections.IListEnumerable.} An enumerable that contains the {@link yfiles.layout.YGraphAdapter#getOriginalNode original} nodes for the ones in the list. + * @param nodes The node list. + * @returns An enumerable that contains the {@link #getOriginalNode original} nodes for the ones in the list. */ createNodeEnumerable(nodes:yfiles.algorithms.NodeList):yfiles.collections.IListEnumerable; /** @@ -93964,8 +93686,8 @@ declare namespace system{ * This method is useful where algorithms require {@link yfiles.algorithms.NodeList} instances as input and those nodes are * available as {@link yfiles.collections.IEnumerable.}s in the {@link yfiles.layout.YGraphAdapter#originalGraph}. *

    - * @param {yfiles.collections.IEnumerable.} nodes The nodes from the {@link yfiles.layout.YGraphAdapter#originalGraph}. - * @returns {yfiles.algorithms.NodeList} A {@link yfiles.algorithms.NodeList} that contains the {@link yfiles.layout.YGraphAdapter#getCopiedNode copied} nodes for the ones in the enumerable. + * @param nodes The nodes from the {@link #originalGraph}. + * @returns A {@link } that contains the {@link #getCopiedNode copied} nodes for the ones in the enumerable. */ createNodeList(nodes:yfiles.collections.IEnumerable):yfiles.algorithms.NodeList; /** @@ -93976,8 +93698,8 @@ declare namespace system{ * corresponding dynamic callback that provides the values for the {@link yfiles.layout.YGraphAdapter#getOriginalNode original nodes}. *

    * Type parameter V: The type of the values in the mapper. - * @param {function(yfiles.graph.INode): V} getter The mapper delegate to direct read requests to. - * @returns {yfiles.algorithms.INodeMap} An {@link yfiles.algorithms.INodeMap} that will delegate reads to the getter. + * @param getter The mapper delegate to direct read requests to. + * @returns An {@link } that will delegate reads to the getter. * @template V */ createNodeMap(getter:(key:yfiles.graph.INode)=>V):yfiles.algorithms.INodeMap; @@ -93988,8 +93710,8 @@ declare namespace system{ * corresponding {@link yfiles.collections.IMapper.} instances that provide and accept the values for the {@link yfiles.layout.YGraphAdapter#getOriginalNode original nodes}. *

    * Type parameter V: The type of the values in the mapper. - * @param {yfiles.collections.IMapper.} mapper The mapper to direct requests to. - * @returns {yfiles.algorithms.INodeMap} An {@link yfiles.algorithms.INodeMap} that will delegate reads and writes to the mapper. + * @param mapper The mapper to direct requests to. + * @returns An {@link } that will delegate reads and writes to the mapper. * @template V */ createNodeMap(mapper:yfiles.collections.IMapper):yfiles.algorithms.INodeMap; @@ -94001,33 +93723,33 @@ declare namespace system{ * {@link yfiles.collections.IMapper.} instances that use the {@link yfiles.layout.YGraphAdapter#getOriginalEdge original edges}. *

    * Type parameter T: The type of the values in the mapper. - * @param {yfiles.algorithms.IEdgeMap} edgeMap The map to direct requests to. - * @returns {yfiles.collections.IMapper.} A mapper that will delegate requests to the edgeMap. + * @param edgeMap The map to direct requests to. + * @returns A mapper that will delegate requests to the edgeMap. * @template T */ createNodeMapper(edgeMap:yfiles.algorithms.IEdgeMap):yfiles.collections.IMapper; /** * Yields the edge that has been created as a copy in {@link yfiles.layout.YGraphAdapter#yGraph} to represent the given edge. - * @param {yfiles.graph.IEdge} edge The edge for which the representation is returned. - * @returns {yfiles.algorithms.Edge} The edge that represents edge in {@link yfiles.layout.YGraphAdapter#yGraph}. + * @param edge The edge for which the representation is returned. + * @returns The edge that represents edge in {@link #yGraph}. */ getCopiedEdge(edge:yfiles.graph.IEdge):yfiles.algorithms.Edge; /** * Yields the node that has been created as a copy in {@link yfiles.layout.YGraphAdapter#yGraph} to represent the given node. - * @param {yfiles.graph.INode} node The node for which the representation is returned. - * @returns {yfiles.algorithms.Node} The node that represents node in {@link yfiles.layout.YGraphAdapter#yGraph}. + * @param node The node for which the representation is returned. + * @returns The node that represents node in {@link #yGraph}. */ getCopiedNode(node:yfiles.graph.INode):yfiles.algorithms.Node; /** * Yields the original edge from the {@link yfiles.layout.YGraphAdapter#originalGraph original IGraph} that the given edge has been created for. - * @param {yfiles.algorithms.Edge} edge The edge for which the original instance will be returned. - * @returns {yfiles.graph.IEdge} The original instance. + * @param edge The edge for which the original instance will be returned. + * @returns The original instance. */ getOriginalEdge(edge:yfiles.algorithms.Edge):yfiles.graph.IEdge; /** * Yields the original node from the {@link yfiles.layout.YGraphAdapter#originalGraph original IGraph} that the given node has been created for. - * @param {yfiles.algorithms.Node} node The node for which the original instance will be returned. - * @returns {yfiles.graph.INode} The original instance. + * @param node The node for which the original instance will be returned. + * @returns The original instance. */ getOriginalNode(node:yfiles.algorithms.Node):yfiles.graph.INode; /** @@ -94042,5929 +93764,6 @@ declare namespace system{ originalGraph:yfiles.graph.IGraph; static $class:yfiles.lang.Class; } - }export namespace labeling{ - export enum OptimizationStrategy{ - /** - * An optimization strategy aiming at a good balance between the available optimization options. - * @see yfiles.labeling.MISLabelingBase#optimizationStrategy - */ - BALANCED, - /** - * An optimization strategy that especially reduces overlaps between labels and nodes as well as labels and node halos. - * @see yfiles.labeling.MISLabelingBase#optimizationStrategy - */ - NODE_OVERLAP, - /** - * An optimization strategy that especially reduces overlaps between labels. - * @see yfiles.labeling.MISLabelingBase#optimizationStrategy - */ - LABEL_OVERLAP, - /** - * An optimization strategy that especially reduces overlaps between labels and edges. - * @see yfiles.labeling.MISLabelingBase#optimizationStrategy - */ - EDGE_OVERLAP, - /** - * An optimization strategy that mainly tries to satisfy the preferences described by a {@link yfiles.layout.PreferredPlacementDescriptor} - * associated with edge labels. - * @see yfiles.labeling.MISLabelingBase#optimizationStrategy - */ - PREFERRED_PLACEMENT, - /** - * Use no optimization strategy. - */ - NONE - } - /** - * A generic labeling algorithm for placing the labels of a graph. - *

    - * {@graph {"ann":{"s":[30,30],"d":1,"c":1,"lblFlip":1,"lblB":1},"n":[[249.44,602.63,[[212.75,626.98,32.69,18.7,"Node"]]],[306.92,686.94,[[270.24,711.29,32.69,18.7,"Node"]]],[481.7,787.85,[[515.7,812.2,32.69,18.7,"Node"]]],[219.36,505.12,[[182.67,529.47,32.69,18.7,"Node"]]],[386.71,750.57,[[350.02,774.92,32.69,18.7,"Node"]]],[885,353.19,[[883.66,405.89,32.69,18.7,"Node"]]],[840.72,261.25,[[839.38,257.25,32.69,18.7,"Node"]]],[583.46,112.72,[[582.11,108.72,32.69,18.7,"Node"]]],[249.44,305.56,[[212.75,329.91,32.69,18.7,"Node"]]],[682.94,135.42,[[681.6,131.42,32.69,18.7,"Node"]]],[481.7,120.34,[[480.35,116.34,32.69,18.7,"Node"]]],[771.32,186.45,[[769.97,182.45,32.69,18.7,"Node"]]],[219.36,403.07,[[182.67,427.42,32.69,18.7,"Node"]]],[306.92,221.25,[[270.24,245.6,32.69,18.7,"Node"]]],[386.71,157.62,[[385.36,153.62,32.69,18.7,"Node"]]]],"e":[[0,1,[],[[259.45,643.51,32.03,18.7,0.826238774315996,-0.5633200580636204,"Edge"]]],[3,0,[],[[221.61,542.21,32.03,18.7,0.9555728057861415,-0.294755174410902,"Edge"]]],[1,4,[],[[349.3,723.77,32.03,18.7,0.6234898018587343,-0.7818314824680294,"Edge"]]],[4,2,[],[[418.05,771.98,32.03,18.7,0.36534102436639637,-0.9308737486442037,"Edge"]]],[3,5,[],[[262.64,513.66,32.03,18.7,-0.2225209339563144,-0.9749279121818236,"Edge"]]],[2,5,[],[[534.29,789.82,32.03,18.7,-0.7330518718298267,-0.680172737770919,"Edge"]]],[4,5,[],[[427.6,744.91,32.03,18.7,-0.6234898018587336,-0.7818314824680299,"Edge"]]],[1,5,[],[[350.46,685.47,32.03,18.7,-0.5000000000000003,-0.8660254037844386,"Edge"]]],[0,5,[],[[298.89,624.2,32.03,18.7,-0.3653410243663947,-0.9308737486442044,"Edge"]]],[5,6,[],[[878.37,323.28,32.03,18.7,0.9009688679024184,-0.4338837391175598,"Edge"]]],[7,5,[],[[611.91,162.36,32.03,18.7,0.6234898018587336,-0.7818314824680299,"Edge"]]],[8,5,[],[[292.35,341.41,32.03,18.7,0.07473009358642455,-0.9972037971811801,"Edge"]]],[9,7,[],[[645.8,157.7,32.03,18.7,0.2225209339563144,-0.9749279121818236,"Edge"]]],[7,10,[],[[549.55,131.38,32.03,18.7,-0.07473009358642278,-0.9972037971811804,"Edge"]]],[10,5,[],[[515.14,167.59,32.03,18.7,0.5000000000000003,-0.8660254037844386,"Edge"]]],[6,11,[],[[796.42,239.83,32.03,18.7,0.7330518718298267,-0.680172737770919,"Edge"]]],[11,9,[],[[733.51,192.55,32.03,18.7,0.4999999999999995,-0.866025403784439,"Edge"]]],[8,12,[],[[267.76,373.25,32.03,18.7,-0.9555728057861401,-0.29475517441090626,"Edge"]]],[12,3,[],[[253.06,467.1,32.03,18.7,-1.0,-2.7257675990577433E-15,"Edge"]]],[12,5,[],[[265.18,415.76,32.03,18.7,-0.07473009358642366,-0.9972037971811802,"Edge"]]],[13,5,[],[[347.6,261.29,32.03,18.7,0.22252093395631525,-0.9749279121818234,"Edge"]]],[13,8,[],[[284.16,291.63,32.03,18.7,-0.826238774315993,-0.5633200580636247,"Edge"]]],[10,14,[],[[450.54,153.46,32.03,18.7,-0.3653410243663931,-0.930873748644205,"Edge"]]],[14,13,[],[[349.3,214.42,32.03,18.7,-0.6234898018587314,-0.7818314824680315,"Edge"]]],[14,5,[],[[424.24,201.56,32.03,18.7,0.36534102436639554,-0.930873748644204,"Edge"]]]],"vp":[182.0,90.0,735.0,728.0]}} Node labels and edge labels placed by the labeling algorithm - *

    - *

    - * This algorithm can switch between two internal implementations. By default, it generates high quality label placements - * even for difficult instances. This especially holds if the label models allow a large number of different - * {@link yfiles.layout.LabelCandidate}s, i.e., there is a high potential for optimizations. - *

    - *

    - * If the duration of the calculation is of utmost importance, the internal algorithm can be changed to a simpler - * implementation by setting {@link yfiles.labeling.GenericLabeling#maximumDuration} to 0. On the downside, the results will not be as good as the ones of the default mode. - *

    - *

    - * In default mode, this algorithm reduces the labeling problem to the maximum independent set (MIS) problem and solves the - * problem using simulated annealing. It is inspired by the article from Christensen, Marks and Shieber: A General - * Cartographic Labelling Algorithm. - *

    - *

    - * It is recommended to use {@link yfiles.layout.IEdgeLabelLayoutModel}s and - * {@link yfiles.layout.INodeLabelLayoutModel}s which allow free positioning of labels to achieve best results with this generic - * labeling algorithm. - *

    - *

    - * This algorithm works according to the general labeling concept defined by {@link yfiles.labeling.LabelingBase}. - *

    - * @see yfiles.labeling.LabelingBase - * @class yfiles.labeling.GenericLabeling - * @extends {yfiles.labeling.MISLabelingBase} - */ - export interface GenericLabeling extends yfiles.labeling.MISLabelingBase{} - export class GenericLabeling { - /** - * Creates a new instance of {@link yfiles.labeling.GenericLabeling} with default settings. - * @constructor - */ - constructor(); - /** - * Gets or sets whether or not this algorithm behaves deterministically. - *

    - * If enabled, it produces the same results given the same input graph and settings. - *

    - * @type {boolean} - */ - deterministic:boolean; - /** - * Gets or sets the time limit for this algorithm in milliseconds. - *

    - * 0x7FFFFFFF denotes that there is no time limit. Values have to be greater than or equal to 0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given maximum duration is negative - * @type {number} - */ - maximumDuration:number; - static $class:yfiles.lang.Class; - } - /** - * An abstract base class for generic labeling algorithms which place labels of graphs. - *

    - * Labeling algorithms compute positions for labels in a given graph. The main goal is to place labels such that they do - * not overlap with other graph elements. Labeling algorithms do not modify positions of nodes and edges. - *

    - *

    - * Concept - *

    - *

    - * Generic labeling algorithms use the model associated with a label (i.e. {@link yfiles.layout.INodeLabelLayout#labelModel node label model} for nodes and {@link yfiles.layout.IEdgeLabelLayout#labelModel edge label model} - * for edges). The models are necessary to compute a set of {@link yfiles.layout.LabelCandidate}s, i.e., candidate positions for a - * label. Then, one best matching candidate from the set will be selected. This selection depends on several preferences, e.g., if {@link yfiles.labeling.LabelingBase#removeNodeOverlaps overlaps with nodes} - * are not allowed, candidates encoding overlapping positions will be ignored. - *

    - *

    - * After one {@link yfiles.layout.LabelCandidate} has been chosen, the label model's parameter is used for encoding the label - * position. Therefore, the result of a generic labeling algorithm is one model parameter per label. The parameter is {@link yfiles.layout.ILabelLayout#modelParameter stored with the label} - * and expresses the label position with respect to the underlying label model. - *

    - *

    - * Features - *

    - *

    - * This class provides a general frame, offering functionality which can be shared by other generic labeling algorithms. - *

    - *

    - * To only place labels or a subset of labels, the main labeling methods Label, {@link yfiles.labeling.LabelingBase#label} and {@link yfiles.labeling.LabelingBase#label} - * are offered. - *

    - *

    - * As this class represents an {@link yfiles.layout.LayoutStageBase}, it allows usage as a generic labeling stage. By combining it - * with a - * {@link yfiles.layout.LayoutStageBase#coreLayout core layouter}, the labeling will take place after the core layouter was executed - * ({@link yfiles.labeling.LabelingBase#applyLayout}). This is especially useful if the core layouter does not support label - * handling. - *

    - * @class yfiles.labeling.LabelingBase - * @extends {yfiles.layout.LayoutStageBase} - */ - export interface LabelingBase extends yfiles.layout.LayoutStageBase{} - export class LabelingBase { - /** - * Creates a new {@link yfiles.labeling.LabelingBase} instance with default settings. - * @constructor - */ - constructor(); - /** - * Returns the profit for placing a {@link yfiles.layout.LabelCandidate} with respect to the current {@link yfiles.labeling.LabelingBase#profitModel profit model}. - *

    - * Method {@link yfiles.layout.IProfitModel#getProfit} on the current profit model will be invoked to compute the actual profit - * value. - *

    - *

    - * The higher the profit (rank) of a candidate is, the more likely it will be chosen as actual position by the algorithm. - *

    - * @param {yfiles.layout.LabelCandidate} candidate a label candidate - * @returns {number} the profit value between 0 and 1 - */ - getProfit(candidate:yfiles.layout.LabelCandidate):number; - /** - * Places the labels of the input graph restricting the placement to labels contained in the given lists. - *

    - * The {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey selection} will not be considered; the given lists will define the selection of labels that are to be placed. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.YList} nodeLabels a list of {@link yfiles.layout.INodeLabelLayout}s defining the set of node labels that will be placed - * @param {yfiles.algorithms.YList} edgeLabels a list of {@link yfiles.layout.IEdgeLabelLayout}s defining the set of edge labels that will be placed - */ - label(graph:yfiles.layout.LayoutGraph,nodeLabels:yfiles.algorithms.YList,edgeLabels:yfiles.algorithms.YList):void; - /** - * Places the labels of the input graph using a {@link yfiles.algorithms.IDataProvider} registered to the input graph with the - * given key for determining which labels to place. - *

    - * Instead of considering the current {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey selection key}, the {@link yfiles.algorithms.IDataProvider} registered with the given key will - * be used for selecting labels. Invoking this method has the same effect as first {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey specifying the key} as selection key and - * then invoking Label. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {Object} [key=null] the {@link yfiles.algorithms.IDataProvider} key for label selection - */ - label(graph:yfiles.layout.LayoutGraph,key?:Object):void; - /** - * Data provider key for mapping models to edge/node labels - *

    - * The {@link yfiles.layout.INodeLabelLayoutModel}s and {@link yfiles.layout.IEdgeLabelLayoutModel}s linked to - * {@link yfiles.layout.INodeLabelLayout}s and {@link yfiles.layout.IEdgeLabelLayout}s by this {@link yfiles.algorithms.IDataProvider} are taken as - * replacement models. This means that the original model is internally replaced by another model when computing valid - * positions for the label. A model parameter that fits the calculated position of the replacement model best is set for - * the original label model. - *

    - * @const - * @static - * @type {yfiles.algorithms.ILabelLayoutDpKey.} - */ - static LABEL_MODEL_DP_KEY:yfiles.algorithms.ILabelLayoutDpKey; - /** - * Gets or sets the {@link yfiles.layout.IProfitModel} for ranking the {@link yfiles.layout.LabelCandidate}s for labels. - *

    - * The profit model is used when {@link yfiles.labeling.LabelingBase#getProfit calculating the profit} of a candidate. - *

    - *

    - * The higher the profit (rank) of a candidate is, the more likely it will be chosen as actual position by the algorithm. - *

    - * @see yfiles.layout.IProfitModel - * @see yfiles.layout.SimpleProfitModel - * @see yfiles.labeling.LabelingBase#getProfit - * @type {yfiles.layout.IProfitModel} - */ - profitModel:yfiles.layout.IProfitModel; - /** - * Gets or sets whether or not internal node labels are allowed to move. - *

    - * A node label is internal if the label's boundaries are completely within the node's boundaries. - *

    - * @type {boolean} - */ - moveInternalNodeLabels:boolean; - /** - * Gets or sets whether or not a post-processing step to reduce the number of label overlaps is applied. - * @type {boolean} - */ - reduceLabelOverlaps:boolean; - /** - * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with nodes are removed. - *

    - * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely - * that an overlapping candidate is finally chosen. - *

    - *

    - * The detection and removal of labels that overlap with nodes may increase the runtime of this algorithm. - *

    - * @type {boolean} - */ - removeNodeOverlaps:boolean; - /** - * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with edges are removed. - *

    - * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely - * that an overlapping candidate is finally chosen. - *

    - *

    - * The detection and removal of labels that overlap with edges may increase the runtime of this algorithm. - *

    - * @type {boolean} - */ - removeEdgeOverlaps:boolean; - /** - * Gets or sets whether or not labels assigned to nodes are placed. - * @see yfiles.labeling.LabelingBase#affectedLabelsDpKey - * @type {boolean} - */ - placeNodeLabels:boolean; - /** - * Gets or sets whether or not labels assigned to edges are placed. - * @see yfiles.labeling.LabelingBase#affectedLabelsDpKey - * @type {boolean} - */ - placeEdgeLabels:boolean; - /** - * Gets or sets the {@link yfiles.algorithms.IDataProvider} key to mark labels as selected for placement. - *

    - * If a {@link yfiles.algorithms.IDataProvider} is registered with this key, only the selected labels will be placed, while all - * other labels are considered fixed. - *

    - *

    - * The registered {@link yfiles.algorithms.IDataProvider} needs to map from {@link yfiles.layout.ILabelLayout} to {@link boolean} where true indicates - * that a label should be placed and false indicates that a label should be ignored. - *

    - * @type {Object} - */ - affectedLabelsDpKey:Object; - /** - * Gets or sets whether or not edge labels are automatically flipped if otherwise they would be upside-down. - * @type {boolean} - */ - autoFlipping:boolean; - /** - * Gets or sets whether or not edge labels may overlap with edges belonging to the same edge group as the label's edge. - *

    - * An edge group is a set of edges which share a common bus near the target or source node. They are defined using - * {@link yfiles.algorithms.IDataProvider}s registered with {@link yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY} and - * {@link yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY}. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - * @type {boolean} - */ - edgeGroupOverlapAllowed:boolean; - static $class:yfiles.lang.Class; - } - /** - * A base class for generic labeling algorithms which solve the labeling problem by reducing it to the maximum independent - * set (MIS) problem. - *

    - * Different optimization strategies are available; an optimization strategy defines which criteria the algorithm should - * try to optimize. For example, reducing the number of overlaps between labels and nodes may be considered more important - * than reducing the number of overlaps between labels and edges. - *

    - * @see yfiles.labeling.GenericLabeling - * @class yfiles.labeling.MISLabelingBase - * @extends {yfiles.labeling.LabelingBase} - */ - export interface MISLabelingBase extends yfiles.labeling.LabelingBase{} - export class MISLabelingBase { - /** - * Creates a new {@link yfiles.labeling.MISLabelingBase} instance with default settings. - * @constructor - */ - constructor(); - /** - * Returns a {@link yfiles.algorithms.INodeMap} which assigns a profit value to each node in the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. - *

    - * As the conflict graph's nodes represent {@link yfiles.layout.LabelCandidate}s, this mapping gives the profit value of label - * candidates. The assigned value is defined as the difference between the {@link yfiles.labeling.LabelingBase#getProfit profit induced by the profit model} and the - * candidate's {@link yfiles.layout.LabelCandidate#overlapPenalty overlap penalty}. - *

    - *

    - * The returned map is a mapping from each {@link yfiles.algorithms.Node} (representing a label candidate) in the {@link yfiles.labeling.MISLabelingBase#conflictGraph} - * to a {@link number} representing the profit value of the candidate. - *

    - * @returns {yfiles.algorithms.INodeMap} a mapping from nodes (i.e. label candidates) to their profit value - */ - assignProfit():yfiles.algorithms.INodeMap; - /** - * Creates the edges in the conflict graph, i.e., one edge between two nodes if the corresponding - * {@link yfiles.layout.LabelCandidate}s intersect. - *

    - * The nodes of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph} represent - * {@link yfiles.layout.LabelCandidate}s. An edge between candidates signals that they overlap. A maximum independent set will be - * computed on the conflict graph to choose candidates such that no two candidates overlap. - *

    - *

    - * This method may be overridden to change the structure of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. Edges between two - * {@link yfiles.layout.LabelCandidate}s in the conflict graph signal that the two candidates should not be selected together. By - * overriding this method, arbitrary reasons for indicating that two label candidates should not be chosen at the same time - * can be modeled. - *

    - * @see yfiles.labeling.MISLabelingBase#conflictGraph - * @see yfiles.labeling.MISLabelingBase#nodesToBoxes - * @see yfiles.labeling.MISLabelingBase#boxesToNodes - * @see yfiles.labeling.MISLabelingBase#nodesToID - * @protected - */ - createEdges():void; - /** - * Indicates that an overlap between a {@link yfiles.layout.LabelCandidate} and an {@link yfiles.algorithms.Edge} of the input graph has - * been found. - *

    - * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor - * indicating how much the two elements overlap. The factor influences the {@link yfiles.labeling.LabelingBase#getProfit profit} assigned to the given label candidate. - *

    - *

    - * This method may be overridden to realize a custom strategy for reacting to overlaps between label candidates and edges. - *

    - * @param {yfiles.layout.LabelCandidate} labelCandidate the {@link yfiles.layout.LabelCandidate} overlapping with the given {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Edge} edge the {@link yfiles.algorithms.Edge} overlapping with the given {@link yfiles.layout.LabelCandidate} - * @param {yfiles.algorithms.LineSegment} eSegment the {@link yfiles.algorithms.LineSegment} of the given edge overlapping with the given candidate - * @see yfiles.labeling.MISLabelingBase#conflictGraph - * @see yfiles.labeling.MISLabelingBase#createEdges - */ - foundEdgeOverlap(labelCandidate:yfiles.layout.LabelCandidate,edge:yfiles.algorithms.Edge,eSegment:yfiles.algorithms.LineSegment):void; - /** - * Indicates that an overlap between a {@link yfiles.layout.LabelCandidate} and a {@link yfiles.layout.NodeHalo} of the input graph has - * been found. - *

    - * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor - * indicating how much the two elements overlap. The factor influences the {@link yfiles.labeling.LabelingBase#getProfit profit} assigned to the given label candidate. - *

    - *

    - * This method may be overridden to realize a custom strategy for reacting to overlaps between label candidates and node - * halos. - *

    - * @param {yfiles.layout.LabelCandidate} labelCandidate the {@link yfiles.layout.LabelCandidate} overlapping with a node halo - * @param {yfiles.algorithms.Node} node the {@link yfiles.algorithms.Node} whose {@link yfiles.layout.NodeHalo} is overlapping with the given label candidate - * @param {yfiles.algorithms.YRectangle} haloRect the bounding box of the {@link yfiles.layout.NodeHalo} overlapping with the given label candidate - * @see yfiles.labeling.MISLabelingBase#conflictGraph - * @see yfiles.labeling.MISLabelingBase#createEdges - */ - foundHaloOverlap(labelCandidate:yfiles.layout.LabelCandidate,node:yfiles.algorithms.Node,haloRect:yfiles.algorithms.YRectangle):void; - /** - * Indicates that an overlap between two {@link yfiles.layout.LabelCandidate}s has been found. - *

    - * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the - * {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor indicating how much the two candidates overlap. The factor influences the penalty - * assigned when both candidates are chosen, i.e., the penalty for the corresponding overlap. - *

    - *

    - * This method may be overridden to realize a custom strategy for reacting to overlaps among - * {@link yfiles.layout.LabelCandidate}s. - *

    - * @param {yfiles.layout.LabelCandidate} candidate1 the first overlapping {@link yfiles.layout.LabelCandidate} - * @param {yfiles.layout.LabelCandidate} candidate2 the second overlapping {@link yfiles.layout.LabelCandidate} - * @param {yfiles.algorithms.Edge} edge the {@link yfiles.algorithms.Edge} in {@link yfiles.labeling.MISLabelingBase#conflictGraph} representing the found overlap - * @see yfiles.labeling.MISLabelingBase#conflictGraph - * @see yfiles.labeling.MISLabelingBase#createEdges - */ - foundLabelOverlap(candidate1:yfiles.layout.LabelCandidate,candidate2:yfiles.layout.LabelCandidate,edge:yfiles.algorithms.Edge):void; - /** - * Indicates that an overlap between a {@link yfiles.layout.LabelCandidate} and a {@link yfiles.algorithms.Node} of the input graph has - * been found. - *

    - * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor - * indicating how much the two elements overlap. The factor influences the {@link yfiles.labeling.LabelingBase#getProfit profit} assigned to the given label candidate. - *

    - *

    - * This method may be overridden to realize a custom strategy for reacting to overlaps between label candidates and nodes. - *

    - * @param {yfiles.layout.LabelCandidate} labelCandidate the {@link yfiles.layout.LabelCandidate} overlapping with the given node - * @param {yfiles.algorithms.Node} node the {@link yfiles.algorithms.Node} overlapping with the given label candidate - * @param {yfiles.algorithms.YRectangle} nodeBox the bounding box of the given node - * @see yfiles.labeling.MISLabelingBase#conflictGraph - * @see yfiles.labeling.MISLabelingBase#createEdges - */ - foundNodeOverlap(labelCandidate:yfiles.layout.LabelCandidate,node:yfiles.algorithms.Node,nodeBox:yfiles.algorithms.YRectangle):void; - /** - * The input graph that will be labeled. - * @type {yfiles.layout.LayoutGraph} - */ - graph:yfiles.layout.LayoutGraph; - /** - * The conflict graph modeling - * {@link yfiles.layout.LabelCandidate}s as nodes and edges between them as conflicts, i.e., overlaps among candidates. - * @see yfiles.labeling.MISLabelingBase#createEdges - * @type {yfiles.algorithms.Graph} - */ - conflictGraph:yfiles.algorithms.Graph; - /** - * The mapping from each node in the {@link yfiles.labeling.MISLabelingBase#conflictGraph} to the corresponding {@link yfiles.layout.LabelCandidate} - * instance. - * @see yfiles.labeling.MISLabelingBase#conflictGraph - * @type {yfiles.algorithms.INodeMap} - */ - nodesToBoxes:yfiles.algorithms.INodeMap; - /** - * The mapping from the {@link yfiles.layout.LabelCandidate}s to the corresponding nodes in the - * {@link yfiles.labeling.MISLabelingBase#conflictGraph}. - * @see yfiles.labeling.MISLabelingBase#conflictGraph - * @type {yfiles.collections.IMap.} - */ - boxesToNodes:yfiles.collections.IMap; - /** - * The mapping from nodes in the {@link yfiles.labeling.MISLabelingBase#conflictGraph} to a corresponding integer value (ID). - *

    - * The ID denotes the actual label which a {@link yfiles.layout.LabelCandidate} (i.e. a node in the conflict graph) belongs to. - *

    - * @type {yfiles.algorithms.INodeMap} - */ - nodesToID:yfiles.algorithms.INodeMap; - /** - * Gets or sets the ratio between the internal profit (ip) and the profit computed using the specified {@link yfiles.labeling.LabelingBase#profitModel profit model} (sp). - *

    - * This ratio defines how to weight the two profit values (ip) and (sp). The overall ratio is then computed as - * ratio * sp + (1 - ratio) * ip. The profit of a {@link yfiles.layout.LabelCandidate} defines how likely it is that the candidate - * will be chosen as actual label position. - *

    - *

    - * The ratio is defined to be a value from the interval [0,1]. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given ratio is negative or larger than 1 - * @see yfiles.labeling.LabelingBase#profitModel - * @see yfiles.labeling.MISLabelingBase#optimizationStrategy - * @type {number} - */ - customProfitModelRatio:number; - /** - * Gets or sets the optimization strategy which defines the importance of criteria when optimizing labeling results. - *

    - * Depending on the strategy, criteria like label-node overlaps, label-label overlaps and others are more or less - * important. For example, if the number of overlaps between labels and nodes is the most important criterion for the - * result, strategy {@link yfiles.labeling.OptimizationStrategy#NODE_OVERLAP} should be chosen. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given strategy is unknown - * @type {yfiles.labeling.OptimizationStrategy} - */ - optimizationStrategy:yfiles.labeling.OptimizationStrategy; - /** - * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with nodes are removed. - *

    - * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely - * that an overlapping candidate is finally chosen. - *

    - *

    - * The detection and removal of labels that overlap with nodes may increase the runtime of this algorithm. - *

    - * @type {boolean} - */ - removeNodeOverlaps:boolean; - /** - * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with edges are removed. - *

    - * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely - * that an overlapping candidate is finally chosen. - *

    - *

    - * The detection and removal of labels that overlap with edges may increase the runtime of this algorithm. - *

    - * @type {boolean} - */ - removeEdgeOverlaps:boolean; - /** - * Gets or sets whether or not the number of ambiguous label placements is reduced by applying an additional optimization - * step. - *

    - * A label position is considered to be ambiguous if it might not be possible to identify to which graph element the label - * belongs. For example, an edge label placed in between two edges is ambiguous. - *

    - *

    - * Enabling this reduction step does not guarantee that no ambiguous placements are selected. The algorithm will try to - * avoid them if other good positions without ambiguity are available. Other aspects like {@link yfiles.layout.PreferredPlacementDescriptor preferred placement} for edge - * labels will still be more important than the reduction of ambiguity. - *

    - * @type {boolean} - */ - reduceAmbiguity:boolean; - static $class:yfiles.lang.Class; - } - /** - * Specifies custom data for the {@link yfiles.labeling.GenericLabeling}. - * @class yfiles.labeling.LabelingData - * @extends {yfiles.layout.LayoutData} - */ - export interface LabelingData extends yfiles.layout.LayoutData{} - export class LabelingData { - constructor(); - /** - * Gets or sets the collection of labels that shall be placed by the algorithm. - *

    - * Note that the {@link yfiles.layout.DpKeyItemCollection.#dpKey} has to be set to the key assigned to {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey}. - *

    - * @see yfiles.labeling.LabelingBase#affectedLabelsDpKey - * @type {yfiles.layout.DpKeyItemCollection.} - */ - affectedLabels:yfiles.layout.DpKeyItemCollection; - /** - * Gets or sets the mapping from node labels to an {@link yfiles.layout.INodeLabelLayoutModel} used by the labeling algorithm - * instead of the original label model. - *

    - * If a label has no mapping, the original model is used as normal. - *

    - * @see yfiles.labeling.LabelingBase#LABEL_MODEL_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - nodeLabelModels:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from edge labels to an {@link yfiles.layout.IEdgeLabelLayoutModel} used by the labeling algorithm - * instead of the original label model. - *

    - * If a label has no mapping, the original model is used as normal. - *

    - * @see yfiles.labeling.LabelingBase#LABEL_MODEL_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - edgeLabelModels:yfiles.layout.ItemMapping; - /** - * Gets or sets a mapping from edges to an object representing their source edge group. - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - sourceGroupIds:yfiles.layout.ItemMapping; - /** - * Gets or sets a mapping from edges to an object representing their target edge group. - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - targetGroupIds:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. - * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - nodeHalos:yfiles.layout.ItemMapping; - /** - * Gets or sets the AbortHandler used during the layout. - * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY - * @type {yfiles.algorithms.AbortHandler} - */ - abortHandler:yfiles.algorithms.AbortHandler; - static $class:yfiles.lang.Class; - } - }export namespace partial{ - export enum EdgeRoutingStrategy{ - /** - * A routing strategy that produces orthogonal routes for partial edges and inter-edges. - *

    - * A route of an edge is called orthogonal if it only consists of vertical and horizontal segments. - *

    - *

    - * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. - *

    - * @see yfiles.partial.PartialLayout#edgeRoutingStrategy - */ - ORTHOGONAL, - /** - * A routing strategy that produces straight-line routes for partial edges and inter-edges. - *

    - * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. - *

    - * @see yfiles.partial.PartialLayout#edgeRoutingStrategy - */ - STRAIGHTLINE, - /** - * Automatically chooses a suitable routing strategy for partial edges and inter-edges by analyzing the routes of the fixed - * edges. If, for example, all fixed edges have orthogonal edge routes, inter-edges will be routed orthogonally, too. - *

    - * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. - *

    - * @see yfiles.partial.PartialLayout#edgeRoutingStrategy - */ - AUTOMATIC, - /** - * A routing strategy that produces organic routes for partial edges and inter-edges. - *

    - * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. - *

    - * @see yfiles.partial.PartialLayout#edgeRoutingStrategy - */ - ORGANIC, - /** - * A routing strategy that produces octilinear routes for partial edges and inter-edges. - *

    - * A route of an edge is called octilinear if the slope of each segment is a multiple of 45 degrees. - *

    - *

    - * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. - *

    - * @see yfiles.partial.PartialLayout#edgeRoutingStrategy - */ - OCTILINEAR - } - export enum ComponentAssignmentStrategy{ - /** - * A component assignment strategy that assigns each partial node to a separate subgraph component. - * @see yfiles.partial.PartialLayout#componentAssignmentStrategy - */ - SINGLE, - /** - * A component assignment strategy where the subgraph components correspond to the connected components of the graph - * induced by the partial elements. - * @see yfiles.partial.PartialLayout#componentAssignmentStrategy - */ - CONNECTED, - /** - * A component assignment strategy where the subgraph components correspond to the clusters computed by a clustering - * algorithm based on {@link yfiles.algorithms.Groups#edgeBetweennessClustering edge betweenness centrality}. - * @see yfiles.partial.PartialLayout#componentAssignmentStrategy - */ - CLUSTERING, - /** - * A component assignment strategy where the subgraph components are defined by the user. Two partial nodes are considered - * to be in the same component if the {@link yfiles.algorithms.IDataProvider} associated with key {@link yfiles.partial.PartialLayout#COMPONENT_ID_DP_KEY} - * returns the same object for both of them. - * @see yfiles.partial.PartialLayout#COMPONENT_ID_DP_KEY - * @see yfiles.partial.PartialLayout#componentAssignmentStrategy - */ - CUSTOMIZED - } - export enum SubgraphPlacement{ - /** - * A positioning strategy which tries to place each subgraph component close to the barycenter of its graph neighbors. - * @see yfiles.partial.PartialLayout#subgraphPlacement - */ - BARYCENTER, - /** - * A positioning strategy which tries to place each subgraph component close to its original position. - * @see yfiles.partial.PartialLayout#subgraphPlacement - */ - FROM_SKETCH - } - export enum LayoutOrientation{ - /** - * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each - * predecessor of a node v is placed above v and each successor below v. - * @see yfiles.partial.PartialLayout#layoutOrientation - */ - TOP_TO_BOTTOM, - /** - * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each - * predecessor of a node v is placed below v and each successor above v. - * @see yfiles.partial.PartialLayout#layoutOrientation - */ - BOTTOM_TO_TOP, - /** - * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each - * predecessor of a node v is placed to the left of v and each successor to the right of v. - * @see yfiles.partial.PartialLayout#layoutOrientation - */ - LEFT_TO_RIGHT, - /** - * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each - * predecessor of a node v is placed to the right of v and each successor to the left of v. - * @see yfiles.partial.PartialLayout#layoutOrientation - */ - RIGHT_TO_LEFT, - /** - * Layout orientation specifier where the algorithm automatically detects the layout orientation. - *

    - * The algorithm analyzes the flow direction of fixed edges in the current drawing. If there is no common flow direction, - * the results are the same as for {@link yfiles.partial.LayoutOrientation#NONE}. Otherwise, the layout orientation is either - * {@link yfiles.partial.LayoutOrientation#TOP_TO_BOTTOM}, {@link yfiles.partial.LayoutOrientation#BOTTOM_TO_TOP}, {@link yfiles.partial.LayoutOrientation#LEFT_TO_RIGHT} - * or {@link yfiles.partial.LayoutOrientation#RIGHT_TO_LEFT}. - *

    - * @see yfiles.partial.PartialLayout#layoutOrientation - */ - AUTO_DETECT, - /** - * Layout orientation specifier where the layout orientation is completely ignored. - * @see yfiles.partial.PartialLayout#layoutOrientation - */ - NONE - } - /** - * This class represents a partial layout algorithm which changes the coordinates for a given set of graph elements (called - * partial elements) only. - *

    - * The location and size of the remaining elements (called fixed elements) is not allowed to be changed.Layout Style - *

    - *

    - * This partial layout algorithm offers a kind of generic partial layout support for other existing layout algorithms. - * Hence, its layout style heavily depends on the selected {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm} as well as the specified {@link yfiles.partial.PartialLayout#edgeRouter edge router} or - * {@link yfiles.partial.PartialLayout#edgeRoutingStrategy edge routing strategy}. - *

    - *

    - * The partial layout is suitable for applications where users may incrementally add new elements to an existing drawing. - * The added elements should be arranged so that they fit best possible into the given diagram without making any changes - * to the already existing layout. Hence, the so-called mental map of the existing drawing is preserved. - *

    - *

    - * {@graph {"ann":{"s":[60,30],"d":1},"n":[[49.74,127.62,295.26,342.38,2,[[49.74,150,295.26,22.38,"Group"]]],[270,425,[[291.33,449.35,17.35,18.7,"16"]]],[270,375,[[291.33,399.35,17.35,18.7,"18"]]],[200,375,[[221.33,399.35,17.35,18.7,"19"]]],[64.74,405.17,1,[[86.07,429.52,17.35,18.7,"13"]]],[200,265,[[221.33,289.35,17.35,18.7,"20"]]],[100,215,[[124.66,239.35,10.67,18.7,"2"]]],[100,165,[[124.66,189.35,10.67,18.7,"3"]]],[100,265,[[121.33,289.35,17.35,18.7,"22"]]],[-420.63,317.87,375.21,302.93,3,[[-420.63,340.25,375.21,22.38,"Group"]]],[-179.98,534.8,1,[[-155.31,559.15,10.67,18.7,"6"]]],[-163.42,363.25,1,[[-142.09,387.6,17.35,18.7,"12"]]],[-371.63,364.65,1,[[-346.96,389,10.67,18.7,"8"]]],[-333.29,532.76,1,[[-308.62,557.11,10.67,18.7,"9"]]],[-176.17,453.25,1,[[-154.84,477.6,17.35,18.7,"11"]]],[370,215,[[394.66,239.35,10.67,18.7,"1"]]],[370,165,[[394.66,189.35,10.67,18.7,"4"]]],[-130.4,215,1,[[-105.74,239.35,10.67,18.7,"5"]]],[-224.19,264.44,1,[[-199.52,288.79,10.67,18.7,"7"]]],[370,425,[[391.33,449.35,17.35,18.7,"10"]]],[370,265,[[391.33,289.35,17.35,18.7,"14"]]],[370,375,[[391.33,399.35,17.35,18.7,"15"]]],[270,505,[[291.33,529.35,17.35,18.7,"17"]]],[440,165,[[461.33,189.35,17.35,18.7,"21"]]]],"e":[[13,12,0,-15,0,15],[13,14],[10,13,-30,4,0,0],[14,11],[6,7,0,-15,0,15],[5,8,-30,0,30,0],[1,2,0,-15,0,15],[2,3,-30,0,30,0],[4,3],[15,6,-30,0,30,0],[15,16,0,-15,0,15],[7,16,30,0,-30,0],[6,17],[17,18],[18,12],[10,19],[15,20,0,15,0,-15],[19,21,0,-15,0,15],[21,20,0,-15,0,15],[19,1,-30,0,30,0],[1,22,0,15,0,-15],[20,5,-30,0,30,0],[16,23,30,0,-30,0],[11,4,-30,0,0,0]],"vp":[-421.0,127.0,921.0,494.0]}} The input graph where marked nodes denote the partial elements that were incrementally added to the existing diagram. {@graph {"ann":{"s":[60,30],"d":1},"n":[[67.37,127.62,260,342.38,2,[[67.37,150,260,22.38,"Group"]]],[252.37,425,[[273.7,449.35,17.35,18.7,"16"]]],[252.37,375,[[273.7,399.35,17.35,18.7,"18"]]],[182.37,375,[[203.7,399.35,17.35,18.7,"19"]]],[182.37,321,1,[[203.7,345.35,17.35,18.7,"13"]]],[182.37,265,[[203.7,289.35,17.35,18.7,"20"]]],[82.37,215,[[107.03,239.35,10.67,18.7,"2"]]],[82.37,165,[[107.03,189.35,10.67,18.7,"3"]]],[82.37,265,[[103.7,289.35,17.35,18.7,"22"]]],[-147.05,387.62,180,185.56,3,[[-147.05,410,180,22.38,"Group"]]],[-42.05,425,1,[[-17.38,449.35,10.67,18.7,"6"]]],[-42.05,474.19,1,[[-20.72,498.54,17.35,18.7,"12"]]],[-132.05,425,1,[[-107.38,449.35,10.67,18.7,"8"]]],[-132.05,474.19,1,[[-107.38,498.54,10.67,18.7,"9"]]],[-42.05,528.19,1,[[-20.72,552.54,17.35,18.7,"11"]]],[352.37,215,[[377.03,239.35,10.67,18.7,"1"]]],[352.37,165,[[377.03,189.35,10.67,18.7,"4"]]],[-13.63,215,1,[[11.03,239.35,10.67,18.7,"5"]]],[-13.63,265,1,[[11.03,289.35,10.67,18.7,"7"]]],[352.37,425,[[373.7,449.35,17.35,18.7,"10"]]],[352.37,265,[[373.7,289.35,17.35,18.7,"14"]]],[352.37,375,[[373.7,399.35,17.35,18.7,"15"]]],[252.37,505,[[273.7,529.35,17.35,18.7,"17"]]],[422.37,165,[[443.7,189.35,17.35,18.7,"21"]]]],"e":[[13,12,0,-15,0,15],[13,14,0,15,-30,0,[-102.05,543.19]],[10,13,-30,0,30,0,[-54.55,440,-54.55,489.19]],[14,11,0,-15,0,15],[6,7,0,-15,0,15],[5,8,-30,0,30,0],[1,2,0,-15,0,15],[2,3,-30,0,30,0],[4,3,0,15,0,-15],[15,6,-30,0,30,0],[15,16,0,-15,0,15],[7,16,30,0,-30,0],[6,17,-30,0,30,0],[17,18,0,15,0,-15],[18,12,-30,0,0,-15,[-102.05,280]],[10,19,30,0,0,15,[27.95,440,27.95,474,382.37,474]],[15,20,0,15,0,-15],[19,21,0,-15,0,15],[21,20,0,-15,0,15],[19,1,-30,0,30,0],[1,22,0,15,0,-15],[20,5,-30,0,30,0],[16,23,30,0,-30,0],[11,4,30,5.2,-30,0,[119.87,494.39,119.87,336]]],"vp":[-148.0,127.0,631.0,447.0]}} - * The result of a partial layout run with {@link yfiles.partial.PartialLayout#componentAssignmentStrategy component assignment strategy} set to {@link yfiles.partial.ComponentAssignmentStrategy#SINGLE} - * and with {@link yfiles.partial.PartialLayout#considerNodeAlignment node alignment} enabled.Features - *

    - *

    - * Similar to the layout style, the supported feature set mainly depends on the features supported by the specified {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm} - * as well as the specified {@link yfiles.partial.PartialLayout#edgeRouter edge router} or {@link yfiles.partial.PartialLayout#edgeRoutingStrategy edge routing strategy}. The internal step that {@link yfiles.partial.PartialLayout#placeSubgraphs places the components} can handle - * group nodes as well as minimum distance constraints. Furthermore, it is able to consider node labels. - *

    - *

    - * Concept The layout algorithm tries to place the partial elements such that the resulting drawing (including the fixed elements) - * has a good quality with respect to common graph drawing aesthetics. - *

    - *

    - * The layout algorithm handles each selected graph element as partial element. For this, it looks up the {@link yfiles.algorithms.IDataProvider} - * keys {@link yfiles.partial.PartialLayout#AFFECTED_NODES_DP_KEY} and {@link yfiles.partial.PartialLayout#AFFECTED_EDGES_DP_KEY}. Partial - * node elements can be assigned to the so-called subgraph components. During the layout process each subgraph induced by the nodes of a - * component is first laid out using the specified {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm}. Then, the different components are placed - * one-by-one onto the drawing area such that the number of overlaps among graph elements is small. The user can specify - * different objectives for finding 'good' positions for subgraph components (see {@link yfiles.partial.PartialLayout#subgraphPlacement}), e.g., {@link yfiles.partial.SubgraphPlacement#BARYCENTER} - * specifies that the component should be placed close to the barycenter of its graph neighbors and {@link yfiles.partial.SubgraphPlacement#FROM_SKETCH} - * specifies that the component should be placed close to its original position. - *

    - *

    - * Method {@link yfiles.partial.PartialLayout#componentAssignmentStrategy} allows to specify the strategy that assigns partial nodes to subgraph components. Possible values are - * {@link yfiles.partial.ComponentAssignmentStrategy#CLUSTERING}, {@link yfiles.partial.ComponentAssignmentStrategy#CONNECTED}, {@link yfiles.partial.ComponentAssignmentStrategy#SINGLE} - * and - * {@link yfiles.partial.ComponentAssignmentStrategy#CUSTOMIZED}. The last value allows to use a customized component assignment. - * Note that nodes of a component cannot be assigned to different group nodes. - *

    - *

    - * Furthermore, the user can specify the edge routing strategy (see {@link yfiles.partial.PartialLayout#edgeRoutingStrategy}) that is used for routing partial edges and edges - * between different subgraph components (so-called inter-edges). Possible values are {@link yfiles.partial.EdgeRoutingStrategy#ORGANIC}, - * {@link yfiles.partial.EdgeRoutingStrategy#ORTHOGONAL}, {@link yfiles.partial.EdgeRoutingStrategy#STRAIGHTLINE}, {@link yfiles.partial.EdgeRoutingStrategy#OCTILINEAR} - * and {@link yfiles.partial.EdgeRoutingStrategy#AUTOMATIC}. - *

    - * @class yfiles.partial.PartialLayout - * @extends {yfiles.layout.LayoutStageBase} - */ - export interface PartialLayout extends yfiles.layout.LayoutStageBase{} - export class PartialLayout { - /** - * Creates a new instance of {@link yfiles.partial.PartialLayout} which uses the specified {@link yfiles.layout.ILayoutAlgorithm} instance - * as the core layout algorithm. - *

    - * This instance is applied to each subgraph component, see {@link yfiles.partial.PartialLayout#componentAssignmentStrategy}. - *

    - * @param {yfiles.layout.ILayoutAlgorithm} [subgraphLayouter=null] the layout algorithm that is applied to the subgraph components - * @see yfiles.partial.PartialLayout#componentAssignmentStrategy - * @constructor - */ - constructor(subgraphLayouter?:yfiles.layout.ILayoutAlgorithm); - /** - * This method is called each time when edges are routed with an edge router. - *

    - * Subclasses may modify the configuration of the given edge router instance. - *

    - *

    - * The type of the given instance depends on the edge routing strategy, i.e., if the routing strategy is set to {@link yfiles.partial.EdgeRoutingStrategy#OCTILINEAR} - * or {@link yfiles.partial.EdgeRoutingStrategy#ORTHOGONAL} it's an instance of {@link yfiles.router.EdgeRouter}, if the routing strategy - * is set to {@link yfiles.partial.EdgeRoutingStrategy#ORGANIC} it's an instance of {@link yfiles.organic.OrganicLayout}, and, if the - * routing strategy is set to {@link yfiles.partial.EdgeRoutingStrategy#STRAIGHTLINE} it's an instance of a private - * {@link yfiles.router.StraightLineEdgeRouter}. If the edge routing strategy is set to - * {@link yfiles.partial.EdgeRoutingStrategy#AUTOMATIC}, the layout algorithm chooses one of the above strategies that best fits - * the routing style of the fixed edges. - *

    - * @param {yfiles.layout.ILayoutAlgorithm} edgeRouter the instance used for routing the edges - * @see yfiles.partial.PartialLayout#edgeRouter - * @see yfiles.partial.PartialLayout#edgeRoutingStrategy - * @protected - */ - configureEdgeRouter(edgeRouter:yfiles.layout.ILayoutAlgorithm):void; - /** - * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and calculates the layout for the given subgraph component using the - * specified {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm}. - *

    - * It is called once for each subgraph component. - *

    - *

    - * Subclasses may implement a custom layout strategy or add some additional data. - *

    - * @param {yfiles.layout.LayoutGraph} subGraph the subgraph component - * @protected - */ - layoutSubgraph(subGraph:yfiles.layout.LayoutGraph):void; - /** - * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and places the subgraph components one-by-one onto the drawing area. - *

    - * Therefore, it considers the {@link yfiles.partial.PartialLayout#subgraphPlacement specified objective} for finding a suitable position. - *

    - *

    - * Subclasses may implement a custom placement strategy or add some additional data. However, they must not modify the - * given subgraph component lists. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {Array.} subgraphComponents each entry contains a {@link yfiles.algorithms.NodeList} that induces a subgraph component - * @protected - */ - placeSubgraphs(graph:yfiles.layout.LayoutGraph,subgraphComponents:yfiles.algorithms.NodeList[]):void; - /** - * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and routes all partial edges that connect two fixed elements. - *

    - * It either uses a {@link yfiles.partial.PartialLayout#edgeRouter custom edge router} or an internal edge router that produces routes according to the specified - * {@link yfiles.partial.PartialLayout#edgeRoutingStrategy routing strategy}. - *

    - *

    - * Subclasses may implement a custom routing strategy or add some additional data. - *

    - * @param {yfiles.layout.LayoutGraph} graph the subgraph of the input graph induced by the fixed nodes - * @param {yfiles.algorithms.EdgeList} partialEdges the {@link yfiles.algorithms.EdgeList list of partial edges} to be routed - * @protected - */ - routeEdgesBetweenFixedElements(graph:yfiles.layout.LayoutGraph,partialEdges:yfiles.algorithms.EdgeList):void; - /** - * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and routes all inter-edges. - *

    - * Inter-edges are edges between different subgraph components including edges between fixed and partial elements. For the routing, - * this method uses the edge router instance set with method {@link yfiles.partial.PartialLayout#edgeRouter}. If no edge router was specified by the user, it uses an - * internal edge router with routing strategy {@link yfiles.partial.PartialLayout#edgeRoutingStrategy}. - *

    - *

    - * Subclasses may implement a custom routing strategy or add some additional data. - *

    - * @param {yfiles.layout.LayoutGraph} graph the relevant subgraph - * @param {yfiles.algorithms.EdgeList} interEdges the {@link yfiles.algorithms.EdgeList list of inter-edges} to be routed - * @protected - */ - routeInterEdges(graph:yfiles.layout.LayoutGraph,interEdges:yfiles.algorithms.EdgeList):void; - /** - * Data provider key for marking partial nodes. - * @see yfiles.partial.PartialLayout#AFFECTED_EDGES_DP_KEY - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static AFFECTED_NODES_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for specifying the edges that should be considered to be directed. - *

    - * If a layout orientation is specified (i.e., {@link yfiles.partial.PartialLayout#layoutOrientation} is not - * {@link yfiles.partial.LayoutOrientation#NONE}), the algorithm tries to route directed edges such that they adhere to that - * orientation. - *

    - * @see yfiles.partial.PartialLayout#layoutOrientation - * @const - * @static - * @type {yfiles.algorithms.EdgeDpKey.} - */ - static DIRECTED_EDGES_DP_KEY:yfiles.algorithms.EdgeDpKey; - /** - * Data provider key for marking partial edges. - * @see yfiles.partial.PartialLayout#AFFECTED_NODES_DP_KEY - * @const - * @static - * @type {yfiles.algorithms.EdgeDpKey.} - */ - static AFFECTED_EDGES_DP_KEY:yfiles.algorithms.EdgeDpKey; - /** - * Data provider key for obtaining the edges that should be routed by the edge router. - * @see yfiles.partial.PartialLayout#edgeRouter - * @const - * @static - * @type {yfiles.algorithms.EdgeDpKey.} - */ - static ROUTE_EDGE_DP_KEY:yfiles.algorithms.EdgeDpKey; - /** - * Data provider key for defining custom subgraph components. - * @see yfiles.partial.ComponentAssignmentStrategy#CUSTOMIZED - * @see yfiles.partial.PartialLayout#componentAssignmentStrategy - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static COMPONENT_ID_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Gets or sets the {@link yfiles.layout.ILayoutAlgorithm} instance that is applied to each subgraph component. - *

    - * More precisely, during the layout process each subgraph induced by the (partial) nodes of a component (see - * {@link yfiles.partial.PartialLayout#componentAssignmentStrategy}) is first laid out using this instance. - *

    - * @type {yfiles.layout.ILayoutAlgorithm} - */ - coreLayout:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets the preferred time limit (in milliseconds) for the layout algorithm. - *

    - * The specified value has to be greater than or equal to 0. If the value is 0x7FFFFFFF, the time is not limited. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the maximum duration is negative - * @type {number} - */ - maximumDuration:number; - /** - * Gets or sets whether or not edges between different subgraph components should be routed immediately. - *

    - * If this option is enabled, edges are routed during the placement of the subgraph components, i.e., immediately after a - * component is placed, its edges to other already placed components are routed. Otherwise, these edges are routed in a - * separate step after placing all subgraph components. Hence, while enabling this option usually leads to shorter edge - * routes, the placement of subgraph components is less compact. - *

    - * @see yfiles.partial.PartialLayout#routeInterEdges - * @see yfiles.partial.PartialLayout#placeSubgraphs - * @type {boolean} - */ - routeInterEdgesImmediately:boolean; - /** - * Gets or sets whether or not a subgraph component may be placed within another subgraph component. - *

    - * Enabling this option leads to more compact layout results but requires more runtime. - *

    - * @type {boolean} - */ - componentCompaction:boolean; - /** - * Gets or sets whether or not fixed (non-partial) group nodes may be resized. - *

    - * Enabling this option may lead to better results if there are fixed group nodes, since there is more space for the - * partial elements. - *

    - * @type {boolean} - */ - resizeFixedGroups:boolean; - /** - * Gets or sets the objective used for finding 'good' positions for subgraph components. - * @throws {Stubs.Exceptions.ArgumentError} if the specified strategy does not match one of the predefined positioning strategies - * @type {yfiles.partial.SubgraphPlacement} - */ - subgraphPlacement:yfiles.partial.SubgraphPlacement; - /** - * Gets or sets the minimum distance between two adjacent nodes. - *

    - * The specified value has to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the distance is negative - * @type {number} - */ - minimumNodeDistance:number; - /** - * Gets or sets whether or not partial nodes should be aligned. - *

    - * If this option is enabled, the algorithm tries to align the center of partial nodes with other nodes. - *

    - * @type {boolean} - */ - considerNodeAlignment:boolean; - /** - * Gets or sets the strategy that assigns partial nodes to subgraph components. - *

    - * The specified core layouter (see {@link yfiles.partial.PartialLayout#coreLayout}) independently calculates the layout for each such subgraph component. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified strategy does not match one of the predefined assignment strategies. - * @see yfiles.partial.PartialLayout#coreLayout - * @type {yfiles.partial.ComponentAssignmentStrategy} - */ - componentAssignmentStrategy:yfiles.partial.ComponentAssignmentStrategy; - /** - * Gets or sets whether or not a postprocessing step should be applied to reduce the number of directed edges that do not - * comply with the specified layout orientation. - * @see yfiles.partial.PartialLayout#layoutOrientation - * @see yfiles.partial.PartialLayout#DIRECTED_EDGES_DP_KEY - * @type {boolean} - */ - optimizeOrientation:boolean; - /** - * Gets or sets the custom edge router instance that is used for partial edges and edges between different subgraph - * components (so-called inter-edges). - * @see yfiles.partial.PartialLayout#ROUTE_EDGE_DP_KEY - * @see yfiles.partial.PartialLayout#edgeRoutingStrategy - * @type {yfiles.layout.ILayoutAlgorithm} - */ - edgeRouter:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets the routing strategy that is used for partial edges and edges between different subgraph components - * (so-called inter-edges). - * @throws {Stubs.Exceptions.ArgumentError} if the specified strategy does not match one of the predefined routing strategies - * @see yfiles.partial.PartialLayout#edgeRouter - * @type {yfiles.partial.EdgeRoutingStrategy} - */ - edgeRoutingStrategy:yfiles.partial.EdgeRoutingStrategy; - /** - * Gets or sets the layout orientation that is considered during the placement of partial elements. - *

    - * More precisely, the algorithm tries to place each {@link yfiles.partial.PartialLayout#componentAssignmentStrategy subgraph component} such that each predecessor of a component's node v - * is placed before v and each successor after v with respect to the layout orientation. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified orientation does not match one of the predefined orientations - * @see yfiles.partial.PartialLayout#DIRECTED_EDGES_DP_KEY - * @type {yfiles.partial.LayoutOrientation} - */ - layoutOrientation:yfiles.partial.LayoutOrientation; - /** - * Gets or sets whether or not subgraph components are mirrored to improve the layout quality. - *

    - * If enabled, the algorithm checks for each component which of the four possible mirrorings minimizes the edge length. - *

    - * @type {boolean} - */ - allowMirroring:boolean; - static $class:yfiles.lang.Class; - } - /** - * Specifies custom data for the {@link yfiles.partial.PartialLayout}. - * @class yfiles.partial.PartialLayoutData - * @extends {yfiles.layout.LayoutData} - */ - export interface PartialLayoutData extends yfiles.layout.LayoutData{} - export class PartialLayoutData { - constructor(); - /** - * Gets or sets the collection of nodes placed by the layout. - * @see yfiles.partial.PartialLayout#AFFECTED_NODES_DP_KEY - * @type {yfiles.layout.ItemCollection.} - */ - affectedNodes:yfiles.layout.ItemCollection; - /** - * Gets or sets the collection of edges placed by the layout. - * @see yfiles.partial.PartialLayout#AFFECTED_EDGES_DP_KEY - * @type {yfiles.layout.ItemCollection.} - */ - affectedEdges:yfiles.layout.ItemCollection; - /** - * Gets or sets the collection of edges that are considered as directed by the layout. - *

    - * Only if the {@link yfiles.partial.PartialLayout#layoutOrientation} is not {@link yfiles.partial.LayoutOrientation#NONE} the directedness of edges has an effect. - *

    - * @see yfiles.partial.PartialLayout#DIRECTED_EDGES_DP_KEY - * @type {yfiles.layout.ItemCollection.} - */ - directedEdges:yfiles.layout.ItemCollection; - /** - * Gets or sets the mapping from partial nodes to an object defining their component assignment. - *

    - * All partial nodes associated with the same object are assigned to the same subgraph component. - *

    - * @see yfiles.partial.PartialLayout#COMPONENT_ID_DP_KEY - * @see yfiles.partial.ComponentAssignmentStrategy#CUSTOMIZED - * @see yfiles.partial.PartialLayout#componentAssignmentStrategy - * @type {yfiles.layout.ItemMapping.} - */ - componentIds:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. - * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - nodeHalos:yfiles.layout.ItemMapping; - /** - * Gets or sets a mapping from edges to their source {@link yfiles.layout.PortConstraint}. - * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - sourcePortConstraints:yfiles.layout.ItemMapping; - /** - * Gets or sets a mapping from edges to their target {@link yfiles.layout.PortConstraint}. - * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - targetPortConstraints:yfiles.layout.ItemMapping; - /** - * Gets or sets a mapping from edges to a collection of their source port {@link yfiles.layout.PortCandidate candidates}. - * @see yfiles.layout.PortCandidate#SOURCE_PORT_CANDIDATE_COLLECTION_DP_KEY - * @type {yfiles.layout.ItemMapping.>} - */ - sourcePortCandidates:yfiles.layout.ItemMapping>; - /** - * Gets or sets a mapping from edges to a collection of their target port {@link yfiles.layout.PortCandidate candidates}. - * @see yfiles.layout.PortCandidate#TARGET_PORT_CANDIDATE_COLLECTION_DP_KEY - * @type {yfiles.layout.ItemMapping.>} - */ - targetPortCandidates:yfiles.layout.ItemMapping>; - /** - * Gets or sets the AbortHandler used during the layout. - * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY - * @type {yfiles.algorithms.AbortHandler} - */ - abortHandler:yfiles.algorithms.AbortHandler; - /** - * Gets or sets the partition grid layout data. - * @type {yfiles.layout.PartitionGridData} - */ - partitionGridData:yfiles.layout.PartitionGridData; - static $class:yfiles.lang.Class; - } - }export namespace tree{ - /** - * Encapsulates information bound to a node while the algorithm calculates a layout. - * @class yfiles.tree.BalloonLayoutNodeInfo - */ - export interface BalloonLayoutNodeInfo extends Object{} - export class BalloonLayoutNodeInfo { - /** - * The upper angle of the subtree wedge rooted at the node. - * @type {number} - */ - upperAngle:number; - /** - * The lower angle of the subtree wedge rooted at the node. - * @type {number} - */ - lowerAngle:number; - /** - * The angle of the gap to the wedge of the previous child node. - * @type {number} - */ - gapAngle:number; - /** - * The distance of the node to its root node. - * @type {number} - */ - dist:number; - /** - * Gets the sum of all wedge angles of the subtree rooted at this node. - * @type {number} - */ - angleSum:number; - static $class:yfiles.lang.Class; - } - /** - * A tree layout algorithm that arranges the subtrees of the tree in a balloon-like fashion. - *

    - * Layout Style {@link yfiles.tree.BalloonLayout} is designed to arrange directed and undirected tree graphs. Subtrees rooted at a node are - * placed in a radial fashion around their root node. All direct children of one node can be placed on a common circle - * around their parent node (depending on the {@link yfiles.tree.BalloonLayout#childAlignmentPolicy alignment policy}). Therefore, subtrees look like balloons or stars, - * especially if subtrees have similar sizes. The edges of the tree are drawn as straight lines. {@graph {"ann":{"s":[30,30],"d":1,"c":1},"n":[[765.94,466.2],[616.19,1035.44],[858.96,1192.81],[289.45,1092.35],[983.21,685.48],[390.63,1191.59],[1141.69,322.61],[1215.22,473.98],[599.06,923.71],[924.21,1082.3],[291.41,844.85],[1077.22,396.06],[999.14,1284.78],[391.43,1274.01],[324.89,753.04],[236.05,1223.63],[930.33,1330.15],[1013.36,1203.58],[1165.73,539.9],[1084.13,551.52],[612.56,192.18],[1004.03,1061.74],[901.39,675.54],[684.7,152.3],[1022.85,458.01],[190.18,1336.4],[767.32,1282.66],[473.05,1190.8],[684.09,233.13],[385.33,871.88],[1139.17,442.18],[925.13,116.39],[353.13,675.6],[334.78,932.43],[685.33,1291.17],[152.25,1056.81],[427.86,640.81],[1239.04,331.19],[1006.49,764.55],[934.86,198.24],[732.68,1169.96],[1046.6,632.79],[412.14,1021.39],[1266.98,538.13],[716.32,76.19],[1068.06,1329.99],[76.94,1090.32],[792.51,44.73],[576.22,1141.17],[944.59,280.09],[718.72,987.86],[132.38,1277.64],[1007.52,113.83],[318.35,600.87],[686.08,946.6],[0,1060.76],[621.34,1239.22],[684.87,0],[47.38,1167.26],[929.76,34.1],[866.88,1320.91],[425.22,944.01],[1181.1,233.18],[374.69,793.72],[118.75,981.5],[903.65,1002.48],[532.13,493.99],[200.85,981.73],[760.81,183.93],[633.38,1355.17],[1177.35,621.5],[775.83,1364.64],[784.35,1446.63],[1237.23,394.55],[272.59,1334.67],[974.02,603.57],[457.46,831.99],[159.13,1412.75],[260.6,752.11],[1069.67,256.55],[1044.67,310.87],[1121.63,226.96],[1225.82,272.87],[597.56,111.13],[530.37,198.46],[610.06,274.57],[555.63,251.79],[547.23,141.92],[1062.07,709.49],[929.94,748.38],[843.55,104.61],[857.02,162.82],[1295.93,457.26],[193.97,837.29],[246.66,931.74],[206.06,892.47],[214.43,784.65],[979.61,1149.06],[838.99,1066.04],[786.55,1086.86],[172.43,1172.3],[317.44,1231.28],[428.9,1117.65],[872.95,52.59],[984.14,58.85],[987.6,170.17],[521.61,289.78],[410.77,300.73],[412.02,412.1],[523.07,420.56],[465.9,437.92],[389.75,356.66],[464.06,273.7],[553.17,340.51],[472.17,355.73]],"e":[[0,1],[1,2],[1,3],[0,4],[3,5],[0,6],[6,7],[1,8],[2,9],[3,10],[6,11],[2,12],[5,13],[10,14],[3,15],[12,16],[12,17],[7,18],[18,19],[0,20],[9,21],[4,22],[20,23],[11,24],[15,25],[2,26],[5,27],[20,28],[10,29],[7,30],[0,31],[14,32],[10,33],[26,34],[3,35],[32,36],[6,37],[4,38],[31,39],[2,40],[4,41],[3,42],[7,43],[23,44],[12,45],[35,46],[44,47],[1,48],[39,49],[1,50],[25,51],[31,52],[32,53],[1,54],[46,55],[34,56],[44,57],[46,58],[31,59],[2,60],[29,61],[6,62],[10,63],[35,64],[9,65],[0,66],[3,67],[23,68],[34,69],[18,70],[26,71],[71,72],[7,73],[25,74],[4,75],[29,76],[25,77],[10,78],[6,79],[6,80],[6,81],[6,82],[20,83],[20,84],[20,85],[20,86],[20,87],[4,88],[4,89],[31,90],[31,91],[7,92],[10,93],[10,94],[10,95],[10,96],[2,97],[2,98],[2,99],[3,100],[3,101],[3,102],[31,103],[31,104],[31,105],[0,114],[114,106],[114,107],[114,108],[114,109],[114,110],[114,111],[114,112],[114,113]],"vp":[0.0,0.0,1326.0,1477.0]}} Sample balloon-drawing of - * a large tree obtained with default settings {@graph {"ann":{"s":[20,20],"d":1,"c":1},"n":[[302.82,325.51,70,70,[[323.15,369.86,29.35,18.7,"Root"]]],[467.87,433.16,35,35],[555.28,457.63,[[581.09,480.55,27.36,18.7,0.20775573281806076,-0.978180737635551,"Leaf"]]],[539.95,490.69,[[558.57,519.19,27.36,18.7,0.6124052098749311,-0.7905440271851036,"Leaf"]]],[511.78,513.79,[[521.49,544.2,27.36,18.7,0.8952174454926904,-0.4456295830457645,"Leaf"]]],[617.42,438.44,[[645.7,457.5,27.36,18.7,-0.01562900399598557,-0.9998778596579152,"Leaf"]]],[604.25,500.42,[[626.78,526.54,27.36,18.7,0.42067550054279435,-0.9072111789672069,"Leaf"]]],[168.96,426.6,35,35],[122.16,495.14,[[108.91,545.35,27.36,18.7,-0.7471310564613752,-0.6646767518658294,"Leaf"]]],[101.02,465.46,[[72.6,501.56,27.36,18.7,-0.38380727069642384,-0.9234132222144982,"Leaf"]]],[94.89,429.54,[[58.95,446.33,27.36,18.7,0.0558744858236695,-0.9984378006836183,"Leaf"]]],[108.08,558.63,[[104.38,613.01,27.36,18.7,-0.8765491095440469,-0.48131243341257923,"Leaf"]]],[60.74,516.51,[[39.11,560.52,27.36,18.7,-0.5800788870754927,-0.8145603014935467,"Leaf"]]],[472.4,260.75,35,35],[534.73,207.69,[[563.84,210.51,27.36,18.7,-0.7413022827299817,-0.6711713086979497,"Leaf"]]],[555.61,237.55,[[585.94,249.4,27.36,18.7,-0.3757344582282841,-0.9267273692407589,"Leaf"]]],[561.43,273.52,[[588.93,294.02,27.36,18.7,0.06458526120504259,-0.997912192547559,"Leaf"]]],[549.36,144.32,[[576.39,143.07,27.36,18.7,-0.8723155432038684,-0.48894334343044304,"Leaf"]]],[596.34,186.85,[[626.56,194.12,27.36,18.7,-0.5729485100623841,-0.8195913645331399,"Leaf"]]],[316.53,515.88,35,35],[349.51,601,[[356.29,631.15,27.36,18.7,0.9501038773669919,-0.3119336823945245,"Leaf"]]],[313.23,604.36,[[326.48,660.69,27.36,18.7,-0.9912225732921417,-0.1322036693745865,"Leaf"]]],[279.09,591.61,[[271.88,644.75,27.36,18.7,-0.8351387927609661,-0.5500392684397689,"Leaf"]]],[397.33,645.07,[[408.68,675.44,27.36,18.7,0.8566078613378385,-0.5159679950289693,"Leaf"]]],[337.13,664.84,[[339.49,693.76,27.36,18.7,0.9957417304784997,-0.09218680048511825,"Leaf"]]],[52.71,198.2,[[17.59,197.15,27.36,18.7,0.42857629306653433,-0.9035055954565794,"Leaf"]]],[39,260.06,[[3.57,279.73,27.36,18.7,-0.006902939255060647,-0.9999761744309916,"Leaf"]]],[145.3,185.63,[[126.97,158.82,27.36,18.7,0.8990721607310399,-0.43780046801987216,"Leaf"]]],[116.92,208.49,[[85.4,197.66,27.36,18.7,0.6192806018773118,-0.7851697498875478,"Leaf"]]],[101.3,241.41,[[64.86,250.7,27.36,18.7,0.21628395104715628,-0.9763305037329477,"Leaf"]]],[173.56,251.58,35,35],[321.26,36.12,[[318.14,1.56,27.36,18.7,0.9965082870714412,-0.08349391473599899,"Leaf"]]],[260.88,55.36,[[239.7,30.94,27.36,18.7,0.861077857359917,-0.5084731296385823,"Leaf"]]],[378.65,109.85,[[406.52,110,27.36,18.7,-0.8303070560332068,-0.557306192950939,"Leaf"]]],[344.63,96.81,[[366.44,90.16,27.36,18.7,-0.9900311505600138,-0.14084857443657478,"Leaf"]]],[308.31,99.85,[[295.59,69.34,27.36,18.7,0.9527898006751772,-0.30363068970273144,"Leaf"]]],[325.62,170.19,35,35],[620.15,245.57,[[649.55,261.91,27.36,18.7,-0.15959409597274285,-0.9871827209441234,"Leaf"]]],[565.45,550.51,[[579.72,580.47,27.36,18.7,0.7732871466592579,-0.6340559823955481,"Leaf"]]],[36.42,458,[[3.15,484.87,27.36,18.7,-0.1682027041762925,-0.9857524285071697,"Leaf"]]],[91.95,148.45,[[66.13,128.88,27.36,18.7,0.7787908142925284,-0.6272837217508362,"Leaf"]]],[383.99,45.04,[[409.22,41.45,27.36,18.7,-0.933684654259895,-0.3580963088326663,"Leaf"]]],[274.32,656.46,[[277.16,712.35,27.36,18.7,-0.9367740425600954,-0.34993484134280844,"Leaf"]]]],"e":[[0,1,[],[[405.66,401.96,61.37,18.7,0.5213485166954306,-0.8533438487148509,"Root-Edge"]]],[1,2],[1,3],[1,4],[1,5],[1,6],[0,7,[],[[268.23,398.95,61.37,18.7,0.4834440722369951,0.8753752504034548,"Root-Edge"]]],[7,8],[7,9],[7,10],[7,11],[7,12],[0,13,[],[[407.74,322.69,61.37,18.7,-0.4757866709710364,-0.8795607106540735,"Root-Edge"]]],[13,14],[13,15],[13,16],[13,17],[13,18],[0,19,[],[[336.08,439.99,61.37,18.7,0.999759704932882,0.02192104907427582,"Root-Edge"]]],[19,20],[19,21],[19,22],[19,23],[19,24],[0,30,[],[[270.35,318.48,61.37,18.7,-0.5287754007295448,0.8487617896579165,"Root-Edge"]]],[30,29],[30,28],[30,27],[30,26],[30,25],[0,36,[],[[340.26,281.05,61.37,18.7,-0.9995303423338449,-0.030644652942837143,"Root-Edge"]]],[36,35],[36,34],[36,33],[36,32],[36,31],[13,37],[1,38],[7,39],[30,40],[36,41],[19,42]],"vp":[-1.0,0.0,678.0,722.0]}} Sample balloon-drawing featuring interleaved child placement and ray-like - * node labels ConceptThe algorithm executes the following steps: - *

    - *
      - *
    1. Select a root node according to the specified {@link yfiles.tree.BalloonLayout#rootNodePolicy root policy}.
    2. - *
    3. Determine the placement of subtrees around the root using a bottom-up recursive approach (starting with leaf nodes).
    4. - *
    5. Assign the actual coordinates of nodes, again using a recursive approach (starting with the root node).
    6. - *
    - *

    - * Features - *

    - *

    - * The algorithm features integrated {@link yfiles.tree.BalloonLayout#integratedEdgeLabeling edge labeling} as well as {@link yfiles.tree.BalloonLayout#integratedNodeLabeling node labeling}. Edge labels and node labels are placed - * automatically without generating overlaps with other labels or graph elements. There are different {@link yfiles.tree.BalloonLayout#nodeLabelingPolicy ways} to place node - * labels. Edge labeling will take the settings of {@link yfiles.layout.PreferredPlacementDescriptor} into account. - *

    - *

    - * Defining a {@link yfiles.tree.BalloonLayout#preferredChildWedge preferred wedge angle} has a great influence on the layout style. Subtrees rooted at a node get a certain - * amount of radial space to be placed around the parent node, such that a preferred angle close to 360 degrees will - * generate drawings where subtrees look like balloons, while an angle close to 180 degrees could be chosen to get drawings - * where subtrees look like semicircles. - *

    - *

    - * Since it is computationally not very complex, {@link yfiles.tree.BalloonLayout} is very well suited for large tree graphs. It - * performs well even for huge graphs. - *

    - *

    - * This layout algorithm can only handle graphs with a tree structure. To apply it to a general graph, a {@link yfiles.tree.TreeReductionStage} - * can be appended. This stage will temporarily remove some edges of the input graph until a tree is obtained. These edges - * will later be reinserted and routed separately. - *

    - * @class yfiles.tree.BalloonLayout - * @extends {yfiles.layout.MultiStageLayout} - */ - export interface BalloonLayout extends yfiles.layout.MultiStageLayout{} - export class BalloonLayout { - /** - * Creates a new {@link yfiles.tree.BalloonLayout} instance with default settings. - * @constructor - */ - constructor(); - /** - * Calculates the wedge angle that has to be reserved for the subtree rooted at the given node scaling the {@link yfiles.tree.BalloonLayoutNodeInfo#dist distance} with - * the given scale factor. - *

    - * Given some {@link yfiles.tree.BalloonLayoutNodeInfo#dist distance} the {@link yfiles.tree.BalloonLayoutNodeInfo#upperAngle upper angle} and {@link yfiles.tree.BalloonLayoutNodeInfo#lowerAngle lower angle} of the wedge belonging to the subtree rooted at root will be - * calculated and stored in the {@link yfiles.tree.BalloonLayoutNodeInfo} instance associated with root - * ({@link yfiles.tree.BalloonLayout#getInfo}). - *

    - *

    - * This method may be overridden to perform a custom wedge angle assignment scheme. The method is called when - * {@link yfiles.tree.BalloonLayout#calculateChildArrangement arranging child nodes}. Large edge labels on the incoming edge to root need to be considered, if {@link yfiles.tree.BalloonLayout#integratedEdgeLabeling integrated edge labeling} - * should still work properly. - *

    - * @param {yfiles.algorithms.Node} root the node for which the wedge angles are calculated - * @param {number} [scaleFactor=1.0] a factor to be applied to the {@link yfiles.tree.BalloonLayoutNodeInfo#dist distance} of root - * @returns {number} the sum of the upper and lower wedge angle of the subtree rooted at the given root node - * @see yfiles.tree.BalloonLayout#calculateChildArrangement - * @protected - */ - calculateAngles(root:yfiles.algorithms.Node,scaleFactor?:number):number; - /** - * Calculates a child node arrangement for a given root node of the tree. - *

    - * During the arrangement, child nodes of root will be {@link yfiles.tree.BalloonLayout#sortChildNodes sorted}. Furthermore, distances of the child nodes will be chosen - * such that the wedge of the subtree of root fits into the preferred wedge angle, which is either defined via {@link yfiles.tree.BalloonLayout#preferredRootWedge} or {@link yfiles.tree.BalloonLayout#preferredChildWedge}. - * Calculated distances are stored in {@link yfiles.tree.BalloonLayoutNodeInfo#dist}. - *

    - *

    - * The angle values - upper and lower wedge angle - may also be updated during this process and stored in {@link yfiles.tree.BalloonLayoutNodeInfo#upperAngle} - * and - * {@link yfiles.tree.BalloonLayoutNodeInfo#lowerAngle}, respectively. To compute the angles of wedges, method CalculateAngles is - * used. - *

    - *

    - * This method may be overridden to perform a custom child node arrangement. If support for available features like {@link yfiles.tree.BalloonLayout#interleavedMode interleaving} - * should be maintained, then these features need to be carefully considered during the arrangement. - *

    - * @param {yfiles.algorithms.Node} root the node for whose children to compute an arrangement - * @protected - */ - calculateChildArrangement(root:yfiles.algorithms.Node):void; - /** - * Determines the root node of {@link yfiles.tree.BalloonLayout#graph} according to the chosen {@link yfiles.tree.BalloonLayout#rootNodePolicy root node policy}. - *

    - * This method may be overridden to implement some other strategy for choosing the root node of the input graph. It is - * called before the rest of the layout process within {@link yfiles.tree.BalloonLayout#applyLayoutCore}. - *

    - * @returns {yfiles.algorithms.Node} the root node of {@link yfiles.tree.BalloonLayout#graph} - * @see yfiles.tree.BalloonLayout#rootNodePolicy - * @protected - */ - determineRoot():yfiles.algorithms.Node; - /** - * Returns the {@link yfiles.tree.BalloonLayoutNodeInfo} object associated with the given node while the layout algorithm is - * active. - *

    - * The returned object contains detailed information describing the placement of a node in the layout being computed, e.g., - * a node's distance to its parent or the wedge angle of the subtree rooted at a node. - *

    - *

    - * Subclasses may want to override this method to realize another node information setup. This method is called throughout - * the algorithm, each time some information associated with a node needs to be retrieved or stored. - *

    - * @param {yfiles.algorithms.Node} node the node whose information object should be retrieved - * @returns {yfiles.tree.BalloonLayoutNodeInfo} the {@link yfiles.tree.BalloonLayoutNodeInfo} instance associated to the given node - * @see yfiles.tree.BalloonLayoutNodeInfo - */ - getInfo(node:yfiles.algorithms.Node):yfiles.tree.BalloonLayoutNodeInfo; - /** - * Returns the preferred radial amount (wedge) in degrees that child nodes may in total occupy around the given node. - *

    - * The wedge angle controls the degree to which the child nodes may radiate from the center of layout. A value close to 360 - * means that the child nodes may radiate in (almost) any direction from their parent node, edge lengths can in consequence - * stay rather small. On the other hand, a small value means that children are restricted to a small angle; thus, edges - * lengths (and drawings) may become large. - *

    - *

    - * This method returns the {@link yfiles.tree.BalloonLayout#preferredRootWedge preferred root wedge} if node root was selected as global root node ({@link yfiles.tree.BalloonLayout#rootNodePolicy}). Otherwise, it either - * returns {@link yfiles.tree.BalloonLayout#preferredChildWedge} or if the given node has an outdegree equal to 2, it returns the minimum of {@link yfiles.tree.BalloonLayout#preferredChildWedge} and 180. - *

    - *

    - * This method may be overridden to provide a custom child wedge function. - *

    - * @param {yfiles.algorithms.Node} root the node to get the preferred wedge angle for - * @returns {number} the preferred wedge angle for root in degrees - * @see yfiles.tree.BalloonLayout#preferredChildWedge - * @see yfiles.tree.BalloonLayout#preferredRootWedge - * @protected - */ - getPreferredChildWedge(root:yfiles.algorithms.Node):number; - /** - * Sorts the child nodes (successors) of the given node. - *

    - * This implementation uses the original node coordinates if {@link yfiles.tree.BalloonLayout#fromSketchMode From Sketch mode} is enabled. Otherwise it uses {@link yfiles.tree.BalloonLayout#comparer the specified comparator} - * to sort the outgoing edges and thus the children of root. If there is no such comparator, then the sorting depends on - * whether or not the child nodes are placed in an {@link yfiles.tree.BalloonLayout#interleavedMode interleaved} fashion: - *

    - *
      - *
    • Normal: Children are sorted according to the chosen {@link yfiles.tree.BalloonLayout#childOrderingPolicy child ordering policy}.
    • - *
    • - * Interleaved: Children are sorted such that the resulting interleaved node placement is compact, while children inducing - * larger subgraphs are placed next to smaller ones. - *
    • - *
    - *

    - * This method may be overridden to realize a custom child node ordering. It gets called in method {@link yfiles.tree.BalloonLayout#calculateChildArrangement} - * before coordinates are assigned and just after the wedge sizes for all subtrees rooted at root are determined. - *

    - * @param {yfiles.algorithms.Node} root the node whose child nodes will be sorted - * @protected - */ - sortChildNodes(root:yfiles.algorithms.Node):void; - /** - * Data provider key for marking nodes whose child nodes should be placed in an interleaved fashion - *

    - * This {@link yfiles.algorithms.IDataProvider} allows to individually configure the interleaving feature for each node in the - * graph. - *

    - * @see yfiles.tree.BalloonLayout#interleavedMode - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static INTERLEAVED_NODES_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for marking the node that will be used as root node of the tree. - * @see yfiles.tree.BalloonLayout#rootNodePolicy - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * The layout graph being acted upon. - * @protected - * @type {yfiles.layout.LayoutGraph} - */ - graph:yfiles.layout.LayoutGraph; - /** - * Gets or sets the {@link yfiles.collections.IComparer.} instance that determines the order of the outgoing edges for each node of the tree. - *

    - * If no {@link yfiles.collections.IComparer.} is specified (i.e. the {@link yfiles.collections.IComparer.} is null), the outgoing edges will be sorted according to the current - * {@link yfiles.tree.BalloonLayout#childOrderingPolicy child ordering policy}. - *

    - * @see yfiles.tree.BalloonLayout#childOrderingPolicy - * @see yfiles.tree.BalloonLayout#fromSketchMode - * @type {yfiles.collections.IComparer.} - */ - comparer:yfiles.collections.IComparer; - /** - * Gets or sets the child ordering policy for sorting the child nodes around their parents. - *

    - * The sorting policy can affect the compactness of drawings. Advantageous orderings allow adjacent subtrees to be close - * together and can thus make the whole layout more compact. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if an unknown ordering policy is given - * @see yfiles.tree.BalloonLayout#fromSketchMode - * @see yfiles.tree.BalloonLayout#comparer - * @type {yfiles.tree.ChildOrderingPolicy} - */ - childOrderingPolicy:yfiles.tree.ChildOrderingPolicy; - /** - * Gets or sets the minimum distance to be kept between the nodes in the tree. - *

    - * The distance needs to be a non-negative integer value. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given minimum distance is negative - * @see yfiles.tree.BalloonLayout#allowOverlaps - * @type {number} - */ - minimumNodeDistance:number; - /** - * Gets or sets whether or not to consider the given coordinates of the input diagram when arranging the tree. - *

    - * Enabling this feature, the original circular order of child nodes around their parent nodes will be maintained according - * to the initial coordinates when determining the order of the child nodes. - *

    - * @type {boolean} - */ - fromSketchMode:boolean; - /** - * Gets or sets the root node selection policy of this layout algorithm. - *

    - * The policy determines which node is chosen as (virtual) tree root during the layout process. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if an unknown root node policy is given - * @type {yfiles.tree.RootNodePolicy} - */ - rootNodePolicy:yfiles.tree.RootNodePolicy; - /** - * Gets or sets the preferred radial amount (wedge) in degrees that child nodes may in total occupy around their parent - * node. - *

    - * The wedge angle controls the degree to which the child nodes may radiate from the center of layout. A value close to 360 - * means that the child nodes may radiate in (almost) any direction from their parent node, edge lengths can in consequence - * stay rather small. On the other hand, a small value means that children are restricted to a small angle; thus, edge - * lengths (and drawings) may become large. - *

    - *

    - * The minimum allowed wedge angle is 1 and the maximum allowed value is 359. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given angle is smaller than 1 or larger than 359 - * @see yfiles.tree.BalloonLayout#preferredRootWedge - * @type {number} - */ - preferredChildWedge:number; - /** - * Gets or sets the preferred radial amount (wedge) in degrees that child nodes may in total occupy around the global - * root. - *

    - * This property allows to separately control the wedge angle for the designated root node of the tree, while {@link yfiles.tree.BalloonLayout#preferredChildWedge} controls the - * angles of all child nodes. The root node will be determined depending on the {@link yfiles.tree.BalloonLayout#rootNodePolicy root node policy}. - *

    - *

    - * The minimum allowed root wedge angle is 1 and the maximum allowed value is 360. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given angle is smaller than 1 or larger than 360 - * @see yfiles.tree.BalloonLayout#preferredChildWedge - * @type {number} - */ - preferredRootWedge:number; - /** - * Gets or sets whether or not (partially) overlapping nodes are allowed. - *

    - * If overlaps are allowed, the resulting layouts can become significantly more compact. Overlaps will mostly occur at the - * borders of nodes. Nodes will not be totally covered by other nodes. - *

    - * @type {boolean} - */ - allowOverlaps:boolean; - /** - * Gets or sets the factor defining how compact layout results will potentially be, where a smaller factor produces - * potentially more compact layouts. - *

    - * The algorithm tries to optimize the child node arrangement around each tree node such that each subtree is as close to - * its root as possible, while still fitting into the {@link yfiles.tree.BalloonLayout#preferredChildWedge preferred wedge angle} and not overlapping with adjacent subtrees. - *

    - *

    - * High compactness factor values induce the optimization procedure to be less strict and accept less optimal results, - * while low factor values mean that the optimization will only stop when being nearly optimal. Thus, lower values lead to - * a potentially higher runtime. - *

    - *

    - * The minimum factor value is 0.05 and the maximum is 1.0. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the factor is smaller than 0.05 or greater than 1.0 - * @type {number} - */ - compactnessFactor:number; - /** - * Gets or sets the minimum length that this layout algorithm assigns to edges of the graph. - *

    - * A lower minimum edge length allows generally more compact layouts. It has the highest effect if most nodes of the graph - * have a low degree, as the minimum can potentially be met for such graphs. - *

    - *

    - * The minimum length must be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given length is negative - * @type {number} - */ - minimumEdgeLength:number; - /** - * Gets or sets whether or not the layout algorithm reserves space for node labels. - *

    - * The size of nodes will temporarily be adjusted such that the label is included. Therefore, result drawings may get - * significantly larger if this feature is enabled. - *

    - * @type {boolean} - */ - considerNodeLabels:boolean; - /** - * Gets or sets the mode for child node arrangement. - *

    - * Child nodes are either placed interleaved or on a single layer around their parent node. Interleaved placement means - * that child nodes are placed around their common parent in two different layers in an alternating fashion. For example, - * the first child is on the inner layer, the second child on the outer layer, the third one again on the inner layer, - * etc. - *

    - *

    - * Independent of this mode, the alignment of child nodes on the same layer is still defined by the {@link yfiles.tree.BalloonLayout#childAlignmentPolicy alignment policy}. - * However, {@link yfiles.tree.ChildAlignmentPolicy#SMART} is only supported for non-interleaved arrangement. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if an unknown mode for interleaved arrangement is given - * @see yfiles.tree.BalloonLayout#childAlignmentPolicy - * @type {yfiles.tree.InterleavedMode} - */ - interleavedMode:yfiles.tree.InterleavedMode; - /** - * Gets or sets the child alignment policy for this layout algorithm. - *

    - * This policy influences the distance of child nodes to their parent nodes and the alignment of children with the same - * parent. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if an unknown policy is given - * @type {yfiles.tree.ChildAlignmentPolicy} - */ - childAlignmentPolicy:yfiles.tree.ChildAlignmentPolicy; - /** - * Gets or sets whether or not the layout algorithm automatically places node labels. - *

    - * If enabled, this layout algorithm will calculate the positions for the node labels assuring that no overlaps occur. - *

    - *

    - * Different labeling strategies may be selected using {@link yfiles.tree.BalloonLayout#nodeLabelingPolicy}. - *

    - * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy - * @type {boolean} - */ - integratedNodeLabeling:boolean; - /** - * Gets or sets whether or not the layout algorithm automatically places edge labels. - *

    - * If enabled, this layout algorithm will calculate the positions for the edge labels assuring that no overlaps occur. - *

    - * @type {boolean} - */ - integratedEdgeLabeling:boolean; - /** - * Gets or sets the policy defining how node labels are placed by the integrated node labeling mechanism (for example, the - * desired label orientation). - * @throws {Stubs.Exceptions.ArgumentError} if an unknown labeling policy is given - * @see yfiles.tree.BalloonLayout#integratedNodeLabeling - * @type {yfiles.tree.NodeLabelingPolicy} - */ - nodeLabelingPolicy:yfiles.tree.NodeLabelingPolicy; - /** - * Gets or sets the distance between node labels belonging to the same node. - *

    - * It also defines the distance between labels and the node they belong to in case of label placement outside of the node - * (e.g. for {@link yfiles.tree.NodeLabelingPolicy#RAY_LIKE ray-like label placement}). - *

    - *

    - * The spacing must have a non-negative value. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given spacing value is negative - * @see yfiles.tree.BalloonLayout#integratedNodeLabeling - * @type {number} - */ - nodeLabelSpacing:number; - /** - * Gets or sets the distance between edge labels belonging to the same edge as well as the distance of the edge labels to - * the target node of the edge. - *

    - * The spacing must have a non-negative value. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given label spacing value is negative - * @see yfiles.tree.BalloonLayout#integratedEdgeLabeling - * @type {number} - */ - edgeLabelSpacing:number; - /** - * Gets or sets whether or not chains are drawn straight or not. - *

    - * A chain is defined as a tree node with exactly one child node. If this feature is enabled, then the incoming edge and - * outgoing edge of the chain will have the same orientation, i.e., the whole chain looks straight. - *

    - *

    - * Straightening all chains can lead to smoother, more symmetric results. - *

    - * @type {boolean} - */ - chainStraighteningMode:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. - * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled - * @see yfiles.layout.MultiStageLayout#componentLayout - * @see yfiles.layout.ComponentLayout - * @type {boolean} - */ - componentLayoutEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for hiding group nodes is activated. - * @see yfiles.layout.MultiStageLayout#hideGroupsStageEnabled - * @see yfiles.layout.MultiStageLayout#hideGroupsStage - * @see yfiles.layout.HideGroupsStage - * @type {boolean} - */ - hideGroupsStageEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} that modifies the orientation of the layout is activated. - * @see yfiles.layout.MultiStageLayout#orientationLayoutEnabled - * @see yfiles.layout.MultiStageLayout#orientationLayout - * @see yfiles.layout.MultiStageLayout#layoutOrientation - * @see yfiles.layout.OrientationLayout - * @type {boolean} - */ - orientationLayoutEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter - * @see yfiles.router.ParallelEdgeRouter - * @type {boolean} - */ - parallelEdgeRouterEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. - * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled - * @see yfiles.layout.MultiStageLayout#selfLoopRouter - * @see yfiles.layout.SelfLoopRouter - * @type {boolean} - */ - selfLoopRouterEnabled:boolean; - static $class:yfiles.lang.Class; - } - export enum FillStyle{ - /** - * Style specifier which defines that rows/columns are aligned with their leading side. - * @see yfiles.tree.AspectRatioNodePlacer#fillStyle - */ - LEADING, - /** - * Style specifier which defines that rows/columns are aligned with their center. - * @see yfiles.tree.AspectRatioNodePlacer#fillStyle - */ - CENTERED, - /** - * Style specifier which defines that rows/columns are justified to have the same width/height. - * @see yfiles.tree.AspectRatioNodePlacer#fillStyle - */ - JUSTIFY, - /** - * Style specifier which defines that rows/columns are aligned with their trailing side. - * @see yfiles.tree.AspectRatioNodePlacer#fillStyle - */ - TRAILING - } - export enum RootPlacement{ - /** - * A root placement specifier for placing the root centered above its subtree, depending on the actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. - * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY - */ - TOP, - /** - * A root placement specifier for placing the root in the upper left corner of the subtree bounds with respect to the - * actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. - *

    - * Whether the root is placed entirely beside the subtree with no horizontal overlaps or entirely above the subtree without - * vertical overlaps will be determined by the layout of the subtree. The layout algorithm tries to minimize the bounds of - * the subtree. - *

    - * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY - * @see yfiles.tree.RootPlacement#CORNER_TOP - * @see yfiles.tree.RootPlacement#CORNER_SIDE - */ - CORNER, - /** - * A root placement specifier for placing the root in the upper left corner of the subtree bounds with respect to the - * actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. - *

    - * The root is placed entirely beside the subtree with no horizontal overlaps. This might by important if the root's height - * is very large while its width is small. - *

    - * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY - */ - CORNER_SIDE, - /** - * A root placement specifier for placing the root of a subtree in the upper left corner of the subtree bounds with respect - * to the actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. - *

    - * The root is placed entirely above the subtree with no vertical overlaps. This might by important if the root's width is - * very large while its height is small. - *

    - * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY - */ - CORNER_TOP - } - export enum SubtreeArrangement{ - /** - * A direction specifier for placing the child nodes next to each other in direction of the actual - * {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}, with the edges connecting in the direction of flow. - * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY - */ - HORIZONTAL, - /** - * A direction specifier for placing the child nodes above each other in direction of the actual - * {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}, with the edges connecting orthogonally to the direction of flow. - * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY - */ - VERTICAL - } - export enum InterleavedMode{ - /** - * A child placement mode where all child nodes are placed around their parent with equal distances. - * @see yfiles.tree.BalloonLayout#interleavedMode - */ - OFF, - /** - * A child placement mode where nodes are placed in an interleaved fashion, that is, with two different, alternating - * distances to the parent node. - * @see yfiles.tree.BalloonLayout#interleavedMode - */ - ALL_NODES, - /** - * A child placement mode where child nodes of selected nodes are placed in an interleaved fashion, that is, with two - * different, alternating distances to the parent node. - *

    - * All other nodes are placed without interleaving. The node selection can be specified by registering an appropriate {@link yfiles.algorithms.IDataProvider} - * for key {@link yfiles.tree.BalloonLayout#INTERLEAVED_NODES_DP_KEY}. - *

    - * @see yfiles.tree.BalloonLayout#interleavedMode - */ - MARKED_NODES - } - export enum NodeLabelingPolicy{ - /** - * Node labeling policy for ray-like label placement at nodes with zero or one child node. - *

    - * Labels belonging to leaf nodes and nodes with exactly one successor (thus forming a sort of chain) will not be oriented - * horizontal but ray-like; they get the same orientation as their nodes' incoming edge. The labels of the other nodes will - * be oriented horizontally and placed at the center of the corresponding node. - *

    - * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy - */ - RAY_LIKE, - /** - * Node labeling policy for ray-like label placement at leaf nodes. - *

    - * Labels corresponding to leaf nodes get the same orientation as their nodes' incoming edge and are placed outside the - * node (without overlaps). The labels of the other nodes will be oriented horizontally and placed at the center of the - * corresponding node. - *

    - * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy - */ - RAY_LIKE_LEAVES, - /** - * Node labeling policy for horizontal label placement at all nodes. - *

    - * The node labels are placed at the center of the corresponding node. - *

    - * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy - */ - HORIZONTAL - } - export enum ChildAlignmentPolicy{ - /** - * Alignment policy to align child nodes rooted at the same parent such that the border of their convex hull has the same - * distance to the parent node's center. - * @see yfiles.tree.BalloonLayout#childAlignmentPolicy - */ - PLAIN, - /** - * Alignment policy to align child nodes rooted at the same parent such that each child has the same center-to-center - * distance to the parent node. - *

    - * All nodes will be placed on a common radius around their parent, respective to their center coordinates. - *

    - * @see yfiles.tree.BalloonLayout#childAlignmentPolicy - */ - SAME_CENTER, - /** - * Alignment policy for aligning child nodes such that the distances to their parent are kept short and drawings can - * potentially become more compact. - *

    - * This policy realizes the exact same child alignment as {@link yfiles.tree.ChildAlignmentPolicy#PLAIN} if there are no edge - * labels associated with edges going to child nodes or if {@link yfiles.tree.BalloonLayout#integratedEdgeLabeling integrated edge labeling} is disabled. - *

    - *

    - * If edge labels need to be considered, edge labels will be added to the convex hull of the child node to which the edge - * connects. This means that child nodes connected with a labeled edge will be aligned at the border where the edge label - * begins. In consequence, edge labels will be aligned with neighboring edge labels as well as neighboring child nodes if a - * child node has no edge label at its incoming edge. - *

    - *

    - * This alignment strategy is especially effective if large edge labels need to be considered while drawings should still - * be compact and distances from parent to child nodes short. - *

    - * @see yfiles.tree.BalloonLayout#childAlignmentPolicy - */ - COMPACT, - /** - * Alignment policy to align child nodes rooted at the same parent using a mixture of the other policies and aiming to - * achieve symmetry and compactness at the same time. - *

    - * Similar to - * {@link yfiles.tree.ChildAlignmentPolicy#SAME_CENTER}, this policy aims to achieve alignments featuring equal distances between - * parent and child node centers. However, a much larger distance for all child nodes caused by single large subtrees is - * avoided by this policy. In such cases, the smaller subtrees may be placed on a common radius and the large subtrees are - * placed with different distances. - *

    - * @see yfiles.tree.BalloonLayout#childAlignmentPolicy - */ - SMART - } - export enum ChildOrderingPolicy{ - /** - * Child ordering policy which orders child nodes depending on their subtree size such that large subtrees are placed next - * to small ones in order to save space. - *

    - * The actual area of a subtree is used as the subtree size. The smallest subtree is placed next to the largest subtree, - * followed by the second smallest subtree and so on. This way, drawings can become more compact, because the adjacent - * placement of large subtrees is avoided (which would require edges to become longer for subtrees to fit next to each - * other). - *

    - * @see yfiles.tree.BalloonLayout#childOrderingPolicy - */ - COMPACT, - /** - * Child ordering policy which sorts the child nodes according to their wedge angles. - *

    - * The node with the greatest angle gets median position in the sorting order. The smaller the wedges, the farther away a - * node will be placed from the median position. Using this policy, the produced results are often more symmetric. - *

    - * @see yfiles.tree.BalloonLayout#childOrderingPolicy - */ - SYMMETRIC - } - export enum RootNodePolicy{ - /** - * Root node policy for choosing a node with indegree 0 as root node of the tree. - *

    - * The selection of the root node will happen according to {@link yfiles.algorithms.Trees#getRoot}. - *

    - * @see yfiles.tree.BalloonLayout#rootNodePolicy - * @see yfiles.algorithms.Trees#getRoot - */ - DIRECTED_ROOT, - /** - * Root node policy for choosing the center node as root node of the tree. - *

    - * A {@link yfiles.algorithms.Trees#getCenterRoot center node} induces a minimum depth tree when being used as the root of that tree. - *

    - * @see yfiles.tree.BalloonLayout#rootNodePolicy - * @see yfiles.algorithms.Trees#getCenterRoot - */ - CENTER_ROOT, - /** - * Root node policy for choosing a weighted center node as root node of the tree. - *

    - * A weighted center node is a node which is part of the greatest number of all undirected paths in a graph. - *

    - * @see yfiles.tree.BalloonLayout#rootNodePolicy - */ - WEIGHTED_CENTER_ROOT, - /** - * Root node policy for choosing a custom node as the root node of the tree. - *

    - * The root node is specified using a {@link yfiles.algorithms.IDataProvider} registered with the graph with key - * {@link yfiles.tree.BalloonLayout#SELECTED_ROOT_DP_KEY}. - *

    - * @see yfiles.tree.BalloonLayout#rootNodePolicy - */ - SELECTED_ROOT - } - export enum ChildPlacement{ - /** - * Placement specifier which defines that subtrees are placed one below the other and left of the root node. - * @see yfiles.tree.DefaultNodePlacer#childPlacement - */ - VERTICAL_TO_LEFT, - /** - * Placement specifier which defines that subtrees are placed one below the other and right of the root node. - * @see yfiles.tree.DefaultNodePlacer#childPlacement - */ - VERTICAL_TO_RIGHT, - /** - * Placement specifier which defines that subtrees are placed horizontally next to each other and above the root node. - * @see yfiles.tree.DefaultNodePlacer#childPlacement - */ - HORIZONTAL_UPWARD, - /** - * Placement specifier which defines that subtrees are placed horizontally next to each other and below the root node. - * @see yfiles.tree.DefaultNodePlacer#childPlacement - */ - HORIZONTAL_DOWNWARD - } - export enum RootAlignment{ - /** - * Alignment specifier which defines that the root node is placed ahead of all its child subtrees. - *

    - * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed ahead (e.g. - * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: left) of the combined bounding box of all subtrees without labels. - *

    - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - LEADING_OFFSET, - /** - * Alignment specifier which defines that the root node is placed aligned with its first subtree. - *

    - * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed aligned with the bounding box of its first (e.g. - * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: left) subtree. - *

    - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - LEADING, - /** - * Alignment specifier which defines that the root node is placed aligned with the center of its subtrees. - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - CENTER, - /** - * Alignment specifier which defines that the root node is placed at the median of the connection points to its subtrees. - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - MEDIAN, - /** - * Alignment specifier which defines that the root node is placed aligned with its last subtree. - *

    - * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed aligned with the bounding box of its last (e.g. - * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: right) subtree. - *

    - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - TRAILING, - /** - * Alignment specifier which defines that the root is placed after all its subtree. - *

    - * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed after (e.g. - * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: right) of the combined bounding box of all subtrees without labels. - *

    - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - TRAILING_OFFSET, - /** - * Alignment specifier which defines that the root is placed after all its subtrees, centered on the bus. - *

    - * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed after (e.g. - * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: right) of the combined bounding box of all subtrees without labels. The - * bus leaves directly from the root node. - *

    - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - TRAILING_ON_BUS, - /** - * Alignment specifier which defines that the root is placed ahead of all its subtrees, centered on the bus. - *

    - * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed ahead (e.g. - * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: left) of the combined bounding box of all subtrees without labels. The - * bus leaves directly from the root node. - *

    - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - */ - LEADING_ON_BUS - } - export enum RoutingStyle{ - /** - * Routing style specifier which defines that edge paths are routed orthogonally with the bends located in the channel - * between the root node and the child nodes. - * @see yfiles.tree.DefaultNodePlacer#routingStyle - */ - FORK, - /** - * Routing style specifier which defines that edge paths are routed orthogonally with just one bend. - *

    - * Edges will leave the root node at its sides and bend exactly above the according child node. If the child node is placed - * directly below the root node, the edge will bend inside of the root node and leave it at the bottom. - *

    - * @see yfiles.tree.DefaultNodePlacer#routingStyle - */ - FORK_AT_ROOT, - /** - * Routing style specifier which defines that edge paths are routed with a straight segment to the center of the child - * nodes. - * @see yfiles.tree.DefaultNodePlacer#routingStyle - */ - STRAIGHT, - /** - * Routing style constant which defines that edge paths are routed with a straight segment to the connector of the {@link yfiles.tree.SubtreeShape} - * of the child nodes. - * @see yfiles.tree.DefaultNodePlacer#routingStyle - */ - POLYLINE - } - export enum PortAssignmentMode{ - /** - * A port assignment specifier that defines that - * {@link yfiles.layout.PortConstraint}s are considered. Ports are placed using the following rules: - *
      - *
    • edges without a {@link yfiles.layout.PortConstraint} are anchored at the center of the node
    • - *
    • edges with a weak {@link yfiles.layout.PortConstraint} are anchored at the center of their specified side
    • - *
    • edges with a strong {@link yfiles.layout.PortConstraint} are anchored at their initial coordinates
    • - *
    - *

    - * If edges with - * {@link yfiles.layout.PortConstraint}s are grouped, all edges in the same group will use the port coordinates of the first edge - * in the group. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - */ - PORT_CONSTRAINT, - /** - * A port assignment specifier which defines that edges are distributed evenly at the northern side of their nodes. - *

    - * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the - * distribution. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - */ - DISTRIBUTED_NORTH, - /** - * A port assignment specifier which defines that edges are distributed evenly at the southern side of their nodes. - *

    - * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the - * distribution. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - */ - DISTRIBUTED_SOUTH, - /** - * A port assignment specifier which defines that edges are distributed evenly at the eastern side of their nodes. - *

    - * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the - * distribution. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - */ - DISTRIBUTED_EAST, - /** - * A port assignment specifier which defines that edges are distributed evenly at the western side of their nodes. - *

    - * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the - * distribution. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - */ - DISTRIBUTED_WEST, - /** - * A port assignment specifier which defines that all ports are reset to the center of their nodes. - */ - NONE - } - export enum ConnectorDirection{ - /** - * A direction constant that describes that the last connector segment points up. The edge from the parent will connect to - * the north of the {@link yfiles.tree.SubtreeShape}. - * @see yfiles.tree.SubtreeShape#connectorDirection - */ - NORTH, - /** - * A direction constant that describes that the last connector segment points to the right. The edge from the parent will - * connect to the east of the {@link yfiles.tree.SubtreeShape}. - * @see yfiles.tree.SubtreeShape#connectorDirection - */ - EAST, - /** - * A direction constant that describes that the last connector segment points down. The edge from the parent will connect - * to the south of the {@link yfiles.tree.SubtreeShape}. - * @see yfiles.tree.SubtreeShape#connectorDirection - */ - SOUTH, - /** - * A direction constant that describes that the last connector segment points to the left. The edge from the parent will - * connect to the west of the {@link yfiles.tree.SubtreeShape}. - * @see yfiles.tree.SubtreeShape#connectorDirection - */ - WEST - } - export enum BorderLineSide{ - /** - * Side constant that defines the index of the northern border line. - * @see yfiles.tree.SubtreeShape#getBorderLine - */ - NORTH, - /** - * Side constant that defines the index of the eastern border line. - * @see yfiles.tree.SubtreeShape#getBorderLine - */ - EAST, - /** - * Side constant that defines the index of the southern border line. - * @see yfiles.tree.SubtreeShape#getBorderLine - */ - SOUTH, - /** - * Side constant that defines the index of the western border line. - * @see yfiles.tree.SubtreeShape#getBorderLine - */ - WEST - } - export enum LayeredRoutingStyle{ - /** - * Routing style specifier which defines that edges consist of one straight segment. - * @see yfiles.tree.LayeredNodePlacer#routingStyle - */ - STRAIGHT, - /** - * Routing style specifier which defines that edges are routed in an orthogonal, bus-like fashion. - * @see yfiles.tree.LayeredNodePlacer#routingStyle - */ - ORTHOGONAL - } - export enum MultiParentRoutingStyle{ - /** - * Routing style for routing non-shared edge segments in a polyline fashion. - *

    - * The edges connected to a multi-parent structure will share their paths until shortly above/below the multi-parent nodes. - * This style only applies to the part of the edges where they split to connect to different multi-parents. - *

    - * @see yfiles.tree.MultiParentDescriptor#edgeStyle - */ - POLYLINE, - /** - * Routing style for routing non-shared edge segments in an orthogonal fashion. - *

    - * The edges connected to a multi-parent structure will share their paths until shortly above/below the multi-parent nodes. - * This style only applies to the part of the edges where they split to connect to different multi-parents. - *

    - * @see yfiles.tree.MultiParentDescriptor#edgeStyle - */ - ORTHOGONAL, - /** - * Routing style for routing non-shared edge segments straight. This style will route the part of the edges that doesn't - * share the same path directly from the center of the multi-parent to the common point of the edges in the multi-parent - * structure. - *

    - * The edges connected to a multi-parent structure will share their paths until shortly above/below the multi-parent nodes. - * This style only applies to the part of the edges where they split to connect to different multi-parents. - *

    - * @see yfiles.tree.MultiParentDescriptor#edgeStyle - */ - STRAIGHT - } - export enum ParentConnectorDirection{ - /** - * Direction specifier which indicates that no connector should be calculated. - * @see yfiles.tree.INodePlacer#placeSubtree - */ - NONE, - /** - * Direction specifier which indicates that any direction can be used for the connector to the parent node. - * @see yfiles.tree.INodePlacer#placeSubtree - */ - ANY, - /** - * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended - * by a segment that goes north. - * @see yfiles.tree.INodePlacer#placeSubtree - */ - NORTH, - /** - * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended - * by a segment that goes east. - * @see yfiles.tree.INodePlacer#placeSubtree - */ - EAST, - /** - * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended - * by a segment that goes south. - * @see yfiles.tree.INodePlacer#placeSubtree - */ - SOUTH, - /** - * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended - * by a segment that goes west. - * @see yfiles.tree.INodePlacer#placeSubtree - */ - WEST - } - export enum PortStyle{ - /** - * A constant defining that ports are placed at the center of the nodes. - *

    - * This constant uses (0,0) as port offset. - *

    - * @see yfiles.tree.ClassicTreeLayout#portStyle - */ - NODE_CENTER, - /** - * A constant defining that ports are placed at the center of the border of the nodes. - * @see yfiles.tree.ClassicTreeLayout#portStyle - */ - BORDER_CENTER, - /** - * A constant defining that ports are evenly distributed along the border of the nodes. - * @see yfiles.tree.ClassicTreeLayout#portStyle - */ - BORDER_DISTRIBUTED, - /** - * A constant defining that ports are assigned based on given {@link yfiles.layout.PortConstraint port constraints}. - * @see yfiles.tree.ClassicTreeLayout#portStyle - */ - PORT_CONSTRAINTS_AWARE - } - export enum EdgeRoutingStyle{ - /** - * A constant for routing the edges as straight-line segments. - * @see yfiles.tree.ClassicTreeLayout#edgeRoutingStyle - */ - PLAIN, - /** - * A constant for routing the edges orthogonally in a bus-like fashion. - * @see yfiles.tree.ClassicTreeLayout#edgeRoutingStyle - */ - ORTHOGONAL - } - export enum LeafPlacement{ - /** - * A policy for placing the leaf nodes in a stack-like fashion with balanced stack heights. - *

    - * In this context, a stack-like fashion means that leaf nodes that connect to the same parent node are placed one upon the - * other, resulting in horizontally compact layouts. - *

    - *

    - * This policy tries to balance stack heights, i.e., for each subtree that consists only of leaf nodes, {@link yfiles.tree.LeafPlacement#LEAVES_STACKED_RIGHT} - * or {@link yfiles.tree.LeafPlacement#LEAVES_STACKED_LEFT_AND_RIGHT} will be used depending on the number of leaves in the - * subtree. - *

    - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - */ - LEAVES_STACKED, - /** - * A policy for placing the leaf nodes in a stack-like fashion using a single stack left. - *

    - * In this context, a stack-like fashion means that leaf nodes that connect to the same root node are placed one upon the - * other, resulting in horizontally compact layouts. - *

    - *

    - * This policy uses a single stack that lies to the left relative to the center of the parent node. - *

    - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - */ - LEAVES_STACKED_LEFT, - /** - * A policy for placing the leaf nodes in a stack-like fashion using a single stack right. - *

    - * In this context, a stack-like fashion means that leaf nodes that connect to the same root node are placed one upon the - * other, resulting in horizontally compact layouts. - *

    - *

    - * This policy uses a single stack that lies to the right relative to the center of the parent node. - *

    - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - */ - LEAVES_STACKED_RIGHT, - /** - * A policy for placing the leaf nodes in a stack-like fashion using two stacks. - *

    - * In this context, a stack-like fashion means that leaf nodes that connect to the same root node are placed one upon the - * other, resulting in horizontally compact layouts. - *

    - *

    - * This policy distributes leaf nodes among two stacks, one to the left and one to the right relative to the center of the - * parent node. - *

    - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - */ - LEAVES_STACKED_LEFT_AND_RIGHT, - /** - * A policy for placing the leaf nodes in a Dendrogram-like fashion. - *

    - * According to this policy, all leaf nodes are placed in one layer (i.e. all leaves are placed on one horizontal line in a - * top-to-bottom or in a bottom-to-top layout). - *

    - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - */ - ALL_LEAVES_ON_SAME_LAYER, - /** - * A policy for placing the leaf nodes with the same parent in the same layer. - *

    - * For example, siblings are being placed on a horizontal line in a top-to-bottom or in a bottom-to-top layout. - *

    - *

    - * This policy produces vertically compact layouts. - *

    - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - */ - SIBLINGS_ON_SAME_LAYER - } - /** - * This {@link yfiles.tree.INodePlacer} places the subtrees such that the overall aspect ratio of the arranged subtree will be - * close to a preferred aspect ratio. - *

    - * Layout Style The aspect ratio describes the relation between width and height of the subtree. To achieve the desired aspect ratio, - * this {@link yfiles.tree.INodePlacer} divides the child {@link yfiles.tree.SubtreeShape}s into as much rows as needed. The edges are - * either routed along the rows or along the columns. {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[70,70],[140,70],[210,70],[280,70],[70,140],[140,140],[210,140],[280,140],[70,210],[140,210],[210,210],[280,210],[70,280],[140,280],[210,280],[280,280]],"e":[[0,1,[50,15,50,85]],[0,2,[120,15,120,85]],[0,3,[190,15,190,85]],[0,4,[260,15,260,85]],[0,5,[50,15,50,155]],[0,6,[120,15,120,155]],[0,7,[190,15,190,155]],[0,8,[260,15,260,155]],[0,9,[50,15,50,225]],[0,10,[120,15,120,225]],[0,11,[190,15,190,225]],[0,12,[260,15,260,225]],[0,13,[50,15,50,295]],[0,14,[120,15,120,295]],[0,15,[190,15,190,295]],[0,16,[260,15,260,295]]],"vp":[0.0,0.0,310.0,310.0]}} - *

    - *

    - * Aspect ratio 1 - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[70,70],[140,70],[210,70],[70,140],[140,140],[210,140],[70,210],[140,210],[210,210],[70,280],[140,280],[210,280],[70,350],[140,350],[210,350],[70,420]],"e":[[0,1,[50,15,50,85]],[0,2,[120,15,120,85]],[0,3,[190,15,190,85]],[0,4,[50,15,50,155]],[0,5,[120,15,120,155]],[0,6,[190,15,190,155]],[0,7,[50,15,50,225]],[0,8,[120,15,120,225]],[0,9,[190,15,190,225]],[0,10,[50,15,50,295]],[0,11,[120,15,120,295]],[0,12,[190,15,190,295]],[0,13,[50,15,50,365]],[0,14,[120,15,120,365]],[0,15,[190,15,190,365]],[0,16,[50,15,50,435]]],"vp":[0.0,0.0,240.0,450.0]}} - *

    - *

    - * Aspect ratio 0.5 - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[70,70],[140,70],[210,70],[280,70],[350,70],[420,70],[490,70],[560,70],[70,140],[140,140],[210,140],[280,140],[350,140],[420,140],[490,140],[560,140]],"e":[[0,1,[50,15,50,85]],[0,2,[120,15,120,85]],[0,3,[190,15,190,85]],[0,4,[260,15,260,85]],[0,5,[330,15,330,85]],[0,6,[400,15,400,85]],[0,7,[470,15,470,85]],[0,8,[540,15,540,85]],[0,9,[50,15,50,155]],[0,10,[120,15,120,155]],[0,11,[190,15,190,155]],[0,12,[260,15,260,155]],[0,13,[330,15,330,155]],[0,14,[400,15,400,155]],[0,15,[470,15,470,155]],[0,16,[540,15,540,155]]],"vp":[0.0,0.0,590.0,170.0]}} - *

    - *

    - * Aspect ratio 2 - *

    - * @class yfiles.tree.AspectRatioNodePlacer - * @extends {yfiles.tree.NodePlacerBase} - * @implements {yfiles.tree.IFromSketchNodePlacer} - */ - export interface AspectRatioNodePlacer extends yfiles.tree.NodePlacerBase,yfiles.tree.IFromSketchNodePlacer{} - export class AspectRatioNodePlacer { - /** - * Creates a new instance of {@link yfiles.tree.AspectRatioNodePlacer} with default settings. - * @constructor - */ - constructor(); - /** - * Creates an {@link yfiles.collections.IComparer. edge comparator} which takes the initial coordinates of the nodes into account. - *

    - * This {@link yfiles.collections.IComparer.} defines the order of the outgoing edges of a node before the actual placement of the node's subtree is calculated. - * It also considers whether or not the rows are placed {@link yfiles.tree.AspectRatioNodePlacer#horizontal horiontally}. - *

    - * @returns {yfiles.collections.IComparer.} the {@link yfiles.collections.IComparer.} for the edges - */ - createFromSketchComparer():yfiles.collections.IComparer; - /** - * Gets or sets whether child nodes are distributed in horizontal rows or vertical columns. - * @type {boolean} - */ - horizontal:boolean; - /** - * Gets or sets the vertical distance between the {@link yfiles.tree.SubtreeShape}s. - *

    - * The nodes will be placed below each other, keeping this distance. - *

    - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - verticalDistance:number; - /** - * Gets or sets the horizontal distance between the {@link yfiles.tree.SubtreeShape}s. - *

    - * The nodes will be placed next to each other, keeping this distance. - *

    - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - horizontalDistance:number; - /** - * Gets or sets the preferred aspect ratio (width/height) for the subtrees. - *

    - * This ratio determines among how many rows/columns the nodes will be distributed. - *

    - *

    - * The aspect ratio needs to be positive. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified aspect ratio is 0 or negative - * @type {number} - */ - aspectRatio:number; - /** - * Gets or sets how rows/columns are aligned with each other. - * @throws {Stubs.Exceptions.ArgumentError} if an unknown fill style is specified - * @type {yfiles.tree.FillStyle} - */ - fillStyle:yfiles.tree.FillStyle; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.AspectRatioTreeLayout} arranges tree graphs in a compact fashion. - *

    - * Layout Style This layout algorithm tries to generate compact tree layouts with a certain preferred aspect ratio. {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[40,740],[360,740],[480,810],[400,810],[240,810],[80,810],[160,810],[560,810],[200,880],[200,940],[200,1000],[200,1060],[200,1120],[120,880],[120,940],[120,1000],[120,1060],[120,1120],[280,880],[280,940],[320,880],[320,940],[600,880],[600,940],[600,1000],[520,880],[520,940],[520,1000],[440,880],[440,940],[440,1000],[440,1060],[440,1120],[40,70],[390,70],[80,450],[80,640],[200,140],[200,450],[80,140],[150,680],[190,680],[240,210],[240,270],[240,330],[120,520],[120,580],[160,520],[160,580],[270,490],[270,550],[310,490],[310,550],[350,490],[350,550],[120,210],[120,270],[120,330],[120,390],[160,210],[160,270],[160,330],[430,610],[580,510],[430,510],[430,140],[510,140],[590,140],[470,610],[650,550],[500,550],[540,550],[630,210],[630,270],[630,330],[470,210],[470,270],[470,330],[470,390],[470,450],[550,210],[550,270],[550,330],[550,390],[550,450]],"e":[[0,1,-10,0,0,0,[5,50,5,720,55,720]],[0,2,-10,0,0,0,[5,50,5,720,375,720]],[2,3,-10,0,0,0,[365,790,495,790]],[2,4,-10,0,0,0,[365,790,415,790]],[1,5,-10,0,0,0,[45,790,255,790]],[1,6,-10,0,0,0,[45,790,95,790]],[1,7,-10,0,0,0,[45,790,175,790]],[2,8,-10,0,0,0,[365,790,575,790]],[7,9,-10,0,0,0,[165,860,215,860]],[7,10,-10,0,0,0,[165,860,165,920,215,920]],[7,11,-10,0,0,0,[165,860,165,980,215,980]],[7,12,-10,0,0,0,[165,860,165,1040,215,1040]],[7,13,-10,0,0,0,[165,860,165,1100,215,1100]],[6,14,-10,0,0,0,[85,860,135,860]],[6,15,-10,0,0,0,[85,860,85,920,135,920]],[6,16,-10,0,0,0,[85,860,85,980,135,980]],[6,17,-10,0,0,0,[85,860,85,1040,135,1040]],[6,18,-10,0,0,0,[85,860,85,1100,135,1100]],[5,19,-10,0,0,0,[245,860,295,860]],[5,20,-10,0,0,0,[245,860,245,920,295,920]],[5,21,-10,0,0,0,[245,860,335,860]],[5,22,-10,0,0,0,[245,860,245,920,335,920]],[8,23,-10,0,0,0,[565,860,615,860]],[8,24,-10,0,0,0,[565,860,565,920,615,920]],[8,25,-10,0,0,0,[565,860,565,980,615,980]],[3,26,-10,0,0,0,[485,860,535,860]],[3,27,-10,0,0,0,[485,860,485,920,535,920]],[3,28,-10,0,0,0,[485,860,485,980,535,980]],[4,29,-10,0,0,0,[405,860,455,860]],[4,30,-10,0,0,0,[405,860,405,920,455,920]],[4,31,-10,0,0,0,[405,860,405,980,455,980]],[4,32,-10,0,0,0,[405,860,405,1040,455,1040]],[4,33,-10,0,0,0,[405,860,405,1100,455,1100]],[0,34,-10,0,0,0,[5,50,55,50]],[0,35,-10,0,0,0,[5,50,405,50]],[34,36,-10,0,0,0,[45,120,45,430,95,430]],[34,37,-10,0,0,0,[45,120,45,620,95,620]],[34,38,-10,0,0,0,[45,120,215,120]],[34,39,-10,0,0,0,[45,120,45,430,215,430]],[34,40,-10,0,0,0,[45,120,95,120]],[37,41,0,-10,0,0,[130,645,130,660,165,660]],[37,42,0,-10,0,0,[130,645,130,660,205,660]],[38,43,-10,0,0,0,[205,190,255,190]],[38,44,-10,0,0,0,[205,190,205,250,255,250]],[38,45,-10,0,0,0,[205,190,205,310,255,310]],[36,46,-10,0,0,0,[85,500,135,500]],[36,47,-10,0,0,0,[85,500,85,560,135,560]],[36,48,-10,0,0,0,[85,500,175,500]],[36,49,-10,0,0,0,[85,500,85,560,175,560]],[39,50,0,-10,0,0,[250,455,250,470,285,470]],[39,51,0,-10,0,0,[250,455,250,530,285,530]],[39,52,0,-10,0,0,[250,455,250,470,325,470]],[39,53,0,-10,0,0,[250,455,250,530,325,530]],[39,54,0,-10,0,0,[250,455,250,470,365,470]],[39,55,0,-10,0,0,[250,455,250,530,365,530]],[40,56,-10,0,0,0,[85,190,135,190]],[40,57,-10,0,0,0,[85,190,85,250,135,250]],[40,58,-10,0,0,0,[85,190,85,310,135,310]],[40,59,-10,0,0,0,[85,190,85,370,135,370]],[40,60,-10,0,0,0,[85,190,175,190]],[40,61,-10,0,0,0,[85,190,85,250,175,250]],[40,62,-10,0,0,0,[85,190,85,310,175,310]],[35,63,-10,0,0,0,[395,120,395,590,445,590]],[35,64,-10,0,0,0,[395,120,395,490,595,490]],[35,65,-10,0,0,0,[395,120,395,490,445,490]],[35,66,-10,0,0,0,[395,120,445,120]],[35,67,-10,0,0,0,[395,120,525,120]],[35,68,-10,0,0,0,[395,120,605,120]],[35,69,-10,0,0,0,[395,120,395,590,485,590]],[64,70,0,-10,0,0,[630,515,630,530,665,530]],[65,71,0,-10,0,0,[480,515,480,530,515,530]],[65,72,0,-10,0,0,[480,515,480,530,555,530]],[68,73,-10,0,0,0,[595,190,645,190]],[68,74,-10,0,0,0,[595,190,595,250,645,250]],[68,75,-10,0,0,0,[595,190,595,310,645,310]],[66,76,-10,0,0,0,[435,190,485,190]],[66,77,-10,0,0,0,[435,190,435,250,485,250]],[66,78,-10,0,0,0,[435,190,435,310,485,310]],[66,79,-10,0,0,0,[435,190,435,370,485,370]],[66,80,-10,0,0,0,[435,190,435,430,485,430]],[67,81,-10,0,0,0,[515,190,565,190]],[67,82,-10,0,0,0,[515,190,515,250,565,250]],[67,83,-10,0,0,0,[515,190,515,310,565,310]],[67,84,-10,0,0,0,[515,190,515,370,565,370]],[67,85,-10,0,0,0,[515,190,515,430,565,430]]],"vp":[0.0,0.0,680.0,1150.0]}} - *

    - *

    - * Example layout with an aspect ratio of 0.5 - *

    - *

    - * Concept - *

    - *

    - * The layout algorithm starts from the root and recursively assigns coordinates to all tree nodes. In this manner, leaf - * nodes will be placed first, while each parent node is placed centered above its child nodes. - *

    - *

    - * Features - *

    - *

    - * The aspect ratio of each subtree can be specified individually. A {@link yfiles.algorithms.IDataProvider} registered with {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY} - * returns the aspect ratio for each local root node. - *

    - *

    - * A custom node can be defined as root of the tree using a {@link yfiles.algorithms.IDataProvider} registered with the graph with - * key {@link yfiles.tree.AspectRatioTreeLayout#SELECTED_ROOT_DP_KEY}. - *

    - * @class yfiles.tree.AspectRatioTreeLayout - * @extends {yfiles.layout.MultiStageLayout} - */ - export interface AspectRatioTreeLayout extends yfiles.layout.MultiStageLayout{} - export class AspectRatioTreeLayout { - /** - * Creates a new {@link yfiles.tree.AspectRatioTreeLayout} instance with default settings. - * @constructor - */ - constructor(); - /** - * Adds bends to the given {@link yfiles.layout.IEdgeLayout}. - *

    - * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} for each edge, after the nodes are placed, to - * route the path of the edges. It may be overridden to apply a custom routing style. - *

    - * @param {yfiles.layout.IEdgeLayout} edgeLayout the layout of the edge that is routed - * @param {yfiles.algorithms.Node} localRoot the local root of the subtree - * @param {yfiles.algorithms.Node} child the child connected to the local root with the given edge - * @param {yfiles.tree.RootPlacement} rootPlacement the placement specifier of the local root - * @param {yfiles.tree.SubtreeArrangement} routingPolicy the direction specifier for the routing - * @protected - */ - createBends(edgeLayout:yfiles.layout.IEdgeLayout,localRoot:yfiles.algorithms.Node,child:yfiles.algorithms.Node,rootPlacement:yfiles.tree.RootPlacement,routingPolicy:yfiles.tree.SubtreeArrangement):void; - /** - * Retrieves the aspect ratio for the subtree that is rooted at the given node. - *

    - * If there is an individual aspect ratio for the subtree provided by a {@link yfiles.algorithms.IDataProvider} registered with key - * {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY}, that ratio will be returned. Otherwise, the {@link yfiles.tree.AspectRatioTreeLayout#aspectRatio default aspect ratio} - * will be returned. - *

    - *

    - * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} before a subtree is arranged. It may be - * overridden to use another approach to define the aspect ratio for subtrees. - *

    - * @param {yfiles.algorithms.Node} localRoot the root node of the subtree - * @returns {number} the aspect ratio of the subtree rooted at the local root node - * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY - * @see yfiles.tree.AspectRatioTreeLayout#aspectRatio - * @protected - */ - getAspectRatio(localRoot:yfiles.algorithms.Node):number; - /** - * Retrieves the root placement for the subtree that is rooted at the given node. - *

    - * Either an individual root placement for the subtree (defined via a {@link yfiles.algorithms.IDataProvider} registered with - * {@link yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY}), or if there is none, the {@link yfiles.tree.AspectRatioTreeLayout#rootPlacement default root placement} is returned. - *

    - *

    - * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} after a subtree is arranged to align the - * local root node. It may be overridden to use another approach to define the root placement for a subtree. - *

    - * @param {Object} localRoot the root of the subtree - * @returns {yfiles.tree.RootPlacement} the root placement of the subtree - * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY - * @see yfiles.tree.AspectRatioTreeLayout#rootPlacement - * @protected - */ - getRootPlacement(localRoot:Object):yfiles.tree.RootPlacement; - /** - * Retrieves the routing for the subtree that is rooted at the given node. - *

    - * Either an individual routing for the subtree (defined via a {@link yfiles.algorithms.IDataProvider} registered with - * {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY}), or if there is none, the {@link yfiles.tree.AspectRatioTreeLayout#subtreeArrangement default routing} is returned. - *

    - *

    - * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} to determine the direction of the subtrees. - * It may be overridden to use another approach to define the routing for a subtree. - *

    - * @param {Object} localRoot the root of the subtree - * @returns {yfiles.tree.SubtreeArrangement} the routing policy for the subtree - * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY - * @see yfiles.tree.AspectRatioTreeLayout#subtreeArrangement - * @protected - */ - getSubtreeArrangement(localRoot:Object):yfiles.tree.SubtreeArrangement; - /** - * Retrieves all children of the given local root. - *

    - * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} to arrange the subtrees below the local - * root. - *

    - * @param {yfiles.algorithms.Node} localRoot the root of a subtree - * @returns {yfiles.algorithms.INodeCursor} all successors of the given node - * @protected - */ - getSuccessors(localRoot:yfiles.algorithms.Node):yfiles.algorithms.INodeCursor; - /** - * Data provider key for specifying a target aspect ratio for each subtree - *

    - * The aspect ratio needs to be greater than 0. - *

    - *
      - *
    • aspect ratio 1: width and height of the layout should be the same
    • - *
    • aspect ratio between 0 and 1: the height of the layout should be greater than its width
    • - *
    • aspect ratio greater than 1: the width of the layout should be greater than its height
    • - *
    - *

    - * If no specific ratio is defined for a subtree, the layout algorithm falls back to the default {@link yfiles.tree.AspectRatioTreeLayout#aspectRatio aspect ratio}. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static SUBTREE_ASPECT_RATIO_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for specifying the placement of each subtree root - *

    - * If no root placement is specified for one of the subtree roots, the default {@link yfiles.tree.AspectRatioTreeLayout#rootPlacement root placement} will be used. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static ROOT_PLACEMENT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for specifying the routing direction for each subtree root - *

    - * The children in a subtree are arranged either horizontally or vertically. The edges are routed to the top of the child - * nodes or at the side, respectively. Directions depend on the {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation} and refer to {@link yfiles.layout.LayoutOrientation#TOP_TO_BOTTOM} - * for this description. - *

    - *

    - * If no specific routing policy is specified for a subtree root, the layout algorithm uses the default {@link yfiles.tree.AspectRatioTreeLayout#subtreeArrangement routing direction}. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static SUBTREE_ROUTING_POLICY_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for marking the node that will be used as root node of the tree. - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * The input graph this algorithm is handling. - * @protected - * @type {yfiles.layout.LayoutGraph} - */ - graph:yfiles.layout.LayoutGraph; - /** - * Gets or sets the horizontal distance between adjacent nodes. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - horizontalDistance:number; - /** - * Gets or sets the vertical distance between adjacent nodes. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - verticalDistance:number; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. - * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled - * @see yfiles.layout.MultiStageLayout#componentLayout - * @see yfiles.layout.ComponentLayout - * @type {boolean} - */ - componentLayoutEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for hiding group nodes is activated. - * @see yfiles.layout.MultiStageLayout#hideGroupsStageEnabled - * @see yfiles.layout.MultiStageLayout#hideGroupsStage - * @see yfiles.layout.HideGroupsStage - * @type {boolean} - */ - hideGroupsStageEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter - * @see yfiles.router.ParallelEdgeRouter - * @type {boolean} - */ - parallelEdgeRouterEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. - * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled - * @see yfiles.layout.MultiStageLayout#selfLoopRouter - * @see yfiles.layout.SelfLoopRouter - * @type {boolean} - */ - selfLoopRouterEnabled:boolean; - /** - * Gets or sets the {@link yfiles.collections.IComparer.} that will be used for sorting the {@link yfiles.algorithms.Node#sortOutEdges outgoing edges} of each local root in the tree before they are being - * arranged. - * @type {yfiles.collections.IComparer.} - */ - comparer:yfiles.collections.IComparer; - /** - * Gets or sets the default aspect ratio for this {@link yfiles.tree.AspectRatioTreeLayout}. - *

    - * This aspect ratio is used for all subtrees for which there is no specific aspect ratio defined in a {@link yfiles.algorithms.IDataProvider} - * registered with {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY}. - *

    - *

    - * The aspect ratio needs to have a positive value. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified aspect ratio is 0 or negative - * @type {number} - */ - aspectRatio:number; - /** - * Gets or sets the desired placement of the tree's root node. - * @throws {Stubs.Exceptions.ArgumentError} if an unknown placement specifiers is set - * @type {yfiles.tree.RootPlacement} - */ - rootPlacement:yfiles.tree.RootPlacement; - /** - * Gets or sets how the children of a local root are arranged and how the edges between them are routed. - * @throws {Stubs.Exceptions.ArgumentError} if the specified routing policy is unknown - * @type {yfiles.tree.SubtreeArrangement} - */ - subtreeArrangement:yfiles.tree.SubtreeArrangement; - /** - * Gets or sets the preferred distance between any two bends of an edge. - *

    - * Additionally, the preferred bend distance governs the distance between the first and last edges and the corresponding - * ports. - *

    - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - bendDistance:number; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.AssistantNodePlacer} places nodes that are marked as assistants left and right of their parents and all - * other nodes below the assistant nodes. - *

    - * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[75,0],[100,171],[50,171],[0,171],[150,171],[110,50,1],[40,100,1],[40,50,1]],"e":[[0,1,[90,150.5,115,150.5]],[0,2,[90,150.5,65,150.5]],[0,3,[90,150.5,15,150.5]],[0,4,[90,150.5,165,150.5]],[0,5,[90,65]],[0,6,[90,115]],[0,7,[90,65]]],"vp":[0.0,0.0,180.0,201.0]}} - *

    - *

    - * Assistants are marked - *

    - *

    - * Concept This {@link yfiles.tree.INodePlacer} delegates the placement of all assistant nodes to an instance of - * {@link yfiles.tree.LeftRightNodePlacer}. The non-assistant nodes are handled by another {@link yfiles.tree.AssistantNodePlacer#childNodePlacer node placer}. To be able to do this, {@link yfiles.tree.AssistantNodePlacer} - * uses a {@link yfiles.tree.IProcessor} which prepares the graph for node placing. - *

    - *

    - * A {@link yfiles.algorithms.IDataProvider} that is registered using {@link yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY} returns - * true for assistant nodes and false for all other nodes. - *

    - * @class yfiles.tree.AssistantNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface AssistantNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class AssistantNodePlacer { - /** - * Creates a new {@link yfiles.tree.AssistantNodePlacer} instance that uses the transformation defined by the given matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); - /** - * Creates a new {@link yfiles.tree.AssistantNodePlacer} instance with default settings. - * @constructor - */ - constructor(); - /** - * Creates a {@link yfiles.collections.IComparer.} that compares outgoing edges connecting to assistant nodes and edges connecting to non-assistant nodes - * separately. - * @param {yfiles.collections.IComparer.} assistantComparer the {@link yfiles.collections.IComparer.} for edges connecting to assistant nodes - * @param {yfiles.collections.IComparer.} childComparer the {@link yfiles.collections.IComparer.} for edges connecting to non-assistant nodes - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that compares edges to assistant nodes separately from edges to non-assistant nodes - * @static - */ - static createCompoundComparer(assistantComparer:yfiles.collections.IComparer,childComparer:yfiles.collections.IComparer):yfiles.collections.IComparer; - /** - * Data provider key for marking which nodes are placed as assistants - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static ASSISTANT_NODE_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Gets or sets the spacing between subtrees for the delegate {@link yfiles.tree.INodePlacer}. - *

    - * The spacing needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given spacing is negative - * @type {number} - */ - spacing:number; - /** - * Gets or sets the {@link yfiles.tree.INodePlacer} instance that places the non-assistant children. - *

    - * These non-assistant child nodes will be placed below the assistant child nodes and are arranged by the given - * {@link yfiles.tree.INodePlacer}. Non-assistant child nodes are the ones that are not marked in the {@link yfiles.algorithms.IDataProvider} - * registered with {@link yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY}. - *

    - * @see yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY - * @type {yfiles.tree.INodePlacer} - */ - childNodePlacer:yfiles.tree.INodePlacer; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.BusNodePlacer} creates a bus to which all child nodes and the local root node are connected. - *

    - * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[40,0],[140,0],[190,0],[50,70],[0,70],[100,70],[150,70],[90,0,1]],"e":[[7,0,[105,50,55,50]],[7,1,[105,50,155,50]],[7,2,[105,50,205,50]],[7,3,[105,50,65,50]],[7,4,[105,50,15,50]],[7,5,[105,50,115,50]],[7,6,[105,50,165,50]]],"vp":[0.0,0.0,220.0,100.0]}} - *

    - *

    - * The root node is marked - *

    - * @class yfiles.tree.BusNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface BusNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class BusNodePlacer { - /** - * Creates a new {@link yfiles.tree.BusNodePlacer} instance that uses the transformation defined by the given matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); - /** - * Creates a new instance of {@link yfiles.tree.BusNodePlacer} with default settings. - * @constructor - */ - constructor(); - static $class:yfiles.lang.Class; - } - /** - * This layout algorithm arranges graphs with a tree structure. - *

    - * Layout Style {@link yfiles.tree.ClassicTreeLayout} is designed to arrange directed and undirected trees that have a unique root node. All - * children are placed below their parent in relation to the main layout direction. The edges of the graph are routed as - * straight-line segments or in an orthogonal bus-like fashion. - *

    - *

    - * Tree layout algorithms are commonly used for visualizing relational data and for producing diagrams of high quality that - * are able to reveal possible hierarchic properties of the graph. More precisely, they find applications in dataflow - * analysis, software engineering, bioinformatics and business administration. - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":1},"n":[[215.62,70],[365.62,0],[706.25,210],[25,140],[331.25,140],[100,280],[512.5,210],[325,280],[762.5,280],[200,210],[150,350],[400,350],[825,350],[350,350],[25,210],[900,420],[700,420],[100,350],[575,280],[575,350],[600,420],[200,280],[150,420],[25,280],[550,420],[300,420],[850,420],[800,420],[400,420],[200,350],[350,420],[50,350],[500,420],[100,420],[750,420],[450,420],[0,420],[50,420],[200,420],[650,280],[250,420],[650,420],[650,350]],"e":[[1,0,0,15,0,-15,[230.62,50]],[1,2,0,15,0,-15,[721.25,50]],[1,3,0,15,0,-15,[40,50]],[0,4,0,15,0,-15,[346.25,120]],[0,5,0,15,0,-15,[115,120]],[4,6,0,15,0,-15,[527.5,190]],[4,7,0,15,0,-15,[340,190]],[2,8,0,15,0,-15,[777.5,260]],[4,9,0,15,0,-15,[215,190]],[4,10,0,15,0,-15,[165,190]],[7,11,0,15,0,-15,[415,330]],[8,12,0,15,0,-15,[840,330]],[7,13,0,15,0,-15,[365,330]],[3,14,0,15,0,-15],[12,15,0,15,0,-15,[915,400]],[8,16,0,15,0,-15,[715,330]],[5,17,0,15,0,-15],[6,18,0,15,0,-15,[590,260]],[18,19,0,15,0,-15],[19,20,0,15,0,-15,[615,400]],[9,21,0,15,0,-15],[10,22,0,15,0,-15],[14,23,0,15,0,-15],[19,24,0,15,0,-15,[565,400]],[7,25,0,15,0,-15,[315,330]],[12,26,0,15,0,-15,[865,400]],[12,27,0,15,0,-15,[815,400]],[11,28,0,15,0,-15],[21,29,0,15,0,-15],[13,30,0,15,0,-15],[23,31,0,15,0,-15,[65,330]],[6,32,0,15,0,-15,[515,260]],[17,33,0,15,0,-15],[12,34,0,15,0,-15,[765,400]],[6,35,0,15,0,-15,[465,260]],[23,36,0,15,0,-15,[15,330]],[31,37,0,15,0,-15],[29,38,0,15,0,-15],[2,39,0,15,0,-15,[665,260]],[7,40,0,15,0,-15,[265,330]],[39,42,0,15,0,-15],[42,41,0,15,0,-15]],"vp":[0.0,0.0,930.0,450.0]}} A Dendrogram {@graph {"ann":{"s":[30,30],"d":1},"n":[[983.12,0],[495,85],[495,170],[151.25,170],[495,240],[42.5,255],[85,325],[0,325],[520,310],[470,310],[520,380],[135,395],[470,380],[85,395],[520,450],[35,395],[185,240,265,270,2],[260,255],[320,325],[405,395],[320,395],[370,465],[320,465],[235,395],[270,465],[200,325],[570,155,560,510,2],[670,170],[1060,240],[670,240],[1060,310],[670,325],[585,240],[1085,380],[670,395],[670,465],[620,325],[1035,380],[720,310,295,340,2],[810,325],[920,395],[835,395],[920,465],[785,395],[835,465],[970,535],[920,535],[735,395],[735,465],[870,535],[920,605],[1150,70,440,495,2],[1471.25,85],[1545,155],[1397.5,155],[1510,240],[1435,240],[1460,310],[1360,240],[1460,380],[1485,450],[1410,310],[1360,310],[1435,450],[1510,310],[1360,380],[1435,520],[1165,225,175,230,2],[1230,240],[1280,310],[1230,310],[1180,310],[1265,380,60,60,2],[1280,395]],"e":[[0,1,[998.12,50,510,50]],[1,2],[1,3,[510,135,166.25,135]],[2,4],[3,5,[166.25,220,57.5,220]],[5,6,[57.5,305,100,305]],[5,7,[57.5,305,15,305]],[4,8,[510,290,535,290]],[4,9,[510,290,485,290]],[8,10],[6,11,[100,375,150,375]],[9,12],[6,13],[10,14],[6,15,[100,375,50,375]],[3,17,[166.25,220,275,220]],[17,18,[275,305,335,305]],[18,19,[335,375,420,375]],[18,20],[20,21,[335,445,385,445]],[20,22],[18,23,[335,375,250,375]],[20,24,[335,445,285,445]],[17,25,[275,305,215,305]],[1,27,[510,135,685,135]],[27,28,[685,220,1075,220]],[27,29],[28,30],[29,31],[27,32,[685,220,600,220]],[30,33,[1075,360,1100,360]],[31,34],[34,35],[29,36,[685,290,635,290]],[30,37,[1075,360,1050,360]],[29,39,[685,290,825,290]],[39,40,[825,375,935,375]],[39,41,[825,375,850,375]],[40,42],[39,43,[825,375,800,375]],[41,44],[42,45,[935,515,985,515]],[42,46],[39,47,[825,375,750,375]],[47,48],[42,49,[935,515,885,515]],[46,50],[0,52,[998.12,50,1486.25,50]],[52,53,[1486.25,135,1560,135]],[52,54,[1486.25,135,1412.5,135]],[54,55,[1412.5,205,1525,205]],[54,56,[1412.5,205,1450,205]],[56,57,[1450,290,1475,290]],[54,58,[1412.5,205,1375,205]],[57,59],[59,60,[1475,430,1500,430]],[56,61,[1450,290,1425,290]],[58,62],[59,63,[1475,430,1450,430]],[55,64],[62,65],[63,66],[54,68,[1412.5,205,1245,205]],[68,69,[1245,290,1295,290]],[68,70],[68,71,[1245,290,1195,290]],[69,73]],"vp":[0.0,0.0,1590.0,665.0]}} A graph containing group nodes {@graph {"ann":{"s":[30,30],"d":1},"n":[[4.33,440.22],[74.33,418.34,73.78,73.78],[188.11,41,48,48],[197.11,417.95],[298,245.33],[298,445.67],[389.89,393.78,73.78,73.78],[411.78,146.89],[298,25],[411.78,243.78],[411.78,293.78],[298,590.56],[503.67,100,73.78,73.78],[197.11,708.56],[188.11,821.45,48,48],[525.56,415.67],[525.56,243.78],[399.84,13.06,53.88,53.88],[276.11,661.67,73.78,73.78],[411.78,343.78],[411.78,497.56],[402.78,547.56,48,48],[402.78,615.56,48,48],[298,755.45],[525.56,472.56],[525.56,293.78],[629.39,243.78],[525.56,0],[525.56,50],[525.56,522.56],[298,805.45],[617.45,485.62,53.88,53.88],[629.39,50],[411.78,755.45],[711.33,38.06,53.88,53.88],[629.39,559.5],[298,75],[411.78,683.56],[525.56,599.56],[411.78,805.45],[723.27,559.5],[629.39,293.78],[525.56,193.78],[723.27,497.56],[298,855.45],[525.56,649.56]],"e":[[0,1],[1,2,[168.11,455.22,168.11,65]],[1,3,[168.11,455.22,168.11,432.95]],[3,4,[256.11,432.95,256.11,260.33]],[3,5,[256.11,432.95,256.11,460.67]],[5,6,[369.89,460.67,369.89,430.67]],[4,7,[369.89,260.33,369.89,161.89]],[2,8,[256.11,65,256.11,40]],[4,9,[369.89,260.33,369.89,258.78]],[4,10,[369.89,260.33,369.89,308.78]],[3,11,[256.11,432.95,256.11,605.56]],[7,12,[483.67,161.89,483.67,136.89]],[1,13,[168.11,455.22,168.11,723.56]],[1,14,[168.11,455.22,168.11,845.45]],[6,15],[9,16],[8,17],[13,18,[256.11,723.56,256.11,698.56]],[4,19,[369.89,260.33,369.89,358.78]],[5,20,[369.89,460.67,369.89,512.56]],[11,21,[369.89,605.56,369.89,571.56]],[11,22,[369.89,605.56,369.89,639.56]],[13,23,[256.11,723.56,256.11,770.45]],[20,24,[483.67,512.56,483.67,487.56]],[10,25],[16,26],[17,27,[483.67,40,483.67,15]],[17,28,[483.67,40,483.67,65]],[20,29,[483.67,512.56,483.67,537.56]],[14,30,[256.11,845.45,256.11,820.45]],[29,31,[597.45,537.56,597.45,512.56]],[28,32],[23,33],[32,34],[29,35,[597.45,537.56,597.45,574.5]],[2,36,[256.11,65,256.11,90]],[18,37],[22,38,[483.67,639.56,483.67,614.56]],[30,39],[35,40],[25,41],[7,42,[483.67,161.89,483.67,208.78]],[31,43],[14,44,[256.11,845.45,256.11,870.45]],[22,45,[483.67,639.56,483.67,664.56]]],"vp":[4.0,0.0,762.0,886.0]}} Left-to-right layout with global layeringConcept - *

    - *

    - * The layout algorithm starts from the root and recursively assigns coordinates to all tree nodes. In this manner, leaf - * nodes will be placed first, while each parent node is placed centered above its children. - *

    - *

    - * Features - *

    - *

    - * The layout algorithm supports custom sorting of sibling nodes by using a specific {@link yfiles.tree.NodeOrderComparer}. Each - * tree node may have an individual {@link yfiles.tree.NodeOrderComparer} that is stored in a {@link yfiles.algorithms.IDataProvider} - * registered with the graph with {@link yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY}. If this {@link yfiles.tree.NodeOrderComparer} - * uses the initial coordinates of the nodes, it allows the incremental insertion of child nodes while keeping the relative - * locations of the other nodes. - *

    - *

    - * A custom node can be defined as root of the tree using a {@link yfiles.algorithms.IDataProvider} registered with the graph with - * key {@link yfiles.tree.ClassicTreeLayout#SELECTED_ROOT_DP_KEY}. - *

    - *

    - * {@link yfiles.tree.ClassicTreeLayout} can be configured to {@link yfiles.tree.ClassicTreeLayout#considerNodeLabels reserve space for node labels}. It can also {@link yfiles.tree.ClassicTreeLayout#integratedEdgeLabeling place edge labels along edges} - * such that the labels won't overlap with other graph elements. Edge labels are placed according to the information stored - * in a {@link yfiles.layout.PreferredPlacementDescriptor} instance. However, the placement along the edge will only affect the - * order of multiple labels at the same edge. The algorithm will always place the labels close to the target node. - *

    - *

    - * Grouping of nodes can also be handled by this layout algorithm. It is important that a group node contains a whole - * subtree. Otherwise, the group nodes may overlap with each other or with other nodes. Furthermore, the user may specify - * minimum size constraints for each group node using {@link yfiles.algorithms.IDataProvider} key - * {@link yfiles.layout.GroupingKeys#MINIMUM_NODE_SIZE_DP_KEY}. - *

    - *

    - * This layout algorithm can only handle graphs with a tree structure. To apply it to a general graph, a {@link yfiles.tree.TreeReductionStage} - * can be appended. This stage will temporarily remove some edges of the input graph until a tree is obtained. After the - * layout calculation, the stage will reinsert the edges that were removed and route them separately. - *

    - * @class yfiles.tree.ClassicTreeLayout - * @extends {yfiles.layout.MultiStageLayout} - */ - export interface ClassicTreeLayout extends yfiles.layout.MultiStageLayout{} - export class ClassicTreeLayout { - /** - * Creates a new {@link yfiles.tree.ClassicTreeLayout} instance with default settings. - * @constructor - */ - constructor(); - /** - * Data provider key for marking the node that will be used as root node of the tree. - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Gets or sets whether or not a global layering is enforced, that is, each node spans exactly one layer. - *

    - * If it is enabled, the algorithm ensures that nodes never span more than one layer. Otherwise, nodes with larger size - * might span two or more layers such that a more compact layout is produced. - *

    - *

    - * This setting can be advantageous, if the hierarchical structure of the tree should be emphasized. - *

    - * @see yfiles.tree.ClassicTreeLayout#verticalAlignment - * @see yfiles.tree.ClassicTreeLayout#verticalAlignment - * @type {boolean} - */ - enforceGlobalLayering:boolean; - /** - * Gets or sets the layout policy for leaf nodes. - * @throws {Stubs.Exceptions.ArgumentError} if the specified policy is unknown - * @type {yfiles.tree.LeafPlacement} - */ - leafPlacement:yfiles.tree.LeafPlacement; - /** - * Gets or sets whether or not group nodes are handled by the layout algorithm. - * @see yfiles.layout.MultiStageLayout#hideGroupsStageEnabled - * @type {boolean} - */ - groupingSupported:boolean; - /** - * Gets or sets the {@link yfiles.collections.IComparer.} instance that is used for sorting the outgoing edges of each node of the tree. - *

    - * This comparator defines the relative order of the child nodes in the layout. - *

    - * @type {yfiles.collections.IComparer.} - */ - comparer:yfiles.collections.IComparer; - /** - * Gets or sets the port assignment policy that will be applied. - * @type {yfiles.tree.PortStyle} - */ - portStyle:yfiles.tree.PortStyle; - /** - * Gets or sets the edge routing style used by this layout algorithm. - *

    - * If {@link yfiles.tree.EdgeRoutingStyle#PLAIN} is set, the edges will be routed as straight-line segments. If {@link yfiles.tree.EdgeRoutingStyle#ORTHOGONAL} - * is set, all edges will be routed orthogonally in a bus-like fashion. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if an invalid layout style is provided - * @type {yfiles.tree.EdgeRoutingStyle} - */ - edgeRoutingStyle:yfiles.tree.EdgeRoutingStyle; - /** - * Gets or sets the minimum horizontal distance between adjacent nodes within the same layer. - * @throws {Stubs.Exceptions.ArgumentError} if the given distance is negative - * @type {number} - */ - minimumNodeDistance:number; - /** - * Gets or sets the minimum distance between two adjacent layers. - * @throws {Stubs.Exceptions.ArgumentError} if the given distance is negative - * @type {number} - */ - minimumLayerDistance:number; - /** - * Gets or sets whether or not the layout algorithm reserves space for node labels. - * @type {boolean} - */ - considerNodeLabels:boolean; - /** - * Gets or sets whether or not the layout algorithm reserves space for edge labels and places them. - *

    - * To define the desired placement for each label add a {@link yfiles.layout.PreferredPlacementDescriptor} on - * {@link yfiles.layout.IEdgeLabelLayout}. - *

    - *

    - * This method is a convenience method that assures that the {@link yfiles.layout.MultiStageLayout#labeling label layouter} is of type {@link yfiles.layout.LabelLayoutTranslator} - * and {@link yfiles.layout.LabelLayoutTranslator#translateEdgeLabels} is set to true. - *

    - * @type {boolean} - */ - integratedEdgeLabeling:boolean; - /** - * Gets or sets the vertical bus alignment for orthogonally routed edge buses. - *

    - * The bus alignment determines the relative position of an edge bus between two subsequent layers. The value of this - * property must lie within the interval [0,1] where: - *

    - *
      - *
    • A value of 0 places the bus at the top, directly below the parent node.
    • - *
    • A value of 0.5 places the bus in the middle between parent and child nodes.
    • - *
    • A value of 1 places the bus at the bottom, directly above the child nodes.
    • - *
    - * @throws {Stubs.Exceptions.ArgumentError} if busAlignment is not in [0,1] - * @see yfiles.tree.ClassicTreeLayout#edgeRoutingStyle - * @see yfiles.tree.ClassicTreeLayout#enforceGlobalLayering - * @see yfiles.tree.ClassicTreeLayout#leafPlacement - * @type {number} - */ - busAlignment:number; - /** - * Gets or sets the vertical alignment of the nodes within their corresponding layers. - *

    - * The value for the vertical alignment is considered as relative to the height of the corresponding layer, which is - * determined by the maximum height of the nodes that belong to the particular layer. - *

    - *

    - * The value of this property must lie within the interval [0,1], where: - *

    - *
      - *
    • A value of 0 corresponds to top-alignment.
    • - *
    • A value of 0.5 corresponds to center-alignment.
    • - *
    • A value of 1 corresponds to bottom-alignment.
    • - *
    - * @throws {Stubs.Exceptions.ArgumentError} if vertical alignment value does not lie within [0,1] - * @see yfiles.tree.ClassicTreeLayout#enforceGlobalLayering - * @type {number} - */ - verticalAlignment:number; - /** - * Gets or sets the modification matrix used for rotating / mirroring the layout. - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. - * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled - * @see yfiles.layout.MultiStageLayout#componentLayout - * @see yfiles.layout.ComponentLayout - * @type {boolean} - */ - componentLayoutEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter - * @see yfiles.router.ParallelEdgeRouter - * @type {boolean} - */ - parallelEdgeRouterEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. - * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled - * @see yfiles.layout.MultiStageLayout#selfLoopRouter - * @see yfiles.layout.SelfLoopRouter - * @type {boolean} - */ - selfLoopRouterEnabled:boolean; - static $class:yfiles.lang.Class; - } - /** - * {@link yfiles.tree.DefaultNodePlacer} is the default implementation of interface {@link yfiles.tree.INodePlacer}. - *

    - * Layout Style The layout style can be customized in several ways. Subtrees sharing the same local root node are either placed above - * or below each other. {@graph {"ann":{"s":[30,30],"d":1},"n":[[135,0],[0,70],[70,70],[120,149],[170,149],[220,149],[270,149],[70,199],[120,278],[170,278],[220,278],[270,278]],"e":[[0,1,0,15,0,0,[150,50,15,50]],[1,2],[2,3,-11.25,15,0,0,[73.75,116,135,133]],[2,4,-3.75,15,0,0,[81.25,116,185,133]],[2,5,3.75,15,0,0,[88.75,116,235,133]],[2,6,11.25,15,0,0,[96.25,116,285,133]],[1,7,[50,85,50,214]],[7,8,-11.25,15,0,0,[73.75,245,135,262]],[7,9,-3.75,15,0,0,[81.25,245,185,262]],[7,10,3.75,15,0,0,[88.75,245,235,262]],[7,11,11.25,15,0,0,[96.25,245,285,262]]],"vp":[0.0,0.0,300.0,308.0]}} - *

    - *

    - * Each layer in the tree uses different configurations of {@link yfiles.tree.DefaultNodePlacer} - *

    - *

    - * Features - *

    - *

    - * {@link yfiles.tree.SubtreeShape}s can be arranged in each main direction specified in - * {@link yfiles.tree.DefaultNodePlacer#childPlacement}. That way, the subtrees of the same graph can have different directions. - *

    - *

    - * This node placer aligns the local root node according to a chosen {@link yfiles.tree.DefaultNodePlacer#rootAlignment alignment}. - *

    - *

    - * There are various {@link yfiles.tree.DefaultNodePlacer#routingStyle routing styles} that result in different edge routes. - *

    - * @class yfiles.tree.DefaultNodePlacer - * @extends {yfiles.tree.NodePlacerBase} - * @implements {yfiles.tree.IFromSketchNodePlacer} - * @implements {yfiles.lang.ICloneable} - */ - export interface DefaultNodePlacer extends yfiles.tree.NodePlacerBase,yfiles.tree.IFromSketchNodePlacer,yfiles.lang.ICloneable{} - export class DefaultNodePlacer { - /** - * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with custom settings. - * @param {yfiles.tree.ChildPlacement} childPlacement the child placement specifier describing the style of the arrangement - * @param {yfiles.tree.RootAlignment} rootAlignment the alignment specifier describing how the root node is aligned with its child nodes - * @param {yfiles.tree.RoutingStyle} routingStyle the routing style specifier - * @param {number} verticalDistance the vertical distance between the {@link yfiles.tree.SubtreeShape}s - * @param {number} horizontalDistance the horizontal distance between the {@link yfiles.tree.SubtreeShape}s - * @param {number} minFirstSegmentLength the minimum length of the first edge segment (connected to the root node) - * @param {number} minLastSegmentLength the minimum length of the last edge segment (connected to the child node) - * @param {number} minSlope the minimum slope between the root node and the {@link yfiles.tree.SubtreeShape}s - * @param {number} minSlopeHeight the minimum vertical height of sloped edge segments - * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier or the root alignment or the routing style is unknown or if the horizontal/vertical distance - * or the minimum first/last segment length or the minimum slope or the minimum vertical height is negative - * @see yfiles.tree.DefaultNodePlacer#childPlacement - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - * @see yfiles.tree.DefaultNodePlacer#routingStyle - * @see yfiles.tree.DefaultNodePlacer#verticalDistance - * @see yfiles.tree.DefaultNodePlacer#horizontalDistance - * @see yfiles.tree.DefaultNodePlacer#minimumFirstSegmentLength - * @see yfiles.tree.DefaultNodePlacer#minimumLastSegmentLength - * @see yfiles.tree.DefaultNodePlacer#minimumSlope - * @see yfiles.tree.DefaultNodePlacer#minimumSlopeHeight - * @constructor - */ - constructor(childPlacement:yfiles.tree.ChildPlacement,rootAlignment:yfiles.tree.RootAlignment,routingStyle:yfiles.tree.RoutingStyle,verticalDistance:number,horizontalDistance:number,minFirstSegmentLength:number,minLastSegmentLength:number,minSlope:number,minSlopeHeight:number); - /** - * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with customized {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, {@link yfiles.tree.DefaultNodePlacer#rootAlignment root alignment}, {@link yfiles.tree.DefaultNodePlacer#routingStyle routing style}, {@link yfiles.tree.DefaultNodePlacer#verticalDistance vertical} - * and {@link yfiles.tree.DefaultNodePlacer#horizontalDistance horizontal distance}. - * @param {yfiles.tree.ChildPlacement} childPlacement the child placement specifier describing the style of the arrangement - * @param {yfiles.tree.RootAlignment} rootAlignment the alignment specifier describing how the root node is aligned with its child nodes - * @param {yfiles.tree.RoutingStyle} routingStyle the routing style specifier - * @param {number} verticalDistance the vertical distance between the {@link yfiles.tree.SubtreeShape}s - * @param {number} horizontalDistance the horizontal distance between the {@link yfiles.tree.SubtreeShape}s - * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier or the root alignment or the routing style is unknown or if the horizontal/vertical distance - * is negative - * @see yfiles.tree.DefaultNodePlacer#childPlacement - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - * @see yfiles.tree.DefaultNodePlacer#routingStyle - * @see yfiles.tree.DefaultNodePlacer#verticalDistance - * @see yfiles.tree.DefaultNodePlacer#horizontalDistance - * @constructor - */ - constructor(childPlacement:yfiles.tree.ChildPlacement,rootAlignment:yfiles.tree.RootAlignment,routingStyle:yfiles.tree.RoutingStyle,verticalDistance:number,horizontalDistance:number); - /** - * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with customized {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, {@link yfiles.tree.DefaultNodePlacer#rootAlignment root alignment}, {@link yfiles.tree.DefaultNodePlacer#verticalDistance vertical} and - * {@link yfiles.tree.DefaultNodePlacer#horizontalDistance horizontal distance}. - * @param {yfiles.tree.ChildPlacement} childPlacement the child placement specifier describing the style of the arrangement - * @param {yfiles.tree.RootAlignment} rootAlignment the alignment specifier describing how the root node is aligned with its child nodes - * @param {number} verticalDistance the vertical distance between the {@link yfiles.tree.SubtreeShape}s - * @param {number} horizontalDistance the horizontal distance between the {@link yfiles.tree.SubtreeShape}s - * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier or the root alignment specifier is unknown or if the horizontal/vertical distance is - * negative - * @see yfiles.tree.DefaultNodePlacer#childPlacement - * @see yfiles.tree.DefaultNodePlacer#rootAlignment - * @see yfiles.tree.DefaultNodePlacer#verticalDistance - * @see yfiles.tree.DefaultNodePlacer#horizontalDistance - * @constructor - */ - constructor(childPlacement:yfiles.tree.ChildPlacement,rootAlignment:yfiles.tree.RootAlignment,verticalDistance:number,horizontalDistance:number); - /** - * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with customized {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, {@link yfiles.tree.DefaultNodePlacer#verticalDistance vertical} and {@link yfiles.tree.DefaultNodePlacer#horizontalDistance horizontal distance}. - * @param {yfiles.tree.ChildPlacement} childPlacement the child placement specifier describing the style of the arrangement - * @param {number} verticalDistance the vertical distance between the {@link yfiles.tree.SubtreeShape}s - * @param {number} horizontalDistance the horizontal distance between the {@link yfiles.tree.SubtreeShape}s - * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier is unknown or if the horizontal/vertical distance is negative - * @see yfiles.tree.DefaultNodePlacer#childPlacement - * @see yfiles.tree.DefaultNodePlacer#verticalDistance - * @see yfiles.tree.DefaultNodePlacer#horizontalDistance - * @constructor - */ - constructor(childPlacement:yfiles.tree.ChildPlacement,verticalDistance:number,horizontalDistance:number); - /** - * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with default settings. - * @constructor - */ - constructor(); - /** - * Calculates the bends for the connector to the parent node. - *

    - * This implementation adds bends to the connector for edges that route the edges around the child node in case there are - * {@link yfiles.layout.PortConstraint}s that conflict with the direction of the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}. - *

    - *

    - * This method is called in {@link yfiles.tree.DefaultNodePlacer#placeSubtreeOfNode} to route the edges after the - * {@link yfiles.tree.SubtreeShape}s are arranged. It may be overridden to customize the routing style. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} localRoot the local root node whose connector is calculated and stored in the given subtree shape - * @param {yfiles.layout.INodeLayout} rootLayout the {@link yfiles.layout.INodeLayout} of the root node - * @param {yfiles.tree.SubtreeShape} subtreeShape the shape of the whole subtree of the local root - * @param {yfiles.algorithms.Edge} parentEdge the incoming edge of the local root node that will be the connector for the given subtree shape - * @param {yfiles.layout.IEdgeLayout} parentEdgeLayout the current {@link yfiles.layout.IEdgeLayout} of the connector edge - * @param {number} direction the direction specifier as defined in the {@link yfiles.tree.INodePlacer} interface which should be used for the connector - * @see yfiles.tree.NodePlacerBase#determineChildConnectors - * @protected - */ - calculateParentConnector(graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,rootLayout:yfiles.layout.INodeLayout,subtreeShape:yfiles.tree.SubtreeShape,parentEdge:yfiles.algorithms.Edge,parentEdgeLayout:yfiles.layout.IEdgeLayout,direction:number):void; - /** - * Calculates the routing of the source side of the edge to the given child node. - *

    - * This method delegates to {@link yfiles.tree.DefaultNodePlacer#calculateSourceEdgeLayout} if the {@link yfiles.tree.DefaultNodePlacer#routingStyle routing style} is not - * {@link yfiles.tree.RoutingStyle#FORK}. It may be overridden to implement a custom routing style. - *

    - * @param {yfiles.layout.INodeLayout} rootLayout the {@link yfiles.layout.INodeLayout} of the local root node - * @param {yfiles.tree.SubtreeShape} childShape the {@link yfiles.tree.SubtreeShape} instance of the corresponding child's subtree - * @param {yfiles.algorithms.Edge} edge the edge - * @param {number} rootForkCoordinate the y-coordinate of the first bend of the edge if the placement is horizontal, the x-coordinate otherwise - * @param {number} childForkCoordinate the y-coordinate of the second (= last) bend of the edge if the placement is horizontal, the x-coordinate otherwise - * @protected - */ - calculateSlopedSourceEdgeLayout(rootLayout:yfiles.layout.INodeLayout,childShape:yfiles.tree.SubtreeShape,edge:yfiles.algorithms.Edge,childForkCoordinate:number,rootForkCoordinate:number):void; - /** - * Calculates the routing of the source side of the edge to the given child node. - *

    - * This implementation adds bends to the {@link yfiles.layout.IEdgeLayout} of the given edge according to the specified {@link yfiles.tree.DefaultNodePlacer#routingStyle routing style} - * and {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}. It also updates the target points in the {@link yfiles.tree.SubtreeShape}. - *

    - *

    - * This method is called by {@link yfiles.tree.DefaultNodePlacer#calculateSlopedSourceEdgeLayout} to route the edges. It may be - * overridden to implement a custom edge routing style. - *

    - * @param {yfiles.layout.INodeLayout} rootLayout the {@link yfiles.layout.INodeLayout} of the local root node - * @param {yfiles.tree.SubtreeShape} childShape the {@link yfiles.tree.SubtreeShape} of the child's subtree that is connected through the given edge - * @param {yfiles.algorithms.Edge} edge the edge - * @protected - */ - calculateSourceEdgeLayout(rootLayout:yfiles.layout.INodeLayout,childShape:yfiles.tree.SubtreeShape,edge:yfiles.algorithms.Edge):void; - /** - * Calculates the routing of the target side of the edge to the given child node. - *

    - * This implementation just resets the current {@link yfiles.layout.IEdgeLayout}. - *

    - *

    - * This method is called by {@link yfiles.tree.DefaultNodePlacer#placeSubtreeOfNode} after the {@link yfiles.tree.SubtreeShape shapes} of the local root's children - * are placed. It may be overridden to add some {@link yfiles.tree.SubtreeShape#addTargetPoint target points} to the edge. - *

    - * @param {yfiles.layout.INodeLayout} rootLayout the {@link yfiles.layout.INodeLayout} of the local root node - * @param {yfiles.tree.SubtreeShape} childShape the {@link yfiles.tree.SubtreeShape} of the child's subtree that is connected through the given edge - * @param {yfiles.algorithms.Edge} edge the edge - * @protected - */ - calculateTargetEdgeLayout(rootLayout:yfiles.layout.INodeLayout,childShape:yfiles.tree.SubtreeShape,edge:yfiles.algorithms.Edge):void; - /** - * Creates a {@link yfiles.collections.IComparer.} for outgoing edges which takes the initial coordinates of the edges' targets into account. - *

    - * Child nodes are sorted in a way that the layout will resemble the current arrangement of the nodes. This is especially - * useful for interactive or incremental layout calculation. - *

    - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} that considers the initial coordinates of the nodes - */ - createComparer():yfiles.collections.IComparer; - /** - * Delegates to {@link yfiles.tree.DefaultNodePlacer#createComparer}. - * @returns {yfiles.collections.IComparer.} the From Sketch {@link yfiles.collections.IComparer.} - * @see yfiles.tree.DefaultNodePlacer#createComparer - */ - createFromSketchComparer():yfiles.collections.IComparer; - /** - * Gets or sets the direction in which the child nodes are placed with respect to their parent node. - *

    - * Subtrees can be placed below, above, left or right of their roots. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if an unknown placement specifier is set - * @type {yfiles.tree.ChildPlacement} - */ - childPlacement:yfiles.tree.ChildPlacement; - /** - * Gets or sets how the root node is aligned with its children and their {@link yfiles.tree.SubtreeShape}s. - * @throws {Stubs.Exceptions.ArgumentError} if an unknown root alignment specifier is set - * @type {yfiles.tree.RootAlignment} - */ - rootAlignment:yfiles.tree.RootAlignment; - /** - * Gets or sets the relative vertical alignment of nodes with the same parent. - *

    - * All values between 0 and 1 result in a valid alignment. - *

    - *
      - *
    • 0 - nodes are top-aligned
    • - *
    • 0.5 - nodes are center-aligned
    • - *
    • 1 - nodes are bottom-aligned
    • - *
    - *

    - * Values outside the interval [0,1] will result in a more compact node placement with unaligned nodes. - *

    - * @type {number} - */ - verticalAlignment:number; - /** - * Gets or sets the style in which edge paths are routed. - * @throws {Stubs.Exceptions.ArgumentError} if the specified routing style is unknown - * @type {yfiles.tree.RoutingStyle} - */ - routingStyle:yfiles.tree.RoutingStyle; - /** - * Gets or sets the vertical distance between nodes or {@link yfiles.tree.SubtreeShape}s. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - verticalDistance:number; - /** - * Gets or sets the minimum length for the first segment of an edge. - *

    - * During layout calculation, the edges of the tree are directed. Hence, the first segment is always the segment that is - * attached to the source, which is the local root node. - *

    - *

    - * The length needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the minimum segment length is negative - * @type {number} - */ - minimumFirstSegmentLength:number; - /** - * Gets or sets the minimum length for the last segment of an edge. - *

    - * During layout calculation, the edges of the tree are directed. Hence, the last segment is always the segment that is - * attached to the target, which is a child node. - *

    - *

    - * The length needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the minimum segment length is negative - * @type {number} - */ - minimumLastSegmentLength:number; - /** - * Gets or sets the minimum slope of the edge segments. - *

    - * These sloped segments are between the vertical first and last segment of the edge. - *

    - *

    - * The segments may become steeper but they will have at least the specified slope. Negative minimum slopes can lead to - * edge routes looking like spider legs. - *

    - * @see yfiles.tree.DefaultNodePlacer#minimumSlopeHeight - * @type {number} - */ - minimumSlope:number; - /** - * Gets or sets the minimum height for sloped edge segments. - *

    - * These sloped segments are between the vertical first and last segment of the edge. - *

    - *

    - * The segments may become steeper to reach the specified height. - *

    - * @see yfiles.tree.DefaultNodePlacer#minimumSlope - * @type {number} - */ - minimumSlopeHeight:number; - /** - * Gets or sets the horizontal distance between nodes or {@link yfiles.tree.SubtreeShape}s. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - horizontalDistance:number; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.DefaultPortAssignment} provides some simple {@link yfiles.tree.DefaultPortAssignment#mode port assignment styles}. - *

    - * Ports are either {@link yfiles.tree.PortAssignmentMode#NONE centered} on the node, distributed at one side of the node or placed considering - * {@link yfiles.layout.PortConstraint}s. - *

    - * @class yfiles.tree.DefaultPortAssignment - * @implements {yfiles.tree.IPortAssignment} - */ - export interface DefaultPortAssignment extends Object,yfiles.tree.IPortAssignment{} - export class DefaultPortAssignment { - /** - * Creates a new {@link yfiles.tree.DefaultPortAssignment} instance using the given port assignment mode and ratio between the - * border and the ports and the gap between the ports themselves. - * @param {yfiles.tree.PortAssignmentMode} mode one of the predefined port assignment specifiers - * @param {number} [ratio=0.5] the ratio of the distance between outer ports and the border to the distance between any two ports - * @throws {Stubs.Exceptions.ArgumentError} if an unknown mode is specified or if the specified ratio is negative - * @constructor - */ - constructor(mode:yfiles.tree.PortAssignmentMode,ratio?:number); - /** - * Creates a new {@link yfiles.tree.DefaultPortAssignment} instance with default settings. - * @constructor - */ - constructor(); - /** - * Assigns relative coordinates to the source port of the outgoing edge to a child of the given node. - *

    - * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignPorts} for each outgoing edge of the given node. It may - * be overridden to assign a custom location to the source port of outgoing edges. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.algorithms.Edge} edge the edge to the child node - * @param {number} index the zero-based index of the child edge - * @see yfiles.layout.IEdgeLayout#sourcePoint - * @protected - */ - assignChildEdgeSourcePort(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge,index:number):void; - /** - * Assigns relative coordinates to the target port of the incoming edge from the parent of the given node. - *

    - * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignPorts} if the given node has a parent node. It may be - * overridden to assign a custom location to the target port of the incoming edge. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} node the node - * @param {yfiles.algorithms.Edge} edge the edge from the parent node - * @see yfiles.layout.IEdgeLayout#targetPoint - * @protected - */ - assignParentEdgeTargetPort(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge):void; - /** - * Places the ports of edges connecting to the given node according to the {@link yfiles.tree.DefaultPortAssignment#mode port assignment mode}. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} node the node whose adjacent edges' ports should be placed - * @see yfiles.tree.DefaultPortAssignment#mode - */ - assignPorts(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):void; - /** - * Determines the distance between the outer ports and the border of the node. - *

    - * This implementation calculates the gap according to the number of edges at one side of the node. It also includes the - * {@link yfiles.tree.DefaultPortAssignment#borderGapToPortGapRatio ratio between border gap and port gap}. - *

    - *

    - * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort} to calculate the location of the - * first port. It may be overridden to implement a different distribution of ports on the node's side. - *

    - * @param {number} sideLength the width/height of the side - * @param {number} edgeCount the number of edges that connect to this side - * @returns {number} the absolute gap to be used on both sides of the ports - * @see yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort - * @see yfiles.tree.DefaultPortAssignment#borderGapToPortGapRatio - * @protected - */ - getPortBorderGap(sideLength:number,edgeCount:number):number; - /** - * Determines the distance between two adjacent ports. - *

    - * This implementation calculates the gap according to the number of edges at one side of the node. The edges are - * distributed keeping the given gap to the border of the node. - *

    - *

    - * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort} to calculate the distance between - * two ports. It may be overridden to implement a different distribution of ports on the node's side. - *

    - * @param {number} sideLength the width/height of the side - * @param {number} edgeCount the number of edges/ports that connect to this side - * @param {number} portBorderGap the port border gap (i.e. calculated by {@link yfiles.tree.DefaultPortAssignment#getPortBorderGap}) - * @returns {number} the absolute distance to be used between two adjacent ports - * @see yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort - * @see yfiles.tree.DefaultPortAssignment#getPortBorderGap - * @protected - */ - getPortDistanceDelta(sideLength:number,edgeCount:number,portBorderGap:number):number; - /** - * Retrieves the source {@link yfiles.layout.PortConstraint} for the given edge. - *

    - * This implementation accesses the {@link yfiles.algorithms.IDataProvider} registered with - * {@link yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY}. - *

    - *

    - * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort} in - * {@link yfiles.tree.PortAssignmentMode#PORT_CONSTRAINT}. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the edge - * @param {number} index the index of the child that is the target of the given edge - * @returns {yfiles.layout.PortConstraint} the source {@link yfiles.layout.PortConstraint} or null if no source {@link yfiles.layout.PortConstraint} is specified - * @see yfiles.layout.PortConstraint - * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY - * @see yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort - * @protected - */ - getSourcePortConstraint(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge,index:number):yfiles.layout.PortConstraint; - /** - * Retrieves the target {@link yfiles.layout.PortConstraint} for the given edge. - *

    - * This implementation accesses the {@link yfiles.algorithms.IDataProvider} registered with - * {@link yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY}. - *

    - *

    - * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignParentEdgeTargetPort} in - * {@link yfiles.tree.PortAssignmentMode#PORT_CONSTRAINT}. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the edge - * @returns {yfiles.layout.PortConstraint} the target {@link yfiles.layout.PortConstraint} or null if no target {@link yfiles.layout.PortConstraint} is specified - * @see yfiles.layout.PortConstraint - * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY - * @see yfiles.tree.DefaultPortAssignment#assignParentEdgeTargetPort - * @protected - */ - getTargetPortConstraint(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):yfiles.layout.PortConstraint; - /** - * Gets or sets the mode that describes how ports are placed. - * @throws {Stubs.Exceptions.ArgumentError} if an unknown mode is specified - * @type {yfiles.tree.PortAssignmentMode} - */ - mode:yfiles.tree.PortAssignmentMode; - /** - * Gets or sets the ratio of the border gap (distance between the outer ports to the node border) to the port gap (distance between adjacent - * ports). - *

    - * The ratio must have a positive value. When the ratio is 0 the ports will be distributed along the whole side of the node - * without a gap between the last port and the corner. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified ratio is negative - * @type {number} - */ - borderGapToPortGapRatio:number; - /** - * Gets or sets whether or not the port assignment should reverse the order of the ports. - *

    - * The normal order is from left to right and from top to bottom. It will be reversed if this option is enabled. - *

    - * @type {boolean} - */ - reversedPortOrder:boolean; - static $class:yfiles.lang.Class; - } - /** - * {@link yfiles.tree.DelegatingNodePlacer} delegates the arrangement of the children to two different {@link yfiles.tree.INodePlacer}s. - *

    - * Layout Style This {@link yfiles.tree.INodePlacer} can, for example, be used for creating mind maps or a playing schedule of a sports - * competition. {@graph {"ann":{"s":[130,30],"d":1},"n":[[662,400,[[669.97,424.35,114.05,18.7]]],[662,175,[[669.97,199.35,114.05,18.7]]],[662,625,[[685.65,649.35,82.7,18.7]]],[812,175,[[829.98,199.35,94.04,18.7]]],[982,275,[[999.98,299.35,94.04,18.7]]],[812,625,[[835.65,649.35,82.7,18.7]]],[512,175,[[519.97,199.35,114.05,18.7]]],[982,725,[[1010.64,749.35,72.71,18.7]]],[1152,775,[[1180.64,799.35,72.71,18.7]]],[1322,800,[[1341.97,824.35,90.05,18.7]]],[982,75,[[1004.32,99.35,85.37,18.7]]],[1152,675,[[1163.65,699.35,106.71,18.7]]],[1152,325,[[1177.32,349.35,79.36,18.7]]],[982,525,[[1005.65,549.35,82.7,18.7]]],[1152,125,[[1190.32,149.35,53.37,18.7]]],[1152,575,[[1175.65,599.35,82.7,18.7]]],[1322,350,[[1347.32,374.35,79.36,18.7]]],[1322,150,[[1343.65,174.35,86.7,18.7]]],[1322,300,[[1347.32,324.35,79.36,18.7]]],[1152,225,[[1169.98,249.35,94.04,18.7]]],[1152,25,[[1174.32,49.35,85.37,18.7]]],[342,75,[[372.66,99.35,68.69,18.7]]],[1152,475,[[1165.65,499.35,102.7,18.7]]],[1322,500,[[1326,524.35,122.06,18.7]]],[1322,250,[[1339.98,274.35,94.04,18.7]]],[1322,600,[[1330.31,624.35,113.38,18.7]]],[172,25,[[188.64,49.35,96.72,18.7]]],[342,275,[[349.97,299.35,114.05,18.7]]],[2,0,[[26.32,24.35,81.36,18.7]]],[1322,550,[[1345.65,574.35,82.7,18.7]]],[172,125,[[202.66,149.35,68.69,18.7]]],[1322,200,[[1344.32,224.35,85.36,18.7]]],[2,100,[[32.32,124.35,69.37,18.7]]],[1322,450,[[1335.65,474.35,102.7,18.7]]],[1322,750,[[1350.64,774.35,72.71,18.7]]],[512,625,[[532.65,649.35,88.69,18.7]]],[172,225,[[179.97,249.35,114.05,18.7]]],[1322,700,[[1329.63,724.35,114.74,18.7]]],[172,325,[[200.98,349.35,72.03,18.7]]],[1322,50,[[1344.32,74.35,85.37,18.7]]],[2,300,[[4.98,324.35,124.05,18.7]]],[2,50,[[18.64,74.35,96.72,18.7]]],[2,150,[[32.66,174.35,68.69,18.7]]],[1322,650,[[1333.65,674.35,106.71,18.7]]],[1322,0,[[1356.66,24.35,60.69,18.7]]],[1322,100,[[1360.32,124.35,53.37,18.7]]],[342,525,[[347.31,549.35,119.39,18.7]]],[172,475,[[171.97,499.35,130.06,18.7]]],[2,350,[[30.98,374.35,72.03,18.7]]],[2,450,[[1.97,474.35,130.06,18.7]]],[342,725,[[362.65,749.35,88.69,18.7]]],[2,200,[[25.31,224.35,83.37,18.7]]],[172,575,[[177.31,599.35,119.39,18.7]]],[172,675,[[197.32,699.35,79.35,18.7]]],[2,500,[[15.98,524.35,102.04,18.7]]],[2,550,[[14.63,574.35,104.73,18.7]]],[2,600,[[7.31,624.35,119.39,18.7]]],[2,250,[[9.97,274.35,114.05,18.7]]],[172,775,[[192.65,799.35,88.69,18.7]]],[2,750,[[22.65,774.35,88.69,18.7]]],[2,800,[[16.64,824.35,100.72,18.7]]],[2,650,[[11.97,674.35,110.07,18.7]]],[2,700,[[27.32,724.35,79.35,18.7]]]],"e":[[0,1],[0,2],[1,3],[3,4,[954,190,954,290]],[2,5],[1,6],[5,7,[954,640,954,740]],[7,8,[1124,740,1124,790]],[8,9,[1294,790,1294,815]],[3,10,[954,190,954,90]],[7,11,[1124,740,1124,690]],[4,12,[1124,290,1124,340]],[5,13,[954,640,954,540]],[10,14,[1124,90,1124,140]],[13,15,[1124,540,1124,590]],[12,16,[1294,340,1294,365]],[14,17,[1294,140,1294,165]],[12,18,[1294,340,1294,315]],[4,19,[1124,290,1124,240]],[10,20,[1124,90,1124,40]],[6,21,[500,190,500,90]],[13,22,[1124,540,1124,490]],[22,23,[1294,490,1294,515]],[19,24,[1294,240,1294,265]],[15,25,[1294,590,1294,615]],[21,26,[330,90,330,40]],[6,27,[500,190,500,290]],[26,28,[160,40,160,15]],[15,29,[1294,590,1294,565]],[21,30,[330,90,330,140]],[19,31,[1294,240,1294,215]],[30,32,[160,140,160,115]],[22,33,[1294,490,1294,465]],[8,34,[1294,790,1294,765]],[2,35],[27,36,[330,290,330,240]],[11,37,[1294,690,1294,715]],[27,38,[330,290,330,340]],[20,39,[1294,40,1294,65]],[38,40,[160,340,160,315]],[26,41,[160,40,160,65]],[30,42,[160,140,160,165]],[11,43,[1294,690,1294,665]],[20,44,[1294,40,1294,15]],[14,45,[1294,140,1294,115]],[35,46,[500,640,500,540]],[46,47,[330,540,330,490]],[38,48,[160,340,160,365]],[47,49,[160,490,160,465]],[35,50,[500,640,500,740]],[36,51,[160,240,160,215]],[46,52,[330,540,330,590]],[50,53,[330,740,330,690]],[47,54,[160,490,160,515]],[52,55,[160,590,160,565]],[52,56,[160,590,160,615]],[36,57,[160,240,160,265]],[50,58,[330,740,330,790]],[58,59,[160,790,160,765]],[58,60,[160,790,160,815]],[53,61,[160,690,160,665]],[53,62,[160,690,160,715]]],"vp":[1.0,0.0,1451.0,830.0]}} - *

    - *

    - * There are two subtrees that are placed above and below the root; Both subtrees consist of two subtrees that are placed - * left and right of their local root - *

    - * @class yfiles.tree.DelegatingNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface DelegatingNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class DelegatingNodePlacer { - /** - * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with default settings using the given modification matrix and the - * given node placers as delegates. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix - * @param {yfiles.tree.INodePlacer} placerUpperLeft the first delegate {@link yfiles.tree.INodePlacer} which places the left subtrees - * @param {yfiles.tree.INodePlacer} placerLowerRight the second delegate {@link yfiles.tree.INodePlacer} which places the right subtrees - * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,placerUpperLeft:yfiles.tree.INodePlacer,placerLowerRight:yfiles.tree.INodePlacer); - /** - * Returns all upper-left children of the local root node. - *

    - * Which children belong to this list is determined using the {@link yfiles.algorithms.IDataProvider} registered with - * {@link yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY}. If no such {@link yfiles.algorithms.IDataProvider} is registered, the - * first half of the children is returned. - *

    - *

    - * These children are placed using the {@link yfiles.tree.INodePlacer} returned by {@link yfiles.tree.DelegatingNodePlacer#primaryPlacer}. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.algorithms.NodeList} the list of upper-left child {@link yfiles.algorithms.Node}s - * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY - */ - primaryChildren(localRoot:yfiles.algorithms.Node,graph:yfiles.layout.LayoutGraph):yfiles.algorithms.NodeList; - /** - * Returns all lower-right children of the local root node. - *

    - * Which children belong to this list is determined using the {@link yfiles.algorithms.IDataProvider} registered with - * {@link yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY}. If no such {@link yfiles.algorithms.IDataProvider} is registered, the - * second half of the children is returned. - *

    - *

    - * These children are placed using the {@link yfiles.tree.INodePlacer} returned by {@link yfiles.tree.DelegatingNodePlacer#secondaryPlacer}. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.algorithms.NodeList} the list of lower-right child {@link yfiles.algorithms.Node}s - * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY - */ - secondaryChildren(localRoot:yfiles.algorithms.Node,graph:yfiles.layout.LayoutGraph):yfiles.algorithms.NodeList; - /** - * Data provider key for dividing the children into two sets - *

    - * If there is no {@link yfiles.algorithms.IDataProvider} registered with this key, half of the nodes are placed left of the root - * and the remaining nodes are placed right of the root. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static PRIMARY_NODES_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Gets the {@link yfiles.tree.INodePlacer} instance that will arrange the lower-right part of the graph. - * @see yfiles.tree.DelegatingNodePlacer#primaryPlacer - * @see yfiles.tree.DelegatingNodePlacer#secondaryChildren - * @type {yfiles.tree.INodePlacer} - */ - secondaryPlacer:yfiles.tree.INodePlacer; - /** - * Gets the {@link yfiles.tree.INodePlacer} instance that will arrange the upper-left part of the graph. - * @see yfiles.tree.DelegatingNodePlacer#secondaryPlacer - * @see yfiles.tree.DelegatingNodePlacer#primaryChildren - * @type {yfiles.tree.INodePlacer} - */ - primaryPlacer:yfiles.tree.INodePlacer; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.DendrogramNodePlacer} arranges subtrees as dendrograms. - *

    - * Layout Style This {@link yfiles.tree.INodePlacer} arranges nodes from top to bottom. It arranges subtrees in such a way that all subtrees of - * a single local root are aligned with their bottom border. {@graph {"ann":{"s":[30,30],"d":1},"n":[[212.5,0],[400,70],[450,140],[300,210],[400,210],[450,210],[150,140],[25,70],[200,280],[150,280],[50,210],[450,280],[350,280],[25,140],[100,210],[400,280],[0,280],[300,280],[50,280],[100,280],[250,280]],"e":[[0,1,[227.5,50,415,50]],[1,2,[415,120,465,120]],[0,3,[227.5,50,315,50]],[1,4],[2,5],[0,6,[227.5,50,165,50]],[0,7,[227.5,50,40,50]],[6,8,[165,190,215,190]],[6,9],[5,11],[1,12,[415,120,365,120]],[7,13],[13,10,[40,190,65,190]],[6,14,[165,190,115,190]],[4,15],[13,16,[40,190,15,190]],[3,17],[10,18],[14,19],[0,20,[227.5,50,265,50]]],"vp":[0.0,0.0,480.0,310.0]}} - *

    - *

    - * Note: This implementation does not support {@link yfiles.layout.PortConstraint}s. - *

    - * @class yfiles.tree.DendrogramNodePlacer - * @implements {yfiles.tree.IFromSketchNodePlacer} - */ - export interface DendrogramNodePlacer extends Object,yfiles.tree.IFromSketchNodePlacer{} - export class DendrogramNodePlacer { - /** - * Creates a new {@link yfiles.tree.DendrogramNodePlacer} instance with default settings. - * @constructor - */ - constructor(); - /** - * Creates a {@link yfiles.collections.IComparer.} that sorts outgoing edges according to the x-coordinate of their target nodes. - *

    - * This {@link yfiles.collections.IComparer.} can be used for achieving a From Sketch layout. - *

    - * @returns {yfiles.collections.IComparer.} the {@link yfiles.collections.IComparer.} - * @see yfiles.tree.DendrogramNodePlacer#createFromSketchComparer - */ - createComparer():yfiles.collections.IComparer; - /** - * Creates a {@link yfiles.collections.IComparer.} for the edges which takes the initial x-coordinates of the nodes into account. - *

    - * This implementation delegates to {@link yfiles.tree.DendrogramNodePlacer#createComparer}. - *

    - * @returns {yfiles.collections.IComparer.} the {@link yfiles.collections.IComparer.} for the edges - * @see yfiles.tree.DendrogramNodePlacer#createComparer - */ - createFromSketchComparer():yfiles.collections.IComparer; - /** - * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. - *

    - * This implementation returns null. Hence, no pre- or post-processing is done. - *

    - * @param {yfiles.tree.TreeLayout} layouter the current {@link yfiles.tree.TreeLayout} instance - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} currentRoot the root node handled by this {@link yfiles.tree.INodePlacer} - * @returns {yfiles.tree.IProcessor} null - */ - createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; - /** - * Provides {@link yfiles.tree.ParentConnectorDirection#NORTH} for all children. - *

    - * Edges will always connect to the top of the child nodes. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.algorithms.IDataMap} connectorMap the map that is used for storing the direction specifiers of the child nodes - */ - determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; - /** - * Arranges the {@link yfiles.tree.SubtreeShape SubtreeShapes} of the local root and its children as a dendrogram. - * @param {yfiles.algorithms.IDataProvider} nodeShapeProvider the {@link yfiles.algorithms.IDataProvider} for obtaining an initial shape of the root node - * @param {yfiles.algorithms.IDataProvider} subtreeShapeProvider the {@link yfiles.algorithms.IDataProvider} for accessing the pre-calculated shapes of the subtrees - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} localRoot the root of the subtree that should be arranged by this method - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction specifier for the connector of the local root node to its parent node - * @returns {yfiles.tree.SubtreeShape} the combined shape of the whole subtree rooted at the given local root node - */ - placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; - /** - * Gets or sets the minimum distance between the {@link yfiles.tree.SubtreeShape} of a root node and the bus connecting to all of - * its children. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - minimumRootDistance:number; - /** - * Gets or sets the minimum horizontal distance between adjacent {@link yfiles.tree.SubtreeShape SubtreeShapes}. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - minimumSubtreeDistance:number; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.DoubleLineNodePlacer} arranges the children of a local root alternating in two lines. - *

    - * Layout Style This {@link yfiles.tree.INodePlacer} arranges nodes from top to bottom. It places the subtrees in two horizontal lines below - * the root. They are distributed in an alternating fashion, i.e., adjacent subtrees are in different lines. - *

    - *

    - * This node placer is especially useful for leaves with a large width. - *

    - *

    - * {@graph {"ann":{"s":[141.67,30],"d":1},"n":[[298.33,0,60,30],[0,60],[85.83,99.9],[171.67,60],[257.5,99.9],[343.33,60],[429.17,99.9],[515,60]],"e":[[0,1,[70.83,15]],[0,2,[156.67,15]],[0,3,[242.5,15]],[0,4],[0,5,[414.17,15]],[0,6,[500,15]],[0,7,[585.83,15]]],"vp":[0.0,0.0,657.0,130.0]}} - *

    - * @class yfiles.tree.DoubleLineNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface DoubleLineNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class DoubleLineNodePlacer { - /** - * Creates a new {@link yfiles.tree.DoubleLineNodePlacer} instance whose direction is specified by the given modification matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for this {@link yfiles.tree.RotatableNodePlacerBase} - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); - /** - * Creates a new {@link yfiles.tree.DoubleLineNodePlacer} instance with the default settings. - * @constructor - */ - constructor(); - /** - * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlginment} that defines how the root node is aligned with its children and their shapes. - * @type {yfiles.tree.RootNodeAlignment} - */ - rootAlignment:yfiles.tree.RootNodeAlignment; - /** - * Gets or sets the ratio of the {@link yfiles.tree.RotatableNodePlacerBase#spacing spacing} between the root and the children in the upper line and the spacing between the - * two lines of subtrees. - * @type {number} - */ - doubleLineSpacingRatio:number; - static $class:yfiles.lang.Class; - } - /** - * A {@link yfiles.tree.FreeNodePlacer} is a simple pseudo-placer. - *

    - * The children of local root nodes are not moved. The {@link yfiles.tree.INodePlacer} just merges their rotated shapes and routes - * the edges. - *

    - *

    - * This {@link yfiles.tree.INodePlacer} may be useful if a local root node does not have any children or you want to place them - * manually. - *

    - * @class yfiles.tree.FreeNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface FreeNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class FreeNodePlacer { - /** - * Creates a new instance of {@link yfiles.tree.FreeNodePlacer} with default settings. - * @constructor - */ - constructor(); - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.GridNodePlacer} arranges the shapes of the children of a local root in a grid. - *

    - * Layout Style The grid consists of a number of rows. The subtrees are assigned to the rows using a {@link yfiles.algorithms.IDataProvider} - * that is registered with the graph with {@link yfiles.tree.GridNodePlacer#ROW_INDEX_DP_KEY}. {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[50,140],[50,210],[50,70],[100,140],[100,210],[100,70],[150,140],[150,210],[150,70],[200,140],[200,210],[200,70]],"e":[[0,1,[40,15,40,120,65,120]],[0,2,[40,15,40,190,65,190]],[0,3,[40,15,40,50,65,50]],[0,4,[40,15,40,120,115,120]],[0,5,[40,15,40,190,115,190]],[0,6,[40,15,40,50,115,50]],[0,7,[40,15,40,120,165,120]],[0,8,[40,15,40,190,165,190]],[0,9,[40,15,40,50,165,50]],[0,10,[40,15,40,120,215,120]],[0,11,[40,15,40,190,215,190]],[0,12,[40,15,40,50,215,50]]],"vp":[0.0,0.0,230.0,240.0]}} - *

    - *

    - * Child nodes placed in a grid using three rows and four columns - *

    - * @class yfiles.tree.GridNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface GridNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class GridNodePlacer { - /** - * Creates a new {@link yfiles.tree.GridNodePlacer} instance with the given {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix} and {@link yfiles.tree.GridNodePlacer#rootAlignment root alignment}. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for this {@link yfiles.tree.RotatableNodePlacerBase} - * @param {yfiles.tree.RootNodeAlignment} rootAlignment the alignment of the local root with its subtrees - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,rootAlignment:yfiles.tree.RootNodeAlignment); - /** - * Creates a new {@link yfiles.tree.GridNodePlacer} instance whose direction is specified by the given modification matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for this {@link yfiles.tree.RotatableNodePlacerBase} - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); - /** - * Creates a new {@link yfiles.tree.GridNodePlacer} with default settings. - * @constructor - */ - constructor(); - /** - * Data provider key for assigning nodes to the rows in the grid - *

    - * If no {@link yfiles.algorithms.IDataProvider} is registered with this key, all nodes will be placed in the same row. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static ROW_INDEX_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlginment} that defines how the root node is aligned with its children and their shapes. - * @type {yfiles.tree.RootNodeAlignment} - */ - rootAlignment:yfiles.tree.RootNodeAlignment; - static $class:yfiles.lang.Class; - } - /** - * This {@link yfiles.tree.INodePlacer} places the children of a local root in groups. - *

    - * The groups are determined by the grouping of the edges that connect the children to its root. The placement of the - * groups is specified by a {@link yfiles.tree.INodePlacer} which will consider grouped children as one child. The children within - * a group are placed by another {@link yfiles.tree.INodePlacer}. - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":1},"n":[[70.15,0,91.19,30],[0,91],[111,91],[201.5,91],[0,141],[111,141],[201.5,141]],"e":[[0,1,-30,15,0,0,[85.75,50,50,50,50,106]],[0,2,0,15,0,0,[115.75,50,91,50,91,106]],[0,3,30,15,0,0,[145.75,50,181.5,50,181.5,106]],[0,4,-30,15,0,0,[85.75,50,50,50,50,156]],[0,5,0,15,0,0,[115.75,50,91,50,91,156]],[0,6,30,15,0,0,[145.75,50,181.5,50,181.5,156]]],"vp":[0.0,0.0,232.0,171.0]}} There are three edge groups whose target nodes are placed above each other - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - * @class yfiles.tree.GroupedNodePlacer - * @implements {yfiles.tree.INodePlacer} - */ - export interface GroupedNodePlacer extends Object,yfiles.tree.INodePlacer{} - export class GroupedNodePlacer { - /** - * Creates a new {@link yfiles.tree.GroupedNodePlacer} instance. - * @param {yfiles.tree.INodePlacer} groupPlacer the {@link yfiles.tree.INodePlacer} which places the child groups - * @param {yfiles.tree.INodePlacer} childPlacer the {@link yfiles.tree.INodePlacer} which places the children within their group - * @constructor - */ - constructor(groupPlacer:yfiles.tree.INodePlacer,childPlacer:yfiles.tree.INodePlacer); - /** - * Creates a {@link yfiles.tree.IProcessor} that prepares the graph for edge grouping. - *

    - * In a pre-processing step, the {@link yfiles.tree.IProcessor} inserts a dummy node for each edge group and connects it to the - * local root and the edges of the according group. The child node placer is assigned to those dummy nodes and will arrange - * them during the layout calculation. - *

    - *

    - * The changes to the graph are restored in a post-processing step. - *

    - * @param {yfiles.tree.TreeLayout} layouter the current {@link yfiles.tree.TreeLayout} instance - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} currentRoot the root node handled by this {@link yfiles.tree.INodePlacer} - * @returns {yfiles.tree.IProcessor} the {@link yfiles.tree.IProcessor} responsible for preparing the graph - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - */ - createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; - /** - * Delegates to the {@link yfiles.tree.INodePlacer} responsible for arranging the nodes in one group. - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.algorithms.IDataMap} connectorMap the map used for storing the direction specifiers of the child nodes - */ - determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; - /** - * Places the groups of {@link yfiles.tree.SubtreeShape}s according to their group IDs. - * @param {yfiles.algorithms.IDataProvider} nodeShapeProvider the {@link yfiles.algorithms.IDataProvider} for obtaining an initial shape of the root node - * @param {yfiles.algorithms.IDataProvider} subtreeShapeProvider the {@link yfiles.algorithms.IDataProvider} for accessing the pre-calculated shapes of the subtrees - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} localRoot the root of the subtree that should be arranged by this method - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction specifier for the connector of the local root node to its parent node - * @returns {yfiles.tree.SubtreeShape} the merged {@link yfiles.tree.SubtreeShape}s of the local root and its children - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - */ - placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; - static $class:yfiles.lang.Class; - } - /** - * A {@link yfiles.tree.IFromSketchNodePlacer} arranges the subtrees while taking the initial locations of the nodes into account. - *

    - * It provides a {@link yfiles.collections.IComparer.} which sorts the outgoing edges of a node according to the initial coordinates of their target nodes. - * Keeping the original order of nodes, this {@link yfiles.collections.IComparer.} allows to incrementally add new nodes to the graph. - *

    - * @interface - * @implements {yfiles.tree.INodePlacer} - */ - export interface IFromSketchNodePlacer extends Object,yfiles.tree.INodePlacer{ - /** - * Creates an {@link yfiles.collections.IComparer. edge comparator} which takes the initial coordinates of the nodes into account. - *

    - * This {@link yfiles.collections.IComparer.} defines the order of the outgoing edges of a node before the actual placement of the node's subtree is - * calculated. - *

    - * @returns {yfiles.collections.IComparer.} the {@link yfiles.collections.IComparer.} for the edges - * @abstract - */ - createFromSketchComparer():yfiles.collections.IComparer; - } - var IFromSketchNodePlacer:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A {@link yfiles.tree.INodePlacer} is responsible for the arrangement of a local root node and all of its subtrees. - *

    - * Subtrees are represented as {@link yfiles.tree.SubtreeShape SubtreeShape}s with a connecting edge to the root of the subtree. - *

    - *

    - * Implementations of this interface have to: - *

    - *
      - *
    • - * arrange the {@link yfiles.tree.SubtreeShape SubtreeShapes} and the root node (only the relative position matters, shapes can be placed at any absolute - * location, {@link yfiles.tree.TreeLayout} will perform the final alignment). - *
    • - *
    • - * perform the edge routing from the root node to all child nodes with respect to the connector provided by the - * {@link yfiles.tree.SubtreeShape SubtreeShapes} - *
    • - *
    • calculate the union of the {@link yfiles.tree.SubtreeShape SubtreeShapes} and the shape of the root node as well as any added edges
    • - *
    • initialize the connector of the root node with respect to the preferred connection direction
    • - *
    • return the {@link yfiles.tree.SubtreeShape SubtreeShape} for the subtree including the local root
    • - *
    - * @interface - */ - export interface INodePlacer extends Object{ - /** - * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. - *

    - * This method is called by {@link yfiles.tree.TreeLayout} before arranging the {@link yfiles.tree.SubtreeShape SubtreeShapes}. If no pre- or post-processing is - * needed, this method may return null. - *

    - * @param {yfiles.tree.TreeLayout} layouter the current {@link yfiles.tree.TreeLayout} instance - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} currentRoot the root node handled by this {@link yfiles.tree.INodePlacer} - * @returns {yfiles.tree.IProcessor} a {@link yfiles.tree.IProcessor} instance or null - * @abstract - */ - createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; - /** - * Provides the direction of the connector to the {@link yfiles.tree.SubtreeShape SubtreeShape} for each child node. - *

    - * This method is called by {@link yfiles.tree.TreeLayout} before the {@link yfiles.tree.SubtreeShape SubtreeShapes} for the children of the local root node are - * calculated. The direction specifiers are stored in the given map for all child nodes of the local root. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.algorithms.IDataMap} connectorMap the map that must be used for storing the direction specifiers of the child nodes - * @abstract - */ - determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; - /** - * Arranges the {@link yfiles.tree.SubtreeShape SubtreeShapes} of the local root and its children and routes the edges that connect them. - *

    - * This method is the main method of the tree layout algorithm. It is called by {@link yfiles.tree.TreeLayout} in each recursion - * step to place the local root in relation to its children. Their shapes will be merged into one - * {@link yfiles.tree.SubtreeShape SubtreeShape}, which is returned by this method. - *

    - *

    - * The {@link yfiles.tree.SubtreeShape SubtreeShape} for the local root can be obtained from the nodeShapeProvider. subtreeShapeProvider contains the {@link yfiles.tree.SubtreeShape SubtreeShapes} - * assigned to the child nodes. - *

    - *

    - * Due to the order in which the tree nodes are processed, it is guaranteed that at the time of the invocation of this - * method the {@link yfiles.tree.SubtreeShape SubtreeShape} of every descendant node has already been calculated. - *

    - * @param {yfiles.algorithms.IDataProvider} nodeShapeProvider the {@link yfiles.algorithms.IDataProvider} for obtaining an initial shape of the root node - * @param {yfiles.algorithms.IDataProvider} subtreeShapeProvider the {@link yfiles.algorithms.IDataProvider} for accessing the pre-calculated shapes of the subtrees - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} localRoot the root of the subtree that should be arranged by this method - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction specifier for the connector of the local root node to its parent node - * @returns {yfiles.tree.SubtreeShape} the combined shape of the whole subtree - * @abstract - */ - placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; - } - var INodePlacer:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A {@link yfiles.tree.IPortAssignment} places the ports of edges connecting to the same node. - *

    - * Classes implementing this interface are responsible for the assignment of the edges' ports. {@link yfiles.tree.INodePlacer} - * instances need to obey the currently set ports. - *

    - * @interface - */ - export interface IPortAssignment extends Object{ - /** - * Places the ports of edges connecting to the given node. - *

    - * This method is called by {@link yfiles.tree.TreeLayout} before the actual layout calculation takes place. It assigns both the - * single incoming edge's target port as well as all source ports of all outgoing child edges. - *

    - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Node} node the node whose adjacent edges' ports should be set - * @abstract - */ - assignPorts(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):void; - } - var IPortAssignment:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A {@link yfiles.tree.IProcessor} provides the possibility for each {@link yfiles.tree.INodePlacer} to prepare (and clean up) the graph - * for the children of the local root. - *

    - * It is created by {@link yfiles.tree.INodePlacer#createProcessor} and called by the {@link yfiles.tree.TreeLayout} before and after the - * actual arrangement of the nodes. - *

    - *

    - * A {@link yfiles.tree.IProcessor} may change values within the - * {@link yfiles.algorithms.IDataMap}s for its children. It can also temporarily change the graph by hiding nodes or adding dummy - * nodes. - *

    - * @interface - */ - export interface IProcessor extends Object{ - /** - * This method is called by the {@link yfiles.tree.TreeLayout} after the layout has finished. - *

    - * It can be used for cleanup tasks. - *

    - *

    - * Changes on the graph structure that have been made in {@link yfiles.tree.IProcessor#preProcess} can be undone here. - *

    - * @abstract - */ - postProcess():void; - /** - * Performs preparations for the actual tree layout in a pre-processing step. - *

    - * This method is called by {@link yfiles.tree.TreeLayout} before the {@link yfiles.tree.INodePlacer}s are called recursively. A {@link yfiles.tree.IProcessor} - * may change some settings within this method. This can be used for specifying values for the children of the local root, - * manipulate the graph structure or do anything else that needs to be done. - *

    - * @param {yfiles.algorithms.IDataMap} nodePlacerDataProvider the map that stores a {@link yfiles.tree.INodePlacer} instance for each node - * @param {yfiles.algorithms.IDataMap} portAssignmentDataProvider The map that stores a {@link yfiles.tree.IPortAssignment} instance for each node - * @param {yfiles.algorithms.IDataMap} childComparatorProvider the map that stores a {@link yfiles.collections.IComparer.} instance for each node - * @abstract - */ - preProcess(nodePlacerDataProvider:yfiles.algorithms.IDataMap,portAssignmentDataProvider:yfiles.algorithms.IDataMap,childComparatorProvider:yfiles.algorithms.IDataMap):void; - } - var IProcessor:{ - $class:yfiles.lang.Class; - isInstance(o:Object):boolean; - }; - /** - * A {@link yfiles.tree.LayeredNodePlacer} arranges the nodes of a subtree respecting layers. - *

    - * Layout Style Nodes that have the same depth in the tree will be placed in the same horizontal layer. They will be vertically - * {@link yfiles.tree.LayeredNodePlacer#verticalAlignment aligned}. {@graph {"ann":{"s":[30,30],"d":1},"n":[[245.52,0],[69.46,77.5],[7.5,162.5],[181.42,240,45,45],[57.5,155,45,45],[0,240,45,45],[246.42,77.5],[406.58,70,45,45],[181.42,155,45,45],[246.42,155,45,45],[375.88,247.5],[7.5,332.5],[122.5,158.04,38.92,38.92],[409.62,158.04,38.92,38.92],[311.42,162.5],[65,247.5],[443.38,243.04,38.92,38.92],[138.92,332.5],[338.92,325,45,45],[311.42,247.5],[403.92,328.04,38.92,38.92],[188.92,332.5],[238.92,332.5]],"e":[[0,1,[260.52,42,84.46,42]],[1,2,[84.46,127,22.5,127]],[1,4,[84.46,127,80,127]],[2,5],[0,6,[260.52,42,261.42,42]],[0,7,[260.52,42,429.08,42]],[6,8,[261.42,127,203.92,127]],[8,3],[6,9,[261.42,127,268.92,127]],[5,11],[1,12,[84.46,127,141.96,127]],[7,13],[13,10,[429.08,212,390.88,212]],[6,14,[261.42,127,326.42,127]],[4,15],[13,16,[429.08,212,462.83,212]],[3,17,[203.92,297,153.92,297]],[10,18,[390.88,297,361.42,297]],[14,19],[10,20,[390.88,297,423.38,297]],[3,21],[3,22,[203.92,297,253.92,297]]],"vp":[0.0,0.0,483.0,370.0]}} - *

    - * @class yfiles.tree.LayeredNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface LayeredNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class LayeredNodePlacer { - /** - * Creates a new {@link yfiles.tree.LayeredNodePlacer} instance whose direction is specified by the given modification matrix. - *

    - * The given ID identifies different {@link yfiles.tree.LayeredNodePlacer} instances that share the same layer heights. - *

    - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for this {@link yfiles.tree.RotatableNodePlacerBase} - * @param {Object} id the {@link yfiles.tree.LayeredNodePlacer} ID - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,id:Object); - /** - * Creates a new {@link yfiles.tree.LayeredNodePlacer} instance with the default settings. - * @constructor - */ - constructor(); - /** - * Gets or sets whether or not the layering is done dendrogram-like. - *

    - * When enabled, leaves are placed in the same layer and remaining tree nodes are assigned to a layer as close to their - * children as possible. - *

    - * @type {boolean} - */ - dendrogramStyle:boolean; - /** - * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlginment} that defines how the root node is aligned with its children and their shapes. - * @type {yfiles.tree.RootNodeAlignment} - */ - rootAlignment:yfiles.tree.RootNodeAlignment; - /** - * Gets or sets the relative vertical alignment of nodes within their respective layers. - *

    - * A value of 0 means that nodes are top-aligned; a value of 0.5 means that nodes are center-aligned; a value of 1 means - * that nodes are bottom-aligned; - *

    - *

    - * Values for a valid vertical alignment are in the range [0..1]. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified alignment is outside [0..1] - * @type {number} - */ - verticalAlignment:number; - /** - * Gets the ID of this {@link yfiles.tree.LayeredNodePlacer}. - *

    - * The ID is used for identifying - * {@link yfiles.tree.LayeredNodePlacer}s that share information about the layer height. Using different IDs allows aligned layouts - * within different subtrees. - *

    - * @type {Object} - */ - id:Object; - /** - * Gets or sets the distance between two adjacent layers. - *

    - * The spacing needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified spacing is negative - * @type {number} - */ - layerSpacing:number; - /** - * Gets or sets the routing style for the edges in the subtree. - * @throws {Stubs.Exceptions.ArgumentError} if the specified routing style specifier is unknown - * @type {yfiles.tree.LayeredRoutingStyle} - */ - routingStyle:yfiles.tree.LayeredRoutingStyle; - /** - * Gets or sets the vertical bus alignment for orthogonally routed edges. - *

    - * The bus alignment determines the relative position of an edge bus in between two subsequent layers of nodes. - *

    - *

    - * Values for a valid vertical alignment are in the range [0..1], such that: - *

    - *
      - *
    • A value of 0.0 places the bus at the top, right below the parent node.
    • - *
    • A value of 0.5 places the bus in the middle between parent and child nodes.
    • - *
    • A value of 1.0 places the bus at the bottom, right above the child nodes.
    • - *
    - * @throws {Stubs.Exceptions.ArgumentError} if the specified alignment is outside [0..1] - * @type {number} - */ - busAlignment:number; - /** - * Gets or sets whether or not straight edges are extended to avoid label overlaps. - *

    - * If enabled, polyline connectors between the parent and its children are added to the according subtree shape. Node or - * edge labels will not be crossed. - *

    - * @type {boolean} - */ - polylineLabeling:boolean; - static $class:yfiles.lang.Class; - } - /** - * A {@link yfiles.tree.LeafNodePlacer} creates a {@link yfiles.tree.SubtreeShape SubtreeShape} for a leaf node and routes its incoming edge at the target side. - * @class yfiles.tree.LeafNodePlacer - * @implements {yfiles.tree.INodePlacer} - */ - export interface LeafNodePlacer extends Object,yfiles.tree.INodePlacer{} - export class LeafNodePlacer { - /** - * Creates a new {@link yfiles.tree.LeafNodePlacer} instance with default settings. - * @constructor - */ - constructor(); - /** - * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. - *

    - * This implementation returns null. Hence, no pre- or post-processing is done. - *

    - * @param {yfiles.tree.TreeLayout} layouter the current {@link yfiles.tree.TreeLayout} instance - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} currentRoot the root node handled by this {@link yfiles.tree.INodePlacer} - * @returns {yfiles.tree.IProcessor} null - */ - createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; - /** - * Does nothing because leaf nodes don't have children so there are no child connectors. - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.algorithms.IDataMap} connectorMap the map that must be used for storing the direction specifiers of the child nodes - */ - determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; - /** - * Creates a {@link yfiles.tree.SubtreeShape} for the local root node (a leaf node in this case) and adds target points to the - * incoming edge. - *

    - * The incoming edge is routed according to possibly assigned {@link yfiles.layout.PortConstraint}s. - *

    - * @param {yfiles.algorithms.IDataProvider} nodeShapeProvider the {@link yfiles.algorithms.IDataProvider} for obtaining an initial shape of the root node - * @param {yfiles.algorithms.IDataProvider} subtreeShapeProvider the {@link yfiles.algorithms.IDataProvider} for accessing the pre-calculated shapes of the subtrees - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} localRoot the root of the subtree that should be arranged by this method - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction specifier for the connector of the local root node to its parent node - * @returns {yfiles.tree.SubtreeShape} the {@link yfiles.tree.SubtreeShape} of the leaf node including the connector - */ - placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.LeftRightNodePlacer} arranges the children in a subtree on the left and the right of a vertical bus. - *

    - * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[35,0],[0,50],[70,50],[0,100],[70,100],[0,150],[70,150],[0,200],[70,200],[35,250]],"e":[[0,1,[50,65]],[0,2,[50,65]],[0,3,[50,115]],[0,4,[50,115]],[0,5,[50,165]],[0,6,[50,165]],[0,7,[50,215]],[0,8,[50,215]],[0,9]],"vp":[0.0,0.0,100.0,280.0]}} - *

    - * @class yfiles.tree.LeftRightNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface LeftRightNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class LeftRightNodePlacer { - /** - * Creates a new {@link yfiles.tree.LeftRightNodePlacer} instance using the given modification matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for this {@link yfiles.tree.RotatableNodePlacerBase} - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); - /** - * Creates a new {@link yfiles.tree.LeftRightNodePlacer} instance with default settings. - * @constructor - */ - constructor(); - /** - * Creates a special {@link yfiles.algorithms.IDataProvider} that determines whether a given node is placed left or right of the - * parent node. - *

    - * This {@link yfiles.algorithms.IDataProvider} can be registered with the graph with key - * {@link yfiles.tree.LeftRightNodePlacer#LEFT_RIGHT_DP_KEY}. It calculates the side with respect to the initial coordinates of the - * nodes in the graph, considering the orientation of the subtree. - *

    - *

    - * If a node is assigned to the left side, this {@link yfiles.algorithms.IDataProvider} will return true. For the right side, it - * will return false. - *

    - * @param {yfiles.algorithms.IDataProvider} nodePlacerMap a {@link yfiles.algorithms.IDataProvider} containing the corresponding {@link yfiles.tree.INodePlacer}s for the node - * @returns {yfiles.algorithms.IDataProvider} - * @static - */ - static createLeftRightDataProvider(nodePlacerMap:yfiles.algorithms.IDataProvider):yfiles.algorithms.IDataProvider; - /** - * Data provider key for assigning nodes to the left or the right side of the bus - *

    - * If no {@link yfiles.algorithms.IDataProvider} is specified using this key, the nodes will be placed alternating from left to - * right. - *

    - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static LEFT_RIGHT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Gets or sets the horizontal distance between nodes or subtrees. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - horizontalDistance:number; - /** - * Gets or sets the vertical distance between nodes or subtrees. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative - * @type {number} - */ - verticalDistance:number; - /** - * Sets a uniform horizontal and vertical spacing between subtrees. - *

    - * This method sets the given distance value for the {@link yfiles.tree.LeftRightNodePlacer#horizontalDistance horizontal spacing} and for the {@link yfiles.tree.LeftRightNodePlacer#verticalDistance vertical spacing}. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the specified spacing value is negative - * @see yfiles.tree.LeftRightNodePlacer#horizontalDistance - * @see yfiles.tree.LeftRightNodePlacer#verticalDistance - * @type {number} - */ - spacing:number; - /** - * Gets or sets whether or not the last child is placed centered, aligned with the bus and below the other child nodes. - *

    - * When enabled, the last child will always be centered independent of the number of siblings. - *

    - * @type {boolean} - */ - placeLastOnBottom:boolean; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.MultiParentDescriptor} provides style information for multi-parent structures. - *

    - * This class is used by {@link yfiles.tree.TreeLayout} to determine the desired layout of nodes that constitute a multi-parent - * structure. All nodes of such a structure are placed side by side and the incident edges are routed over common points - * for incoming edges and for outgoing edges. - *

    - *

    - * {@graph {"ann":{"s":[40,40],"d":1},"n":[[411.25,0],[682.5,85],[210,155],[612.5,165],[35,225],[577.5,235],[385,320.5],[682.5,155,40,60],[70,305],[210,85],[0,295,40,60],[0,385],[210,225],[700,320.5],[175,295],[245,295],[315,225],[752.5,165],[420,405.5],[647.5,235],[752.5,235],[770,406],[140,380.5,40,60],[210,390.5],[315,295,40,60],[490,405.5],[175,485.5],[455,320.5],[481.25,0],[700,406],[560,406],[630,406],[560,491],[630,491],[525,320.5],[280,380.5,40,60],[70,390.5]],"e":[[0,1,[431.25,55.5,466.25,55.5,466.25,70,702.5,70]],[1,3,[702.5,140,632.5,140]],[2,4,[230,210,55,210]],[3,5,[632.5,220,597.5,220]],[5,6,[597.5,290,475,290,475,305,405,305]],[1,7],[4,8,[55,280,90,280]],[0,9,[431.25,55.5,466.25,55.5,466.25,70,230,70]],[9,2],[4,10,[55,280,20,280]],[10,11],[2,12],[5,13,[597.5,290,720,290]],[12,14,[230,280,195,280]],[12,15,[230,280,265,280]],[2,16,[230,210,335,210]],[1,17,[702.5,140,772.5,140]],[6,18,[405,376,475,376,475,390.5,440,390.5]],[3,19,[632.5,220,667.5,220]],[17,20],[13,21,[720,375.5,790,375.5]],[14,22,[195,365,160,365]],[14,23,[195,365,230,365]],[16,24],[6,25,[405,376,475,376,475,390.5,510,390.5]],[22,26,[160,456,195,456]],[23,26,[230,456,195,456]],[5,27,[597.5,290,475,290]],[27,18,[475,390.5,440,390.5]],[27,25,[475,390.5,510,390.5]],[28,9,[501.25,55.5,466.25,55.5,466.25,70,230,70]],[28,1,[501.25,55.5,466.25,55.5,466.25,70,702.5,70]],[13,29],[13,30,[720,375.5,615,375.5,615,390.5,580,390.5]],[13,31,[720,375.5,615,375.5,615,390.5,650,390.5]],[30,32,[580,461.5,615,461.5,615,476,580,476]],[31,32,[650,461.5,615,461.5,615,476,580,476]],[30,33,[580,461.5,615,461.5,615,476,650,476]],[31,33,[650,461.5,615,461.5,615,476,650,476]],[5,34,[597.5,290,475,290,475,305,545,305]],[34,18,[545,376,475,376,475,390.5,440,390.5]],[34,25,[545,376,475,376,475,390.5,510,390.5]],[14,35,[195,365,300,365]],[35,26,[300,456,195,456]],[14,36,[195,365,90,365]],[36,26,[90,456,195,456]]],"vp":[0.0,0.0,810.0,531.0]}} - *

    - *

    - * A tree graph containing multi-parent structures - *

    - * @see yfiles.tree.TreeLayout#MULTI_PARENT_DESCRIPTOR_DP_KEY - * @class yfiles.tree.MultiParentDescriptor - */ - export interface MultiParentDescriptor extends Object{} - export class MultiParentDescriptor { - /** - * Creates a new {@link yfiles.tree.MultiParentDescriptor} instance with default settings. - * @constructor - */ - constructor(); - /** - * Gets or sets the minimum distance between two nodes belonging to the same multi-parent structure. - *

    - * The distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given node distance is negative - * @type {number} - */ - minimumNodeDistance:number; - /** - * Gets or sets the minimum distance between the nodes of a multi-parent structure and the bus connecting these nodes. - *

    - * In case the edge style is not orthogonal, the bus only consists of a common point. - *

    - *

    - * The minimum distance needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given bus distance is negative - * @type {number} - */ - minimumBusDistance:number; - /** - * Gets or sets the relative vertical alignment of nodes belonging to the same multi-parent structure. - *

    - * A value of 0 means that nodes are top-aligned; a value of 1 means that nodes are bottom-aligned; a value of 0.5 means - * that nodes are center-aligned. - *

    - *

    - * Values outside the interval [0,1] will result in a compact node placement with unaligned nodes, especially when labels - * are considered. - *

    - * @type {number} - */ - verticalAlignment:number; - /** - * Gets or sets the routing style for edges that connect to nodes which constitute a multi-parent structure. - * @throws {Stubs.Exceptions.ArgumentError} if the given routing style is unknown - * @type {yfiles.tree.MultiParentRoutingStyle} - */ - edgeStyle:yfiles.tree.MultiParentRoutingStyle; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.NodeOrderComparer} compares edges according to a specified order. - *

    - * It obtains the order from a {@link yfiles.algorithms.IDataProvider} registered with the graph with key - * {@link yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY}. - *

    - *

    - * Various tree layout algorithms can use this {@link yfiles.collections.IComparer.} to influence the resulting layout. To achieve this, use this comparator and - * assign it to the comparator property of the layout algorithm classes. - *

    - * @see yfiles.tree.ClassicTreeLayout#comparer - * @see yfiles.tree.TreeLayout#defaultOutEdgeComparer - * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY - * @see yfiles.tree.BalloonLayout#comparer - * @see yfiles.tree.AspectRatioTreeLayout#comparer - * @see yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY - * @class yfiles.tree.NodeOrderComparer - * @implements {yfiles.collections.IComparer.} - */ - export interface NodeOrderComparer extends Object,yfiles.collections.IComparer{} - export class NodeOrderComparer { - /** - * Creates a new {@link yfiles.tree.NodeOrderComparer} instance. - * @constructor - */ - constructor(); - /** - * Compares two edges according to their index in the order specified using a {@link yfiles.algorithms.IDataProvider}. - *

    - * Target nodes for which the {@link yfiles.algorithms.IDataProvider} registered with {@link yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY} - * returns null or an {@link Object} that does not implement {@link yfiles.lang.IComparable} are treated as being smaller than other target - * nodes. - *

    - * @param {Object} edge1 the first edge - * @param {Object} edge2 the second edge - * @returns {number} - * @see yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY - */ - compare(edge1:Object,edge2:Object):number; - /** - * Data provider key for registering an order for each node in the graph - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static NODE_ORDER_COMPARABLE_DP_KEY:yfiles.algorithms.NodeDpKey; - static $class:yfiles.lang.Class; - } - /** - * Abstract base class for implementations of the {@link yfiles.tree.INodePlacer} interface. - *

    - * This class provides convenience methods for sub-tasks that are often used during the arrangement of a local root and its - * children. It also offers prepared implementations for the methods of the {@link yfiles.tree.INodePlacer} interface. - *

    - *

    - * Subclasses just need to override the following two abstract methods: {@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode} and - * {@link yfiles.tree.NodePlacerBase#determineChildConnectors}. - *

    - * @class yfiles.tree.NodePlacerBase - * @implements {yfiles.tree.INodePlacer} - * @implements {yfiles.lang.ICloneable} - */ - export interface NodePlacerBase extends Object,yfiles.tree.INodePlacer,yfiles.lang.ICloneable{} - export class NodePlacerBase { - /** - * Creates a new instance of {@link yfiles.tree.NodePlacerBase}. - * @constructor - */ - constructor(); - /** - * Returns a clone of this {@link yfiles.tree.INodePlacer} instance. - * @returns {Object} an exact copy of this {@link yfiles.tree.INodePlacer} instance - */ - clone():Object; - /** - * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. - *

    - * This implementation returns null. Hence, no pre- or post-processing will be done. - *

    - * @param {yfiles.tree.TreeLayout} layouter the current {@link yfiles.tree.TreeLayout} instance - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} currentRoot the root node handled by this {@link yfiles.tree.INodePlacer} - * @returns {yfiles.tree.IProcessor} null - */ - createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; - /** - * Determines a connector direction for the given child node. - *

    - * This method is used in {@link yfiles.tree.NodePlacerBase#determineChildConnectors} and must be implemented by subclasses. - *

    - * @param {yfiles.algorithms.Node} child the child node - * @returns {yfiles.tree.ParentConnectorDirection} a direction specifier as defined in the {@link yfiles.tree.INodePlacer} interface - * @protected - * @abstract - */ - determineChildConnector(child:yfiles.algorithms.Node):yfiles.tree.ParentConnectorDirection; - /** - * Provides the direction of the connector to the {@link yfiles.tree.SubtreeShape SubtreeShape} for each child node. - *

    - * This implementation uses {@link yfiles.tree.NodePlacerBase#determineChildConnector} to retrieve the direction for the - * connectors. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.algorithms.IDataMap} connectorMap the map that must be used for storing the direction specifiers of the child nodes - */ - determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; - /** - * Returns the {@link yfiles.tree.SubtreeShape} for the given node. - *

    - * This is a convenience method that retrieves a {@link yfiles.tree.SubtreeShape} for a single node from the corresponding - * {@link yfiles.algorithms.IDataProvider}. - *

    - *

    - * This method is used in {@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode} for retrieving the {@link yfiles.tree.SubtreeShape}s for - * the local root nodes. It may be overridden to return a custom implementation of {@link yfiles.tree.SubtreeShape}. - *

    - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.tree.SubtreeShape} the {@link yfiles.tree.SubtreeShape} for the given node - * @protected - */ - getNodeShape(node:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; - /** - * Returns the {@link yfiles.tree.SubtreeShape} for the subtree rooted at the given node. - *

    - * This is a convenience method that retrieves a {@link yfiles.tree.SubtreeShape} of a complete subtree from the corresponding - * {@link yfiles.algorithms.IDataProvider}. - *

    - *

    - * This method is used in {@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode} for retrieving the {@link yfiles.tree.SubtreeShape}s for - * the subtrees that are arranged. It may be overridden to return a custom implementation of {@link yfiles.tree.SubtreeShape}. - *

    - * @param {yfiles.algorithms.Node} node the local root node - * @returns {yfiles.tree.SubtreeShape} the {@link yfiles.tree.SubtreeShape} of the subtree rooted at the given local root node - * @protected - */ - getSubtreeShape(node:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; - /** - * Initializes the local data structures and then delegates the work to the abstract variant of this method - * ({@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode}) - * @param {yfiles.algorithms.IDataProvider} nodeShapeProvider the {@link yfiles.algorithms.IDataProvider} for obtaining an initial shape of the root node - * @param {yfiles.algorithms.IDataProvider} subtreeShapeProvider the {@link yfiles.algorithms.IDataProvider} for accessing the pre-calculated shapes of the subtrees - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} localRoot the root of the subtree that should be arranged by this method - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction specifier for the connector of the local root node to its parent node - * @returns {yfiles.tree.SubtreeShape} the merged {@link yfiles.tree.SubtreeShape} for the subtree rooted at the local root node - * @see yfiles.tree.NodePlacerBase#placeSubtreeOfNode - */ - placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; - /** - * Arranges the local root relative to the {@link yfiles.tree.SubtreeShape} of its children. - *

    - * This is the main method that must be implemented by subclasses. It is called by - * {@link yfiles.tree.NodePlacerBase#placeSubtree}. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction of the connector - * @returns {yfiles.tree.SubtreeShape} a {@link yfiles.tree.SubtreeShape} instance that describes the shape of the whole subtree rooted at the given local root - * @protected - * @abstract - */ - placeSubtreeOfNode(localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; - /** - * The graph instance this class is working on. - * @protected - * @type {yfiles.layout.LayoutGraph} - */ - graph:yfiles.layout.LayoutGraph; - static $class:yfiles.lang.Class; - } - /** - * A {@link yfiles.tree.RootNodeAlignment} describes how a local root node is arranged in relation to its children. - *

    - * The actual placement depends on the orientation of the subtree rooted at the current local root node. All descriptions - * of the provided alignments refer to the top-to-bottom orientation described by - * {@link yfiles.tree.RotatableNodePlacerMatrix#DEFAULT}. In this case, the subtrees are placed below the local root and the local - * root is aligned horizontally above them. - *

    - * @class yfiles.tree.RootNodeAlignment - */ - export interface RootNodeAlignment extends Object{} - export class RootNodeAlignment { - /** - * Calculates the common bounds of the given subtree shapes. - *

    - * This method can be used when placing the local root above its subtrees in method - * {@link yfiles.tree.RootNodeAlignment#placeParentHorizontal}. - *

    - * @param {yfiles.collections.IList.} shapes a list of rotated subtree shapes - * @returns {yfiles.algorithms.Rectangle2D} the rectangle describing the bounds containing all given shapes - * @protected - * @static - */ - static getBounds(shapes:yfiles.collections.IList):yfiles.algorithms.Rectangle2D; - /** - * Moves the shape of the local root to a suitable position relative to the children's shapes. - *

    - * The movement should only be done on the x-axis (horizontally). - *

    - *

    - * This method is called by {@link yfiles.tree.RotatableNodePlacerBase}s when they {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode place the subtrees}. - *

    - * @param {yfiles.tree.RotatedSubtreeShape} rootShape the shape of the local root node that will be moved - * @param {yfiles.collections.IList.} shapes a list of rotated subtree shapes, representing the shapes of the child nodes - * @param {yfiles.algorithms.Rectangle2D} shapeBounds accumulated bounds of the shapes of all child nodes - * @param {number} spacing the spacing value that should be used - * @protected - * @abstract - */ - placeParentHorizontal(rootShape:yfiles.tree.RotatedSubtreeShape,shapes:yfiles.collections.IList,shapeBounds:yfiles.algorithms.Rectangle2D,spacing:number):void; - /** - * Horizontal {@link yfiles.tree.RootNodeAlignment} at the center of the subtrees. - *

    - * The root node is placed centered above its whole subgraph. To determine the alignment, only {@link yfiles.layout.INodeLayout}s - * are considered. Node labels are not included although they are also contained in {@link yfiles.tree.SubtreeShape}s. - *

    - * @const - * @static - * @type {yfiles.tree.RootNodeAlignment} - */ - static CENTER:yfiles.tree.RootNodeAlignment; - /** - * Horizontal {@link yfiles.tree.RootNodeAlignment} at the median child node. - *

    - * The root node is placed above the median of its children. To determine the alignment, only {@link yfiles.layout.INodeLayout}s - * are considered. Node labels are not included although they are also contained in {@link yfiles.tree.SubtreeShape}s. - *

    - * @const - * @static - * @type {yfiles.tree.RootNodeAlignment} - */ - static MEDIAN:yfiles.tree.RootNodeAlignment; - /** - * Horizontal {@link yfiles.tree.RootNodeAlignment} left of the children. - *

    - * The local root node leaves a distance specified by the given spacing to the leftmost child. To determine the alignment, - * only {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in - * {@link yfiles.tree.SubtreeShape}s. - *

    - * @const - * @static - * @type {yfiles.tree.RootNodeAlignment} - */ - static LEADING:yfiles.tree.RootNodeAlignment; - /** - * Horizontal {@link yfiles.tree.RootNodeAlignment} right of the children. - *

    - * The root node leaves a distance specified by the given spacing to the rightmost child. To determine the alignment, only - * {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in - * {@link yfiles.tree.SubtreeShape}s. - *

    - * @const - * @static - * @type {yfiles.tree.RootNodeAlignment} - */ - static TRAILING:yfiles.tree.RootNodeAlignment; - /** - * Horizontal {@link yfiles.tree.RootNodeAlignment} at the left side. - *

    - * The root node is placed left aligned with its leftmost child. To determine the alignment, only - * {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in - * {@link yfiles.tree.SubtreeShape}s. - *

    - * @const - * @static - * @type {yfiles.tree.RootNodeAlignment} - */ - static LEFT:yfiles.tree.RootNodeAlignment; - /** - * Horizontal {@link yfiles.tree.RootNodeAlignment} at the right side. - *

    - * The root node is placed right aligned with its rightmost child. To determine the alignment, only - * {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in - * {@link yfiles.tree.SubtreeShape}s. - *

    - * @const - * @static - * @type {yfiles.tree.RootNodeAlignment} - */ - static RIGHT:yfiles.tree.RootNodeAlignment; - /** - * Horizontal alignment at the center of the children. - *

    - * The root node is placed centered over its direct children. To determine the alignment, only {@link yfiles.layout.INodeLayout}s - * are considered. Node labels are not included although they are also contained in {@link yfiles.tree.SubtreeShape}s. - *

    - * @const - * @static - * @type {yfiles.tree.RootNodeAlignment} - */ - static CENTER_OVER_CHILDREN:yfiles.tree.RootNodeAlignment; - /** - * An array containing all supported {@link yfiles.tree.RootNodeAlignment}s. - * @const - * @static - * @type {Array.} - */ - static ALL:yfiles.tree.RootNodeAlignment[]; - static $class:yfiles.lang.Class; - } - /** - * A matrix describes the rotation of the subtree handled by {@link yfiles.tree.RotatableNodePlacerBase}. - *

    - * Subtrees may be rotated or mirrored. Also, matrices offering a combination of rotation and mirroring are provided. - *

    - * @class yfiles.tree.RotatableNodePlacerMatrix - */ - export interface RotatableNodePlacerMatrix extends Object{} - export class RotatableNodePlacerMatrix { - /** - * Compares the values of the current {@link yfiles.tree.RotatableNodePlacerMatrix} with the values of the given - * {@link yfiles.tree.RotatableNodePlacerMatrix}. - * @param {yfiles.tree.RotatableNodePlacerMatrix} other the matrix - * @returns {boolean} true if this matrix and the given other matrix contain the same values, false otherwise - */ - equalValues(other:yfiles.tree.RotatableNodePlacerMatrix):boolean; - /** - * Multiplies this {@link yfiles.tree.RotatableNodePlacerMatrix} with the given other {@link yfiles.tree.RotatableNodePlacerMatrix}. - * @param {yfiles.tree.RotatableNodePlacerMatrix} other the other matrix - * @returns {yfiles.tree.RotatableNodePlacerMatrix} the product of both matrices - */ - multiply(other:yfiles.tree.RotatableNodePlacerMatrix):yfiles.tree.RotatableNodePlacerMatrix; - /** - * The identity matrix which does not apply any rotation or mirroring. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static DEFAULT:yfiles.tree.RotatableNodePlacerMatrix; - /** - * A matrix which applies a counter-clockwise rotation by 90 degrees. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static ROT90:yfiles.tree.RotatableNodePlacerMatrix; - /** - * A matrix which applies a rotation by 180 degrees. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static ROT180:yfiles.tree.RotatableNodePlacerMatrix; - /** - * A matrix which applies a counter-clockwise rotation by 270 degrees. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static ROT270:yfiles.tree.RotatableNodePlacerMatrix; - /** - * A matrix which applies a horizontal mirroring. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static MIR_HOR:yfiles.tree.RotatableNodePlacerMatrix; - /** - * A matrix which applies a vertical mirroring. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static MIR_VERT:yfiles.tree.RotatableNodePlacerMatrix; - /** - * A matrix which applies a horizontal mirroring and a counter-clockwise rotation by 90 degrees. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static MIR_HOR_ROT90:yfiles.tree.RotatableNodePlacerMatrix; - /** - * A matrix which applies a vertical mirroring and a counter-clockwise rotation by 90 degrees. - * @const - * @static - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - static MIR_VERT_ROT90:yfiles.tree.RotatableNodePlacerMatrix; - static $class:yfiles.lang.Class; - } - /** - * Abstract base class for {@link yfiles.tree.INodePlacer}s that support rotations of the subtrees. - *

    - * The direction specified in this {@link yfiles.tree.RotatableNodePlacerBase} (defined by a - * {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix transformation matrix}) rotates the subtree that is placed. This is the final direction of this subtree. Rotations are - * not accumulated. - *

    - *

    - * {@link yfiles.tree.INodePlacer}s of this type will only implement the default direction (i.e. top-to-bottom). The other - * directions are calculated using the specified modification {@link yfiles.tree.RotatableNodePlacerMatrix}. The direction used by - * the implementing - * {@link yfiles.tree.INodePlacer}s is called the model direction while the actual direction in the graph is the real direction. - *

    - *

    - * Note that using rotatable {@link yfiles.tree.INodePlacer}s has some pitfalls. Calculations must be aware of the rotations. - * Especially operations on {@link yfiles.algorithms.BorderLine}s should not be called directly (e.g. - * {@link yfiles.algorithms.BorderLine#mergeWithMin}, {@link yfiles.algorithms.BorderLine#mergeWithMax}). The corresponding methods of {@link yfiles.tree.RotatableNodePlacerBase} - * already support the different directions. - *

    - *

    - * Subclasses just need to override the following two abstract methods: {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode} - * and {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnectors}. - *

    - * @class yfiles.tree.RotatableNodePlacerBase - * @implements {yfiles.tree.IFromSketchNodePlacer} - */ - export interface RotatableNodePlacerBase extends Object,yfiles.tree.IFromSketchNodePlacer{} - export class RotatableNodePlacerBase { - /** - * Creates a new instance of {@link yfiles.tree.RotatableNodePlacerBase} whose direction is specified by the given modification - * matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for the {@link yfiles.tree.INodePlacer} - * @protected - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); - /** - * Creates a {@link yfiles.collections.IComparer.} for outgoing edges that takes the rotation into account. - * @returns {yfiles.collections.IComparer.} the {@link yfiles.collections.IComparer.} that considers the rotation - */ - createComparer():yfiles.collections.IComparer; - /** - * Delegates to {@link yfiles.tree.RotatableNodePlacerBase#createComparer}. - * @returns {yfiles.collections.IComparer.} the From Sketch {@link yfiles.collections.IComparer.} - * @see yfiles.tree.RotatableNodePlacerBase#createComparer - */ - createFromSketchComparer():yfiles.collections.IComparer; - /** - * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. - *

    - * This implementation returns null. Hence, no pre- or post-processing is done. - *

    - * @param {yfiles.tree.TreeLayout} layouter the current {@link yfiles.tree.TreeLayout} instance - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} currentRoot the root node handled by this {@link yfiles.tree.INodePlacer} - * @returns {yfiles.tree.IProcessor} null - */ - createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; - /** - * Determines a connector direction for the given child node. - *

    - * This method is called by {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnectors} and must be implemented by - * subclasses. Implementations can assume the default direction (top-to-bottom) for their arrangement. - *

    - * @param {yfiles.algorithms.Node} child the child node - * @returns {yfiles.tree.ParentConnectorDirection} a direction specifier as defined in the {@link yfiles.tree.INodePlacer} interface - * @protected - * @abstract - */ - determineChildConnector(child:yfiles.algorithms.Node):yfiles.tree.ParentConnectorDirection; - /** - * Provides the direction of the connector to the {@link yfiles.tree.SubtreeShape SubtreeShape} for each child node. - *

    - * This implementation uses {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnector} and the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix} to - * retrieve the direction for the connectors. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root - * @param {yfiles.algorithms.IDataMap} connectorMap the map that must be used for storing the direction specifiers of the child nodes - * @see yfiles.tree.RotatableNodePlacerBase#determineChildConnector - */ - determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; - /** - * Returns the rotated subtree shape for the given node. - *

    - * This is a convenience method that retrieves a rotated subtree shape for a single node from the corresponding - * {@link yfiles.algorithms.IDataProvider}. This shape may be modified and returned by - * {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode}. - *

    - * @param {yfiles.algorithms.Node} node the node - * @returns {yfiles.tree.RotatedSubtreeShape} the subtree shape for the given node - * @protected - */ - getNodeShape(node:yfiles.algorithms.Node):yfiles.tree.RotatedSubtreeShape; - /** - * Returns the target {@link yfiles.layout.PortConstraint} for the local root's incoming edge. - *

    - * This method translates the {@link yfiles.layout.PortConstraint} according to the rotation described by the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. - * It should be used instead of {@link yfiles.layout.PortConstraint#getTPC}. - *

    - *

    - * This method may be used in {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode} to route the edges to the according - * port. It may be overridden to provide constant {@link yfiles.layout.PortConstraint}s for each node. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root - * @returns {yfiles.layout.PortConstraint} the {@link yfiles.layout.PortConstraint} for the incoming edge of the local root or {@link yfiles.layout.PortSide#ANY} if no {@link yfiles.layout.PortConstraint} - * is assigned for that edge - * @protected - */ - getPortConstraint(localRoot:yfiles.algorithms.Node):yfiles.layout.PortConstraint; - /** - * Returns the absolute source point of the given edge depending on the rotation of this {@link yfiles.tree.INodePlacer}. - *

    - * This method translates the source point according to the rotation described by the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. It should be - * used instead of {@link yfiles.layout.LayoutGraph#getSourcePointAbs}. - *

    - *

    - * It can be used in an implementation of {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode}. - *

    - * @param {yfiles.algorithms.Edge} edge the edge whose absolute source point should be calculated - * @returns {yfiles.algorithms.YPoint} the translated absolute source point for the given edge and current modification matrix - * @protected - */ - getSourcePointAbs(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPoint; - /** - * Returns the rotated subtree shape for the subtree rooted at the given node. - *

    - * This is a convenience method that retrieves a subtree shape of a complete subtree from the corresponding - * {@link yfiles.algorithms.IDataProvider}. - *

    - * @param {yfiles.algorithms.Node} node the local root node - * @returns {yfiles.tree.RotatedSubtreeShape} the rotated subtree shape of the subtree rooted at the given local root node - * @protected - */ - getSubtreeShape(node:yfiles.algorithms.Node):yfiles.tree.RotatedSubtreeShape; - /** - * Initializes the local data structures and then delegates the work to the abstract variant of this method - * ({@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode}). - * @param {yfiles.algorithms.IDataProvider} nodeShapeProvider the {@link yfiles.algorithms.IDataProvider} for obtaining an initial shape of the root node - * @param {yfiles.algorithms.IDataProvider} subtreeShapeProvider the {@link yfiles.algorithms.IDataProvider} for accessing the pre-calculated shapes of the subtrees - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} localRoot the root of the subtree that should be arranged by this method - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction specifier for the connector of the local root node to its parent node - * @returns {yfiles.tree.SubtreeShape} the merged {@link yfiles.tree.SubtreeShape} for the subtree rooted at the local root node - * @see yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode - */ - placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; - /** - * Arranges the local root relative to the rotated subtree shapes of its children. - *

    - * This is the main method that must be implemented by subclasses. For calculations and locations subclasses should use the - * corresponding methods of {@link yfiles.tree.RotatableNodePlacerBase} which already consider the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. - *

    - * @param {yfiles.algorithms.Node} localRoot the local root node - * @param {yfiles.tree.ParentConnectorDirection} parentConnectorDirection the direction specifier for the connector of the local root node to its parent node - * @returns {yfiles.tree.RotatedSubtreeShape} the merged subtree shape that contains the local root node and all its children - * @protected - * @abstract - */ - placeSubtreeOfNode(localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.RotatedSubtreeShape; - /** - * Translates the given real direction of the resulting layout to the model direction of this - * {@link yfiles.tree.RotatableNodePlacerBase}. - *

    - * This method is used in {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode} to be able to retrieve the model direction - * for the connector - *

    - * @param {yfiles.tree.ParentConnectorDirection} realDirection the real direction - * @returns {number} the model direction - * @throws {Stubs.Exceptions.ArgumentError} if translation for the given real direction is not implemented - * @protected - */ - translateDirectionToModel(realDirection:yfiles.tree.ParentConnectorDirection):number; - /** - * Translates the given model direction to the real direction in the resulting layout. - *

    - * This method is used in {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnectors} to be able to return the real - * connector direction. - *

    - * @param {yfiles.tree.ParentConnectorDirection} modelDirection the model direction - * @returns {number} the real direction - * @throws {Stubs.Exceptions.ArgumentError} if translation for the given model direction is not implemented - * @protected - */ - translateDirectionToReal(modelDirection:yfiles.tree.ParentConnectorDirection):number; - /** - * Translates a point from the real layout direction to the model direction using the given modification matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the modification matrix to use for the translation - * @param {yfiles.algorithms.YPoint} realWorldPoint the point with coordinates from the real world - * @returns {yfiles.algorithms.YPoint} the translated point with coordinates from the model - * @static - */ - static translatePoint(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,realWorldPoint:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; - /** - * The graph instance this {@link yfiles.tree.INodePlacer} is working on. - * @protected - * @type {yfiles.layout.LayoutGraph} - */ - graph:yfiles.layout.LayoutGraph; - /** - * The provider of {@link yfiles.tree.SubtreeShape}s for whole subtrees. - * @protected - * @type {yfiles.algorithms.IDataProvider} - */ - subtreeShapeProvider:yfiles.algorithms.IDataProvider; - /** - * The provider of {@link yfiles.tree.SubtreeShape}s for single nodes. - * @protected - * @type {yfiles.algorithms.IDataProvider} - */ - nodeShapeProvider:yfiles.algorithms.IDataProvider; - /** - * The list containing the created children. - * @protected - * @type {yfiles.collections.IList.} - */ - createdChildren:yfiles.collections.IList; - /** - * Gets the modification matrix that defines the direction of the subtree. - * @type {yfiles.tree.RotatableNodePlacerMatrix} - */ - modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix; - /** - * Gets or sets the spacing between subtrees. - *

    - * The spacing needs to be non-negative. - *

    - * @throws {Stubs.Exceptions.ArgumentError} if the given spacing is negative - * @type {number} - */ - spacing:number; - static $class:yfiles.lang.Class; - } - /** - * Decorates a SubtreeShape and provides rotated access on it. - * @class yfiles.tree.RotatedSubtreeShape - */ - export interface RotatedSubtreeShape extends Object{} - export class RotatedSubtreeShape { - /** - * For testing purposes only - * @protected - * @constructor - */ - constructor(); - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.SimpleNodePlacer} arranges all children of a local root in a single row. - *

    - * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[50,50],[235,50],[370,50],[720,50],[100,100],[770,100],[285,100],[420,50],[520,50],[570,100],[670,100],[150,150],[720,150],[470,100],[335,100],[620,150],[820,150],[520,150],[185,100]],"e":[[0,1,[65,15]],[0,2,[250,15]],[0,3,[385,15]],[0,4,[735,15]],[1,5,[115,65]],[4,6,[785,65]],[2,7,[300,65]],[0,8,[435,15]],[0,9,[535,15]],[9,10,[585,65]],[9,11,[685,65]],[5,12,[165,115]],[11,13,[735,115]],[8,14,[485,65]],[2,15,[350,65]],[10,16,[635,115]],[6,17,[835,115]],[14,18,[535,115]],[1,19,[200,65]]],"vp":[0.0,0.0,850.0,180.0]}} - *

    - * @class yfiles.tree.SimpleNodePlacer - * @extends {yfiles.tree.RotatableNodePlacerBase} - */ - export interface SimpleNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} - export class SimpleNodePlacer { - /** - * Creates a new {@link yfiles.tree.SimpleNodePlacer} instance that uses the given {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix} and {@link yfiles.tree.SimpleNodePlacer#rootAlignment root alignment}. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for this {@link yfiles.tree.RotatableNodePlacerBase} - * @param {yfiles.tree.RootNodeAlignment} rootAlignment the alignment for the local root in relation to its subtrees - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,rootAlignment:yfiles.tree.RootNodeAlignment); - /** - * Creates a new {@link yfiles.tree.SimpleNodePlacer} instance that uses the given {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the transformation matrix for this {@link yfiles.tree.RotatableNodePlacerBase} - * @constructor - */ - constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); - /** - * Creates a new {@link yfiles.tree.SimpleNodePlacer} instance with default settings. - * @constructor - */ - constructor(); - /** - * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlignment} that defines how the root node is aligned with its children and their shapes. - * @type {yfiles.tree.RootNodeAlignment} - */ - rootAlignment:yfiles.tree.RootNodeAlignment; - /** - * Gets or sets the relative vertical alignment of nodes with the same parent. - *

    - * All values between 0 and 1 result in a valid alignment. - *

    - *
      - *
    • 0 - nodes are top-aligned
    • - *
    • 0.5 - nodes are center-aligned
    • - *
    • 1 - nodes are bottom-aligned
    • - *
    - *

    - * Values outside the interval [0,1] may result in a more compact node placement with unaligned nodes, especially when - * labels are considered. - *

    - * @type {number} - */ - verticalAlignment:number; - /** - * Gets or sets whether or not a bus is created in the space between the parent and its children. - * @type {boolean} - */ - createBus:boolean; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.TreeComponentLayout} arranges tree-like subgraph structures in a mixed layout style. - *

    - * {@graph {"ann":{"s":[37.5,37.5],"d":1},"n":[[-18.75,231.25],[56.25,231.25],[131.25,231.25],[-18.75,631.25],[631.25,231.25],[631.25,631.25],[131.25,631.25],[-18.75,-18.75],[631.25,-18.75],[631.25,131.25],[631.25,56.25],[131.25,406.25],[131.25,556.25],[447.5,75,1],[560,162.5,1],[497.5,162.5,1],[391.25,343.75,1],[328.75,343.75,1],[247.5,500,1],[247.5,587.5,1],[310,500,1],[310,587.5,1],[266.25,343.75,1],[272.5,75,1],[385,162.5,1],[322.5,162.5,1],[97.5,75,1],[210,162.5,1],[147.5,162.5,1]],"e":[[0,1,18.75,-0,-18.75,-0],[1,2,18.75,-0,-18.75,-0],[0,3,-0,18.75,-0,-18.75],[2,4,18.75,-0,-18.75,-0],[4,5,-0,18.75,-0,-18.75],[5,6,-18.75,-0,18.75,-0],[6,3,-18.75,-0,18.75,-0],[0,7,-0,-18.75,-0,18.75],[7,8,18.75,-0,-18.75,-0],[4,9,-0,-18.75,-0,18.75],[8,10,-0,18.75,-0,-18.75],[10,9,-0,18.75,-0,-18.75],[11,2,-0,-18.75,-0,18.75],[11,12,-0,18.75,-0,-18.75],[6,12,-0,-18.75,-0,18.75],[7,13,18.75,12.5,0,0,[52.5,12.5,52.5,50,466.25,50]],[13,14,-13.75,0,-0,-0,[452.5,137.5,578.75,137.5]],[13,15,-13.75,0,-0,-0,[452.5,137.5,516.25,137.5]],[2,16,18.75,12.5,0,0,[221.25,262.5,221.25,318.75,410,318.75]],[2,17,18.75,12.5,0,0,[221.25,262.5,221.25,318.75,347.5,318.75]],[11,18,18.75,-0,0,0,[202.5,425,202.5,475,266.25,475]],[11,19,18.75,-0,0,0,[202.5,425,202.5,562.5,266.25,562.5]],[11,20,18.75,-0,0,0,[202.5,425,202.5,475,328.75,475]],[11,21,18.75,-0,0,0,[202.5,425,202.5,562.5,328.75,562.5]],[2,22,18.75,12.5,0,0,[221.25,262.5,221.25,318.75,285,318.75]],[7,23,18.75,12.5,0,0,[52.5,12.5,52.5,50,291.25,50]],[23,24,-13.75,0,-0,-0,[277.5,137.5,403.75,137.5]],[23,25,-13.75,0,-0,-0,[277.5,137.5,341.25,137.5]],[7,26,18.75,12.5,0,0,[52.5,12.5,52.5,50,116.25,50]],[26,27,-13.75,0,-0,-0,[102.5,137.5,228.75,137.5]],[26,28,-13.75,0,-0,-0,[102.5,137.5,166.25,137.5]]],"vp":[-19.0,-19.0,688.0,688.0]}} - *

    - *

    - * The tree components are marked - *

    - * @class yfiles.tree.TreeComponentLayout - * @implements {yfiles.layout.ILayoutStage} - */ - export interface TreeComponentLayout extends Object,yfiles.layout.ILayoutStage{} - export class TreeComponentLayout { - /** - * Creates a new {@link yfiles.tree.TreeComponentLayout} instance using the specified layouter for arranging the subtrees. - * @param {yfiles.layout.ILayoutAlgorithm} treeCoreLayouter the layout algorithm used for arranging the tree components - * @throws {Stubs.Exceptions.ArgumentError} if the specified layout algorithm is null - * @constructor - */ - constructor(treeCoreLayouter:yfiles.layout.ILayoutAlgorithm); - /** - * Finds the tree components inside the given graph and applies a {@link yfiles.tree.TreeComponentLayout#treeComponentCoreLayout tree layout} to them. - * @param {yfiles.layout.LayoutGraph} graph the input graph - */ - applyLayout(graph:yfiles.layout.LayoutGraph):void; - /** - * Delegates the layout calculation to the {@link yfiles.tree.TreeComponentLayout#coreLayout core layout algorithm} and handles the dummy nodes. - *

    - * The dummy nodes are marked using the given {@link yfiles.algorithms.IDataProvider}. - *

    - *

    - * This implementation just registers the dummy node {@link yfiles.algorithms.IDataProvider} with the graph with key - * {@link yfiles.tree.TreeComponentLayout#DUMMY_NODE_DP_KEY}, executes the core layout algorithm and finally removes the data - * provider again. - *

    - *

    - * This method is called by {@link yfiles.tree.TreeComponentLayout#applyLayout} to invoke the core layout algorithm. It may be - * overridden to customize the handling of the dummy nodes. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} dummyDp the {@link yfiles.algorithms.IDataProvider} which marks the dummy nodes - * @protected - */ - applyLayoutUsingDummies(graph:yfiles.layout.LayoutGraph,dummyDp:yfiles.algorithms.IDataProvider):void; - /** - * Data provider key for identifying dummy nodes during the layout calculation - *

    - * This {@link yfiles.algorithms.IDataProvider} is registered and also removed in - * {@link yfiles.tree.TreeComponentLayout#applyLayoutUsingDummies}. - *

    - * @see yfiles.tree.TreeComponentLayout#applyLayoutUsingDummies - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static DUMMY_NODE_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * - * @type {yfiles.layout.ILayoutAlgorithm} - */ - coreLayout:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets the layout algorithm that is applied to tree components. - * @type {yfiles.layout.ILayoutAlgorithm} - */ - treeComponentCoreLayout:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets whether or not tree component arrangement is improved by changing the orientation of components. - * @type {boolean} - */ - optimizeOrientation:boolean; - static $class:yfiles.lang.Class; - } - /** - * A {@link yfiles.tree.SubtreeShape} represents the position and the borders of a subtree. - *

    - * {@link yfiles.tree.INodePlacer}s will move {@link yfiles.tree.SubtreeShape}s and use the borders to calculate distances between the - * subtrees. When two subtrees are placed in relation to their common root, their - * {@link yfiles.tree.SubtreeShape}s are merged to represent the new subtree. - *

    - *

    - * The borders on each side of the {@link yfiles.tree.SubtreeShape} are modeled with - * {@link yfiles.algorithms.BorderLine}s. The resulting area includes the borders of each node and edge in the corresponding - * subtree. It can also contain the bounds of labels belonging to those nodes and edges. - *

    - *

    - * The {@link yfiles.tree.SubtreeShape} also describes a connector defining the location to which the edge from its parent is - * attached. It is possible to add some bends (target points) at the end of this edge and include them in the - * {@link yfiles.tree.SubtreeShape}. During layout calculation, the last target point is the connection point for the edge. - *

    - * @see yfiles.tree.SubtreeShape#getBorderLine - * @see yfiles.tree.SubtreeShape#connectorX - * @see yfiles.tree.SubtreeShape#connectorY - * @see yfiles.tree.SubtreeShape#addBoundsToShape - * @see yfiles.tree.SubtreeShape#addTargetPoint - * @class yfiles.tree.SubtreeShape - * @final - */ - export interface SubtreeShape extends Object{} - export class SubtreeShape { - /** - * Extends this {@link yfiles.tree.SubtreeShape} instance by the given rectangle. - *

    - * The border lines are updated with this segment. - *

    - * @param {number} x the x-coordinate of the upper-left corner of the rectangle - * @param {number} y the y-coordinate of the upper-left corner of the rectangle - * @param {number} width the width of the rectangle - * @param {number} height the height of the rectangle - * @see yfiles.tree.SubtreeShape#getBorderLine - */ - addBoundsToShape(x:number,y:number,width:number,height:number):void; - /** - * Adds all edge segments of the given edge to this {@link yfiles.tree.SubtreeShape} instance. - *

    - * The border lines are updated. - *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the given edge - * @see yfiles.tree.SubtreeShape#getBorderLine - * @see yfiles.tree.SubtreeShape#addLineSegment - */ - addEdgeSegments(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):void; - /** - * Extends this {@link yfiles.tree.SubtreeShape} instance by the given segment. - *

    - * The border lines are updated with this segment. - *

    - * @param {number} x1 the x-coordinate of the first point of the segment - * @param {number} y1 the y-coordinate of the first point of the segment - * @param {number} x2 the x-coordinate of the second point of the segment - * @param {number} y2 the y-coordinate of the second point of the segment - * @see yfiles.tree.SubtreeShape#getBorderLine - * @see yfiles.tree.SubtreeShape#addEdgeSegments - * @see yfiles.tree.SubtreeShape#updateConnectorShape - */ - addLineSegment(x1:number,y1:number,x2:number,y2:number):void; - /** - * Adds another point to the connector. - *

    - * The points will appear as bend of the incoming edge. Points are added in reverse direction of the edge. Hence, the last - * target point is further away from the target node than the points before. - *

    - * @param {number} x the current x-coordinate of the point - * @param {number} y the current y-coordinate of the point - */ - addTargetPoint(x:number,y:number):void; - /** - * Appends all target points that have previously been added to this shape to the given {@link yfiles.layout.IEdgeLayout} - * instance. - *

    - * This method is used by {@link yfiles.tree.INodePlacer} instances for the final edge paths. - *

    - * @param {yfiles.layout.IEdgeLayout} edgeLayout the {@link yfiles.layout.IEdgeLayout} that will be modified - * @see yfiles.tree.SubtreeShape#addTargetPoint - */ - appendTargetPoints(edgeLayout:yfiles.layout.IEdgeLayout):void; - /** - * Copies the state of this {@link yfiles.tree.SubtreeShape} instance to the given shape applying a modification matrix. - * @param {yfiles.tree.SubtreeShape} toShape the given shape that gets the assigned values - * @param {yfiles.tree.RotatableNodePlacerMatrix} modificationMatrix the matrix that may add geometrical modifications - */ - assignValuesTo(toShape:yfiles.tree.SubtreeShape,modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix):void; - /** - * Creates a clone of this {@link yfiles.tree.SubtreeShape} instance, modifying it using the provided modification matrix. - * @param {yfiles.tree.RotatableNodePlacerMatrix} matrix the matrix that defines the modification for the new instance - * @returns {yfiles.tree.SubtreeShape} the clone of this {@link yfiles.tree.SubtreeShape} instance - * @see yfiles.tree.RotatableNodePlacerMatrix#DEFAULT - */ - createCopy(matrix:yfiles.tree.RotatableNodePlacerMatrix):yfiles.tree.SubtreeShape; - /** - * Returns the {@link yfiles.algorithms.BorderLine} instance that describes the {@link yfiles.tree.SubtreeShape} at the given side. - * @param {number} index one of the predefined borderline directions - * @returns {yfiles.algorithms.BorderLine} the {@link yfiles.algorithms.BorderLine} instance for the given side - * @throws {Stubs.Exceptions.ArgumentError} if the given index is invalid - */ - getBorderLine(index:number):yfiles.algorithms.BorderLine; - /** - * Merges the given {@link yfiles.tree.SubtreeShape} instance with this {@link yfiles.tree.SubtreeShape} instance. - *

    - * The border lines are updated. - *

    - * @param {yfiles.tree.SubtreeShape} other the {@link yfiles.tree.SubtreeShape} to be merged with this {@link yfiles.tree.SubtreeShape} - */ - mergeWith(other:yfiles.tree.SubtreeShape):void; - /** - * Moves this {@link yfiles.tree.SubtreeShape} instance and its connector by the given offsets. - *

    - * Border lines are updated. - *

    - * @param {number} dx the delta x-offset by which this shape will be moved - * @param {number} dy the delta y-offset by which this shape will be moved - */ - move(dx:number,dy:number):void; - /** - * Adds the line segments of the connector to the bounds of this {@link yfiles.tree.SubtreeShape} instance. - *

    - * The line segments result from the target points. - *

    - * @see yfiles.tree.SubtreeShape#addTargetPoint - */ - updateConnectorShape():void; - /** - * Gets the bounds of the {@link yfiles.layout.INodeLayout} of the root node of this {@link yfiles.tree.SubtreeShape} instance. - * @type {yfiles.algorithms.Rectangle2D} - */ - coreBounds:yfiles.algorithms.Rectangle2D; - /** - * Gets the current bounds of this {@link yfiles.tree.SubtreeShape} instance. - * @type {yfiles.algorithms.Rectangle2D} - */ - bounds:yfiles.algorithms.Rectangle2D; - /** - * Gets the current x-coordinate of the connection point to which the layout algorithm connects the ingoing edge. - *

    - * The connection point can change when target points are added to the {@link yfiles.tree.SubtreeShape} instance. - *

    - * @see yfiles.tree.SubtreeShape#addTargetPoint - * @see yfiles.tree.SubtreeShape#appendTargetPoints - * @type {number} - */ - connectorX:number; - /** - * Gets the current y-coordinate of the connection point to which the layout algorithm connects the ingoing edge. - *

    - * The connection point can change when target points are added to the {@link yfiles.tree.SubtreeShape} instance. - *

    - * @see yfiles.tree.SubtreeShape#addTargetPoint - * @see yfiles.tree.SubtreeShape#appendTargetPoints - * @type {number} - */ - connectorY:number; - /** - * Gets the direction of the last connector segment. - * @type {yfiles.tree.ConnectorDirection} - */ - connectorDirection:yfiles.tree.ConnectorDirection; - /** - * Gets the current minimum x-coordinate of this {@link yfiles.tree.SubtreeShape} instance. - * @type {number} - */ - minX:number; - /** - * Gets the current minimum y-coordinate of this {@link yfiles.tree.SubtreeShape} instance. - * @type {number} - */ - minY:number; - /** - * Gets the current maximum x-coordinate of this {@link yfiles.tree.SubtreeShape} instance. - * @type {number} - */ - maxX:number; - /** - * Gets the current maximum y-coordinate of this {@link yfiles.tree.SubtreeShape} instance. - * @type {number} - */ - maxY:number; - /** - * Gets the current x-coordinate of the origin of this {@link yfiles.tree.SubtreeShape} instance. - *

    - * The origin is defined as the upper left corner of the {@link yfiles.layout.INodeLayout} of the local root of this shape. - *

    - * @type {number} - */ - originX:number; - /** - * Gets the current y-coordinate of the origin of this {@link yfiles.tree.SubtreeShape} instance. - *

    - * The origin is defined as the upper left corner of the {@link yfiles.layout.INodeLayout} of the local root of this shape. - *

    - * @type {number} - */ - originY:number; - static $class:yfiles.lang.Class; - } - /** - * This layout algorithm arranges graphs with a tree structure. - *

    - * Layout Style {@link yfiles.tree.TreeLayout} provides multiple different arrangements of trees and subtrees. It is easy to customize the - * {@link yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY order of edges}, the {@link yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY port assignment} and the {@link yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY arrangement of the nodes} for each subtree. - *

    - *

    - * Tree layout algorithms are commonly applied to visualize relational data and produce diagrams of high quality that are - * able to reveal possible hierarchic properties of the graph. More precisely, they find applications in dataflow analysis, - * software engineering, bioinformatics and business administration. - *

    - *

    - * {@graph {"ann": {"s": [37.5,37.5], "d": 1},"n": [[209.96,0], [71.88,77.5], [348.04,77.5], [348.04,155], [202.77,232.5], [172.5,310], [71.88,232.5], [115,387.5], [115,310], [233.04,310], [71.88,155], [348.04,232.5], [319.29,310], [376.79,310], [463.04,232.5], [491.79,310], [434.29,310], [28.75,310], [57.5,387.5], [0,387.5], [376.79,387.5], [261.79,387.5], [204.29,387.5]], "e": [[0,1], [0,2], [2,3], [3,4], [4,5], [6,8], [8,7], [4,9], [1,10], [10,6], [3,11], [11,12], [11,13], [3,14], [14,15], [14,16], [6,17], [17,18], [17,19], [13,20], [9,21], [9,22]], "vp": [0.0,0.0,530.0,425.0]}} Example graph with a layout calculated by {@link yfiles.tree.TreeLayout} using default settings {@graph {"ann": {"s": [60,30], "d": 1},"n": [[1190,0], [0,50], [160,120], [80,120], [240,120], [120,190], [200,190], [280,190], [160,310], [80,310], [240,310], [120,240], [200,240], [280,240], [330,50], [460,256.6], [410,306.6], [510,306.6], [410,356.6], [510,356.6], [460,406.6], [650,441.6], [410,491.6], [490,491.6], [570,491.6], [710,50], [790,100], [870,170], [950,170], [1030,170], [1110,170], [1190,170], [870,240], [950,240], [1030,240], [1110,240], [1190,240], [870,310], [950,310], [1030,310], [1110,310], [1190,310], [870,380], [950,380], [1030,380], [1110,380], [1190,380], [430,120], [500,170], [540,206.6], [580,170], [620,206.6], [660,170], [80,520], [160,430], [160,480], [226.6,405], [226.6,455], [160,380], [790,465], [870,430], [950,430], [950,500], [1030,465], [870,500]], "e": [[0,1,[30,15]], [1,2,[30,100,190,100]], [2,3,[190,170,110,170]], [2,4,[190,170,270,170]], [2,5,[190,170,150,170]], [2,6,[190,170,230,170]], [2,7,[190,170,310,170]], [1,8,[30,360,190,360]], [8,9,[190,290,110,290]], [8,10,[190,290,270,290]], [8,11,[190,290,150,290]], [8,12,[190,290,230,290]], [8,13,[190,290,310,290]], [0,14,[360,15]], [14,15,[360,271.6]], [15,16,[490,321.6]], [15,17,[490,321.6]], [15,18,[490,371.6]], [15,19,[490,371.6]], [15,20], [14,21,[360,456.6]], [21,22,[440,456.6]], [21,23,[520,456.6]], [21,24,[600,456.6]], [0,25,[740,15]], [25,26,[740,115]], [26,27,[860,115,860,150,900,150]], [26,28,[860,115,860,150,980,150]], [26,29,[860,115,860,150,1060,150]], [26,30,[860,115,860,150,1140,150]], [26,31,[860,115,860,150,1220,150]], [26,32,[860,115,860,220,900,220]], [26,33,[860,115,860,220,980,220]], [26,34,[860,115,860,220,1060,220]], [26,35,[860,115,860,220,1140,220]], [26,36,[860,115,860,220,1220,220]], [26,37,[860,115,860,290,900,290]], [26,38,[860,115,860,290,980,290]], [26,39,[860,115,860,290,1060,290]], [26,40,[860,115,860,290,1140,290]], [26,41,[860,115,860,290,1220,290]], [26,42,[860,115,860,360,900,360]], [26,43,[860,115,860,360,980,360]], [26,44,[860,115,860,360,1060,360]], [26,45,[860,115,860,360,1140,360]], [26,46,[860,115,860,360,1220,360]], [14,47,[360,100,410,100,410,135]], [47,48,[530,135]], [47,49,[570,135]], [47,50,[610,135]], [47,51,[650,135]], [47,52,[690,135]], [1,53,[30,535]], [53,54,[110,445]], [53,55,[110,495]], [53,56,[110,420]], [53,57,[110,470]], [53,58,[110,395]], [25,59,[740,480]], [59,60,[900,480]], [59,61,[980,480]], [59,62,[980,480]], [59,63], [59,64,[900,480]]], "vp": [0.0,0.0,1250.0,550.0]}} Tree layout using different - * {@link yfiles.tree.INodePlacer}s and rotationsConcept - *

    - *

    - * The layout algorithm starts from the leaves and continues with their parents, then with the parents of the parents and - * so on. When a node is processed, the algorithm will use the corresponding {@link yfiles.tree.INodePlacer} instance to move its - * children (along with their subtrees) to a suitable position and to route the outgoing edges of this node. Then, the next - * local root node will be processed. - *

    - *

    - * To avoid moving all nodes several times and to know the area that the subtrees occupy, the layout algorithm uses - * {@link yfiles.tree.SubtreeShape}s. These {@link yfiles.tree.SubtreeShape}s are moved and merged during layout calculation. - *

    - *

    - * Features - *

    - *

    - * Each subtree can have a different style of node placement. {@link yfiles.tree.INodePlacer}s are responsible for arranging - * subtrees and their common root node. They can be specified separately for each local root with a {@link yfiles.algorithms.IDataProvider} - * registered with the graph using key {@link yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY}. - *

    - *

    - * A custom node can be defined as root of the tree using a {@link yfiles.algorithms.IDataProvider} registered with the graph with - * key {@link yfiles.tree.TreeLayout#SELECTED_ROOT_DP_KEY}. - *

    - *

    - * The layout algorithm can be configured to reserve space for node labels and place the edge labels along edges such that - * the labels won't overlap with other graph elements. Edge labels are placed according to the information stored in a {@link yfiles.layout.PreferredPlacementDescriptor} - * instance. However, the placement along the edge will only affect the order of multiple labels at the same edge. The - * algorithm will always place the labels close to the target node. - *

    - *

    - * Grouping of nodes can also be handled by this layout algorithm. It is important that a group node contains a whole - * subtree. Otherwise, the group nodes may overlap with each other or with other nodes. Furthermore, the user may specify - * minimum size constraints for each group node using {@link yfiles.algorithms.IDataProvider} key - * {@link yfiles.layout.GroupingKeys#MINIMUM_NODE_SIZE_DP_KEY}. - *

    - *

    - * {@link yfiles.tree.TreeLayout} supports custom sorting of the outgoing edges of a node. For example, a {@link yfiles.tree.INodePlacer} - * instance that implements {@link yfiles.tree.IFromSketchNodePlacer} provides a comparator that keeps the current order of - * siblings, allowing to extend the graph incrementally. - *

    - *

    - * This layout algorithm can only handle graphs with a tree structure. To apply it to a general graph, a {@link yfiles.tree.TreeReductionStage} - * can be appended. This stage will temporarily remove some edges of the input graph until a tree is obtained. After the - * layout calculation, the stage will reinsert the edges that were removed and route them separately. - *

    - * @class yfiles.tree.TreeLayout - * @extends {yfiles.layout.MultiStageLayout} - */ - export interface TreeLayout extends yfiles.layout.MultiStageLayout{} - export class TreeLayout { - /** - * Creates a new {@link yfiles.tree.TreeLayout} instance with default settings. - * @constructor - */ - constructor(); - /** - * Creates a {@link yfiles.tree.SubtreeShape} for the given node that consists only of the bounds of this particular node. - *

    - * It may also include node labels or {@link yfiles.layout.NodeHalo}s. - *

    - *

    - * This method may be overridden to return a custom {@link yfiles.tree.SubtreeShape} for the given node. - *

    - * @param {yfiles.algorithms.Node} node the given node - * @returns {yfiles.tree.SubtreeShape} a {@link yfiles.tree.SubtreeShape} instance - */ - createNodeShape(node:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; - /** - * Returns a list of edges that need to be reversed in order to obtain a valid rooted and directed tree from the input - * graph. - *

    - * The root node of the tree is either a node marked by a {@link yfiles.algorithms.IDataProvider} registered with the graph with - * key {@link yfiles.tree.TreeLayout#SELECTED_ROOT_DP_KEY} or is defined according to {@link yfiles.algorithms.Trees#getRoot}. - *

    - *

    - * This method is called initially to calculate a rooted tree from the input graph. It may be overridden to apply a custom - * algorithm that determines which edges need to be reversed. - *

    - * @returns {yfiles.algorithms.EdgeList} a list of edges that need to be reversed - * @see yfiles.tree.TreeLayout#reverseEdges - * @protected - */ - directTree():yfiles.algorithms.EdgeList; - /** - * Returns the {@link yfiles.tree.INodePlacer} instance that is used for the placement of the local root node and the - * {@link yfiles.tree.SubtreeShape}s. - *

    - * The method may be overridden to return custom {@link yfiles.tree.INodePlacer} instances. It is possible to return a shared - * instance for multiple different nodes because the instances are not used after subsequent calls to this method. - *

    - *

    - * The current implementation returns the {@link yfiles.tree.INodePlacer} defined by the {@link yfiles.algorithms.IDataProvider} registered - * with key {@link yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY}. It falls back to the default {@link yfiles.tree.INodePlacer} if there is no - * specific {@link yfiles.tree.INodePlacer} for the given node. - *

    - * @param {yfiles.algorithms.Node} localRoot the root of the local subtree - * @returns {yfiles.tree.INodePlacer} the {@link yfiles.tree.INodePlacer} instance that places the subtree below the given local root node - * @see yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY - * @see yfiles.tree.TreeLayout#defaultNodePlacer - * @protected - */ - getNodePlacer(localRoot:yfiles.algorithms.Node):yfiles.tree.INodePlacer; - /** - * Returns the {@link yfiles.collections.IComparer.} instance that will sort the outgoing edges connecting to the given node. - *

    - * The {@link yfiles.collections.IComparer.} can be null in case the initial edge order shall be used. - *

    - *

    - * The method may be overridden to return custom {@link yfiles.collections.IComparer.} instances. It is possible to return a shared instance for multiple - * different nodes because the instances are not used after subsequent calls to this method. - *

    - *

    - * The current implementation returns the {@link yfiles.collections.IComparer.} defined in the {@link yfiles.algorithms.IDataProvider} registered with key - * {@link yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY}. It falls back to the default {@link yfiles.collections.IComparer.} if there is no specific {@link yfiles.collections.IComparer.} for the given - * node. - *

    - * @param {yfiles.algorithms.Node} localRoot the root of the local subtree - * @returns {yfiles.collections.IComparer.} the {@link yfiles.collections.IComparer.} or null that sorts the outgoing edges of the given node - * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY - * @see yfiles.tree.TreeLayout#defaultOutEdgeComparer - */ - getOutEdgeComparer(localRoot:yfiles.algorithms.Node):yfiles.collections.IComparer; - /** - * Returns the {@link yfiles.tree.IPortAssignment} instance that places the ports of the connecting edges of the given node. - *

    - * The method may be overridden to return customized {@link yfiles.tree.IPortAssignment} instances. It is possible to return a - * shared instance for multiple different nodes because the instances are not used after subsequent calls to this method. - *

    - *

    - * The current implementation returns the {@link yfiles.tree.IPortAssignment} defined by the {@link yfiles.algorithms.IDataProvider} - * registered with key {@link yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY}. It falls back to the default {@link yfiles.tree.IPortAssignment} - * if there is no specific {@link yfiles.tree.IPortAssignment} for the given node. - *

    - * @param {yfiles.algorithms.Node} localRoot the root of the local subtree - * @returns {yfiles.tree.IPortAssignment} the {@link yfiles.tree.IPortAssignment} instance that assigns the ports of the edges at the given node - * @see yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY - * @see yfiles.tree.TreeLayout#defaultPortAssignment - * @protected - */ - getPortAssignment(localRoot:yfiles.algorithms.Node):yfiles.tree.IPortAssignment; - /** - * Returns an array of the nodes that will be laid out. - *

    - * The given node will be considered as the root of the tree. The order of the elements ensures that no parent is processed - * before one of its successors. - *

    - *

    - * This method may be overridden to change the order in which the nodes (and their subtrees) are handled. However, it is - * important to keep the parents after the successors. Only siblings can change places. - *

    - * @param {yfiles.algorithms.Node} root the node to be considered as root of the tree - * @returns {Array.} an array of nodes that will be laid out - * @protected - */ - getRootsArray(root:yfiles.algorithms.Node):yfiles.algorithms.Node[]; - /** - * Provides access to the {@link yfiles.tree.SubtreeShape} for the given node. - *

    - * The {@link yfiles.tree.SubtreeShape} contains information about the current extent and location of the subtree rooted at the - * node. It should only be modified during the layout of the parent node. Also, it won't be initialized before the layout - * of the corresponding subtree is calculated. - *

    - *

    - * This method updates the {@link yfiles.tree.SubtreeShape} in {@link yfiles.tree.TreeLayout#layoutRoot}. - *

    - * @param {yfiles.algorithms.Node} localRoot the root of the subtree - * @returns {yfiles.tree.SubtreeShape} the {@link yfiles.tree.SubtreeShape} instance if it has already been calculated, null otherwise - * @protected - */ - getSubtreeShape(localRoot:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; - /** - * Calculates the layout for the given root node and its subtrees. - *

    - * This method is invoked for each node in the tree exactly once. Thus, children are always handled before their parents. - * In this manner, the subtrees already have a layout and can be arranged with their parent. - *

    - *

    - * To retrieve the shapes of the subtrees of all children of the local root, this method uses - * {@link yfiles.tree.TreeLayout#getSubtreeShape}. - *

    - *

    - * The method may be overridden to add configuration code. - *

    - * @param {yfiles.algorithms.Node} localRoot the root of the subtree that whose layout is calculated - * @returns {yfiles.tree.SubtreeShape} the combined {@link yfiles.tree.SubtreeShape} of the local root node and all of its children and connecting edges - * @protected - */ - layoutRoot(localRoot:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; - /** - * Reverses the direction of given edges. - *

    - * This method will be called initially after the {@link yfiles.tree.TreeLayout#directTree} method and finally after the layout has - * been calculated. It may be overridden to additionally reverse data that depends on the direction of the edges. - *

    - * @param {yfiles.algorithms.EdgeList} reversedEdges the edges that will be reversed - * @protected - */ - reverseEdges(reversedEdges:yfiles.algorithms.EdgeList):void; - /** - * Data provider key for specifying a child node placer for each node. - * @see yfiles.tree.TreeLayout#defaultNodePlacer - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static NODE_PLACER_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for assigning ports to nodes. - * @see yfiles.tree.TreeLayout#defaultPortAssignment - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static PORT_ASSIGNMENT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for specifying the comparator for the outgoing edges. - * @see yfiles.tree.TreeLayout#defaultOutEdgeComparer - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.>} - */ - static OUT_EDGE_COMPARER_DP_KEY:yfiles.algorithms.NodeDpKey>; - /** - * Data provider key for defining the priority of critical edges. - *

    - * The layout algorithm tries to align each node pair that is connected by a critical edge (integer value > - * 0). This feature can, for example, be used for highlighting different edge paths that are important for a user. - * Conflicts between different critical edges are always resolved in favor of the higher priority. - *

    - *

    - * Critical edges will always align the centers of source and target node, thus replacing the current root alignment of the - * {@link yfiles.tree.INodePlacer}. - *

    - *

    - * The critical edge may not be straight if subtrees are rotated or port constraints are assigned. - *

    - *

    - * This feature is only supported by the following {@link yfiles.tree.INodePlacer}s: - *

    - *
      - *
    • {@link yfiles.tree.DefaultNodePlacer}
    • - *
    • {@link yfiles.tree.SimpleNodePlacer}
    • - *
    • {@link yfiles.tree.LayeredNodePlacer}
    • - *
    • {@link yfiles.tree.DoubleLineNodePlacer}
    • - *
    • {@link yfiles.tree.DendrogramNodePlacer}
    • - *
    - * @const - * @static - * @type {yfiles.algorithms.EdgeDpKey.} - */ - static CRITICAL_EDGE_DP_KEY:yfiles.algorithms.EdgeDpKey; - /** - * Data provider key for retrieving descriptors for nodes in multi-parent structures. - *

    - * The returned descriptor affects the layout of the multi-parent structure. - *

    - * @see yfiles.tree.TreeLayout#multiParentAllowed - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static MULTI_PARENT_DESCRIPTOR_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * Data provider key for marking the node that will be used as root node of the tree. - * @const - * @static - * @type {yfiles.algorithms.NodeDpKey.} - */ - static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; - /** - * The input graph for which a layout is calculated. - * @protected - * @type {yfiles.layout.LayoutGraph} - */ - graph:yfiles.layout.LayoutGraph; - /** - * Gets or sets whether or not group nodes are handled by the layout algorithm. - * @type {boolean} - */ - groupingSupported:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. - * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled - * @see yfiles.layout.MultiStageLayout#componentLayout - * @see yfiles.layout.ComponentLayout - * @type {boolean} - */ - componentLayoutEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled - * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter - * @see yfiles.router.ParallelEdgeRouter - * @type {boolean} - */ - parallelEdgeRouterEnabled:boolean; - /** - * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. - * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled - * @see yfiles.layout.MultiStageLayout#selfLoopRouter - * @see yfiles.layout.SelfLoopRouter - * @type {boolean} - */ - selfLoopRouterEnabled:boolean; - /** - * Gets a {@link yfiles.algorithms.IDataAcceptor} that can overwrite the source {@link yfiles.layout.PortConstraint port contraint} temporarily used during the layout. - *

    - * This method sets temporary source {@link yfiles.layout.PortConstraint}s, e.g., after edge reversal. It may be overridden to - * handle those {@link yfiles.layout.PortConstraint}s separately. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY - * @type {yfiles.algorithms.IDataAcceptor} - */ - sourcePortConstraintDataAcceptor:yfiles.algorithms.IDataAcceptor; - /** - * Gets a {@link yfiles.algorithms.IDataAcceptor} that can overwrite the target {@link yfiles.layout.PortConstraint port contraint} temporarily used during the layout. - *

    - * This method sets temporary target {@link yfiles.layout.PortConstraint}s, e.g., after edge reversal. It may be overridden to - * handle those {@link yfiles.layout.PortConstraint}s separately. - *

    - * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY - * @protected - * @type {yfiles.algorithms.IDataAcceptor} - */ - targetPortConstraintDataAcceptor:yfiles.algorithms.IDataAcceptor; - /** - * Gets a {@link yfiles.algorithms.IDataAcceptor} that can be used for temporarily overwriting the source group information used - * during the layout. - *

    - * This method may be overridden to handle those edge groups separately. - *

    - * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY - * @protected - * @type {yfiles.algorithms.IDataAcceptor} - */ - sourceGroupDataAcceptor:yfiles.algorithms.IDataAcceptor; - /** - * Gets a {@link yfiles.algorithms.IDataAcceptor} that can be used for temporarily overwriting the target group information used - * during the layout. - *

    - * This method may be overridden to handle those edge groups separately. - *

    - * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - * @protected - * @type {yfiles.algorithms.IDataAcceptor} - */ - targetGroupDataAcceptor:yfiles.algorithms.IDataAcceptor; - /** - * Gets or sets the default {@link yfiles.tree.INodePlacer} instance that arranges all subtrees that do not have a specific {@link yfiles.tree.INodePlacer} - * assigned using a {@link yfiles.algorithms.IDataProvider}. - * @throws {Stubs.Exceptions.ArgumentError} if the default {@link yfiles.tree.INodePlacer} is set to null - * @see yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY - * @type {yfiles.tree.INodePlacer} - */ - defaultNodePlacer:yfiles.tree.INodePlacer; - /** - * Gets or sets the default {@link yfiles.tree.INodePlacer} instance that places the leaf nodes of the tree. - * @throws {Stubs.Exceptions.ArgumentError} if the default {@link yfiles.tree.INodePlacer} is set to null - * @see yfiles.tree.TreeLayout#defaultNodePlacer - * @type {yfiles.tree.INodePlacer} - */ - defaultLeafPlacer:yfiles.tree.INodePlacer; - /** - * Gets or sets the default {@link yfiles.tree.IPortAssignment} instance for all subtrees that do not have a specific {@link yfiles.tree.IPortAssignment} - * assigned using a {@link yfiles.algorithms.IDataProvider}. - * @throws {Stubs.Exceptions.ArgumentError} if the default {@link yfiles.tree.IPortAssignment} is set to null - * @see yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY - * @type {yfiles.tree.IPortAssignment} - */ - defaultPortAssignment:yfiles.tree.IPortAssignment; - /** - * Gets or sets the default {@link yfiles.collections.IComparer.} instance that sorts the outgoing edges in all subtrees that do not have a specific {@link yfiles.collections.IComparer.} assigned - * using a {@link yfiles.algorithms.IDataProvider}. - * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY - * @type {yfiles.collections.IComparer.} - */ - defaultOutEdgeComparer:yfiles.collections.IComparer; - /** - * Gets or sets whether or not the layout algorithm reserves space for node labels. - *

    - * If this feature is enabled, the {@link yfiles.tree.SubtreeShape} of the nodes will also hold the shapes of its labels. - *

    - * @type {boolean} - */ - considerNodeLabels:boolean; - /** - * Gets or sets whether or not edge labels are placed by the layout algorithm. - *

    - * If this is enabled, the {@link yfiles.tree.SubtreeShape}s of the subtrees are extended by the edge labels. - *

    - *

    - * The layout algorithm uses the information of {@link yfiles.layout.PreferredPlacementDescriptor} for an edge label to determine - * the corresponding placement. However, edge labels are always placed at the target side of the edge. The placement along - * the edge only affects the order of the edge labels at the same edge. - *

    - * @type {boolean} - */ - integratedEdgeLabeling:boolean; - /** - * Gets or sets whether or not multi-parent structures are allowed for this tree layout. - *

    - * If multi-parent structures are allowed, the directed input graph may contain structures of multiple nodes that share the - * same predecessors as well as the same successors. All nodes belonging to such a structure are placed side by side and - * the incident edges are routed in a bus-style manner. - *

    - * @type {boolean} - */ - multiParentAllowed:boolean; - static $class:yfiles.lang.Class; - } - /** - * The {@link yfiles.tree.TreeReductionStage} temporarily reduces general graphs to trees. - *

    - * Layout Style - *

    - *

    - * This stage prepares a non-tree graph such that it can be processed by a tree layout algorithm. - *

    - *

    - * {@graph {"ann":{"s":[30,30],"d":1},"n":[[150,0],[260,70],[210,70],[260,140],[310,210],[335,280],[75,70],[285,280],[25,70],[25,140],[75,140],[150,70],[25,210],[185,280],[175,140],[50,280],[0,280],[210,210],[235,280],[125,140]],"e":[[0,1,[165,50,275,50]],[0,2,[165,50,225,50]],[1,3],[3,4,[275,190,325,190]],[4,5,[325,260,350,260]],[0,6,[165,50,90,50]],[4,7,[325,260,300,260]],[0,8,[165,50,40,50]],[8,9],[6,10],[0,11],[9,12],[11,14,[165,120,190,120]],[12,15,[40,260,65,260]],[12,16,[40,260,15,260]],[3,17,[275,190,225,190]],[17,13,[225,260,200,260]],[17,18,[225,260,250,260]],[11,19,[165,120,140,120]],[2,11,1],[12,13,1],[17,14,1]],"vp":[0.0,0.0,365.0,310.0]}} - *

    - *

    - * The non-tree edges are marked - *

    - *

    - * Concept This {@link yfiles.layout.ILayoutStage} works in three steps: - *

    - *
      - *
    1. Remove some edges to get a tree or forest from the graph
    2. - *
    3. Invoke the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} which supports tree graph handling
    4. - *
    5. Reinsert all previously removed edges
    6. - *
    7. - * Optionally route these edges using the non-tree edge router and place their labels using the non-tree edge labeling - * algorithm. - *
    8. - *
    - *

    - * Features - *

    - *

    - * The routing of the temporarily hidden non-tree edges can be customized by specifying an {@link yfiles.tree.TreeReductionStage#nonTreeEdgeRouter edge routing algorithm} for those - * edges. Similarly, the placement of edge labels of non-tree edges can be delegated to a custom - * {@link yfiles.tree.TreeReductionStage#nonTreeEdgeLabelingAlgorithm edge labeling algorithm}. As default, both custom algorithms are not specified and, thus, non-tree edges are not routed - * and edge labels not placed. - *

    - *

    - * This stage is also able to handle multi-parent structures, i.e., structures of multiple nodes that share the same - * predecessors as well as the same successors. More precisely, if the specified {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} supports - * multi-parent structures (see {@link yfiles.tree.TreeLayout#multiParentAllowed}) and option {@link yfiles.tree.TreeReductionStage#multiParentAllowed} is enabled, this stage does not hide such structures, i.e., the multi-parent - * structures are passed to the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - *

    - *

    - * Non-tree edges can also be bundled together such that their common parts are to some degree merged into a bundled part. - * The edge bundling can be specified by means of method {@link yfiles.tree.TreeReductionStage#edgeBundling}. - *

    - * @class yfiles.tree.TreeReductionStage - * @extends {yfiles.layout.LayoutStageBase} - */ - export interface TreeReductionStage extends yfiles.layout.LayoutStageBase{} - export class TreeReductionStage { - /** - * Creates a new {@link yfiles.tree.TreeReductionStage} instance with the given core layout algorithm and default settings. - * @param {yfiles.layout.ILayoutAlgorithm} core the core layout algorithm - * @constructor - */ - constructor(core:yfiles.layout.ILayoutAlgorithm); - /** - * Creates a new {@link yfiles.tree.TreeReductionStage} instance with default settings. - * @constructor - */ - constructor(); - /** - * Creates a routing algorithm that routes edges as a single straight segment. - *

    - * The created instance can be used for {@link yfiles.tree.TreeReductionStage#nonTreeEdgeRouter routing non-tree edges}. - *

    - * @returns {yfiles.layout.ILayoutAlgorithm} an edge routing algorithm that produces straight-line edges - * @see yfiles.tree.TreeReductionStage#nonTreeEdgeRouter - */ - createStraightLineRouter():yfiles.layout.ILayoutAlgorithm; - /** - * Routes all edges that do not belong to the chosen spanning tree. - *

    - * This method is called by {@link yfiles.tree.TreeReductionStage#applyLayout} after the tree was arranged by the - * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. It may be overridden to apply custom edge routes. - *

    - * @param {yfiles.layout.LayoutGraph} graph the graph containing tree and non-tree edges - * @param {yfiles.algorithms.IEdgeMap} nonTreeEdgeMap the {@link yfiles.algorithms.IEdgeMap} that marks all non-tree edges in the graph - * @protected - */ - routeNonTreeEdges(graph:yfiles.layout.LayoutGraph,nonTreeEdgeMap:yfiles.algorithms.IEdgeMap):void; - /** - * Data provider key for explicitly marking (some) edges that should not be considered for the tree - * @see yfiles.tree.TreeReductionStage#nonTreeEdgeRouter - * @const - * @static - * @type {yfiles.algorithms.EdgeDpKey.} - */ - static NON_TREE_EDGES_DP_KEY:yfiles.algorithms.EdgeDpKey; - /** - * Gets or sets whether or not multi-parent structures (structures of multiple nodes that share the same predecessors as - * well as the same successors) are allowed. - *

    - * More precisely, if this option is enabled and the specified {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} can handle multi-parent structures - * (see {@link yfiles.tree.TreeLayout#multiParentAllowed}), this stage does not hide such structures, but the multi-parent structures are passed on to the {@link yfiles.layout.LayoutStageBase#coreLayout} core layout - * algorithm}. - *

    - * @type {boolean} - */ - multiParentAllowed:boolean; - /** - * Gets or sets the edge routing algorithm that is applied to all non-tree edges. - * @see yfiles.tree.TreeReductionStage#nonTreeEdgeSelectionKey - * @type {yfiles.layout.ILayoutAlgorithm} - */ - nonTreeEdgeRouter:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that will be used by the {@link yfiles.tree.TreeReductionStage#nonTreeEdgeRouter non-tree edge routing algorithm} - * to determine the edges that need to be routed. - * @see yfiles.tree.TreeReductionStage#nonTreeEdgeRouter - * @type {Object} - */ - nonTreeEdgeSelectionKey:Object; - /** - * Gets or sets the labeling algorithm that is applied to all edge labels that belong to non-tree edges. - *

    - * It is required that a suitable {@link yfiles.tree.TreeReductionStage#nonTreeEdgeLabelSelectionKey edge label selection key} is set. Otherwise, the edge labeling algorithm might also place - * labels of tree edges. - *

    - * @see yfiles.tree.TreeReductionStage#nonTreeEdgeLabelSelectionKey - * @type {yfiles.layout.ILayoutAlgorithm} - */ - nonTreeEdgeLabelingAlgorithm:yfiles.layout.ILayoutAlgorithm; - /** - * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that is used by the {@link yfiles.tree.TreeReductionStage#nonTreeEdgeLabelingAlgorithm non-tree edge labeling algorithm} - * to determine which edge labels it should place. - * @see yfiles.tree.TreeReductionStage#nonTreeEdgeLabelingAlgorithm - * @type {Object} - */ - nonTreeEdgeLabelSelectionKey:Object; - /** - * Gets the {@link yfiles.layout.EdgeBundling} instance that defines the settings of the edge bundling feature. - *

    - * The specified {@link yfiles.layout.EdgeBundling} defines global bundling properties. Settings for individual edges can be - * defined by assigning an {@link yfiles.layout.EdgeBundleDescriptor} to an edge using a {@link yfiles.algorithms.IDataProvider} registered - * with key {@link yfiles.layout.EdgeBundling#EDGE_BUNDLE_DESCRIPTOR_DP_KEY}. To enable bundling for all non-tree edges, set a {@link yfiles.layout.EdgeBundling#defaultBundleDescriptor default bundle descriptor} - * which has {@link yfiles.layout.EdgeBundleDescriptor#bundled bundling} enabled. - *

    - *

    - * If the graph contains self-loops that belong to the set of non-tree edges, the stage will invoke the router defined for - * the non-tree edges in order to route them. In the case where this is not desired, the user has to hide them from the - * stage and route them afterwards as desired. - *

    - * @type {yfiles.layout.EdgeBundling} - */ - edgeBundling:yfiles.layout.EdgeBundling; - static $class:yfiles.lang.Class; - } - /** - * Specifies custom data for the {@link yfiles.tree.AspectRatioTreeLayout}. - * @class yfiles.tree.AspectRatioTreeLayoutData - * @extends {yfiles.layout.LayoutData} - */ - export interface AspectRatioTreeLayoutData extends yfiles.layout.LayoutData{} - export class AspectRatioTreeLayoutData { - constructor(); - /** - * Gets or sets the mapping from nodes to the aspect ratio of their sub tree. - * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - subtreeAspectRatios:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes with sub trees to their placements. - * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY - * @see yfiles.tree.AspectRatioTreeLayout#getRootPlacement - * @type {yfiles.layout.ItemMapping.} - */ - rootPlacements:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes to the routing policies of their sub trees. - * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY - * @see yfiles.tree.AspectRatioTreeLayout#getSubtreeArrangement - * @type {yfiles.layout.ItemMapping.} - */ - subtreeRoutingPolicies:yfiles.layout.ItemMapping; - static $class:yfiles.lang.Class; - } - /** - * Specifies custom data for the {@link yfiles.tree.BalloonLayout}. - * @class yfiles.tree.BalloonLayoutData - * @extends {yfiles.layout.LayoutData} - */ - export interface BalloonLayoutData extends yfiles.layout.LayoutData{} - export class BalloonLayoutData { - constructor(); - /** - * Gets or sets the collection of nodes that should be arranged in an interleaved fashion. - * @see yfiles.tree.BalloonLayout#INTERLEAVED_NODES_DP_KEY - * @type {yfiles.layout.ItemCollection.} - */ - interleavedNodes:yfiles.layout.ItemCollection; - /** - * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. - * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - nodeHalos:yfiles.layout.ItemMapping; - /** - * Gets or sets the AbortHandler used during the layout. - * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY - * @type {yfiles.algorithms.AbortHandler} - */ - abortHandler:yfiles.algorithms.AbortHandler; - /** - * Gets or sets the mapping for marking the node that will be used as root node of the tree. - *

    - * The custom root node selection induced by this property is only considered if the {@link yfiles.tree.BalloonLayout#rootNodePolicy root node policy} is set to - * {@link yfiles.tree.RootNodePolicy#SELECTED_ROOT}. - *

    - * @see yfiles.tree.BalloonLayout#SELECTED_ROOT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - treeRoot:yfiles.layout.ItemMapping; - static $class:yfiles.lang.Class; - } - /** - * Specifies custom data for the {@link yfiles.tree.TreeLayout}. - * @class yfiles.tree.TreeLayoutData - * @extends {yfiles.layout.LayoutData} - */ - export interface TreeLayoutData extends yfiles.layout.LayoutData{} - export class TreeLayoutData { - constructor(); - /** - * Gets or sets the mapping from nodes to their {@link yfiles.tree.INodePlacer}. - * @see yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - nodePlacers:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes to their {@link yfiles.tree.IPortAssignment}. - * @see yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - portAssignments:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes to comparison functions used to sort the nodes' outgoing edges. - * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - outEdgeComparers:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. - * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - nodeHalos:yfiles.layout.ItemMapping; - /** - * Gets or sets a mapping from edges to their source {@link yfiles.layout.PortConstraint}. - * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - sourcePortConstraints:yfiles.layout.ItemMapping; - /** - * Gets or sets a mapping from edges to their target {@link yfiles.layout.PortConstraint}. - * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - targetPortConstraints:yfiles.layout.ItemMapping; - /** - * Gets or sets the collection of nodes the {@link yfiles.tree.AssistantNodePlacer} considers as assistants. - *

    - * This collection is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns any {@link yfiles.tree.AssistantNodePlacer} . - *

    - * @see yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY - * @type {yfiles.layout.ItemCollection.} - */ - assistantNodes:yfiles.layout.ItemCollection; - /** - * Gets or sets the collection of nodes the {@link yfiles.tree.DelegatingNodePlacer} places with its {@link yfiles.tree.DelegatingNodePlacer#primaryPlacer}. - *

    - * This collection is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns any {@link yfiles.tree.DelegatingNodePlacer} . - *

    - * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY - * @type {yfiles.layout.ItemCollection.} - */ - delegatingNodePlacersPrimaryNodes:yfiles.layout.ItemCollection; - /** - * Gets or sets a mapping from nodes to a boolean value that specifies whether a node should be placed left of the bus - * (true) or right of the bus (false). - *

    - * This mapping is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns a {@link yfiles.tree.LeftRightNodePlacer} . - *

    - * @see yfiles.tree.LeftRightNodePlacer#LEFT_RIGHT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - leftRightPlacersLeftNodes:yfiles.layout.ItemMapping; - /** - * Gets or sets the mapping from nodes to the index of the row the {@link yfiles.tree.GridNodePlacer} shall place the node in. - *

    - * This collection is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns any {@link yfiles.tree.GridNodePlacer} . - *

    - * @see yfiles.tree.GridNodePlacer#ROW_INDEX_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - gridNodePlacerRowIndices:yfiles.layout.ItemMapping; - /** - * Gets or sets the AbortHandler used during the layout. - * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY - * @type {yfiles.algorithms.AbortHandler} - */ - abortHandler:yfiles.algorithms.AbortHandler; - /** - * Gets or sets the mapping for marking the node that will be used as root node of the tree. - * @see yfiles.tree.TreeLayout#SELECTED_ROOT_DP_KEY - * @type {yfiles.layout.ItemMapping.} - */ - treeRoot:yfiles.layout.ItemMapping; - static $class:yfiles.lang.Class; - } - /** - * Specifies custom data for the {@link yfiles.tree.TreeReductionStage}. - * @class yfiles.tree.TreeReductionStageData - * @extends {yfiles.layout.LayoutData} - */ - export interface TreeReductionStageData extends yfiles.layout.LayoutData{} - export class TreeReductionStageData { - constructor(); - /** - * Gets or sets the collection of edges explicitly marked as not belonging to a tree. - * @see yfiles.tree.TreeReductionStage#NON_TREE_EDGES_DP_KEY - * @type {yfiles.layout.ItemCollection.} - */ - nonTreeEdges:yfiles.layout.ItemCollection; - /** - * Gets or sets the mapping of edges to their {@link yfiles.layout.EdgeBundleDescriptor}. - *

    - * Bundling together multiple edges means that their common parts are to some degree merged into a bundled part. At the - * source and target point, the edges are again clearly split. - *

    - *

    - * If an edge is mapped to null, the {@link yfiles.layout.EdgeBundling#defaultBundleDescriptor default descriptor} is used. - *

    - * @see yfiles.layout.EdgeBundleDescriptor - * @see yfiles.tree.TreeReductionStage#edgeBundling - * @type {yfiles.layout.ItemMapping.} - */ - edgeBundleDescriptors:yfiles.layout.ItemMapping; - static $class:yfiles.lang.Class; - } }export namespace hierarchic{ /** * This interface describes a layering constraint. @@ -100005,11 +93804,11 @@ declare namespace system{ * The minimum distance includes potentially empty layers that are removed by the {@link yfiles.hierarchic.ILayerer} instance. In * that case, the actual layer difference may be smaller than the minimum distance. *

    - * @param {Object} referenceId the ID of the reference node - * @param {Object} aboveId the ID of the node that should lie above - * @param {number} minDistance the minimum layer distance between the node and its reference node - * @param {number} [weight=0] the weight penalty for larger layer differences - * @returns {yfiles.hierarchic.ILayerConstraint} a {@link yfiles.hierarchic.ILayerConstraint} object that represents the constraint + * @param referenceId the ID of the reference node + * @param aboveId the ID of the node that should lie above + * @param minDistance the minimum layer distance between the node and its reference node + * @param [weight=0] the weight penalty for larger layer differences + * @returns a {@link } object that represents the constraint * @see yfiles.hierarchic.ILayerConstraint * @abstract */ @@ -100017,25 +93816,25 @@ declare namespace system{ /** * Adds a constraint that forces the {@link yfiles.algorithms.Node} with ID aboveId to lie above the {@link yfiles.algorithms.Node} with ID * referenceId. - * @param {Object} referenceId the ID of the reference node - * @param {Object} aboveId the ID of the node that should lie above - * @returns {yfiles.hierarchic.ILayerConstraint} a {@link yfiles.hierarchic.ILayerConstraint} object that represents the constraint + * @param referenceId the ID of the reference node + * @param aboveId the ID of the node that should lie above + * @returns a {@link } object that represents the constraint * @see yfiles.hierarchic.ILayerConstraint * @abstract */ addPlaceNodeAboveConstraint(referenceId:Object,aboveId:Object):yfiles.hierarchic.ILayerConstraint; /** * Adds a constraint that places a {@link yfiles.algorithms.Node} on the bottom layer. - * @param {Object} nodeId the ID of the node that should lie on the bottom layer - * @returns {yfiles.hierarchic.ILayerConstraint} a {@link yfiles.hierarchic.ILayerConstraint} object that represents the constraint + * @param nodeId the ID of the node that should lie on the bottom layer + * @returns a {@link } object that represents the constraint * @see yfiles.hierarchic.ILayerConstraint * @abstract */ addPlaceNodeAtBottomConstraint(nodeId:Object):yfiles.hierarchic.ILayerConstraint; /** * Adds a constraint that places a {@link yfiles.algorithms.Node} on the topmost layer. - * @param {Object} nodeId the ID of the node that should lie on the top layer - * @returns {yfiles.hierarchic.ILayerConstraint} a {@link yfiles.hierarchic.ILayerConstraint} object that represents the constraint + * @param nodeId the ID of the node that should lie on the top layer + * @returns a {@link } object that represents the constraint * @see yfiles.hierarchic.ILayerConstraint * @abstract */ @@ -100047,11 +93846,11 @@ declare namespace system{ * The minimum distance includes potentially empty layers that are removed by the {@link yfiles.hierarchic.ILayerer} instance. In * that case, the actual layer difference may be smaller than the minimum distance. *

    - * @param {Object} referenceId the ID of the reference node - * @param {Object} belowId the ID of the node that should lie below - * @param {number} minDistance the minimum layer distance between the node and its reference node - * @param {number} [weight=0] the weight penalty for larger layer differences - * @returns {yfiles.hierarchic.ILayerConstraint} a {@link yfiles.hierarchic.ILayerConstraint} object that represents the constraint + * @param referenceId the ID of the reference node + * @param belowId the ID of the node that should lie below + * @param minDistance the minimum layer distance between the node and its reference node + * @param [weight=0] the weight penalty for larger layer differences + * @returns a {@link } object that represents the constraint * @see yfiles.hierarchic.ILayerConstraint * @abstract */ @@ -100059,9 +93858,9 @@ declare namespace system{ /** * Adds a constraint that forces a {@link yfiles.algorithms.Node} with ID belowId to lie below the {@link yfiles.algorithms.Node} with ID * referenceId. - * @param {Object} referenceId the ID of the reference node - * @param {Object} belowId the ID of the node that should lie below - * @returns {yfiles.hierarchic.ILayerConstraint} a {@link yfiles.hierarchic.ILayerConstraint} object that represents the constraint + * @param referenceId the ID of the reference node + * @param belowId the ID of the node that should lie below + * @returns a {@link } object that represents the constraint * @see yfiles.hierarchic.ILayerConstraint * @abstract */ @@ -100069,9 +93868,9 @@ declare namespace system{ /** * Adds a constraint that forces the {@link yfiles.algorithms.Node} with ID sameLayerId to lie in the same layer as the {@link yfiles.algorithms.Node} * with ID referenceId. - * @param {Object} referenceId the ID of the reference node - * @param {Object} sameLayerId the ID of the node that should lie in the same layer - * @returns {yfiles.hierarchic.ILayerConstraint} a {@link yfiles.hierarchic.ILayerConstraint} object that represents the constraint + * @param referenceId the ID of the reference node + * @param sameLayerId the ID of the node that should lie in the same layer + * @returns a {@link } object that represents the constraint * @see yfiles.hierarchic.ILayerConstraint * @abstract */ @@ -100087,7 +93886,7 @@ declare namespace system{ dispose():void; /** * Clears all constraints for a given {@link yfiles.algorithms.Node}. - * @param {Object} nodeId the ID of the node for which all constraints should be cleared + * @param nodeId the ID of the node for which all constraints should be cleared * @see yfiles.hierarchic.ILayerConstraint * @abstract */ @@ -100125,28 +93924,28 @@ declare namespace system{ /** * Adds a constraint that forces the {@link yfiles.algorithms.Node} or {@link yfiles.algorithms.Edge} with id after to lie after the {@link yfiles.algorithms.Node} * or {@link yfiles.algorithms.Edge} with id reference. - * @param {Object} referenceId the ID of the reference node or edge - * @param {Object} afterId the ID of the node or edge that should be placed after the reference element + * @param referenceId the ID of the reference node or edge + * @param afterId the ID of the node or edge that should be placed after the reference element * @abstract */ addPlaceAfterConstraint(referenceId:Object,afterId:Object):void; /** * Adds a constraint that places a {@link yfiles.algorithms.Node} or {@link yfiles.algorithms.Edge} at the start of the sequence. - * @param {Object} id the ID of the node or edge that should be placed at the start + * @param id the ID of the node or edge that should be placed at the start * @abstract */ addPlaceAtHeadConstraint(id:Object):void; /** * Adds a constraint that places a {@link yfiles.algorithms.Node} or {@link yfiles.algorithms.Edge} at the end of the sequence. - * @param {Object} id the ID of the node or edge that should be placed at the end + * @param id the ID of the node or edge that should be placed at the end * @abstract */ addPlaceAtTailConstraint(id:Object):void; /** * Adds a constraint that forces the {@link yfiles.algorithms.Node} or {@link yfiles.algorithms.Edge} with id before to lie before the {@link yfiles.algorithms.Node} * or {@link yfiles.algorithms.Edge} with id reference. - * @param {Object} referenceId the ID of the reference node or edge - * @param {Object} beforeId the ID of the node or edge that should be placed before the reference element + * @param referenceId the ID of the reference node or edge + * @param beforeId the ID of the node or edge that should be placed before the reference element * @abstract */ addPlaceBeforeConstraint(referenceId:Object,beforeId:Object):void; @@ -100200,14 +93999,13 @@ declare namespace system{ *

    * Hierarchic layout when the initial drawing is not used as sketch *

    - * @class yfiles.hierarchic.AsIsLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface AsIsLayerer extends Object,yfiles.hierarchic.ILayerer{} export class AsIsLayerer { /** * Creates an instance of {@link yfiles.hierarchic.AsIsLayerer} with default settings. - * @constructor */ constructor(); /** @@ -100217,24 +94015,24 @@ declare namespace system{ * Nodes whose bounding boxes overlap in the main layout direction are assigned to the same layer. To influence to which * amount the boxes need to overlap, the nodes can temporarily be {@link yfiles.hierarchic.AsIsLayerer#nodeScalingFactor scaled}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for querying information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for querying information about the nodes and edges */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** * Callback used for calculating the lower (max) value of a given node. - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the lower (max) of a given node + * @param graph the graph + * @param node the node + * @returns the lower (max) of a given node * @protected */ getMax(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):number; /** * Callback used for calculating the upper (min) value of a given node. - * @param {yfiles.layout.LayoutGraph} graph the graph - * @param {yfiles.algorithms.Node} node the node - * @returns {number} the upper (min) value of a given node + * @param graph the graph + * @param node the node + * @returns the upper (min) value of a given node * @protected */ getMin(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):number; @@ -100312,14 +94110,13 @@ declare namespace system{ *

    * {@graph {"ann":{"s":[30,30],"d":1},"n":[[111.8,0,[[121.47,24.35,10.67,18.7,"1"]]],[0,36.33,[[9.66,60.68,10.67,18.7,"2"]]],[180.9,95.11,[[190.56,119.46,10.67,18.7,"3"]]],[0,153.88,[[9.66,178.23,10.67,18.7,"4"]]],[111.8,190.21,[[121.47,214.56,10.67,18.7,"5"]]]],"e":[[0,1],[0,3],[1,3],[0,2],[2,4],[4,3]],"vp":[0.0,0.0,211.0,221.0]}} Initial graph that will be used as sketch {@graph {"ann":{"s":[30,30],"d":1},"n":[[50,0,[[59.66,24.35,10.67,18.7,"1"]]],[20,60,[[29.66,84.35,10.67,18.7,"2"]]],[80,100,[[89.66,124.35,10.67,18.7,"3"]]],[42.5,145,[[52.16,169.35,10.67,18.7,"4"]]],[72.5,205,[[82.16,229.35,10.67,18.7,"5"]]]],"e":[[0,1,-10,15,0,-15,[55,45,35,45]],[0,3,0,15,7.5,-15],[1,3,0,15,-7.5,-15,[35,130,50,130]],[0,2,10,15,0,-15,[75,45,95,45]],[2,4,0,15,7.5,-15],[4,3,-7.5,-15,0,15,[80,190,57.5,190]]],"vp":[20.0,0.0,90.0,235.0]}} Hierarchic layout when the initial graph is used as sketch *

    - * @class yfiles.hierarchic.AsIsSequencer + * @class * @implements {yfiles.hierarchic.ISequencer} */ export interface AsIsSequencer extends Object,yfiles.hierarchic.ISequencer{} export class AsIsSequencer { /** * Creates a new {@link yfiles.hierarchic.AsIsSequencer} instance. - * @constructor */ constructor(); /** @@ -100328,10 +94125,10 @@ declare namespace system{ * This method is called by {@link yfiles.hierarchic.HierarchicLayoutCore} and finally writes back the calculated sequence using * method {@link yfiles.hierarchic.ILayer#setNodeOrder}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance that defines the layering structure - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the nodes and edges of the graph - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} used for creating and destroying helper structures + * @param graph the input graph + * @param layers the given {@link } instance that defines the layering structure + * @param ldp the {@link } containing information about the nodes and edges of the graph + * @param itemFactory the {@link } used for creating and destroying helper structures */ sequenceNodeLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider,itemFactory:yfiles.hierarchic.IItemFactory):void; static $class:yfiles.lang.Class; @@ -100350,7 +94147,7 @@ declare namespace system{ *

    * @see yfiles.hierarchic.AspectRatioComponentLayerer#desiredAspectRatio * @see yfiles.hierarchic.MultiComponentLayerer - * @class yfiles.hierarchic.AspectRatioComponentLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface AspectRatioComponentLayerer extends Object,yfiles.hierarchic.ILayerer{} @@ -100358,9 +94155,8 @@ declare namespace system{ /** * Creates a new instance of {@link yfiles.hierarchic.AspectRatioComponentLayerer} using the given delegate {@link yfiles.hierarchic.ILayerer} * instance. - * @param {yfiles.hierarchic.ILayerer} singleComponentLayerer + * @param singleComponentLayerer * @throws {Stubs.Exceptions.ArgumentError} if the specified {@link yfiles.hierarchic.ILayerer} is null - * @constructor */ constructor(singleComponentLayerer:yfiles.hierarchic.ILayerer); /** @@ -100371,9 +94167,9 @@ declare namespace system{ * separately using the delegate {@link yfiles.hierarchic.ILayerer} instance. After that, they will all be merged such that the * desired aspect ratio is best fulfilled. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for query information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for query information about the nodes and edges */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** @@ -100418,25 +94214,24 @@ declare namespace system{ *

    * {@graph {"ann":{"s":[30,30],"d":1},"n":[[46.17,0,[[55.83,24.35,10.67,18.7,"1"]]],[100,70,[[109.66,94.35,10.67,18.7,"2"]]],[0,70,[[9.66,94.35,10.67,18.7,"3"]]],[211.77,0,[[221.43,24.35,10.67,18.7,"6"]]],[211.77,70,[[221.43,94.35,10.67,18.7,"7"]]],[100,0,[[109.66,24.35,10.67,18.7,"8"]]],[50,70,[[56.33,94.35,17.35,18.7,"12"]]],[3.17,140,[[12.83,164.35,10.67,18.7,"8"]]],[113.17,140,[[122.83,164.35,10.67,18.7,"9"]]]],"e":[[5,1,0,15,7.5,-15,[115,50,122.5,50]],[0,1,10,15,-7.5,-15,[71.17,50,107.5,50]],[0,2,-10,15,0,-15,[51.17,50,15,50]],[4,1,-15,0,15,0],[3,4,0,15,0,-15],[0,6,-0,15,0,-15,[61.17,50,65,50]],[6,7,-7.5,15,7.5,-15,[57.5,120,25.67,120]],[6,8,7.5,15,0,-15,[72.5,120,128.17,120]],[8,7,-15,0,15,0],[2,7,0,15,-7.5,-15,[15,120,10.67,120]]],"vp":[0.0,0.0,242.0,170.0]}} *

    - * @class yfiles.hierarchic.BFSLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface BFSLayerer extends Object,yfiles.hierarchic.ILayerer{} export class BFSLayerer { /** * Creates an instance of {@link yfiles.hierarchic.BFSLayerer}. - * @constructor */ constructor(); /** * Assigns all nodes of the graph to layers and adds them to the {@link yfiles.hierarchic.ILayers} instance. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for query information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for query information about the nodes and edges */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** - * Data provider key for identifying the core nodes of the BFS layering. + * Data provider key for identifying the core nodes of the BFS layering *

    * The {@link yfiles.algorithms.IDataProvider} registered with this key should provide boolean values for the nodes of the graph. * The boolean value determines whether or not a node is to be placed in the first layer. If there are no nodes marked as @@ -100470,23 +94265,22 @@ declare namespace system{ *

    * @see yfiles.hierarchic.ILayerConstraintFactory * @see yfiles.hierarchic.HierarchicLayout - * @class yfiles.hierarchic.ConstraintIncrementalLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface ConstraintIncrementalLayerer extends Object,yfiles.hierarchic.ILayerer{} export class ConstraintIncrementalLayerer { /** * Creates a new {@link yfiles.hierarchic.ConstraintIncrementalLayerer} with the given {@link yfiles.hierarchic.ILayerer} instance. - * @param {yfiles.hierarchic.ILayerer} coreLayerer the given {@link yfiles.hierarchic.ILayerer} instance - * @constructor + * @param coreLayerer the given {@link } instance */ constructor(coreLayerer:yfiles.hierarchic.ILayerer); /** * Assigns all nodes of the graph to layers and adds them to the {@link yfiles.hierarchic.ILayers} instance based on relative and * absolute layering constraints defined by the given layering constraints. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for query information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for query information about the nodes and edges */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** @@ -100522,40 +94316,39 @@ declare namespace system{ /** * This class is a default {@link yfiles.hierarchic.IDrawingDistanceCalculator} implementation that is used by {@link yfiles.hierarchic.HierarchicLayoutCore} * to configure the {@link yfiles.hierarchic.INodePlacer}. - * @class yfiles.hierarchic.DefaultDrawingDistanceCalculator + * @class * @implements {yfiles.hierarchic.IDrawingDistanceCalculator} */ export interface DefaultDrawingDistanceCalculator extends Object,yfiles.hierarchic.IDrawingDistanceCalculator{} export class DefaultDrawingDistanceCalculator { /** * Creates a new instance of {@link yfiles.hierarchic.DefaultDrawingDistanceCalculator} with default settings. - * @constructor */ constructor(); /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayers} layers - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp + * @param graph + * @param layers + * @param ldp */ dispose(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** * Determines the minimum distance between two {@link yfiles.algorithms.Node}s of the same layer. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayer} layer the {@link yfiles.hierarchic.ILayer} object that will be used during subsequent calls - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for querying information - * @param {yfiles.algorithms.Node} left the left of the two {@link yfiles.algorithms.Node}s whose minimum distance is to be determined or null if only the left border - * of the right {@link yfiles.algorithms.Node} is of interest - * @param {yfiles.algorithms.Node} right the right of the two {@link yfiles.algorithms.Node}s whose minimum distance is to be determined or null if only the right border - * of the left {@link yfiles.algorithms.Node} is of interest - * @returns {number} the minimum distances between {@link yfiles.algorithms.Node}s of same layer + * @param graph the input graph + * @param layer the {@link } object that will be used during subsequent calls + * @param ldp the {@link } used for querying information + * @param left the left of the two {@link }s whose minimum distance is to be determined or null if only the left border + * of the right {@link } is of interest + * @param right the right of the two {@link }s whose minimum distance is to be determined or null if only the right border + * of the left {@link } is of interest + * @returns the minimum distances between {@link }s of same layer */ getMinDistance(graph:yfiles.layout.LayoutGraph,layer:yfiles.hierarchic.ILayer,ldp:yfiles.hierarchic.ILayoutDataProvider,left:yfiles.algorithms.Node,right:yfiles.algorithms.Node):number; /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayers} layers - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp + * @param graph + * @param layers + * @param ldp */ initialize(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** @@ -100615,22 +94408,21 @@ declare namespace system{ *

    * It minimizes the crossings in the diagram by using either the barycentric or median heuristic. *

    - * @class yfiles.hierarchic.DefaultLayerSequencer + * @class * @implements {yfiles.hierarchic.ISequencer} */ export interface DefaultLayerSequencer extends Object,yfiles.hierarchic.ISequencer{} export class DefaultLayerSequencer { /** * Creates a new instance of {@link yfiles.hierarchic.DefaultLayerSequencer}. - * @constructor */ constructor(); /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayers} glayers - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp - * @param {yfiles.hierarchic.IItemFactory} itemFactory + * @param graph + * @param glayers + * @param ldp + * @param itemFactory */ sequenceNodeLayers(graph:yfiles.layout.LayoutGraph,glayers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider,itemFactory:yfiles.hierarchic.IItemFactory):void; /** @@ -100684,29 +94476,27 @@ declare namespace system{ * Instances of this class are used internally by {@link yfiles.hierarchic.HierarchicLayoutCore} and {@link yfiles.hierarchic.MultiComponentLayerer} * when e.g. the graph is grouped or it consists of more than one connected component. *

    - * @class yfiles.hierarchic.DefaultLayeredComponentsMerger + * @class * @implements {yfiles.hierarchic.ILayeredComponentsMerger} */ export interface DefaultLayeredComponentsMerger extends Object,yfiles.hierarchic.ILayeredComponentsMerger{} export class DefaultLayeredComponentsMerger { /** * Creates a new instance of {@link yfiles.hierarchic.DefaultLayeredComponentsMerger} using the given merging policy. - * @param {yfiles.hierarchic.MergingPolicy} policy one of the predefined merging constants + * @param policy one of the predefined merging constants * @throws {Stubs.Exceptions.ArgumentError} if an unknown policy is given - * @constructor */ constructor(policy:yfiles.hierarchic.MergingPolicy); /** * Creates a new instance of {@link yfiles.hierarchic.DefaultLayeredComponentsMerger} with default settings. - * @constructor */ constructor(); /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp - * @param {yfiles.hierarchic.ILayers} srcLayers - * @param {yfiles.hierarchic.ILayers} targetLayers + * @param graph + * @param ldp + * @param srcLayers + * @param targetLayers */ merge(graph:yfiles.layout.LayoutGraph,ldp:yfiles.hierarchic.ILayoutDataProvider,srcLayers:yfiles.hierarchic.ILayers,targetLayers:yfiles.hierarchic.ILayers):void; /** @@ -100722,7 +94512,7 @@ declare namespace system{ *

    * It is used by {@link yfiles.hierarchic.HierarchicLayoutCore} after the sequencing phase. *

    - * @class yfiles.hierarchic.DefaultPortAllocator + * @class * @implements {yfiles.hierarchic.IPortAllocator} */ export interface DefaultPortAllocator extends Object,yfiles.hierarchic.IPortAllocator{} @@ -100730,7 +94520,6 @@ declare namespace system{ /** * Creates a new instance of {@link yfiles.hierarchic.DefaultPortAllocator} with default settings. * @see yfiles.hierarchic.DefaultPortAllocator#defaultPortBorderGapRatio - * @constructor */ constructor(); /** @@ -100745,10 +94534,10 @@ declare namespace system{ *

    * This method is called by {@link yfiles.hierarchic.HierarchicLayoutCore} after the sequencing phase. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance containing the layering structure - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the nodes and edges of the graph - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} used for creating and destroying helper structures + * @param graph the input graph + * @param layers the given {@link } instance containing the layering structure + * @param ldp the {@link } containing information about the nodes and edges of the graph + * @param itemFactory the {@link } used for creating and destroying helper structures */ assignPorts(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider,itemFactory:yfiles.hierarchic.IItemFactory):void; /** @@ -100756,13 +94545,13 @@ declare namespace system{ *

    * It may be overridden for a custom calculation of port border gap on a given node. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the nodes and edges of the graph - * @param {yfiles.algorithms.Node} node the given node - * @param {number} sideIndex the zero-based (top is 0) clock-wise index of the side of the node (for top-to-bottom layouts) - * @param {number} sideLength the width/height of the side - * @param {number} edgeCount the number of edges/ports that connect to this side - * @returns {number} the absolute gap on both sides of the ports + * @param graph the input graph + * @param ldp the {@link } containing information about the nodes and edges of the graph + * @param node the given node + * @param sideIndex the zero-based (top is 0) clock-wise index of the side of the node (for top-to-bottom layouts) + * @param sideLength the width/height of the side + * @param edgeCount the number of edges/ports that connect to this side + * @returns the absolute gap on both sides of the ports * @see yfiles.hierarchic.DefaultPortAllocator#getPortDistanceDelta * @protected */ @@ -100775,13 +94564,13 @@ declare namespace system{ *

    * It may be overridden for a custom calculation of port border gap ratio on a given node. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the nodes and edges of the graph - * @param {yfiles.algorithms.Node} node the given node - * @param {number} sideIndex the zero-based (top is 0) clock-wise index of the side of the node (for top-to-bottom layouts) - * @param {number} sideLength the width/height of the side - * @param {number} edgeCount the number of edges/ports that connect to this side - * @returns {number} the border gap ratio + * @param graph the input graph + * @param ldp the {@link } containing information about the nodes and edges of the graph + * @param node the given node + * @param sideIndex the zero-based (top is 0) clock-wise index of the side of the node (for top-to-bottom layouts) + * @param sideLength the width/height of the side + * @param edgeCount the number of edges/ports that connect to this side + * @returns the border gap ratio * @protected */ getPortBorderGapRatio(graph:yfiles.layout.LayoutGraph,ldp:yfiles.hierarchic.ILayoutDataProvider,node:yfiles.algorithms.Node,sideIndex:number,sideLength:number,edgeCount:number):number; @@ -100790,14 +94579,14 @@ declare namespace system{ *

    * It may be overridden for a custom calculation of the distance between two adjacent ports.. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the nodes and edges of the graph - * @param {yfiles.algorithms.Node} node the given node - * @param {number} sideIndex the zero-based (top is 0) clock-wise index of the side of the node (for top-to-bottom layouts) - * @param {number} sideLength the width/height of the side - * @param {number} edgeCount the number of edges/ports that connect to this side - * @param {number} portBorderGap the previously calculated port border gap - * @returns {number} the absolute distance between two adjacent ports + * @param graph the input graph + * @param ldp the {@link } containing information about the nodes and edges of the graph + * @param node the given node + * @param sideIndex the zero-based (top is 0) clock-wise index of the side of the node (for top-to-bottom layouts) + * @param sideLength the width/height of the side + * @param edgeCount the number of edges/ports that connect to this side + * @param portBorderGap the previously calculated port border gap + * @returns the absolute distance between two adjacent ports * @protected */ getPortDistanceDelta(graph:yfiles.layout.LayoutGraph,ldp:yfiles.hierarchic.ILayoutDataProvider,node:yfiles.algorithms.Node,sideIndex:number,sideLength:number,edgeCount:number,portBorderGap:number):number; @@ -100839,18 +94628,17 @@ declare namespace system{ *

    * @see yfiles.hierarchic.HierarchicLayoutCore#EDGE_LAYOUT_DESCRIPTOR_DP_KEY * @see yfiles.hierarchic.NodeLayoutDescriptor - * @class yfiles.hierarchic.EdgeLayoutDescriptor + * @class */ export interface EdgeLayoutDescriptor extends Object{} export class EdgeLayoutDescriptor { /** * Creates a new instance of an {@link yfiles.hierarchic.EdgeLayoutDescriptor} with the default values. - * @constructor */ constructor(); /** * Creates a copy of this {@link yfiles.hierarchic.EdgeLayoutDescriptor} instance. - * @returns {yfiles.hierarchic.EdgeLayoutDescriptor} a copy of this {@link yfiles.hierarchic.EdgeLayoutDescriptor} instance + * @returns a copy of this {@link } instance */ createCopy():yfiles.hierarchic.EdgeLayoutDescriptor; /** @@ -101544,35 +95332,34 @@ declare namespace system{ * graph. Nodes with the same ID are in the same layer while the layers are sorted according to their IDs such that the * smallest ID represents the top layer. *

    - * @class yfiles.hierarchic.GivenLayersLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface GivenLayersLayerer extends Object,yfiles.hierarchic.ILayerer{} export class GivenLayersLayerer { /** * Creates an instance of {@link yfiles.hierarchic.GivenLayersLayerer}. - * @constructor */ constructor(); /** * Assigns all nodes of the graph to layers and adds them to the {@link yfiles.hierarchic.ILayers} instance. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for querying information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for querying information about the nodes and edges */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** * Convenience method that removes empty layers and ensures that the smallest layer has value 0. - * @param {yfiles.algorithms.Graph} graph the graph - * @param {yfiles.algorithms.IDataProvider} layerId the {@link yfiles.algorithms.IDataProvider} that returns an integer value (layer) for each node; the first layer has the number + * @param graph the graph + * @param layerId the {@link } that returns an integer value (layer) for each node; the first layer has the number * 0 - * @param {yfiles.algorithms.IDataAcceptor} normalizedLayerId the {@link yfiles.algorithms.IDataAcceptor} that will be filled by the layout algorithm and holds an integer value (layer ID + * @param normalizedLayerId the {@link } that will be filled by the layout algorithm and holds an integer value (layer ID * after normalization) for each node - * @returns {number} the number of layers after the removal of empty layers + * @returns the number of layers after the removal of empty layers */ normalize(graph:yfiles.algorithms.Graph,layerId:yfiles.algorithms.IDataProvider,normalizedLayerId:yfiles.algorithms.IDataAcceptor):number; /** - * Data provider key for storing the layer IDs. + * Data provider key for storing the layer IDs *

    * This {@link yfiles.algorithms.IDataProvider} stores for each node the layer ID to which it belongs. Nodes with the same ID are * in the same layer while the layers are sorted according to their IDs such that the smallest ID represents the top @@ -101588,15 +95375,14 @@ declare namespace system{ /** * This class is a {@link yfiles.hierarchic.ISequencer} implementation that determines the sequence of nodes of the same {@link yfiles.hierarchic.ILayer layer} * based on a given {@link yfiles.collections.IComparer. comparator} constraint. - * @class yfiles.hierarchic.GivenSequenceSequencer + * @class * @implements {yfiles.hierarchic.ISequencer} */ export interface GivenSequenceSequencer extends Object,yfiles.hierarchic.ISequencer{} export class GivenSequenceSequencer { /** * Creates a new instance of {@link yfiles.hierarchic.GivenSequenceSequencer} using a given {@link yfiles.collections.IComparer.} for the sequencing. - * @param {yfiles.collections.IComparer.} [c=null] - * @constructor + * @param [c=null] */ constructor(c?:yfiles.collections.IComparer); /** @@ -101605,10 +95391,10 @@ declare namespace system{ * This method is called by {@link yfiles.hierarchic.HierarchicLayoutCore} during the sequencing phase and finally writes back the * calculated sequence using the {@link yfiles.hierarchic.ILayer#setNodeOrder} method. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance containing the elements of the layers - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the nodes and edges of the graph - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} used for creating and destroying helper structures + * @param graph the input graph + * @param layers the given {@link } instance containing the elements of the layers + * @param ldp the {@link } containing information about the nodes and edges of the graph + * @param itemFactory the {@link } used for creating and destroying helper structures */ sequenceNodeLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider,itemFactory:yfiles.hierarchic.IItemFactory):void; /** @@ -101625,8 +95411,8 @@ declare namespace system{ export interface IVisitor extends Object{ /** * Visits the descendants of a group node. - * @param {yfiles.algorithms.Node} node A descandant of the group node. - * @param {yfiles.algorithms.Node} parentNode A group node. + * @param node A descandant of the group node. + * @param parentNode A group node. * @abstract */ visit(node:yfiles.algorithms.Node,parentNode:yfiles.algorithms.Node):void; @@ -101644,21 +95430,21 @@ declare namespace system{ *

    * @see yfiles.layout.GroupingSupport * @see yfiles.layout.GroupingKeys - * @class yfiles.hierarchic.GroupingSupport + * @class */ export interface GroupingSupport extends Object{} export class GroupingSupport { /** * Assigns edge group nodes to groups based on a given {@link yfiles.hierarchic.ILayers} instance. - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance containing the elements in the layering + * @param layers the given {@link } instance containing the elements in the layering * @see yfiles.hierarchic.NodeDataType#SOURCE_GROUP_NODE * @see yfiles.hierarchic.NodeDataType#TARGET_GROUP_NODE */ assignEdgeGroupNodesToGroups(layers:yfiles.hierarchic.ILayers):void; /** * Assigns label nodes to groups. - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance containing the elements in the layering - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} used temporarily for modifying the graph instance + * @param layers the given {@link } instance containing the elements in the layering + * @param itemFactory the {@link } used temporarily for modifying the graph instance * @see yfiles.hierarchic.NodeDataType#LABEL * @see yfiles.hierarchic.NodeDataType#BEND * @see yfiles.hierarchic.NodeDataType#GROUP_BEGIN @@ -101667,8 +95453,8 @@ declare namespace system{ assignLabelNodesToGroups(layers:yfiles.hierarchic.ILayers,itemFactory:yfiles.hierarchic.IItemFactory):void; /** * Returns the direct children of the given group node. - * @param {yfiles.algorithms.Node} groupNode the given group node - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} of all direct children or null if {@link yfiles.hierarchic.GroupingSupport} {@link yfiles.hierarchic.GroupingSupport#active is not active} + * @param groupNode the given group node + * @returns a {@link } of all direct children or null if {@link } {@link #active is not active} */ getChildren(groupNode:yfiles.algorithms.Node):yfiles.algorithms.NodeList; /** @@ -101676,15 +95462,15 @@ declare namespace system{ *

    * The descendants are all direct or indirect children of a group node. *

    - * @param {yfiles.algorithms.Node} groupNode the given group node - * @returns {yfiles.algorithms.NodeList} a {@link yfiles.algorithms.NodeList} of all descendants or null if {@link yfiles.hierarchic.GroupingSupport} {@link yfiles.hierarchic.GroupingSupport#active is not active} + * @param groupNode the given group node + * @returns a {@link } of all descendants or null if {@link } {@link #active is not active} */ getDescendants(groupNode:yfiles.algorithms.Node):yfiles.algorithms.NodeList; /** * Returns the parent group node of the given {@link yfiles.algorithms.Node} or null if the given node is a top-level node. - * @param {yfiles.algorithms.Node} node the given {@link yfiles.algorithms.Node} - * @returns {yfiles.algorithms.Node} the parent group node or null if the given node is a top-level node or if {@link yfiles.hierarchic.GroupingSupport} - * {@link yfiles.hierarchic.GroupingSupport#active is not active} + * @param node the given {@link } + * @returns the parent group node or null if the given node is a top-level node or if {@link } + * {@link #active is not active} */ getParentNode(node:yfiles.algorithms.Node):yfiles.algorithms.Node; /** @@ -101696,20 +95482,20 @@ declare namespace system{ *

    * The descendants are all direct or indirect children of a group node. *

    - * @param {yfiles.algorithms.Node} node the given node - * @param {yfiles.algorithms.Node} groupNode the given group node - * @returns {boolean} true if the given node is a descendant of the given group node, false otherwise + * @param node the given node + * @param groupNode the given group node + * @returns true if the given node is a descendant of the given group node, false otherwise */ isDescendant(node:yfiles.algorithms.Node,groupNode:yfiles.algorithms.Node):boolean; /** * Returns whether or not the given {@link yfiles.algorithms.Node} is a non-empty group node. - * @param {yfiles.algorithms.Node} node the given {@link yfiles.algorithms.Node} - * @returns {boolean} true if the given node is a non-empty group node, false otherwise + * @param node the given {@link } + * @returns true if the given node is a non-empty group node, false otherwise */ isGroupNode(node:yfiles.algorithms.Node):boolean; /** * Removes the current assignment of source/target edge groups from a given {@link yfiles.hierarchic.ILayers} instance. - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance containing the elements in the layering + * @param layers the given {@link } instance containing the elements in the layering * @see yfiles.hierarchic.NodeDataType#SOURCE_GROUP_NODE * @see yfiles.hierarchic.NodeDataType#TARGET_GROUP_NODE */ @@ -101723,8 +95509,8 @@ declare namespace system{ *

    * The descendants are all direct or indirect children of a group node. *

    - * @param {yfiles.algorithms.Node} groupNode the given group node - * @param {yfiles.hierarchic.IVisitor} visitor a {@link yfiles.hierarchic.IVisitor} implementation + * @param groupNode the given group node + * @param visitor a {@link } implementation */ visitDescendants(groupNode:yfiles.algorithms.Node,visitor:yfiles.hierarchic.IVisitor):void; /** @@ -101804,14 +95590,13 @@ declare namespace system{ * {@link yfiles.hierarchic.RecursiveEdgeStyle#DIRECTED} or {@link yfiles.hierarchic.RecursiveEdgeStyle#UNDIRECTED} will not be grouped. * They are also not grouped when enabling {@link yfiles.hierarchic.HierarchicLayout#automaticEdgeGrouping automatic edge grouping}. *

    - * @class yfiles.hierarchic.HierarchicLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface HierarchicLayout extends yfiles.layout.MultiStageLayout{} export class HierarchicLayout { /** * Creates a new {@link yfiles.hierarchic.HierarchicLayout} instance with the default settings. - * @constructor */ constructor(); /** @@ -101824,8 +95609,8 @@ declare namespace system{ * This implementation will temporarily set a {@link yfiles.hierarchic.PortCandidateOptimizer} if a {@link yfiles.algorithms.IDataProvider} * is registered with {@link yfiles.layout.PortCandidateSet#NODE_PORT_CANDIDATE_SET_DP_KEY} and no {@link yfiles.hierarchic.HierarchicLayoutCore#portConstraintOptimizer} is assigned. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.HierarchicLayoutCore} coreLayouter the given core layout algorithm instance + * @param graph the input graph + * @param coreLayouter the given core layout algorithm instance * @protected */ configureCoreLayout(graph:yfiles.layout.LayoutGraph,coreLayouter:yfiles.hierarchic.HierarchicLayoutCore):void; @@ -101836,7 +95621,7 @@ declare namespace system{ * This method may be overridden to create a new {@link yfiles.hierarchic.EdgeLayoutDescriptor} instance with different * configuration settings. *

    - * @returns {yfiles.hierarchic.EdgeLayoutDescriptor} a new {@link yfiles.hierarchic.EdgeLayoutDescriptor} instance + * @returns a new {@link } instance * @protected */ createEdgeLayoutDescriptor():yfiles.hierarchic.EdgeLayoutDescriptor; @@ -101849,7 +95634,7 @@ declare namespace system{ *

    * This factory method provides the initial {@link yfiles.hierarchic.HierarchicLayoutCore} instance. *

    - * @returns {yfiles.hierarchic.HierarchicLayoutCore} a new {@link yfiles.hierarchic.HierarchicLayoutCore} instance + * @returns a new {@link } instance * @protected */ createHierarchicLayoutCore():yfiles.hierarchic.HierarchicLayoutCore; @@ -101860,7 +95645,7 @@ declare namespace system{ * Use this factory and a {@link yfiles.algorithms.IDataProvider} that is registered to the graph using the {@link yfiles.hierarchic.HierarchicLayout#INCREMENTAL_HINTS_DP_KEY} * key to associate appropriate hints with the graph elements that should be laid out incrementally by the algorithm. *

    - * @returns {yfiles.hierarchic.IIncrementalHintsFactory} a new {@link yfiles.hierarchic.IIncrementalHintsFactory} instance + * @returns a new {@link } instance * @see yfiles.hierarchic.HierarchicLayoutCore#createIncrementalHintsFactory * @see yfiles.hierarchic.HierarchicLayout#INCREMENTAL_HINTS_DP_KEY * @see yfiles.algorithms.Graph#addDataProvider @@ -101870,8 +95655,8 @@ declare namespace system{ createIncrementalHintsFactory():yfiles.hierarchic.IIncrementalHintsFactory; /** * Creates and registers an incremental layer constraint factory for an {@link yfiles.graph.IGraph}. - * @param {yfiles.graph.IGraph} graph The graph for which the factory is created - * @returns {yfiles.hierarchic.ILayerConstraintFactory} the sequence constraint factory + * @param graph The graph for which the factory is created + * @returns the sequence constraint factory */ createLayerConstraintFactory(graph:yfiles.graph.IGraph):yfiles.hierarchic.ILayerConstraintFactory; /** @@ -101887,8 +95672,8 @@ declare namespace system{ * you must bind the returned instance to the graph, see {@link yfiles.hierarchic.HierarchicLayout#LAYER_CONSTRAINTS_MEMENTO_DP_KEY} * and {@link yfiles.hierarchic.ILayerConstraintFactory#memento}. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {yfiles.hierarchic.ILayerConstraintFactory} a new {@link yfiles.hierarchic.ILayerConstraintFactory} instance + * @param graph the input graph + * @returns a new {@link } instance */ createLayerConstraintFactory(graph:yfiles.algorithms.Graph):yfiles.hierarchic.ILayerConstraintFactory; /** @@ -101898,14 +95683,14 @@ declare namespace system{ * This method may be overridden to create a new {@link yfiles.hierarchic.NodeLayoutDescriptor} instance with different * configuration settings. *

    - * @returns {yfiles.hierarchic.NodeLayoutDescriptor} a new {@link yfiles.hierarchic.NodeLayoutDescriptor} instance + * @returns a new {@link } instance * @protected */ createNodeLayoutDescriptor():yfiles.hierarchic.NodeLayoutDescriptor; /** * Creates and registers a sequencer constraint factory for an {@link yfiles.graph.IGraph}. - * @param {yfiles.graph.IGraph} graph The graph. - * @returns {yfiles.hierarchic.ISequenceConstraintFactory} the sequence constraint factory + * @param graph The graph. + * @returns the sequence constraint factory */ createSequenceConstraintFactory(graph:yfiles.graph.IGraph):yfiles.hierarchic.ISequenceConstraintFactory; /** @@ -101916,8 +95701,8 @@ declare namespace system{ * order (sequence) has to support constraints. Both, {@link yfiles.hierarchic.DefaultLayerSequencer DefaultLayerSequencer} and the incremental sequencer used internally support * sequence constraints. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.hierarchic.ISequenceConstraintFactory} a {@link yfiles.hierarchic.ISequenceConstraintFactory} instance + * @param graph the input graph + * @returns a {@link } instance * @see yfiles.hierarchic.HierarchicLayout#fromScratchSequencer * @see yfiles.hierarchic.HierarchicLayout#fixedElementsSequencer */ @@ -101933,8 +95718,8 @@ declare namespace system{ * This implementation will remove the {@link yfiles.hierarchic.PortCandidateOptimizer} that was created in case a {@link yfiles.algorithms.IDataProvider} * is registered with {@link yfiles.layout.PortCandidateSet#NODE_PORT_CANDIDATE_SET_DP_KEY} and no {@link yfiles.hierarchic.HierarchicLayoutCore#portConstraintOptimizer} was initially assigned. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.HierarchicLayoutCore} coreLayouter the given core layout algorithm instance + * @param graph the input graph + * @param coreLayouter the given core layout algorithm instance * @protected */ disposeCoreLayout(graph:yfiles.layout.LayoutGraph,coreLayouter:yfiles.hierarchic.HierarchicLayoutCore):void; @@ -101943,12 +95728,12 @@ declare namespace system{ *

    * It may be overridden in order to configure a different mirror mask. *

    - * @returns {yfiles.layout.MirrorModes} the mirror mask + * @returns the mirror mask * @protected */ getMirrorMode():yfiles.layout.MirrorModes; /** - * Data provider key for specifying the directedness of edges. + * Data provider key for specifying the directedness of edges *

    * Generally, the hierarchic layout algorithm assigns nodes to layers such that most of the edges point in the * {@link yfiles.layout.MultiStageLayout#layoutOrientation main layout direction}. The directedness of an edge specifies whether it should comply with this strategy. More @@ -101963,7 +95748,7 @@ declare namespace system{ */ static EDGE_DIRECTEDNESS_DP_KEY:yfiles.algorithms.EdgeDpKey; /** - * Data provider key for defining the priority of critical edges. + * Data provider key for defining the priority of critical edges *

    * Critical edges highlight different edge paths that are relevant for a user. The layouter tries to vertically align each * node pair that is connected by a critical edge. Conflicts between different critical edges are always resolved in favor @@ -101975,7 +95760,7 @@ declare namespace system{ */ static CRITICAL_EDGE_PRIORITY_DP_KEY:yfiles.algorithms.EdgeDpKey; /** - * Data provider key for specifying the thickness of the edges. + * Data provider key for specifying the thickness of the edges *

    * The specified non-negative thickness is considered when calculating minimum distances so that there are no overlaps * between edges and other graph elements. By default, each edge has thickness 0. @@ -101986,7 +95771,7 @@ declare namespace system{ */ static EDGE_THICKNESS_DP_KEY:yfiles.algorithms.EdgeDpKey; /** - * Data provider key for specifying incremental hints. + * Data provider key for specifying incremental hints *

    * Incremental hints are created using an {@link yfiles.hierarchic.HierarchicLayout#createIncrementalHintsFactory incremental hints factory}. *

    @@ -101998,7 +95783,7 @@ declare namespace system{ */ static INCREMENTAL_HINTS_DP_KEY:yfiles.algorithms.GraphObjectDpKey; /** - * Data acceptor key for publishing the layer IDs for all nodes in the graph. + * Data acceptor key for publishing the layer IDs for all nodes in the graph * @see yfiles.hierarchic.HierarchicLayoutCore#LAYER_INDEX_DP_KEY * @const * @static @@ -102006,7 +95791,7 @@ declare namespace system{ */ static LAYER_INDEX_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data acceptor key for publishing the index inside their layer for all nodes in the graph. + * Data acceptor key for publishing the index inside their layer for all nodes in the graph * @see yfiles.hierarchic.HierarchicLayoutCore#SEQUENCE_INDEX_DP_KEY * @const * @static @@ -102014,7 +95799,7 @@ declare namespace system{ */ static SEQUENCE_INDEX_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data provider key for defining swimlanes for the nodes. + * Data provider key for defining swimlanes for the nodes *

    * The layout algorithm will arrange nodes in swimlanes according to the registered descriptors. *

    @@ -102029,7 +95814,7 @@ declare namespace system{ */ static SWIMLANE_DESCRIPTOR_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data provider key for associating an alternative bounds with the collapsed/expanded group. + * Data provider key for associating an alternative bounds with the collapsed/expanded group *

    * When running in {@link yfiles.hierarchic.LayoutMode#INCREMENTAL incremental} * {@link yfiles.hierarchic.HierarchicLayout#layoutMode layout mode}, the alternative bounds of the collapsed/expanded group will be used during the layering and sequencing @@ -102042,7 +95827,7 @@ declare namespace system{ */ static ALTERNATIVE_GROUP_BOUNDS_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data provider key for associating alternative paths for edges connecting to groups, group content or folder nodes. + * Data provider key for associating alternative paths for edges connecting to groups, group content or folder nodes *

    * When running in {@link yfiles.hierarchic.LayoutMode#INCREMENTAL incremental} * {@link yfiles.hierarchic.HierarchicLayout#layoutMode layout mode}, the alternative edge paths are considered during the routing of fixed (i.e., non-incremental) edges. @@ -102069,7 +95854,7 @@ declare namespace system{ */ static ALTERNATIVE_EDGE_PATH_DP_KEY:yfiles.algorithms.EdgeDpKey; /** - * Data provider key for marking folder nodes. + * Data provider key for marking folder nodes *

    * When using recursive edge styles in incremental mode, edges will also start at the bottom and end at the top of marked * folder nodes. This will keep the edge routes more stable since the connection sides won't change. @@ -102509,7 +96294,7 @@ declare namespace system{ * @see yfiles.hierarchic.IPortAllocator * @see yfiles.hierarchic.IDrawingDistanceCalculator * @see yfiles.hierarchic.INodePlacer - * @class yfiles.hierarchic.HierarchicLayoutCore + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface HierarchicLayoutCore extends yfiles.layout.MultiStageLayout{} @@ -102521,7 +96306,6 @@ declare namespace system{ * @see yfiles.hierarchic.HierarchicLayoutCore#createSequencer * @see yfiles.hierarchic.HierarchicLayoutCore#createDrawingDistanceCalculator * @see yfiles.hierarchic.HierarchicLayoutCore#createNodePlacer - * @constructor */ constructor(); /** @@ -102531,7 +96315,7 @@ declare namespace system{ * The default implementation returns a {@link yfiles.hierarchic.DefaultDrawingDistanceCalculator} instance. It may be overridden * to return a custom {@link yfiles.hierarchic.DefaultDrawingDistanceCalculator} instance. *

    - * @returns {yfiles.hierarchic.IDrawingDistanceCalculator} a {@link yfiles.hierarchic.IDrawingDistanceCalculator} instance + * @returns a {@link } instance * @see yfiles.hierarchic.HierarchicLayoutCore#drawingDistanceCalculator * @protected */ @@ -102543,15 +96327,15 @@ declare namespace system{ * By default, a suitable private implementation of {@link yfiles.hierarchic.IEdgeReverser} is returned. It may be overridden to * return a custom {@link yfiles.hierarchic.IEdgeReverser} implementation. *

    - * @returns {yfiles.hierarchic.IEdgeReverser} an implementation + * @returns an implementation * @protected */ createEdgeReverser():yfiles.hierarchic.IEdgeReverser; /** * Factory method that is called during {@link yfiles.hierarchic.HierarchicLayoutCore#applyLayoutCore} and creates a {@link yfiles.layout.GroupingSupport} * instance in case of a grouped graph. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.layout.GroupingSupport} a {@link yfiles.layout.GroupingSupport} instance or null if the graph is not grouped + * @param graph the input graph + * @returns a {@link } instance or null if the graph is not grouped * @protected */ createGrouping(graph:yfiles.layout.LayoutGraph):yfiles.layout.GroupingSupport; @@ -102562,7 +96346,7 @@ declare namespace system{ * Incremental hints can be obtained from a {@link yfiles.algorithms.IDataProvider} that is registered with the graph using key * {@link yfiles.hierarchic.HierarchicLayoutCore#INCREMENTAL_HINTS_DP_KEY}. *

    - * @returns {yfiles.hierarchic.IIncrementalHintsFactory} an {@link yfiles.hierarchic.IIncrementalHintsFactory} instance + * @returns an {@link } instance * @see yfiles.hierarchic.HierarchicLayoutCore#INCREMENTAL_HINTS_DP_KEY */ createIncrementalHintsFactory():yfiles.hierarchic.IIncrementalHintsFactory; @@ -102574,15 +96358,15 @@ declare namespace system{ * instance as argument is returned. This method may be overridden to return a custom {@link yfiles.hierarchic.ILayerer} * implementation. *

    - * @returns {yfiles.hierarchic.ILayerer} a {@link yfiles.hierarchic.ILayerer} implementation + * @returns a {@link } implementation * @protected */ createIncrementalLayerer():yfiles.hierarchic.ILayerer; /** * Callback method that is called during {@link yfiles.hierarchic.HierarchicLayoutCore#applyLayoutCore}, creates the {@link yfiles.hierarchic.INodeData} * and {@link yfiles.hierarchic.IEdgeData} instances and binds them to the elements using the given {@link yfiles.hierarchic.IItemFactory itemFactory}. - * @param {yfiles.layout.LayoutGraph} g the input graph - * @param {yfiles.hierarchic.IItemFactory} itemFactory the given {@link yfiles.hierarchic.IItemFactory} instance + * @param g the input graph + * @param itemFactory the given {@link } instance * @protected */ createItemData(g:yfiles.layout.LayoutGraph,itemFactory:yfiles.hierarchic.IItemFactory):void; @@ -102591,8 +96375,8 @@ declare namespace system{ *

    * By default, a suitable private implementation of {@link yfiles.hierarchic.ILayerConstraintFactory} is returned. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {yfiles.hierarchic.ILayerConstraintFactory} a {@link yfiles.hierarchic.ILayerConstraintFactory} instance + * @param graph the given graph + * @returns a {@link } instance */ createLayerConstraintFactory(graph:yfiles.algorithms.Graph):yfiles.hierarchic.ILayerConstraintFactory; /** @@ -102601,7 +96385,7 @@ declare namespace system{ * The default implementation returns a new MultiComponentLayerer(new WeightedLayerer()) instance. It may be overridden to * return a custom {@link yfiles.hierarchic.ILayerer} instance. *

    - * @returns {yfiles.hierarchic.ILayerer} a {@link yfiles.hierarchic.ILayerer} instance + * @returns a {@link } instance * @see yfiles.hierarchic.HierarchicLayoutCore#layerer * @see yfiles.hierarchic.MultiComponentLayerer * @see yfiles.hierarchic.WeightedLayerer @@ -102615,8 +96399,8 @@ declare namespace system{ * By default, a suitable private implementation of {@link yfiles.hierarchic.ILayers} is returned. It may be overridden to return * custom implementations of the {@link yfiles.hierarchic.ILayers} interface. *

    - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the given {@link yfiles.hierarchic.ILayoutDataProvider} instance - * @returns {yfiles.hierarchic.ILayers} a {@link yfiles.hierarchic.ILayers} implementation + * @param ldp the given {@link } instance + * @returns a {@link } implementation * @protected */ createLayers(ldp:yfiles.hierarchic.ILayoutDataProvider):yfiles.hierarchic.ILayers; @@ -102626,7 +96410,7 @@ declare namespace system{ * The default implementation returns a {@link yfiles.hierarchic.SimplexNodePlacer} instance. It may be overridden to return a * custom {@link yfiles.hierarchic.INodePlacer} instance. *

    - * @returns {yfiles.hierarchic.INodePlacer} a {@link yfiles.hierarchic.INodePlacer} instance + * @returns a {@link } instance * @see yfiles.hierarchic.HierarchicLayoutCore#nodePlacer * @see yfiles.hierarchic.SimplexNodePlacer * @protected @@ -102639,7 +96423,7 @@ declare namespace system{ * The default implementation returns a {@link yfiles.hierarchic.DefaultPortAllocator} instance. It may be overridden to return a * custom {@link yfiles.hierarchic.IPortAllocator} instance. *

    - * @returns {yfiles.hierarchic.IPortAllocator} a {@link yfiles.hierarchic.IPortAllocator} instance + * @returns a {@link } instance * @see yfiles.hierarchic.HierarchicLayoutCore#portAllocator * @protected */ @@ -102651,7 +96435,7 @@ declare namespace system{ * The default implementation returns null. It may be overridden to return a custom {@link yfiles.hierarchic.IPortConstraintOptimizer} * instance. *

    - * @returns {yfiles.hierarchic.IPortConstraintOptimizer} null + * @returns null * @see yfiles.hierarchic.HierarchicLayoutCore#portConstraintOptimizer * @protected */ @@ -102661,8 +96445,8 @@ declare namespace system{ *

    * By default, a suitable private implementation of {@link yfiles.hierarchic.ISequenceConstraintFactory} is returned. *

    - * @param {yfiles.algorithms.Graph} graph the given graph - * @returns {yfiles.hierarchic.ISequenceConstraintFactory} a {@link yfiles.hierarchic.ISequenceConstraintFactory} instance + * @param graph the given graph + * @returns a {@link } instance */ createSequenceConstraintFactory(graph:yfiles.algorithms.Graph):yfiles.hierarchic.ISequenceConstraintFactory; /** @@ -102671,7 +96455,7 @@ declare namespace system{ * The default implementation returns a {@link yfiles.hierarchic.DefaultLayerSequencer} instance. It may be overridden to return a * custom {@link yfiles.hierarchic.ISequencer} instance. *

    - * @returns {yfiles.hierarchic.ISequencer} a {@link yfiles.hierarchic.ISequencer} instance + * @returns a {@link } instance * @see yfiles.hierarchic.HierarchicLayoutCore#sequencer * @see yfiles.hierarchic.DefaultLayerSequencer * @protected @@ -102684,7 +96468,7 @@ declare namespace system{ * By default, a suitable private implementation of {@link yfiles.hierarchic.ISequencer} is returned. It may be overridden to * return custom implementations of the {@link yfiles.hierarchic.ISequencer} interface. *

    - * @returns {yfiles.hierarchic.ISequencer} a {@link yfiles.hierarchic.ISequencer} implementation + * @returns a {@link } implementation * @protected */ createSubgraphLayerSequencer():yfiles.hierarchic.ISequencer; @@ -102693,8 +96477,8 @@ declare namespace system{ *

    * Used for internal purposes. *

    - * @param {Object} key the key to a property - * @returns {Object} the associated value or null + * @param key the key to a property + * @returns the associated value or null * @see yfiles.hierarchic.HierarchicLayoutCore#setAlgorithmProperty */ getAlgorithmProperty(key:Object):Object; @@ -102705,8 +96489,8 @@ declare namespace system{ * The {@link yfiles.algorithms.IDataProvider} holding the information about the node layout is registered with the graph using key * {@link yfiles.hierarchic.HierarchicLayoutCore#EDGE_LAYOUT_DESCRIPTOR_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.algorithms.IDataProvider} a {@link yfiles.algorithms.IDataProvider} instance or null + * @param graph the input graph + * @returns a {@link } instance or null * @see yfiles.hierarchic.EdgeLayoutDescriptor * @see yfiles.hierarchic.HierarchicLayoutCore#EDGE_LAYOUT_DESCRIPTOR_DP_KEY * @protected @@ -102719,8 +96503,8 @@ declare namespace system{ * The {@link yfiles.algorithms.IDataProvider} holding the information about incremental hints is registered with the graph using * key {@link yfiles.hierarchic.HierarchicLayoutCore#INCREMENTAL_HINTS_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.algorithms.IDataProvider} a {@link yfiles.algorithms.IDataProvider} instance or null + * @param graph the input graph + * @returns a {@link } instance or null * @see yfiles.hierarchic.HierarchicLayoutCore#INCREMENTAL_HINTS_DP_KEY * @protected */ @@ -102732,8 +96516,8 @@ declare namespace system{ * The {@link yfiles.algorithms.IDataProvider} holding the information about the node layout is registered with the graph using key * {@link yfiles.hierarchic.HierarchicLayoutCore#NODE_LAYOUT_DESCRIPTOR_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.algorithms.IDataProvider} a {@link yfiles.algorithms.IDataProvider} instance or null + * @param graph the input graph + * @returns a {@link } instance or null * @see yfiles.hierarchic.NodeLayoutDescriptor * @see yfiles.hierarchic.HierarchicLayoutCore#NODE_LAYOUT_DESCRIPTOR_DP_KEY * @protected @@ -102746,8 +96530,8 @@ declare namespace system{ * The {@link yfiles.algorithms.IDataProvider} holding the information about swimlanes is registered with the graph using key * {@link yfiles.hierarchic.HierarchicLayoutCore#SWIMLANE_DESCRIPTOR_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.algorithms.IDataProvider} a {@link yfiles.algorithms.IDataProvider} instance or null + * @param graph the input graph + * @returns a {@link } instance or null * @see yfiles.hierarchic.SwimlaneDescriptor * @see yfiles.hierarchic.HierarchicLayoutCore#SWIMLANE_DESCRIPTOR_DP_KEY * @protected @@ -102759,8 +96543,8 @@ declare namespace system{ * The layering information is stored in a {@link yfiles.algorithms.IDataProvider} registered with the graph using key * {@link yfiles.hierarchic.HierarchicLayoutCore#LAYER_INDEX_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} implementation that provides the layering information + * @param graph the input graph + * @param layers the {@link } implementation that provides the layering information * @see yfiles.hierarchic.HierarchicLayoutCore#LAYER_INDEX_DP_KEY * @protected */ @@ -102771,9 +96555,9 @@ declare namespace system{ * The sequencing information is stored in a {@link yfiles.algorithms.IDataProvider} registered with the graph using key * {@link yfiles.hierarchic.HierarchicLayoutCore#SEQUENCE_INDEX_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} implementation that provides the layering information - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param layers the {@link } implementation that provides the layering information + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances * @see yfiles.hierarchic.HierarchicLayoutCore#LAYER_INDEX_DP_KEY * @protected @@ -102785,8 +96569,8 @@ declare namespace system{ * By default, this method removes collinear bends from the graph. A bend point is considered to be collinear if it lies on * a line with its preceding and succeeding bend point. It may be overridden for a custom implementation of bend removal. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {number} bendReductionThreshold this method removes a bend, if its horizontal/vertical distance to the closest collinear bend is above this value + * @param graph the input graph + * @param bendReductionThreshold this method removes a bend, if its horizontal/vertical distance to the closest collinear bend is above this value * @protected */ reduceBendCount(graph:yfiles.layout.LayoutGraph,bendReductionThreshold:number):void; @@ -102796,7 +96580,7 @@ declare namespace system{ * By default, this method removes collinear bends from the graph. A bend point is considered to be collinear if it lies on * a line with its preceding and succeeding bend point. It may be overridden for a custom implementation of bend removal. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @protected */ reduceBendCount(graph:yfiles.layout.LayoutGraph):void; @@ -102805,8 +96589,8 @@ declare namespace system{ *

    * Used for internal purposes. *

    - * @param {Object} key the key to a property - * @param {Object} value the value to associate with the key + * @param key the key to a property + * @param value the value to associate with the key * @see yfiles.hierarchic.HierarchicLayoutCore#setAlgorithmProperty */ setAlgorithmProperty(key:Object,value:Object):void; @@ -102855,7 +96639,7 @@ declare namespace system{ */ static SWIMLANE_DESCRIPTOR_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data acceptor key for publishing the layer IDs for all nodes in the graph. + * Data acceptor key for publishing the layer IDs for all nodes in the graph * @see yfiles.hierarchic.HierarchicLayout#LAYER_INDEX_DP_KEY * @const * @static @@ -102863,7 +96647,7 @@ declare namespace system{ */ static LAYER_INDEX_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data acceptor key for publishing the index inside their layer for all nodes in the graph. + * Data acceptor key for publishing the index inside their layer for all nodes in the graph * @see yfiles.hierarchic.HierarchicLayout#SEQUENCE_INDEX_DP_KEY * @const * @static @@ -102871,7 +96655,7 @@ declare namespace system{ */ static SEQUENCE_INDEX_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data provider key for internal use only. + * Data provider key for internal use only * @const * @static * @type {yfiles.algorithms.NodeDpKey.} @@ -103007,9 +96791,9 @@ declare namespace system{ *

    * Implementations should release internally held data structures when they are not needed any more. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph that contains all elements that are used during the node placement - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} object that will be used during subsequent calls - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph that contains all elements that are used during the node placement + * @param layers the {@link } object that will be used during subsequent calls + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances * @see yfiles.hierarchic.IDrawingDistanceCalculator#initialize * @abstract @@ -103018,15 +96802,15 @@ declare namespace system{ /** * Main interface method called by {@link yfiles.hierarchic.INodePlacer} instances to determine the minimum distance between * {@link yfiles.algorithms.Node}s of same layer. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayer} layer the {@link yfiles.hierarchic.ILayer} object that will be used during subsequent calls - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param layer the {@link } object that will be used during subsequent calls + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.algorithms.Node} left the left of the two {@link yfiles.algorithms.Node}s whose minimum distance is to be determined or null if only the left border - * of the right {@link yfiles.algorithms.Node} is of interest - * @param {yfiles.algorithms.Node} right the right of the two {@link yfiles.algorithms.Node}s whose minimum distance is to be determined or null if only the right border - * of the left {@link yfiles.algorithms.Node} is of interest - * @returns {number} the minimum distance between two {@link yfiles.algorithms.Node}s of the same layer + * @param left the left of the two {@link }s whose minimum distance is to be determined or null if only the left border + * of the right {@link } is of interest + * @param right the right of the two {@link }s whose minimum distance is to be determined or null if only the right border + * of the left {@link } is of interest + * @returns the minimum distance between two {@link }s of the same layer * @abstract */ getMinDistance(graph:yfiles.layout.LayoutGraph,layer:yfiles.hierarchic.ILayer,ldp:yfiles.hierarchic.ILayoutDataProvider,left:yfiles.algorithms.Node,right:yfiles.algorithms.Node):number; @@ -103035,9 +96819,9 @@ declare namespace system{ *

    * Implementations may cache lengthy calculations in the initialization phase. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph that contains all elements that are used during the node placement - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} object that will be used during subsequent calls - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph that contains all elements that are used during the node placement + * @param layers the {@link } object that will be used during subsequent calls + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances * @see yfiles.hierarchic.IDrawingDistanceCalculator#dispose * @abstract @@ -103261,8 +97045,8 @@ declare namespace system{ *

    * An edge is reversed if the layer index of its source node is greater than the layer index of its target node. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing layering information about the nodes and edges of the graph + * @param graph the input graph + * @param ldp the {@link } containing layering information about the nodes and edges of the graph * @see yfiles.hierarchic.ILayoutDataProvider#getNodeData * @see yfiles.hierarchic.INodeData#layer * @abstract @@ -103273,8 +97057,8 @@ declare namespace system{ *

    * It is called at the end of the {@link yfiles.hierarchic.HierarchicLayoutCore hierarchic layout algorithm}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the nodes and edges of the graph + * @param graph the input graph + * @param ldp the {@link } containing information about the nodes and edges of the graph * @abstract */ restoreEdgeDirections(graph:yfiles.layout.LayoutGraph,ldp:yfiles.hierarchic.ILayoutDataProvider):void; @@ -103283,9 +97067,9 @@ declare namespace system{ *

    * It may be called by the incremental parts of the {@link yfiles.hierarchic.HierarchicLayoutCore hierarchic layout algorithm}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing layering information about the nodes and edges of the graph - * @param {yfiles.algorithms.Edge} edge the edge to be reversed + * @param graph the input graph + * @param ldp the {@link } containing layering information about the nodes and edges of the graph + * @param edge the edge to be reversed * @see yfiles.hierarchic.ILayoutDataProvider#getNodeData * @see yfiles.hierarchic.INodeData#layer * @abstract @@ -103299,10 +97083,14 @@ declare namespace system{ /** * This interface provides factory methods for creating incremental hints for the hierarchic layout. *

    - * Incremental hints can be used for specifying that a subset of nodes (called incremental nodes) should be added to an - * existing graph layout. A layer hint specifies that both, a node's layer and its position within the layer should be - * determined by the algorithm. A sequence hint specifies that the algorithm should consider the current layer of a node - * while its position within the layer should be freely determined by the algorithm. + * Incremental hints can be used for specifying that a subset of nodes (called incremental nodes) should be added to an existing graph + * layout. A layer hint specifies that both, a node's layer and its position within the layer should be freely determined + * by the algorithm. A sequence hint specifies that the algorithm should consider the current layer of a node while its + * position within the layer should be freely determined by the algorithm. A node without any hint is called a fixed node. + *

    + *

    + * Sequence hints can also be specified for edges. These incremental edges are inserted in a suitable position within the layers + * crossed by the edges. For fixed edges the given input route is considered to calculate the position with the layers. *

    *

    * Information about incremental hints is provided by a {@link yfiles.algorithms.IDataProvider} registered with the graph with key @@ -103330,8 +97118,8 @@ declare namespace system{ * The positions of groups without incremental hints depend on the position of their descendants (i.e., the group is not * interpreted as fixed - it is simply ignored). *

    - * @param {Object} forItemId the group node to be inserted incrementally - * @returns {Object} an {@link Object} that can be interpreted as a hint by {@link yfiles.hierarchic.HierarchicLayoutCore} + * @param forItemId the group node to be inserted incrementally + * @returns an {@link } that can be interpreted as a hint by {@link } * @abstract */ createIncrementalGroupHint(forItemId:Object):Object; @@ -103344,8 +97132,8 @@ declare namespace system{ * Neighbors of this node may be also marked such that they are laid out incrementally. This makes it possible to * incrementally add whole subgraphs to the current layout. *

    - * @param {Object} forNodeId the node to be layered and sequenced incrementally - * @returns {Object} an {@link Object} that can be interpreted as a hint by {@link yfiles.hierarchic.HierarchicLayoutCore} + * @param forNodeId the node to be layered and sequenced incrementally + * @returns an {@link } that can be interpreted as a hint by {@link } * @abstract */ createLayerIncrementallyHint(forNodeId:Object):Object; @@ -103353,14 +97141,19 @@ declare namespace system{ * Creates a hint {@link Object} for a {@link yfiles.algorithms.Node} or {@link yfiles.algorithms.Edge} that should be inserted incrementally during the * sequencing phase. *

    - * This will prevent the layering from being changed. + * All nodes that are not incrementally inserted during the layering phase (see + * {@link yfiles.hierarchic.IIncrementalHintsFactory#createLayerIncrementallyHint}) stay in their current layer. More precisely, + * the default {@link yfiles.hierarchic.HierarchicLayout#fixedElementsLayerer} implementation is an instance of {@link yfiles.hierarchic.AsIsLayerer} that determines the layer of the "fixed" + * nodes by analyzing the current node coordinates. Note that for the other nodes, the layout algorithm may insert new + * layers in between the existing layers. *

    *

    - * The {@link yfiles.algorithms.Node} will be placed on an already existing {@link yfiles.hierarchic.ILayer layer} that is determined by the {@link yfiles.hierarchic.HierarchicLayoutCore#layerer} implementation, i.e. - * "from sketch". Adjacent edges will automatically be rerouted optimally. + * For edges associated with this hint (or which are incident to an incremental node), the algorithm automatically + * calculates a suitable sequencing (position within the layer). For edges between two non-incremental nodes that do not + * have a hint, the sequencing phase considers the current route. *

    - * @param {Object} forItemId the node or edge to be sequenced/inserted incrementally - * @returns {Object} an {@link Object} that can be interpreted as a hint by {@link yfiles.hierarchic.HierarchicLayoutCore} + * @param forItemId the node or edge to be sequenced/inserted incrementally + * @returns an {@link } that can be interpreted as a hint by {@link } * @abstract */ createSequenceIncrementallyHint(forItemId:Object):Object; @@ -103368,11 +97161,14 @@ declare namespace system{ * Creates a hint {@link Object} for a {@link yfiles.algorithms.Node} that should be inserted incrementally into the graph on its exact current * position. *

    - * The node will be placed in an already existing {@link yfiles.hierarchic.ILayer layer} that is determined by the {@link yfiles.hierarchic.HierarchicLayoutCore#layerer layerer} implementation. The position - * within its layer will be determined by its current position. + * As for nodes without hints, the algorithm uses the {@link yfiles.hierarchic.HierarchicLayout#fixedElementsLayerer} instance to determine the layer of such nodes and the {@link yfiles.hierarchic.HierarchicLayout#fixedElementsSequencer} instance to + * determine the position within the layer. By default, both implementations use the current coordinates of the nodes to + * derive the layer/position. However, for nodes marked with this hint, the algorithm should also preserve the exact + * coordinates while for nodes without hints the coordinates may be changed (these nodes only keep their relative + * positions). *

    - * @param {Object} forNodeId the node to be placed on its exact current position - * @returns {Object} an {@link Object} that can be interpreted as a hint by {@link yfiles.hierarchic.HierarchicLayoutCore} + * @param forNodeId the node to be placed on its exact current position + * @returns an {@link } that can be interpreted as a hint by {@link } * @see yfiles.hierarchic.IIncrementalHintsFactory#createUseExactSequenceCoordinatesHint * @see yfiles.hierarchic.IIncrementalHintsFactory#createUseExactLayerCoordinatesHint * @see yfiles.hierarchic.SimplexNodePlacer#exactPlacement @@ -103383,11 +97179,10 @@ declare namespace system{ * Creates a hint {@link Object} for a {@link yfiles.algorithms.Node} that should be inserted incrementally into the graph on its exact current * layer position. *

    - * The node will be placed in an already existing {@link yfiles.hierarchic.ILayer layer} that is determined by the {@link yfiles.hierarchic.HierarchicLayoutCore#layerer layerer} on the position that it occupies - * initially. The position within its layer will be determined by a {@link yfiles.hierarchic.INodePlacer} instance. + * The algorithm uses the {@link yfiles.hierarchic.HierarchicLayout#fixedElementsLayerer} instance to determine the layer of such nodes and the {@link yfiles.hierarchic.HierarchicLayout#fromScratchSequencer} instance to determine the sequencing. *

    - * @param {Object} forNodeId the node to be placed on its exact current layer position - * @returns {Object} an {@link Object} that can be interpreted as a hint by {@link yfiles.hierarchic.HierarchicLayoutCore} + * @param forNodeId the node to be placed on its exact current layer position + * @returns an {@link } that can be interpreted as a hint by {@link } * @see yfiles.hierarchic.IIncrementalHintsFactory#createUseExactCoordinatesHint * @see yfiles.hierarchic.IIncrementalHintsFactory#createUseExactSequenceCoordinatesHint * @see yfiles.hierarchic.SimplexNodePlacer#exactPlacement @@ -103398,12 +97193,10 @@ declare namespace system{ * Creates a hint {@link Object} for a {@link yfiles.algorithms.Node} that should be inserted incrementally into the graph on its exact current * sequence position. *

    - * The node will be placed in an already existing {@link yfiles.hierarchic.ILayer layer} that is determined by the {@link yfiles.hierarchic.HierarchicLayoutCore#layerer layerer} on the position that is - * considered best for its layer. The position within the sequence of its layer will be determined by its current - * coordinates. + * The algorithm uses the {@link yfiles.hierarchic.HierarchicLayout#fromScratchLayerer} instance to determine the layer of such nodes and the {@link yfiles.hierarchic.HierarchicLayout#fixedElementsSequencer} instance to determine the sequencing. *

    - * @param {Object} forNodeId the node to be placed on its exact current sequence position - * @returns {Object} an {@link Object} that can be interpreted as a hint by {@link yfiles.hierarchic.HierarchicLayoutCore} + * @param forNodeId the node to be placed on its exact current sequence position + * @returns an {@link } that can be interpreted as a hint by {@link } * @see yfiles.hierarchic.IIncrementalHintsFactory#createUseExactCoordinatesHint * @see yfiles.hierarchic.IIncrementalHintsFactory#createUseExactLayerCoordinatesHint * @see yfiles.hierarchic.SimplexNodePlacer#exactPlacement @@ -103426,17 +97219,17 @@ declare namespace system{ export interface IItemFactory extends Object{ /** * Converts a given {@link yfiles.algorithms.Node} to a label node. - * @param {yfiles.algorithms.Node} dummyNode the given {@link yfiles.algorithms.Node} to be converted + * @param dummyNode the given {@link } to be converted * @abstract */ convertToLabelNode(dummyNode:yfiles.algorithms.Node):void; /** * Creates a bend {@link yfiles.algorithms.Node} for the given {@link yfiles.algorithms.Edge} in the given {@link yfiles.hierarchic.ILayer} and * assigns it to the given {@link yfiles.hierarchic.SwimlaneDescriptor} instance. - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} instance - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {yfiles.hierarchic.SwimlaneDescriptor} [laneDescriptor=null] a given {@link yfiles.hierarchic.SwimlaneDescriptor} instance - * @returns {yfiles.algorithms.Node} the new bend {@link yfiles.algorithms.Node} + * @param layer the given {@link } instance + * @param edge the given {@link } + * @param [laneDescriptor=null] a given {@link } instance + * @returns the new bend {@link } * @abstract */ createBendNode(layer:yfiles.hierarchic.ILayer,edge:yfiles.algorithms.Edge,laneDescriptor?:yfiles.hierarchic.SwimlaneDescriptor):yfiles.algorithms.Node; @@ -103446,290 +97239,292 @@ declare namespace system{ *

    * The bend is assigned to the given {@link yfiles.hierarchic.SwimlaneDescriptor} instance. *

    - * @param {yfiles.algorithms.Node} node the given {@link yfiles.algorithms.Node} - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {yfiles.hierarchic.SwimlaneDescriptor} [laneDescriptor=null] the given {@link yfiles.hierarchic.SwimlaneDescriptor} instance - * @returns {yfiles.hierarchic.INodeData} a {@link yfiles.hierarchic.INodeData} object for the given bend {@link yfiles.algorithms.Node} + * @param node the given {@link } + * @param edge the given {@link } + * @param [laneDescriptor=null] the given {@link } instance + * @returns a {@link } object for the given bend {@link } * @abstract */ createBendNodeData(node:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge,laneDescriptor?:yfiles.hierarchic.SwimlaneDescriptor):yfiles.hierarchic.INodeData; /** * Creates a dummy {@link yfiles.algorithms.Node} that mimics a connector to a group {@link yfiles.algorithms.Node}. - * @param {yfiles.algorithms.Node} groupNode the given group {@link yfiles.algorithms.Node} - * @param {Object} groupId the given group ID - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} instance - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @returns {yfiles.algorithms.Node} the new {@link yfiles.algorithms.Node} + * @param groupNode the given group {@link } + * @param groupId the given group ID + * @param layer the given {@link } instance + * @param edge the given {@link } + * @returns the new {@link } * @abstract */ createConnectorProxyForGroup(groupNode:yfiles.algorithms.Node,groupId:Object,layer:yfiles.hierarchic.ILayer,edge:yfiles.algorithms.Edge):yfiles.algorithms.Node; /** * Creates a dummy node that mimics a connector to a group node from a descendant. - * @param {yfiles.algorithms.Node} groupNode the group node to which the edge is connected - * @param {Object} groupId the id of the group node - * @param {yfiles.hierarchic.ILayer} layer the layer to which the dummy node will be assigned - * @param {yfiles.algorithms.Edge} e the edge that connects to the dummy node - * @returns {yfiles.algorithms.Node} the dummy node + * @param groupNode the group node to which the edge is connected + * @param groupId the id of the group node + * @param layer the layer to which the dummy node will be assigned + * @param e the edge that connects to the dummy node + * @returns the dummy node * @abstract */ createContentConnectorProxyForGroup(groupNode:yfiles.algorithms.Node,groupId:Object,layer:yfiles.hierarchic.ILayer,e:yfiles.algorithms.Edge):yfiles.algorithms.Node; /** * Creates a spacer {@link yfiles.algorithms.Node} for the drawing phase using the given bounds in the given * {@link yfiles.hierarchic.ILayer}. - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} instance - * @param {yfiles.algorithms.Rectangle2D} size the given bounds - * @param {Array.} edges an array of {@link yfiles.algorithms.Edge}s - * @returns {yfiles.algorithms.Node} the new spacer {@link yfiles.algorithms.Node} + * @param layer the given {@link } instance + * @param size the given bounds + * @param edges an array of {@link }s + * @returns the new spacer {@link } * @abstract */ createDistanceNode(layer:yfiles.hierarchic.ILayer,size:yfiles.algorithms.Rectangle2D,edges:yfiles.algorithms.Edge[]):yfiles.algorithms.Node; /** * Creates a dummy {@link yfiles.algorithms.Edge} using the given data. - * @param {yfiles.algorithms.Node} newSource the source node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Node} newTarget the target node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Edge} oldEdge the old {@link yfiles.algorithms.Edge} from which to retrieve the data - * @param {boolean} sourceEnd true if the source node of the edge is referred, false otherwise - * @param {boolean} targetEnd true if the target node of the edge is referred, false otherwise - * @returns {yfiles.algorithms.Edge} a new dummy {@link yfiles.algorithms.Edge} + * @param newSource the source node of the {@link } + * @param newTarget the target node of the {@link } + * @param oldEdge the old {@link } from which to retrieve the data + * @param sourceEnd true if the source node of the edge is referred, false otherwise + * @param targetEnd true if the target node of the edge is referred, false otherwise + * @returns a new dummy {@link } * @abstract */ createDummyEdge(newSource:yfiles.algorithms.Node,newTarget:yfiles.algorithms.Node,oldEdge:yfiles.algorithms.Edge,sourceEnd:boolean,targetEnd:boolean):yfiles.algorithms.Edge; /** * Creates an edge group {@link yfiles.algorithms.Node} in the given {@link yfiles.hierarchic.ILayer}. - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} instance - * @param {Object} groupId the ID of the edge group - * @returns {yfiles.algorithms.Node} the new group {@link yfiles.algorithms.Node} + * @param layer the given {@link } instance + * @param groupId the ID of the edge group + * @returns the new group {@link } * @abstract */ createEdgeGroupNode(layer:yfiles.hierarchic.ILayer,groupId:Object):yfiles.algorithms.Node; /** * Creates a {@link yfiles.hierarchic.INodeData} object for an edge group {@link yfiles.algorithms.Node} and associates it with the * {@link yfiles.algorithms.Node}. - * @param {yfiles.algorithms.Node} node the given {@link yfiles.algorithms.Node} - * @param {Object} groupId the given group ID - * @param {boolean} source true if the edge group is referred to the source node, false otherwise - * @returns {yfiles.hierarchic.INodeData} a {@link yfiles.hierarchic.INodeData} object for the given edge group {@link yfiles.algorithms.Node} + * @param node the given {@link } + * @param groupId the given group ID + * @param source true if the edge group is referred to the source node, false otherwise + * @returns a {@link } object for the given edge group {@link } * @abstract */ createEdgeGroupNodeData(node:yfiles.algorithms.Node,groupId:Object,source:boolean):yfiles.hierarchic.INodeData; /** * Creates an {@link yfiles.algorithms.Edge} that connects two group border {@link yfiles.algorithms.Node}s. - * @param {yfiles.algorithms.Node} source the source {@link yfiles.algorithms.Node} - * @param {yfiles.algorithms.Node} target the target {@link yfiles.algorithms.Node} - * @returns {yfiles.algorithms.Edge} the new {@link yfiles.algorithms.Edge} connecting the two group {@link yfiles.algorithms.Node}s + * @param source the source {@link } + * @param target the target {@link } + * @returns the new {@link } connecting the two group {@link }s * @abstract */ createGroupBorderEdge(source:yfiles.algorithms.Node,target:yfiles.algorithms.Node):yfiles.algorithms.Edge; /** * Creates a group boundary {@link yfiles.algorithms.Node} for a group node in the given {@link yfiles.hierarchic.ILayer}. - * @param {yfiles.algorithms.Node} groupNode the given group {@link yfiles.algorithms.Node} - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} - * @param {yfiles.hierarchic.NodeDataType} type one of {@link yfiles.hierarchic.NodeDataType#GROUP_BEGIN} or {@link yfiles.hierarchic.NodeDataType#GROUP_END} - * @returns {yfiles.algorithms.Node} the new group boundary {@link yfiles.algorithms.Node} + * @param groupNode the given group {@link } + * @param layer the given {@link } + * @param type one of {@link #GROUP_BEGIN} or {@link #GROUP_END} + * @returns the new group boundary {@link } * @abstract */ createGroupBorderNode(groupNode:yfiles.algorithms.Node,layer:yfiles.hierarchic.ILayer,type:yfiles.hierarchic.NodeDataType):yfiles.algorithms.Node; /** * Create a dummy {@link yfiles.algorithms.Node} for a group {@link yfiles.hierarchic.ILayer layer}. - * @returns {yfiles.algorithms.Node} a new dummy {@link yfiles.algorithms.Node} + * @returns a new dummy {@link } * @abstract */ createGroupLayerDummyNode():yfiles.algorithms.Node; /** * Creates a group node connector {@link yfiles.algorithms.Edge} between two group {@link yfiles.algorithms.Node}s. - * @param {yfiles.algorithms.Node} groupNode1 the first group node - * @param {yfiles.algorithms.Node} groupNode2 the first group node - * @param {yfiles.algorithms.Edge} representative the given representative {@link yfiles.algorithms.Edge} - * @returns {yfiles.algorithms.Edge} a new connector {@link yfiles.algorithms.Edge} between two group {@link yfiles.algorithms.Node}s + * @param groupNode1 the first group node + * @param groupNode2 the first group node + * @param representative the given representative {@link } + * @returns a new connector {@link } between two group {@link }s * @abstract */ createGroupNodeConnectorEdge(groupNode1:yfiles.algorithms.Node,groupNode2:yfiles.algorithms.Node,representative:yfiles.algorithms.Edge):yfiles.algorithms.Edge; /** * Creates an {@link yfiles.hierarchic.IEdgeData} object for a normal {@link yfiles.algorithms.Edge} and associates it with the edge. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @returns {yfiles.hierarchic.IEdgeData} an {@link yfiles.hierarchic.IEdgeData} object for the given {@link yfiles.algorithms.Edge} + * @param edge the given {@link } + * @returns an {@link } object for the given {@link } * @abstract */ createNormalEdgeData(edge:yfiles.algorithms.Edge):yfiles.hierarchic.IEdgeData; /** * Creates a {@link yfiles.hierarchic.INodeData} object for a normal {@link yfiles.algorithms.Node} and associates it with the * {@link yfiles.algorithms.Node}. - * @param {yfiles.algorithms.Node} node the given {@link yfiles.algorithms.Node} - * @returns {yfiles.hierarchic.INodeData} a {@link yfiles.hierarchic.INodeData} object for the given {@link yfiles.algorithms.Node} + * @param node the given {@link } + * @returns a {@link } object for the given {@link } * @abstract */ createNormalNodeData(node:yfiles.algorithms.Node):yfiles.hierarchic.INodeData; /** * Creates a proxy {@link yfiles.algorithms.Node} for an {@link yfiles.algorithms.Edge} during the drawing phase, changing the {@link yfiles.algorithms.Edge} * to end/start at the proxy and assigns it to a {@link yfiles.hierarchic.SwimlaneDescriptor} instance. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {boolean} source true if the node is the source node of the edge, false otherwise - * @param {yfiles.hierarchic.SwimlaneDescriptor} [laneDescriptor=null] a given {@link yfiles.hierarchic.SwimlaneDescriptor} instance - * @returns {yfiles.algorithms.Node} the new proxy {@link yfiles.algorithms.Node} + * @param edge the given {@link } + * @param source true if the node is the source node of the edge, false otherwise + * @param [laneDescriptor=null] a given {@link } instance + * @returns the new proxy {@link } * @abstract */ createProxyNode(edge:yfiles.algorithms.Edge,source:boolean,laneDescriptor?:yfiles.hierarchic.SwimlaneDescriptor):yfiles.algorithms.Node; /** * Creates a {@link yfiles.hierarchic.INodeData} object for a proxy {@link yfiles.algorithms.Node} and associates it with the proxy node. - * @param {yfiles.algorithms.Node} node the given {@link yfiles.algorithms.Node} - * @param {yfiles.algorithms.Node} proxy the given proxy node - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @returns {yfiles.hierarchic.INodeData} a {@link yfiles.hierarchic.INodeData} object for the given proxy node + * @param node the given {@link } + * @param proxy the given proxy node + * @param edge the given {@link } + * @returns a {@link } object for the given proxy node * @abstract */ createProxyNodeData(node:yfiles.algorithms.Node,proxy:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge):yfiles.hierarchic.INodeData; /** * Creates a dummy edge that belongs to a recursive {@link yfiles.algorithms.Edge}. - * @param {yfiles.algorithms.Node} newSource the source node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Node} newTarget the target node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Edge} oldEdge the old {@link yfiles.algorithms.Edge} from which to retrieve the data - * @param {boolean} sourceEnd true if the source node of the edge is referred, false otherwise - * @param {boolean} targetEnd true if the target node of the edge is referred, false otherwise - * @returns {yfiles.algorithms.Edge} a new dummy {@link yfiles.algorithms.Edge} + * @param newSource the source node of the {@link } + * @param newTarget the target node of the {@link } + * @param oldEdge the old {@link } from which to retrieve the data + * @param sourceEnd true if the source node of the edge is referred, false otherwise + * @param targetEnd true if the target node of the edge is referred, false otherwise + * @returns a new dummy {@link } * @abstract */ createRecursiveDummyEdge(newSource:yfiles.algorithms.Node,newTarget:yfiles.algorithms.Node,oldEdge:yfiles.algorithms.Edge,sourceEnd:boolean,targetEnd:boolean):yfiles.algorithms.Edge; /** * Creates a dummy {@link yfiles.algorithms.Node} that represents a bend node of a recursive {@link yfiles.algorithms.Edge}. - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} to which the dummy {@link yfiles.algorithms.Node} is assigned - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} to which the dummy {@link yfiles.algorithms.Node} belongs - * @param {yfiles.hierarchic.SwimlaneDescriptor} laneDescriptor the given {@link yfiles.hierarchic.SwimlaneDescriptor} instance - * @returns {yfiles.algorithms.Node} the new {@link yfiles.algorithms.Node} + * @param layer the given {@link } to which the dummy {@link } is assigned + * @param edge the given {@link } to which the dummy {@link } belongs + * @param laneDescriptor the given {@link } instance + * @returns the new {@link } * @abstract */ createRecursiveEdgeDummy(layer:yfiles.hierarchic.ILayer,edge:yfiles.algorithms.Edge,laneDescriptor:yfiles.hierarchic.SwimlaneDescriptor):yfiles.algorithms.Node; /** * Creates a {@link yfiles.hierarchic.INodeData} for a dummy {@link yfiles.algorithms.Node} of a recursive {@link yfiles.algorithms.Edge}. - * @param {yfiles.algorithms.Node} node the given {@link yfiles.algorithms.Node} - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} to which the dummy {@link yfiles.algorithms.Node} belongs - * @param {yfiles.hierarchic.SwimlaneDescriptor} laneDescriptor the given {@link yfiles.hierarchic.SwimlaneDescriptor} instance - * @returns {yfiles.hierarchic.INodeData} the new {@link yfiles.hierarchic.INodeData} instance + * @param node the given {@link } + * @param edge the given {@link } to which the dummy {@link } belongs + * @param laneDescriptor the given {@link } instance + * @returns the new {@link } instance * @abstract */ createRecursiveEdgeNodeData(node:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge,laneDescriptor:yfiles.hierarchic.SwimlaneDescriptor):yfiles.hierarchic.INodeData; /** * Creates an {@link yfiles.hierarchic.IEdgeData} object for a same-layer recursive {@link yfiles.algorithms.Edge} and associates it with * the edge. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {yfiles.hierarchic.IEdgeData} originalEdgeData the {@link yfiles.hierarchic.IEdgeData} object of the original edge - * @param {boolean} isUpper true is the recursive edge is an upper same layer edge, false otherwise - * @returns {yfiles.hierarchic.IEdgeData} an {@link yfiles.hierarchic.IEdgeData} object for the recursive same-layer {@link yfiles.algorithms.Edge} + * @param edge the given {@link } + * @param originalEdgeData the {@link } object of the original edge + * @param isUpper true is the recursive edge is an upper same layer edge, false otherwise + * @returns an {@link } object for the recursive same-layer {@link } * @abstract */ createRecursiveSameLayerEdgeData(edge:yfiles.algorithms.Edge,originalEdgeData:yfiles.hierarchic.IEdgeData,isUpper:boolean):yfiles.hierarchic.IEdgeData; /** * Creates a redirected {@link yfiles.algorithms.Edge} to replace an {@link yfiles.algorithms.Edge} connected to a group * {@link yfiles.algorithms.Node}. - * @param {yfiles.algorithms.Node} newSource the source node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Node} newTarget the target node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Edge} groupEdge the given group {@link yfiles.algorithms.Edge} - * @returns {yfiles.algorithms.Edge} a new redirected {@link yfiles.algorithms.Edge} + * @param newSource the source node of the {@link } + * @param newTarget the target node of the {@link } + * @param groupEdge the given group {@link } + * @returns a new redirected {@link } * @abstract */ createRedirectedGroupEdge(newSource:yfiles.algorithms.Node,newTarget:yfiles.algorithms.Node,groupEdge:yfiles.algorithms.Edge):yfiles.algorithms.Edge; /** * Creates a reversed dummy {@link yfiles.algorithms.Edge} using the given data. - * @param {yfiles.algorithms.Node} newSource the source node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Node} newTarget the target node of the {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Edge} oldEdge the old {@link yfiles.algorithms.Edge} from which to retrieve the data - * @param {boolean} sourceEnd true if the source node of the edge is referred, false otherwise - * @param {boolean} targetEnd true if the target node of the edge is referred, false otherwise - * @returns {yfiles.algorithms.Edge} a new reversed dummy {@link yfiles.algorithms.Edge} + * @param newSource the source node of the {@link } + * @param newTarget the target node of the {@link } + * @param oldEdge the old {@link } from which to retrieve the data + * @param sourceEnd true if the source node of the edge is referred, false otherwise + * @param targetEnd true if the target node of the edge is referred, false otherwise + * @returns a new reversed dummy {@link } * @abstract */ createReverseDummyEdge(newSource:yfiles.algorithms.Node,newTarget:yfiles.algorithms.Node,oldEdge:yfiles.algorithms.Edge,sourceEnd:boolean,targetEnd:boolean):yfiles.algorithms.Edge; /** * Creates an {@link yfiles.hierarchic.IEdgeData} object for a same-layer {@link yfiles.algorithms.Edge} and associates it with the edge. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @returns {yfiles.hierarchic.IEdgeData} an {@link yfiles.hierarchic.IEdgeData} object for the same-layer {@link yfiles.algorithms.Edge} + * @param edge the given {@link } + * @returns an {@link } object for the same-layer {@link } * @abstract */ createSameLayerEdgeData(edge:yfiles.algorithms.Edge):yfiles.hierarchic.IEdgeData; /** * Creates a same-layer {@link yfiles.algorithms.Edge} proxy connecting a newly created proxy {@link yfiles.algorithms.Node} and a given * proxy {@link yfiles.algorithms.Node} in the given {@link yfiles.hierarchic.ILayer}. - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {yfiles.algorithms.Node} toProxy the given proxy {@link yfiles.algorithms.Node} - * @returns {yfiles.algorithms.Edge} a new redefined same-layer {@link yfiles.algorithms.Edge} + * @param layer the given {@link } + * @param edge the given {@link } + * @param toProxy the given proxy {@link } + * @returns a new redefined same-layer {@link } * @abstract */ createSameLayerProxy(layer:yfiles.hierarchic.ILayer,edge:yfiles.algorithms.Edge,toProxy:yfiles.algorithms.Node):yfiles.algorithms.Edge; /** * Creates a proxy {@link yfiles.algorithms.Node} for a same-layer {@link yfiles.algorithms.Edge} during the drawing phase that ends at the * side of a node. - * @param {yfiles.hierarchic.ILayer} inLayer the given {@link yfiles.hierarchic.ILayer} instance - * @param {yfiles.algorithms.Node} forNode the given {@link yfiles.algorithms.Node} - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {yfiles.hierarchic.SwimlaneDescriptor} [sld=null] a given {@link yfiles.hierarchic.SwimlaneDescriptor} instance - * @returns {yfiles.algorithms.Node} the new proxy {@link yfiles.algorithms.Node} + * @param inLayer the given {@link } instance + * @param forNode the given {@link } + * @param edge the given {@link } + * @param [sld=null] a given {@link } instance + * @returns the new proxy {@link } * @abstract */ createSameLayerSideProxy(inLayer:yfiles.hierarchic.ILayer,forNode:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge,sld?:yfiles.hierarchic.SwimlaneDescriptor):yfiles.algorithms.Node; /** * Creates a same-layer switch proxy {@link yfiles.algorithms.Node} (switching between two same-layer * {@link yfiles.algorithms.Edge}s on two different sides of the layer). - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @returns {yfiles.algorithms.Node} the new same-layer switch proxy {@link yfiles.algorithms.Node} + * @param layer the given {@link } + * @param edge the given {@link } + * @returns the new same-layer switch proxy {@link } * @abstract */ createSameLayerSwitchProxy(layer:yfiles.hierarchic.ILayer,edge:yfiles.algorithms.Edge):yfiles.algorithms.Node; /** * Creates an {@link yfiles.hierarchic.IEdgeData} object for a self-loop {@link yfiles.algorithms.Edge} and associates it with the edge. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @returns {yfiles.hierarchic.IEdgeData} an {@link yfiles.hierarchic.IEdgeData} object for a self-loop {@link yfiles.algorithms.Edge} + * @param edge the given {@link } + * @returns an {@link } object for a self-loop {@link } * @abstract */ createSelfLoopEdgeData(edge:yfiles.algorithms.Edge):yfiles.hierarchic.IEdgeData; /** * Destroys a spacer {@link yfiles.algorithms.Node} for the drawing phase created using * {@link yfiles.hierarchic.IItemFactory#createDistanceNode}. - * @param {yfiles.algorithms.Node} distanceNode the {@link yfiles.algorithms.Node} to be destroyed + * @param distanceNode the {@link } to be destroyed * @abstract */ destroyDistanceNode(distanceNode:yfiles.algorithms.Node):void; /** * Removes the given layer for proxies at groups to handle direct group content connector edges between a node in the * first/last layer of the group node and the groups border. - * @param {yfiles.hierarchic.ILayer} layer the layer to destroy - * @param {boolean} useInEdges whether the incoming edges should be used as the resulting edges + * @param layer the layer to destroy + * @param useInEdges whether the incoming edges should be used as the resulting edges * @see yfiles.hierarchic.EdgeLayoutDescriptor#directGroupContentEdgeRouting * @abstract */ destroyGroupConnectorLayer(layer:yfiles.hierarchic.ILayer,useInEdges:boolean):void; /** * Destroys a previously created label layer - * @param {yfiles.hierarchic.ILayer} layer the layer to destroy - * @param {boolean} useInEdges whether the incoming edges should be used as the resulting edges + * @param layer the layer to destroy + * @param useInEdges whether the incoming edges should be used as the resulting edges * @abstract */ destroyLabelNodeLayer(layer:yfiles.hierarchic.ILayer,useInEdges:boolean):void; /** - * Destroys a proxy {@link yfiles.algorithms.Node} created using CreateProxyNode for the drawing phase. - * @param {yfiles.algorithms.Node} proxyNode the proxy {@link yfiles.algorithms.Node} to be destroyed - * @returns {yfiles.algorithms.Edge} + * Destroys a proxy {@link yfiles.algorithms.Node} created using {@link yfiles.hierarchic.IItemFactory#createProxyNode} for the drawing + * phase. + * @param proxyNode the proxy {@link } to be destroyed + * @returns * @abstract */ destroyProxyNode(proxyNode:yfiles.algorithms.Node):yfiles.algorithms.Edge; /** * Destroys a same-layer {@link yfiles.algorithms.Edge} proxy created using {@link yfiles.hierarchic.IItemFactory#createSameLayerProxy}. - * @param {yfiles.algorithms.Edge} edge the {@link yfiles.algorithms.Edge} whose proxy will be destroyed - * @returns {yfiles.algorithms.Edge} the redefined {@link yfiles.algorithms.Edge} after the removal of the proxy {@link yfiles.algorithms.Node} + * @param edge the {@link } whose proxy will be destroyed + * @returns the redefined {@link } after the removal of the proxy {@link } * @abstract */ destroySameLayerProxy(edge:yfiles.algorithms.Edge):yfiles.algorithms.Edge; /** - * Destroys a proxy {@link yfiles.algorithms.Node} created using CreateProxyNode for the drawing phase. - * @param {yfiles.algorithms.Node} proxyNode the proxy {@link yfiles.algorithms.Node} to be destroyed + * Destroys a proxy {@link yfiles.algorithms.Node} created using {@link yfiles.hierarchic.IItemFactory#createProxyNode} for the drawing + * phase. + * @param proxyNode the proxy {@link } to be destroyed * @abstract */ destroySameLayerSideProxy(proxyNode:yfiles.algorithms.Node):void; /** * Destroys a same-layer switch proxy {@link yfiles.algorithms.Node} created using * {@link yfiles.hierarchic.IItemFactory#createSameLayerSwitchProxy}. - * @param {yfiles.algorithms.Node} node the {@link yfiles.algorithms.Node} to be destroyed - * @returns {yfiles.algorithms.Edge} the redefined {@link yfiles.algorithms.Edge} after the removal of the same-layer switch proxy {@link yfiles.algorithms.Node} + * @param node the {@link } to be destroyed + * @returns the redefined {@link } after the removal of the same-layer switch proxy {@link } * @abstract */ destroySameLayerSwitchProxy(node:yfiles.algorithms.Node):yfiles.algorithms.Edge; @@ -103737,81 +97532,81 @@ declare namespace system{ * Inserts a same-layer {@link yfiles.algorithms.Edge} or an {@link yfiles.algorithms.Edge} that may span multiple layers into the data * structure and returns the resulting list of * {@link yfiles.algorithms.Edge}s that has been created if this edge spans multiple layers. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @returns {yfiles.algorithms.EdgeList} the resulting list of {@link yfiles.algorithms.Edge}s that has been created if this edge spans multiple layers + * @param edge the given {@link } + * @returns the resulting list of {@link }s that has been created if this edge spans multiple layers * @abstract */ insertEdge(edge:yfiles.algorithms.Edge):yfiles.algorithms.EdgeList; /** * Inserts a layer for proxies at groups to handle direct group content connector edges between a node in the first/last * layer of the group node and the groups border. - * @param {boolean} top true if this layer is placed above a group nodes, false if placed below - * @param {number} index the index where the layer is inserted - * @returns {yfiles.hierarchic.ILayer} the new layer + * @param top true if this layer is placed above a group nodes, false if placed below + * @param index the index where the layer is inserted + * @returns the new layer * @see yfiles.hierarchic.EdgeLayoutDescriptor#directGroupContentEdgeRouting * @abstract */ insertGroupConnectorLayer(top:boolean,index:number):yfiles.hierarchic.ILayer; /** * Inserts a {@link yfiles.hierarchic.ILayer layer} for group {@link yfiles.algorithms.Node}s. - * @param {boolean} source true if the group refers to the source node of an edge, false otherwise - * @param {number} index the index at which the specified {@link yfiles.hierarchic.ILayer layer} is to be inserted - * @returns {yfiles.hierarchic.ILayer} a {@link yfiles.hierarchic.ILayer layer} instance + * @param source true if the group refers to the source node of an edge, false otherwise + * @param index the index at which the specified {@link layer} is to be inserted + * @returns a {@link layer} instance * @abstract */ insertGroupNodeLayer(source:boolean,index:number):yfiles.hierarchic.ILayer; /** * Inserts a {@link yfiles.hierarchic.ILayer} for labels. - * @param {boolean} source true if the source node of the edge, false otherwise - * @param {number} index the index at which the specified {@link yfiles.hierarchic.ILayer} is to be inserted - * @returns {yfiles.hierarchic.ILayer} a {@link yfiles.hierarchic.ILayer layer} instance + * @param source true if the source node of the edge, false otherwise + * @param index the index at which the specified {@link } is to be inserted + * @returns a {@link layer} instance * @abstract */ insertLabelNodeLayer(source:boolean,index:number):yfiles.hierarchic.ILayer; /** * Registers an {@link yfiles.algorithms.Edge} as a same-layer {@link yfiles.algorithms.Edge} appropriately into all data structures. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} to be registered + * @param edge the given {@link } to be registered * @abstract */ registerSameLayerEdge(edge:yfiles.algorithms.Edge):void; /** * Converts a same-layer {@link yfiles.algorithms.Edge} to an {@link yfiles.algorithms.Edge} of type * {@link yfiles.hierarchic.EdgeDataType#DIRECT_SAME_LAYER_EDGE}. - * @param {yfiles.algorithms.Edge} sameLayerEdge the given same-layer {@link yfiles.algorithms.Edge} + * @param sameLayerEdge the given same-layer {@link } * @abstract */ setDirectlyConnectSameLayerEdge(sameLayerEdge:yfiles.algorithms.Edge):void; /** * Specifies an edge group constraint for an {@link yfiles.algorithms.Edge} and assigns it to an {@link yfiles.hierarchic.IEdgeData} * object. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {Object} sgId the ID of the edge group at the source node - * @param {Object} tgId the ID of the edge group at the target node - * @returns {yfiles.hierarchic.IEdgeData} an {@link yfiles.hierarchic.IEdgeData} object + * @param edge the given {@link } + * @param sgId the ID of the edge group at the source node + * @param tgId the ID of the edge group at the target node + * @returns an {@link } object * @abstract */ setTemporaryEdgeGroups(edge:yfiles.algorithms.Edge,sgId:Object,tgId:Object):yfiles.hierarchic.IEdgeData; /** * Specifies the thickness for an {@link yfiles.algorithms.Edge} and defines it in an {@link yfiles.hierarchic.IEdgeData} object. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {number} thickness the new edge thickness - * @returns {yfiles.hierarchic.IEdgeData} an {@link yfiles.hierarchic.IEdgeData} object with an adjusted {@link yfiles.hierarchic.EdgeLayoutDescriptor} + * @param edge the given {@link } + * @param thickness the new edge thickness + * @returns an {@link } object with an adjusted {@link } * @abstract */ setTemporaryEdgeThickness(edge:yfiles.algorithms.Edge,thickness:number):yfiles.hierarchic.IEdgeData; /** * Specifies a port constraint for an {@link yfiles.algorithms.Edge} at the given side and assigns it to an {@link yfiles.hierarchic.IEdgeData} * object. - * @param {yfiles.algorithms.Edge} edge the given {@link yfiles.algorithms.Edge} - * @param {boolean} source true of the port constraint is defined on the source node of the {@link yfiles.algorithms.Edge}, false otherwise - * @param {yfiles.layout.PortConstraint} pc the given {@link yfiles.layout.PortConstraint} instance - * @returns {yfiles.hierarchic.IEdgeData} an {@link yfiles.hierarchic.IEdgeData} object + * @param edge the given {@link } + * @param source true of the port constraint is defined on the source node of the {@link }, false otherwise + * @param pc the given {@link } instance + * @returns an {@link } object * @abstract */ setTemporaryPortConstraint(edge:yfiles.algorithms.Edge,source:boolean,pc:yfiles.layout.PortConstraint):yfiles.hierarchic.IEdgeData; /** * Reverts a label node to the normal {@link yfiles.algorithms.Node}. - * @param {yfiles.algorithms.Node} labelNode the given label node to be converted + * @param labelNode the given label node to be converted * @abstract */ unconvertToLabelNode(labelNode:yfiles.algorithms.Node):void; @@ -103834,19 +97629,19 @@ declare namespace system{ export interface ILayer extends Object{ /** * Adds a newly created {@link yfiles.algorithms.Node} to this {@link yfiles.hierarchic.ILayer} instance. - * @param {yfiles.algorithms.Node} node the {@link yfiles.algorithms.Node} to be added + * @param node the {@link } to be added * @abstract */ add(node:yfiles.algorithms.Node):void; /** * Adds a same-layer {@link yfiles.algorithms.Edge} to this {@link yfiles.hierarchic.ILayer} instance. - * @param {yfiles.algorithms.Edge} edge the same-layer {@link yfiles.algorithms.Edge} to be added + * @param edge the same-layer {@link } to be added * @abstract */ addSameLayerEdge(edge:yfiles.algorithms.Edge):void; /** * Removes a {@link yfiles.algorithms.Node} from this {@link yfiles.hierarchic.ILayer} instance. - * @param {yfiles.algorithms.Node} node the {@link yfiles.algorithms.Node} to be removed + * @param node the {@link } to be removed * @abstract */ remove(node:yfiles.algorithms.Node):void; @@ -103858,7 +97653,7 @@ declare namespace system{ /** * Adjusts the order of the {@link yfiles.algorithms.Node}s of this {@link yfiles.hierarchic.ILayer} instance according to the given * order. - * @param {yfiles.algorithms.YList} list the given list to be used + * @param list the given list to be used * @abstract */ setNodeOrder(list:yfiles.algorithms.YList):void; @@ -103919,10 +97714,10 @@ declare namespace system{ * The state of the source {@link yfiles.hierarchic.ILayers} instance is discarded after this call and does not need to be updated * to reflect the changes. The target {@link yfiles.hierarchic.ILayers} instance must be updated accordingly. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph containing the nodes of source and target {@link yfiles.hierarchic.ILayers} instances - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for querying the layer indices - * @param {yfiles.hierarchic.ILayers} srcLayers the source {@link yfiles.hierarchic.ILayers} instance that will be merged into the target {@link yfiles.hierarchic.ILayers} instance - * @param {yfiles.hierarchic.ILayers} targetLayers the {@link yfiles.hierarchic.ILayers} instance that will be modified to contain the resulting layering + * @param graph the graph containing the nodes of source and target {@link } instances + * @param ldp the {@link } used for querying the layer indices + * @param srcLayers the source {@link } instance that will be merged into the target {@link } instance + * @param targetLayers the {@link } instance that will be modified to contain the resulting layering * @abstract */ merge(graph:yfiles.layout.LayoutGraph,ldp:yfiles.hierarchic.ILayoutDataProvider,srcLayers:yfiles.hierarchic.ILayers,targetLayers:yfiles.hierarchic.ILayers):void; @@ -103952,9 +97747,9 @@ declare namespace system{ * Information about the nodes is provided by a {@link yfiles.hierarchic.ILayoutDataProvider}. However, positional information (see * {@link yfiles.hierarchic.INodeData#position} and {@link yfiles.hierarchic.INodeData#layer}) is not available during this phase. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for querying information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for querying information about the nodes and edges * @see yfiles.hierarchic.ILayers#insert * @see yfiles.hierarchic.ILayer#add * @abstract @@ -103982,34 +97777,34 @@ declare namespace system{ /** * Creates a new and empty {@link yfiles.hierarchic.ILayers} instance that can be used on the same graph instance for temporary * results. - * @returns {yfiles.hierarchic.ILayers} a new and empty {@link yfiles.hierarchic.ILayers} instance + * @returns a new and empty {@link } instance * @abstract */ createInstance():yfiles.hierarchic.ILayers; /** * Returns the {@link yfiles.hierarchic.ILayer layer} at the specified position in this {@link yfiles.hierarchic.ILayers list of layers}. - * @param {number} i the zero-based index of the {@link yfiles.hierarchic.ILayer layer} to return - * @returns {yfiles.hierarchic.ILayer} the {@link yfiles.hierarchic.ILayer layer} at the specified position + * @param i the zero-based index of the {@link layer} to return + * @returns the {@link layer} at the specified position * @abstract */ getLayer(i:number):yfiles.hierarchic.ILayer; /** * Creates, inserts and returns a {@link yfiles.hierarchic.ILayer layer} of a given type associated with this {@link yfiles.hierarchic.ILayers list of layers}. - * @param {yfiles.hierarchic.LayerType} type one of the predefined layer types as defined in {@link yfiles.hierarchic.ILayer} interface - * @param {number} position the index at which the specified {@link yfiles.hierarchic.ILayer layer} is to be inserted - * @returns {yfiles.hierarchic.ILayer} a new {@link yfiles.hierarchic.ILayer} instance + * @param type one of the predefined layer types as defined in {@link } interface + * @param position the index at which the specified {@link layer} is to be inserted + * @returns a new {@link } instance * @abstract */ insert(type:yfiles.hierarchic.LayerType,position:number):yfiles.hierarchic.ILayer; /** * Removes the {@link yfiles.hierarchic.ILayer layer} at the specified position from this {@link yfiles.hierarchic.ILayers list of layers}. - * @param {number} index the zero-based index of the {@link yfiles.hierarchic.ILayer layer} to remove + * @param index the zero-based index of the {@link layer} to remove * @abstract */ remove(index:number):void; /** * Returns the number of {@link yfiles.hierarchic.ILayer layers} associated with this {@link yfiles.hierarchic.ILayers} instance. - * @returns {number} the number of layers of this {@link yfiles.hierarchic.ILayers} instance + * @returns the number of layers of this {@link } instance * @abstract */ size():number; @@ -104031,15 +97826,15 @@ declare namespace system{ export interface ILayoutDataProvider extends Object{ /** * Returns the {@link yfiles.hierarchic.IEdgeData} instance associated with the given {@link yfiles.algorithms.Edge}. - * @param {yfiles.algorithms.Edge} edge the given edge - * @returns {yfiles.hierarchic.IEdgeData} the {@link yfiles.hierarchic.IEdgeData} instance associated with the edge + * @param edge the given edge + * @returns the {@link } instance associated with the edge * @abstract */ getEdgeData(edge:yfiles.algorithms.Edge):yfiles.hierarchic.IEdgeData; /** * Returns the {@link yfiles.hierarchic.INodeData} instance associated with the given {@link yfiles.algorithms.Node}. - * @param {yfiles.algorithms.Node} node the given node - * @returns {yfiles.hierarchic.INodeData} the {@link yfiles.hierarchic.INodeData} instance associated with the node + * @param node the given node + * @returns the {@link } instance associated with the node * @abstract */ getNodeData(node:yfiles.algorithms.Node):yfiles.hierarchic.INodeData; @@ -104078,9 +97873,9 @@ declare namespace system{ * Side value must be inside [0,3] interval, where 0 corresponds to the top side, 1 to the right side, 2 to the bottom side * and 3 to the left side. *

    - * @param {number} side an integer value from [0,3] interval - * @param {yfiles.layout.INodeLayout} nodeLayout the {@link yfiles.layout.INodeLayout} of the current node - * @returns {yfiles.algorithms.BorderLine} a {@link yfiles.algorithms.BorderLine} instance + * @param side an integer value from [0,3] interval + * @param nodeLayout the {@link } of the current node + * @returns a {@link } instance * @throws {Stubs.Exceptions.NotSupportedError} if this {@link yfiles.hierarchic.INodeData#type type} of node does not support node borders * @see yfiles.hierarchic.INodeData#getNormalizedBorderLine * @abstract @@ -104099,8 +97894,8 @@ declare namespace system{ * Side value must be inside [0,3] interval, where 0 corresponds to the top side, 1 to the right side, 2 to the bottom side * and 3 to the left side. *

    - * @param {number} side an integer value from [0,3] interval - * @returns {yfiles.algorithms.BorderLine} a {@link yfiles.algorithms.BorderLine} instance or null + * @param side an integer value from [0,3] interval + * @returns a {@link } instance or null * @see yfiles.hierarchic.INodeData#createBorderLine * @abstract */ @@ -104108,7 +97903,7 @@ declare namespace system{ /** * Returns the number of same-layer edges associated with the {@link yfiles.algorithms.Node} of this {@link yfiles.hierarchic.INodeData} * instance. - * @returns {number} the number of same-layer edges associated with the node + * @returns the number of same-layer edges associated with the node * @abstract */ sameLayerEdgeCount():number; @@ -104249,9 +98044,9 @@ declare namespace system{ * The distance between two layers will be adjusted later by the edge routing algorithm. This method is responsible for * assigning the relative positions of the nodes within each layer. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} layoutDataProvider the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the elements - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be calculated by this method + * @param graph the input graph + * @param layoutDataProvider the {@link } containing information about the elements + * @param layers the {@link } instance that will be calculated by this method * @abstract */ assignLayerCoordinates(graph:yfiles.layout.LayoutGraph,layoutDataProvider:yfiles.hierarchic.ILayoutDataProvider,layers:yfiles.hierarchic.ILayers):void; @@ -104261,10 +98056,10 @@ declare namespace system{ * The minimum distance between each pair of nodes of the graph is determined by a {@link yfiles.hierarchic.IDrawingDistanceCalculator} * instance. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} layoutDataProvider the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the elements - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be calculated by this method - * @param {yfiles.hierarchic.IDrawingDistanceCalculator} drawingDistanceCalculator the given {@link yfiles.hierarchic.IDrawingDistanceCalculator} instance + * @param graph the input graph + * @param layoutDataProvider the {@link } containing information about the elements + * @param layers the {@link } instance that will be calculated by this method + * @param drawingDistanceCalculator the given {@link } instance * @abstract */ assignSequenceCoordinates(graph:yfiles.layout.LayoutGraph,layoutDataProvider:yfiles.hierarchic.ILayoutDataProvider,layers:yfiles.hierarchic.ILayers,drawingDistanceCalculator:yfiles.hierarchic.IDrawingDistanceCalculator):void; @@ -104287,10 +98082,10 @@ declare namespace system{ *

    * This method is called by {@link yfiles.hierarchic.HierarchicLayoutCore} after the sequencing phase. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance containing the elements in the layering - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing layering information about the nodes and edges of the graph - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} used temporarily for modifying the graph instance + * @param graph the input graph + * @param layers the given {@link } instance containing the elements in the layering + * @param ldp the {@link } containing layering information about the nodes and edges of the graph + * @param itemFactory the {@link } used temporarily for modifying the graph instance * @abstract */ assignPorts(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider,itemFactory:yfiles.hierarchic.IItemFactory):void; @@ -104311,20 +98106,20 @@ declare namespace system{ export interface IPortConstraintOptimizer extends Object{ /** * Assigns new temporary port constraints after the layering information has been determined. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the elements - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} to set the temporary port constraints with + * @param graph the input graph + * @param layers the given {@link } instance + * @param ldp the {@link } containing information about the elements + * @param itemFactory the {@link } to set the temporary port constraints with * @see yfiles.hierarchic.IItemFactory#setTemporaryPortConstraint * @abstract */ optimizeAfterLayering(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider,itemFactory:yfiles.hierarchic.IItemFactory):void; /** * Assigns new temporary port constraints after the sequence of the nodes has been determined. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} containing information about the elements - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} to set the temporary port constraints with + * @param graph the input graph + * @param layers the given {@link } instance + * @param ldp the {@link } containing information about the elements + * @param itemFactory the {@link } to set the temporary port constraints with * @see yfiles.hierarchic.IItemFactory#setTemporaryPortConstraint * @abstract */ @@ -104351,11 +98146,11 @@ declare namespace system{ * This method is called by {@link yfiles.hierarchic.HierarchicLayoutCore} during the second phase and finally writes back the * calculated sequence using the {@link yfiles.hierarchic.ILayer#setNodeOrder} method. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance containing the elements in the layering - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param layers the given {@link } instance containing the elements in the layering + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory} used temporarily for modifying the graph instance + * @param itemFactory the {@link } used temporarily for modifying the graph instance * @abstract */ sequenceNodeLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider,itemFactory:yfiles.hierarchic.IItemFactory):void; @@ -104372,7 +98167,7 @@ declare namespace system{ * layered separately using the delegate {@link yfiles.hierarchic.ILayerer} instance. After that they will all be merged using the * specified {@link yfiles.hierarchic.ILayeredComponentsMerger} instance. *

    - * @class yfiles.hierarchic.MultiComponentLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface MultiComponentLayerer extends Object,yfiles.hierarchic.ILayerer{} @@ -104380,11 +98175,10 @@ declare namespace system{ /** * Creates a new instance of {@link yfiles.hierarchic.MultiComponentLayerer} using the given {@link yfiles.hierarchic.ILayeredComponentsMerger} * and {@link yfiles.collections.IComparer.} instances. - * @param {yfiles.hierarchic.ILayerer} singleComponentLayerer - * @param {yfiles.hierarchic.ILayeredComponentsMerger} merger - * @param {yfiles.collections.IComparer.} componentComparer + * @param singleComponentLayerer + * @param merger + * @param componentComparer * @throws {Stubs.Exceptions.ArgumentError} if the given layerer or merger is null - * @constructor */ constructor(singleComponentLayerer:yfiles.hierarchic.ILayerer,merger:yfiles.hierarchic.ILayeredComponentsMerger,componentComparer:yfiles.collections.IComparer); /** @@ -104393,16 +98187,15 @@ declare namespace system{ * A new instance of {@link yfiles.hierarchic.DefaultLayeredComponentsMerger} will be used as merger while no component {@link yfiles.collections.IComparer.} will be * used. *

    - * @param {yfiles.hierarchic.ILayerer} singleComponentLayerer + * @param singleComponentLayerer * @throws {Stubs.Exceptions.ArgumentError} if the given layerer is null - * @constructor */ constructor(singleComponentLayerer:yfiles.hierarchic.ILayerer); /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayers} layers - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp + * @param graph + * @param layers + * @param ldp */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** @@ -104414,8 +98207,8 @@ declare namespace system{ *

    * By default this method uses the {@link yfiles.hierarchic.MultiComponentLayerer#componentComparer ComponentComparator} to sort the list and has no effect if the instance is null. *

    - * @param {Array.} nodeLists the array of {@link yfiles.algorithms.NodeList}s each of which containing nodes that belong to the same component - * @param {yfiles.algorithms.IDataProvider} componentIndexProvider the {@link yfiles.algorithms.IDataProvider} that returns an object (the component index) for each node (this value can be either + * @param nodeLists the array of {@link }s each of which containing nodes that belong to the same component + * @param componentIndexProvider the {@link } that returns an object (the component index) for each node (this value can be either * integer or object) * @protected */ @@ -104453,13 +98246,12 @@ declare namespace system{ *

    * @see yfiles.hierarchic.HierarchicLayoutCore#NODE_LAYOUT_DESCRIPTOR_DP_KEY * @see yfiles.hierarchic.EdgeLayoutDescriptor - * @class yfiles.hierarchic.NodeLayoutDescriptor + * @class */ export interface NodeLayoutDescriptor extends Object{} export class NodeLayoutDescriptor { /** * Creates a new instance of a {@link yfiles.hierarchic.NodeLayoutDescriptor} with the default values. - * @constructor */ constructor(); /** @@ -104480,8 +98272,8 @@ declare namespace system{ *

    * A value of Double.POSITIVE_INFINITY results in all ports being centered at the side in one point. *

    - * @param {number} side the zero-based clockwise side index for top-to-bottom layouts (i.e., top is 0) - * @returns {number} the border gap ratio of a given side + * @param side the zero-based clockwise side index for top-to-bottom layouts (i.e., top is 0) + * @returns the border gap ratio of a given side * @see yfiles.hierarchic.NodeLayoutDescriptor#portBorderGapRatios * @see yfiles.hierarchic.NodeLayoutDescriptor#setPortBorderGapRatio */ @@ -104504,8 +98296,8 @@ declare namespace system{ *

    * A value of Double.POSITIVE_INFINITY results in all ports being centered at the side in one point. *

    - * @param {number} side the zero-based clockwise side index for top-to-bottom layouts (i.e., top is 0) - * @param {number} ratio the given ratio + * @param side the zero-based clockwise side index for top-to-bottom layouts (i.e., top is 0) + * @param ratio the given ratio * @throws {Stubs.Exceptions.ArgumentError} if the given ratio is negative * @see yfiles.hierarchic.NodeLayoutDescriptor#portBorderGapRatios */ @@ -104592,14 +98384,13 @@ declare namespace system{ *

    * @see yfiles.layout.PartitionGrid * @see yfiles.hierarchic.HierarchicLayout - * @class yfiles.hierarchic.PartitionGridLayoutStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface PartitionGridLayoutStage extends yfiles.layout.LayoutStageBase{} export class PartitionGridLayoutStage { /** * Creates a new instance of {@link yfiles.hierarchic.PartitionGridLayoutStage}. - * @constructor */ constructor(); static $class:yfiles.lang.Class; @@ -104620,20 +98411,19 @@ declare namespace system{ * @see yfiles.layout.PortCandidate#cost * @see yfiles.layout.PortCandidateSet#entries * @see yfiles.layout.PortCandidateSet#connectionCount - * @class yfiles.hierarchic.PortCandidateOptimizer + * @class * @extends {yfiles.hierarchic.PortConstraintOptimizerBase} */ export interface PortCandidateOptimizer extends yfiles.hierarchic.PortConstraintOptimizerBase{} export class PortCandidateOptimizer { /** * Creates a new instance of {@link yfiles.hierarchic.PortCandidateOptimizer} with the default settings. - * @constructor */ constructor(); /** * Returns the data provider that provides the port candidate sets for nodes. - * @param {yfiles.layout.LayoutGraph} graph The graph that stores the data provider - * @returns {yfiles.algorithms.IDataProvider} + * @param graph The graph that stores the data provider + * @returns * @protected */ getPortCandidateSetDataProvider(graph:yfiles.layout.LayoutGraph):yfiles.algorithms.IDataProvider; @@ -104678,26 +98468,25 @@ declare namespace system{ /** * This static class provides information about the same-layer structures created by class * {@link yfiles.hierarchic.PortConstraintOptimizerBase}. - * @class yfiles.hierarchic.PortConstraintOptimizerSameLayerData + * @class */ export interface PortConstraintOptimizerSameLayerData extends Object{} export class PortConstraintOptimizerSameLayerData { /** * Creates a new {@link yfiles.hierarchic.PortConstraintOptimizerSameLayerData} instance. - * @constructor */ constructor(); /** * Adds a given dummy {@link yfiles.algorithms.Node} to this {@link yfiles.hierarchic.PortConstraintOptimizerSameLayerData} instance and * associates it with the given original (same-layer) {@link yfiles.algorithms.Edge}. - * @param {yfiles.algorithms.Node} sameLayerDummy a dummy node - * @param {yfiles.algorithms.Edge} originalEdge the original (same-layer) edge + * @param sameLayerDummy a dummy node + * @param originalEdge the original (same-layer) edge */ addDummyNode(sameLayerDummy:yfiles.algorithms.Node,originalEdge:yfiles.algorithms.Edge):void; /** * Returns the original (same-layer) edge associated with the given dummy {@link yfiles.algorithms.Node}. - * @param {yfiles.algorithms.Node} sameLayerDummy a given dummy node - * @returns {yfiles.algorithms.Edge} the original (same-layer) edge associated with the given dummy node + * @param sameLayerDummy a given dummy node + * @returns the original (same-layer) edge associated with the given dummy node */ getOriginalEdge(sameLayerDummy:yfiles.algorithms.Node):yfiles.algorithms.Edge; /** @@ -104721,7 +98510,7 @@ declare namespace system{ *
  • Invokes {@link yfiles.hierarchic.PortConstraintOptimizerBase#optimizeAfterSequencingForSingleNode the hook} in which the custom port assignment should be done.
  • *
  • Restores the original state of the layout graph by removing the temporary same-layer edges added in Step 1.
  • * - * @class yfiles.hierarchic.PortConstraintOptimizerBase + * @class * @implements {yfiles.hierarchic.IPortConstraintOptimizer} */ export interface PortConstraintOptimizerBase extends Object,yfiles.hierarchic.IPortConstraintOptimizer{} @@ -104729,17 +98518,16 @@ declare namespace system{ /** * Creates a new {@link yfiles.hierarchic.PortConstraintOptimizerBase} instance with default settings. * @protected - * @constructor */ constructor(); /** * Inserts a same-layer edge structure for each same-layer edge of the original graph. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance holding the layering information - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param layers the given {@link } instance holding the layering information + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory factory} that sets the temporary port constraints - * @returns {yfiles.hierarchic.PortConstraintOptimizerSameLayerData} + * @param itemFactory the {@link factory} that sets the temporary port constraints + * @returns * @see yfiles.hierarchic.IItemFactory#setTemporaryPortConstraint * @protected */ @@ -104751,11 +98539,11 @@ declare namespace system{ * back-loops by assigning incoming edges to the south (i.e. bottom) side or outgoing edges to the north (i.e. top) side, * respectively. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance holding the layering information - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param layers the given {@link } instance holding the layering information + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory factory} that sets the temporary port constraints + * @param itemFactory the {@link factory} that sets the temporary port constraints * @see yfiles.hierarchic.IItemFactory#setTemporaryPortConstraint * @abstract */ @@ -104767,11 +98555,11 @@ declare namespace system{ * invokes {@link yfiles.hierarchic.PortConstraintOptimizerBase#optimizeAfterSequencingForSingleNode the hook} in which the custom port assignment should be done, and finally {@link yfiles.hierarchic.PortConstraintOptimizerBase#removeSameLayerStructures restores the original state} of the * layout graph by removing the temporary edges. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the given {@link yfiles.hierarchic.ILayers} instance holding the layering information - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param layers the given {@link } instance holding the layering information + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory factory} that sets the temporary port constraints + * @param itemFactory the {@link factory} that sets the temporary port constraints * @see yfiles.hierarchic.PortConstraintOptimizerBase#insertSameLayerStructures * @see yfiles.hierarchic.PortConstraintOptimizerBase#optimizeAfterSequencing * @see yfiles.hierarchic.PortConstraintOptimizerBase#removeSameLayerStructures @@ -104787,13 +98575,13 @@ declare namespace system{ * Incoming and outgoing edges are sorted using {@link yfiles.collections.IComparer.} instances which define the preferred ordering of the incoming and outgoing * edges from left to right. *

    - * @param {yfiles.collections.IComparer.} inEdgeOrder a given {@link yfiles.collections.IComparer.} instance for incoming edges - * @param {yfiles.collections.IComparer.} outEdgeOrder a given {@link yfiles.collections.IComparer.} instance for outgoing edges - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param inEdgeOrder a given {@link } instance for incoming edges + * @param outEdgeOrder a given {@link } instance for outgoing edges + * @param graph the input graph + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory factory} that sets the temporary port constraints - * @param {yfiles.hierarchic.ILayers} layers + * @param itemFactory the {@link factory} that sets the temporary port constraints + * @param layers * @see yfiles.hierarchic.PortConstraintOptimizerBase#optimizeAfterSequencing * @protected */ @@ -104808,13 +98596,13 @@ declare namespace system{ * Incoming and outgoing edges are sorted using {@link yfiles.collections.IComparer.} instances which define the preferred ordering of the incoming and outgoing * edges from left to right. *

    - * @param {yfiles.algorithms.Node} node the original node to set temporary port constraints - * @param {yfiles.collections.IComparer.} inEdgeOrder a given {@link yfiles.collections.IComparer.} instance for incoming edges - * @param {yfiles.collections.IComparer.} outEdgeOrder a given {@link yfiles.collections.IComparer.} instance for outgoing edges - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param node the original node to set temporary port constraints + * @param inEdgeOrder a given {@link } instance for incoming edges + * @param outEdgeOrder a given {@link } instance for outgoing edges + * @param graph the input graph + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory factory} that sets the temporary port constraints + * @param itemFactory the {@link factory} that sets the temporary port constraints * @see yfiles.hierarchic.PortConstraintOptimizerBase#optimizeAfterSequencing * @protected * @abstract @@ -104823,12 +98611,12 @@ declare namespace system{ /** * Removes the same-layer edge structure created using * {@link yfiles.hierarchic.PortConstraintOptimizerBase#insertSameLayerStructures}. - * @param {yfiles.hierarchic.PortConstraintOptimizerSameLayerData} sameLayerData a given {@link yfiles.hierarchic.PortConstraintOptimizerSameLayerData} instance holding the information about the same-layer + * @param sameLayerData a given {@link } instance holding the information about the same-layer * structures. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.IItemFactory} itemFactory the {@link yfiles.hierarchic.IItemFactory factory} that sets the temporary port constraints + * @param itemFactory the {@link factory} that sets the temporary port constraints * @see yfiles.hierarchic.IItemFactory#setTemporaryPortConstraint * @protected */ @@ -104861,15 +98649,14 @@ declare namespace system{ * This class is used by {@link yfiles.hierarchic.EdgeLayoutDescriptor} to specify the routing style for different types of edges. * @see yfiles.hierarchic.EdgeLayoutDescriptor#routingStyle * @see yfiles.hierarchic.IEdgeData#type - * @class yfiles.hierarchic.RoutingStyle + * @class */ export interface RoutingStyle extends Object{} export class RoutingStyle { /** * Creates a new {@link yfiles.hierarchic.RoutingStyle} instance with the given routing style for each edge. - * @param {yfiles.hierarchic.EdgeRoutingStyle} routingStyle one of the predefined routing styles + * @param routingStyle one of the predefined routing styles * @throws {Stubs.Exceptions.ArgumentError} if an unknown routing style is given - * @constructor */ constructor(routingStyle:yfiles.hierarchic.EdgeRoutingStyle); /** @@ -104921,15 +98708,14 @@ declare namespace system{ *

    * It is used during the layout phase of {@link yfiles.hierarchic.HierarchicLayoutCore}, but can be used as a stand-alone tool. *

    - * @class yfiles.hierarchic.SelfLoopCalculator + * @class */ export interface SelfLoopCalculator extends Object{} export class SelfLoopCalculator { /** * Creates a new instance of {@link yfiles.hierarchic.SelfLoopCalculator} using the given parameters. - * @param {number} minFirstSegmentLength the minimum length of the first and last segment of an orthogonally routed self-loop - * @param {number} minEdgeDistance the minimum distance between a pair of self-loops - * @constructor + * @param minFirstSegmentLength the minimum length of the first and last segment of an orthogonally routed self-loop + * @param minEdgeDistance the minimum distance between a pair of self-loops */ constructor(minFirstSegmentLength:number,minEdgeDistance:number); /** @@ -104939,12 +98725,12 @@ declare namespace system{ * instances hold information about the source/target ports of the edges and can be used for specifying the direction of * first and last segments. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} node the node whose self-loops will be routed - * @param {yfiles.algorithms.YList} selfLoops a list of {@link yfiles.algorithms.Edge}s that will be routed - * @param {yfiles.algorithms.IDataProvider} spc the {@link yfiles.algorithms.IDataProvider} that returns the {@link yfiles.layout.PortConstraint} object associated with the source + * @param graph the input graph + * @param node the node whose self-loops will be routed + * @param selfLoops a list of {@link }s that will be routed + * @param spc the {@link } that returns the {@link } object associated with the source * ports of the edges - * @param {yfiles.algorithms.IDataProvider} tpc the {@link yfiles.algorithms.IDataProvider} that returns the {@link yfiles.layout.PortConstraint} object associated with the target + * @param tpc the {@link } that returns the {@link } object associated with the target * ports of the edges */ calculateSelfLoops(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node,selfLoops:yfiles.algorithms.YList,spc:yfiles.algorithms.IDataProvider,tpc:yfiles.algorithms.IDataProvider):void; @@ -104955,11 +98741,11 @@ declare namespace system{ * instances hold information about the source/target ports of the edges and can be used for specifying the direction of * first and last segments. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} node the node whose self-loops will be routed - * @param {yfiles.algorithms.IDataProvider} spc the {@link yfiles.algorithms.IDataProvider} that returns the {@link yfiles.layout.PortConstraint} object associated with the source + * @param graph the input graph + * @param node the node whose self-loops will be routed + * @param spc the {@link } that returns the {@link } object associated with the source * ports of the edges - * @param {yfiles.algorithms.IDataProvider} tpc the {@link yfiles.algorithms.IDataProvider} that returns the {@link yfiles.layout.PortConstraint} object associated with the target + * @param tpc the {@link } that returns the {@link } object associated with the target * ports of the edges */ calculateSelfLoops(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node,spc:yfiles.algorithms.IDataProvider,tpc:yfiles.algorithms.IDataProvider):void; @@ -104969,9 +98755,9 @@ declare namespace system{ * The value is fetched from the corresponding {@link yfiles.algorithms.IDataProvider} registered with the graph with key * {@link yfiles.hierarchic.SelfLoopCalculator#MINIMUM_EDGE_DISTANCE_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the given edge - * @returns {number} the minimum length between two edges + * @param graph the input graph + * @param edge the given edge + * @returns the minimum length between two edges * @protected */ getMinimumDistance(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):number; @@ -104981,9 +98767,9 @@ declare namespace system{ * The value is fetched from the corresponding {@link yfiles.algorithms.IDataProvider} registered with the graph with key * {@link yfiles.hierarchic.SelfLoopCalculator#MINIMUM_FIRST_SEGMENT_LENGTH_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the given edge - * @returns {number} the minimum length of the first segment of an edge + * @param graph the input graph + * @param edge the given edge + * @returns the minimum length of the first segment of an edge * @protected */ getMinimumFirstSegmentLength(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):number; @@ -104993,9 +98779,9 @@ declare namespace system{ * The value is fetched from the corresponding {@link yfiles.algorithms.IDataProvider} registered with the graph with key * {@link yfiles.hierarchic.SelfLoopCalculator#MINIMUM_LAST_SEGMENT_LENGTH_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the given edge - * @returns {number} the minimum length of the last segment of the given edge + * @param graph the input graph + * @param edge the given edge + * @returns the minimum length of the last segment of the given edge * @protected */ getMinimumLastSegmentLength(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):number; @@ -105005,9 +98791,9 @@ declare namespace system{ * The value is fetched from the corresponding {@link yfiles.algorithms.IDataProvider} registered with the graph with key * {@link yfiles.hierarchic.SelfLoopCalculator#MINIMUM_NODE_DISTANCE_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} node the given node - * @returns {number} the minimum distance between two nodes + * @param graph the input graph + * @param node the given node + * @returns the minimum distance between two nodes * @protected */ getMinimumNodeDistance(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):number; @@ -105017,9 +98803,9 @@ declare namespace system{ * The value is fetched from the corresponding {@link yfiles.algorithms.IDataProvider} registered with the graph with key * {@link yfiles.hierarchic.SelfLoopCalculator#MINIMUM_OCTILINEAR_SEGMENT_LENGTH_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the given edge - * @returns {number} the minimum octilinear segment length of the given edge + * @param graph the input graph + * @param edge the given edge + * @returns the minimum octilinear segment length of the given edge * @protected */ getMinimumOctilinearSegmentLength(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):number; @@ -105029,9 +98815,9 @@ declare namespace system{ * The value is fetched from the corresponding {@link yfiles.algorithms.IDataProvider} registered with the graph with key * {@link yfiles.hierarchic.SelfLoopCalculator#OCTILINEAR_EDGES_DP_KEY}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Edge} edge the given edge - * @returns {boolean} true if the edge is octilinear, false otherwise + * @param graph the input graph + * @param edge the given edge + * @returns true if the edge is octilinear, false otherwise * @protected */ isOctilinearEdge(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):boolean; @@ -105084,7 +98870,7 @@ declare namespace system{ *

    * The drawer works with integer values and rounds double values to integers using sophisticated quantizing. *

    - * @class yfiles.hierarchic.SimplexNodePlacer + * @class * @implements {yfiles.hierarchic.INodePlacer} */ export interface SimplexNodePlacer extends Object,yfiles.hierarchic.INodePlacer{} @@ -105092,9 +98878,9 @@ declare namespace system{ constructor(); /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayoutDataProvider} layoutDataProvider - * @param {yfiles.hierarchic.ILayers} layers + * @param graph + * @param layoutDataProvider + * @param layers */ assignLayerCoordinates(graph:yfiles.layout.LayoutGraph,layoutDataProvider:yfiles.hierarchic.ILayoutDataProvider,layers:yfiles.hierarchic.ILayers):void; /** @@ -105103,21 +98889,21 @@ declare namespace system{ * Information about sublayers is given by a {@link yfiles.algorithms.INodeMap} whose GetBool method has to return true for each * node that should be placed in the lower sublayer (values are set by this method). *

    - * @param {yfiles.algorithms.NodeList} layerNodes a {@link yfiles.algorithms.NodeList list} of all @link y.layout.hierarchic.incremental.NodeData#TYPE_NORMAL normal nodes} of a layer - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param layerNodes a {@link list} of all @link y.layout.hierarchic.incremental.NodeData#TYPE_NORMAL normal nodes} of a layer + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.layout.LayoutGraph} graph the given graph - * @param {yfiles.algorithms.INodeMap} lowerSublayer the {@link yfiles.algorithms.INodeMap} holding sublayer information + * @param graph the given graph + * @param lowerSublayer the {@link } holding sublayer information * @see yfiles.hierarchic.SimplexNodePlacer#nodeCompaction * @protected */ assignNodesToSublayer(layerNodes:yfiles.algorithms.NodeList,ldp:yfiles.hierarchic.ILayoutDataProvider,graph:yfiles.layout.LayoutGraph,lowerSublayer:yfiles.algorithms.INodeMap):void; /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayoutDataProvider} layoutDataProvider - * @param {yfiles.hierarchic.ILayers} layers - * @param {yfiles.hierarchic.IDrawingDistanceCalculator} drawingDistanceCalculator + * @param graph + * @param layoutDataProvider + * @param layers + * @param drawingDistanceCalculator */ assignSequenceCoordinates(graph:yfiles.layout.LayoutGraph,layoutDataProvider:yfiles.hierarchic.ILayoutDataProvider,layers:yfiles.hierarchic.ILayers,drawingDistanceCalculator:yfiles.hierarchic.IDrawingDistanceCalculator):void; /** @@ -105125,13 +98911,13 @@ declare namespace system{ *

    * This callback method used by {@link yfiles.hierarchic.SimplexNodePlacer#assignLayerCoordinates}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the input graph + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.algorithms.Node} node the given node - * @param {number} layerIndex the index of the layer - * @param {number} minLayerHeight the minimum height of the layer - * @returns {number} + * @param node the given node + * @param layerIndex the index of the layer + * @param minLayerHeight the minimum height of the layer + * @returns * @protected */ getLayerAlignment(graph:yfiles.layout.LayoutGraph,ldp:yfiles.hierarchic.ILayoutDataProvider,node:yfiles.algorithms.Node,layerIndex:number,minLayerHeight:number):number; @@ -105140,11 +98926,11 @@ declare namespace system{ *

    * This callback method is used by {@link yfiles.hierarchic.SimplexNodePlacer#assignSequenceCoordinates}. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph that contains the nodes - * @param {yfiles.hierarchic.ILayer} layer the layer that contains the nodes - * @param {yfiles.algorithms.Node} predNode the node to the left of the other one, may be null to indicate a border line - * @param {yfiles.algorithms.Node} succ the node to the right of the other one, may be null to indicate a border line - * @returns {number} the minimum distance allowed between those two nodes ( >=0 ) + * @param graph the graph that contains the nodes + * @param layer the layer that contains the nodes + * @param predNode the node to the left of the other one, may be null to indicate a border line + * @param succ the node to the right of the other one, may be null to indicate a border line + * @returns the minimum distance allowed between those two nodes ( >=0 ) * @see yfiles.hierarchic.IDrawingDistanceCalculator * @protected */ @@ -105154,11 +98940,11 @@ declare namespace system{ *

    * This callback method is used by {@link yfiles.hierarchic.SimplexNodePlacer#assignLayerCoordinates}. *

    - * @param {yfiles.layout.LayoutGraph} graph the given graph - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the given graph + * @param ldp the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.hierarchic.ILayer} layer the given {@link yfiles.hierarchic.ILayer} object - * @returns {number} the minimum height + * @param layer the given {@link } object + * @returns the minimum height * @protected */ getMinimumLayerHeight(graph:yfiles.layout.LayoutGraph,ldp:yfiles.hierarchic.ILayoutDataProvider,layer:yfiles.hierarchic.ILayer):number; @@ -105172,12 +98958,12 @@ declare namespace system{ * If inLayer argument is true, this method is called from within the {@link yfiles.hierarchic.SimplexNodePlacer#assignLayerCoordinates} * method. *

    - * @param {yfiles.layout.LayoutGraph} graph the given graph - * @param {yfiles.hierarchic.ILayoutDataProvider} provider the {@link yfiles.hierarchic.ILayoutDataProvider} implementation which provides access to the {@link yfiles.hierarchic.INodeData} and {@link yfiles.hierarchic.IEdgeData} + * @param graph the given graph + * @param provider the {@link } implementation which provides access to the {@link } and {@link } * instances - * @param {yfiles.algorithms.Node} node the given node - * @param {boolean} inLayer true if the layer coordinate of the node is queried, false if the sequence coordinate is queried - * @returns {boolean} true if the node should be treated as fixed, false otherwise + * @param node the given node + * @param inLayer true if the layer coordinate of the node is queried, false if the sequence coordinate is queried + * @returns true if the node should be treated as fixed, false otherwise * @protected */ isFixedNode(graph:yfiles.layout.LayoutGraph,provider:yfiles.hierarchic.ILayoutDataProvider,node:yfiles.algorithms.Node,inLayer:boolean):boolean; @@ -105313,7 +99099,7 @@ declare namespace system{ * instance for each node of the graph. *

    * @see yfiles.hierarchic.HierarchicLayoutCore#SWIMLANE_DESCRIPTOR_DP_KEY - * @class yfiles.hierarchic.SwimlaneDescriptor + * @class * @implements {yfiles.lang.IComparable} */ export interface SwimlaneDescriptor extends Object,yfiles.lang.IComparable{} @@ -105323,24 +99109,22 @@ declare namespace system{ *

    * The given client {@link Object} should be an instance of {@link yfiles.lang.IComparable} if the given {@link yfiles.collections.IComparer.} is null. *

    - * @param {Object} clientObject a client {@link Object} used for sorting the lanes - * @param {yfiles.collections.IComparer.} comparer a {@link yfiles.collections.IComparer.} used for comparing the client objects + * @param clientObject a client {@link } used for sorting the lanes + * @param comparer a {@link } used for comparing the client objects * @throws {Stubs.Exceptions.ArgumentError} if the specified client {@link Object} is null or the specified {@link yfiles.collections.IComparer.} is null but the specified client {@link Object} is not an instance of * {@link yfiles.lang.IComparable}. - * @constructor */ constructor(clientObject:Object,comparer:yfiles.collections.IComparer); /** * Creates a new {@link yfiles.hierarchic.SwimlaneDescriptor} instance with a given {@link yfiles.lang.IComparable} object. - * @param {yfiles.lang.IComparable} clientObject a {@link yfiles.lang.IComparable} used for determining the order of the lanes + * @param clientObject a {@link } used for determining the order of the lanes * @throws {Stubs.Exceptions.ArgumentError} if the specified client object is null. - * @constructor */ constructor(clientObject:yfiles.lang.IComparable); /** * Implements the {@link yfiles.lang.IComparable} interface using the {@link yfiles.hierarchic.SwimlaneDescriptor#comparer} and {@link yfiles.hierarchic.SwimlaneDescriptor#clientObject} fields. - * @param {Object} o - * @returns {number} + * @param o + * @returns */ compareTo(o:Object):number; /** @@ -105446,14 +99230,13 @@ declare namespace system{ * @see yfiles.hierarchic.HierarchicLayout * @see yfiles.hierarchic.SwimlaneDescriptor * @see yfiles.layout.GroupingKeys - * @class yfiles.hierarchic.TopLevelGroupToSwimlaneStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface TopLevelGroupToSwimlaneStage extends yfiles.layout.LayoutStageBase{} export class TopLevelGroupToSwimlaneStage { /** * Creates a new instance of {@link yfiles.hierarchic.TopLevelGroupToSwimlaneStage} with the default settings. - * @constructor */ constructor(); /** @@ -105481,21 +99264,20 @@ declare namespace system{ *

    * {@graph {"ann":{"s":[30,30],"d":1},"n":[[63.79,0,[[73.45,24.35,10.67,18.7,"1"]]],[121,150,[[130.66,174.35,10.67,18.7,"2"]]],[71,150,[[80.66,174.35,10.67,18.7,"3"]]],[162.99,0,[[172.65,24.35,10.67,18.7,"6"]]],[162.99,70,[[172.65,94.35,10.67,18.7,"7"]]],[112.99,70,[[122.65,94.35,10.67,18.7,"8"]]],[30.99,70,[[37.31,94.35,17.35,18.7,"12"]]],[35.5,220,[[45.16,244.35,10.67,18.7,"8"]]],[0,150,[[9.66,174.35,10.67,18.7,"9"]]]],"e":[[5,1,0,15,0,-15,[127.99,120,136,120]],[0,1,10,15,-10,-15,[88.79,50,92.49,50,92.49,130,126,130]],[0,2,0,15,0,-15,[78.79,50,81.49,50,81.49,120,86,120]],[4,1,0,15,10,-15,[177.99,120,146,120]],[3,4,0,15,0,-15],[0,6,-10,15,0,-15,[68.79,50,45.99,50]],[6,7,7.5,15,0,-15,[53.49,120,50.5,120]],[6,8,-7.5,15,0,-15,[38.49,120,15,120]],[8,7,0,15,-10,-15,[15,200,40.5,200]],[2,7,0,15,10,-15,[86,200,60.5,200]]],"vp":[0.0,0.0,193.0,250.0]}} *

    - * @class yfiles.hierarchic.TopologicalLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface TopologicalLayerer extends Object,yfiles.hierarchic.ILayerer{} export class TopologicalLayerer { /** * Creates a new instance of {@link yfiles.hierarchic.TopologicalLayerer} with default settings. - * @constructor */ constructor(); /** * Assigns all nodes of the graph to layers and adds them to the {@link yfiles.hierarchic.ILayers} instance. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for querying information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for querying information about the nodes and edges */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** @@ -105509,38 +99291,37 @@ declare namespace system{ /** * This class is a {@link yfiles.hierarchic.IDrawingDistanceCalculator} implementation that returns the minimum distances for each * kind of node pair based on their type as returned by {@link yfiles.hierarchic.INodeData#type}. - * @class yfiles.hierarchic.TypeBasedDrawingDistanceCalculator + * @class * @implements {yfiles.hierarchic.IDrawingDistanceCalculator} */ export interface TypeBasedDrawingDistanceCalculator extends Object,yfiles.hierarchic.IDrawingDistanceCalculator{} export class TypeBasedDrawingDistanceCalculator { /** * Creates a new instance of {@link yfiles.hierarchic.TypeBasedDrawingDistanceCalculator} with default settings. - * @constructor */ constructor(); /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayers} layers - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp + * @param graph + * @param layers + * @param ldp */ dispose(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayer} layer - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp - * @param {yfiles.algorithms.Node} left - * @param {yfiles.algorithms.Node} right - * @returns {number} + * @param graph + * @param layer + * @param ldp + * @param left + * @param right + * @returns */ getMinDistance(graph:yfiles.layout.LayoutGraph,layer:yfiles.hierarchic.ILayer,ldp:yfiles.hierarchic.ILayoutDataProvider,left:yfiles.algorithms.Node,right:yfiles.algorithms.Node):number; /** * - * @param {yfiles.layout.LayoutGraph} graph - * @param {yfiles.hierarchic.ILayers} layers - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp + * @param graph + * @param layers + * @param ldp */ initialize(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** @@ -105601,7 +99382,7 @@ declare namespace system{ *

    * {@graph {"ann":{"s":[30,30],"d":1},"n":[[100,70,[[109.66,94.35,10.67,18.7,"1"]]],[45.59,140,[[55.25,164.35,10.67,18.7,"2"]]],[95.59,140,[[105.25,164.35,10.67,18.7,"3"]]],[0,0,[[9.66,24.35,10.67,18.7,"6"]]],[0,70,[[9.66,94.35,10.67,18.7,"7"]]],[50,70,[[59.66,94.35,10.67,18.7,"8"]]],[145.59,140,[[151.91,164.35,17.35,18.7,"12"]]],[125.59,280,[[135.25,304.35,10.67,18.7,"8"]]],[125.59,210,[[135.25,234.35,10.67,18.7,"9"]]]],"e":[[5,1,0,15,0,-15,[65,120,60.59,120]],[0,1,-10,15,10,-15,[105,120,70.59,120]],[0,2,0,15,0,-15,[115,120,110.59,120]],[4,1,0,15,-10,-15,[15,120,50.59,120]],[3,4,0,15,0,-15],[0,6,10,15,0,-15,[125,120,160.59,120]],[6,7,7.5,15,10,-15,[168.09,190,176.09,190,176.09,260,150.59,260]],[6,8,-7.5,15,0,-15,[153.09,190,140.59,190]],[8,7,0,15,0,-15],[2,7,0,15,-10,-15,[110.59,190,105.09,190,105.09,260,130.59,260]]],"vp":[0.0,0.0,177.0,310.0]}} *

    - * @class yfiles.hierarchic.WeightedLayerer + * @class * @implements {yfiles.hierarchic.ILayerer} */ export interface WeightedLayerer extends Object,yfiles.hierarchic.ILayerer{} @@ -105609,41 +99390,40 @@ declare namespace system{ /** * Creates an instance of {@link yfiles.hierarchic.WeightedLayerer} with the given key that provides access to the {@link yfiles.algorithms.IDataProvider} * that holds the edge weights and unlimited maximum duration for the {@link yfiles.hierarchic.WeightedLayerer}. - * @param {Object} [key=null] the key to access the {@link yfiles.algorithms.IDataProvider} that holds the edge weights - * @constructor + * @param [key=null] the key to access the {@link } that holds the edge weights */ constructor(key?:Object); /** * Assigns all nodes of the graph to layers and adds them to the {@link yfiles.hierarchic.ILayers} instance. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.hierarchic.ILayers} layers the {@link yfiles.hierarchic.ILayers} instance that will be filled with the results of the calculation - * @param {yfiles.hierarchic.ILayoutDataProvider} ldp the {@link yfiles.hierarchic.ILayoutDataProvider} used for querying information about the nodes and edges + * @param graph the input graph + * @param layers the {@link } instance that will be filled with the results of the calculation + * @param ldp the {@link } used for querying information about the nodes and edges */ assignLayers(graph:yfiles.layout.LayoutGraph,layers:yfiles.hierarchic.ILayers,ldp:yfiles.hierarchic.ILayoutDataProvider):void; /** * Assigns all nodes of the graph to layers. - * @param {yfiles.algorithms.Graph} graph the graph for which the layers are determined - * @param {yfiles.algorithms.INodeMap} layerID the {@link yfiles.algorithms.INodeMap} that will be filled by the layout algorithm and returns a zero-based layer index for each + * @param graph the graph for which the layers are determined + * @param layerID the {@link } that will be filled by the layout algorithm and returns a zero-based layer index for each * node - * @returns {number} the number of layers + * @returns the number of layers */ assignLayersFast(graph:yfiles.algorithms.Graph,layerID:yfiles.algorithms.INodeMap):number; /** * Assigns all nodes of the graph to layers. - * @param {yfiles.algorithms.Graph} graph the graph for which the layers are determined - * @param {yfiles.algorithms.INodeMap} layerID the {@link yfiles.algorithms.INodeMap} that will be filled by the layout algorithm and returns the zero-based index of the layer + * @param graph the graph for which the layers are determined + * @param layerID the {@link } that will be filled by the layout algorithm and returns the zero-based index of the layer * to which each node belongs - * @returns {number} the number of layers + * @returns the number of layers */ assignLayersToMap(graph:yfiles.algorithms.Graph,layerID:yfiles.algorithms.INodeMap):number; /** * Assigns all nodes of the graph to layers. - * @param {yfiles.layout.LayoutGraph} graph the graph for which the layers are determined - * @param {yfiles.algorithms.INodeMap} layerID the {@link yfiles.algorithms.INodeMap} that will be filled by the layout algorithm and returns a zero-based layer index for each + * @param graph the graph for which the layers are determined + * @param layerID the {@link } that will be filled by the layout algorithm and returns a zero-based layer index for each * node - * @param {yfiles.algorithms.EdgeList} reversedEdges an {@link yfiles.algorithms.EdgeList} containing the edges which had been reversed - * @param {yfiles.algorithms.IDataProvider} weight the {@link yfiles.algorithms.IDataProvider} that returns an integer value (weight) for each edge - * @returns {number} the number of layers + * @param reversedEdges an {@link } containing the edges which had been reversed + * @param weight the {@link } that returns an integer value (weight) for each edge + * @returns the number of layers */ assignNodeLayerWithDataProvider(graph:yfiles.layout.LayoutGraph,layerID:yfiles.algorithms.INodeMap,reversedEdges:yfiles.algorithms.EdgeList,weight:yfiles.algorithms.IDataProvider):number; /** @@ -105654,8 +99434,8 @@ declare namespace system{ *

    * It may be overridden if non-uniform weights are desired. *

    - * @param {yfiles.algorithms.Edge} edge given edge - * @returns {number} the edge weight of the specified edge + * @param edge given edge + * @returns the edge weight of the specified edge * @see yfiles.hierarchic.WeightedLayerer#weightedCycleRemoval * @see yfiles.hierarchic.WeightedLayerer#weightedCycleRemoval * @protected @@ -105663,8 +99443,8 @@ declare namespace system{ getWeight(edge:yfiles.algorithms.Edge):number; /** * Removes cycles from the graph using a depth first search. - * @param {yfiles.algorithms.Graph} graph the graph - * @param {yfiles.algorithms.EdgeList} reversedEdges an {@link yfiles.algorithms.EdgeList} containing the edges which will be reversed + * @param graph the graph + * @param reversedEdges an {@link } containing the edges which will be reversed */ makeDFSAcyclic(graph:yfiles.algorithms.Graph,reversedEdges:yfiles.algorithms.EdgeList):void; /** @@ -105707,7 +99487,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.hierarchic.HierarchicLayout}. - * @class yfiles.hierarchic.HierarchicLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface HierarchicLayoutData extends yfiles.layout.LayoutData{} @@ -105923,6 +99703,14 @@ declare namespace system{ * @type {yfiles.layout.ItemMapping.} */ edgeThickness:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping that provides a {@link yfiles.layout.PreferredPlacementDescriptor} instance for edge + * {@link yfiles.graph.ILabel}s. + * @see yfiles.layout.PreferredPlacementDescriptor + * @see yfiles.layout.LayoutGraphAdapter#EDGE_LABEL_LAYOUT_PREFERRED_PLACEMENT_DESCRIPTOR_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + edgeLabelPreferredPlacement:yfiles.layout.ItemMapping; static $class:yfiles.lang.Class; } /** @@ -105932,7 +99720,7 @@ declare namespace system{ * Only one of the provided ways to define a mapping can be used at the same time, therefore only one of the properties of * this class should be set on an instance. *

    - * @class yfiles.hierarchic.IncrementalHintItemMapping + * @class * @extends {yfiles.layout.ContextItemMapping.} * @final */ @@ -105953,7 +99741,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.hierarchic.SelfLoopCalculator}. - * @class yfiles.hierarchic.SelfLoopCalculatorData + * @class * @extends {yfiles.layout.LayoutData} */ export interface SelfLoopCalculatorData extends yfiles.layout.LayoutData{} @@ -105997,6 +99785,581 @@ declare namespace system{ minimumOctilinearSegmentLengths:yfiles.layout.ItemMapping; static $class:yfiles.lang.Class; } + }export namespace labeling{ + export enum OptimizationStrategy{ + /** + * An optimization strategy aiming at a good balance between the available optimization options. + * @see yfiles.labeling.MISLabelingBase#optimizationStrategy + */ + BALANCED, + /** + * An optimization strategy that especially reduces overlaps between labels and nodes as well as labels and node halos. + * @see yfiles.labeling.MISLabelingBase#optimizationStrategy + */ + NODE_OVERLAP, + /** + * An optimization strategy that especially reduces overlaps between labels. + * @see yfiles.labeling.MISLabelingBase#optimizationStrategy + */ + LABEL_OVERLAP, + /** + * An optimization strategy that especially reduces overlaps between labels and edges. + * @see yfiles.labeling.MISLabelingBase#optimizationStrategy + */ + EDGE_OVERLAP, + /** + * An optimization strategy that mainly tries to satisfy the preferences described by a {@link yfiles.layout.PreferredPlacementDescriptor} + * associated with edge labels. + * @see yfiles.labeling.MISLabelingBase#optimizationStrategy + */ + PREFERRED_PLACEMENT, + /** + * Use no optimization strategy. + */ + NONE + } + /** + * A generic labeling algorithm for placing the labels of a graph. + *

    + * {@graph {"ann":{"s":[30,30],"d":1,"c":1,"lblFlip":1,"lblB":1},"n":[[249.44,602.63,[[212.75,626.98,32.69,18.7,"Node"]]],[306.92,686.94,[[270.24,711.29,32.69,18.7,"Node"]]],[481.7,787.85,[[515.7,812.2,32.69,18.7,"Node"]]],[219.36,505.12,[[182.67,529.47,32.69,18.7,"Node"]]],[386.71,750.57,[[350.02,774.92,32.69,18.7,"Node"]]],[885,353.19,[[883.66,405.89,32.69,18.7,"Node"]]],[840.72,261.25,[[839.38,257.25,32.69,18.7,"Node"]]],[583.46,112.72,[[582.11,108.72,32.69,18.7,"Node"]]],[249.44,305.56,[[212.75,329.91,32.69,18.7,"Node"]]],[682.94,135.42,[[681.6,131.42,32.69,18.7,"Node"]]],[481.7,120.34,[[480.35,116.34,32.69,18.7,"Node"]]],[771.32,186.45,[[769.97,182.45,32.69,18.7,"Node"]]],[219.36,403.07,[[182.67,427.42,32.69,18.7,"Node"]]],[306.92,221.25,[[270.24,245.6,32.69,18.7,"Node"]]],[386.71,157.62,[[385.36,153.62,32.69,18.7,"Node"]]]],"e":[[0,1,[],[[259.45,643.51,32.03,18.7,0.826238774315996,-0.5633200580636204,"Edge"]]],[3,0,[],[[221.61,542.21,32.03,18.7,0.9555728057861415,-0.294755174410902,"Edge"]]],[1,4,[],[[349.3,723.77,32.03,18.7,0.6234898018587343,-0.7818314824680294,"Edge"]]],[4,2,[],[[418.05,771.98,32.03,18.7,0.36534102436639637,-0.9308737486442037,"Edge"]]],[3,5,[],[[262.64,513.66,32.03,18.7,-0.2225209339563144,-0.9749279121818236,"Edge"]]],[2,5,[],[[534.29,789.82,32.03,18.7,-0.7330518718298267,-0.680172737770919,"Edge"]]],[4,5,[],[[427.6,744.91,32.03,18.7,-0.6234898018587336,-0.7818314824680299,"Edge"]]],[1,5,[],[[350.46,685.47,32.03,18.7,-0.5000000000000003,-0.8660254037844386,"Edge"]]],[0,5,[],[[298.89,624.2,32.03,18.7,-0.3653410243663947,-0.9308737486442044,"Edge"]]],[5,6,[],[[878.37,323.28,32.03,18.7,0.9009688679024184,-0.4338837391175598,"Edge"]]],[7,5,[],[[611.91,162.36,32.03,18.7,0.6234898018587336,-0.7818314824680299,"Edge"]]],[8,5,[],[[292.35,341.41,32.03,18.7,0.07473009358642455,-0.9972037971811801,"Edge"]]],[9,7,[],[[645.8,157.7,32.03,18.7,0.2225209339563144,-0.9749279121818236,"Edge"]]],[7,10,[],[[549.55,131.38,32.03,18.7,-0.07473009358642278,-0.9972037971811804,"Edge"]]],[10,5,[],[[515.14,167.59,32.03,18.7,0.5000000000000003,-0.8660254037844386,"Edge"]]],[6,11,[],[[796.42,239.83,32.03,18.7,0.7330518718298267,-0.680172737770919,"Edge"]]],[11,9,[],[[733.51,192.55,32.03,18.7,0.4999999999999995,-0.866025403784439,"Edge"]]],[8,12,[],[[267.76,373.25,32.03,18.7,-0.9555728057861401,-0.29475517441090626,"Edge"]]],[12,3,[],[[253.06,467.1,32.03,18.7,-1.0,-2.7257675990577433E-15,"Edge"]]],[12,5,[],[[265.18,415.76,32.03,18.7,-0.07473009358642366,-0.9972037971811802,"Edge"]]],[13,5,[],[[347.6,261.29,32.03,18.7,0.22252093395631525,-0.9749279121818234,"Edge"]]],[13,8,[],[[284.16,291.63,32.03,18.7,-0.826238774315993,-0.5633200580636247,"Edge"]]],[10,14,[],[[450.54,153.46,32.03,18.7,-0.3653410243663931,-0.930873748644205,"Edge"]]],[14,13,[],[[349.3,214.42,32.03,18.7,-0.6234898018587314,-0.7818314824680315,"Edge"]]],[14,5,[],[[424.24,201.56,32.03,18.7,0.36534102436639554,-0.930873748644204,"Edge"]]]],"vp":[182.0,90.0,735.0,728.0]}} Node labels and edge labels placed by the labeling algorithm + *

    + *

    + * This algorithm can switch between two internal implementations. By default, it generates high quality label placements + * even for difficult instances. This especially holds if the label models allow a large number of different + * {@link yfiles.layout.LabelCandidate}s, i.e., there is a high potential for optimizations. + *

    + *

    + * If the duration of the calculation is of utmost importance, the internal algorithm can be changed to a simpler + * implementation by setting {@link yfiles.labeling.GenericLabeling#maximumDuration} to 0. On the downside, the results will not be as good as the ones of the default mode. + *

    + *

    + * In default mode, this algorithm reduces the labeling problem to the maximum independent set (MIS) problem and solves the + * problem using simulated annealing. It is inspired by the article from Christensen, Marks and Shieber: A General + * Cartographic Labelling Algorithm. + *

    + *

    + * It is recommended to use {@link yfiles.layout.IEdgeLabelLayoutModel}s and + * {@link yfiles.layout.INodeLabelLayoutModel}s which allow free positioning of labels to achieve best results with this generic + * labeling algorithm. + *

    + *

    + * This algorithm works according to the general labeling concept defined by {@link yfiles.labeling.LabelingBase}. + *

    + * @see yfiles.labeling.LabelingBase + * @class + * @extends {yfiles.labeling.MISLabelingBase} + */ + export interface GenericLabeling extends yfiles.labeling.MISLabelingBase{} + export class GenericLabeling { + /** + * Creates a new instance of {@link yfiles.labeling.GenericLabeling} with default settings. + */ + constructor(); + /** + * Gets or sets whether or not this algorithm behaves deterministically. + *

    + * If enabled, it produces the same results given the same input graph and settings. + *

    + * @type {boolean} + */ + deterministic:boolean; + /** + * Gets or sets the time limit for this algorithm in milliseconds. + *

    + * 0x7FFFFFFF denotes that there is no time limit. Values have to be greater than or equal to 0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given maximum duration is negative + * @type {number} + */ + maximumDuration:number; + static $class:yfiles.lang.Class; + } + /** + * An abstract base class for generic labeling algorithms which place labels of graphs. + *

    + * Labeling algorithms compute positions for labels in a given graph. The main goal is to place labels such that they do + * not overlap with other graph elements. Labeling algorithms do not modify positions of nodes and edges. + *

    + *

    + * Concept + *

    + *

    + * Generic labeling algorithms use the model associated with a label (i.e. {@link yfiles.layout.INodeLabelLayout#labelModel node label model} for nodes and {@link yfiles.layout.IEdgeLabelLayout#labelModel edge label model} + * for edges). The models are necessary to compute a set of {@link yfiles.layout.LabelCandidate}s, i.e., candidate positions for a + * label. Then, one best matching candidate from the set will be selected. This selection depends on several preferences, e.g., if {@link yfiles.labeling.LabelingBase#removeNodeOverlaps overlaps with nodes} + * are not allowed, candidates encoding overlapping positions will be ignored. + *

    + *

    + * After one {@link yfiles.layout.LabelCandidate} has been chosen, the label model's parameter is used for encoding the label + * position. Therefore, the result of a generic labeling algorithm is one model parameter per label. The parameter is {@link yfiles.layout.ILabelLayout#modelParameter stored with the label} + * and expresses the label position with respect to the underlying label model. + *

    + *

    + * Features + *

    + *

    + * This class provides a general frame, offering functionality which can be shared by other generic labeling algorithms. + *

    + *

    + * To only place labels or a subset of labels, the main labeling methods {@link yfiles.labeling.LabelingBase#label}, {@link yfiles.labeling.LabelingBase#label} + * and {@link yfiles.labeling.LabelingBase#label} are offered. + *

    + *

    + * As this class represents an {@link yfiles.layout.LayoutStageBase}, it allows usage as a generic labeling stage. By combining it + * with a + * {@link yfiles.layout.LayoutStageBase#coreLayout core layouter}, the labeling will take place after the core layouter was executed + * ({@link yfiles.labeling.LabelingBase#applyLayout}). This is especially useful if the core layouter does not support label + * handling. + *

    + * @class + * @extends {yfiles.layout.LayoutStageBase} + */ + export interface LabelingBase extends yfiles.layout.LayoutStageBase{} + export class LabelingBase { + /** + * Creates a new {@link yfiles.labeling.LabelingBase} instance with default settings. + */ + constructor(); + /** + * Returns the profit for placing a {@link yfiles.layout.LabelCandidate} with respect to the current {@link yfiles.labeling.LabelingBase#profitModel profit model}. + *

    + * Method {@link yfiles.layout.IProfitModel#getProfit} on the current profit model will be invoked to compute the actual profit + * value. + *

    + *

    + * The higher the profit (rank) of a candidate is, the more likely it will be chosen as actual position by the algorithm. + *

    + * @param candidate a label candidate + * @returns the profit value between 0 and 1 + */ + getProfit(candidate:yfiles.layout.LabelCandidate):number; + /** + * Places the labels of the input graph restricting the placement to labels contained in the given lists. + *

    + * The {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey selection} will not be considered; the given lists will define the selection of labels that are to be placed. + *

    + * @param graph the input graph + * @param nodeLabels a list of {@link }s defining the set of node labels that will be placed + * @param edgeLabels a list of {@link }s defining the set of edge labels that will be placed + */ + label(graph:yfiles.layout.LayoutGraph,nodeLabels:yfiles.algorithms.YList,edgeLabels:yfiles.algorithms.YList):void; + /** + * Places the labels of the input graph using a {@link yfiles.algorithms.IDataProvider} registered to the input graph with the + * given key for determining which labels to place. + *

    + * Instead of considering the current {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey selection key}, the {@link yfiles.algorithms.IDataProvider} registered with the given key will + * be used for selecting labels. Invoking this method has the same effect as first {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey specifying the key} as selection key and + * then invoking {@link yfiles.labeling.LabelingBase#label}. + *

    + * @param graph the input graph + * @param [key=null] the {@link } key for label selection + */ + label(graph:yfiles.layout.LayoutGraph,key?:Object):void; + /** + * Data provider key for mapping models to edge/node labels + *

    + * The {@link yfiles.layout.INodeLabelLayoutModel}s and {@link yfiles.layout.IEdgeLabelLayoutModel}s linked to + * {@link yfiles.layout.INodeLabelLayout}s and {@link yfiles.layout.IEdgeLabelLayout}s by this {@link yfiles.algorithms.IDataProvider} are taken as + * replacement models. This means that the original model is internally replaced by another model when computing valid + * positions for the label. A model parameter that fits the calculated position of the replacement model best is set for + * the original label model. + *

    + * @const + * @static + * @type {yfiles.algorithms.ILabelLayoutDpKey.} + */ + static LABEL_MODEL_DP_KEY:yfiles.algorithms.ILabelLayoutDpKey; + /** + * Gets or sets the {@link yfiles.layout.IProfitModel} for ranking the {@link yfiles.layout.LabelCandidate}s for labels. + *

    + * The profit model is used when {@link yfiles.labeling.LabelingBase#getProfit calculating the profit} of a candidate. + *

    + *

    + * The higher the profit (rank) of a candidate is, the more likely it will be chosen as actual position by the algorithm. + *

    + * @see yfiles.layout.IProfitModel + * @see yfiles.layout.SimpleProfitModel + * @see yfiles.labeling.LabelingBase#getProfit + * @type {yfiles.layout.IProfitModel} + */ + profitModel:yfiles.layout.IProfitModel; + /** + * Gets or sets whether or not internal node labels are allowed to move. + *

    + * A node label is internal if the label's boundaries are completely within the node's boundaries. + *

    + * @type {boolean} + */ + moveInternalNodeLabels:boolean; + /** + * Gets or sets whether or not a post-processing step to reduce the number of label overlaps is applied. + * @type {boolean} + */ + reduceLabelOverlaps:boolean; + /** + * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with nodes are removed. + *

    + * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely + * that an overlapping candidate is finally chosen. + *

    + *

    + * The detection and removal of labels that overlap with nodes may increase the runtime of this algorithm. + *

    + * @type {boolean} + */ + removeNodeOverlaps:boolean; + /** + * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with edges are removed. + *

    + * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely + * that an overlapping candidate is finally chosen. + *

    + *

    + * The detection and removal of labels that overlap with edges may increase the runtime of this algorithm. + *

    + * @type {boolean} + */ + removeEdgeOverlaps:boolean; + /** + * Gets or sets whether or not labels assigned to nodes are placed. + * @see yfiles.labeling.LabelingBase#affectedLabelsDpKey + * @type {boolean} + */ + placeNodeLabels:boolean; + /** + * Gets or sets whether or not labels assigned to edges are placed. + * @see yfiles.labeling.LabelingBase#affectedLabelsDpKey + * @type {boolean} + */ + placeEdgeLabels:boolean; + /** + * Gets or sets the {@link yfiles.algorithms.IDataProvider} key to mark labels as selected for placement. + *

    + * If a {@link yfiles.algorithms.IDataProvider} is registered with this key, only the selected labels will be placed, while all + * other labels are considered fixed. + *

    + *

    + * The registered {@link yfiles.algorithms.IDataProvider} needs to map from {@link yfiles.layout.ILabelLayout} to {@link boolean} where true indicates + * that a label should be placed and false indicates that a label should be ignored. + *

    + * @type {Object} + */ + affectedLabelsDpKey:Object; + /** + * Gets or sets whether or not edge labels are automatically flipped if otherwise they would be upside-down. + * @type {boolean} + */ + autoFlipping:boolean; + /** + * Gets or sets whether or not edge labels may overlap with edges belonging to the same edge group as the label's edge. + *

    + * An edge group is a set of edges which share a common bus near the target or source node. They are defined using + * {@link yfiles.algorithms.IDataProvider}s registered with {@link yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY} and + * {@link yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY}. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + * @type {boolean} + */ + edgeGroupOverlapAllowed:boolean; + static $class:yfiles.lang.Class; + } + /** + * A base class for generic labeling algorithms which solve the labeling problem by reducing it to the maximum independent + * set (MIS) problem. + *

    + * Different optimization strategies are available; an optimization strategy defines which criteria the algorithm should + * try to optimize. For example, reducing the number of overlaps between labels and nodes may be considered more important + * than reducing the number of overlaps between labels and edges. + *

    + * @see yfiles.labeling.GenericLabeling + * @class + * @extends {yfiles.labeling.LabelingBase} + */ + export interface MISLabelingBase extends yfiles.labeling.LabelingBase{} + export class MISLabelingBase { + /** + * Creates a new {@link yfiles.labeling.MISLabelingBase} instance with default settings. + */ + constructor(); + /** + * Returns a {@link yfiles.algorithms.INodeMap} which assigns a profit value to each node in the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. + *

    + * As the conflict graph's nodes represent {@link yfiles.layout.LabelCandidate}s, this mapping gives the profit value of label + * candidates. The assigned value is defined as the difference between the {@link yfiles.labeling.LabelingBase#getProfit profit induced by the profit model} and the + * candidate's {@link yfiles.layout.LabelCandidate#overlapPenalty overlap penalty}. + *

    + *

    + * The returned map is a mapping from each {@link yfiles.algorithms.Node} (representing a label candidate) in the {@link yfiles.labeling.MISLabelingBase#conflictGraph} + * to a {@link number} representing the profit value of the candidate. + *

    + * @returns a mapping from nodes (i.e. label candidates) to their profit value + */ + assignProfit():yfiles.algorithms.INodeMap; + /** + * Creates the edges in the conflict graph, i.e., one edge between two nodes if the corresponding + * {@link yfiles.layout.LabelCandidate}s intersect. + *

    + * The nodes of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph} represent + * {@link yfiles.layout.LabelCandidate}s. An edge between candidates signals that they overlap. A maximum independent set will be + * computed on the conflict graph to choose candidates such that no two candidates overlap. + *

    + *

    + * This method may be overridden to change the structure of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. Edges between two + * {@link yfiles.layout.LabelCandidate}s in the conflict graph signal that the two candidates should not be selected together. By + * overriding this method, arbitrary reasons for indicating that two label candidates should not be chosen at the same time + * can be modeled. + *

    + * @see yfiles.labeling.MISLabelingBase#conflictGraph + * @see yfiles.labeling.MISLabelingBase#nodesToBoxes + * @see yfiles.labeling.MISLabelingBase#boxesToNodes + * @see yfiles.labeling.MISLabelingBase#nodesToID + * @protected + */ + createEdges():void; + /** + * Indicates that an overlap between a {@link yfiles.layout.LabelCandidate} and an {@link yfiles.algorithms.Edge} of the input graph has + * been found. + *

    + * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor + * indicating how much the two elements overlap. The factor influences the {@link yfiles.labeling.LabelingBase#getProfit profit} assigned to the given label candidate. + *

    + *

    + * This method may be overridden to realize a custom strategy for reacting to overlaps between label candidates and edges. + *

    + * @param labelCandidate the {@link } overlapping with the given {@link } + * @param edge the {@link } overlapping with the given {@link } + * @param eSegment the {@link } of the given edge overlapping with the given candidate + * @see yfiles.labeling.MISLabelingBase#conflictGraph + * @see yfiles.labeling.MISLabelingBase#createEdges + */ + foundEdgeOverlap(labelCandidate:yfiles.layout.LabelCandidate,edge:yfiles.algorithms.Edge,eSegment:yfiles.algorithms.LineSegment):void; + /** + * Indicates that an overlap between a {@link yfiles.layout.LabelCandidate} and a {@link yfiles.layout.NodeHalo} of the input graph has + * been found. + *

    + * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor + * indicating how much the two elements overlap. The factor influences the {@link yfiles.labeling.LabelingBase#getProfit profit} assigned to the given label candidate. + *

    + *

    + * This method may be overridden to realize a custom strategy for reacting to overlaps between label candidates and node + * halos. + *

    + * @param labelCandidate the {@link } overlapping with a node halo + * @param node the {@link } whose {@link } is overlapping with the given label candidate + * @param haloRect the bounding box of the {@link } overlapping with the given label candidate + * @see yfiles.labeling.MISLabelingBase#conflictGraph + * @see yfiles.labeling.MISLabelingBase#createEdges + */ + foundHaloOverlap(labelCandidate:yfiles.layout.LabelCandidate,node:yfiles.algorithms.Node,haloRect:yfiles.algorithms.YRectangle):void; + /** + * Indicates that an overlap between two {@link yfiles.layout.LabelCandidate}s has been found. + *

    + * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the + * {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor indicating how much the two candidates overlap. The factor influences the penalty + * assigned when both candidates are chosen, i.e., the penalty for the corresponding overlap. + *

    + *

    + * This method may be overridden to realize a custom strategy for reacting to overlaps among + * {@link yfiles.layout.LabelCandidate}s. + *

    + * @param candidate1 the first overlapping {@link } + * @param candidate2 the second overlapping {@link } + * @param edge the {@link } in {@link #conflictGraph} representing the found overlap + * @see yfiles.labeling.MISLabelingBase#conflictGraph + * @see yfiles.labeling.MISLabelingBase#createEdges + */ + foundLabelOverlap(candidate1:yfiles.layout.LabelCandidate,candidate2:yfiles.layout.LabelCandidate,edge:yfiles.algorithms.Edge):void; + /** + * Indicates that an overlap between a {@link yfiles.layout.LabelCandidate} and a {@link yfiles.algorithms.Node} of the input graph has + * been found. + *

    + * This method is called when finding overlaps while {@link yfiles.labeling.MISLabelingBase#createEdges creating edges} of the {@link yfiles.labeling.MISLabelingBase#conflictGraph conflict graph}. It will store a factor + * indicating how much the two elements overlap. The factor influences the {@link yfiles.labeling.LabelingBase#getProfit profit} assigned to the given label candidate. + *

    + *

    + * This method may be overridden to realize a custom strategy for reacting to overlaps between label candidates and nodes. + *

    + * @param labelCandidate the {@link } overlapping with the given node + * @param node the {@link } overlapping with the given label candidate + * @param nodeBox the bounding box of the given node + * @see yfiles.labeling.MISLabelingBase#conflictGraph + * @see yfiles.labeling.MISLabelingBase#createEdges + */ + foundNodeOverlap(labelCandidate:yfiles.layout.LabelCandidate,node:yfiles.algorithms.Node,nodeBox:yfiles.algorithms.YRectangle):void; + /** + * The input graph that will be labeled. + * @type {yfiles.layout.LayoutGraph} + */ + graph:yfiles.layout.LayoutGraph; + /** + * The conflict graph modeling + * {@link yfiles.layout.LabelCandidate}s as nodes and edges between them as conflicts, i.e., overlaps among candidates. + * @see yfiles.labeling.MISLabelingBase#createEdges + * @type {yfiles.algorithms.Graph} + */ + conflictGraph:yfiles.algorithms.Graph; + /** + * The mapping from each node in the {@link yfiles.labeling.MISLabelingBase#conflictGraph} to the corresponding {@link yfiles.layout.LabelCandidate} + * instance. + * @see yfiles.labeling.MISLabelingBase#conflictGraph + * @type {yfiles.algorithms.INodeMap} + */ + nodesToBoxes:yfiles.algorithms.INodeMap; + /** + * The mapping from the {@link yfiles.layout.LabelCandidate}s to the corresponding nodes in the + * {@link yfiles.labeling.MISLabelingBase#conflictGraph}. + * @see yfiles.labeling.MISLabelingBase#conflictGraph + * @type {yfiles.collections.IMap.} + */ + boxesToNodes:yfiles.collections.IMap; + /** + * The mapping from nodes in the {@link yfiles.labeling.MISLabelingBase#conflictGraph} to a corresponding integer value (ID). + *

    + * The ID denotes the actual label which a {@link yfiles.layout.LabelCandidate} (i.e. a node in the conflict graph) belongs to. + *

    + * @type {yfiles.algorithms.INodeMap} + */ + nodesToID:yfiles.algorithms.INodeMap; + /** + * Gets or sets the ratio between the internal profit (ip) and the profit computed using the specified {@link yfiles.labeling.LabelingBase#profitModel profit model} (sp). + *

    + * This ratio defines how to weight the two profit values (ip) and (sp). The overall ratio is then computed as + * ratio * sp + (1 - ratio) * ip. The profit of a {@link yfiles.layout.LabelCandidate} defines how likely it is that the candidate + * will be chosen as actual label position. + *

    + *

    + * The ratio is defined to be a value from the interval [0,1]. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given ratio is negative or larger than 1 + * @see yfiles.labeling.LabelingBase#profitModel + * @see yfiles.labeling.MISLabelingBase#optimizationStrategy + * @type {number} + */ + customProfitModelRatio:number; + /** + * Gets or sets the optimization strategy which defines the importance of criteria when optimizing labeling results. + *

    + * Depending on the strategy, criteria like label-node overlaps, label-label overlaps and others are more or less + * important. For example, if the number of overlaps between labels and nodes is the most important criterion for the + * result, strategy {@link yfiles.labeling.OptimizationStrategy#NODE_OVERLAP} should be chosen. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given strategy is unknown + * @type {yfiles.labeling.OptimizationStrategy} + */ + optimizationStrategy:yfiles.labeling.OptimizationStrategy; + /** + * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with nodes are removed. + *

    + * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely + * that an overlapping candidate is finally chosen. + *

    + *

    + * The detection and removal of labels that overlap with nodes may increase the runtime of this algorithm. + *

    + * @type {boolean} + */ + removeNodeOverlaps:boolean; + /** + * Gets or sets whether or not {@link yfiles.layout.LabelCandidate label candidates} that overlap with edges are removed. + *

    + * If overlapping candidates are not removed, they will be considered but get a penalty. Therefore, it is still less likely + * that an overlapping candidate is finally chosen. + *

    + *

    + * The detection and removal of labels that overlap with edges may increase the runtime of this algorithm. + *

    + * @type {boolean} + */ + removeEdgeOverlaps:boolean; + /** + * Gets or sets whether or not the number of ambiguous label placements is reduced by applying an additional optimization + * step. + *

    + * A label position is considered to be ambiguous if it might not be possible to identify to which graph element the label + * belongs. For example, an edge label placed in between two edges is ambiguous. + *

    + *

    + * Enabling this reduction step does not guarantee that no ambiguous placements are selected. The algorithm will try to + * avoid them if other good positions without ambiguity are available. Other aspects like {@link yfiles.layout.PreferredPlacementDescriptor preferred placement} for edge + * labels will still be more important than the reduction of ambiguity. + *

    + * @type {boolean} + */ + reduceAmbiguity:boolean; + static $class:yfiles.lang.Class; + } + /** + * Specifies custom data for the {@link yfiles.labeling.GenericLabeling}. + * @class + * @extends {yfiles.layout.LayoutData} + */ + export interface LabelingData extends yfiles.layout.LayoutData{} + export class LabelingData { + constructor(); + /** + * Gets or sets the collection of labels that shall be placed by the algorithm. + *

    + * Note that the {@link yfiles.layout.DpKeyItemCollection.#dpKey} has to be set to the key assigned to {@link yfiles.labeling.LabelingBase#affectedLabelsDpKey}. + *

    + * @see yfiles.labeling.LabelingBase#affectedLabelsDpKey + * @type {yfiles.layout.DpKeyItemCollection.} + */ + affectedLabels:yfiles.layout.DpKeyItemCollection; + /** + * Gets or sets the mapping from node labels to an {@link yfiles.layout.INodeLabelLayoutModel} used by the labeling algorithm + * instead of the original label model. + *

    + * If a label has no mapping, the original model is used as normal. + *

    + * @see yfiles.labeling.LabelingBase#LABEL_MODEL_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + nodeLabelModels:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from edge labels to an {@link yfiles.layout.IEdgeLabelLayoutModel} used by the labeling algorithm + * instead of the original label model. + *

    + * If a label has no mapping, the original model is used as normal. + *

    + * @see yfiles.labeling.LabelingBase#LABEL_MODEL_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + edgeLabelModels:yfiles.layout.ItemMapping; + /** + * Gets or sets a mapping from edges to an object representing their source edge group. + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + sourceGroupIds:yfiles.layout.ItemMapping; + /** + * Gets or sets a mapping from edges to an object representing their target edge group. + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + targetGroupIds:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. + * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + nodeHalos:yfiles.layout.ItemMapping; + /** + * Gets or sets the AbortHandler used during the layout. + * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY + * @type {yfiles.algorithms.AbortHandler} + */ + abortHandler:yfiles.algorithms.AbortHandler; + /** + * Gets or sets the mapping that provides a {@link yfiles.layout.PreferredPlacementDescriptor} instance for edge + * {@link yfiles.graph.ILabel}s. + * @see yfiles.layout.PreferredPlacementDescriptor + * @see yfiles.layout.LayoutGraphAdapter#EDGE_LABEL_LAYOUT_PREFERRED_PLACEMENT_DESCRIPTOR_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + edgeLabelPreferredPlacement:yfiles.layout.ItemMapping; + static $class:yfiles.lang.Class; + } }export namespace organic{ export enum InitialPlacement{ /** @@ -106254,19 +100617,18 @@ declare namespace system{ * To specify that specific nodes should not be moved, they can be marked as fixed using a {@link yfiles.algorithms.IDataProvider} * registered with key {@link yfiles.organic.ShuffleLayout#FIXED_NODE_DP_KEY}. *

    - * @class yfiles.organic.ShuffleLayout + * @class * @implements {yfiles.layout.ILayoutStage} */ export interface ShuffleLayout extends Object,yfiles.layout.ILayoutStage{} export class ShuffleLayout { /** * Creates a new instance of {@link yfiles.organic.ShuffleLayout} with default settings. - * @constructor */ constructor(); /** * Performs the overlap removal (shuffle) algorithm on the given graph, after the {@link yfiles.organic.ShuffleLayout#coreLayout core layout algorithm} was applied to it. - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph */ applyLayout(graph:yfiles.layout.LayoutGraph):void; /** @@ -106388,14 +100750,13 @@ declare namespace system{ * and {@link yfiles.organic.ClassicOrganicLayout#initialTemperature initial temperature} can be controlled. This allows experts to configure and fine-tune the algorithm with respect to * their needs. *

    - * @class yfiles.organic.ClassicOrganicLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface ClassicOrganicLayout extends yfiles.layout.MultiStageLayout{} export class ClassicOrganicLayout { /** * Creates a new {@link yfiles.organic.ClassicOrganicLayout} with default settings. - * @constructor */ constructor(); /** @@ -106621,7 +100982,7 @@ declare namespace system{ /** * Starts the layout calculation, continuing where it has stopped before and allowing a certain maximum duration in * milliseconds. - * @param {number} duration the duration in milliseconds the layout calculation is allowed to run + * @param duration the duration in milliseconds the layout calculation is allowed to run * @abstract */ continueLayout(duration:number):void; @@ -106677,10 +101038,6 @@ declare namespace system{ * positions via mouse-dragging. *

    *

    - * If a {@link yfiles.layout.CopiedLayoutGraph} is being laid out, structural changes (e.g. creation or removal of nodes and edges) - * in the original graph can be automatically scheduled and applied to the {@link yfiles.layout.CopiedLayoutGraph} instance. Enable - * {@link yfiles.organic.InteractiveOrganicLayout#automaticStructureUpdate automatic structure updates} for this feature. - *
    * Method {@link yfiles.organic.InteractiveOrganicLayout#addStructureUpdate} allows to schedule a custom event handler instance * that is executed in a synchronized context and can safely update the structure of the graph. *

    @@ -106698,14 +101055,13 @@ declare namespace system{ * changes are stored as intermediate results. Such intermediate results can be {@link yfiles.organic.InteractiveOrganicLayout#commitPositions committed} in order to apply them to the * actual graph. *

    - * @class yfiles.organic.InteractiveOrganicLayout + * @class * @implements {yfiles.layout.ILayoutAlgorithm} */ export interface InteractiveOrganicLayout extends Object,yfiles.layout.ILayoutAlgorithm{} export class InteractiveOrganicLayout { /** * Creates a new instance of the {@link yfiles.organic.InteractiveOrganicLayout} with default settings. - * @constructor */ constructor(); /** @@ -106715,8 +101071,8 @@ declare namespace system{ * The given event handler will be queued and executed at a specific time. The event handler can make structural changes * (e.g. removal/creation of edges or nodes). They will be synchronized with the rest of the layout algorithm. *

    - * @param {function(Object, yfiles.lang.EventArgs): void} handler The handler delegate that will be invoked using null as the sender and args as the event arguments - * @param {yfiles.lang.EventArgs} evt The event argument that will be piped to the handler invocation. + * @param handler The handler delegate that will be invoked using null as the sender and args as the event arguments + * @param evt The event argument that will be piped to the handler invocation. */ addStructureUpdate(handler:(sender:Object,evt:yfiles.lang.EventArgs)=>void,evt:yfiles.lang.EventArgs):void; /** @@ -106724,7 +101080,7 @@ declare namespace system{ *

    * Changes have to be {@link yfiles.organic.InteractiveOrganicLayout#commitPositions committed} to update the graph with the actual calculated positions. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph * @see yfiles.organic.InteractiveOrganicLayout#startLayout */ applyLayout(graph:yfiles.layout.LayoutGraph):void; @@ -106756,9 +101112,9 @@ declare namespace system{ * The returned largest movement can be used for estimating the difference between calculated layout and actual positions. * If the return value is 0, the calculated layout was completely transferred. *

    - * @param {number} maxMovement the maximum distance a node will be moved - * @param {number} factor a factor that determines the node movement - * @returns {number} the largest movement value or 0, if the calculated layout has been transferred completely + * @param maxMovement the maximum distance a node will be moved + * @param factor a factor that determines the node movement + * @returns the largest movement value or 0, if the calculated layout has been transferred completely * @see yfiles.organic.InteractiveOrganicLayout#commitPositions */ commitPositionsSmoothly(maxMovement:number,factor:number):number; @@ -106780,8 +101136,8 @@ declare namespace system{ * only be intermediate results stored in the algorithm. This will be the case if scheduled updates were not yet completely * {@link yfiles.organic.InteractiveOrganicLayout#commitPositions committed} to the actual graph. *

    - * @param {yfiles.algorithms.Node} node the node for which the center should be polled - * @returns {yfiles.algorithms.YPoint} the {@link yfiles.algorithms.YPoint} representing the center location of the given node, or null if nothing about the node is + * @param node the node for which the center should be polled + * @returns the {@link } representing the center location of the given node, or null if nothing about the node is * known * @see yfiles.organic.InteractiveOrganicLayout#setCenter */ @@ -106793,8 +101149,8 @@ declare namespace system{ * intermediate result stored in the algorithm. This will be the case if scheduled updates were not yet completely {@link yfiles.organic.InteractiveOrganicLayout#commitPositions committed} * to the actual graph. *

    - * @param {yfiles.algorithms.Node} node the node for which the x-coordinate should be polled - * @returns {number} the x-coordinate of the center location of the given node + * @param node the node for which the x-coordinate should be polled + * @returns the x-coordinate of the center location of the given node * @see yfiles.organic.InteractiveOrganicLayout#setCenterX */ getCenterX(node:yfiles.algorithms.Node):number; @@ -106805,8 +101161,8 @@ declare namespace system{ * intermediate result stored in the algorithm. This will be the case if scheduled updates were not yet completely {@link yfiles.organic.InteractiveOrganicLayout#commitPositions committed} * to the actual graph. *

    - * @param {yfiles.algorithms.Node} node the node for which the y-coordinate should be polled - * @returns {number} the y-coordinate of the center location of the given node + * @param node the node for which the y-coordinate should be polled + * @returns the y-coordinate of the center location of the given node * @see yfiles.organic.InteractiveOrganicLayout#setCenterY */ getCenterY(node:yfiles.algorithms.Node):number; @@ -106819,8 +101175,8 @@ declare namespace system{ *

    * The stress value is defined to be a value from the interval [0,1]. *

    - * @param {yfiles.algorithms.Node} node the node for which the stress value should be polled - * @returns {number} the stress value of the given node + * @param node the node for which the stress value should be polled + * @returns the stress value of the given node * @see yfiles.organic.InteractiveOrganicLayout#setStress */ getStress(node:yfiles.algorithms.Node):number; @@ -106832,9 +101188,9 @@ declare namespace system{ * committed to the graph while the algorithm is running using methods {@link yfiles.organic.InteractiveOrganicLayout#commitPositions} * or {@link yfiles.organic.InteractiveOrganicLayout#commitPositionsSmoothly}. *

    - * @param {yfiles.algorithms.Node} node the node that should be updated - * @param {number} x the desired x-coordinate of the given node - * @param {number} y the desired y-coordinate of the given node + * @param node the node that should be updated + * @param x the desired x-coordinate of the given node + * @param y the desired y-coordinate of the given node */ setCenter(node:yfiles.algorithms.Node,x:number,y:number):void; /** @@ -106845,8 +101201,8 @@ declare namespace system{ * committed to the graph while the algorithm is running using methods {@link yfiles.organic.InteractiveOrganicLayout#commitPositions} * or {@link yfiles.organic.InteractiveOrganicLayout#commitPositionsSmoothly}. *

    - * @param {yfiles.algorithms.Node} node the node that should be updated - * @param {number} x the desired x-coordinate of the given node + * @param node the node that should be updated + * @param x the desired x-coordinate of the given node * @see yfiles.organic.InteractiveOrganicLayout#setCenterY * @see yfiles.organic.InteractiveOrganicLayout#setCenter */ @@ -106859,8 +101215,8 @@ declare namespace system{ * committed to the graph while the algorithm is running using methods {@link yfiles.organic.InteractiveOrganicLayout#commitPositions} * or {@link yfiles.organic.InteractiveOrganicLayout#commitPositionsSmoothly}. *

    - * @param {yfiles.algorithms.Node} node the node that should be updated - * @param {number} y the desired y-coordinate of the given node + * @param node the node that should be updated + * @param y the desired y-coordinate of the given node * @see yfiles.organic.InteractiveOrganicLayout#setCenterX * @see yfiles.organic.InteractiveOrganicLayout#setCenter */ @@ -106881,8 +101237,8 @@ declare namespace system{ * committed to the graph while the algorithm is running using methods {@link yfiles.organic.InteractiveOrganicLayout#commitPositions} * or {@link yfiles.organic.InteractiveOrganicLayout#commitPositionsSmoothly}. *

    - * @param {yfiles.algorithms.Node} node the node whose inertia to set - * @param {number} inertia an inertia value between 0 and 1 + * @param node the node whose inertia to set + * @param inertia an inertia value between 0 and 1 * @throws {Stubs.Exceptions.ArgumentError} if the given inertia value is negative or greater than 1 */ setInertia(node:yfiles.algorithms.Node,inertia:number):void; @@ -106894,8 +101250,8 @@ declare namespace system{ * committed to the graph while the algorithm is running using methods {@link yfiles.organic.InteractiveOrganicLayout#commitPositions} * or {@link yfiles.organic.InteractiveOrganicLayout#commitPositionsSmoothly}. *

    - * @param {yfiles.algorithms.Edge} edge the edge whose preferred length should be updated - * @param {number} newEdgeLength the new preferred edge length + * @param edge the edge whose preferred length should be updated + * @param newEdgeLength the new preferred edge length */ setPreferredEdgeLength(edge:yfiles.algorithms.Edge,newEdgeLength:number):void; /** @@ -106906,8 +101262,8 @@ declare namespace system{ * committed to the graph while the algorithm is running using methods {@link yfiles.organic.InteractiveOrganicLayout#commitPositions} * or {@link yfiles.organic.InteractiveOrganicLayout#commitPositionsSmoothly}. *

    - * @param {yfiles.algorithms.Node} node the node whose radius should be updated - * @param {number} radius the desired radius for the given node + * @param node the node whose radius should be updated + * @param radius the desired radius for the given node */ setRadius(node:yfiles.algorithms.Node,radius:number):void; /** @@ -106925,8 +101281,8 @@ declare namespace system{ *

    * The stress value is defined to be a value from the interval [0,1]. *

    - * @param {yfiles.algorithms.Node} node the node whose stress value should be updated - * @param {number} stress a stress value from the interval [0,1] + * @param node the node whose stress value should be updated + * @param stress a stress value from the interval [0,1] * @throws {Stubs.Exceptions.ArgumentError} if the given stress value is negative or greater than 1 */ setStress(node:yfiles.algorithms.Node,stress:number):void; @@ -106938,8 +101294,8 @@ declare namespace system{ * whenever the layout should be recalculated. To actually transfer the changes, {@link yfiles.organic.InteractiveOrganicLayout#commitPositions} * should be called subsequently. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.organic.InteractiveOrganicLayoutExecutionContext} a {@link yfiles.organic.InteractiveOrganicLayoutExecutionContext context instance} to control layout calculation + * @param graph the input graph + * @returns a {@link context instance} to control layout calculation * @see yfiles.organic.InteractiveOrganicLayoutExecutionContext * @see yfiles.organic.InteractiveOrganicLayout#applyLayout */ @@ -106974,17 +101330,6 @@ declare namespace system{ * @see yfiles.organic.InteractiveOrganicLayout#sleeping */ wakeUp():void; - /** - * Gets or sets whether or not this algorithm performs automatic structure updates on the graph copy if the original graph - * changes. - *

    - * If this feature is enabled, a listener will be registered with the original input graph. This listener will - * automatically transfer structural changes on the original graph to the graph copy and update its internal data - * structures. - *

    - * @type {boolean} - */ - automaticStructureUpdate:boolean; /** * Gets the time when the last wake-up, that is, call to {@link yfiles.organic.InteractiveOrganicLayout#wakeUp}, occurred. *

    @@ -107111,7 +101456,7 @@ declare namespace system{ *

    *

    * This layout algorithm is able to consider a {@link yfiles.layout.PartitionGrid} structure. However, for common nodes (i.e. - * non-group nodes) it only considers single partition cells. Furthermore, the layout algorithm will throw a {@link yfiles.algorithms.InvalidGraphStructureError} + * non-group nodes) it only considers single partition cells. Furthermore, the layout algorithm will throw a {@link yfiles.lang.Exception} * if there is a partition grid and the descendants of a group node are assigned to different partition grid cells or if * there are group nodes that are associated with a group node mode other than {@link yfiles.organic.GroupNodeMode#NORMAL}. *

    @@ -107129,14 +101474,13 @@ declare namespace system{ * {@graph {"ann":{"s":[50,50],"d":0, "c":1},"n":[[651.02,746.2],[499.25,376.34],[757.43,840.9],[574.93,802.49],[772.23,780.83],[712.08,729.69],[591.5,342.9],[630.22,404.23],[511.3,574.88],[356.15,353.31],[488.74,447.78],[566.25,739.99],[832.31,791.39],[152.43,610.4],[689.57,879.35],[248.1,596.17],[120.25,697.57],[639.18,467.72],[427.77,458.88],[408.48,519.6],[691.9,669.45],[818.01,882.83],[539.8,660.71],[585.22,875.17],[636.28,814.7],[714.64,608.38],[656.9,343.12],[511.04,217.28],[470.75,277.59],[422.59,338.16],[565.7,413.55],[531.15,295.7],[348.61,180.63],[402.12,271.28],[284.34,91.79],[321.78,0],[381.55,66.78],[214.95,158.82],[187.52,306.65],[287.7,278.04],[92.76,309.88],[631.56,613.97],[513.18,814.11],[775.66,700.72],[601.82,679.52],[504.9,731.91],[697.17,813.09],[606.93,266.97],[450.55,583.13],[728.3,327.65],[717.42,253.29],[543.5,154.51],[614.76,150.96],[500.57,513.16],[360.14,445.09],[293.67,694],[348.53,611.5],[206.29,734.57],[571.37,553.51],[0,313.72],[233.88,6.24],[182.4,76.67],[420.47,398.21],[561.25,487.65],[680.21,183.49]],"e":[[0,2],[0,5],[0,3],[0,4],[1,7],[1,6],[1,8],[1,10],[1,9],[0,12],[0,14],[0,11],[15,13],[16,13],[1,17],[1,19],[1,18],[0,24],[0,22],[0,20],[0,23],[0,21],[1,58],[0,25],[0,58],[1,29],[1,31],[1,26],[1,27],[1,28],[1,30],[32,34],[1,33],[32,33],[36,34],[35,34],[37,34],[38,40],[38,39],[0,44],[0,41],[0,46],[0,43],[0,45],[0,42],[1,47],[48,8],[48,58],[48,10],[48,18],[48,19],[50,47],[51,47],[52,47],[49,47],[48,53],[48,54],[1,54],[1,53],[55,56],[56,15],[16,57],[57,55],[56,48],[39,33],[59,40],[60,34],[61,34],[1,62],[48,62],[1,63],[48,63],[64,47]],"vp":[0.0,0.0,883.0,933.0]}} Organic Layout without applying specific layout styles to substructures {@graph {"ann":{"s":[50,50],"d":0,"c":1},"n":[[222.41,751.98],[933.19,715.06],[333.12,751.98],[167.05,656.1],[111.7,751.98],[277.76,656.1],[1075.74,818.63],[987.64,882.64],[826.53,1248.81],[1109.39,715.06],[923.05,1325.6],[250.02,979.37],[167.05,847.86],[283.81,1327.29],[277.76,847.86],[357.8,1251.78],[312.21,1429.13],[1075.74,611.5],[946.75,1221.23],[879.92,1137.62],[451.47,751.98],[352.53,563.47],[425.23,858.43],[425.23,645.53],[352.53,940.5],[250.02,524.59],[790.64,611.5],[756.99,715.06],[790.64,818.63],[987.64,547.49],[878.74,882.64],[878.74,547.49],[1282.21,484.89],[1243.62,401.08],[1488.63,603.97],[1399.06,538.9],[1522.84,498.68],[1399.06,669.05],[1287.59,215.47],[1262.1,323.21],[1313.08,107.74],[50.95,600.08],[141.18,966.16],[0,806.8],[141.18,537.8],[50.95,903.88],[0,697.16],[765.65,208.84],[592.77,1142.94],[799.86,314.13],[799.86,103.55],[676.08,143.76],[676.08,273.91],[772.89,1137.75],[706.25,1221.5],[488.59,1379.94],[460.19,1278.11],[414.6,1455.45],[619.49,1010.84],[1338.57,0],[1522.84,709.26],[1599.34,603.97],[730.18,1325.82],[826.67,1372.15],[876.36,208.84]],"e":[[0,2],[0,5],[0,3],[0,4],[1,7],[1,6],[1,8],[1,10],[1,9],[0,12],[0,14],[0,11],[15,13],[16,13],[1,17],[1,19],[1,18],[0,24],[0,22],[0,20],[0,23],[0,21],[1,58],[0,25],[0,58],[1,29],[1,31],[1,26],[1,27],[1,28],[1,30],[32,34],[1,33],[32,33],[36,34],[35,34],[37,34],[38,40],[38,39],[0,44],[0,41],[0,46],[0,43],[0,45],[0,42],[1,47],[48,8],[48,58],[48,10],[48,18],[48,19],[50,47],[51,47],[52,47],[49,47],[48,53],[48,54],[1,54],[1,53],[55,56],[56,15],[16,57],[57,55],[56,48],[39,33],[59,40],[60,34],[61,34],[1,62],[48,62],[1,63],[48,63],[64,47]],"vp":[0.0,0.0,1650.0,1506.0]}} Organic Layout of the same graph applying * specific layout styles to the detected substructures *

    - * @class yfiles.organic.OrganicLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface OrganicLayout extends yfiles.layout.MultiStageLayout{} export class OrganicLayout { /** * Creates a new {@link yfiles.organic.OrganicLayout} instance with default settings. - * @constructor */ constructor(); /** @@ -107148,8 +101492,8 @@ declare namespace system{ * This method is called by {@link yfiles.organic.OrganicLayout#applyLayout} before the actual layout is calculated. It may be * overridden in order to manually configure the {@link yfiles.layout.ComponentLayout}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.layout.ComponentLayout} layouter the {@link yfiles.layout.ComponentLayout} instance to reconfigure + * @param graph the input graph + * @param layouter the {@link } instance to reconfigure * @see yfiles.organic.OrganicLayout#smartComponentLayout * @protected */ @@ -107160,14 +101504,14 @@ declare namespace system{ * This method is called by {@link yfiles.organic.OrganicLayout#applyLayout} after the actual layout is calculated. It may be * overridden in order to revert a custom configuration made in {@link yfiles.organic.OrganicLayout#configureComponentLayout}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.layout.ComponentLayout} layouter the {@link yfiles.layout.ComponentLayout} to reset + * @param graph the input graph + * @param layouter the {@link } to reset * @see yfiles.organic.OrganicLayout#smartComponentLayout * @protected */ disposeComponentLayout(graph:yfiles.layout.LayoutGraph,layouter:yfiles.layout.ComponentLayout):void; /** - * Data provider key for specifying the directedness of edges. + * Data provider key for specifying the directedness of edges *

    * Generally, the organic layout algorithm doesn't consider the edge direction. Nevertheless, this {@link yfiles.algorithms.IDataProvider} * allows the user to specify hints on the directedness of edges. More precisely, a value of 1 indicates that the edge @@ -107486,7 +101830,7 @@ declare namespace system{ * {@link yfiles.layout.MultiStageLayout#appendStage}. *

    * @see yfiles.layout.PartitionGrid - * @class yfiles.organic.OrganicPartitionGridLayoutStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface OrganicPartitionGridLayoutStage extends yfiles.layout.LayoutStageBase{} @@ -107494,8 +101838,7 @@ declare namespace system{ /** * Creates a new instance of {@link yfiles.organic.OrganicPartitionGridLayoutStage} with the given layout algorithm as * {@link yfiles.layout.LayoutStageBase#coreLayout core algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} core the core layout algorithm - * @constructor + * @param core the core layout algorithm */ constructor(core:yfiles.layout.ILayoutAlgorithm); static $class:yfiles.lang.Class; @@ -107528,15 +101871,14 @@ declare namespace system{ * Nodes can be marked as fixed. Such nodes will not be moved during the overlap removal process. A {@link yfiles.algorithms.IDataProvider} * with key {@link yfiles.organic.OrganicRemoveOverlapsStage#FIXED_NODE_DP_KEY} can be registered to mark the fixed nodes. *

    - * @class yfiles.organic.OrganicRemoveOverlapsStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface OrganicRemoveOverlapsStage extends yfiles.layout.LayoutStageBase{} export class OrganicRemoveOverlapsStage { /** * Creates a new instance of {@link yfiles.organic.OrganicRemoveOverlapsStage} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [core=null] The core layout algorithm. - * @constructor + * @param [core=null] The core layout algorithm. */ constructor(core?:yfiles.layout.ILayoutAlgorithm); /** @@ -107584,7 +101926,7 @@ declare namespace system{ *

    * @see yfiles.organic.OrganicLayout#outputRestriction * @see yfiles.organic.InteractiveOrganicLayout#outputRestriction - * @class yfiles.organic.OutputRestriction + * @class */ export interface OutputRestriction extends Object{} export class OutputRestriction { @@ -107602,8 +101944,8 @@ declare namespace system{ *

    * The aspect ratio needs to be strictly positive. *

    - * @param {number} ratio the preferred aspect ratio of the output - * @returns {yfiles.organic.OutputRestriction} an {@link yfiles.organic.OutputRestriction} imposing the given aspect ratio on the layout + * @param ratio the preferred aspect ratio of the output + * @returns an {@link } imposing the given aspect ratio on the layout * @throws {Stubs.Exceptions.ArgumentError} if the given aspect ratio is 0 or negative * @see yfiles.organic.OrganicLayout#outputRestriction * @see yfiles.organic.InteractiveOrganicLayout#outputRestriction @@ -107618,10 +101960,10 @@ declare namespace system{ *

    * The radius of the restriction circle needs to be greater than zero. *

    - * @param {number} x the x-coordinate of the restriction circle's center - * @param {number} y the y-coordinate of the restriction circle's center - * @param {number} radius the radius of the restriction circle - * @returns {yfiles.organic.OutputRestriction} the {@link yfiles.organic.OutputRestriction} confining the layout to a circular area + * @param x the x-coordinate of the restriction circle's center + * @param y the y-coordinate of the restriction circle's center + * @param radius the radius of the restriction circle + * @returns the {@link } confining the layout to a circular area * @throws {Stubs.Exceptions.ArgumentError} if the given radius is less than or equal to zero * @see yfiles.organic.OrganicLayout#outputRestriction * @see yfiles.organic.InteractiveOrganicLayout#outputRestriction @@ -107639,11 +101981,11 @@ declare namespace system{ *

    * The values for height and width of the ellipse's bounding box need to be greater than zero. *

    - * @param {number} x the x-coordinate of the bounding box's upper left corner - * @param {number} y the y-coordinate of the bounding box's upper left corner - * @param {number} w the width of the bounding box - * @param {number} h the height of the bounding box - * @returns {yfiles.organic.OutputRestriction} the {@link yfiles.organic.OutputRestriction} confining the layout to an elliptical area + * @param x the x-coordinate of the bounding box's upper left corner + * @param y the y-coordinate of the bounding box's upper left corner + * @param w the width of the bounding box + * @param h the height of the bounding box + * @returns the {@link } confining the layout to an elliptical area * @throws {Stubs.Exceptions.ArgumentError} if the given width or height is 0 or negative * @see yfiles.organic.OrganicLayout#outputRestriction * @see yfiles.organic.InteractiveOrganicLayout#outputRestriction @@ -107658,11 +102000,11 @@ declare namespace system{ *

    * The values for height and width of the rectangle need to be greater than zero. *

    - * @param {number} x the x-coordinate of the restriction rectangle's upper-left corner - * @param {number} y the y-coordinate of the restriction rectangle's upper-left corner - * @param {number} w width of the restriction rectangle - * @param {number} h height of the restriction rectangle - * @returns {yfiles.organic.OutputRestriction} the {@link yfiles.organic.OutputRestriction} confining the layout to a rectangular area + * @param x the x-coordinate of the restriction rectangle's upper-left corner + * @param y the y-coordinate of the restriction rectangle's upper-left corner + * @param w width of the restriction rectangle + * @param h height of the restriction rectangle + * @returns the {@link } confining the layout to a rectangular area * @throws {Stubs.Exceptions.ArgumentError} if the given width or height is less than or equal to zero * @see yfiles.organic.OrganicLayout#outputRestriction * @see yfiles.organic.InteractiveOrganicLayout#outputRestriction @@ -107700,15 +102042,14 @@ declare namespace system{ *

    * @see yfiles.organic.ShuffleLayout * @see yfiles.layout.RecursiveGroupLayout - * @class yfiles.organic.RecursiveShuffleLayout + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface RecursiveShuffleLayout extends yfiles.layout.LayoutStageBase{} export class RecursiveShuffleLayout { /** * Creates a new {@link yfiles.organic.RecursiveShuffleLayout} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [core=null] The core layout algorithm. - * @constructor + * @param [core=null] The core layout algorithm. */ constructor(core?:yfiles.layout.ILayoutAlgorithm); /** @@ -107737,7 +102078,7 @@ declare namespace system{ * It is possible to define a {@link yfiles.organic.RemoveOverlapsStage#minimumNodeDistance minimum distance} between nodes. This feature allows to not only remove overlaps but forces * nodes to keep a specified distance to other nodes. *

    - * @class yfiles.organic.RemoveOverlapsStage + * @class * @implements {yfiles.layout.ILayoutStage} */ export interface RemoveOverlapsStage extends Object,yfiles.layout.ILayoutStage{} @@ -107747,9 +102088,8 @@ declare namespace system{ *

    * The minimum node distance needs to be non-negative. *

    - * @param {number} minimumNodeDistance a non-negative minimum distance value + * @param minimumNodeDistance a non-negative minimum distance value * @throws {Stubs.Exceptions.ArgumentError} if the given distance is negative - * @constructor */ constructor(minimumNodeDistance:number); /** @@ -107758,7 +102098,7 @@ declare namespace system{ *

    * If a {@link yfiles.organic.RemoveOverlapsStage#coreLayout core layout algorithm} is specified, it will be executed first. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph */ applyLayout(graph:yfiles.layout.LayoutGraph):void; /** @@ -107823,20 +102163,19 @@ declare namespace system{ * The amount of split-nodes replacing a single original edge can be controlled via the * {@link yfiles.organic.SplitEdgeStage#splitSegmentLength split segment length}. The smaller the value, the more split-nodes this stage will insert. *

    - * @class yfiles.organic.SplitEdgeStage + * @class * @implements {yfiles.layout.ILayoutStage} */ export interface SplitEdgeStage extends Object,yfiles.layout.ILayoutStage{} export class SplitEdgeStage { /** * Creates a new {@link yfiles.organic.SplitEdgeStage} with default settings. - * @constructor */ constructor(); /** * Replaces the edges of the given graph by a path of split-edges, executes the {@link yfiles.organic.SplitEdgeStage#coreLayout core layout algorithm} and restores the * original edges, introducing bends at the locations of the split-nodes. - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph */ applyLayout(graph:yfiles.layout.LayoutGraph):void; /** @@ -107891,7 +102230,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.organic.OrganicLayout}. - * @class yfiles.organic.OrganicLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface OrganicLayoutData extends yfiles.layout.LayoutData{} @@ -108022,16 +102361,15 @@ declare namespace system{ * It is possible to select * {@link yfiles.router.ParallelEdgeRouter#LEADING_EDGE_DP_KEY custom master edges}. All edges that are parallel to the selected edges will be temporarily removed. *

    - * @class yfiles.router.ParallelEdgeRouter + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface ParallelEdgeRouter extends yfiles.layout.LayoutStageBase{} export class ParallelEdgeRouter { /** * Creates a new {@link yfiles.router.ParallelEdgeRouter} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] The core layout algorithm. + * @param [coreLayouter=null] The core layout algorithm. * @see yfiles.layout.LayoutStageBase#coreLayout - * @constructor */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -108044,7 +102382,7 @@ declare namespace system{ * This method is called before invoking the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. It may be overridden to change the selection of leading * edges. Hidden edges should be stored in {@link yfiles.router.ParallelEdgeRouter#hiddenEdges} to enable un-hiding later on. *

    - * @param {yfiles.algorithms.Graph} graph the input graph + * @param graph the input graph * @see yfiles.router.ParallelEdgeRouter#directedMode * @see yfiles.router.ParallelEdgeRouter#AFFECTED_EDGES_DP_KEY * @protected @@ -108060,8 +102398,8 @@ declare namespace system{ * This method is called when the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} is finished. It may be overridden to introduce a custom routing for * parallel edges. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph after the core layout - * @param {yfiles.algorithms.IEdgeMap} parallelEdges the map that provides all parallel edges for each master edge + * @param graph the graph after the core layout + * @param parallelEdges the map that provides all parallel edges for each master edge * @see yfiles.router.ParallelEdgeRouter#joinEnds * @see yfiles.router.ParallelEdgeRouter#adaptiveLineDistances * @see yfiles.router.ParallelEdgeRouter#adjustLeadingEdge @@ -108209,22 +102547,6 @@ declare namespace system{ */ ROUTE_EDGES_AT_AFFECTED_NODES } - export enum ChannelOrientation{ - /** - * Channel orientation specifier for routing edges vertically. - *

    - * More precisely, the algorithm calculates the x-coordinates of the vertical middle segments of the added edges. - *

    - */ - VERTICAL, - /** - * Channel orientation specifier for routing edges horizontally. - *

    - * More precisely, the algorithm calculates the y-coordinates of the horizontal middle segments of the added edges. - *

    - */ - HORIZONTAL - } export enum MonotonicPathRestriction{ /** * A constant specifying that there are no monotonic edge path restrictions. @@ -108263,15 +102585,14 @@ declare namespace system{ * will first invoke the {@link yfiles.layout.LayoutStageBase#coreLayout} if one exists. Then, it will remove all bends from the edges and will place the ports either on * the center of the nodes or at a location specified by a {@link yfiles.layout.PortConstraint}. *

    - * @class yfiles.router.StraightLineEdgeRouter + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface StraightLineEdgeRouter extends yfiles.layout.LayoutStageBase{} export class StraightLineEdgeRouter { /** * Creates a new instance of {@link yfiles.router.StraightLineEdgeRouter} with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [core=null] The core layout algorithm. - * @constructor + * @param [core=null] The core layout algorithm. */ constructor(core?:yfiles.layout.ILayoutAlgorithm); /** @@ -108318,20 +102639,18 @@ declare namespace system{ * The path that was followed in order to reach a given {@link yfiles.router.PartitionCell partition cell} can be reconstructed by traversing all * {@link yfiles.router.CellEntrance#previousEntrance previous entrances}. The {@link yfiles.router.CellEntrance#enterInterval enter interval} and {@link yfiles.router.CellEntrance#enterDirection enter direction} determine how the {@link yfiles.router.PartitionCell partition cell} was entered. *

    - * @class yfiles.router.CellEntrance + * @class */ export interface CellEntrance extends Object{} export class CellEntrance { /** * Creates a new {@link yfiles.router.CellEntrance} instance that is a copy of a given other {@link yfiles.router.CellEntrance}. - * @param {yfiles.router.CellEntrance} other the {@link yfiles.router.CellEntrance} to be copied - * @constructor + * @param other the {@link } to be copied */ constructor(other:yfiles.router.CellEntrance); /** * Creates a new {@link yfiles.router.CellEntrance} instance for a given {@link yfiles.router.PartitionCell}. - * @param {yfiles.router.PartitionCell} cell the {@link yfiles.router.PartitionCell} that is entered - * @constructor + * @param cell the {@link } that is entered */ constructor(cell:yfiles.router.PartitionCell); /** @@ -108381,21 +102700,20 @@ declare namespace system{ } /** * This class stores information about the part of an edge segment that lies inside a specified {@link yfiles.router.PartitionCell partition cell}. - * @class yfiles.router.CellSegmentInfo + * @class * @extends {yfiles.router.SegmentInfoBase} */ export interface CellSegmentInfo extends yfiles.router.SegmentInfoBase{} export class CellSegmentInfo { /** * Creates a new {@link yfiles.router.CellSegmentInfo} instance. - * @param {yfiles.algorithms.Edge} edge the edge to which the segment of this info belongs - * @param {number} segmentIndex the index of the segment to which this info belongs - * @param {yfiles.layout.Direction} direction the direction to which the segment of this info points - * @param {yfiles.router.Interval} locationRange the range within which the common location of this segment has to lie - * @param {yfiles.router.Interval} minExtension the minimum interval in extension direction this segment part is known to intersect - * @param {yfiles.router.Interval} maxExtension the maximum interval in extension direction this segment part will span - * @param {yfiles.router.PartitionCell} cell the partition cell within which this part of the edge segment lies - * @constructor + * @param edge the edge to which the segment of this info belongs + * @param segmentIndex the index of the segment to which this info belongs + * @param direction the direction to which the segment of this info points + * @param locationRange the range within which the common location of this segment has to lie + * @param minExtension the minimum interval in extension direction this segment part is known to intersect + * @param maxExtension the maximum interval in extension direction this segment part will span + * @param cell the partition cell within which this part of the edge segment lies */ constructor(edge:yfiles.algorithms.Edge,segmentIndex:number,direction:yfiles.layout.Direction,locationRange:yfiles.router.Interval,minExtension:yfiles.router.Interval,maxExtension:yfiles.router.Interval,cell:yfiles.router.PartitionCell); /** @@ -108417,55 +102735,54 @@ declare namespace system{ * Channels are used by the {@link yfiles.router.ChannelBasedPathRouting} to route edges using * {@link yfiles.router.SegmentInfo}s describing their path. *

    - * @class yfiles.router.Channel + * @class */ export interface Channel extends Object{} export class Channel { /** * Creates a new {@link yfiles.router.Channel} that contains the given {@link yfiles.router.SegmentInfo segment info}. - * @param {yfiles.router.SegmentInfo} segment the given segment info for which the {@link yfiles.router.Channel} is created + * @param segment the given segment info for which the {@link } is created * @throws {Stubs.Exceptions.ArgumentError} if the given segment has a different orientation than the other segments already contained in the channel - * @constructor */ constructor(segment:yfiles.router.SegmentInfo); /** * Adds a new {@link yfiles.router.SegmentInfo segment info} to the {@link yfiles.router.Channel channel}. - * @param {yfiles.router.SegmentInfo} segment the segment info to be added to this channel + * @param segment the segment info to be added to this channel * @throws {Stubs.Exceptions.ArgumentError} if the given segment has a different orientation than the other segments already contained in the channel */ addSegment(segment:yfiles.router.SegmentInfo):void; /** * Adds a {@link yfiles.router.SegmentGroup segment group} to this {@link yfiles.router.Channel channel}. - * @param {yfiles.router.SegmentGroup} group the segment group to be added + * @param group the segment group to be added */ addSegmentGroup(group:yfiles.router.SegmentGroup):void; /** * Returns the current location that the given {@link yfiles.router.SegmentInfo segment info} has been assigned within its {@link yfiles.router.SegmentInfoBase#locationRange location range}. - * @param {yfiles.router.SegmentInfo} segmentInfo the segment info for which the current location will be returned - * @returns {number} the current location of the segment info or {@link number#NaN} if no location has been assigned before + * @param segmentInfo the segment info for which the current location will be returned + * @returns the current location of the segment info or {@link #NaN} if no location has been assigned before * @see yfiles.router.Channel#setCurrentLocation */ getCurrentLocation(segmentInfo:yfiles.router.SegmentInfo):number; /** * Returns the {@link yfiles.router.SegmentInfo segment info} with the given index in the list of segments of this {@link yfiles.router.Channel channel}. - * @param {number} index the index of the segment in the list of segments - * @returns {yfiles.router.SegmentInfo} the {@link yfiles.router.SegmentInfo segment info} with the given index in the list of segments + * @param index the index of the segment in the list of segments + * @returns the {@link segment info} with the given index in the list of segments */ getSegment(index:number):yfiles.router.SegmentInfo; /** * Returns the {@link yfiles.router.SegmentGroup segment group} with the given index in this {@link yfiles.router.Channel channel}. - * @param {number} index the index of the segment group - * @returns {yfiles.router.SegmentGroup} the {@link yfiles.router.SegmentGroup segment group} with the given index in this channel + * @param index the index of the segment group + * @returns the {@link segment group} with the given index in this channel */ getSegmentGroup(index:number):yfiles.router.SegmentGroup; /** * Returns the number of {@link yfiles.router.SegmentInfo segment infos} in this channel. - * @returns {number} the number of segment infos in this channel + * @returns the number of segment infos in this channel */ segmentCount():number; /** * Returns the number of {@link yfiles.router.SegmentGroup segment groups} in this {@link yfiles.router.Channel channel}. - * @returns {number} the number of segment groups in this channel + * @returns the number of segment groups in this channel */ segmentGroupCount():number; /** @@ -108474,8 +102791,8 @@ declare namespace system{ * During the distribution of the segments in the channel, different locations can be assigned but only the last one is * finally assigned to the {@link yfiles.router.SegmentInfo segment info}. *

    - * @param {yfiles.router.SegmentInfo} segmentInfo the segment info for which the current location will be set - * @param {number} location the location of the segment info within its location range + * @param segmentInfo the segment info for which the current location will be set + * @param location the location of the segment info within its location range * @see yfiles.router.SegmentInfoBase#location */ setCurrentLocation(segmentInfo:yfiles.router.SegmentInfo,location:number):void; @@ -108524,13 +102841,12 @@ declare namespace system{ *

    * @see yfiles.router.EdgeInfo#getSegmentInfo * @see yfiles.layout.LayoutGraph#setPath - * @class yfiles.router.ChannelBasedPathRouting + * @class */ export interface ChannelBasedPathRouting extends Object{} export class ChannelBasedPathRouting { /** * Creates a new instance of {@link yfiles.router.ChannelBasedPathRouting}. - * @constructor */ constructor(); /** @@ -108539,7 +102855,7 @@ declare namespace system{ * This method is called after the segments have been distributed in the channel but before the final locations of the * segments are assigned to the {@link yfiles.router.SegmentInfo segment info}s. *

    - * @param {yfiles.router.Channel} channel the channel that contains the segment infos for which the alignment should be considered + * @param channel the channel that contains the segment infos for which the alignment should be considered * @see yfiles.router.Channel#getCurrentLocation * @see yfiles.router.SegmentInfoBase#preferredAlignment * @protected @@ -108550,7 +102866,7 @@ declare namespace system{ *

    * This method is called after the order of the {@link yfiles.router.SegmentInfo segment infos} within a channel has been {@link yfiles.router.ChannelBasedPathRouting#optimizeSegmentOrder optimized}. *

    - * @param {yfiles.router.Channel} channel the channel that contains the segment infos for which the locations will be calculated + * @param channel the channel that contains the segment infos for which the locations will be calculated * @see yfiles.router.Channel#setCurrentLocation * @protected */ @@ -108569,11 +102885,11 @@ declare namespace system{ * This method is called in {@link yfiles.router.ChannelBasedPathRouting#route} before edge segments are distributed within the * channels. *

    - * @param {yfiles.algorithms.YList} channels the channels whose segments will be sorted by the {@link yfiles.collections.IComparer. comparator} - * @param {yfiles.router.PathSearchResult} pathSearchResult the {@link yfiles.router.PathSearchResult path search result} containing the {@link yfiles.router.EdgeInfo}s with the - * {@link yfiles.router.SegmentInfo}s for which the comparator will be used - * @param {yfiles.router.PathSearchConfiguration} configuration the {@link yfiles.router.PathSearchConfiguration configuration} used during this path search - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer. comparator} used for sorting the {@link yfiles.router.SegmentInfo}s in a {@link yfiles.router.Channel channel} + * @param channels the channels whose segments will be sorted by the {@link comparator} + * @param pathSearchResult the {@link path search result} containing the {@link }s with the + * {@link }s for which the comparator will be used + * @param configuration the {@link configuration} used during this path search + * @returns a {@link comparator} used for sorting the {@link }s in a {@link channel} * @protected */ createSegmentInfoComparer(channels:yfiles.algorithms.YList,pathSearchResult:yfiles.router.PathSearchResult,configuration:yfiles.router.PathSearchConfiguration):yfiles.collections.IComparer; @@ -108583,7 +102899,7 @@ declare namespace system{ *

    * This method must be called before the edges are {@link yfiles.router.ChannelBasedPathRouting#route routed}. *

    - * @param {yfiles.router.PathSearchConfiguration} configuration the {@link yfiles.router.PathSearchConfiguration configuration} used for the following path routing + * @param configuration the {@link configuration} used for the following path routing * @see yfiles.router.ChannelBasedPathRouting#route */ initialize(configuration:yfiles.router.PathSearchConfiguration):void; @@ -108600,7 +102916,7 @@ declare namespace system{ * {@link yfiles.router.SegmentInfo}s and, if possible, the minimum edge to edge distances and possible grid constraints for the * segments. *

    - * @param {yfiles.router.Channel} channel the channel for which the order of the {@link yfiles.router.SegmentInfo}s is optimized + * @param channel the channel for which the order of the {@link }s is optimized * @protected */ optimizeSegmentOrder(channel:yfiles.router.Channel):void; @@ -108623,8 +102939,8 @@ declare namespace system{ *

    * Finally, the control points for the paths are calculated. *

    - * @param {yfiles.algorithms.EdgeList} edges the {@link yfiles.algorithms.EdgeList list of edges} to be routed - * @param {yfiles.router.PathSearchResult} pathSearchResult the {@link yfiles.router.PathSearchResult path search result} containing the {@link yfiles.router.Path} objects for the edges + * @param edges the {@link list of edges} to be routed + * @param pathSearchResult the {@link path search result} containing the {@link } objects for the edges * @throws {Stubs.Exceptions.InvalidOperationError} if the locations are not within the segment's location range * @see yfiles.router.PathSearchResult#getPath * @see yfiles.router.SegmentInfoBase#locationRange @@ -108637,8 +102953,8 @@ declare namespace system{ * This method is called in {@link yfiles.router.ChannelBasedPathRouting#route} when the edge segments are distributed within the * channels. *

    - * @param {yfiles.collections.IList.} segmentInfos the list of {@link yfiles.router.SegmentInfo}s to be sorted - * @param {yfiles.collections.IComparer.} segmentInfoComparer the comparator used for sorting the list of {@link yfiles.router.SegmentInfo}s + * @param segmentInfos the list of {@link }s to be sorted + * @param segmentInfoComparer the comparator used for sorting the list of {@link }s * @protected */ sortSegmentInfos(segmentInfos:yfiles.collections.IList,segmentInfoComparer:yfiles.collections.IComparer):void; @@ -108657,7 +102973,7 @@ declare namespace system{ * The partitioning strategy is based on binary space partitioning. It divides the partition space recursively in two {@link yfiles.router.PartitionCell cells} * until each cell is completely covered by one or more {@link yfiles.router.Obstacle}s or completely empty. *

    - * @class yfiles.router.DynamicObstacleDecomposition + * @class * @implements {yfiles.router.IObstaclePartition} * @implements {yfiles.router.IDynamicDecomposition} */ @@ -108665,7 +102981,6 @@ declare namespace system{ export class DynamicObstacleDecomposition { /** * Constructs a new instance of {@link yfiles.router.DynamicObstacleDecomposition}. - * @constructor */ constructor(); /** @@ -108675,7 +102990,7 @@ declare namespace system{ * These events occur when the decomposition changes the partition by subdividing cells into sub-cells or when new cells * are created. *

    - * @param {yfiles.router.IDecompositionListener} listener the dynamic decomposition listener to add + * @param listener the dynamic decomposition listener to add * @see yfiles.router.IDecompositionListener */ addDynamicDecompositionListener(listener:yfiles.router.IDecompositionListener):void; @@ -108690,36 +103005,36 @@ declare namespace system{ *

    * This method is also called in {@link yfiles.router.DynamicObstacleDecomposition#init}. *

    - * @param {yfiles.router.PartitionCell} createdCell the newly created cell + * @param createdCell the newly created cell * @see yfiles.router.IDecompositionListener * @protected */ fireCreateCellEvent(createdCell:yfiles.router.PartitionCell):void; /** * Notifies all registered {@link yfiles.router.IDecompositionListener dynamic decomposition listeners} that the given {@link yfiles.router.PartitionCell partition cell} has been finalized. - * @param {yfiles.router.PartitionCell} finalizedCell the cell that has been finalized + * @param finalizedCell the cell that has been finalized * @see yfiles.router.IDecompositionListener * @protected */ fireFinalizeCellEvent(finalizedCell:yfiles.router.PartitionCell):void; /** * Notifies all registered {@link yfiles.router.IDecompositionListener dynamic decomposition listeners} of a subdivision of a given {@link yfiles.router.PartitionCell partition cell}. - * @param {yfiles.router.PartitionCell} cell the cell that has been subdivided - * @param {yfiles.collections.IList.} subCells the new sub-cells resulting from the subdivision of the given cell + * @param cell the cell that has been subdivided + * @param subCells the new sub-cells resulting from the subdivision of the given cell * @see yfiles.router.IDecompositionListener * @protected */ fireSubdividedEvent(cell:yfiles.router.PartitionCell,subCells:yfiles.collections.IList):void; /** * Returns a list of all {@link yfiles.router.PartitionCell}s that intersect or cover the given rectangle. - * @param {yfiles.algorithms.YRectangle} rect the rectangular area whose (partially) covered cells will be returned - * @returns {yfiles.collections.IList.} a list of {@link yfiles.router.PartitionCell}s that (partially) cover the given rectangular area + * @param rect the rectangular area whose (partially) covered cells will be returned + * @returns a list of {@link }s that (partially) cover the given rectangular area */ getCells(rect:yfiles.algorithms.YRectangle):yfiles.collections.IList; /** * Returns all {@link yfiles.router.PartitionCell partition cells} that are completely covered by the given {@link yfiles.router.Obstacle}. - * @param {yfiles.router.Obstacle} obstacle the obstacle for which the covered cells will be returned - * @returns {yfiles.collections.IList.} an unmodifiable list of {@link yfiles.router.PartitionCell} instances that are completely covered by the given obstacle + * @param obstacle the obstacle for which the covered cells will be returned + * @returns an unmodifiable list of {@link } instances that are completely covered by the given obstacle */ getCellsForObstacle(obstacle:yfiles.router.Obstacle):yfiles.collections.IList; /** @@ -108732,19 +103047,19 @@ declare namespace system{ * depending on the cut costs (during {@link yfiles.router.DynamicObstacleDecomposition#getCellsForObstacle}, {@link yfiles.router.DynamicObstacleDecomposition#getCells} * and {@link yfiles.router.DynamicObstacleDecomposition#getNeighbors} methods). *

    - * @param {number} cut the coordinate of the cut - * @param {number} min the left side of the subdivided cell - * @param {number} max the right side of the subdivided cell - * @param {number} orthogonalMin the upper side of the subdivided cell - * @param {number} orthogonalMax the lower side of the subdivided cell - * @returns {number} the cost of a cut with respect to the geometry of the sub-cells + * @param cut the coordinate of the cut + * @param min the left side of the subdivided cell + * @param max the right side of the subdivided cell + * @param orthogonalMin the upper side of the subdivided cell + * @param orthogonalMax the lower side of the subdivided cell + * @returns the cost of a cut with respect to the geometry of the sub-cells * @protected */ getGeometricCutCosts(cut:number,min:number,max:number,orthogonalMin:number,orthogonalMax:number):number; /** * Returns the neighbor {@link yfiles.router.PartitionCell partition cells} of the given cell. - * @param {yfiles.router.PartitionCell} cell the cell whose neighbors will be returned - * @returns {yfiles.collections.IList.} the neighbor cells of the given cell + * @param cell the cell whose neighbors will be returned + * @returns the neighbor cells of the given cell */ getNeighbors(cell:yfiles.router.PartitionCell):yfiles.collections.IList; /** @@ -108757,17 +103072,17 @@ declare namespace system{ * depending on the cut costs (during {@link yfiles.router.DynamicObstacleDecomposition#getCellsForObstacle}, {@link yfiles.router.DynamicObstacleDecomposition#getCells} * and {@link yfiles.router.DynamicObstacleDecomposition#getNeighbors} methods). *

    - * @param {number} numObstaclesInFirstHalf the number of obstacles that lie completely in the first half - * @param {number} numObstaclesInSecondHalf the number of obstacles that lie completely in the second half - * @param {number} numObstaclesOnCut the number of obstacles that lie on the cut - * @returns {number} the cost of a cut with respect to the subdivided obstacles + * @param numObstaclesInFirstHalf the number of obstacles that lie completely in the first half + * @param numObstaclesInSecondHalf the number of obstacles that lie completely in the second half + * @param numObstaclesOnCut the number of obstacles that lie on the cut + * @returns the cost of a cut with respect to the subdivided obstacles * @protected */ getObstacleCutCosts(numObstaclesInFirstHalf:number,numObstaclesInSecondHalf:number,numObstaclesOnCut:number):number; /** * Returns all {@link yfiles.router.Obstacle}s that cover the given {@link yfiles.router.PartitionCell partition cell}. - * @param {yfiles.router.PartitionCell} cell the partition cell for which the obstacles will be returned - * @returns {yfiles.collections.IList.} an unmodifiable list of {@link yfiles.router.Obstacle} instances that cover the given cell + * @param cell the partition cell for which the obstacles will be returned + * @returns an unmodifiable list of {@link } instances that cover the given cell */ getObstacles(cell:yfiles.router.PartitionCell):yfiles.collections.IList; /** @@ -108775,14 +103090,14 @@ declare namespace system{ *

    * This method must be called before any other method is invoked. *

    - * @param {yfiles.collections.IList.} obstacles a list of {@link yfiles.router.Obstacle} objects - * @param {yfiles.algorithms.YRectangle} partitionBounds the bounds of the partition + * @param obstacles a list of {@link } objects + * @param partitionBounds the bounds of the partition */ init(obstacles:yfiles.collections.IList,partitionBounds:yfiles.algorithms.YRectangle):void; /** * Removes the given {@link yfiles.router.IDecompositionListener dynamic decomposition listener} such that it no longer receives {@link yfiles.router.PartitionCell} subdivision * and creation events from this decomposition. - * @param {yfiles.router.IDecompositionListener} listener the dynamic decomposition listener to remove + * @param listener the dynamic decomposition listener to remove * @see yfiles.router.IDecompositionListener */ removeDynamicDecompositionListener(listener:yfiles.router.IDecompositionListener):void; @@ -108822,20 +103137,19 @@ declare namespace system{ } /** * This class encapsulates the information that determines the route of a specific edge within a specific {@link yfiles.router.PartitionCell partition cell}. - * @class yfiles.router.EdgeCellInfo + * @class */ export interface EdgeCellInfo extends Object{} export class EdgeCellInfo { /** * Creates a new {@link yfiles.router.EdgeCellInfo} instance. - * @param {yfiles.algorithms.Edge} edge the edge whose routing in the cell is described - * @param {yfiles.router.PartitionCell} cell the cell in which the edge is routed - * @param {yfiles.router.OrthogonalInterval} enterInterval the interval that the edge uses to enter the cell - * @param {yfiles.router.OrthogonalInterval} exitInterval the interval that the edge uses to exit the cell - * @param {yfiles.layout.Direction} enterDirection the direction in which the edge enters the cell - * @param {yfiles.layout.Direction} exitDirection the direction in which the edge exits the cell - * @param {number} enterSegmentNo the index of the edge segment that enters the cell - * @constructor + * @param edge the edge whose routing in the cell is described + * @param cell the cell in which the edge is routed + * @param enterInterval the interval that the edge uses to enter the cell + * @param exitInterval the interval that the edge uses to exit the cell + * @param enterDirection the direction in which the edge enters the cell + * @param exitDirection the direction in which the edge exits the cell + * @param enterSegmentNo the index of the edge segment that enters the cell */ constructor(edge:yfiles.algorithms.Edge,cell:yfiles.router.PartitionCell,enterInterval:yfiles.router.OrthogonalInterval,exitInterval:yfiles.router.OrthogonalInterval,enterDirection:yfiles.layout.Direction,exitDirection:yfiles.layout.Direction,enterSegmentNo:number); /** @@ -108925,54 +103239,53 @@ declare namespace system{ /** * This class encapsulates the information required to route an edge with a path routing algorithm. * @see yfiles.router.ChannelBasedPathRouting - * @class yfiles.router.EdgeInfo + * @class */ export interface EdgeInfo extends Object{} export class EdgeInfo { /** * Creates a new {@link yfiles.router.EdgeInfo} instance. - * @param {yfiles.router.Path} path the path that will be used for routing the edge - * @param {yfiles.router.PathSearchConfiguration} configuration the {@link yfiles.router.PathSearchConfiguration configuration} of the path search algorithm - * @constructor + * @param path the path that will be used for routing the edge + * @param configuration the {@link configuration} of the path search algorithm */ constructor(path:yfiles.router.Path,configuration:yfiles.router.PathSearchConfiguration); /** * Calculates an array of {@link yfiles.algorithms.LineSegment}s created by the {@link yfiles.router.EdgeInfo#calculatePathPoints calculated path points}. - * @returns {Array.} an array of {@link yfiles.algorithms.LineSegment}s created by the calculated path points + * @returns an array of {@link }s created by the calculated path points */ calculateLineSegments():yfiles.algorithms.LineSegment[]; /** * Calculates a list of {@link yfiles.algorithms.YPoint}s containing the source port, bend and target port locations. - * @returns {yfiles.algorithms.YList} a list of {@link yfiles.algorithms.YPoint}s containing the source port, bend and target port locations + * @returns a list of {@link }s containing the source port, bend and target port locations */ calculatePathPoints():yfiles.algorithms.YList; /** * Returns the {@link yfiles.router.EdgeCellInfo} of the given {@link yfiles.router.CellEntrance} in the path. - * @param {yfiles.router.CellEntrance} entrance the entrance for which the {@link yfiles.router.EdgeCellInfo} will be returned - * @returns {yfiles.router.EdgeCellInfo} the {@link yfiles.router.EdgeCellInfo} of the given {@link yfiles.router.CellEntrance} in the path + * @param entrance the entrance for which the {@link } will be returned + * @returns the {@link } of the given {@link } in the path */ getEdgeCellInfo(entrance:yfiles.router.CellEntrance):yfiles.router.EdgeCellInfo; /** * Returns the {@link yfiles.router.SegmentInfo} of the segment following the segment of the given {@link yfiles.router.SegmentInfo}. - * @param {yfiles.router.SegmentInfo} segment the segment info for which the next segment info will be returned - * @returns {yfiles.router.SegmentInfo} the segment info of the segment following the segment of the given segment info + * @param segment the segment info for which the next segment info will be returned + * @returns the segment info of the segment following the segment of the given segment info */ getNextSegment(segment:yfiles.router.SegmentInfo):yfiles.router.SegmentInfo; /** * Returns the {@link yfiles.router.SegmentInfo} of the segment preceding the segment of the given {@link yfiles.router.SegmentInfo}. - * @param {yfiles.router.SegmentInfo} segment the segment info for which the previous segment info will be returned - * @returns {yfiles.router.SegmentInfo} the segment info of the segment preceding the segment of the given segment info + * @param segment the segment info for which the previous segment info will be returned + * @returns the segment info of the segment preceding the segment of the given segment info */ getPreviousSegment(segment:yfiles.router.SegmentInfo):yfiles.router.SegmentInfo; /** * Returns the {@link yfiles.router.SegmentInfo} of the edge segment with the given index. - * @param {number} segmentIndex the index of the edge segment for which the segment info will be returned - * @returns {yfiles.router.SegmentInfo} the {@link yfiles.router.SegmentInfo} of the edge segment with the given index + * @param segmentIndex the index of the edge segment for which the segment info will be returned + * @returns the {@link } of the edge segment with the given index */ getSegmentInfo(segmentIndex:number):yfiles.router.SegmentInfo; /** * Returns the number of segments of the edge. - * @returns {number} the number of segments of the edge + * @returns the number of segments of the edge */ segmentCount():number; /** @@ -109027,18 +103340,17 @@ declare namespace system{ * This class is designed such that it allows future additions of new getter methods. *

    * @see yfiles.router.EdgeRouter#EDGE_LAYOUT_DESCRIPTOR_DP_KEY - * @class yfiles.router.EdgeLayoutDescriptor + * @class */ export interface EdgeLayoutDescriptor extends Object{} export class EdgeLayoutDescriptor { /** * Creates a new instance of an {@link yfiles.router.EdgeLayoutDescriptor} with the default settings. - * @constructor */ constructor(); /** * Creates a copy of this {@link yfiles.router.EdgeLayoutDescriptor} instance. - * @returns {yfiles.router.EdgeLayoutDescriptor} a copy of this {@link yfiles.router.EdgeLayoutDescriptor} instance + * @returns a copy of this {@link } instance */ createCopy():yfiles.router.EdgeLayoutDescriptor; /** @@ -109178,20 +103490,19 @@ declare namespace system{ * {@link yfiles.algorithms.IDataProvider}s are registered with the graph with key {@link yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY} * for source groups or key {@link yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY} for target groups. *

    - * @class yfiles.router.EdgeRouter + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface EdgeRouter extends yfiles.layout.LayoutStageBase{} export class EdgeRouter { /** * Creates a new {@link yfiles.router.EdgeRouter} instance with an optional {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [core=null] The core layout algorithm. - * @constructor + * @param [core=null] The core layout algorithm. */ constructor(core?:yfiles.layout.ILayoutAlgorithm); /** * Checks the sizes of the nodes to be non-zero. - * @param {yfiles.layout.LayoutGraph} g The graph to check. + * @param g The graph to check. * @protected */ checkNodeSize(g:yfiles.layout.LayoutGraph):void; @@ -109201,7 +103512,7 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} after the edge routes are calculated. It may be overridden * in order to provide a custom implementation for cleaning up a {@link yfiles.router.GraphPartition} instance. *

    - * @param {yfiles.router.GraphPartition} partition the given {@link yfiles.router.GraphPartition} instance + * @param partition the given {@link } instance * @see yfiles.router.EdgeRouter#configureGraphPartition * @see yfiles.router.EdgeRouter#registeredPartitionExtensions * @protected @@ -109213,7 +103524,7 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} before the edge routes are calculated. It may be * overridden in order to adjust the configuration of the {@link yfiles.router.GraphPartition} instance. *

    - * @param {yfiles.router.GraphPartition} partition the given {@link yfiles.router.GraphPartition} instance + * @param partition the given {@link } instance * @see yfiles.router.EdgeRouter#registeredPartitionExtensions * @see yfiles.router.EdgeRouter#cleanUpGraphPartition * @protected @@ -109225,7 +103536,7 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} before the edge routes are calculated. It may be * overridden in order to adjust the configuration of a {@link yfiles.router.PathSearch} instance. *

    - * @param {yfiles.router.PathSearch} pathSearch a {@link yfiles.router.PathSearch} instance + * @param pathSearch a {@link } instance * @see yfiles.router.EdgeRouter#createPathSearch * @see yfiles.router.EdgeRouter#registeredPathSearchExtensions * @protected @@ -109237,9 +103548,9 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} before the edge routes are calculated. It may be * overridden in order to create a new {@link yfiles.router.PathSearchConfiguration} object with custom configuration. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.layout.GroupingSupport} grouping the grouping structure of the graph - * @returns {yfiles.router.PathSearchConfiguration} a {@link yfiles.router.PathSearchConfiguration} instance + * @param graph the input graph + * @param grouping the grouping structure of the graph + * @returns a {@link } instance * @protected */ createConfiguration(graph:yfiles.layout.LayoutGraph,grouping:yfiles.layout.GroupingSupport):yfiles.router.PathSearchConfiguration; @@ -109252,9 +103563,9 @@ declare namespace system{ *

    * By default, this method returns an instance of the default implementation. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.router.PathSearchConfiguration} configuration the given configuration for the path searching process - * @returns {yfiles.collections.IComparer.} a {@link yfiles.collections.IComparer.} instance + * @param graph the input graph + * @param configuration the given configuration for the path searching process + * @returns a {@link } instance * @protected */ createDefaultEdgeOrderComparer(graph:yfiles.layout.LayoutGraph,configuration:yfiles.router.PathSearchConfiguration):yfiles.collections.IComparer; @@ -109267,8 +103578,8 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} before the edge routes are calculated. It may be * overridden in order to create a new {@link yfiles.router.GraphPartition} object with a custom configuration. *

    - * @param {yfiles.router.IObstaclePartition} decomposition the current {@link yfiles.router.IObstaclePartition} - * @returns {yfiles.router.GraphPartition} a {@link yfiles.router.GraphPartition} instance + * @param decomposition the current {@link } + * @returns a {@link } instance * @see yfiles.router.EdgeRouter#configureGraphPartition * @see yfiles.router.EdgeRouter#registeredPartitionExtensions */ @@ -109280,7 +103591,7 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} before the edge routes are calculated. It may be * overridden in order to create a new {@link yfiles.router.DynamicObstacleDecomposition} object with custom configuration. *

    - * @returns {yfiles.router.DynamicObstacleDecomposition} a {@link yfiles.router.DynamicObstacleDecomposition} instance + * @returns a {@link } instance * @see yfiles.router.EdgeRouter#createGraphPartition * @protected */ @@ -109292,7 +103603,7 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} before the edge routes are calculated. It may be * overridden in order to create a new {@link yfiles.router.ChannelBasedPathRouting} object with custom configuration. *

    - * @returns {yfiles.router.ChannelBasedPathRouting} a {@link yfiles.router.ChannelBasedPathRouting} instance + * @returns a {@link } instance * @protected */ createPathRouting():yfiles.router.ChannelBasedPathRouting; @@ -109301,7 +103612,7 @@ declare namespace system{ *

    * This method may be overridden in order to create a new {@link yfiles.router.PathSearch} object with custom configuration. *

    - * @returns {yfiles.router.PathSearch} a {@link yfiles.router.PathSearch} instance + * @returns a {@link } instance * @see yfiles.router.EdgeRouter#configurePathSearch * @see yfiles.router.EdgeRouter#registeredPathSearchExtensions * @protected @@ -109313,9 +103624,9 @@ declare namespace system{ * This method is called by {@link yfiles.router.EdgeRouter#applyLayout} before the edge routes are calculated. It may be * overridden in order to create a new {@link yfiles.router.PathSearchContext} object with custom configuration. *

    - * @param {yfiles.router.PathSearch} pathSearch a given {@link yfiles.router.PathSearch} instance - * @param {yfiles.router.PathSearchConfiguration} configuration a given configuration for the path searching process - * @returns {yfiles.router.PathSearchContext} a {@link yfiles.router.PathSearchContext} instance + * @param pathSearch a given {@link } instance + * @param configuration a given configuration for the path searching process + * @returns a {@link } instance * @protected */ createPathSearchContext(pathSearch:yfiles.router.PathSearch,configuration:yfiles.router.PathSearchConfiguration):yfiles.router.PathSearchContext; @@ -109329,8 +103640,8 @@ declare namespace system{ *

    * This method may be overridden in order to create an {@link yfiles.router.EdgeLayoutDescriptor} with custom configuration. *

    - * @param {yfiles.algorithms.Edge} edge the given edge - * @returns {yfiles.router.EdgeLayoutDescriptor} the current {@link yfiles.router.EdgeLayoutDescriptor} instance for a given edge + * @param edge the given edge + * @returns the current {@link } instance for a given edge * @see yfiles.router.EdgeRouter#defaultEdgeLayoutDescriptor * @see yfiles.router.EdgeRouter#EDGE_LAYOUT_DESCRIPTOR_DP_KEY */ @@ -109345,9 +103656,9 @@ declare namespace system{ * This method may be overridden in order to determine differently whether or not a given edge is considered to be * selected. *

    - * @param {yfiles.algorithms.Edge} edge the given edge - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {boolean} true if the given edge is selected, false otherwise + * @param edge the given edge + * @param graph the input graph + * @returns true if the given edge is selected, false otherwise */ isAffected(edge:yfiles.algorithms.Edge,graph:yfiles.algorithms.Graph):boolean; /** @@ -109649,7 +103960,7 @@ declare namespace system{ * re-dispatches the decomposition notifications to its extensions. *

    * @see yfiles.router.IGraphPartitionExtension - * @class yfiles.router.GraphPartition + * @class * @implements {yfiles.router.IPartition} * @implements {yfiles.router.IDynamicDecomposition} * @implements {yfiles.router.IDecompositionListener} @@ -109658,8 +103969,7 @@ declare namespace system{ export class GraphPartition { /** * Creates a new {@link yfiles.router.GraphPartition} instance using the given {@link yfiles.router.GraphPartition#partition delegate inner obstacle partition}. - * @param {yfiles.router.IObstaclePartition} partition the delegate inner obstacle partition - * @constructor + * @param partition the delegate inner obstacle partition */ constructor(partition:yfiles.router.IObstaclePartition); /** @@ -109668,7 +103978,7 @@ declare namespace system{ * The listener will be notified upon dynamic decomposition events. If it is a {@link yfiles.router.IGraphPartitionExtension}, * method {@link yfiles.router.IGraphPartitionExtension#preparePartition} is called during {@link yfiles.router.GraphPartition#init initialization}. *

    - * @param {yfiles.router.IDecompositionListener} listener the listener to be added + * @param listener the listener to be added */ addDynamicDecompositionListener(listener:yfiles.router.IDecompositionListener):void; /** @@ -109685,23 +103995,23 @@ declare namespace system{ *

    * All obstacles created via this method are delegated to the {@link yfiles.router.GraphPartition#partition inner partition} upon {@link yfiles.router.GraphPartition#init initialization}. *

    - * @param {yfiles.algorithms.YRectangle} bounds the bounds of the obstacle - * @param {Object} data the additional data that should be associated with the obstacle - * @returns {yfiles.router.Obstacle} a new {@link yfiles.router.Obstacle} using the given bounds and data + * @param bounds the bounds of the obstacle + * @param data the additional data that should be associated with the obstacle + * @returns a new {@link } using the given bounds and data */ createObstacle(bounds:yfiles.algorithms.YRectangle,data:Object):yfiles.router.Obstacle; /** * Returns a list of all {@link yfiles.router.PartitionCell}s that intersect or cover the given rectangle by delegating to the * corresponding method of the {@link yfiles.router.GraphPartition#partition inner partition}. - * @param {yfiles.algorithms.YRectangle} rect the rectangular area whose (partially) covered cells will be returned - * @returns {yfiles.collections.IList.} a list containing (partially) covered {@link yfiles.router.PartitionCell}s + * @param rect the rectangular area whose (partially) covered cells will be returned + * @returns a list containing (partially) covered {@link }s * @see yfiles.router.IPartition#getCells */ getCells(rect:yfiles.algorithms.YRectangle):yfiles.collections.IList; /** * Returns all {@link yfiles.router.PartitionCell}s that are completely covered by the bounds of the given node. - * @param {yfiles.algorithms.Node} node the node for which the covered cells will be returned - * @returns {yfiles.collections.IList.} an unmodifiable list of {@link yfiles.router.PartitionCell} instances that are completely covered by the bounds of the given + * @param node the node for which the covered cells will be returned + * @returns an unmodifiable list of {@link } instances that are completely covered by the bounds of the given * node * @throws {Stubs.Exceptions.ArgumentError} if the node is unknown */ @@ -109710,27 +104020,27 @@ declare namespace system{ * Returns a list of all * {@link yfiles.router.PartitionCell}s that are neighbors of the given cell, i.e., those cells that have a common border segment * with the given cell. - * @param {yfiles.router.PartitionCell} cell the cell whose neighbors will be returned - * @returns {yfiles.collections.IList.} a list of {@link yfiles.router.PartitionCell}s that are neighbors of the given cell + * @param cell the cell whose neighbors will be returned + * @returns a list of {@link }s that are neighbors of the given cell */ getNeighbors(cell:yfiles.router.PartitionCell):yfiles.collections.IList; /** * Returns a list of all {@link yfiles.algorithms.Node}s whose bounds intersect or cover the bounds of the given cell. - * @param {yfiles.router.PartitionCell} cell the cell - * @returns {yfiles.collections.IList.} a list of {@link yfiles.algorithms.Node}s that are intersected by the given cell + * @param cell the cell + * @returns a list of {@link }s that are intersected by the given cell */ getNodes(cell:yfiles.router.PartitionCell):yfiles.collections.IList; /** * Returns the {@link yfiles.router.Obstacle} that has been created earlier for the given data object. - * @param {Object} data the given data for which the obstacle will be returned - * @returns {yfiles.router.Obstacle} the {@link yfiles.router.Obstacle} that has been created earlier for the given data object + * @param data the given data for which the obstacle will be returned + * @returns the {@link } that has been created earlier for the given data object */ getObstacle(data:Object):yfiles.router.Obstacle; /** * Returns all {@link yfiles.router.Obstacle}s covering the given {@link yfiles.router.PartitionCell} by delegating to the corresponding * method of the {@link yfiles.router.GraphPartition#partition inner partition}. - * @param {yfiles.router.PartitionCell} cell the cell whose obstacles will be returned - * @returns {yfiles.collections.IList.} a list of {@link yfiles.router.Obstacle}s that cover the given cell + * @param cell the cell whose obstacles will be returned + * @returns a list of {@link }s that cover the given cell * @see yfiles.router.IObstaclePartition#getObstacles */ getObstacles(cell:yfiles.router.PartitionCell):yfiles.collections.IList; @@ -109749,7 +104059,7 @@ declare namespace system{ * In the case where the {@link yfiles.router.GraphPartition#partition delegate partition} is of type {@link yfiles.router.IDynamicDecomposition}, this {@link yfiles.router.GraphPartition} * will also be added as {@link yfiles.router.IDecompositionListener} to it. *

    - * @param {yfiles.router.PathSearchConfiguration} configuration the configuration used by path search algorithms + * @param configuration the configuration used by path search algorithms * @see yfiles.router.GraphPartition#clear * @see yfiles.router.IGraphPartitionExtension#preparePartition * @see yfiles.router.GraphPartition#addDynamicDecompositionListener @@ -109761,7 +104071,7 @@ declare namespace system{ *

    * This method is a callback after a {@link yfiles.router.PartitionCell} has been created. *

    - * @param {yfiles.router.PartitionCell} createdCell the newly created {@link yfiles.router.PartitionCell} + * @param createdCell the newly created {@link } */ onCellCreated(createdCell:yfiles.router.PartitionCell):void; /** @@ -109770,7 +104080,7 @@ declare namespace system{ *

    * This method is a callback after a {@link yfiles.router.PartitionCell} has been finalized and won't be further subdivided. *

    - * @param {yfiles.router.PartitionCell} finalizedCell the cell that has been finalized + * @param finalizedCell the cell that has been finalized */ onCellFinalized(finalizedCell:yfiles.router.PartitionCell):void; /** @@ -109779,8 +104089,8 @@ declare namespace system{ *

    * This method is a callback after a {@link yfiles.router.PartitionCell} has been subdivided into several sub-cells. *

    - * @param {yfiles.router.PartitionCell} cell the cell that has been subdivided - * @param {yfiles.collections.IList.} subCells the sub-cells resulting from the subdivision of the given {@link yfiles.router.PartitionCell} + * @param cell the cell that has been subdivided + * @param subCells the sub-cells resulting from the subdivision of the given {@link } */ onCellSubdivided(cell:yfiles.router.PartitionCell,subCells:yfiles.collections.IList):void; /** @@ -109788,7 +104098,7 @@ declare namespace system{ *

    * The listener will not be notified of dynamic decomposition events anymore. *

    - * @param {yfiles.router.IDecompositionListener} listener the listener to be removed + * @param listener the listener to be removed */ removeDynamicDecompositionListener(listener:yfiles.router.IDecompositionListener):void; /** @@ -109817,14 +104127,13 @@ declare namespace system{ *

    * @see yfiles.router.GraphPartitionExtensionAdapter#configuration * @see yfiles.router.GraphPartitionExtensionAdapter#graphPartition - * @class yfiles.router.GraphPartitionExtensionAdapter + * @class * @implements {yfiles.router.IGraphPartitionExtension} */ export interface GraphPartitionExtensionAdapter extends Object,yfiles.router.IGraphPartitionExtension{} export class GraphPartitionExtensionAdapter { /** * Creates a new instance of {@link yfiles.router.GraphPartitionExtensionAdapter}. - * @constructor */ constructor(); /** @@ -109833,25 +104142,25 @@ declare namespace system{ cleanup():void; /** * - * @param {yfiles.router.PartitionCell} createdCell + * @param createdCell */ onCellCreated(createdCell:yfiles.router.PartitionCell):void; /** * - * @param {yfiles.router.PartitionCell} finalizedCell + * @param finalizedCell */ onCellFinalized(finalizedCell:yfiles.router.PartitionCell):void; /** * - * @param {yfiles.router.PartitionCell} cell - * @param {yfiles.collections.IList.} subCells + * @param cell + * @param subCells */ onCellSubdivided(cell:yfiles.router.PartitionCell,subCells:yfiles.collections.IList):void; /** * Stores the given {@link yfiles.router.PathSearchConfiguration} and {@link yfiles.router.GraphPartition} such that they are accessible * through {@link yfiles.router.GraphPartitionExtensionAdapter#configuration} and {@link yfiles.router.GraphPartitionExtensionAdapter#graphPartition}, respectively. - * @param {yfiles.router.PathSearchConfiguration} configuration the configuration used for the path search - * @param {yfiles.router.GraphPartition} graphPartition the graph partition that uses this extension + * @param configuration the configuration used for the path search + * @param graphPartition the graph partition that uses this extension */ preparePartition(configuration:yfiles.router.PathSearchConfiguration,graphPartition:yfiles.router.GraphPartition):void; /** @@ -109874,7 +104183,7 @@ declare namespace system{ *

    * The grid is defined by its origin and the spacing between the equidistant grid lines. *

    - * @class yfiles.router.Grid + * @class * @final */ export interface Grid extends Object{} @@ -109884,10 +104193,9 @@ declare namespace system{ *

    * The spacing between the grid lines must be at least 1. If the given spacing is smaller, value 1 is assumed. *

    - * @param {number} originX the x-coordinate of the origin of the grid - * @param {number} originY the y-coordinate of the origin of the grid - * @param {number} spacing the spacing between the grid lines - * @constructor + * @param originX the x-coordinate of the origin of the grid + * @param originY the y-coordinate of the origin of the grid + * @param spacing the spacing between the grid lines */ constructor(originX:number,originY:number,spacing:number); /** @@ -109919,7 +104227,7 @@ declare namespace system{ /** * Adds the given {@link yfiles.router.IDecompositionListener} that will be notified of dynamic decomposition events to the * {@link yfiles.router.IPartition}. - * @param {yfiles.router.IDecompositionListener} listener the listener to be added + * @param listener the listener to be added * @abstract */ addDynamicDecompositionListener(listener:yfiles.router.IDecompositionListener):void; @@ -109928,7 +104236,7 @@ declare namespace system{ *

    * The {@link yfiles.router.IDecompositionListener} will be no more notified of dynamic decomposition events. *

    - * @param {yfiles.router.IDecompositionListener} listener the listener to be removed + * @param listener the listener to be removed * @abstract */ removeDynamicDecompositionListener(listener:yfiles.router.IDecompositionListener):void; @@ -109947,13 +104255,13 @@ declare namespace system{ export interface IDecompositionListener extends Object{ /** * Callback after the new given {@link yfiles.router.PartitionCell} has been created. - * @param {yfiles.router.PartitionCell} createdCell the newly created {@link yfiles.router.PartitionCell} + * @param createdCell the newly created {@link } * @abstract */ onCellCreated(createdCell:yfiles.router.PartitionCell):void; /** * Callback after the given {@link yfiles.router.PartitionCell} has been finalized and won't be further subdivided. - * @param {yfiles.router.PartitionCell} finalizedCell the cell that has been finalized + * @param finalizedCell the cell that has been finalized * @abstract */ onCellFinalized(finalizedCell:yfiles.router.PartitionCell):void; @@ -109962,8 +104270,8 @@ declare namespace system{ *

    * {@link yfiles.router.IDecompositionListener} may not modify the list of sub-cells. *

    - * @param {yfiles.router.PartitionCell} cell the cell that has been subdivided - * @param {yfiles.collections.IList.} subCells the sub-cells resulting from the subdivision of the given {@link yfiles.router.PartitionCell} + * @param cell the cell that has been subdivided + * @param subCells the sub-cells resulting from the subdivision of the given {@link } * @abstract */ onCellSubdivided(cell:yfiles.router.PartitionCell,subCells:yfiles.collections.IList):void; @@ -109988,11 +104296,11 @@ declare namespace system{ /** * Appends additional enter intervals to the given list of enter intervals for moving from the {@link yfiles.router.PartitionCell partition cell} of the * current {@link yfiles.router.CellEntrance} to the neighboring cell. - * @param {yfiles.router.CellEntrance} currentEntrance the current {@link yfiles.router.CellEntrance} that is exited - * @param {yfiles.router.PartitionCell} enteredCell the neighboring cell that will be entered - * @param {yfiles.router.OrthogonalInterval} commonInterval the common interval of the left and entered partition cells - * @param {yfiles.collections.IList.} allEnterIntervals the list to which additional enter intervals have to be appended - * @param {yfiles.router.PathSearchContext} context the context of the path search + * @param currentEntrance the current {@link } that is exited + * @param enteredCell the neighboring cell that will be entered + * @param commonInterval the common interval of the left and entered partition cells + * @param allEnterIntervals the list to which additional enter intervals have to be appended + * @param context the context of the path search * @abstract */ appendEnterIntervals(currentEntrance:yfiles.router.CellEntrance,enteredCell:yfiles.router.PartitionCell,commonInterval:yfiles.router.OrthogonalInterval,allEnterIntervals:yfiles.collections.IList,context:yfiles.router.PathSearchContext):void; @@ -110028,8 +104336,8 @@ declare namespace system{ * is initialized. Implementations may use the graph upon which the given {@link yfiles.router.GraphPartition} is based to * initialize themselves and/or to {@link yfiles.router.GraphPartition#createObstacle add obstacles} to the list with which {@link yfiles.router.IObstaclePartition} is initialized. *

    - * @param {yfiles.router.PathSearchConfiguration} configuration the configuration used for the path search - * @param {yfiles.router.GraphPartition} graphPartition the graph partition that uses this extension + * @param configuration the configuration used for the path search + * @param graphPartition the graph partition that uses this extension * @abstract */ preparePartition(configuration:yfiles.router.PathSearchConfiguration,graphPartition:yfiles.router.GraphPartition):void; @@ -110069,15 +104377,15 @@ declare namespace system{ clear():void; /** * Returns all {@link yfiles.router.PartitionCell}s that are completely covered by the given {@link yfiles.router.Obstacle}. - * @param {yfiles.router.Obstacle} obstacle the obstacle for which the covered cells will be returned - * @returns {yfiles.collections.IList.} an unmodifiable list of {@link yfiles.router.PartitionCell} instances that are completely covered by the given obstacle + * @param obstacle the obstacle for which the covered cells will be returned + * @returns an unmodifiable list of {@link } instances that are completely covered by the given obstacle * @abstract */ getCellsForObstacle(obstacle:yfiles.router.Obstacle):yfiles.collections.IList; /** * Returns all {@link yfiles.router.Obstacle}s that cover the given {@link yfiles.router.PartitionCell}. - * @param {yfiles.router.PartitionCell} cell the partition cell for which the obstacles will be returned - * @returns {yfiles.collections.IList.} an unmodifiable list of {@link yfiles.router.Obstacle} instances that cover the given cell + * @param cell the partition cell for which the obstacles will be returned + * @returns an unmodifiable list of {@link } instances that cover the given cell * @abstract */ getObstacles(cell:yfiles.router.PartitionCell):yfiles.collections.IList; @@ -110087,8 +104395,8 @@ declare namespace system{ *

    * Unused partitions must be cleared using method {@link yfiles.router.IObstaclePartition#clear}. *

    - * @param {yfiles.collections.IList.} obstacles a list of {@link yfiles.router.Obstacle}s that have to be considered by the partition - * @param {yfiles.algorithms.YRectangle} bounds the bounds of the partition + * @param obstacles a list of {@link }s that have to be considered by the partition + * @param bounds the bounds of the partition * @see yfiles.router.IObstaclePartition#clear * @abstract */ @@ -110109,8 +104417,8 @@ declare namespace system{ export interface IPartition extends Object{ /** * Returns a list of all {@link yfiles.router.PartitionCell}s that intersect or cover the given rectangle. - * @param {yfiles.algorithms.YRectangle} rect the rectangular area whose (partially) covered cells will be returned - * @returns {yfiles.collections.IList.} a list of {@link yfiles.router.PartitionCell}s that (partially) cover the given rectangular area + * @param rect the rectangular area whose (partially) covered cells will be returned + * @returns a list of {@link }s that (partially) cover the given rectangular area * @abstract */ getCells(rect:yfiles.algorithms.YRectangle):yfiles.collections.IList; @@ -110118,8 +104426,8 @@ declare namespace system{ * Returns a list of all * {@link yfiles.router.PartitionCell}s that are neighbors of the given cell, i.e., those cells that have a common border segment * with the given cell. - * @param {yfiles.router.PartitionCell} cell the cell whose neighbors will be returned - * @returns {yfiles.collections.IList.} a list of {@link yfiles.router.PartitionCell}s that are neighbors of the given cell + * @param cell the cell whose neighbors will be returned + * @returns a list of {@link }s that are neighbors of the given cell * @abstract */ getNeighbors(cell:yfiles.router.PartitionCell):yfiles.collections.IList; @@ -110136,7 +104444,7 @@ declare namespace system{ }; /** * This class represents a one-dimensional closed interval. - * @class yfiles.router.Interval + * @class */ export interface Interval extends Object{} export class Interval { @@ -110146,9 +104454,8 @@ declare namespace system{ * The upper and lower bound of the two given values are determined automatically, i.e., the smaller one will be treated as * the lower bound and the larger one as the upper bound. *

    - * @param {number} bound1 the first interval bound - * @param {number} bound2 the second interval bound - * @constructor + * @param bound1 the first interval bound + * @param bound2 the second interval bound */ constructor(bound1:number,bound2:number); /** @@ -110157,9 +104464,9 @@ declare namespace system{ * The bridging interval is null if the given intervals intersect each other. Otherwise, the bridging interval is * [minimum of upper bounds, maximum of lower bounds]. *

    - * @param {yfiles.router.Interval} i1 the first interval - * @param {yfiles.router.Interval} i2 the second interval - * @returns {yfiles.router.Interval} the bridging interval between the given intervals or null if the intervals intersect + * @param i1 the first interval + * @param i2 the second interval + * @returns the bridging interval between the given intervals or null if the intervals intersect * @static */ static calculateBridge(i1:yfiles.router.Interval,i2:yfiles.router.Interval):yfiles.router.Interval; @@ -110169,9 +104476,9 @@ declare namespace system{ * The intersection is null if the given intervals do not intersect each other. Otherwise, the intersection is * [maximum of lower bounds, minimum of upper bounds]. *

    - * @param {yfiles.router.Interval} i1 the first interval - * @param {yfiles.router.Interval} i2 the second interval - * @returns {yfiles.router.Interval} the intersection of the given intervals or null if the intervals do not intersect + * @param i1 the first interval + * @param i2 the second interval + * @returns the intersection of the given intervals or null if the intervals do not intersect * @static */ static calculateIntersection(i1:yfiles.router.Interval,i2:yfiles.router.Interval):yfiles.router.Interval; @@ -110180,9 +104487,9 @@ declare namespace system{ *

    * The first interval spans the rectangle in horizontal dimension, the second interval in vertical dimension. *

    - * @param {yfiles.router.Interval} horizontal the interval that defines the location and length of the rectangle in horizontal dimension - * @param {yfiles.router.Interval} vertical the interval that defines the location and length of the rectangle in vertical dimension - * @returns {yfiles.algorithms.YRectangle} the spanning rectangle between the given intervals + * @param horizontal the interval that defines the location and length of the rectangle in horizontal dimension + * @param vertical the interval that defines the location and length of the rectangle in vertical dimension + * @returns the spanning rectangle between the given intervals * @static */ static calculateSpanningRectangle(horizontal:yfiles.router.Interval,vertical:yfiles.router.Interval):yfiles.algorithms.YRectangle; @@ -110192,9 +104499,9 @@ declare namespace system{ * The union is between the minimum of the lower bound of the given interval and the given value and the maximum of the * upper bound of the given interval and the given value. *

    - * @param {yfiles.router.Interval} interval the interval to be extended - * @param {number} value the value to be in the union - * @returns {yfiles.router.Interval} the union of the given interval and the given value + * @param interval the interval to be extended + * @param value the value to be in the union + * @returns the union of the given interval and the given value * @static */ static calculateUnion(interval:yfiles.router.Interval,value:number):yfiles.router.Interval; @@ -110203,16 +104510,16 @@ declare namespace system{ *

    * The union is [minimum of lower bounds, maximum of upper bounds]. *

    - * @param {yfiles.router.Interval} i1 the first interval - * @param {yfiles.router.Interval} i2 the second interval - * @returns {yfiles.router.Interval} the union of the given intervals + * @param i1 the first interval + * @param i2 the second interval + * @returns the union of the given intervals * @static */ static calculateUnion(i1:yfiles.router.Interval,i2:yfiles.router.Interval):yfiles.router.Interval; /** * Checks whether or not the given value lies within the interval. - * @param {number} value the value to check - * @returns {boolean} true if the value lies within the interval, false otherwise + * @param value the value to check + * @returns true if the value lies within the interval, false otherwise */ contains(value:number):boolean; /** @@ -110221,19 +104528,19 @@ declare namespace system{ * The given interval covers this interval, if other lower bound - epsilon <= this lower bound and * this upper bound <= other upper bound + epsilon. *

    - * @param {yfiles.router.Interval} other the other interval - * @param {number} [eps=1E-06] the epsilon value that determines the extended range of the other interval - * @returns {boolean} true if this interval is fully covered by the other interval, false otherwise + * @param other the other interval + * @param [eps=1E-06] the epsilon value that determines the extended range of the other interval + * @returns true if this interval is fully covered by the other interval, false otherwise */ coveredBy(other:yfiles.router.Interval,eps?:number):boolean; /** * Returns the distance between this {@link yfiles.router.Interval interval} and the given {@link yfiles.router.Interval interval}. *

    - * If the intervals intersect, the distance is 0. Otherwise, it is equal to + * If the intervals {@link yfiles.router.Interval#intersects intersect}, the distance is 0. Otherwise, it is equal to * dist(minimum of upper bounds, maximum of lower bounds). *

    - * @param {yfiles.router.Interval} other the other interval to which the distance is calculated - * @returns {number} the distance between this interval and the given interval + * @param other the other interval to which the distance is calculated + * @returns the distance between this interval and the given interval */ distanceTo(other:yfiles.router.Interval):number; /** @@ -110242,14 +104549,14 @@ declare namespace system{ * If this interval contains the specified value, the distance is 0. Otherwise, it is the minimum of dist(value, lower bound) * and dist(value, upper bound). *

    - * @param {number} value the value to which the distance is calculated - * @returns {number} the distance between the value and the interval + * @param value the value to which the distance is calculated + * @returns the distance between the value and the interval */ distanceTo(value:number):number; /** * Returns the {@link yfiles.router.Interval interval} bound that is closest to the given value. - * @param {number} value the value for which the closest interval bound will be returned - * @returns {number} + * @param value the value for which the closest interval bound will be returned + * @returns *
      *
    • the value, if the given value lies within the interval, or
    • *
    • the lower bound, if the given value is smaller than or equal to the lower bound, or
    • @@ -110263,29 +104570,29 @@ declare namespace system{ * The intervals are considered to cover the same range, if their minimum values as well as their maximum values differ * only in the given epsilon value. *

      - * @param {yfiles.router.Interval} other the other interval - * @param {number} [eps=1E-06] the maximum distance between the two minimum and the two maximum values - * @returns {boolean} true if the intervals cover the same range, false otherwise + * @param other the other interval + * @param [eps=1E-06] the maximum distance between the two minimum and the two maximum values + * @returns true if the intervals cover the same range, false otherwise */ hasSameRange(other:yfiles.router.Interval,eps?:number):boolean; /** * Checks whether or not this {@link yfiles.router.Interval interval} intersects with the given * {@link yfiles.router.Interval interval}, considering the given minimum intersection length. - * @param {yfiles.router.Interval} other the other interval to check - * @param {number} [minIntersection=0] the minimum length of the intersection of the intervals - * @returns {boolean} true if the intervals intersect at least by the given minimum length, false otherwise + * @param other the other interval to check + * @param [minIntersection=0] the minimum length of the intersection of the intervals + * @returns true if the intervals intersect at least by the given minimum length, false otherwise */ intersects(other:yfiles.router.Interval,minIntersection?:number):boolean; /** * Checks whether or not the lower bound of this {@link yfiles.router.Interval interval} is greater than the upper bound of the given interval. - * @param {yfiles.router.Interval} other the interval to compare - * @returns {boolean} true if the current interval is on the right of the given one, false otherwise + * @param other the interval to compare + * @returns true if the current interval is on the right of the given one, false otherwise */ isGreaterThan(other:yfiles.router.Interval):boolean; /** * Checks whether or not the upper bound of this {@link yfiles.router.Interval interval} is smaller than the lower bound of the given interval. - * @param {yfiles.router.Interval} other the interval to compare - * @returns {boolean} true if the current interval is on the left of the given one, false otherwise + * @param other the interval to compare + * @returns true if the current interval is on the left of the given one, false otherwise */ isLessThan(other:yfiles.router.Interval):boolean; /** @@ -110313,15 +104620,14 @@ declare namespace system{ /** * This class describes the obstacles that are used by implementations of {@link yfiles.router.IObstaclePartition} to subdivide an * area into {@link yfiles.router.PartitionCell}s. - * @class yfiles.router.Obstacle + * @class */ export interface Obstacle extends Object{} export class Obstacle { /** * Creates a new {@link yfiles.router.Obstacle} instance with the given bounds and additional data. - * @param {yfiles.algorithms.YRectangle} bounds the bounds of the obstacle - * @param {Object} data the additional data associated to the obstacle - * @constructor + * @param bounds the bounds of the obstacle + * @param data the additional data associated to the obstacle */ constructor(bounds:yfiles.algorithms.YRectangle,data:Object); /** @@ -110344,27 +104650,25 @@ declare namespace system{ * exits a {@link yfiles.router.PartitionCell partition cell}. *

      * @see yfiles.router.PathSearch - * @class yfiles.router.OrthogonalInterval + * @class */ export interface OrthogonalInterval extends Object{} export class OrthogonalInterval { /** * Creates a new {@link yfiles.router.OrthogonalInterval} instance using the from and to value as interval bounds. - * @param {number} from the start of the interval bounds - * @param {number} to the end of the interval bounds - * @param {number} location the location in the two-dimensional coordinate system - * @param {boolean} isVertical true if the orthogonal interval is vertical, false if it is horizontal + * @param from the start of the interval bounds + * @param to the end of the interval bounds + * @param location the location in the two-dimensional coordinate system + * @param isVertical true if the orthogonal interval is vertical, false if it is horizontal * @throws {Stubs.Exceptions.ArgumentError} if the given range is null - * @constructor */ constructor(from:number,to:number,location:number,isVertical:boolean); /** * Creates a new {@link yfiles.router.OrthogonalInterval} instance with the given interval bounds. - * @param {yfiles.router.Interval} range the given range - * @param {number} location the location in the two-dimensional coordinate system - * @param {boolean} isVertical true if the orthogonal interval is vertical, false if it is horizontal + * @param range the given range + * @param location the location in the two-dimensional coordinate system + * @param isVertical true if the orthogonal interval is vertical, false if it is horizontal * @throws {Stubs.Exceptions.ArgumentError} if the given range is null - * @constructor */ constructor(range:yfiles.router.Interval,location:number,isVertical:boolean); /** @@ -110374,9 +104678,9 @@ declare namespace system{ * range of both intervals. If it is horizontal, it will have the same vertical location as i2 and the shared horizontal * range of both intervals. The orthogonal intervals must have same orientation. *

      - * @param {yfiles.router.OrthogonalInterval} i1 the first orthogonal interval - * @param {yfiles.router.OrthogonalInterval} i2 the second orthogonal interval - * @returns {yfiles.router.OrthogonalInterval} the shared orthogonal interval of both given orthogonal intervals + * @param i1 the first orthogonal interval + * @param i2 the second orthogonal interval + * @returns the shared orthogonal interval of both given orthogonal intervals * @throws {Stubs.Exceptions.ArgumentError} if the orthogonal intervals have different orientations * @see yfiles.router.OrthogonalInterval#intersects * @static @@ -110389,9 +104693,9 @@ declare namespace system{ * range of both orthogonal intervals. If it is horizontal, it will have the same vertical location as i2 and the shared * vertical range of both orthogonal intervals. The orthogonal intervals must have same orientation. *

      - * @param {yfiles.router.OrthogonalInterval} i1 the first orthogonal interval - * @param {yfiles.router.OrthogonalInterval} i2 the second orthogonal interval - * @returns {yfiles.router.OrthogonalInterval} the union of both given orthogonal intervals + * @param i1 the first orthogonal interval + * @param i2 the second orthogonal interval + * @returns the union of both given orthogonal intervals * @throws {Stubs.Exceptions.ArgumentError} if the orthogonal intervals have different orientations * @see yfiles.router.OrthogonalInterval#intersects * @static @@ -110404,8 +104708,8 @@ declare namespace system{ * interval's range. The location of both orthogonal intervals is ignored. The orthogonal intervals must have the same * orientation. *

      - * @param {yfiles.router.OrthogonalInterval} other the other orthogonal interval - * @returns {boolean} true if this orthogonal interval is fully covered by the other orthogonal interval, false otherwise + * @param other the other orthogonal interval + * @returns true if this orthogonal interval is fully covered by the other orthogonal interval, false otherwise * @throws {Stubs.Exceptions.ArgumentError} if the orthogonal intervals have different orientations * @see yfiles.router.PartitionCell */ @@ -110415,8 +104719,8 @@ declare namespace system{ *

      * The orthogonal intervals must have different orientations. *

      - * @param {yfiles.router.OrthogonalInterval} other the other orthogonal interval - * @returns {boolean} true if this orthogonal interval crosses the given one, false otherwise + * @param other the other orthogonal interval + * @returns true if this orthogonal interval crosses the given one, false otherwise * @throws {Stubs.Exceptions.ArgumentError} if the given orthogonal intervals have the same orientation */ crosses(other:yfiles.router.OrthogonalInterval):boolean; @@ -110425,8 +104729,8 @@ declare namespace system{ *

      * The orthogonal intervals must have the same orientation. *

      - * @param {yfiles.router.OrthogonalInterval} other the other orthogonal interval - * @returns {number} 0 if the orthogonal intervals intersect each other, otherwise the minimal distance between the orthogonal intervals is + * @param other the other orthogonal interval + * @returns 0 if the orthogonal intervals {@link #intersects intersect} each other, otherwise the minimal distance between the orthogonal intervals is * returned * @throws {Stubs.Exceptions.ArgumentError} if the orthogonal intervals have different orientations */ @@ -110437,8 +104741,8 @@ declare namespace system{ * If both orthogonal intervals cover the same range, they are considered the same. The location of both orthogonal * intervals is ignored. The orthogonal intervals must have the same orientation. *

      - * @param {yfiles.router.OrthogonalInterval} other the other orthogonal interval - * @returns {boolean} true if the orthogonal intervals cover the same range, false otherwise + * @param other the other orthogonal interval + * @returns true if the orthogonal intervals cover the same range, false otherwise * @throws {Stubs.Exceptions.ArgumentError} if the orthogonal intervals have different orientations * @see yfiles.router.PartitionCell */ @@ -110451,9 +104755,9 @@ declare namespace system{ * intersection size. The location of both orthogonal intervals is ignored. The orthogonal intervals must have the same * orientation. *

      - * @param {yfiles.router.OrthogonalInterval} other the other orthogonal interval - * @param {number} [minIntersection=0] the minimum size of the intersection - * @returns {boolean} true if this interval intersects the given other orthogonal interval, false otherwise + * @param other the other orthogonal interval + * @param [minIntersection=0] the minimum size of the intersection + * @returns true if this interval intersects the given other orthogonal interval, false otherwise * @throws {Stubs.Exceptions.ArgumentError} if the orthogonal intervals have different orientations * @see yfiles.router.PartitionCell */ @@ -110468,8 +104772,8 @@ declare namespace system{ * If the intervals have different orientations, the Manhattan distance is the sum of the distances between one interval's * range and the other interval's location. *

      - * @param {yfiles.router.OrthogonalInterval} other the other orthogonal interval - * @returns {number} the Manhattan distance between this interval and the given one + * @param other the other orthogonal interval + * @returns the Manhattan distance between this interval and the given one */ manhattanDistanceTo(other:yfiles.router.OrthogonalInterval):number; /** @@ -110514,15 +104818,15 @@ declare namespace system{ /** * This class is a type-safe enumeration used for defining the border of a {@link yfiles.router.PartitionCell}. * @see yfiles.router.PartitionCell#createBorderInterval - * @class yfiles.router.PartitionCellBorder + * @class */ export interface PartitionCellBorder extends Object{} export class PartitionCellBorder { /** * Returns the type of the border that is passed through when entering a {@link yfiles.router.PartitionCell} in the given * direction. - * @param {yfiles.layout.Direction} direction the direction in which a {@link yfiles.router.PartitionCell} has been entered - * @returns {yfiles.router.PartitionCellBorder} the type of the border that is passed through when entering a {@link yfiles.router.PartitionCell} + * @param direction the direction in which a {@link } has been entered + * @returns the type of the border that is passed through when entering a {@link } * @see yfiles.router.PartitionCell * @static */ @@ -110530,8 +104834,8 @@ declare namespace system{ /** * Returns the type of the border that is passed through when exiting a {@link yfiles.router.PartitionCell} in the given * direction. - * @param {yfiles.layout.Direction} direction the direction in which a {@link yfiles.router.PartitionCell} has been exited - * @returns {yfiles.router.PartitionCellBorder} the type of the border that is passed through when exiting a {@link yfiles.router.PartitionCell} + * @param direction the direction in which a {@link } has been exited + * @returns the type of the border that is passed through when exiting a {@link } * @see yfiles.router.PartitionCell * @static */ @@ -110541,8 +104845,8 @@ declare namespace system{ *

      * The border type corresponds to the {@link yfiles.layout.PortCandidate#direction direction} of the given {@link yfiles.layout.PortCandidate}. *

      - * @param {yfiles.layout.PortCandidate} pc the port candidate for which the border type is returned - * @returns {yfiles.router.PartitionCellBorder} the type of the border that is defined by the given port candidate + * @param pc the port candidate for which the border type is returned + * @returns the type of the border that is defined by the given port candidate * @see yfiles.layout.PortCandidate * @static */ @@ -110552,8 +104856,8 @@ declare namespace system{ *

      * The border type corresponds to the {@link yfiles.layout.PortConstraint#side side} of the given {@link yfiles.layout.PortConstraint}. *

      - * @param {yfiles.layout.PortConstraint} pc the port constraint for which the border type is returned - * @returns {yfiles.router.PartitionCellBorder} the type of the border that is defined by the given port constraint + * @param pc the port constraint for which the border type is returned + * @returns the type of the border that is defined by the given port constraint * @see yfiles.layout.PortConstraint * @static */ @@ -110607,28 +104911,26 @@ declare namespace system{ * {@link yfiles.router.PartitionCell#removeData}, respectively. *

      * @see yfiles.router.PartitionCellKeys - * @class yfiles.router.PartitionCell + * @class */ export interface PartitionCell extends Object{} export class PartitionCell { /** * Creates a new {@link yfiles.router.PartitionCell} instance of the given {@link yfiles.router.IPartition} with the given bounds. - * @param {number} x the x-coordinate of the upper-left corner of the partition cell - * @param {number} y the y-coordinate of the upper-left corner of the partition cell - * @param {number} width the width of the partition cell - * @param {number} height the height of the partition cell - * @param {yfiles.router.IPartition} partition the partition to which the partition cell belongs + * @param x the x-coordinate of the upper-left corner of the partition cell + * @param y the y-coordinate of the upper-left corner of the partition cell + * @param width the width of the partition cell + * @param height the height of the partition cell + * @param partition the partition to which the partition cell belongs * @see yfiles.router.IPartition - * @constructor */ constructor(x:number,y:number,width:number,height:number,partition:yfiles.router.IPartition); /** * Creates a new {@link yfiles.router.PartitionCell} of the given {@link yfiles.router.IPartition} with the location and the size of the * given rectangle. - * @param {yfiles.algorithms.YRectangle} bounds the bounds describing the size and location of the partition cell - * @param {yfiles.router.IPartition} partition the partition to which the partition cell belongs + * @param bounds the bounds describing the size and location of the partition cell + * @param partition the partition to which the partition cell belongs * @see yfiles.router.IPartition - * @constructor */ constructor(bounds:yfiles.algorithms.YRectangle,partition:yfiles.router.IPartition); /** @@ -110650,15 +104952,15 @@ declare namespace system{ *
    • {@link yfiles.router.PartitionCellBorder#NORTH}
    • *
    • {@link yfiles.router.PartitionCellBorder#SOUTH}
    • *
    - * @param {yfiles.router.PartitionCellBorder} border a border of this partition cell - * @returns {yfiles.router.OrthogonalInterval} an {@link yfiles.router.OrthogonalInterval} that defines the location, the size and the orientation of the given border + * @param border a border of this partition cell + * @returns an {@link } that defines the location, the size and the orientation of the given border * @see yfiles.router.PartitionCellBorder */ createBorderInterval(border:yfiles.router.PartitionCellBorder):yfiles.router.OrthogonalInterval; /** * Returns the additional data associated with the given key for this {@link yfiles.router.PartitionCell}. - * @param {Object} key the key whose associated data will be returned - * @returns {Object} the additional data associated with the given key or null if there is no data associated with the given key + * @param key the key whose associated data will be returned + * @returns the additional data associated with the given key or null if there is no data associated with the given key * @see yfiles.router.PartitionCell#putData * @see yfiles.router.PartitionCell#removeData * @see yfiles.router.PartitionCell#clearData @@ -110667,9 +104969,9 @@ declare namespace system{ getData(key:Object):Object; /** * Stores the additional data associated with the given key for this {@link yfiles.router.PartitionCell}. - * @param {Object} key the key with which the additional data will be associated - * @param {Object} data the additional data - * @returns {Object} the previous data associated with the given key or null if there was no data associated with the given key + * @param key the key with which the additional data will be associated + * @param data the additional data + * @returns the previous data associated with the given key or null if there was no data associated with the given key * @see yfiles.router.PartitionCell#getData * @see yfiles.router.PartitionCell#removeData * @see yfiles.router.PartitionCell#clearData @@ -110678,8 +104980,8 @@ declare namespace system{ putData(key:Object,data:Object):Object; /** * Removes the additional data associated with the given key for this {@link yfiles.router.PartitionCell}. - * @param {Object} key the key for which the associated data will be removed - * @returns {Object} the additional data associated with the given key or null if there is no data associated with the given key + * @param key the key for which the associated data will be removed + * @returns the additional data associated with the given key or null if there is no data associated with the given key * @see yfiles.router.PartitionCell#getData * @see yfiles.router.PartitionCell#putData * @see yfiles.router.PartitionCell#clearData @@ -110740,7 +105042,7 @@ declare namespace system{ * In order to get the data of the {@link yfiles.router.PartitionCell} that is associated with the given key, method {@link yfiles.router.PartitionCell#getData} * should be used. *

    - * @class yfiles.router.PartitionCellKeys + * @class * @static */ export interface PartitionCellKeys extends Object{} @@ -110825,42 +105127,41 @@ declare namespace system{ *

    * @see yfiles.router.PathSearch * @see yfiles.router.PathSearchResult - * @class yfiles.router.Path + * @class */ export interface Path extends Object{} export class Path { /** * Creates a new instance of {@link yfiles.router.Path} for the given edge, {@link yfiles.router.CellEntrance cell entrances} and cost. - * @param {yfiles.algorithms.Edge} edge the edge for which the path was calculated - * @param {yfiles.collections.IList.} entrances the list of {@link yfiles.router.CellEntrance} objects describing the edge path from source node to target node - * @param {number} cost the overall cost of this path - * @constructor + * @param edge the edge for which the path was calculated + * @param entrances the list of {@link } objects describing the edge path from source node to target node + * @param cost the overall cost of this path */ constructor(edge:yfiles.algorithms.Edge,entrances:yfiles.collections.IList,cost:number); /** * Returns the {@link yfiles.router.CellEntrance} at the given position of this path. - * @param {number} position the position of the {@link yfiles.router.CellEntrance} to return - * @returns {yfiles.router.CellEntrance} the {@link yfiles.router.CellEntrance} at the given position of this path + * @param position the position of the {@link } to return + * @returns the {@link } at the given position of this path * @see yfiles.router.Path#setEntrance */ getEntrance(position:number):yfiles.router.CellEntrance; /** * Returns the number of {@link yfiles.router.CellEntrance} objects in this path. - * @returns {number} the number of {@link yfiles.router.CellEntrance} objects in this path + * @returns the number of {@link } objects in this path */ length():number; /** * Returns the position of the first occurrence of the given {@link yfiles.router.CellEntrance} in this path, or -1 if this path * does not contain this {@link yfiles.router.CellEntrance}. - * @param {yfiles.router.CellEntrance} entrance the {@link yfiles.router.CellEntrance} for which the position is retrieved - * @returns {number} the position of the first occurrence of the given {@link yfiles.router.CellEntrance} in this path, or -1 if this path does not - * contain this {@link yfiles.router.CellEntrance} + * @param entrance the {@link } for which the position is retrieved + * @returns the position of the first occurrence of the given {@link } in this path, or -1 if this path does not + * contain this {@link } */ positionOf(entrance:yfiles.router.CellEntrance):number; /** * Replaces the {@link yfiles.router.CellEntrance} at the given position of this path with the given {@link yfiles.router.CellEntrance}. - * @param {number} position the position of the {@link yfiles.router.CellEntrance} to replace - * @param {yfiles.router.CellEntrance} entrance the {@link yfiles.router.CellEntrance} to be stored at the given position + * @param position the position of the {@link } to replace + * @param entrance the {@link } to be stored at the given position * @see yfiles.router.Path#getEntrance */ setEntrance(position:number,entrance:yfiles.router.CellEntrance):void; @@ -110904,13 +105205,12 @@ declare namespace system{ *

    * @see yfiles.router.PathSearch#addPathSearchExtension * @see yfiles.router.PathSearch#addAdditionalEnterIntervalCalculator - * @class yfiles.router.PathSearch + * @class */ export interface PathSearch extends Object{} export class PathSearch { /** * Creates a new instance of {@link yfiles.router.PathSearch}. - * @constructor */ constructor(); /** @@ -110920,8 +105220,8 @@ declare namespace system{ * {@link yfiles.router.CellEntrance}s with narrowed intervals to the queue. The interval is more specific and will be judged with * lower costs. *

    - * @param {yfiles.router.IEnterIntervalCalculator} enterIntervalCalculator the calculator to add - * @returns {boolean} true if the calculator was successfully added, false otherwise + * @param enterIntervalCalculator the calculator to add + * @returns true if the calculator was successfully added, false otherwise */ addAdditionalEnterIntervalCalculator(enterIntervalCalculator:yfiles.router.IEnterIntervalCalculator):boolean; /** @@ -110929,8 +105229,8 @@ declare namespace system{ *

    * An extension can influence the pathfinding process by adding costs for entering certain {@link yfiles.router.CellEntrance}s. *

    - * @param {yfiles.router.PathSearchExtension} extension the extension to add to this path search - * @returns {boolean} true if the extension has been added, false otherwise + * @param extension the extension to add to this path search + * @returns true if the extension has been added, false otherwise */ addPathSearchExtension(extension:yfiles.router.PathSearchExtension):boolean; /** @@ -110944,14 +105244,14 @@ declare namespace system{ * The costs for the given enter intervals are retrieved from all registered * {@link yfiles.router.PathSearchExtension}s. The calculation stops when it reaches the given maximum cost value. *

    - * @param {yfiles.router.CellEntrance} currentEntrance the current cell entrance - * @param {yfiles.router.PartitionCell} enteredCell the partition cell to enter - * @param {Array.} enterIntervals the different entering intervals of the entered cell - * @param {Array.} lastEdgeCellInfos the information about how the last cell was crossed - * @param {yfiles.router.PathSearchContext} context the context information - * @param {Array.} costs the array in which the calculated costs for entering the neighbor cell via the according enter intervals shall be + * @param currentEntrance the current cell entrance + * @param enteredCell the partition cell to enter + * @param enterIntervals the different entering intervals of the entered cell + * @param lastEdgeCellInfos the information about how the last cell was crossed + * @param context the context information + * @param costs the array in which the calculated costs for entering the neighbor cell via the according enter intervals shall be * written - * @param {Array.} maxAllowedCosts the maximum costs an enter interval may induce. If this cost is exceeded, no further additional costs for this interval + * @param maxAllowedCosts the maximum costs an enter interval may induce. If this cost is exceeded, no further additional costs for this interval * are calculated. Note that the entries in this array get modified during cost calculation * @see yfiles.router.PathSearchExtension#calculateCosts * @protected @@ -110967,9 +105267,9 @@ declare namespace system{ *

    * The heuristic costs for the given entrance are retrieved from all registered {@link yfiles.router.PathSearchExtension}s. *

    - * @param {yfiles.router.CellEntrance} entrance the current entrance - * @param {yfiles.router.PathSearchContext} context the context information - * @returns {number} the heuristic costs for the rest of the path if the given entrance is used + * @param entrance the current entrance + * @param context the context information + * @returns the heuristic costs for the rest of the path if the given entrance is used * @see yfiles.router.PathSearchExtension#calculateHeuristicCosts * @protected */ @@ -110999,9 +105299,9 @@ declare namespace system{ *

    * The decreaseFactor takes values from [0,1], where 0 means no reduction while 1 means the strongest reduction. *

    - * @param {yfiles.router.PenaltySettings} penaltySettings the penalty settings whose penalties shall be reduced - * @param {number} decreaseFactor the factor with values between 0 and 1 that indicates how strong to reduce the penalties - * @param {yfiles.router.PathSearchContext} context the context information of the current path search + * @param penaltySettings the penalty settings whose penalties shall be reduced + * @param decreaseFactor the factor with values between 0 and 1 that indicates how strong to reduce the penalties + * @param context the context information of the current path search * @protected */ decreasePenaltySettings(penaltySettings:yfiles.router.PenaltySettings,decreaseFactor:number,context:yfiles.router.PathSearchContext):void; @@ -111014,7 +105314,7 @@ declare namespace system{ * This method is called by {@link yfiles.router.PathSearch#findPathsForCurrentEdge} and may be overridden to use a custom * finalization step. *

    - * @param {yfiles.router.Path} path the path to finalize + * @param path the path to finalize * @protected */ finalizePath(path:yfiles.router.Path):void; @@ -111035,7 +105335,7 @@ declare namespace system{ * At last, the extensions are asked to finalize the path search result using their {@link yfiles.router.PathSearchExtension#finalizePathSearchResult} * callback. *

    - * @param {yfiles.router.PathSearchContext} context the context to use during the path search + * @param context the context to use during the path search * @see yfiles.router.PathSearchContext#edges * @see yfiles.router.PathSearchContext#pathSearchResult */ @@ -111055,7 +105355,7 @@ declare namespace system{ * It is called by {@link yfiles.router.PathSearch#findPaths} and may be overridden to skip certain edges or implement a custom * path search. *

    - * @param {yfiles.router.PathSearchContext} context the context information needed for finding a path + * @param context the context information needed for finding a path * @protected */ findPathsForCurrentEdge(context:yfiles.router.PathSearchContext):void; @@ -111064,8 +105364,8 @@ declare namespace system{ *

    * The path is finalized if the {@link yfiles.router.PathSearch} chose it as the best result for the edge. *

    - * @param {yfiles.algorithms.Edge} edge the edge for which the path is returned - * @returns {yfiles.router.Path} the finalized path for the given edge or null if no path has been found and finalized + * @param edge the edge for which the path is returned + * @returns the finalized path for the given edge or null if no path has been found and finalized */ getFinalizedPath(edge:yfiles.algorithms.Edge):yfiles.router.Path; /** @@ -111093,9 +105393,9 @@ declare namespace system{ * This method is called during cost calculation. It may be overridden to change the interval handling for the * {@link yfiles.router.CellEntrance}s. *

    - * @param {yfiles.router.CellEntrance} currentEntrance the current cell entrance - * @param {yfiles.router.PartitionCell} neighborCell the neighboring cell that is handled. - * @param {yfiles.router.PathSearchContext} context the context information + * @param currentEntrance the current cell entrance + * @param neighborCell the neighboring cell that is handled. + * @param context the context information * @see yfiles.router.PathSearch#calculateCosts * @see yfiles.router.PathSearch#calculateHeuristicCosts * @protected @@ -111106,36 +105406,35 @@ declare namespace system{ *

    * This method also calls {@link yfiles.router.PathSearchExtension#initialize} for all registered path search extensions. *

    - * @param {yfiles.router.PathSearchConfiguration} configuration the configuration that the path search shall use + * @param configuration the configuration that the path search shall use */ init(configuration:yfiles.router.PathSearchConfiguration):void; /** * Removes the given interval calculator from the list of registered {@link yfiles.router.IEnterIntervalCalculator}s. - * @param {yfiles.router.IEnterIntervalCalculator} enterIntervalCalculator the calculator to remove - * @returns {boolean} true if an interval calculator was removed as a result of this call, false if the given calculator was not part of the + * @param enterIntervalCalculator the calculator to remove + * @returns true if an interval calculator was removed as a result of this call, false if the given calculator was not part of the * list */ removeAdditionalEnterIntervalCalculator(enterIntervalCalculator:yfiles.router.IEnterIntervalCalculator):boolean; /** * Removes the given extension from the list of {@link yfiles.router.PathSearchExtension}s. - * @param {yfiles.router.PathSearchExtension} extension the extension to remove from the path search - * @returns {boolean} true if an extension was removed as a result of this call, false if the given extension was not contained in the list + * @param extension the extension to remove from the path search + * @returns true if an extension was removed as a result of this call, false if the given extension was not contained in the list */ removePathSearchExtension(extension:yfiles.router.PathSearchExtension):boolean; static $class:yfiles.lang.Class; } /** * This class contains the basic configuration used by path search algorithms. - * @class yfiles.router.PathSearchConfiguration + * @class */ export interface PathSearchConfiguration extends Object{} export class PathSearchConfiguration { /** * Creates a new instance of {@link yfiles.router.PathSearchConfiguration} used for a path search. - * @param {yfiles.layout.LayoutGraph} graph the graph containing the edges whose path will be searched - * @param {yfiles.layout.GroupingSupport} grouping the grouping information of the graph - * @param {yfiles.router.EdgeRouter} edgeRouter the edge routing algorithm using this configuration - * @constructor + * @param graph the graph containing the edges whose path will be searched + * @param grouping the grouping information of the graph + * @param edgeRouter the edge routing algorithm using this configuration */ constructor(graph:yfiles.layout.LayoutGraph,grouping:yfiles.layout.GroupingSupport,edgeRouter:yfiles.router.EdgeRouter); /** @@ -111165,27 +105464,26 @@ declare namespace system{ *

    * Most notably, the context provides access to the edge that is currently being routed (see {@link yfiles.router.PathSearchContext#currentEdge}). *

    - * @class yfiles.router.PathSearchContext + * @class */ export interface PathSearchContext extends Object{} export class PathSearchContext { /** * Creates a new instance of {@link yfiles.router.PathSearchContext}. - * @param {yfiles.router.PathSearch} pathSearch the path search that uses this context - * @param {yfiles.router.PathSearchConfiguration} configuration the configuration used for the path search - * @constructor + * @param pathSearch the path search that uses this context + * @param configuration the configuration used for the path search */ constructor(pathSearch:yfiles.router.PathSearch,configuration:yfiles.router.PathSearchConfiguration); /** * Adds an additional source cell of the {@link yfiles.router.PathSearchContext#currentEdge current edge} if it is not already contained in the list of source cells. - * @param {yfiles.router.PartitionCell} cell the new source cell to add + * @param cell the new source cell to add * @see yfiles.router.PathSearchContext#sourceCellCount * @see yfiles.router.PathSearchContext#getSourceCell */ addSourceCell(cell:yfiles.router.PartitionCell):void; /** * Adds an additional target cell of the {@link yfiles.router.PathSearchContext#currentEdge current edge} if it is not already contained in the list of target cells. - * @param {yfiles.router.PartitionCell} cell the new target cell to add + * @param cell the new target cell to add * @see yfiles.router.PathSearchContext#targetCellCount * @see yfiles.router.PathSearchContext#getTargetCell */ @@ -111193,46 +105491,46 @@ declare namespace system{ /** * Returns the source cell with the given index in the list of all cells that are covered by the source node of the * {@link yfiles.router.PathSearchContext#currentEdge current edge}. - * @param {number} index the index of the source cell - * @returns {yfiles.router.PartitionCell} the source cell with the given index in the list of all source cells + * @param index the index of the source cell + * @returns the source cell with the given index in the list of all source cells */ getSourceCell(index:number):yfiles.router.PartitionCell; /** * Returns the target cell with the given index in the list of all cells that are covered by the target node of the * {@link yfiles.router.PathSearchContext#currentEdge current edge}. - * @param {number} index the index of the target cell - * @returns {yfiles.router.PartitionCell} the target cell with the given index in the list of all cells that are covered by the target node of the {@link yfiles.router.PathSearchContext#currentEdge current edge} + * @param index the index of the target cell + * @returns the target cell with the given index in the list of all cells that are covered by the target node of the {@link #currentEdge current edge} */ getTargetCell(index:number):yfiles.router.PartitionCell; /** * Determines whether or not the given cell is a source cell of the {@link yfiles.router.PathSearchContext#currentEdge current edge}. - * @param {yfiles.router.PartitionCell} cell the cell - * @returns {boolean} true if the given cell is in the list of source cells, false otherwise + * @param cell the cell + * @returns true if the given cell is in the list of source cells, false otherwise * @see yfiles.router.PathSearchContext#sourceCellCount * @see yfiles.router.PathSearchContext#getSourceCell */ isSourceCell(cell:yfiles.router.PartitionCell):boolean; /** * Determines whether or not the given cell is a target cell of the {@link yfiles.router.PathSearchContext#currentEdge current edge}. - * @param {yfiles.router.PartitionCell} cell the cell - * @returns {boolean} true if the given cell is in the list of target cells, false otherwise + * @param cell the cell + * @returns true if the given cell is in the list of target cells, false otherwise * @see yfiles.router.PathSearchContext#targetCellCount * @see yfiles.router.PathSearchContext#getTargetCell */ isTargetCell(cell:yfiles.router.PartitionCell):boolean; /** * Specifies the edges that shall be routed. - * @param {yfiles.algorithms.EdgeList} edges the list of edges that shall be routed + * @param edges the list of edges that shall be routed */ setEdges(edges:yfiles.algorithms.EdgeList):void; /** * Returns the number of all cells that are covered by the source node of the {@link yfiles.router.PathSearchContext#currentEdge current edge}. - * @returns {number} the number of all cells that are covered by the source node + * @returns the number of all cells that are covered by the source node */ sourceCellCount():number; /** * Returns the number of all cells that are covered by the target node of the {@link yfiles.router.PathSearchContext#currentEdge current edge}. - * @returns {number} the number of all cells that are covered by the target node + * @returns the number of all cells that are covered by the target node */ targetCellCount():number; /** @@ -111308,13 +105606,12 @@ declare namespace system{ * * @see yfiles.router.PathSearch#addPathSearchExtension * @see yfiles.router.PathSearchContext#currentEdge - * @class yfiles.router.PathSearchExtension + * @class */ export interface PathSearchExtension extends Object{} export class PathSearchExtension { /** * Creates a new instance of {@link yfiles.router.PathSearchExtension}. - * @constructor */ constructor(); /** @@ -111325,7 +105622,7 @@ declare namespace system{ * implementation doesn't add any {@link yfiles.router.CellEntrance}s. It may be overridden to add {@link yfiles.router.CellEntrance}s with * specific enter intervals, e.g., to consider {@link yfiles.layout.PortConstraint}s. *

    - * @param {yfiles.collections.IList.} allStartEntrances a list of all previously generated entrances + * @param allStartEntrances a list of all previously generated entrances */ appendStartEntrances(allStartEntrances:yfiles.collections.IList):void; /** @@ -111344,13 +105641,13 @@ declare namespace system{ * This implementation doesn't add any costs. It may be overridden to add costs, e.g., if entering through the given * interval would create a bend. *

    - * @param {yfiles.router.CellEntrance} currentEntrance the entrance that was used for entering the current cell - * @param {yfiles.router.PartitionCell} enteredCell the neighboring cell that shall be entered - * @param {yfiles.router.OrthogonalInterval} enterInterval the interval that shall be used for entering the neighboring cell - * @param {yfiles.router.EdgeCellInfo} edgeCellInfo the information about how the current cell would be traversed if the neighboring cell would be entered by this enter + * @param currentEntrance the entrance that was used for entering the current cell + * @param enteredCell the neighboring cell that shall be entered + * @param enterInterval the interval that shall be used for entering the neighboring cell + * @param edgeCellInfo the information about how the current cell would be traversed if the neighboring cell would be entered by this enter * interval - * @param {number} maxAllowedCosts the maximum allowed costs for this enter interval - * @returns {number} the costs for entering the neighboring cell via the enter interval + * @param maxAllowedCosts the maximum allowed costs for this enter interval + * @returns the costs for entering the neighboring cell via the enter interval * @protected */ calculateCosts(currentEntrance:yfiles.router.CellEntrance,enteredCell:yfiles.router.PartitionCell,enterInterval:yfiles.router.OrthogonalInterval,edgeCellInfo:yfiles.router.EdgeCellInfo,maxAllowedCosts:number):number; @@ -111365,8 +105662,8 @@ declare namespace system{ * This implementation doesn't add any costs. It may be overridden to add some heuristic costs, e.g., if the edge would * have to bend to reach the target node from the given {@link yfiles.router.CellEntrance}. *

    - * @param {yfiles.router.CellEntrance} entrance the entrance to calculate the heuristic costs for the rest of the path - * @returns {number} the minimal costs that will arise to finish the path if the given cell entrance is used as next step + * @param entrance the entrance to calculate the heuristic costs for the rest of the path + * @returns the minimal costs that will arise to finish the path if the given cell entrance is used as next step */ calculateHeuristicCosts(entrance:yfiles.router.CellEntrance):number; /** @@ -111379,8 +105676,8 @@ declare namespace system{ * start entrances with less specific intervals more expensive. For example, intervals that allow more than just the {@link yfiles.layout.PortConstraint} * location to connect to the source node become more expensive. *

    - * @param {yfiles.router.CellEntrance} startEntrance the start entrance for which the cost is calculated - * @returns {number} the cost for starting the path in the given entrance + * @param startEntrance the start entrance for which the cost is calculated + * @returns the cost for starting the path in the given entrance */ calculateStartEntranceCost(startEntrance:yfiles.router.CellEntrance):number; /** @@ -111393,7 +105690,7 @@ declare namespace system{ * This implementation does nothing. It may be overridden to reset some edge specific information, e.g., removing * previously added listeners. *

    - * @param {yfiles.router.PathSearchContext} context the context containing the current edge for which the path search has been canceled + * @param context the context containing the current edge for which the path search has been canceled * @see yfiles.router.PathSearchExtension#initializeCurrentEdge * @see yfiles.router.PathSearchExtension#finalizeEdges */ @@ -111413,7 +105710,7 @@ declare namespace system{ * This implementation does nothing. It may be overridden to add/reset some edge specific information, e.g., removing * previously added listeners or adding new start entrances. *

    - * @param {yfiles.router.PathSearchContext} context the context containing the current edge for which the path search has been finished + * @param context the context containing the current edge for which the path search has been finished * @see yfiles.router.PathSearchExtension#initializeCurrentEdge * @see yfiles.router.PathSearchExtension#finalizeEdges */ @@ -111423,7 +105720,7 @@ declare namespace system{ *

    * This callback notifies the extension if enough paths have been found for all edges in the context's edge list. *

    - * @param {yfiles.router.PathSearchContext} context the context containing the list of edges for which paths have been found + * @param context the context containing the list of edges for which paths have been found * @see yfiles.router.PathSearchContext#edges */ finalizeEdges(context:yfiles.router.PathSearchContext):void; @@ -111437,7 +105734,7 @@ declare namespace system{ * This implementation does nothing. It may be overridden to collect some information about the given path that may * influence the path search of later edges. *

    - * @param {yfiles.router.Path} path the path found for the current edge in the context + * @param path the path found for the current edge in the context * @see yfiles.router.PathSearchContext#currentEdge */ finalizePath(path:yfiles.router.Path):void; @@ -111453,7 +105750,7 @@ declare namespace system{ * next list of edges to route or ends the path search by calling * {@link yfiles.router.PathSearchExtension#cleanUp}. This implementation does nothing. *

    - * @param {yfiles.router.PathSearchResult} pathSearchResult the path search result for the edge in the current context's edge list + * @param pathSearchResult the path search result for the edge in the current context's edge list * @see yfiles.router.PathSearchExtension#initializeEdges * @see yfiles.router.PathSearchExtension#cleanUp */ @@ -111464,7 +105761,7 @@ declare namespace system{ * This method is the first one to be called by the {@link yfiles.router.PathSearch}. It may be overridden to initialize this * extension with necessary settings like {@link yfiles.layout.GroupingSupport}. *

    - * @param {yfiles.router.PathSearchConfiguration} configuration the configuration to use for the following path searches + * @param configuration the configuration to use for the following path searches */ initialize(configuration:yfiles.router.PathSearchConfiguration):void; /** @@ -111476,7 +105773,7 @@ declare namespace system{ *

    * It may be overridden to initialize/reset the settings for the current edge (e.g. minimum distances). *

    - * @param {yfiles.router.PathSearchContext} context the context containing the current edge + * @param context the context containing the current edge * @see yfiles.router.PathSearchContext#currentEdge */ initializeCurrentEdge(context:yfiles.router.PathSearchContext):void; @@ -111489,7 +105786,7 @@ declare namespace system{ *

    * It may be overridden to initialize/reset the settings for the routed edges (e.g. minimum distances). *

    - * @param {yfiles.router.PathSearchContext} context the context containing the list of edges for which paths shall be found + * @param context the context containing the list of edges for which paths shall be found * @see yfiles.router.PathSearchContext#edges */ initializeEdges(context:yfiles.router.PathSearchContext):void; @@ -111505,8 +105802,8 @@ declare namespace system{ * {@link yfiles.router.CellEntrance}s as valid targets. It may be overridden to only activate the target if the route fulfills a * certain condition. *

    - * @param {yfiles.router.CellEntrance} entrance the entrance to decide if it is a valid target entrance - * @returns {boolean} true if the path may end with this entrance, false otherwise + * @param entrance the entrance to decide if it is a valid target entrance + * @returns true if the path may end with this entrance, false otherwise */ isValidTargetEntrance(entrance:yfiles.router.CellEntrance):boolean; /** @@ -111534,14 +105831,13 @@ declare namespace system{ * These are used by the {@link yfiles.router.ChannelBasedPathRouting} algorithm to calculate the final segment locations for the * segments of an edge path. *

    - * @class yfiles.router.PathSearchResult + * @class */ export interface PathSearchResult extends Object{} export class PathSearchResult { /** * Creates a new instance of {@link yfiles.router.PathSearchResult}. - * @param {yfiles.router.PathSearchConfiguration} configuration the configuration used for the path search - * @constructor + * @param configuration the configuration used for the path search */ constructor(configuration:yfiles.router.PathSearchConfiguration); /** @@ -111550,8 +105846,8 @@ declare namespace system{ * If the given edge shall be routed but no path has been set for it, yet, null is returned. If no {@link yfiles.router.EdgeInfo} * has been created for the path by this context before, a new one is instantiated, otherwise the stored one is returned. *

    - * @param {yfiles.algorithms.Edge} edge the edge for which the {@link yfiles.router.EdgeInfo} will be returned - * @returns {yfiles.router.EdgeInfo} an {@link yfiles.router.EdgeInfo} describing the path of the edge + * @param edge the edge for which the {@link } will be returned + * @returns an {@link } describing the path of the edge * @see yfiles.router.PathSearchResult#setPath */ getEdgeInfo(edge:yfiles.algorithms.Edge):yfiles.router.EdgeInfo; @@ -111561,20 +105857,20 @@ declare namespace system{ * If no {@link yfiles.router.EdgeInfo} has been created for this path by this context before, a new one is instantiated, otherwise * the stored one is returned. *

    - * @param {yfiles.router.Path} path the path for which the {@link yfiles.router.EdgeInfo} will be returned - * @returns {yfiles.router.EdgeInfo} an {@link yfiles.router.EdgeInfo} describing the given path + * @param path the path for which the {@link } will be returned + * @returns an {@link } describing the given path */ getEdgeInfo(path:yfiles.router.Path):yfiles.router.EdgeInfo; /** * Returns the previously registered path found for the edge. - * @param {yfiles.algorithms.Edge} edge the edge for which the path is provided - * @returns {yfiles.router.Path} the previously registered path found for the edge or null if no path has been registered, yet + * @param edge the edge for which the path is provided + * @returns the previously registered path found for the edge or null if no path has been registered, yet */ getPath(edge:yfiles.algorithms.Edge):yfiles.router.Path; /** * Specifies a found path for an edge. - * @param {yfiles.algorithms.Edge} edge the edge for which the path is set - * @param {yfiles.router.Path} path the found path + * @param edge the edge for which the path is set + * @param path the found path */ setPath(edge:yfiles.algorithms.Edge,path:yfiles.router.Path):void; static $class:yfiles.lang.Class; @@ -111593,13 +105889,12 @@ declare namespace system{ * {@link yfiles.router.PenaltySettings#OPTIMIZATION_BALANCED}, {@link yfiles.router.PenaltySettings#OPTIMIZATION_EDGE_BENDS}, {@link yfiles.router.PenaltySettings#OPTIMIZATION_EDGE_LENGTHS} * and {@link yfiles.router.PenaltySettings#OPTIMIZATION_EDGE_CROSSINGS}. *

    - * @class yfiles.router.PenaltySettings + * @class */ export interface PenaltySettings extends Object{} export class PenaltySettings { /** * Creates a new instance of {@link yfiles.router.PenaltySettings}. - * @constructor */ constructor(); /** @@ -111608,7 +105903,7 @@ declare namespace system{ * This implementation uses method {@link yfiles.router.PenaltySettings#newInstance} to obtain a new instance which adopts all * settings. *

    - * @returns {yfiles.router.PenaltySettings} a copy of this instance + * @returns a copy of this instance */ createCopy():yfiles.router.PenaltySettings; /** @@ -111618,7 +105913,7 @@ declare namespace system{ * {@link yfiles.router.PenaltySettings#createCopy}. Subclasses can override this method in order to return a more specialized * version. *

    - * @returns {yfiles.router.PenaltySettings} a specialized {@link yfiles.router.PenaltySettings} + * @returns a specialized {@link } * @protected */ newInstance():yfiles.router.PenaltySettings; @@ -112034,15 +106329,14 @@ declare namespace system{ * segment can be influenced by the {@link yfiles.router.PolylineLayoutStage#maximumNonOrthogonalSegmentRatio maximum non-orthogonal segment ratio} and the {@link yfiles.router.PolylineLayoutStage#preferredPolylineSegmentLength preferred polyline segment length}. The new * octilinear segments maintain a {@link yfiles.router.PolylineLayoutStage#minimumNodeToEdgeDistance minimum distance} between the edges and all nodes in the graph if possible. *

    - * @class yfiles.router.PolylineLayoutStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface PolylineLayoutStage extends yfiles.layout.LayoutStageBase{} export class PolylineLayoutStage { /** * Creates a new instance of {@link yfiles.router.PolylineLayoutStage} using the given {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} [coreLayouter=null] the core layout routine - * @constructor + * @param [coreLayouter=null] the core layout routine */ constructor(coreLayouter?:yfiles.layout.ILayoutAlgorithm); /** @@ -112120,15 +106414,14 @@ declare namespace system{ * The {@link yfiles.router.SegmentGroup} contains the {@link yfiles.router.SegmentGroup#commonLocationRange common location range} for the edge group and provides a {@link yfiles.router.SegmentGroup#commonSegmentInfo common segment info} * representing the grouped segments. *

    - * @class yfiles.router.SegmentGroup + * @class */ export interface SegmentGroup extends Object{} export class SegmentGroup { /** * Creates a new instance of {@link yfiles.router.SegmentGroup} that contains the given segments and a range to place them. - * @param {yfiles.router.Interval} commonLocationRange the location range of the given {@link yfiles.router.SegmentInfo}s - * @param {yfiles.collections.IList.} segmentInfos the list containing the grouped {@link yfiles.router.SegmentInfo}s - * @constructor + * @param commonLocationRange the location range of the given {@link }s + * @param segmentInfos the list containing the grouped {@link }s */ constructor(commonLocationRange:yfiles.router.Interval,segmentInfos:yfiles.collections.IList); /** @@ -112161,40 +106454,38 @@ declare namespace system{ *

    * Most notably, it stores the {@link yfiles.router.SegmentInfoBase#direction direction} of the segment and the {@link yfiles.router.SegmentInfoBase#locationRange interval} that restricts the location of the segment. *

    - * @class yfiles.router.SegmentInfo + * @class * @extends {yfiles.router.SegmentInfoBase} */ export interface SegmentInfo extends yfiles.router.SegmentInfoBase{} export class SegmentInfo { /** * Creates a new instance of {@link yfiles.router.SegmentInfo} with the given information. - * @param {yfiles.algorithms.Edge} edge the edge to which the segment of this info belongs - * @param {number} segmentIndex the index of the segment to which this info belongs - * @param {yfiles.layout.Direction} direction the direction to which the segment of this info points - * @param {yfiles.router.Interval} locationRange the range within which the common location of this segment has to lie - * @param {yfiles.router.Interval} minExtension the minimum interval in extension direction this segment is known to intersect - * @param {yfiles.router.Interval} maxExtension the maximum interval in extension direction this segment will span - * @param {yfiles.collections.IList.} cellSegmentInfos the list of {@link yfiles.router.CellSegmentInfo} objects upon which this segment info is built - * @constructor + * @param edge the edge to which the segment of this info belongs + * @param segmentIndex the index of the segment to which this info belongs + * @param direction the direction to which the segment of this info points + * @param locationRange the range within which the common location of this segment has to lie + * @param minExtension the minimum interval in extension direction this segment is known to intersect + * @param maxExtension the maximum interval in extension direction this segment will span + * @param cellSegmentInfos the list of {@link } objects upon which this segment info is built */ constructor(edge:yfiles.algorithms.Edge,segmentIndex:number,direction:yfiles.layout.Direction,locationRange:yfiles.router.Interval,minExtension:yfiles.router.Interval,maxExtension:yfiles.router.Interval,cellSegmentInfos:yfiles.collections.IList); /** * Creates a new instance of {@link yfiles.router.SegmentInfo} using a {@link yfiles.algorithms.LineSegment} to describe the edge segment. - * @param {yfiles.algorithms.Edge} edge the edge to which the segment of this info belongs - * @param {number} segmentIndex the index of the segment to which this info belongs - * @param {yfiles.algorithms.LineSegment} segment a line segment describing the edge segment - * @constructor + * @param edge the edge to which the segment of this info belongs + * @param segmentIndex the index of the segment to which this info belongs + * @param segment a line segment describing the edge segment */ constructor(edge:yfiles.algorithms.Edge,segmentIndex:number,segment:yfiles.algorithms.LineSegment); /** * Returns the number of {@link yfiles.router.CellSegmentInfo} of this segment info. - * @returns {number} the number of {@link yfiles.router.CellSegmentInfo} of this segment info + * @returns the number of {@link } of this segment info */ cellSegmentInfoCount():number; /** * Returns the {@link yfiles.router.CellSegmentInfo} at the given index of this segment info. - * @param {number} index the index of the {@link yfiles.router.CellSegmentInfo} to return - * @returns {yfiles.router.CellSegmentInfo} the {@link yfiles.router.CellSegmentInfo} at the given index of this segment info + * @param index the index of the {@link } to return + * @returns the {@link } at the given index of this segment info */ getCellSegmentInfo(index:number):yfiles.router.CellSegmentInfo; /** @@ -112219,20 +106510,19 @@ declare namespace system{ * Most notably, {@link yfiles.router.SegmentInfoBase} stores the {@link yfiles.router.SegmentInfoBase#direction direction} to which the segment points and the {@link yfiles.router.SegmentInfoBase#locationRange interval} describing * possible locations and extensions of a segment. *

    - * @class yfiles.router.SegmentInfoBase + * @class */ export interface SegmentInfoBase extends Object{} export class SegmentInfoBase { /** * Creates a new instance of {@link yfiles.router.SegmentInfoBase}. - * @param {yfiles.algorithms.Edge} edge the edge to which the segment of this info belongs - * @param {number} segmentIndex the index of the segment to which this info belongs - * @param {yfiles.layout.Direction} direction the direction to which the segment of this info points - * @param {yfiles.router.Interval} locationRange the range within which the common location of this segment has to lie - * @param {yfiles.router.Interval} minExtension the minimum interval in extension direction this segment is known to intersect - * @param {yfiles.router.Interval} maxExtension the maximum interval in extension direction this segment will span + * @param edge the edge to which the segment of this info belongs + * @param segmentIndex the index of the segment to which this info belongs + * @param direction the direction to which the segment of this info points + * @param locationRange the range within which the common location of this segment has to lie + * @param minExtension the minimum interval in extension direction this segment is known to intersect + * @param maxExtension the maximum interval in extension direction this segment will span * @protected - * @constructor */ constructor(edge:yfiles.algorithms.Edge,segmentIndex:number,direction:yfiles.layout.Direction,locationRange:yfiles.router.Interval,minExtension:yfiles.router.Interval,maxExtension:yfiles.router.Interval); /** @@ -112240,11 +106530,10 @@ declare namespace system{ *

    * This constructor is meant to be used for fixed orthogonal edge segments. *

    - * @param {yfiles.algorithms.Edge} edge the edge to which this segment info belongs - * @param {number} segmentIndex the index of the segment to which this info belongs - * @param {yfiles.algorithms.LineSegment} segment a line segment describing the edge segment + * @param edge the edge to which this segment info belongs + * @param segmentIndex the index of the segment to which this info belongs + * @param segment a line segment describing the edge segment * @protected - * @constructor */ constructor(edge:yfiles.algorithms.Edge,segmentIndex:number,segment:yfiles.algorithms.LineSegment); /** @@ -112340,39 +106629,35 @@ declare namespace system{ * a default group ID is used. Therefore, all such edges ending at the same node belong to the same group. *

    * @see yfiles.router.BusRouter#EDGE_DESCRIPTOR_DP_KEY - * @class yfiles.router.BusDescriptor + * @class */ export interface BusDescriptor extends Object{} export class BusDescriptor { /** * Creates a new instance of {@link yfiles.router.BusDescriptor} for the specified parameters. - * @param {Object} busID the ID of the bus to which the associated edge belongs - * @param {boolean} fixed true if associated edge is fixed, false otherwise - * @param {Object} sourceGroupID the group ID of the source side - * @param {Object} targetGroupID the group ID of the target side - * @constructor + * @param busID the ID of the bus to which the associated edge belongs + * @param fixed true if associated edge is fixed, false otherwise + * @param sourceGroupID the group ID of the source side + * @param targetGroupID the group ID of the target side */ constructor(busID:Object,fixed:boolean,sourceGroupID:Object,targetGroupID:Object); /** * Creates a new instance of {@link yfiles.router.BusDescriptor} for the specified parameters and default group IDs. - * @param {Object} busID the ID of the bus to which the associated edge belongs - * @param {boolean} fixed true if associated edge is fixed, false otherwise - * @constructor + * @param busID the ID of the bus to which the associated edge belongs + * @param fixed true if associated edge is fixed, false otherwise */ constructor(busID:Object,fixed:boolean); /** * Creates a new instance of {@link yfiles.router.BusDescriptor} for the specified parameters and marks it as not fixed. - * @param {Object} busID the ID of the bus to which the associated edge belongs - * @param {Object} sourceGroupID the group ID of the source side - * @param {Object} targetGroupID the group ID of the target side - * @constructor + * @param busID the ID of the bus to which the associated edge belongs + * @param sourceGroupID the group ID of the source side + * @param targetGroupID the group ID of the target side */ constructor(busID:Object,sourceGroupID:Object,targetGroupID:Object); /** * Creates a new instance of {@link yfiles.router.BusDescriptor} for the specified bus ID which is marked as not fixed and uses the * default edge group IDs. - * @param {Object} busID the ID of the bus to which the associated edge belongs - * @constructor + * @param busID the ID of the bus to which the associated edge belongs */ constructor(busID:Object); /** @@ -112427,7 +106712,7 @@ declare namespace system{ * unique ID which identifies the bus to which it is associated. This is the representation expected by * {@link yfiles.router.BusRouter}. *

    - * @class yfiles.router.BusRepresentations + * @class */ export interface BusRepresentations extends Object{} export class BusRepresentations { @@ -112443,12 +106728,12 @@ declare namespace system{ * these paths are ambiguous. In this case, an arbitrary tree is computed from the hub's subgraph which defines all the * paths. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph of the bus - * @param {Array.} hubEdgesLists an array of {@link yfiles.algorithms.EdgeList}s each containing the edges of a bus - * @param {yfiles.algorithms.IDataProvider} hubMarker a {@link yfiles.algorithms.IDataProvider} that marks hub nodes - * @param {yfiles.algorithms.IDataProvider} fixedMarker a {@link yfiles.algorithms.IDataProvider} that marks fixed edges - * @param {yfiles.algorithms.IDataAcceptor} descriptorAcceptor a {@link yfiles.algorithms.IDataAcceptor} for storing the created bus descriptors - * @returns {yfiles.algorithms.EdgeList} a list of the created edges + * @param graph the graph of the bus + * @param hubEdgesLists an array of {@link }s each containing the edges of a bus + * @param hubMarker a {@link } that marks hub nodes + * @param fixedMarker a {@link } that marks fixed edges + * @param descriptorAcceptor a {@link } for storing the created bus descriptors + * @returns a list of the created edges * @static */ static replaceHubsBySubgraph(graph:yfiles.layout.LayoutGraph,hubEdgesLists:yfiles.algorithms.EdgeList[],hubMarker:yfiles.algorithms.IDataProvider,fixedMarker:yfiles.algorithms.IDataProvider,descriptorAcceptor:yfiles.algorithms.IDataAcceptor):yfiles.algorithms.EdgeList; @@ -112457,10 +106742,10 @@ declare namespace system{ *

    * This method delegates to {@link yfiles.router.BusRepresentations#replaceHubsBySubgraph}. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph of the bus - * @param {yfiles.algorithms.IDataProvider} hubMarker a {@link yfiles.algorithms.IDataProvider} that marks hub nodes - * @param {yfiles.algorithms.IDataAcceptor} descriptorAcceptor a {@link yfiles.algorithms.IDataAcceptor} for storing the created bus descriptors - * @returns {yfiles.algorithms.EdgeList} a list of the created edges + * @param graph the graph of the bus + * @param hubMarker a {@link } that marks hub nodes + * @param descriptorAcceptor a {@link } for storing the created bus descriptors + * @returns a list of the created edges * @see yfiles.router.BusRepresentations#replaceHubsBySubgraph * @see yfiles.router.BusRepresentations#toEdgeLists * @static @@ -112469,22 +106754,21 @@ declare namespace system{ /** * Changes the representation of buses from complete subgraphs to hubs by replacing intersection points by hubs. *

    - * The edges of the given graph must form an orthogonal, cycle-free bus, otherwise an {@link Stubs.Exceptions.InvalidOperationError} - * is thrown. + * The edges of the given graph must form an orthogonal, cycle-free bus, otherwise an {@link yfiles.lang.Exception} is thrown. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph where each bus is represented by a complete subgraph of the corresponding nodes - * @param {yfiles.algorithms.IEdgeCursor} edgeCursor an {@link yfiles.algorithms.IEdgeCursor} of the regular edges - * @param {yfiles.algorithms.IDataProvider} descriptorProvider a {@link yfiles.algorithms.IDataProvider} that provides a {@link yfiles.router.BusDescriptor} for each edge - * @param {yfiles.algorithms.IDataAcceptor} busIDAcceptor an optional {@link yfiles.algorithms.IDataAcceptor} that stores the bus ID for each new edge + * @param graph the graph where each bus is represented by a complete subgraph of the corresponding nodes + * @param edgeCursor an {@link } of the regular edges + * @param descriptorProvider a {@link } that provides a {@link } for each edge + * @param busIDAcceptor an optional {@link } that stores the bus ID for each new edge * @throws {Stubs.Exceptions.InvalidOperationError} if the path of an edge is not orthogonal or if some paths form a cycle * @static */ static replaceSubgraphByHubs(graph:yfiles.layout.LayoutGraph,edgeCursor:yfiles.algorithms.IEdgeCursor,descriptorProvider:yfiles.algorithms.IDataProvider,busIDAcceptor:yfiles.algorithms.IDataAcceptor):void; /** * Calculates for every bus represented by hubs a list of all of its edges. - * @param {yfiles.algorithms.Graph} graph the graph where buses are represented by means of hubs - * @param {yfiles.algorithms.IDataProvider} hubMarker a {@link yfiles.algorithms.IDataProvider} which marks hub nodes - * @returns {Array.} an array of {@link yfiles.algorithms.EdgeList}s where each list contains all edges of a bus + * @param graph the graph where buses are represented by means of hubs + * @param hubMarker a {@link } which marks hub nodes + * @returns an array of {@link }s where each list contains all edges of a bus * @static */ static toEdgeLists(graph:yfiles.algorithms.Graph,hubMarker:yfiles.algorithms.IDataProvider):yfiles.algorithms.EdgeList[]; @@ -112585,14 +106869,13 @@ declare namespace system{ * {@link yfiles.router.BusDescriptor#fixed corresponding BusDescriptor property}. The paths of edges which are not marked as fixed are calculated by the algorithm. * The structure induced by the fixed edges must be orthogonal and cycle-free. *

    - * @class yfiles.router.BusRouter + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface BusRouter extends yfiles.layout.LayoutStageBase{} export class BusRouter { /** * Creates a new instance of {@link yfiles.router.BusRouter} with default settings. - * @constructor */ constructor(); /** @@ -112789,24 +107072,23 @@ declare namespace system{ * has to be registered with the graph to mark all edges that should be routed by the algorithm. The routes of the other * edges remain unchanged. If there is no such key registered, the algorithm routes all edges. *

    - * @class yfiles.router.ChannelEdgeRouter + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface ChannelEdgeRouter extends yfiles.layout.LayoutStageBase{} export class ChannelEdgeRouter { /** * Creates a new {@link yfiles.router.ChannelEdgeRouter} instance with default settings. - * @constructor */ constructor(); /** * Checks the sizes of the nodes to be non-zero. - * @param {yfiles.layout.LayoutGraph} g The graph to check. + * @param g The graph to check. * @protected */ checkNodeSize(g:yfiles.layout.LayoutGraph):void; /** - * Data provider key for marking the edges that should be routed. + * Data provider key for marking the edges that should be routed *

    * If this key is not registered with the graph, the algorithm will route all edges. *

    @@ -112876,30 +107158,28 @@ declare namespace system{ * This edge routing algorithm is realized as a {@link yfiles.layout.ILayoutStage} which can be applied to a graph directly or * using a {@link yfiles.router.OrganicEdgeRouter#coreLayout core layout algorithm}. *

    - * @class yfiles.router.OrganicEdgeRouter + * @class * @implements {yfiles.layout.ILayoutStage} */ export interface OrganicEdgeRouter extends Object,yfiles.layout.ILayoutStage{} export class OrganicEdgeRouter { /** * Creates a new {@link yfiles.router.OrganicEdgeRouter} with the given {@link yfiles.router.OrganicEdgeRouter#coreLayout core layout algorithm}. - * @param {yfiles.layout.ILayoutAlgorithm} core the core layout algorithm - * @constructor + * @param core the core layout algorithm */ constructor(core:yfiles.layout.ILayoutAlgorithm); /** * Creates a new {@link yfiles.router.OrganicEdgeRouter} instance with the default settings. - * @constructor */ constructor(); /** * Performs the organic routing of the edges of the input graph. - * @param {yfiles.layout.LayoutGraph} graph the input graph + * @param graph the input graph */ applyLayout(graph:yfiles.layout.LayoutGraph):void; /** * Checks the sizes of the nodes to be non-zero. - * @param {yfiles.layout.LayoutGraph} g The graph to check. + * @param g The graph to check. * @protected */ checkNodeSize(g:yfiles.layout.LayoutGraph):void; @@ -112908,7 +107188,7 @@ declare namespace system{ *

    * The edges will keep a greater distance to the nodes. Therefore, they won't cross them. *

    - * @returns {yfiles.layout.ILayoutStage} the {@link yfiles.layout.ILayoutStage} that resizes the nodes + * @returns the {@link } that resizes the nodes */ createNodeEnlargementStage():yfiles.layout.ILayoutStage; /** @@ -112980,14 +107260,13 @@ declare namespace system{ * The edges whose paths have to be routed can be defined registering a {@link yfiles.algorithms.IDataProvider} with key * {@link yfiles.router.OrthogonalPatternEdgeRouter#DEFAULT_AFFECTED_EDGES_DP_KEY}. *

    - * @class yfiles.router.OrthogonalPatternEdgeRouter + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface OrthogonalPatternEdgeRouter extends yfiles.layout.LayoutStageBase{} export class OrthogonalPatternEdgeRouter { /** * Creates a new instance of {@link yfiles.router.OrthogonalPatternEdgeRouter} with default settings. - * @constructor */ constructor(); /** @@ -112996,11 +107275,11 @@ declare namespace system{ * This method is called by {@link yfiles.router.OrthogonalPatternEdgeRouter#calculateCost}. The default implementation multiplies * the number of bends with the according {@link yfiles.router.OrthogonalPatternEdgeRouter#bendCost costs}. It may be overridden to change the calculation of these costs. *

    - * @param {yfiles.algorithms.Edge} edge the edge for which the costs are calculated - * @param {yfiles.algorithms.YList} path the path of the given edge - * @param {yfiles.layout.PortCandidate} spc the source {@link yfiles.layout.PortCandidate} for this edge - * @param {yfiles.layout.PortCandidate} tpc the target {@link yfiles.layout.PortCandidate} for this edge - * @returns {number} the costs for the bends of this path + * @param edge the edge for which the costs are calculated + * @param path the path of the given edge + * @param spc the source {@link } for this edge + * @param tpc the target {@link } for this edge + * @returns the costs for the bends of this path * @protected */ calculateBendCost(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YList,spc:yfiles.layout.PortCandidate,tpc:yfiles.layout.PortCandidate):number; @@ -113012,11 +107291,11 @@ declare namespace system{ * {@link yfiles.layout.PortCandidate}s and monotonic path restrictions. It may be overridden to apply a different set of costs or * a different weighting. *

    - * @param {yfiles.algorithms.Edge} edge the edge whose costs to calculate - * @param {yfiles.algorithms.YList} path the edge's path - * @param {yfiles.layout.PortCandidate} spc the source {@link yfiles.layout.PortCandidate} for this edge - * @param {yfiles.layout.PortCandidate} tpc the target {@link yfiles.layout.PortCandidate} for this edge - * @returns {number} the sum of all costs for this edge's path + * @param edge the edge whose costs to calculate + * @param path the edge's path + * @param spc the source {@link } for this edge + * @param tpc the target {@link } for this edge + * @returns the sum of all costs for this edge's path * @protected */ calculateCost(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YList,spc:yfiles.layout.PortCandidate,tpc:yfiles.layout.PortCandidate):number; @@ -113028,11 +107307,11 @@ declare namespace system{ * crossings between edge segments and nodes and sum up the costs. It may be overridden to use a different combination of * costs. *

    - * @param {yfiles.algorithms.Edge} edge the edge for which the costs are calculated - * @param {yfiles.algorithms.YList} path the path of the given edge - * @param {yfiles.layout.PortCandidate} spc the source {@link yfiles.layout.PortCandidate} for this edge - * @param {yfiles.layout.PortCandidate} tpc the target {@link yfiles.layout.PortCandidate} for this edge - * @returns {number} the overall crossing costs of the given path, including edge crossings, edge overlaps and node crossings + * @param edge the edge for which the costs are calculated + * @param path the path of the given edge + * @param spc the source {@link } for this edge + * @param tpc the target {@link } for this edge + * @returns the overall crossing costs of the given path, including edge crossings, edge overlaps and node crossings * @protected */ calculateCrossingCosts(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YList,spc:yfiles.layout.PortCandidate,tpc:yfiles.layout.PortCandidate):number; @@ -113043,11 +107322,11 @@ declare namespace system{ * costs between 0 for short paths and 1 for long paths. Hence, it has relatively little impact on the overall costs. The * method may be overridden to introduce a different weighting of the edge length. *

    - * @param {yfiles.algorithms.Edge} edge the edge for which the costs are calculated - * @param {yfiles.algorithms.YList} path the path of the given edge - * @param {yfiles.layout.PortCandidate} spc the source {@link yfiles.layout.PortCandidate} for this edge - * @param {yfiles.layout.PortCandidate} tpc the target {@link yfiles.layout.PortCandidate} for this edge - * @returns {number} the costs for the length of the given path + * @param edge the edge for which the costs are calculated + * @param path the path of the given edge + * @param spc the source {@link } for this edge + * @param tpc the target {@link } for this edge + * @returns the costs for the length of the given path * @protected */ calculateEdgeLength(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YList,spc:yfiles.layout.PortCandidate,tpc:yfiles.layout.PortCandidate):number; @@ -113057,11 +107336,11 @@ declare namespace system{ * This method is called by {@link yfiles.router.OrthogonalPatternEdgeRouter#calculateCost}. The default implementation will return * the {@link yfiles.layout.PortCandidate#cost candidates' costs}. It may be overridden to change the calculation of these costs. *

    - * @param {yfiles.algorithms.Edge} edge the edge for which the costs are calculated - * @param {yfiles.algorithms.YList} path the path of the given edge - * @param {yfiles.layout.PortCandidate} spc the source {@link yfiles.layout.PortCandidate} for this edge - * @param {yfiles.layout.PortCandidate} tpc the target {@link yfiles.layout.PortCandidate} for this edge - * @returns {number} the costs for the {@link yfiles.layout.PortCandidate}s + * @param edge the edge for which the costs are calculated + * @param path the path of the given edge + * @param spc the source {@link } for this edge + * @param tpc the target {@link } for this edge + * @returns the costs for the {@link }s * @protected */ calculatePortCandidateCost(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YList,spc:yfiles.layout.PortCandidate,tpc:yfiles.layout.PortCandidate):number; @@ -113074,22 +107353,22 @@ declare namespace system{ * source and target ports share the same node side. In this manner, paths with different source and target directions are * cheaper and thus preferred. The method may be overridden to change the calculation of this penalty. *

    - * @param {yfiles.algorithms.Edge} edge the edge for which the costs are calculated - * @param {yfiles.algorithms.YList} path the path of the given edge - * @param {yfiles.layout.PortCandidate} spc the source {@link yfiles.layout.PortCandidate} for this edge - * @param {yfiles.layout.PortCandidate} tpc the target {@link yfiles.layout.PortCandidate} for this edge - * @returns {number} an extra penalty for specific self-loop paths + * @param edge the edge for which the costs are calculated + * @param path the path of the given edge + * @param spc the source {@link } for this edge + * @param tpc the target {@link } for this edge + * @returns an extra penalty for specific self-loop paths * @protected */ calculateSelfLoopSelfSidePenaltyCost(edge:yfiles.algorithms.Edge,path:yfiles.algorithms.YList,spc:yfiles.layout.PortCandidate,tpc:yfiles.layout.PortCandidate):number; /** * Checks the sizes of the nodes to be non-zero. - * @param {yfiles.layout.LayoutGraph} g The graph to check. + * @param g The graph to check. * @protected */ checkNodeSize(g:yfiles.layout.LayoutGraph):void; /** - * Data provider key for determining which edges are routed. + * Data provider key for determining which edges are routed * @const * @static * @type {yfiles.algorithms.EdgeDpKey.} @@ -113223,14 +107502,13 @@ declare namespace system{ * Method {@link yfiles.router.OrthogonalSegmentDistributionStage#lockFirstAndLastSegment} can be used to guarantee that the first and last segment of an edge won't be distributed. So, ports can easily * be maintained without setting explicit strong {@link yfiles.layout.PortConstraint}s or fixed {@link yfiles.layout.PortCandidate}s. *

    - * @class yfiles.router.OrthogonalSegmentDistributionStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface OrthogonalSegmentDistributionStage extends yfiles.layout.LayoutStageBase{} export class OrthogonalSegmentDistributionStage { /** * Creates a new instance of {@link yfiles.router.OrthogonalSegmentDistributionStage} with default settings. - * @constructor */ constructor(); /** @@ -113238,13 +107516,13 @@ declare namespace system{ *

    * The grid coordinates will be multiples of the {@link yfiles.router.OrthogonalSegmentDistributionStage#gridSpacing grid spacing} added to this origin. *

    - * @param {number} offsetX the x-coordinate of the grid origin - * @param {number} offsetY the y-coordinate of the grid origin + * @param offsetX the x-coordinate of the grid origin + * @param offsetY the y-coordinate of the grid origin * @see yfiles.router.OrthogonalSegmentDistributionStage#gridRouting */ setGridOrigin(offsetX:number,offsetY:number):void; /** - * Data provider key for determining which edges are distributed. + * Data provider key for determining which edges are distributed * @const * @static * @type {yfiles.algorithms.EdgeDpKey.} @@ -113345,21 +107623,20 @@ declare namespace system{ *

    * Thus, it guarantees that ports are always in the interior of the nodes or on their borders. *

    - * @class yfiles.router.SnapOuterPortsToNodeBorderStage + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface SnapOuterPortsToNodeBorderStage extends yfiles.layout.LayoutStageBase{} export class SnapOuterPortsToNodeBorderStage { /** * Creates a new instance of {@link yfiles.router.SnapOuterPortsToNodeBorderStage}. - * @constructor */ constructor(); static $class:yfiles.lang.Class; } /** * Specifies custom data for the {@link yfiles.router.BusRouter}. - * @class yfiles.router.BusRouterData + * @class * @extends {yfiles.layout.LayoutData} */ export interface BusRouterData extends yfiles.layout.LayoutData{} @@ -113421,7 +107698,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.router.ChannelEdgeRouter}. - * @class yfiles.router.ChannelEdgeRouterData + * @class * @extends {yfiles.layout.LayoutData} */ export interface ChannelEdgeRouterData extends yfiles.layout.LayoutData{} @@ -113437,7 +107714,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.router.OrganicEdgeRouter}. - * @class yfiles.router.OrganicEdgeRouterData + * @class * @extends {yfiles.layout.LayoutData} */ export interface OrganicEdgeRouterData extends yfiles.layout.LayoutData{} @@ -113459,7 +107736,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.router.OrthogonalPatternEdgeRouter}. - * @class yfiles.router.OrthogonalPatternEdgeRouterData + * @class * @extends {yfiles.layout.LayoutData} */ export interface OrthogonalPatternEdgeRouterData extends yfiles.layout.LayoutData{} @@ -113511,7 +107788,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.router.ParallelEdgeRouter}. - * @class yfiles.router.ParallelEdgeRouterData + * @class * @extends {yfiles.layout.LayoutData} */ export interface ParallelEdgeRouterData extends yfiles.layout.LayoutData{} @@ -113542,7 +107819,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.router.EdgeRouter}. - * @class yfiles.router.PolylineEdgeRouterData + * @class * @extends {yfiles.layout.LayoutData} */ export interface PolylineEdgeRouterData extends yfiles.layout.LayoutData{} @@ -113656,7 +107933,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.router.StraightLineEdgeRouter}. - * @class yfiles.router.StraightLineEdgeRouterData + * @class * @extends {yfiles.layout.LayoutData} */ export interface StraightLineEdgeRouterData extends yfiles.layout.LayoutData{} @@ -113694,6 +107971,5332 @@ declare namespace system{ targetPortConstraints:yfiles.layout.ItemMapping; static $class:yfiles.lang.Class; } + }export namespace partial{ + export enum EdgeRoutingStrategy{ + /** + * A routing strategy that produces orthogonal routes for partial edges and inter-edges. + *

    + * A route of an edge is called orthogonal if it only consists of vertical and horizontal segments. + *

    + *

    + * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. + *

    + * @see yfiles.partial.PartialLayout#edgeRoutingStrategy + */ + ORTHOGONAL, + /** + * A routing strategy that produces straight-line routes for partial edges and inter-edges. + *

    + * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. + *

    + * @see yfiles.partial.PartialLayout#edgeRoutingStrategy + */ + STRAIGHTLINE, + /** + * Automatically chooses a suitable routing strategy for partial edges and inter-edges by analyzing the routes of the fixed + * edges. If, for example, all fixed edges have orthogonal edge routes, inter-edges will be routed orthogonally, too. + *

    + * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. + *

    + * @see yfiles.partial.PartialLayout#edgeRoutingStrategy + */ + AUTOMATIC, + /** + * A routing strategy that produces organic routes for partial edges and inter-edges. + *

    + * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. + *

    + * @see yfiles.partial.PartialLayout#edgeRoutingStrategy + */ + ORGANIC, + /** + * A routing strategy that produces octilinear routes for partial edges and inter-edges. + *

    + * A route of an edge is called octilinear if the slope of each segment is a multiple of 45 degrees. + *

    + *

    + * Inter-edges are edges between fixed and partial nodes as well as edges between different subgraph components. + *

    + * @see yfiles.partial.PartialLayout#edgeRoutingStrategy + */ + OCTILINEAR + } + export enum ComponentAssignmentStrategy{ + /** + * A component assignment strategy that assigns each partial node to a separate subgraph component. + * @see yfiles.partial.PartialLayout#componentAssignmentStrategy + */ + SINGLE, + /** + * A component assignment strategy where the subgraph components correspond to the connected components of the graph + * induced by the partial elements. + * @see yfiles.partial.PartialLayout#componentAssignmentStrategy + */ + CONNECTED, + /** + * A component assignment strategy where the subgraph components correspond to the clusters computed by a clustering + * algorithm based on {@link yfiles.algorithms.Groups#edgeBetweennessClustering edge betweenness centrality}. + * @see yfiles.partial.PartialLayout#componentAssignmentStrategy + */ + CLUSTERING, + /** + * A component assignment strategy where the subgraph components are defined by the user. Two partial nodes are considered + * to be in the same component if the {@link yfiles.algorithms.IDataProvider} associated with key {@link yfiles.partial.PartialLayout#COMPONENT_ID_DP_KEY} + * returns the same object for both of them. + * @see yfiles.partial.PartialLayout#COMPONENT_ID_DP_KEY + * @see yfiles.partial.PartialLayout#componentAssignmentStrategy + */ + CUSTOMIZED + } + export enum SubgraphPlacement{ + /** + * A positioning strategy which tries to place each subgraph component close to the barycenter of its graph neighbors. + * @see yfiles.partial.PartialLayout#subgraphPlacement + */ + BARYCENTER, + /** + * A positioning strategy which tries to place each subgraph component close to its original position. + * @see yfiles.partial.PartialLayout#subgraphPlacement + */ + FROM_SKETCH + } + export enum LayoutOrientation{ + /** + * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each + * predecessor of a node v is placed above v and each successor below v. + * @see yfiles.partial.PartialLayout#layoutOrientation + */ + TOP_TO_BOTTOM, + /** + * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each + * predecessor of a node v is placed below v and each successor above v. + * @see yfiles.partial.PartialLayout#layoutOrientation + */ + BOTTOM_TO_TOP, + /** + * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each + * predecessor of a node v is placed to the left of v and each successor to the right of v. + * @see yfiles.partial.PartialLayout#layoutOrientation + */ + LEFT_TO_RIGHT, + /** + * Layout orientation specifier where the algorithm tries to place partial nodes (subgraph components) such that each + * predecessor of a node v is placed to the right of v and each successor to the left of v. + * @see yfiles.partial.PartialLayout#layoutOrientation + */ + RIGHT_TO_LEFT, + /** + * Layout orientation specifier where the algorithm automatically detects the layout orientation. + *

    + * The algorithm analyzes the flow direction of fixed edges in the current drawing. If there is no common flow direction, + * the results are the same as for {@link yfiles.partial.LayoutOrientation#NONE}. Otherwise, the layout orientation is either + * {@link yfiles.partial.LayoutOrientation#TOP_TO_BOTTOM}, {@link yfiles.partial.LayoutOrientation#BOTTOM_TO_TOP}, {@link yfiles.partial.LayoutOrientation#LEFT_TO_RIGHT} + * or {@link yfiles.partial.LayoutOrientation#RIGHT_TO_LEFT}. + *

    + * @see yfiles.partial.PartialLayout#layoutOrientation + */ + AUTO_DETECT, + /** + * Layout orientation specifier where the layout orientation is completely ignored. + * @see yfiles.partial.PartialLayout#layoutOrientation + */ + NONE + } + /** + * This class represents a partial layout algorithm which changes the coordinates for a given set of graph elements (called + * partial elements) only. + *

    + * The location and size of the remaining elements (called fixed elements) is not allowed to be changed.Layout Style + *

    + *

    + * This partial layout algorithm offers a kind of generic partial layout support for other existing layout algorithms. + * Hence, its layout style heavily depends on the selected {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm} as well as the specified {@link yfiles.partial.PartialLayout#edgeRouter edge router} or + * {@link yfiles.partial.PartialLayout#edgeRoutingStrategy edge routing strategy}. + *

    + *

    + * The partial layout is suitable for applications where users may incrementally add new elements to an existing drawing. + * The added elements should be arranged so that they fit best possible into the given diagram without making any changes + * to the already existing layout. Hence, the so-called mental map of the existing drawing is preserved. + *

    + *

    + * {@graph {"ann":{"s":[60,30],"d":1},"n":[[49.74,127.62,295.26,342.38,2,[[49.74,150,295.26,22.38,"Group"]]],[270,425,[[291.33,449.35,17.35,18.7,"16"]]],[270,375,[[291.33,399.35,17.35,18.7,"18"]]],[200,375,[[221.33,399.35,17.35,18.7,"19"]]],[64.74,405.17,1,[[86.07,429.52,17.35,18.7,"13"]]],[200,265,[[221.33,289.35,17.35,18.7,"20"]]],[100,215,[[124.66,239.35,10.67,18.7,"2"]]],[100,165,[[124.66,189.35,10.67,18.7,"3"]]],[100,265,[[121.33,289.35,17.35,18.7,"22"]]],[-420.63,317.87,375.21,302.93,3,[[-420.63,340.25,375.21,22.38,"Group"]]],[-179.98,534.8,1,[[-155.31,559.15,10.67,18.7,"6"]]],[-163.42,363.25,1,[[-142.09,387.6,17.35,18.7,"12"]]],[-371.63,364.65,1,[[-346.96,389,10.67,18.7,"8"]]],[-333.29,532.76,1,[[-308.62,557.11,10.67,18.7,"9"]]],[-176.17,453.25,1,[[-154.84,477.6,17.35,18.7,"11"]]],[370,215,[[394.66,239.35,10.67,18.7,"1"]]],[370,165,[[394.66,189.35,10.67,18.7,"4"]]],[-130.4,215,1,[[-105.74,239.35,10.67,18.7,"5"]]],[-224.19,264.44,1,[[-199.52,288.79,10.67,18.7,"7"]]],[370,425,[[391.33,449.35,17.35,18.7,"10"]]],[370,265,[[391.33,289.35,17.35,18.7,"14"]]],[370,375,[[391.33,399.35,17.35,18.7,"15"]]],[270,505,[[291.33,529.35,17.35,18.7,"17"]]],[440,165,[[461.33,189.35,17.35,18.7,"21"]]]],"e":[[13,12,0,-15,0,15],[13,14],[10,13,-30,4,0,0],[14,11],[6,7,0,-15,0,15],[5,8,-30,0,30,0],[1,2,0,-15,0,15],[2,3,-30,0,30,0],[4,3],[15,6,-30,0,30,0],[15,16,0,-15,0,15],[7,16,30,0,-30,0],[6,17],[17,18],[18,12],[10,19],[15,20,0,15,0,-15],[19,21,0,-15,0,15],[21,20,0,-15,0,15],[19,1,-30,0,30,0],[1,22,0,15,0,-15],[20,5,-30,0,30,0],[16,23,30,0,-30,0],[11,4,-30,0,0,0]],"vp":[-421.0,127.0,921.0,494.0]}} The input graph where marked nodes denote the partial elements that were incrementally added to the existing diagram. {@graph {"ann":{"s":[60,30],"d":1},"n":[[67.37,127.62,260,342.38,2,[[67.37,150,260,22.38,"Group"]]],[252.37,425,[[273.7,449.35,17.35,18.7,"16"]]],[252.37,375,[[273.7,399.35,17.35,18.7,"18"]]],[182.37,375,[[203.7,399.35,17.35,18.7,"19"]]],[182.37,321,1,[[203.7,345.35,17.35,18.7,"13"]]],[182.37,265,[[203.7,289.35,17.35,18.7,"20"]]],[82.37,215,[[107.03,239.35,10.67,18.7,"2"]]],[82.37,165,[[107.03,189.35,10.67,18.7,"3"]]],[82.37,265,[[103.7,289.35,17.35,18.7,"22"]]],[-147.05,387.62,180,185.56,3,[[-147.05,410,180,22.38,"Group"]]],[-42.05,425,1,[[-17.38,449.35,10.67,18.7,"6"]]],[-42.05,474.19,1,[[-20.72,498.54,17.35,18.7,"12"]]],[-132.05,425,1,[[-107.38,449.35,10.67,18.7,"8"]]],[-132.05,474.19,1,[[-107.38,498.54,10.67,18.7,"9"]]],[-42.05,528.19,1,[[-20.72,552.54,17.35,18.7,"11"]]],[352.37,215,[[377.03,239.35,10.67,18.7,"1"]]],[352.37,165,[[377.03,189.35,10.67,18.7,"4"]]],[-13.63,215,1,[[11.03,239.35,10.67,18.7,"5"]]],[-13.63,265,1,[[11.03,289.35,10.67,18.7,"7"]]],[352.37,425,[[373.7,449.35,17.35,18.7,"10"]]],[352.37,265,[[373.7,289.35,17.35,18.7,"14"]]],[352.37,375,[[373.7,399.35,17.35,18.7,"15"]]],[252.37,505,[[273.7,529.35,17.35,18.7,"17"]]],[422.37,165,[[443.7,189.35,17.35,18.7,"21"]]]],"e":[[13,12,0,-15,0,15],[13,14,0,15,-30,0,[-102.05,543.19]],[10,13,-30,0,30,0,[-54.55,440,-54.55,489.19]],[14,11,0,-15,0,15],[6,7,0,-15,0,15],[5,8,-30,0,30,0],[1,2,0,-15,0,15],[2,3,-30,0,30,0],[4,3,0,15,0,-15],[15,6,-30,0,30,0],[15,16,0,-15,0,15],[7,16,30,0,-30,0],[6,17,-30,0,30,0],[17,18,0,15,0,-15],[18,12,-30,0,0,-15,[-102.05,280]],[10,19,30,0,0,15,[27.95,440,27.95,474,382.37,474]],[15,20,0,15,0,-15],[19,21,0,-15,0,15],[21,20,0,-15,0,15],[19,1,-30,0,30,0],[1,22,0,15,0,-15],[20,5,-30,0,30,0],[16,23,30,0,-30,0],[11,4,30,5.2,-30,0,[119.87,494.39,119.87,336]]],"vp":[-148.0,127.0,631.0,447.0]}} + * The result of a partial layout run with {@link yfiles.partial.PartialLayout#componentAssignmentStrategy component assignment strategy} set to {@link yfiles.partial.ComponentAssignmentStrategy#SINGLE} + * and with {@link yfiles.partial.PartialLayout#considerNodeAlignment node alignment} enabled.Features + *

    + *

    + * Similar to the layout style, the supported feature set mainly depends on the features supported by the specified {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm} + * as well as the specified {@link yfiles.partial.PartialLayout#edgeRouter edge router} or {@link yfiles.partial.PartialLayout#edgeRoutingStrategy edge routing strategy}. The internal step that {@link yfiles.partial.PartialLayout#placeSubgraphs places the components} can handle + * group nodes as well as minimum distance constraints. Furthermore, it is able to consider node labels. + *

    + *

    + * Concept The layout algorithm tries to place the partial elements such that the resulting drawing (including the fixed elements) + * has a good quality with respect to common graph drawing aesthetics. + *

    + *

    + * The layout algorithm handles each selected graph element as partial element. For this, it looks up the {@link yfiles.algorithms.IDataProvider} + * keys {@link yfiles.partial.PartialLayout#AFFECTED_NODES_DP_KEY} and {@link yfiles.partial.PartialLayout#AFFECTED_EDGES_DP_KEY}. Partial + * node elements can be assigned to the so-called subgraph components. During the layout process each subgraph induced by the nodes of a + * component is first laid out using the specified {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm}. Then, the different components are placed + * one-by-one onto the drawing area such that the number of overlaps among graph elements is small. The user can specify + * different objectives for finding 'good' positions for subgraph components (see {@link yfiles.partial.PartialLayout#subgraphPlacement}), e.g., {@link yfiles.partial.SubgraphPlacement#BARYCENTER} + * specifies that the component should be placed close to the barycenter of its graph neighbors and {@link yfiles.partial.SubgraphPlacement#FROM_SKETCH} + * specifies that the component should be placed close to its original position. + *

    + *

    + * Method {@link yfiles.partial.PartialLayout#componentAssignmentStrategy} allows to specify the strategy that assigns partial nodes to subgraph components. Possible values are + * {@link yfiles.partial.ComponentAssignmentStrategy#CLUSTERING}, {@link yfiles.partial.ComponentAssignmentStrategy#CONNECTED}, {@link yfiles.partial.ComponentAssignmentStrategy#SINGLE} + * and + * {@link yfiles.partial.ComponentAssignmentStrategy#CUSTOMIZED}. The last value allows to use a customized component assignment. + * Note that nodes of a component cannot be assigned to different group nodes. + *

    + *

    + * Furthermore, the user can specify the edge routing strategy (see {@link yfiles.partial.PartialLayout#edgeRoutingStrategy}) that is used for routing partial edges and edges + * between different subgraph components (so-called inter-edges). Possible values are {@link yfiles.partial.EdgeRoutingStrategy#ORGANIC}, + * {@link yfiles.partial.EdgeRoutingStrategy#ORTHOGONAL}, {@link yfiles.partial.EdgeRoutingStrategy#STRAIGHTLINE}, {@link yfiles.partial.EdgeRoutingStrategy#OCTILINEAR} + * and {@link yfiles.partial.EdgeRoutingStrategy#AUTOMATIC}. + *

    + * @class + * @extends {yfiles.layout.LayoutStageBase} + */ + export interface PartialLayout extends yfiles.layout.LayoutStageBase{} + export class PartialLayout { + /** + * Creates a new instance of {@link yfiles.partial.PartialLayout} which uses the specified {@link yfiles.layout.ILayoutAlgorithm} instance + * as the core layout algorithm. + *

    + * This instance is applied to each subgraph component, see {@link yfiles.partial.PartialLayout#componentAssignmentStrategy}. + *

    + * @param [subgraphLayouter=null] the layout algorithm that is applied to the subgraph components + * @see yfiles.partial.PartialLayout#componentAssignmentStrategy + */ + constructor(subgraphLayouter?:yfiles.layout.ILayoutAlgorithm); + /** + * This method is called each time when edges are routed with an edge router. + *

    + * Subclasses may modify the configuration of the given edge router instance. + *

    + *

    + * The type of the given instance depends on the edge routing strategy, i.e., if the routing strategy is set to {@link yfiles.partial.EdgeRoutingStrategy#OCTILINEAR} + * or {@link yfiles.partial.EdgeRoutingStrategy#ORTHOGONAL} it's an instance of {@link yfiles.router.EdgeRouter}, if the routing strategy + * is set to {@link yfiles.partial.EdgeRoutingStrategy#ORGANIC} it's an instance of {@link yfiles.organic.OrganicLayout}, and, if the + * routing strategy is set to {@link yfiles.partial.EdgeRoutingStrategy#STRAIGHTLINE} it's an instance of a private + * {@link yfiles.router.StraightLineEdgeRouter}. If the edge routing strategy is set to + * {@link yfiles.partial.EdgeRoutingStrategy#AUTOMATIC}, the layout algorithm chooses one of the above strategies that best fits + * the routing style of the fixed edges. + *

    + * @param edgeRouter the instance used for routing the edges + * @see yfiles.partial.PartialLayout#edgeRouter + * @see yfiles.partial.PartialLayout#edgeRoutingStrategy + * @protected + */ + configureEdgeRouter(edgeRouter:yfiles.layout.ILayoutAlgorithm):void; + /** + * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and calculates the layout for the given subgraph component using the + * specified {@link yfiles.partial.PartialLayout#coreLayout core layout algorithm}. + *

    + * It is called once for each subgraph component. + *

    + *

    + * Subclasses may implement a custom layout strategy or add some additional data. + *

    + * @param subGraph the subgraph component + * @protected + */ + layoutSubgraph(subGraph:yfiles.layout.LayoutGraph):void; + /** + * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and places the subgraph components one-by-one onto the drawing area. + *

    + * Therefore, it considers the {@link yfiles.partial.PartialLayout#subgraphPlacement specified objective} for finding a suitable position. + *

    + *

    + * Subclasses may implement a custom placement strategy or add some additional data. However, they must not modify the + * given subgraph component lists. + *

    + * @param graph the input graph + * @param subgraphComponents each entry contains a {@link } that induces a subgraph component + * @protected + */ + placeSubgraphs(graph:yfiles.layout.LayoutGraph,subgraphComponents:yfiles.algorithms.NodeList[]):void; + /** + * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and routes all partial edges that connect two fixed elements. + *

    + * It either uses a {@link yfiles.partial.PartialLayout#edgeRouter custom edge router} or an internal edge router that produces routes according to the specified + * {@link yfiles.partial.PartialLayout#edgeRoutingStrategy routing strategy}. + *

    + *

    + * Subclasses may implement a custom routing strategy or add some additional data. + *

    + * @param graph the subgraph of the input graph induced by the fixed nodes + * @param partialEdges the {@link list of partial edges} to be routed + * @protected + */ + routeEdgesBetweenFixedElements(graph:yfiles.layout.LayoutGraph,partialEdges:yfiles.algorithms.EdgeList):void; + /** + * This method is called during the {@link yfiles.partial.PartialLayout#applyLayout layout process} and routes all inter-edges. + *

    + * Inter-edges are edges between different subgraph components including edges between fixed and partial elements. For the routing, + * this method uses the edge router instance set with method {@link yfiles.partial.PartialLayout#edgeRouter}. If no edge router was specified by the user, it uses an + * internal edge router with routing strategy {@link yfiles.partial.PartialLayout#edgeRoutingStrategy}. + *

    + *

    + * Subclasses may implement a custom routing strategy or add some additional data. + *

    + * @param graph the relevant subgraph + * @param interEdges the {@link list of inter-edges} to be routed + * @protected + */ + routeInterEdges(graph:yfiles.layout.LayoutGraph,interEdges:yfiles.algorithms.EdgeList):void; + /** + * Data provider key for marking partial nodes + * @see yfiles.partial.PartialLayout#AFFECTED_EDGES_DP_KEY + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static AFFECTED_NODES_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for specifying the edges that should be considered to be directed + *

    + * If a layout orientation is specified (i.e., {@link yfiles.partial.PartialLayout#layoutOrientation} is not + * {@link yfiles.partial.LayoutOrientation#NONE}), the algorithm tries to route directed edges such that they adhere to that + * orientation. + *

    + * @see yfiles.partial.PartialLayout#layoutOrientation + * @const + * @static + * @type {yfiles.algorithms.EdgeDpKey.} + */ + static DIRECTED_EDGES_DP_KEY:yfiles.algorithms.EdgeDpKey; + /** + * Data provider key for marking partial edges + * @see yfiles.partial.PartialLayout#AFFECTED_NODES_DP_KEY + * @const + * @static + * @type {yfiles.algorithms.EdgeDpKey.} + */ + static AFFECTED_EDGES_DP_KEY:yfiles.algorithms.EdgeDpKey; + /** + * Data provider key for obtaining the edges that should be routed by the edge router + * @see yfiles.partial.PartialLayout#edgeRouter + * @const + * @static + * @type {yfiles.algorithms.EdgeDpKey.} + */ + static ROUTE_EDGE_DP_KEY:yfiles.algorithms.EdgeDpKey; + /** + * Data provider key for defining custom subgraph components + * @see yfiles.partial.ComponentAssignmentStrategy#CUSTOMIZED + * @see yfiles.partial.PartialLayout#componentAssignmentStrategy + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static COMPONENT_ID_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Gets or sets the {@link yfiles.layout.ILayoutAlgorithm} instance that is applied to each subgraph component. + *

    + * More precisely, during the layout process each subgraph induced by the (partial) nodes of a component (see + * {@link yfiles.partial.PartialLayout#componentAssignmentStrategy}) is first laid out using this instance. + *

    + * @type {yfiles.layout.ILayoutAlgorithm} + */ + coreLayout:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets the preferred time limit (in milliseconds) for the layout algorithm. + *

    + * The specified value has to be greater than or equal to 0. If the value is 0x7FFFFFFF, the time is not limited. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the maximum duration is negative + * @type {number} + */ + maximumDuration:number; + /** + * Gets or sets whether or not edges between different subgraph components should be routed immediately. + *

    + * If this option is enabled, edges are routed during the placement of the subgraph components, i.e., immediately after a + * component is placed, its edges to other already placed components are routed. Otherwise, these edges are routed in a + * separate step after placing all subgraph components. Hence, while enabling this option usually leads to shorter edge + * routes, the placement of subgraph components is less compact. + *

    + * @see yfiles.partial.PartialLayout#routeInterEdges + * @see yfiles.partial.PartialLayout#placeSubgraphs + * @type {boolean} + */ + routeInterEdgesImmediately:boolean; + /** + * Gets or sets whether or not a subgraph component may be placed within another subgraph component. + *

    + * Enabling this option leads to more compact layout results but requires more runtime. + *

    + * @type {boolean} + */ + componentCompaction:boolean; + /** + * Gets or sets whether or not fixed (non-partial) group nodes may be resized. + *

    + * Enabling this option may lead to better results if there are fixed group nodes, since there is more space for the + * partial elements. + *

    + * @type {boolean} + */ + resizeFixedGroups:boolean; + /** + * Gets or sets the objective used for finding 'good' positions for subgraph components. + * @throws {Stubs.Exceptions.ArgumentError} if the specified strategy does not match one of the predefined positioning strategies + * @type {yfiles.partial.SubgraphPlacement} + */ + subgraphPlacement:yfiles.partial.SubgraphPlacement; + /** + * Gets or sets the minimum distance between two adjacent nodes. + *

    + * The specified value has to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the distance is negative + * @type {number} + */ + minimumNodeDistance:number; + /** + * Gets or sets whether or not partial nodes should be aligned. + *

    + * If this option is enabled, the algorithm tries to align the center of partial nodes with other nodes. + *

    + * @type {boolean} + */ + considerNodeAlignment:boolean; + /** + * Gets or sets the strategy that assigns partial nodes to subgraph components. + *

    + * The specified core layouter (see {@link yfiles.partial.PartialLayout#coreLayout}) independently calculates the layout for each such subgraph component. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified strategy does not match one of the predefined assignment strategies. + * @see yfiles.partial.PartialLayout#coreLayout + * @type {yfiles.partial.ComponentAssignmentStrategy} + */ + componentAssignmentStrategy:yfiles.partial.ComponentAssignmentStrategy; + /** + * Gets or sets whether or not a postprocessing step should be applied to reduce the number of directed edges that do not + * comply with the specified layout orientation. + * @see yfiles.partial.PartialLayout#layoutOrientation + * @see yfiles.partial.PartialLayout#DIRECTED_EDGES_DP_KEY + * @type {boolean} + */ + optimizeOrientation:boolean; + /** + * Gets or sets the custom edge router instance that is used for partial edges and edges between different subgraph + * components (so-called inter-edges). + * @see yfiles.partial.PartialLayout#ROUTE_EDGE_DP_KEY + * @see yfiles.partial.PartialLayout#edgeRoutingStrategy + * @type {yfiles.layout.ILayoutAlgorithm} + */ + edgeRouter:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets the routing strategy that is used for partial edges and edges between different subgraph components + * (so-called inter-edges). + * @throws {Stubs.Exceptions.ArgumentError} if the specified strategy does not match one of the predefined routing strategies + * @see yfiles.partial.PartialLayout#edgeRouter + * @type {yfiles.partial.EdgeRoutingStrategy} + */ + edgeRoutingStrategy:yfiles.partial.EdgeRoutingStrategy; + /** + * Gets or sets the layout orientation that is considered during the placement of partial elements. + *

    + * More precisely, the algorithm tries to place each {@link yfiles.partial.PartialLayout#componentAssignmentStrategy subgraph component} such that each predecessor of a component's node v + * is placed before v and each successor after v with respect to the layout orientation. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified orientation does not match one of the predefined orientations + * @see yfiles.partial.PartialLayout#DIRECTED_EDGES_DP_KEY + * @type {yfiles.partial.LayoutOrientation} + */ + layoutOrientation:yfiles.partial.LayoutOrientation; + /** + * Gets or sets whether or not subgraph components are mirrored to improve the layout quality. + *

    + * If enabled, the algorithm checks for each component which of the four possible mirrorings minimizes the edge length. + *

    + * @type {boolean} + */ + allowMirroring:boolean; + static $class:yfiles.lang.Class; + } + /** + * Specifies custom data for the {@link yfiles.partial.PartialLayout}. + * @class + * @extends {yfiles.layout.LayoutData} + */ + export interface PartialLayoutData extends yfiles.layout.LayoutData{} + export class PartialLayoutData { + constructor(); + /** + * Gets or sets the collection of nodes placed by the layout. + * @see yfiles.partial.PartialLayout#AFFECTED_NODES_DP_KEY + * @type {yfiles.layout.ItemCollection.} + */ + affectedNodes:yfiles.layout.ItemCollection; + /** + * Gets or sets the collection of edges placed by the layout. + * @see yfiles.partial.PartialLayout#AFFECTED_EDGES_DP_KEY + * @type {yfiles.layout.ItemCollection.} + */ + affectedEdges:yfiles.layout.ItemCollection; + /** + * Gets or sets the collection of edges that are considered as directed by the layout. + *

    + * Only if the {@link yfiles.partial.PartialLayout#layoutOrientation} is not {@link yfiles.partial.LayoutOrientation#NONE} the directedness of edges has an effect. + *

    + * @see yfiles.partial.PartialLayout#DIRECTED_EDGES_DP_KEY + * @type {yfiles.layout.ItemCollection.} + */ + directedEdges:yfiles.layout.ItemCollection; + /** + * Gets or sets the mapping from partial nodes to an object defining their component assignment. + *

    + * All partial nodes associated with the same object are assigned to the same subgraph component. + *

    + * @see yfiles.partial.PartialLayout#COMPONENT_ID_DP_KEY + * @see yfiles.partial.ComponentAssignmentStrategy#CUSTOMIZED + * @see yfiles.partial.PartialLayout#componentAssignmentStrategy + * @type {yfiles.layout.ItemMapping.} + */ + componentIds:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. + * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + nodeHalos:yfiles.layout.ItemMapping; + /** + * Gets or sets a mapping from edges to their source {@link yfiles.layout.PortConstraint}. + * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + sourcePortConstraints:yfiles.layout.ItemMapping; + /** + * Gets or sets a mapping from edges to their target {@link yfiles.layout.PortConstraint}. + * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + targetPortConstraints:yfiles.layout.ItemMapping; + /** + * Gets or sets a mapping from edges to a collection of their source port {@link yfiles.layout.PortCandidate candidates}. + * @see yfiles.layout.PortCandidate#SOURCE_PORT_CANDIDATE_COLLECTION_DP_KEY + * @type {yfiles.layout.ItemMapping.>} + */ + sourcePortCandidates:yfiles.layout.ItemMapping>; + /** + * Gets or sets a mapping from edges to a collection of their target port {@link yfiles.layout.PortCandidate candidates}. + * @see yfiles.layout.PortCandidate#TARGET_PORT_CANDIDATE_COLLECTION_DP_KEY + * @type {yfiles.layout.ItemMapping.>} + */ + targetPortCandidates:yfiles.layout.ItemMapping>; + /** + * Gets or sets the AbortHandler used during the layout. + * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY + * @type {yfiles.algorithms.AbortHandler} + */ + abortHandler:yfiles.algorithms.AbortHandler; + /** + * Gets or sets the partition grid layout data. + * @type {yfiles.layout.PartitionGridData} + */ + partitionGridData:yfiles.layout.PartitionGridData; + static $class:yfiles.lang.Class; + } + }export namespace tree{ + /** + * Encapsulates information bound to a node while the algorithm calculates a layout. + * @class + */ + export interface BalloonLayoutNodeInfo extends Object{} + export class BalloonLayoutNodeInfo { + /** + * The upper angle of the subtree wedge rooted at the node. + * @type {number} + */ + upperAngle:number; + /** + * The lower angle of the subtree wedge rooted at the node. + * @type {number} + */ + lowerAngle:number; + /** + * The angle of the gap to the wedge of the previous child node. + * @type {number} + */ + gapAngle:number; + /** + * The distance of the node to its root node. + * @type {number} + */ + dist:number; + /** + * Gets the sum of all wedge angles of the subtree rooted at this node. + * @type {number} + */ + angleSum:number; + static $class:yfiles.lang.Class; + } + /** + * A tree layout algorithm that arranges the subtrees of the tree in a balloon-like fashion. + *

    + * Layout Style {@link yfiles.tree.BalloonLayout} is designed to arrange directed and undirected tree graphs. Subtrees rooted at a node are + * placed in a radial fashion around their root node. All direct children of one node can be placed on a common circle + * around their parent node (depending on the {@link yfiles.tree.BalloonLayout#childAlignmentPolicy alignment policy}). Therefore, subtrees look like balloons or stars, + * especially if subtrees have similar sizes. The edges of the tree are drawn as straight lines. {@graph {"ann":{"s":[30,30],"d":1,"c":1},"n":[[765.94,466.2],[616.19,1035.44],[858.96,1192.81],[289.45,1092.35],[983.21,685.48],[390.63,1191.59],[1141.69,322.61],[1215.22,473.98],[599.06,923.71],[924.21,1082.3],[291.41,844.85],[1077.22,396.06],[999.14,1284.78],[391.43,1274.01],[324.89,753.04],[236.05,1223.63],[930.33,1330.15],[1013.36,1203.58],[1165.73,539.9],[1084.13,551.52],[612.56,192.18],[1004.03,1061.74],[901.39,675.54],[684.7,152.3],[1022.85,458.01],[190.18,1336.4],[767.32,1282.66],[473.05,1190.8],[684.09,233.13],[385.33,871.88],[1139.17,442.18],[925.13,116.39],[353.13,675.6],[334.78,932.43],[685.33,1291.17],[152.25,1056.81],[427.86,640.81],[1239.04,331.19],[1006.49,764.55],[934.86,198.24],[732.68,1169.96],[1046.6,632.79],[412.14,1021.39],[1266.98,538.13],[716.32,76.19],[1068.06,1329.99],[76.94,1090.32],[792.51,44.73],[576.22,1141.17],[944.59,280.09],[718.72,987.86],[132.38,1277.64],[1007.52,113.83],[318.35,600.87],[686.08,946.6],[0,1060.76],[621.34,1239.22],[684.87,0],[47.38,1167.26],[929.76,34.1],[866.88,1320.91],[425.22,944.01],[1181.1,233.18],[374.69,793.72],[118.75,981.5],[903.65,1002.48],[532.13,493.99],[200.85,981.73],[760.81,183.93],[633.38,1355.17],[1177.35,621.5],[775.83,1364.64],[784.35,1446.63],[1237.23,394.55],[272.59,1334.67],[974.02,603.57],[457.46,831.99],[159.13,1412.75],[260.6,752.11],[1069.67,256.55],[1044.67,310.87],[1121.63,226.96],[1225.82,272.87],[597.56,111.13],[530.37,198.46],[610.06,274.57],[555.63,251.79],[547.23,141.92],[1062.07,709.49],[929.94,748.38],[843.55,104.61],[857.02,162.82],[1295.93,457.26],[193.97,837.29],[246.66,931.74],[206.06,892.47],[214.43,784.65],[979.61,1149.06],[838.99,1066.04],[786.55,1086.86],[172.43,1172.3],[317.44,1231.28],[428.9,1117.65],[872.95,52.59],[984.14,58.85],[987.6,170.17],[521.61,289.78],[410.77,300.73],[412.02,412.1],[523.07,420.56],[465.9,437.92],[389.75,356.66],[464.06,273.7],[553.17,340.51],[472.17,355.73]],"e":[[0,1],[1,2],[1,3],[0,4],[3,5],[0,6],[6,7],[1,8],[2,9],[3,10],[6,11],[2,12],[5,13],[10,14],[3,15],[12,16],[12,17],[7,18],[18,19],[0,20],[9,21],[4,22],[20,23],[11,24],[15,25],[2,26],[5,27],[20,28],[10,29],[7,30],[0,31],[14,32],[10,33],[26,34],[3,35],[32,36],[6,37],[4,38],[31,39],[2,40],[4,41],[3,42],[7,43],[23,44],[12,45],[35,46],[44,47],[1,48],[39,49],[1,50],[25,51],[31,52],[32,53],[1,54],[46,55],[34,56],[44,57],[46,58],[31,59],[2,60],[29,61],[6,62],[10,63],[35,64],[9,65],[0,66],[3,67],[23,68],[34,69],[18,70],[26,71],[71,72],[7,73],[25,74],[4,75],[29,76],[25,77],[10,78],[6,79],[6,80],[6,81],[6,82],[20,83],[20,84],[20,85],[20,86],[20,87],[4,88],[4,89],[31,90],[31,91],[7,92],[10,93],[10,94],[10,95],[10,96],[2,97],[2,98],[2,99],[3,100],[3,101],[3,102],[31,103],[31,104],[31,105],[0,114],[114,106],[114,107],[114,108],[114,109],[114,110],[114,111],[114,112],[114,113]],"vp":[0.0,0.0,1326.0,1477.0]}} Sample balloon-drawing of + * a large tree obtained with default settings {@graph {"ann":{"s":[20,20],"d":1,"c":1},"n":[[302.82,325.51,70,70,[[323.15,369.86,29.35,18.7,"Root"]]],[467.87,433.16,35,35],[555.28,457.63,[[581.09,480.55,27.36,18.7,0.20775573281806076,-0.978180737635551,"Leaf"]]],[539.95,490.69,[[558.57,519.19,27.36,18.7,0.6124052098749311,-0.7905440271851036,"Leaf"]]],[511.78,513.79,[[521.49,544.2,27.36,18.7,0.8952174454926904,-0.4456295830457645,"Leaf"]]],[617.42,438.44,[[645.7,457.5,27.36,18.7,-0.01562900399598557,-0.9998778596579152,"Leaf"]]],[604.25,500.42,[[626.78,526.54,27.36,18.7,0.42067550054279435,-0.9072111789672069,"Leaf"]]],[168.96,426.6,35,35],[122.16,495.14,[[108.91,545.35,27.36,18.7,-0.7471310564613752,-0.6646767518658294,"Leaf"]]],[101.02,465.46,[[72.6,501.56,27.36,18.7,-0.38380727069642384,-0.9234132222144982,"Leaf"]]],[94.89,429.54,[[58.95,446.33,27.36,18.7,0.0558744858236695,-0.9984378006836183,"Leaf"]]],[108.08,558.63,[[104.38,613.01,27.36,18.7,-0.8765491095440469,-0.48131243341257923,"Leaf"]]],[60.74,516.51,[[39.11,560.52,27.36,18.7,-0.5800788870754927,-0.8145603014935467,"Leaf"]]],[472.4,260.75,35,35],[534.73,207.69,[[563.84,210.51,27.36,18.7,-0.7413022827299817,-0.6711713086979497,"Leaf"]]],[555.61,237.55,[[585.94,249.4,27.36,18.7,-0.3757344582282841,-0.9267273692407589,"Leaf"]]],[561.43,273.52,[[588.93,294.02,27.36,18.7,0.06458526120504259,-0.997912192547559,"Leaf"]]],[549.36,144.32,[[576.39,143.07,27.36,18.7,-0.8723155432038684,-0.48894334343044304,"Leaf"]]],[596.34,186.85,[[626.56,194.12,27.36,18.7,-0.5729485100623841,-0.8195913645331399,"Leaf"]]],[316.53,515.88,35,35],[349.51,601,[[356.29,631.15,27.36,18.7,0.9501038773669919,-0.3119336823945245,"Leaf"]]],[313.23,604.36,[[326.48,660.69,27.36,18.7,-0.9912225732921417,-0.1322036693745865,"Leaf"]]],[279.09,591.61,[[271.88,644.75,27.36,18.7,-0.8351387927609661,-0.5500392684397689,"Leaf"]]],[397.33,645.07,[[408.68,675.44,27.36,18.7,0.8566078613378385,-0.5159679950289693,"Leaf"]]],[337.13,664.84,[[339.49,693.76,27.36,18.7,0.9957417304784997,-0.09218680048511825,"Leaf"]]],[52.71,198.2,[[17.59,197.15,27.36,18.7,0.42857629306653433,-0.9035055954565794,"Leaf"]]],[39,260.06,[[3.57,279.73,27.36,18.7,-0.006902939255060647,-0.9999761744309916,"Leaf"]]],[145.3,185.63,[[126.97,158.82,27.36,18.7,0.8990721607310399,-0.43780046801987216,"Leaf"]]],[116.92,208.49,[[85.4,197.66,27.36,18.7,0.6192806018773118,-0.7851697498875478,"Leaf"]]],[101.3,241.41,[[64.86,250.7,27.36,18.7,0.21628395104715628,-0.9763305037329477,"Leaf"]]],[173.56,251.58,35,35],[321.26,36.12,[[318.14,1.56,27.36,18.7,0.9965082870714412,-0.08349391473599899,"Leaf"]]],[260.88,55.36,[[239.7,30.94,27.36,18.7,0.861077857359917,-0.5084731296385823,"Leaf"]]],[378.65,109.85,[[406.52,110,27.36,18.7,-0.8303070560332068,-0.557306192950939,"Leaf"]]],[344.63,96.81,[[366.44,90.16,27.36,18.7,-0.9900311505600138,-0.14084857443657478,"Leaf"]]],[308.31,99.85,[[295.59,69.34,27.36,18.7,0.9527898006751772,-0.30363068970273144,"Leaf"]]],[325.62,170.19,35,35],[620.15,245.57,[[649.55,261.91,27.36,18.7,-0.15959409597274285,-0.9871827209441234,"Leaf"]]],[565.45,550.51,[[579.72,580.47,27.36,18.7,0.7732871466592579,-0.6340559823955481,"Leaf"]]],[36.42,458,[[3.15,484.87,27.36,18.7,-0.1682027041762925,-0.9857524285071697,"Leaf"]]],[91.95,148.45,[[66.13,128.88,27.36,18.7,0.7787908142925284,-0.6272837217508362,"Leaf"]]],[383.99,45.04,[[409.22,41.45,27.36,18.7,-0.933684654259895,-0.3580963088326663,"Leaf"]]],[274.32,656.46,[[277.16,712.35,27.36,18.7,-0.9367740425600954,-0.34993484134280844,"Leaf"]]]],"e":[[0,1,[],[[405.66,401.96,61.37,18.7,0.5213485166954306,-0.8533438487148509,"Root-Edge"]]],[1,2],[1,3],[1,4],[1,5],[1,6],[0,7,[],[[268.23,398.95,61.37,18.7,0.4834440722369951,0.8753752504034548,"Root-Edge"]]],[7,8],[7,9],[7,10],[7,11],[7,12],[0,13,[],[[407.74,322.69,61.37,18.7,-0.4757866709710364,-0.8795607106540735,"Root-Edge"]]],[13,14],[13,15],[13,16],[13,17],[13,18],[0,19,[],[[336.08,439.99,61.37,18.7,0.999759704932882,0.02192104907427582,"Root-Edge"]]],[19,20],[19,21],[19,22],[19,23],[19,24],[0,30,[],[[270.35,318.48,61.37,18.7,-0.5287754007295448,0.8487617896579165,"Root-Edge"]]],[30,29],[30,28],[30,27],[30,26],[30,25],[0,36,[],[[340.26,281.05,61.37,18.7,-0.9995303423338449,-0.030644652942837143,"Root-Edge"]]],[36,35],[36,34],[36,33],[36,32],[36,31],[13,37],[1,38],[7,39],[30,40],[36,41],[19,42]],"vp":[-1.0,0.0,678.0,722.0]}} Sample balloon-drawing featuring interleaved child placement and ray-like + * node labels ConceptThe algorithm executes the following steps: + *

    + *
      + *
    1. Select a root node according to the specified {@link yfiles.tree.BalloonLayout#rootNodePolicy root policy}.
    2. + *
    3. Determine the placement of subtrees around the root using a bottom-up recursive approach (starting with leaf nodes).
    4. + *
    5. Assign the actual coordinates of nodes, again using a recursive approach (starting with the root node).
    6. + *
    + *

    + * Features + *

    + *

    + * The algorithm features integrated {@link yfiles.tree.BalloonLayout#integratedEdgeLabeling edge labeling} as well as {@link yfiles.tree.BalloonLayout#integratedNodeLabeling node labeling}. Edge labels and node labels are placed + * automatically without generating overlaps with other labels or graph elements. There are different {@link yfiles.tree.BalloonLayout#nodeLabelingPolicy ways} to place node + * labels. Edge labeling will take the settings of {@link yfiles.layout.PreferredPlacementDescriptor} into account. + *

    + *

    + * Defining a {@link yfiles.tree.BalloonLayout#preferredChildWedge preferred wedge angle} has a great influence on the layout style. Subtrees rooted at a node get a certain + * amount of radial space to be placed around the parent node, such that a preferred angle close to 360 degrees will + * generate drawings where subtrees look like balloons, while an angle close to 180 degrees could be chosen to get drawings + * where subtrees look like semicircles. + *

    + *

    + * Since it is computationally not very complex, {@link yfiles.tree.BalloonLayout} is very well suited for large tree graphs. It + * performs well even for huge graphs. + *

    + *

    + * This layout algorithm can only handle graphs with a tree structure. To apply it to a general graph, a {@link yfiles.tree.TreeReductionStage} + * can be appended. This stage will temporarily remove some edges of the input graph until a tree is obtained. These edges + * will later be reinserted and routed separately. + *

    + * @class + * @extends {yfiles.layout.MultiStageLayout} + */ + export interface BalloonLayout extends yfiles.layout.MultiStageLayout{} + export class BalloonLayout { + /** + * Creates a new {@link yfiles.tree.BalloonLayout} instance with default settings. + */ + constructor(); + /** + * Calculates the wedge angle that has to be reserved for the subtree rooted at the given node scaling the {@link yfiles.tree.BalloonLayoutNodeInfo#dist distance} with + * the given scale factor. + *

    + * Given some {@link yfiles.tree.BalloonLayoutNodeInfo#dist distance} the {@link yfiles.tree.BalloonLayoutNodeInfo#upperAngle upper angle} and {@link yfiles.tree.BalloonLayoutNodeInfo#lowerAngle lower angle} of the wedge belonging to the subtree rooted at root will be + * calculated and stored in the {@link yfiles.tree.BalloonLayoutNodeInfo} instance associated with root + * ({@link yfiles.tree.BalloonLayout#getInfo}). + *

    + *

    + * This method may be overridden to perform a custom wedge angle assignment scheme. The method is called when + * {@link yfiles.tree.BalloonLayout#calculateChildArrangement arranging child nodes}. Large edge labels on the incoming edge to root need to be considered, if {@link yfiles.tree.BalloonLayout#integratedEdgeLabeling integrated edge labeling} + * should still work properly. + *

    + * @param root the node for which the wedge angles are calculated + * @param [scaleFactor=1.0] a factor to be applied to the {@link #dist distance} of root + * @returns the sum of the upper and lower wedge angle of the subtree rooted at the given root node + * @see yfiles.tree.BalloonLayout#calculateChildArrangement + * @protected + */ + calculateAngles(root:yfiles.algorithms.Node,scaleFactor?:number):number; + /** + * Calculates a child node arrangement for a given root node of the tree. + *

    + * During the arrangement, child nodes of root will be {@link yfiles.tree.BalloonLayout#sortChildNodes sorted}. Furthermore, distances of the child nodes will be chosen + * such that the wedge of the subtree of root fits into the preferred wedge angle, which is either defined via {@link yfiles.tree.BalloonLayout#preferredRootWedge} or {@link yfiles.tree.BalloonLayout#preferredChildWedge}. + * Calculated distances are stored in {@link yfiles.tree.BalloonLayoutNodeInfo#dist}. + *

    + *

    + * The angle values - upper and lower wedge angle - may also be updated during this process and stored in {@link yfiles.tree.BalloonLayoutNodeInfo#upperAngle} + * and {@link yfiles.tree.BalloonLayoutNodeInfo#lowerAngle}, respectively. To compute the angles of wedges, method {@link yfiles.tree.BalloonLayout#calculateAngles} + * is used. + *

    + *

    + * This method may be overridden to perform a custom child node arrangement. If support for available features like {@link yfiles.tree.BalloonLayout#interleavedMode interleaving} + * should be maintained, then these features need to be carefully considered during the arrangement. + *

    + * @param root the node for whose children to compute an arrangement + * @protected + */ + calculateChildArrangement(root:yfiles.algorithms.Node):void; + /** + * Determines the root node of {@link yfiles.tree.BalloonLayout#graph} according to the chosen {@link yfiles.tree.BalloonLayout#rootNodePolicy root node policy}. + *

    + * This method may be overridden to implement some other strategy for choosing the root node of the input graph. It is + * called before the rest of the layout process within {@link yfiles.tree.BalloonLayout#applyLayoutCore}. + *

    + * @returns the root node of {@link #graph} + * @see yfiles.tree.BalloonLayout#rootNodePolicy + * @protected + */ + determineRoot():yfiles.algorithms.Node; + /** + * Returns the {@link yfiles.tree.BalloonLayoutNodeInfo} object associated with the given node while the layout algorithm is + * active. + *

    + * The returned object contains detailed information describing the placement of a node in the layout being computed, e.g., + * a node's distance to its parent or the wedge angle of the subtree rooted at a node. + *

    + *

    + * Subclasses may want to override this method to realize another node information setup. This method is called throughout + * the algorithm, each time some information associated with a node needs to be retrieved or stored. + *

    + * @param node the node whose information object should be retrieved + * @returns the {@link } instance associated to the given node + * @see yfiles.tree.BalloonLayoutNodeInfo + */ + getInfo(node:yfiles.algorithms.Node):yfiles.tree.BalloonLayoutNodeInfo; + /** + * Returns the preferred radial amount (wedge) in degrees that child nodes may in total occupy around the given node. + *

    + * The wedge angle controls the degree to which the child nodes may radiate from the center of layout. A value close to 360 + * means that the child nodes may radiate in (almost) any direction from their parent node, edge lengths can in consequence + * stay rather small. On the other hand, a small value means that children are restricted to a small angle; thus, edges + * lengths (and drawings) may become large. + *

    + *

    + * This method returns the {@link yfiles.tree.BalloonLayout#preferredRootWedge preferred root wedge} if node root was selected as global root node ({@link yfiles.tree.BalloonLayout#rootNodePolicy}). Otherwise, it either + * returns {@link yfiles.tree.BalloonLayout#preferredChildWedge} or if the given node has an outdegree equal to 2, it returns the minimum of {@link yfiles.tree.BalloonLayout#preferredChildWedge} and 180. + *

    + *

    + * This method may be overridden to provide a custom child wedge function. + *

    + * @param root the node to get the preferred wedge angle for + * @returns the preferred wedge angle for root in degrees + * @see yfiles.tree.BalloonLayout#preferredChildWedge + * @see yfiles.tree.BalloonLayout#preferredRootWedge + * @protected + */ + getPreferredChildWedge(root:yfiles.algorithms.Node):number; + /** + * Sorts the child nodes (successors) of the given node. + *

    + * This implementation uses the original node coordinates if {@link yfiles.tree.BalloonLayout#fromSketchMode From Sketch mode} is enabled. Otherwise it uses {@link yfiles.tree.BalloonLayout#comparer the specified comparator} + * to sort the outgoing edges and thus the children of root. If there is no such comparator, then the sorting depends on + * whether or not the child nodes are placed in an {@link yfiles.tree.BalloonLayout#interleavedMode interleaved} fashion: + *

    + *
      + *
    • Normal: Children are sorted according to the chosen {@link yfiles.tree.BalloonLayout#childOrderingPolicy child ordering policy}.
    • + *
    • + * Interleaved: Children are sorted such that the resulting interleaved node placement is compact, while children inducing + * larger subgraphs are placed next to smaller ones. + *
    • + *
    + *

    + * This method may be overridden to realize a custom child node ordering. It gets called in method {@link yfiles.tree.BalloonLayout#calculateChildArrangement} + * before coordinates are assigned and just after the wedge sizes for all subtrees rooted at root are determined. + *

    + * @param root the node whose child nodes will be sorted + * @protected + */ + sortChildNodes(root:yfiles.algorithms.Node):void; + /** + * Data provider key for marking nodes whose child nodes should be placed in an interleaved fashion + *

    + * This {@link yfiles.algorithms.IDataProvider} allows to individually configure the interleaving feature for each node in the + * graph. + *

    + * @see yfiles.tree.BalloonLayout#interleavedMode + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static INTERLEAVED_NODES_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for marking the node that will be used as root node of the tree + * @see yfiles.tree.BalloonLayout#rootNodePolicy + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * The layout graph being acted upon. + * @protected + * @type {yfiles.layout.LayoutGraph} + */ + graph:yfiles.layout.LayoutGraph; + /** + * Gets or sets the {@link yfiles.collections.IComparer.} instance that determines the order of the outgoing edges for each node of the tree. + *

    + * If no {@link yfiles.collections.IComparer.} is specified (i.e. the {@link yfiles.collections.IComparer.} is null), the outgoing edges will be sorted according to the current + * {@link yfiles.tree.BalloonLayout#childOrderingPolicy child ordering policy}. + *

    + * @see yfiles.tree.BalloonLayout#childOrderingPolicy + * @see yfiles.tree.BalloonLayout#fromSketchMode + * @type {yfiles.collections.IComparer.} + */ + comparer:yfiles.collections.IComparer; + /** + * Gets or sets the child ordering policy for sorting the child nodes around their parents. + *

    + * The sorting policy can affect the compactness of drawings. Advantageous orderings allow adjacent subtrees to be close + * together and can thus make the whole layout more compact. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if an unknown ordering policy is given + * @see yfiles.tree.BalloonLayout#fromSketchMode + * @see yfiles.tree.BalloonLayout#comparer + * @type {yfiles.tree.ChildOrderingPolicy} + */ + childOrderingPolicy:yfiles.tree.ChildOrderingPolicy; + /** + * Gets or sets the minimum distance to be kept between the nodes in the tree. + *

    + * The distance needs to be a non-negative integer value. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given minimum distance is negative + * @see yfiles.tree.BalloonLayout#allowOverlaps + * @type {number} + */ + minimumNodeDistance:number; + /** + * Gets or sets whether or not to consider the given coordinates of the input diagram when arranging the tree. + *

    + * Enabling this feature, the original circular order of child nodes around their parent nodes will be maintained according + * to the initial coordinates when determining the order of the child nodes. + *

    + * @type {boolean} + */ + fromSketchMode:boolean; + /** + * Gets or sets the root node selection policy of this layout algorithm. + *

    + * The policy determines which node is chosen as (virtual) tree root during the layout process. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if an unknown root node policy is given + * @type {yfiles.tree.RootNodePolicy} + */ + rootNodePolicy:yfiles.tree.RootNodePolicy; + /** + * Gets or sets the preferred radial amount (wedge) in degrees that child nodes may in total occupy around their parent + * node. + *

    + * The wedge angle controls the degree to which the child nodes may radiate from the center of layout. A value close to 360 + * means that the child nodes may radiate in (almost) any direction from their parent node, edge lengths can in consequence + * stay rather small. On the other hand, a small value means that children are restricted to a small angle; thus, edge + * lengths (and drawings) may become large. + *

    + *

    + * The minimum allowed wedge angle is 1 and the maximum allowed value is 359. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given angle is smaller than 1 or larger than 359 + * @see yfiles.tree.BalloonLayout#preferredRootWedge + * @type {number} + */ + preferredChildWedge:number; + /** + * Gets or sets the preferred radial amount (wedge) in degrees that child nodes may in total occupy around the global + * root. + *

    + * This property allows to separately control the wedge angle for the designated root node of the tree, while {@link yfiles.tree.BalloonLayout#preferredChildWedge} controls the + * angles of all child nodes. The root node will be determined depending on the {@link yfiles.tree.BalloonLayout#rootNodePolicy root node policy}. + *

    + *

    + * The minimum allowed root wedge angle is 1 and the maximum allowed value is 360. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given angle is smaller than 1 or larger than 360 + * @see yfiles.tree.BalloonLayout#preferredChildWedge + * @type {number} + */ + preferredRootWedge:number; + /** + * Gets or sets whether or not (partially) overlapping nodes are allowed. + *

    + * If overlaps are allowed, the resulting layouts can become significantly more compact. Overlaps will mostly occur at the + * borders of nodes. Nodes will not be totally covered by other nodes. + *

    + * @type {boolean} + */ + allowOverlaps:boolean; + /** + * Gets or sets the factor defining how compact layout results will potentially be, where a smaller factor produces + * potentially more compact layouts. + *

    + * The algorithm tries to optimize the child node arrangement around each tree node such that each subtree is as close to + * its root as possible, while still fitting into the {@link yfiles.tree.BalloonLayout#preferredChildWedge preferred wedge angle} and not overlapping with adjacent subtrees. + *

    + *

    + * High compactness factor values induce the optimization procedure to be less strict and accept less optimal results, + * while low factor values mean that the optimization will only stop when being nearly optimal. Thus, lower values lead to + * a potentially higher runtime. + *

    + *

    + * The minimum factor value is 0.05 and the maximum is 1.0. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the factor is smaller than 0.05 or greater than 1.0 + * @type {number} + */ + compactnessFactor:number; + /** + * Gets or sets the minimum length that this layout algorithm assigns to edges of the graph. + *

    + * A lower minimum edge length allows generally more compact layouts. It has the highest effect if most nodes of the graph + * have a low degree, as the minimum can potentially be met for such graphs. + *

    + *

    + * The minimum length must be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given length is negative + * @type {number} + */ + minimumEdgeLength:number; + /** + * Gets or sets whether or not the layout algorithm reserves space for node labels. + *

    + * The size of nodes will temporarily be adjusted such that the label is included. Therefore, result drawings may get + * significantly larger if this feature is enabled. + *

    + * @type {boolean} + */ + considerNodeLabels:boolean; + /** + * Gets or sets the mode for child node arrangement. + *

    + * Child nodes are either placed interleaved or on a single layer around their parent node. Interleaved placement means + * that child nodes are placed around their common parent in two different layers in an alternating fashion. For example, + * the first child is on the inner layer, the second child on the outer layer, the third one again on the inner layer, + * etc. + *

    + *

    + * Independent of this mode, the alignment of child nodes on the same layer is still defined by the {@link yfiles.tree.BalloonLayout#childAlignmentPolicy alignment policy}. + * However, {@link yfiles.tree.ChildAlignmentPolicy#SMART} is only supported for non-interleaved arrangement. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if an unknown mode for interleaved arrangement is given + * @see yfiles.tree.BalloonLayout#childAlignmentPolicy + * @type {yfiles.tree.InterleavedMode} + */ + interleavedMode:yfiles.tree.InterleavedMode; + /** + * Gets or sets the child alignment policy for this layout algorithm. + *

    + * This policy influences the distance of child nodes to their parent nodes and the alignment of children with the same + * parent. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if an unknown policy is given + * @type {yfiles.tree.ChildAlignmentPolicy} + */ + childAlignmentPolicy:yfiles.tree.ChildAlignmentPolicy; + /** + * Gets or sets whether or not the layout algorithm automatically places node labels. + *

    + * If enabled, this layout algorithm will calculate the positions for the node labels assuring that no overlaps occur. + *

    + *

    + * Different labeling strategies may be selected using {@link yfiles.tree.BalloonLayout#nodeLabelingPolicy}. + *

    + * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy + * @type {boolean} + */ + integratedNodeLabeling:boolean; + /** + * Gets or sets whether or not the layout algorithm automatically places edge labels. + *

    + * If enabled, this layout algorithm will calculate the positions for the edge labels assuring that no overlaps occur. + *

    + * @type {boolean} + */ + integratedEdgeLabeling:boolean; + /** + * Gets or sets the policy defining how node labels are placed by the integrated node labeling mechanism (for example, the + * desired label orientation). + * @throws {Stubs.Exceptions.ArgumentError} if an unknown labeling policy is given + * @see yfiles.tree.BalloonLayout#integratedNodeLabeling + * @type {yfiles.tree.NodeLabelingPolicy} + */ + nodeLabelingPolicy:yfiles.tree.NodeLabelingPolicy; + /** + * Gets or sets the distance between node labels belonging to the same node. + *

    + * It also defines the distance between labels and the node they belong to in case of label placement outside of the node + * (e.g. for {@link yfiles.tree.NodeLabelingPolicy#RAY_LIKE ray-like label placement}). + *

    + *

    + * The spacing must have a non-negative value. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given spacing value is negative + * @see yfiles.tree.BalloonLayout#integratedNodeLabeling + * @type {number} + */ + nodeLabelSpacing:number; + /** + * Gets or sets the distance between edge labels belonging to the same edge as well as the distance of the edge labels to + * the target node of the edge. + *

    + * The spacing must have a non-negative value. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given label spacing value is negative + * @see yfiles.tree.BalloonLayout#integratedEdgeLabeling + * @type {number} + */ + edgeLabelSpacing:number; + /** + * Gets or sets whether or not chains are drawn straight or not. + *

    + * A chain is defined as a tree node with exactly one child node. If this feature is enabled, then the incoming edge and + * outgoing edge of the chain will have the same orientation, i.e., the whole chain looks straight. + *

    + *

    + * Straightening all chains can lead to smoother, more symmetric results. + *

    + * @type {boolean} + */ + chainStraighteningMode:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. + * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled + * @see yfiles.layout.MultiStageLayout#componentLayout + * @see yfiles.layout.ComponentLayout + * @type {boolean} + */ + componentLayoutEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for hiding group nodes is activated. + * @see yfiles.layout.MultiStageLayout#hideGroupsStageEnabled + * @see yfiles.layout.MultiStageLayout#hideGroupsStage + * @see yfiles.layout.HideGroupsStage + * @type {boolean} + */ + hideGroupsStageEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} that modifies the orientation of the layout is activated. + * @see yfiles.layout.MultiStageLayout#orientationLayoutEnabled + * @see yfiles.layout.MultiStageLayout#orientationLayout + * @see yfiles.layout.MultiStageLayout#layoutOrientation + * @see yfiles.layout.OrientationLayout + * @type {boolean} + */ + orientationLayoutEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter + * @see yfiles.router.ParallelEdgeRouter + * @type {boolean} + */ + parallelEdgeRouterEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. + * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled + * @see yfiles.layout.MultiStageLayout#selfLoopRouter + * @see yfiles.layout.SelfLoopRouter + * @type {boolean} + */ + selfLoopRouterEnabled:boolean; + static $class:yfiles.lang.Class; + } + export enum FillStyle{ + /** + * Style specifier which defines that rows/columns are aligned with their leading side. + * @see yfiles.tree.AspectRatioNodePlacer#fillStyle + */ + LEADING, + /** + * Style specifier which defines that rows/columns are aligned with their center. + * @see yfiles.tree.AspectRatioNodePlacer#fillStyle + */ + CENTERED, + /** + * Style specifier which defines that rows/columns are justified to have the same width/height. + * @see yfiles.tree.AspectRatioNodePlacer#fillStyle + */ + JUSTIFY, + /** + * Style specifier which defines that rows/columns are aligned with their trailing side. + * @see yfiles.tree.AspectRatioNodePlacer#fillStyle + */ + TRAILING + } + export enum RootPlacement{ + /** + * A root placement specifier for placing the root centered above its subtree, depending on the actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. + * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY + */ + TOP, + /** + * A root placement specifier for placing the root in the upper left corner of the subtree bounds with respect to the + * actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. + *

    + * Whether the root is placed entirely beside the subtree with no horizontal overlaps or entirely above the subtree without + * vertical overlaps will be determined by the layout of the subtree. The layout algorithm tries to minimize the bounds of + * the subtree. + *

    + * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY + * @see yfiles.tree.RootPlacement#CORNER_TOP + * @see yfiles.tree.RootPlacement#CORNER_SIDE + */ + CORNER, + /** + * A root placement specifier for placing the root in the upper left corner of the subtree bounds with respect to the + * actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. + *

    + * The root is placed entirely beside the subtree with no horizontal overlaps. This might by important if the root's height + * is very large while its width is small. + *

    + * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY + */ + CORNER_SIDE, + /** + * A root placement specifier for placing the root of a subtree in the upper left corner of the subtree bounds with respect + * to the actual {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}. + *

    + * The root is placed entirely above the subtree with no vertical overlaps. This might by important if the root's width is + * very large while its height is small. + *

    + * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY + */ + CORNER_TOP + } + export enum SubtreeArrangement{ + /** + * A direction specifier for placing the child nodes next to each other in direction of the actual + * {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}, with the edges connecting in the direction of flow. + * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY + */ + HORIZONTAL, + /** + * A direction specifier for placing the child nodes above each other in direction of the actual + * {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation}, with the edges connecting orthogonally to the direction of flow. + * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY + */ + VERTICAL + } + export enum InterleavedMode{ + /** + * A child placement mode where all child nodes are placed around their parent with equal distances. + * @see yfiles.tree.BalloonLayout#interleavedMode + */ + OFF, + /** + * A child placement mode where nodes are placed in an interleaved fashion, that is, with two different, alternating + * distances to the parent node. + * @see yfiles.tree.BalloonLayout#interleavedMode + */ + ALL_NODES, + /** + * A child placement mode where child nodes of selected nodes are placed in an interleaved fashion, that is, with two + * different, alternating distances to the parent node. + *

    + * All other nodes are placed without interleaving. The node selection can be specified by registering an appropriate {@link yfiles.algorithms.IDataProvider} + * for key {@link yfiles.tree.BalloonLayout#INTERLEAVED_NODES_DP_KEY}. + *

    + * @see yfiles.tree.BalloonLayout#interleavedMode + */ + MARKED_NODES + } + export enum NodeLabelingPolicy{ + /** + * Node labeling policy for ray-like label placement at nodes with zero or one child node. + *

    + * Labels belonging to leaf nodes and nodes with exactly one successor (thus forming a sort of chain) will not be oriented + * horizontal but ray-like; they get the same orientation as their nodes' incoming edge. The labels of the other nodes will + * be oriented horizontally and placed at the center of the corresponding node. + *

    + * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy + */ + RAY_LIKE, + /** + * Node labeling policy for ray-like label placement at leaf nodes. + *

    + * Labels corresponding to leaf nodes get the same orientation as their nodes' incoming edge and are placed outside the + * node (without overlaps). The labels of the other nodes will be oriented horizontally and placed at the center of the + * corresponding node. + *

    + * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy + */ + RAY_LIKE_LEAVES, + /** + * Node labeling policy for horizontal label placement at all nodes. + *

    + * The node labels are placed at the center of the corresponding node. + *

    + * @see yfiles.tree.BalloonLayout#nodeLabelingPolicy + */ + HORIZONTAL + } + export enum ChildAlignmentPolicy{ + /** + * Alignment policy to align child nodes rooted at the same parent such that the border of their convex hull has the same + * distance to the parent node's center. + * @see yfiles.tree.BalloonLayout#childAlignmentPolicy + */ + PLAIN, + /** + * Alignment policy to align child nodes rooted at the same parent such that each child has the same center-to-center + * distance to the parent node. + *

    + * All nodes will be placed on a common radius around their parent, respective to their center coordinates. + *

    + * @see yfiles.tree.BalloonLayout#childAlignmentPolicy + */ + SAME_CENTER, + /** + * Alignment policy for aligning child nodes such that the distances to their parent are kept short and drawings can + * potentially become more compact. + *

    + * This policy realizes the exact same child alignment as {@link yfiles.tree.ChildAlignmentPolicy#PLAIN} if there are no edge + * labels associated with edges going to child nodes or if {@link yfiles.tree.BalloonLayout#integratedEdgeLabeling integrated edge labeling} is disabled. + *

    + *

    + * If edge labels need to be considered, edge labels will be added to the convex hull of the child node to which the edge + * connects. This means that child nodes connected with a labeled edge will be aligned at the border where the edge label + * begins. In consequence, edge labels will be aligned with neighboring edge labels as well as neighboring child nodes if a + * child node has no edge label at its incoming edge. + *

    + *

    + * This alignment strategy is especially effective if large edge labels need to be considered while drawings should still + * be compact and distances from parent to child nodes short. + *

    + * @see yfiles.tree.BalloonLayout#childAlignmentPolicy + */ + COMPACT, + /** + * Alignment policy to align child nodes rooted at the same parent using a mixture of the other policies and aiming to + * achieve symmetry and compactness at the same time. + *

    + * Similar to + * {@link yfiles.tree.ChildAlignmentPolicy#SAME_CENTER}, this policy aims to achieve alignments featuring equal distances between + * parent and child node centers. However, a much larger distance for all child nodes caused by single large subtrees is + * avoided by this policy. In such cases, the smaller subtrees may be placed on a common radius and the large subtrees are + * placed with different distances. + *

    + * @see yfiles.tree.BalloonLayout#childAlignmentPolicy + */ + SMART + } + export enum ChildOrderingPolicy{ + /** + * Child ordering policy which orders child nodes depending on their subtree size such that large subtrees are placed next + * to small ones in order to save space. + *

    + * The actual area of a subtree is used as the subtree size. The smallest subtree is placed next to the largest subtree, + * followed by the second smallest subtree and so on. This way, drawings can become more compact, because the adjacent + * placement of large subtrees is avoided (which would require edges to become longer for subtrees to fit next to each + * other). + *

    + * @see yfiles.tree.BalloonLayout#childOrderingPolicy + */ + COMPACT, + /** + * Child ordering policy which sorts the child nodes according to their wedge angles. + *

    + * The node with the greatest angle gets median position in the sorting order. The smaller the wedges, the farther away a + * node will be placed from the median position. Using this policy, the produced results are often more symmetric. + *

    + * @see yfiles.tree.BalloonLayout#childOrderingPolicy + */ + SYMMETRIC + } + export enum RootNodePolicy{ + /** + * Root node policy for choosing a node with indegree 0 as root node of the tree. + *

    + * The selection of the root node will happen according to {@link yfiles.algorithms.Trees#getRoot}. + *

    + * @see yfiles.tree.BalloonLayout#rootNodePolicy + * @see yfiles.algorithms.Trees#getRoot + */ + DIRECTED_ROOT, + /** + * Root node policy for choosing the center node as root node of the tree. + *

    + * A {@link yfiles.algorithms.Trees#getCenterRoot center node} induces a minimum depth tree when being used as the root of that tree. + *

    + * @see yfiles.tree.BalloonLayout#rootNodePolicy + * @see yfiles.algorithms.Trees#getCenterRoot + */ + CENTER_ROOT, + /** + * Root node policy for choosing a weighted center node as root node of the tree. + *

    + * A {@link yfiles.algorithms.Trees#getWeightedCenterNode weighted center node} is a node which is part of the greatest number of all undirected paths in a graph. + *

    + * @see yfiles.tree.BalloonLayout#rootNodePolicy + */ + WEIGHTED_CENTER_ROOT, + /** + * Root node policy for choosing a custom node as the root node of the tree. + *

    + * The root node is specified using a {@link yfiles.algorithms.IDataProvider} registered with the graph with key + * {@link yfiles.tree.BalloonLayout#SELECTED_ROOT_DP_KEY}. + *

    + * @see yfiles.tree.BalloonLayout#rootNodePolicy + */ + SELECTED_ROOT + } + export enum ChildPlacement{ + /** + * Placement specifier which defines that subtrees are placed one below the other and left of the root node. + * @see yfiles.tree.DefaultNodePlacer#childPlacement + */ + VERTICAL_TO_LEFT, + /** + * Placement specifier which defines that subtrees are placed one below the other and right of the root node. + * @see yfiles.tree.DefaultNodePlacer#childPlacement + */ + VERTICAL_TO_RIGHT, + /** + * Placement specifier which defines that subtrees are placed horizontally next to each other and above the root node. + * @see yfiles.tree.DefaultNodePlacer#childPlacement + */ + HORIZONTAL_UPWARD, + /** + * Placement specifier which defines that subtrees are placed horizontally next to each other and below the root node. + * @see yfiles.tree.DefaultNodePlacer#childPlacement + */ + HORIZONTAL_DOWNWARD + } + export enum RootAlignment{ + /** + * Alignment specifier which defines that the root node is placed ahead of all its child subtrees. + *

    + * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed ahead (e.g. + * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: left) of the combined bounding box of all subtrees without labels. + *

    + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + LEADING_OFFSET, + /** + * Alignment specifier which defines that the root node is placed aligned with its first subtree. + *

    + * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed aligned with the bounding box of its first (e.g. + * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: left) subtree. + *

    + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + LEADING, + /** + * Alignment specifier which defines that the root node is placed aligned with the center of its subtrees. + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + CENTER, + /** + * Alignment specifier which defines that the root node is placed at the median of the connection points to its subtrees. + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + MEDIAN, + /** + * Alignment specifier which defines that the root node is placed aligned with its last subtree. + *

    + * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed aligned with the bounding box of its last (e.g. + * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: right) subtree. + *

    + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + TRAILING, + /** + * Alignment specifier which defines that the root is placed after all its subtree. + *

    + * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed after (e.g. + * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: right) of the combined bounding box of all subtrees without labels. + *

    + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + TRAILING_OFFSET, + /** + * Alignment specifier which defines that the root is placed after all its subtrees, centered on the bus. + *

    + * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed after (e.g. + * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: right) of the combined bounding box of all subtrees without labels. The + * bus leaves directly from the root node. + *

    + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + TRAILING_ON_BUS, + /** + * Alignment specifier which defines that the root is placed ahead of all its subtrees, centered on the bus. + *

    + * Depending on the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, the root node is placed ahead (e.g. + * {@link yfiles.tree.ChildPlacement#HORIZONTAL_DOWNWARD}: left) of the combined bounding box of all subtrees without labels. The + * bus leaves directly from the root node. + *

    + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + */ + LEADING_ON_BUS + } + export enum RoutingStyle{ + /** + * Routing style specifier which defines that edge paths are routed orthogonally with the bends located in the channel + * between the root node and the child nodes. + * @see yfiles.tree.DefaultNodePlacer#routingStyle + */ + FORK, + /** + * Routing style specifier which defines that edge paths are routed orthogonally with just one bend. + *

    + * Edges will leave the root node at its sides and bend exactly above the according child node. If the child node is placed + * directly below the root node, the edge will bend inside of the root node and leave it at the bottom. + *

    + * @see yfiles.tree.DefaultNodePlacer#routingStyle + */ + FORK_AT_ROOT, + /** + * Routing style specifier which defines that edge paths are routed with a straight segment to the center of the child + * nodes. + * @see yfiles.tree.DefaultNodePlacer#routingStyle + */ + STRAIGHT, + /** + * Routing style constant which defines that edge paths are routed with a straight segment to the connector of the {@link yfiles.tree.SubtreeShape} + * of the child nodes. + * @see yfiles.tree.DefaultNodePlacer#routingStyle + */ + POLYLINE + } + export enum PortAssignmentMode{ + /** + * A port assignment specifier that defines that + * {@link yfiles.layout.PortConstraint}s are considered. Ports are placed using the following rules: + *
      + *
    • edges without a {@link yfiles.layout.PortConstraint} are anchored at the center of the node
    • + *
    • edges with a weak {@link yfiles.layout.PortConstraint} are anchored at the center of their specified side
    • + *
    • edges with a strong {@link yfiles.layout.PortConstraint} are anchored at their initial coordinates
    • + *
    + *

    + * If edges with + * {@link yfiles.layout.PortConstraint}s are grouped, all edges in the same group will use the port coordinates of the first edge + * in the group. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + */ + PORT_CONSTRAINT, + /** + * A port assignment specifier which defines that edges are distributed evenly at the northern side of their nodes. + *

    + * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the + * distribution. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + */ + DISTRIBUTED_NORTH, + /** + * A port assignment specifier which defines that edges are distributed evenly at the southern side of their nodes. + *

    + * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the + * distribution. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + */ + DISTRIBUTED_SOUTH, + /** + * A port assignment specifier which defines that edges are distributed evenly at the eastern side of their nodes. + *

    + * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the + * distribution. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + */ + DISTRIBUTED_EAST, + /** + * A port assignment specifier which defines that edges are distributed evenly at the western side of their nodes. + *

    + * Grouped edges will use the same port coordinate and will be considered as a single edge when calculating the + * distribution. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + */ + DISTRIBUTED_WEST, + /** + * A port assignment specifier which defines that all ports are reset to the center of their nodes. + */ + NONE + } + export enum ConnectorDirection{ + /** + * A direction constant that describes that the last connector segment points up. The edge from the parent will connect to + * the north of the {@link yfiles.tree.SubtreeShape}. + * @see yfiles.tree.SubtreeShape#connectorDirection + */ + NORTH, + /** + * A direction constant that describes that the last connector segment points to the right. The edge from the parent will + * connect to the east of the {@link yfiles.tree.SubtreeShape}. + * @see yfiles.tree.SubtreeShape#connectorDirection + */ + EAST, + /** + * A direction constant that describes that the last connector segment points down. The edge from the parent will connect + * to the south of the {@link yfiles.tree.SubtreeShape}. + * @see yfiles.tree.SubtreeShape#connectorDirection + */ + SOUTH, + /** + * A direction constant that describes that the last connector segment points to the left. The edge from the parent will + * connect to the west of the {@link yfiles.tree.SubtreeShape}. + * @see yfiles.tree.SubtreeShape#connectorDirection + */ + WEST + } + export enum BorderLineSide{ + /** + * Side constant that defines the index of the northern border line. + * @see yfiles.tree.SubtreeShape#getBorderLine + */ + NORTH, + /** + * Side constant that defines the index of the eastern border line. + * @see yfiles.tree.SubtreeShape#getBorderLine + */ + EAST, + /** + * Side constant that defines the index of the southern border line. + * @see yfiles.tree.SubtreeShape#getBorderLine + */ + SOUTH, + /** + * Side constant that defines the index of the western border line. + * @see yfiles.tree.SubtreeShape#getBorderLine + */ + WEST + } + export enum LayeredRoutingStyle{ + /** + * Routing style specifier which defines that edges consist of one straight segment. + * @see yfiles.tree.LayeredNodePlacer#routingStyle + */ + STRAIGHT, + /** + * Routing style specifier which defines that edges are routed in an orthogonal, bus-like fashion. + * @see yfiles.tree.LayeredNodePlacer#routingStyle + */ + ORTHOGONAL + } + export enum MultiParentRoutingStyle{ + /** + * Routing style for routing non-shared edge segments in a polyline fashion. + *

    + * The edges connected to a multi-parent structure will share their paths until shortly above/below the multi-parent nodes. + * This style only applies to the part of the edges where they split to connect to different multi-parents. + *

    + * @see yfiles.tree.MultiParentDescriptor#edgeStyle + */ + POLYLINE, + /** + * Routing style for routing non-shared edge segments in an orthogonal fashion. + *

    + * The edges connected to a multi-parent structure will share their paths until shortly above/below the multi-parent nodes. + * This style only applies to the part of the edges where they split to connect to different multi-parents. + *

    + * @see yfiles.tree.MultiParentDescriptor#edgeStyle + */ + ORTHOGONAL, + /** + * Routing style for routing non-shared edge segments straight. This style will route the part of the edges that doesn't + * share the same path directly from the center of the multi-parent to the common point of the edges in the multi-parent + * structure. + *

    + * The edges connected to a multi-parent structure will share their paths until shortly above/below the multi-parent nodes. + * This style only applies to the part of the edges where they split to connect to different multi-parents. + *

    + * @see yfiles.tree.MultiParentDescriptor#edgeStyle + */ + STRAIGHT + } + export enum ParentConnectorDirection{ + /** + * Direction specifier which indicates that no connector should be calculated. + * @see yfiles.tree.INodePlacer#placeSubtree + */ + NONE, + /** + * Direction specifier which indicates that any direction can be used for the connector to the parent node. + * @see yfiles.tree.INodePlacer#placeSubtree + */ + ANY, + /** + * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended + * by a segment that goes north. + * @see yfiles.tree.INodePlacer#placeSubtree + */ + NORTH, + /** + * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended + * by a segment that goes east. + * @see yfiles.tree.INodePlacer#placeSubtree + */ + EAST, + /** + * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended + * by a segment that goes south. + * @see yfiles.tree.INodePlacer#placeSubtree + */ + SOUTH, + /** + * Direction specifier which indicates that the connector to the parent node should end in a segment that can be extended + * by a segment that goes west. + * @see yfiles.tree.INodePlacer#placeSubtree + */ + WEST + } + export enum PortStyle{ + /** + * A constant defining that ports are placed at the center of the nodes. + *

    + * This constant uses (0,0) as port offset. + *

    + * @see yfiles.tree.ClassicTreeLayout#portStyle + */ + NODE_CENTER, + /** + * A constant defining that ports are placed at the center of the border of the nodes. + * @see yfiles.tree.ClassicTreeLayout#portStyle + */ + BORDER_CENTER, + /** + * A constant defining that ports are evenly distributed along the border of the nodes. + * @see yfiles.tree.ClassicTreeLayout#portStyle + */ + BORDER_DISTRIBUTED, + /** + * A constant defining that ports are assigned based on given {@link yfiles.layout.PortConstraint port constraints}. + * @see yfiles.tree.ClassicTreeLayout#portStyle + */ + PORT_CONSTRAINTS_AWARE + } + export enum EdgeRoutingStyle{ + /** + * A constant for routing the edges as straight-line segments. + * @see yfiles.tree.ClassicTreeLayout#edgeRoutingStyle + */ + PLAIN, + /** + * A constant for routing the edges orthogonally in a bus-like fashion. + * @see yfiles.tree.ClassicTreeLayout#edgeRoutingStyle + */ + ORTHOGONAL + } + export enum LeafPlacement{ + /** + * A policy for placing the leaf nodes in a stack-like fashion with balanced stack heights. + *

    + * In this context, a stack-like fashion means that leaf nodes that connect to the same parent node are placed one upon the + * other, resulting in horizontally compact layouts. + *

    + *

    + * This policy tries to balance stack heights, i.e., for each subtree that consists only of leaf nodes, {@link yfiles.tree.LeafPlacement#LEAVES_STACKED_RIGHT} + * or {@link yfiles.tree.LeafPlacement#LEAVES_STACKED_LEFT_AND_RIGHT} will be used depending on the number of leaves in the + * subtree. + *

    + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + */ + LEAVES_STACKED, + /** + * A policy for placing the leaf nodes in a stack-like fashion using a single stack left. + *

    + * In this context, a stack-like fashion means that leaf nodes that connect to the same root node are placed one upon the + * other, resulting in horizontally compact layouts. + *

    + *

    + * This policy uses a single stack that lies to the left relative to the center of the parent node. + *

    + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + */ + LEAVES_STACKED_LEFT, + /** + * A policy for placing the leaf nodes in a stack-like fashion using a single stack right. + *

    + * In this context, a stack-like fashion means that leaf nodes that connect to the same root node are placed one upon the + * other, resulting in horizontally compact layouts. + *

    + *

    + * This policy uses a single stack that lies to the right relative to the center of the parent node. + *

    + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + */ + LEAVES_STACKED_RIGHT, + /** + * A policy for placing the leaf nodes in a stack-like fashion using two stacks. + *

    + * In this context, a stack-like fashion means that leaf nodes that connect to the same root node are placed one upon the + * other, resulting in horizontally compact layouts. + *

    + *

    + * This policy distributes leaf nodes among two stacks, one to the left and one to the right relative to the center of the + * parent node. + *

    + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + */ + LEAVES_STACKED_LEFT_AND_RIGHT, + /** + * A policy for placing the leaf nodes in a Dendrogram-like fashion. + *

    + * According to this policy, all leaf nodes are placed in one layer (i.e. all leaves are placed on one horizontal line in a + * top-to-bottom or in a bottom-to-top layout). + *

    + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + */ + ALL_LEAVES_ON_SAME_LAYER, + /** + * A policy for placing the leaf nodes with the same parent in the same layer. + *

    + * For example, siblings are being placed on a horizontal line in a top-to-bottom or in a bottom-to-top layout. + *

    + *

    + * This policy produces vertically compact layouts. + *

    + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + */ + SIBLINGS_ON_SAME_LAYER + } + /** + * This {@link yfiles.tree.INodePlacer} places the subtrees such that the overall aspect ratio of the arranged subtree will be + * close to a preferred aspect ratio. + *

    + * Layout Style The aspect ratio describes the relation between width and height of the subtree. To achieve the desired aspect ratio, + * this {@link yfiles.tree.INodePlacer} divides the child {@link yfiles.tree.SubtreeShape}s into as much rows as needed. The edges are + * either routed along the rows or along the columns. {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[70,70],[140,70],[210,70],[280,70],[70,140],[140,140],[210,140],[280,140],[70,210],[140,210],[210,210],[280,210],[70,280],[140,280],[210,280],[280,280]],"e":[[0,1,[50,15,50,85]],[0,2,[120,15,120,85]],[0,3,[190,15,190,85]],[0,4,[260,15,260,85]],[0,5,[50,15,50,155]],[0,6,[120,15,120,155]],[0,7,[190,15,190,155]],[0,8,[260,15,260,155]],[0,9,[50,15,50,225]],[0,10,[120,15,120,225]],[0,11,[190,15,190,225]],[0,12,[260,15,260,225]],[0,13,[50,15,50,295]],[0,14,[120,15,120,295]],[0,15,[190,15,190,295]],[0,16,[260,15,260,295]]],"vp":[0.0,0.0,310.0,310.0]}} + *

    + *

    + * Aspect ratio 1 + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[70,70],[140,70],[210,70],[70,140],[140,140],[210,140],[70,210],[140,210],[210,210],[70,280],[140,280],[210,280],[70,350],[140,350],[210,350],[70,420]],"e":[[0,1,[50,15,50,85]],[0,2,[120,15,120,85]],[0,3,[190,15,190,85]],[0,4,[50,15,50,155]],[0,5,[120,15,120,155]],[0,6,[190,15,190,155]],[0,7,[50,15,50,225]],[0,8,[120,15,120,225]],[0,9,[190,15,190,225]],[0,10,[50,15,50,295]],[0,11,[120,15,120,295]],[0,12,[190,15,190,295]],[0,13,[50,15,50,365]],[0,14,[120,15,120,365]],[0,15,[190,15,190,365]],[0,16,[50,15,50,435]]],"vp":[0.0,0.0,240.0,450.0]}} + *

    + *

    + * Aspect ratio 0.5 + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[70,70],[140,70],[210,70],[280,70],[350,70],[420,70],[490,70],[560,70],[70,140],[140,140],[210,140],[280,140],[350,140],[420,140],[490,140],[560,140]],"e":[[0,1,[50,15,50,85]],[0,2,[120,15,120,85]],[0,3,[190,15,190,85]],[0,4,[260,15,260,85]],[0,5,[330,15,330,85]],[0,6,[400,15,400,85]],[0,7,[470,15,470,85]],[0,8,[540,15,540,85]],[0,9,[50,15,50,155]],[0,10,[120,15,120,155]],[0,11,[190,15,190,155]],[0,12,[260,15,260,155]],[0,13,[330,15,330,155]],[0,14,[400,15,400,155]],[0,15,[470,15,470,155]],[0,16,[540,15,540,155]]],"vp":[0.0,0.0,590.0,170.0]}} + *

    + *

    + * Aspect ratio 2 + *

    + * @class + * @extends {yfiles.tree.NodePlacerBase} + * @implements {yfiles.tree.IFromSketchNodePlacer} + */ + export interface AspectRatioNodePlacer extends yfiles.tree.NodePlacerBase,yfiles.tree.IFromSketchNodePlacer{} + export class AspectRatioNodePlacer { + /** + * Creates a new instance of {@link yfiles.tree.AspectRatioNodePlacer} with default settings. + */ + constructor(); + /** + * Creates an {@link yfiles.collections.IComparer. edge comparator} which takes the initial coordinates of the nodes into account. + *

    + * This {@link yfiles.collections.IComparer.} defines the order of the outgoing edges of a node before the actual placement of the node's subtree is calculated. + * It also considers whether or not the rows are placed {@link yfiles.tree.AspectRatioNodePlacer#horizontal horiontally}. + *

    + * @returns the {@link } for the edges + */ + createFromSketchComparer():yfiles.collections.IComparer; + /** + * Gets or sets whether child nodes are distributed in horizontal rows or vertical columns. + * @type {boolean} + */ + horizontal:boolean; + /** + * Gets or sets the vertical distance between the {@link yfiles.tree.SubtreeShape}s. + *

    + * The nodes will be placed below each other, keeping this distance. + *

    + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + verticalDistance:number; + /** + * Gets or sets the horizontal distance between the {@link yfiles.tree.SubtreeShape}s. + *

    + * The nodes will be placed next to each other, keeping this distance. + *

    + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + horizontalDistance:number; + /** + * Gets or sets the preferred aspect ratio (width/height) for the subtrees. + *

    + * This ratio determines among how many rows/columns the nodes will be distributed. + *

    + *

    + * The aspect ratio needs to be positive. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified aspect ratio is 0 or negative + * @type {number} + */ + aspectRatio:number; + /** + * Gets or sets how rows/columns are aligned with each other. + * @throws {Stubs.Exceptions.ArgumentError} if an unknown fill style is specified + * @type {yfiles.tree.FillStyle} + */ + fillStyle:yfiles.tree.FillStyle; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.AspectRatioTreeLayout} arranges tree graphs in a compact fashion. + *

    + * Layout Style This layout algorithm tries to generate compact tree layouts with a certain preferred aspect ratio. {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[40,740],[360,740],[480,810],[400,810],[240,810],[80,810],[160,810],[560,810],[200,880],[200,940],[200,1000],[200,1060],[200,1120],[120,880],[120,940],[120,1000],[120,1060],[120,1120],[280,880],[280,940],[320,880],[320,940],[600,880],[600,940],[600,1000],[520,880],[520,940],[520,1000],[440,880],[440,940],[440,1000],[440,1060],[440,1120],[40,70],[390,70],[80,450],[80,640],[200,140],[200,450],[80,140],[150,680],[190,680],[240,210],[240,270],[240,330],[120,520],[120,580],[160,520],[160,580],[270,490],[270,550],[310,490],[310,550],[350,490],[350,550],[120,210],[120,270],[120,330],[120,390],[160,210],[160,270],[160,330],[430,610],[580,510],[430,510],[430,140],[510,140],[590,140],[470,610],[650,550],[500,550],[540,550],[630,210],[630,270],[630,330],[470,210],[470,270],[470,330],[470,390],[470,450],[550,210],[550,270],[550,330],[550,390],[550,450]],"e":[[0,1,-10,0,0,0,[5,50,5,720,55,720]],[0,2,-10,0,0,0,[5,50,5,720,375,720]],[2,3,-10,0,0,0,[365,790,495,790]],[2,4,-10,0,0,0,[365,790,415,790]],[1,5,-10,0,0,0,[45,790,255,790]],[1,6,-10,0,0,0,[45,790,95,790]],[1,7,-10,0,0,0,[45,790,175,790]],[2,8,-10,0,0,0,[365,790,575,790]],[7,9,-10,0,0,0,[165,860,215,860]],[7,10,-10,0,0,0,[165,860,165,920,215,920]],[7,11,-10,0,0,0,[165,860,165,980,215,980]],[7,12,-10,0,0,0,[165,860,165,1040,215,1040]],[7,13,-10,0,0,0,[165,860,165,1100,215,1100]],[6,14,-10,0,0,0,[85,860,135,860]],[6,15,-10,0,0,0,[85,860,85,920,135,920]],[6,16,-10,0,0,0,[85,860,85,980,135,980]],[6,17,-10,0,0,0,[85,860,85,1040,135,1040]],[6,18,-10,0,0,0,[85,860,85,1100,135,1100]],[5,19,-10,0,0,0,[245,860,295,860]],[5,20,-10,0,0,0,[245,860,245,920,295,920]],[5,21,-10,0,0,0,[245,860,335,860]],[5,22,-10,0,0,0,[245,860,245,920,335,920]],[8,23,-10,0,0,0,[565,860,615,860]],[8,24,-10,0,0,0,[565,860,565,920,615,920]],[8,25,-10,0,0,0,[565,860,565,980,615,980]],[3,26,-10,0,0,0,[485,860,535,860]],[3,27,-10,0,0,0,[485,860,485,920,535,920]],[3,28,-10,0,0,0,[485,860,485,980,535,980]],[4,29,-10,0,0,0,[405,860,455,860]],[4,30,-10,0,0,0,[405,860,405,920,455,920]],[4,31,-10,0,0,0,[405,860,405,980,455,980]],[4,32,-10,0,0,0,[405,860,405,1040,455,1040]],[4,33,-10,0,0,0,[405,860,405,1100,455,1100]],[0,34,-10,0,0,0,[5,50,55,50]],[0,35,-10,0,0,0,[5,50,405,50]],[34,36,-10,0,0,0,[45,120,45,430,95,430]],[34,37,-10,0,0,0,[45,120,45,620,95,620]],[34,38,-10,0,0,0,[45,120,215,120]],[34,39,-10,0,0,0,[45,120,45,430,215,430]],[34,40,-10,0,0,0,[45,120,95,120]],[37,41,0,-10,0,0,[130,645,130,660,165,660]],[37,42,0,-10,0,0,[130,645,130,660,205,660]],[38,43,-10,0,0,0,[205,190,255,190]],[38,44,-10,0,0,0,[205,190,205,250,255,250]],[38,45,-10,0,0,0,[205,190,205,310,255,310]],[36,46,-10,0,0,0,[85,500,135,500]],[36,47,-10,0,0,0,[85,500,85,560,135,560]],[36,48,-10,0,0,0,[85,500,175,500]],[36,49,-10,0,0,0,[85,500,85,560,175,560]],[39,50,0,-10,0,0,[250,455,250,470,285,470]],[39,51,0,-10,0,0,[250,455,250,530,285,530]],[39,52,0,-10,0,0,[250,455,250,470,325,470]],[39,53,0,-10,0,0,[250,455,250,530,325,530]],[39,54,0,-10,0,0,[250,455,250,470,365,470]],[39,55,0,-10,0,0,[250,455,250,530,365,530]],[40,56,-10,0,0,0,[85,190,135,190]],[40,57,-10,0,0,0,[85,190,85,250,135,250]],[40,58,-10,0,0,0,[85,190,85,310,135,310]],[40,59,-10,0,0,0,[85,190,85,370,135,370]],[40,60,-10,0,0,0,[85,190,175,190]],[40,61,-10,0,0,0,[85,190,85,250,175,250]],[40,62,-10,0,0,0,[85,190,85,310,175,310]],[35,63,-10,0,0,0,[395,120,395,590,445,590]],[35,64,-10,0,0,0,[395,120,395,490,595,490]],[35,65,-10,0,0,0,[395,120,395,490,445,490]],[35,66,-10,0,0,0,[395,120,445,120]],[35,67,-10,0,0,0,[395,120,525,120]],[35,68,-10,0,0,0,[395,120,605,120]],[35,69,-10,0,0,0,[395,120,395,590,485,590]],[64,70,0,-10,0,0,[630,515,630,530,665,530]],[65,71,0,-10,0,0,[480,515,480,530,515,530]],[65,72,0,-10,0,0,[480,515,480,530,555,530]],[68,73,-10,0,0,0,[595,190,645,190]],[68,74,-10,0,0,0,[595,190,595,250,645,250]],[68,75,-10,0,0,0,[595,190,595,310,645,310]],[66,76,-10,0,0,0,[435,190,485,190]],[66,77,-10,0,0,0,[435,190,435,250,485,250]],[66,78,-10,0,0,0,[435,190,435,310,485,310]],[66,79,-10,0,0,0,[435,190,435,370,485,370]],[66,80,-10,0,0,0,[435,190,435,430,485,430]],[67,81,-10,0,0,0,[515,190,565,190]],[67,82,-10,0,0,0,[515,190,515,250,565,250]],[67,83,-10,0,0,0,[515,190,515,310,565,310]],[67,84,-10,0,0,0,[515,190,515,370,565,370]],[67,85,-10,0,0,0,[515,190,515,430,565,430]]],"vp":[0.0,0.0,680.0,1150.0]}} + *

    + *

    + * Example layout with an aspect ratio of 0.5 + *

    + *

    + * Concept + *

    + *

    + * The layout algorithm starts from the root and recursively assigns coordinates to all tree nodes. In this manner, leaf + * nodes will be placed first, while each parent node is placed centered above its child nodes. + *

    + *

    + * Features + *

    + *

    + * The aspect ratio of each subtree can be specified individually. A {@link yfiles.algorithms.IDataProvider} registered with {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY} + * returns the aspect ratio for each local root node. + *

    + *

    + * A custom node can be defined as root of the tree using a {@link yfiles.algorithms.IDataProvider} registered with the graph with + * key {@link yfiles.tree.AspectRatioTreeLayout#SELECTED_ROOT_DP_KEY}. + *

    + * @class + * @extends {yfiles.layout.MultiStageLayout} + */ + export interface AspectRatioTreeLayout extends yfiles.layout.MultiStageLayout{} + export class AspectRatioTreeLayout { + /** + * Creates a new {@link yfiles.tree.AspectRatioTreeLayout} instance with default settings. + */ + constructor(); + /** + * Adds bends to the given {@link yfiles.layout.IEdgeLayout}. + *

    + * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} for each edge, after the nodes are placed, to + * route the path of the edges. It may be overridden to apply a custom routing style. + *

    + * @param edgeLayout the layout of the edge that is routed + * @param localRoot the local root of the subtree + * @param child the child connected to the local root with the given edge + * @param rootPlacement the placement specifier of the local root + * @param routingPolicy the direction specifier for the routing + * @protected + */ + createBends(edgeLayout:yfiles.layout.IEdgeLayout,localRoot:yfiles.algorithms.Node,child:yfiles.algorithms.Node,rootPlacement:yfiles.tree.RootPlacement,routingPolicy:yfiles.tree.SubtreeArrangement):void; + /** + * Retrieves the aspect ratio for the subtree that is rooted at the given node. + *

    + * If there is an individual aspect ratio for the subtree provided by a {@link yfiles.algorithms.IDataProvider} registered with key + * {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY}, that ratio will be returned. Otherwise, the {@link yfiles.tree.AspectRatioTreeLayout#aspectRatio default aspect ratio} + * will be returned. + *

    + *

    + * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} before a subtree is arranged. It may be + * overridden to use another approach to define the aspect ratio for subtrees. + *

    + * @param localRoot the root node of the subtree + * @returns the aspect ratio of the subtree rooted at the local root node + * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY + * @see yfiles.tree.AspectRatioTreeLayout#aspectRatio + * @protected + */ + getAspectRatio(localRoot:yfiles.algorithms.Node):number; + /** + * Retrieves the root placement for the subtree that is rooted at the given node. + *

    + * Either an individual root placement for the subtree (defined via a {@link yfiles.algorithms.IDataProvider} registered with + * {@link yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY}), or if there is none, the {@link yfiles.tree.AspectRatioTreeLayout#rootPlacement default root placement} is returned. + *

    + *

    + * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} after a subtree is arranged to align the + * local root node. It may be overridden to use another approach to define the root placement for a subtree. + *

    + * @param localRoot the root of the subtree + * @returns the root placement of the subtree + * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY + * @see yfiles.tree.AspectRatioTreeLayout#rootPlacement + * @protected + */ + getRootPlacement(localRoot:Object):yfiles.tree.RootPlacement; + /** + * Retrieves the routing for the subtree that is rooted at the given node. + *

    + * Either an individual routing for the subtree (defined via a {@link yfiles.algorithms.IDataProvider} registered with + * {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY}), or if there is none, the {@link yfiles.tree.AspectRatioTreeLayout#subtreeArrangement default routing} is returned. + *

    + *

    + * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} to determine the direction of the subtrees. + * It may be overridden to use another approach to define the routing for a subtree. + *

    + * @param localRoot the root of the subtree + * @returns the routing policy for the subtree + * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY + * @see yfiles.tree.AspectRatioTreeLayout#subtreeArrangement + * @protected + */ + getSubtreeArrangement(localRoot:Object):yfiles.tree.SubtreeArrangement; + /** + * Retrieves all children of the given local root. + *

    + * This method is called by {@link yfiles.tree.AspectRatioTreeLayout#applyLayoutCore} to arrange the subtrees below the local + * root. + *

    + * @param localRoot the root of a subtree + * @returns all successors of the given node + * @protected + */ + getSuccessors(localRoot:yfiles.algorithms.Node):yfiles.algorithms.INodeCursor; + /** + * Data provider key for specifying a target aspect ratio for each subtree + *

    + * The aspect ratio needs to be greater than 0. + *

    + *
      + *
    • aspect ratio 1: width and height of the layout should be the same
    • + *
    • aspect ratio between 0 and 1: the height of the layout should be greater than its width
    • + *
    • aspect ratio greater than 1: the width of the layout should be greater than its height
    • + *
    + *

    + * If no specific ratio is defined for a subtree, the layout algorithm falls back to the default {@link yfiles.tree.AspectRatioTreeLayout#aspectRatio aspect ratio}. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static SUBTREE_ASPECT_RATIO_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for specifying the placement of each subtree root + *

    + * If no root placement is specified for one of the subtree roots, the default {@link yfiles.tree.AspectRatioTreeLayout#rootPlacement root placement} will be used. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static ROOT_PLACEMENT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for specifying the routing direction for each subtree root + *

    + * The children in a subtree are arranged either horizontally or vertically. The edges are routed to the top of the child + * nodes or at the side, respectively. Directions depend on the {@link yfiles.layout.MultiStageLayout#layoutOrientation layout orientation} and refer to {@link yfiles.layout.LayoutOrientation#TOP_TO_BOTTOM} + * for this description. + *

    + *

    + * If no specific routing policy is specified for a subtree root, the layout algorithm uses the default {@link yfiles.tree.AspectRatioTreeLayout#subtreeArrangement routing direction}. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static SUBTREE_ROUTING_POLICY_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for marking the node that will be used as root node of the tree + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * The input graph this algorithm is handling. + * @protected + * @type {yfiles.layout.LayoutGraph} + */ + graph:yfiles.layout.LayoutGraph; + /** + * Gets or sets the horizontal distance between adjacent nodes. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + horizontalDistance:number; + /** + * Gets or sets the vertical distance between adjacent nodes. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + verticalDistance:number; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. + * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled + * @see yfiles.layout.MultiStageLayout#componentLayout + * @see yfiles.layout.ComponentLayout + * @type {boolean} + */ + componentLayoutEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for hiding group nodes is activated. + * @see yfiles.layout.MultiStageLayout#hideGroupsStageEnabled + * @see yfiles.layout.MultiStageLayout#hideGroupsStage + * @see yfiles.layout.HideGroupsStage + * @type {boolean} + */ + hideGroupsStageEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter + * @see yfiles.router.ParallelEdgeRouter + * @type {boolean} + */ + parallelEdgeRouterEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. + * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled + * @see yfiles.layout.MultiStageLayout#selfLoopRouter + * @see yfiles.layout.SelfLoopRouter + * @type {boolean} + */ + selfLoopRouterEnabled:boolean; + /** + * Gets or sets the {@link yfiles.collections.IComparer.} that will be used for sorting the {@link yfiles.algorithms.Node#sortOutEdges outgoing edges} of each local root in the tree before they are being + * arranged. + * @type {yfiles.collections.IComparer.} + */ + comparer:yfiles.collections.IComparer; + /** + * Gets or sets the default aspect ratio for this {@link yfiles.tree.AspectRatioTreeLayout}. + *

    + * This aspect ratio is used for all subtrees for which there is no specific aspect ratio defined in a {@link yfiles.algorithms.IDataProvider} + * registered with {@link yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY}. + *

    + *

    + * The aspect ratio needs to have a positive value. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified aspect ratio is 0 or negative + * @type {number} + */ + aspectRatio:number; + /** + * Gets or sets the desired placement of the tree's root node. + * @throws {Stubs.Exceptions.ArgumentError} if an unknown placement specifiers is set + * @type {yfiles.tree.RootPlacement} + */ + rootPlacement:yfiles.tree.RootPlacement; + /** + * Gets or sets how the children of a local root are arranged and how the edges between them are routed. + * @throws {Stubs.Exceptions.ArgumentError} if the specified routing policy is unknown + * @type {yfiles.tree.SubtreeArrangement} + */ + subtreeArrangement:yfiles.tree.SubtreeArrangement; + /** + * Gets or sets the preferred distance between any two bends of an edge. + *

    + * Additionally, the preferred bend distance governs the distance between the first and last edges and the corresponding + * ports. + *

    + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + bendDistance:number; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.AssistantNodePlacer} places nodes that are marked as assistants left and right of their parents and all + * other nodes below the assistant nodes. + *

    + * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[75,0],[100,171],[50,171],[0,171],[150,171],[110,50,1],[40,100,1],[40,50,1]],"e":[[0,1,[90,150.5,115,150.5]],[0,2,[90,150.5,65,150.5]],[0,3,[90,150.5,15,150.5]],[0,4,[90,150.5,165,150.5]],[0,5,[90,65]],[0,6,[90,115]],[0,7,[90,65]]],"vp":[0.0,0.0,180.0,201.0]}} + *

    + *

    + * Assistants are marked + *

    + *

    + * Concept This {@link yfiles.tree.INodePlacer} delegates the placement of all assistant nodes to an instance of + * {@link yfiles.tree.LeftRightNodePlacer}. The non-assistant nodes are handled by another {@link yfiles.tree.AssistantNodePlacer#childNodePlacer node placer}. To be able to do this, {@link yfiles.tree.AssistantNodePlacer} + * uses a {@link yfiles.tree.IProcessor} which prepares the graph for node placing. + *

    + *

    + * A {@link yfiles.algorithms.IDataProvider} that is registered using {@link yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY} returns + * true for assistant nodes and false for all other nodes. + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface AssistantNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class AssistantNodePlacer { + /** + * Creates a new {@link yfiles.tree.AssistantNodePlacer} instance that uses the transformation defined by the given matrix. + * @param modificationMatrix the transformation matrix + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); + /** + * Creates a new {@link yfiles.tree.AssistantNodePlacer} instance with default settings. + */ + constructor(); + /** + * Creates a {@link yfiles.collections.IComparer.} that compares outgoing edges connecting to assistant nodes and edges connecting to non-assistant nodes + * separately. + * @param assistantComparer the {@link } for edges connecting to assistant nodes + * @param childComparer the {@link } for edges connecting to non-assistant nodes + * @returns a {@link } that compares edges to assistant nodes separately from edges to non-assistant nodes + * @static + */ + static createCompoundComparer(assistantComparer:yfiles.collections.IComparer,childComparer:yfiles.collections.IComparer):yfiles.collections.IComparer; + /** + * Data provider key for marking which nodes are placed as assistants + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static ASSISTANT_NODE_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Gets or sets the spacing between subtrees for the delegate {@link yfiles.tree.INodePlacer}. + *

    + * The spacing needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given spacing is negative + * @type {number} + */ + spacing:number; + /** + * Gets or sets the {@link yfiles.tree.INodePlacer} instance that places the non-assistant children. + *

    + * These non-assistant child nodes will be placed below the assistant child nodes and are arranged by the given + * {@link yfiles.tree.INodePlacer}. Non-assistant child nodes are the ones that are not marked in the {@link yfiles.algorithms.IDataProvider} + * registered with {@link yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY}. + *

    + * @see yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY + * @type {yfiles.tree.INodePlacer} + */ + childNodePlacer:yfiles.tree.INodePlacer; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.BusNodePlacer} creates a bus to which all child nodes and the local root node are connected. + *

    + * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[40,0],[140,0],[190,0],[50,70],[0,70],[100,70],[150,70],[90,0,1]],"e":[[7,0,[105,50,55,50]],[7,1,[105,50,155,50]],[7,2,[105,50,205,50]],[7,3,[105,50,65,50]],[7,4,[105,50,15,50]],[7,5,[105,50,115,50]],[7,6,[105,50,165,50]]],"vp":[0.0,0.0,220.0,100.0]}} + *

    + *

    + * The root node is marked + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface BusNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class BusNodePlacer { + /** + * Creates a new {@link yfiles.tree.BusNodePlacer} instance that uses the transformation defined by the given matrix. + * @param modificationMatrix the transformation matrix + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); + /** + * Creates a new instance of {@link yfiles.tree.BusNodePlacer} with default settings. + */ + constructor(); + static $class:yfiles.lang.Class; + } + /** + * This layout algorithm arranges graphs with a tree structure. + *

    + * Layout Style {@link yfiles.tree.ClassicTreeLayout} is designed to arrange directed and undirected trees that have a unique root node. All + * children are placed below their parent in relation to the main layout direction. The edges of the graph are routed as + * straight-line segments or in an orthogonal bus-like fashion. + *

    + *

    + * Tree layout algorithms are commonly used for visualizing relational data and for producing diagrams of high quality that + * are able to reveal possible hierarchic properties of the graph. More precisely, they find applications in dataflow + * analysis, software engineering, bioinformatics and business administration. + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":1},"n":[[215.62,70],[365.62,0],[706.25,210],[25,140],[331.25,140],[100,280],[512.5,210],[325,280],[762.5,280],[200,210],[150,350],[400,350],[825,350],[350,350],[25,210],[900,420],[700,420],[100,350],[575,280],[575,350],[600,420],[200,280],[150,420],[25,280],[550,420],[300,420],[850,420],[800,420],[400,420],[200,350],[350,420],[50,350],[500,420],[100,420],[750,420],[450,420],[0,420],[50,420],[200,420],[650,280],[250,420],[650,420],[650,350]],"e":[[1,0,0,15,0,-15,[230.62,50]],[1,2,0,15,0,-15,[721.25,50]],[1,3,0,15,0,-15,[40,50]],[0,4,0,15,0,-15,[346.25,120]],[0,5,0,15,0,-15,[115,120]],[4,6,0,15,0,-15,[527.5,190]],[4,7,0,15,0,-15,[340,190]],[2,8,0,15,0,-15,[777.5,260]],[4,9,0,15,0,-15,[215,190]],[4,10,0,15,0,-15,[165,190]],[7,11,0,15,0,-15,[415,330]],[8,12,0,15,0,-15,[840,330]],[7,13,0,15,0,-15,[365,330]],[3,14,0,15,0,-15],[12,15,0,15,0,-15,[915,400]],[8,16,0,15,0,-15,[715,330]],[5,17,0,15,0,-15],[6,18,0,15,0,-15,[590,260]],[18,19,0,15,0,-15],[19,20,0,15,0,-15,[615,400]],[9,21,0,15,0,-15],[10,22,0,15,0,-15],[14,23,0,15,0,-15],[19,24,0,15,0,-15,[565,400]],[7,25,0,15,0,-15,[315,330]],[12,26,0,15,0,-15,[865,400]],[12,27,0,15,0,-15,[815,400]],[11,28,0,15,0,-15],[21,29,0,15,0,-15],[13,30,0,15,0,-15],[23,31,0,15,0,-15,[65,330]],[6,32,0,15,0,-15,[515,260]],[17,33,0,15,0,-15],[12,34,0,15,0,-15,[765,400]],[6,35,0,15,0,-15,[465,260]],[23,36,0,15,0,-15,[15,330]],[31,37,0,15,0,-15],[29,38,0,15,0,-15],[2,39,0,15,0,-15,[665,260]],[7,40,0,15,0,-15,[265,330]],[39,42,0,15,0,-15],[42,41,0,15,0,-15]],"vp":[0.0,0.0,930.0,450.0]}} A Dendrogram {@graph {"ann":{"s":[30,30],"d":1},"n":[[983.12,0],[495,85],[495,170],[151.25,170],[495,240],[42.5,255],[85,325],[0,325],[520,310],[470,310],[520,380],[135,395],[470,380],[85,395],[520,450],[35,395],[185,240,265,270,2],[260,255],[320,325],[405,395],[320,395],[370,465],[320,465],[235,395],[270,465],[200,325],[570,155,560,510,2],[670,170],[1060,240],[670,240],[1060,310],[670,325],[585,240],[1085,380],[670,395],[670,465],[620,325],[1035,380],[720,310,295,340,2],[810,325],[920,395],[835,395],[920,465],[785,395],[835,465],[970,535],[920,535],[735,395],[735,465],[870,535],[920,605],[1150,70,440,495,2],[1471.25,85],[1545,155],[1397.5,155],[1510,240],[1435,240],[1460,310],[1360,240],[1460,380],[1485,450],[1410,310],[1360,310],[1435,450],[1510,310],[1360,380],[1435,520],[1165,225,175,230,2],[1230,240],[1280,310],[1230,310],[1180,310],[1265,380,60,60,2],[1280,395]],"e":[[0,1,[998.12,50,510,50]],[1,2],[1,3,[510,135,166.25,135]],[2,4],[3,5,[166.25,220,57.5,220]],[5,6,[57.5,305,100,305]],[5,7,[57.5,305,15,305]],[4,8,[510,290,535,290]],[4,9,[510,290,485,290]],[8,10],[6,11,[100,375,150,375]],[9,12],[6,13],[10,14],[6,15,[100,375,50,375]],[3,17,[166.25,220,275,220]],[17,18,[275,305,335,305]],[18,19,[335,375,420,375]],[18,20],[20,21,[335,445,385,445]],[20,22],[18,23,[335,375,250,375]],[20,24,[335,445,285,445]],[17,25,[275,305,215,305]],[1,27,[510,135,685,135]],[27,28,[685,220,1075,220]],[27,29],[28,30],[29,31],[27,32,[685,220,600,220]],[30,33,[1075,360,1100,360]],[31,34],[34,35],[29,36,[685,290,635,290]],[30,37,[1075,360,1050,360]],[29,39,[685,290,825,290]],[39,40,[825,375,935,375]],[39,41,[825,375,850,375]],[40,42],[39,43,[825,375,800,375]],[41,44],[42,45,[935,515,985,515]],[42,46],[39,47,[825,375,750,375]],[47,48],[42,49,[935,515,885,515]],[46,50],[0,52,[998.12,50,1486.25,50]],[52,53,[1486.25,135,1560,135]],[52,54,[1486.25,135,1412.5,135]],[54,55,[1412.5,205,1525,205]],[54,56,[1412.5,205,1450,205]],[56,57,[1450,290,1475,290]],[54,58,[1412.5,205,1375,205]],[57,59],[59,60,[1475,430,1500,430]],[56,61,[1450,290,1425,290]],[58,62],[59,63,[1475,430,1450,430]],[55,64],[62,65],[63,66],[54,68,[1412.5,205,1245,205]],[68,69,[1245,290,1295,290]],[68,70],[68,71,[1245,290,1195,290]],[69,73]],"vp":[0.0,0.0,1590.0,665.0]}} A graph containing group nodes {@graph {"ann":{"s":[30,30],"d":1},"n":[[4.33,440.22],[74.33,418.34,73.78,73.78],[188.11,41,48,48],[197.11,417.95],[298,245.33],[298,445.67],[389.89,393.78,73.78,73.78],[411.78,146.89],[298,25],[411.78,243.78],[411.78,293.78],[298,590.56],[503.67,100,73.78,73.78],[197.11,708.56],[188.11,821.45,48,48],[525.56,415.67],[525.56,243.78],[399.84,13.06,53.88,53.88],[276.11,661.67,73.78,73.78],[411.78,343.78],[411.78,497.56],[402.78,547.56,48,48],[402.78,615.56,48,48],[298,755.45],[525.56,472.56],[525.56,293.78],[629.39,243.78],[525.56,0],[525.56,50],[525.56,522.56],[298,805.45],[617.45,485.62,53.88,53.88],[629.39,50],[411.78,755.45],[711.33,38.06,53.88,53.88],[629.39,559.5],[298,75],[411.78,683.56],[525.56,599.56],[411.78,805.45],[723.27,559.5],[629.39,293.78],[525.56,193.78],[723.27,497.56],[298,855.45],[525.56,649.56]],"e":[[0,1],[1,2,[168.11,455.22,168.11,65]],[1,3,[168.11,455.22,168.11,432.95]],[3,4,[256.11,432.95,256.11,260.33]],[3,5,[256.11,432.95,256.11,460.67]],[5,6,[369.89,460.67,369.89,430.67]],[4,7,[369.89,260.33,369.89,161.89]],[2,8,[256.11,65,256.11,40]],[4,9,[369.89,260.33,369.89,258.78]],[4,10,[369.89,260.33,369.89,308.78]],[3,11,[256.11,432.95,256.11,605.56]],[7,12,[483.67,161.89,483.67,136.89]],[1,13,[168.11,455.22,168.11,723.56]],[1,14,[168.11,455.22,168.11,845.45]],[6,15],[9,16],[8,17],[13,18,[256.11,723.56,256.11,698.56]],[4,19,[369.89,260.33,369.89,358.78]],[5,20,[369.89,460.67,369.89,512.56]],[11,21,[369.89,605.56,369.89,571.56]],[11,22,[369.89,605.56,369.89,639.56]],[13,23,[256.11,723.56,256.11,770.45]],[20,24,[483.67,512.56,483.67,487.56]],[10,25],[16,26],[17,27,[483.67,40,483.67,15]],[17,28,[483.67,40,483.67,65]],[20,29,[483.67,512.56,483.67,537.56]],[14,30,[256.11,845.45,256.11,820.45]],[29,31,[597.45,537.56,597.45,512.56]],[28,32],[23,33],[32,34],[29,35,[597.45,537.56,597.45,574.5]],[2,36,[256.11,65,256.11,90]],[18,37],[22,38,[483.67,639.56,483.67,614.56]],[30,39],[35,40],[25,41],[7,42,[483.67,161.89,483.67,208.78]],[31,43],[14,44,[256.11,845.45,256.11,870.45]],[22,45,[483.67,639.56,483.67,664.56]]],"vp":[4.0,0.0,762.0,886.0]}} Left-to-right layout with global layeringConcept + *

    + *

    + * The layout algorithm starts from the root and recursively assigns coordinates to all tree nodes. In this manner, leaf + * nodes will be placed first, while each parent node is placed centered above its children. + *

    + *

    + * Features + *

    + *

    + * The layout algorithm supports custom sorting of sibling nodes by using a specific {@link yfiles.tree.NodeOrderComparer}. Each + * tree node may have an individual {@link yfiles.tree.NodeOrderComparer} that is stored in a {@link yfiles.algorithms.IDataProvider} + * registered with the graph with {@link yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY}. If this {@link yfiles.tree.NodeOrderComparer} + * uses the initial coordinates of the nodes, it allows the incremental insertion of child nodes while keeping the relative + * locations of the other nodes. + *

    + *

    + * A custom node can be defined as root of the tree using a {@link yfiles.algorithms.IDataProvider} registered with the graph with + * key {@link yfiles.tree.ClassicTreeLayout#SELECTED_ROOT_DP_KEY}. + *

    + *

    + * {@link yfiles.tree.ClassicTreeLayout} can be configured to {@link yfiles.tree.ClassicTreeLayout#considerNodeLabels reserve space for node labels}. It can also {@link yfiles.tree.ClassicTreeLayout#integratedEdgeLabeling place edge labels along edges} + * such that the labels won't overlap with other graph elements. Edge labels are placed according to the information stored + * in a {@link yfiles.layout.PreferredPlacementDescriptor} instance. However, the placement along the edge will only affect the + * order of multiple labels at the same edge. The algorithm will always place the labels close to the target node. + *

    + *

    + * Grouping of nodes can also be handled by this layout algorithm. It is important that a group node contains a whole + * subtree. Otherwise, the group nodes may overlap with each other or with other nodes. Furthermore, the user may specify + * minimum size constraints for each group node using {@link yfiles.algorithms.IDataProvider} key + * {@link yfiles.layout.GroupingKeys#MINIMUM_NODE_SIZE_DP_KEY}. + *

    + *

    + * This layout algorithm can only handle graphs with a tree structure. To apply it to a general graph, a {@link yfiles.tree.TreeReductionStage} + * can be appended. This stage will temporarily remove some edges of the input graph until a tree is obtained. After the + * layout calculation, the stage will reinsert the edges that were removed and route them separately. + *

    + * @class + * @extends {yfiles.layout.MultiStageLayout} + */ + export interface ClassicTreeLayout extends yfiles.layout.MultiStageLayout{} + export class ClassicTreeLayout { + /** + * Creates a new {@link yfiles.tree.ClassicTreeLayout} instance with default settings. + */ + constructor(); + /** + * Data provider key for marking the node that will be used as root node of the tree + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Gets or sets whether or not a global layering is enforced, that is, each node spans exactly one layer. + *

    + * If it is enabled, the algorithm ensures that nodes never span more than one layer. Otherwise, nodes with larger size + * might span two or more layers such that a more compact layout is produced. + *

    + *

    + * This setting can be advantageous, if the hierarchical structure of the tree should be emphasized. + *

    + * @see yfiles.tree.ClassicTreeLayout#verticalAlignment + * @see yfiles.tree.ClassicTreeLayout#verticalAlignment + * @type {boolean} + */ + enforceGlobalLayering:boolean; + /** + * Gets or sets the layout policy for leaf nodes. + * @throws {Stubs.Exceptions.ArgumentError} if the specified policy is unknown + * @type {yfiles.tree.LeafPlacement} + */ + leafPlacement:yfiles.tree.LeafPlacement; + /** + * Gets or sets whether or not group nodes are handled by the layout algorithm. + * @see yfiles.layout.MultiStageLayout#hideGroupsStageEnabled + * @type {boolean} + */ + groupingSupported:boolean; + /** + * Gets or sets the {@link yfiles.collections.IComparer.} instance that is used for sorting the outgoing edges of each node of the tree. + *

    + * This comparator defines the relative order of the child nodes in the layout. + *

    + * @type {yfiles.collections.IComparer.} + */ + comparer:yfiles.collections.IComparer; + /** + * Gets or sets the port assignment policy that will be applied. + * @type {yfiles.tree.PortStyle} + */ + portStyle:yfiles.tree.PortStyle; + /** + * Gets or sets the edge routing style used by this layout algorithm. + *

    + * If {@link yfiles.tree.EdgeRoutingStyle#PLAIN} is set, the edges will be routed as straight-line segments. If {@link yfiles.tree.EdgeRoutingStyle#ORTHOGONAL} + * is set, all edges will be routed orthogonally in a bus-like fashion. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if an invalid layout style is provided + * @type {yfiles.tree.EdgeRoutingStyle} + */ + edgeRoutingStyle:yfiles.tree.EdgeRoutingStyle; + /** + * Gets or sets the minimum horizontal distance between adjacent nodes within the same layer. + * @throws {Stubs.Exceptions.ArgumentError} if the given distance is negative + * @type {number} + */ + minimumNodeDistance:number; + /** + * Gets or sets the minimum distance between two adjacent layers. + * @throws {Stubs.Exceptions.ArgumentError} if the given distance is negative + * @type {number} + */ + minimumLayerDistance:number; + /** + * Gets or sets whether or not the layout algorithm reserves space for node labels. + * @type {boolean} + */ + considerNodeLabels:boolean; + /** + * Gets or sets whether or not the layout algorithm reserves space for edge labels and places them. + *

    + * To define the desired placement for each label add a {@link yfiles.layout.PreferredPlacementDescriptor} on + * {@link yfiles.layout.IEdgeLabelLayout}. + *

    + *

    + * This method is a convenience method that assures that the {@link yfiles.layout.MultiStageLayout#labeling label layouter} is of type {@link yfiles.layout.LabelLayoutTranslator} + * and {@link yfiles.layout.LabelLayoutTranslator#translateEdgeLabels} is set to true. + *

    + * @type {boolean} + */ + integratedEdgeLabeling:boolean; + /** + * Gets or sets the vertical bus alignment for orthogonally routed edge buses. + *

    + * The bus alignment determines the relative position of an edge bus between two subsequent layers. The value of this + * property must lie within the interval [0,1] where: + *

    + *
      + *
    • A value of 0 places the bus at the top, directly below the parent node.
    • + *
    • A value of 0.5 places the bus in the middle between parent and child nodes.
    • + *
    • A value of 1 places the bus at the bottom, directly above the child nodes.
    • + *
    + * @throws {Stubs.Exceptions.ArgumentError} if busAlignment is not in [0,1] + * @see yfiles.tree.ClassicTreeLayout#edgeRoutingStyle + * @see yfiles.tree.ClassicTreeLayout#enforceGlobalLayering + * @see yfiles.tree.ClassicTreeLayout#leafPlacement + * @type {number} + */ + busAlignment:number; + /** + * Gets or sets the vertical alignment of the nodes within their corresponding layers. + *

    + * The value for the vertical alignment is considered as relative to the height of the corresponding layer, which is + * determined by the maximum height of the nodes that belong to the particular layer. + *

    + *

    + * The value of this property must lie within the interval [0,1], where: + *

    + *
      + *
    • A value of 0 corresponds to top-alignment.
    • + *
    • A value of 0.5 corresponds to center-alignment.
    • + *
    • A value of 1 corresponds to bottom-alignment.
    • + *
    + * @throws {Stubs.Exceptions.ArgumentError} if vertical alignment value does not lie within [0,1] + * @see yfiles.tree.ClassicTreeLayout#enforceGlobalLayering + * @type {number} + */ + verticalAlignment:number; + /** + * Gets or sets the modification matrix used for rotating / mirroring the layout. + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. + * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled + * @see yfiles.layout.MultiStageLayout#componentLayout + * @see yfiles.layout.ComponentLayout + * @type {boolean} + */ + componentLayoutEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter + * @see yfiles.router.ParallelEdgeRouter + * @type {boolean} + */ + parallelEdgeRouterEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. + * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled + * @see yfiles.layout.MultiStageLayout#selfLoopRouter + * @see yfiles.layout.SelfLoopRouter + * @type {boolean} + */ + selfLoopRouterEnabled:boolean; + static $class:yfiles.lang.Class; + } + /** + * {@link yfiles.tree.DefaultNodePlacer} is the default implementation of interface {@link yfiles.tree.INodePlacer}. + *

    + * Layout Style The layout style can be customized in several ways. Subtrees sharing the same local root node are either placed above + * or below each other. {@graph {"ann":{"s":[30,30],"d":1},"n":[[135,0],[0,70],[70,70],[120,149],[170,149],[220,149],[270,149],[70,199],[120,278],[170,278],[220,278],[270,278]],"e":[[0,1,0,15,0,0,[150,50,15,50]],[1,2],[2,3,-11.25,15,0,0,[73.75,116,135,133]],[2,4,-3.75,15,0,0,[81.25,116,185,133]],[2,5,3.75,15,0,0,[88.75,116,235,133]],[2,6,11.25,15,0,0,[96.25,116,285,133]],[1,7,[50,85,50,214]],[7,8,-11.25,15,0,0,[73.75,245,135,262]],[7,9,-3.75,15,0,0,[81.25,245,185,262]],[7,10,3.75,15,0,0,[88.75,245,235,262]],[7,11,11.25,15,0,0,[96.25,245,285,262]]],"vp":[0.0,0.0,300.0,308.0]}} + *

    + *

    + * Each layer in the tree uses different configurations of {@link yfiles.tree.DefaultNodePlacer} + *

    + *

    + * Features + *

    + *

    + * {@link yfiles.tree.SubtreeShape}s can be arranged in each main direction specified in + * {@link yfiles.tree.DefaultNodePlacer#childPlacement}. That way, the subtrees of the same graph can have different directions. + *

    + *

    + * This node placer aligns the local root node according to a chosen {@link yfiles.tree.DefaultNodePlacer#rootAlignment alignment}. + *

    + *

    + * There are various {@link yfiles.tree.DefaultNodePlacer#routingStyle routing styles} that result in different edge routes. + *

    + * @class + * @extends {yfiles.tree.NodePlacerBase} + * @implements {yfiles.tree.IFromSketchNodePlacer} + * @implements {yfiles.lang.ICloneable} + */ + export interface DefaultNodePlacer extends yfiles.tree.NodePlacerBase,yfiles.tree.IFromSketchNodePlacer,yfiles.lang.ICloneable{} + export class DefaultNodePlacer { + /** + * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with custom settings. + * @param childPlacement the child placement specifier describing the style of the arrangement + * @param rootAlignment the alignment specifier describing how the root node is aligned with its child nodes + * @param routingStyle the routing style specifier + * @param verticalDistance the vertical distance between the {@link }s + * @param horizontalDistance the horizontal distance between the {@link }s + * @param minFirstSegmentLength the minimum length of the first edge segment (connected to the root node) + * @param minLastSegmentLength the minimum length of the last edge segment (connected to the child node) + * @param minSlope the minimum slope between the root node and the {@link }s + * @param minSlopeHeight the minimum vertical height of sloped edge segments + * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier or the root alignment or the routing style is unknown or if the horizontal/vertical distance + * or the minimum first/last segment length or the minimum slope or the minimum vertical height is negative + * @see yfiles.tree.DefaultNodePlacer#childPlacement + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + * @see yfiles.tree.DefaultNodePlacer#routingStyle + * @see yfiles.tree.DefaultNodePlacer#verticalDistance + * @see yfiles.tree.DefaultNodePlacer#horizontalDistance + * @see yfiles.tree.DefaultNodePlacer#minimumFirstSegmentLength + * @see yfiles.tree.DefaultNodePlacer#minimumLastSegmentLength + * @see yfiles.tree.DefaultNodePlacer#minimumSlope + * @see yfiles.tree.DefaultNodePlacer#minimumSlopeHeight + */ + constructor(childPlacement:yfiles.tree.ChildPlacement,rootAlignment:yfiles.tree.RootAlignment,routingStyle:yfiles.tree.RoutingStyle,verticalDistance:number,horizontalDistance:number,minFirstSegmentLength:number,minLastSegmentLength:number,minSlope:number,minSlopeHeight:number); + /** + * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with customized {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, {@link yfiles.tree.DefaultNodePlacer#rootAlignment root alignment}, {@link yfiles.tree.DefaultNodePlacer#routingStyle routing style}, {@link yfiles.tree.DefaultNodePlacer#verticalDistance vertical} + * and {@link yfiles.tree.DefaultNodePlacer#horizontalDistance horizontal distance}. + * @param childPlacement the child placement specifier describing the style of the arrangement + * @param rootAlignment the alignment specifier describing how the root node is aligned with its child nodes + * @param routingStyle the routing style specifier + * @param verticalDistance the vertical distance between the {@link }s + * @param horizontalDistance the horizontal distance between the {@link }s + * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier or the root alignment or the routing style is unknown or if the horizontal/vertical distance + * is negative + * @see yfiles.tree.DefaultNodePlacer#childPlacement + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + * @see yfiles.tree.DefaultNodePlacer#routingStyle + * @see yfiles.tree.DefaultNodePlacer#verticalDistance + * @see yfiles.tree.DefaultNodePlacer#horizontalDistance + */ + constructor(childPlacement:yfiles.tree.ChildPlacement,rootAlignment:yfiles.tree.RootAlignment,routingStyle:yfiles.tree.RoutingStyle,verticalDistance:number,horizontalDistance:number); + /** + * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with customized {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, {@link yfiles.tree.DefaultNodePlacer#rootAlignment root alignment}, {@link yfiles.tree.DefaultNodePlacer#verticalDistance vertical} and + * {@link yfiles.tree.DefaultNodePlacer#horizontalDistance horizontal distance}. + * @param childPlacement the child placement specifier describing the style of the arrangement + * @param rootAlignment the alignment specifier describing how the root node is aligned with its child nodes + * @param verticalDistance the vertical distance between the {@link }s + * @param horizontalDistance the horizontal distance between the {@link }s + * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier or the root alignment specifier is unknown or if the horizontal/vertical distance is + * negative + * @see yfiles.tree.DefaultNodePlacer#childPlacement + * @see yfiles.tree.DefaultNodePlacer#rootAlignment + * @see yfiles.tree.DefaultNodePlacer#verticalDistance + * @see yfiles.tree.DefaultNodePlacer#horizontalDistance + */ + constructor(childPlacement:yfiles.tree.ChildPlacement,rootAlignment:yfiles.tree.RootAlignment,verticalDistance:number,horizontalDistance:number); + /** + * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with customized {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}, {@link yfiles.tree.DefaultNodePlacer#verticalDistance vertical} and {@link yfiles.tree.DefaultNodePlacer#horizontalDistance horizontal distance}. + * @param childPlacement the child placement specifier describing the style of the arrangement + * @param verticalDistance the vertical distance between the {@link }s + * @param horizontalDistance the horizontal distance between the {@link }s + * @throws {Stubs.Exceptions.ArgumentError} if the placement specifier is unknown or if the horizontal/vertical distance is negative + * @see yfiles.tree.DefaultNodePlacer#childPlacement + * @see yfiles.tree.DefaultNodePlacer#verticalDistance + * @see yfiles.tree.DefaultNodePlacer#horizontalDistance + */ + constructor(childPlacement:yfiles.tree.ChildPlacement,verticalDistance:number,horizontalDistance:number); + /** + * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with default settings. + */ + constructor(); + /** + * Calculates the bends for the connector to the parent node. + *

    + * This implementation adds bends to the connector for edges that route the edges around the child node in case there are + * {@link yfiles.layout.PortConstraint}s that conflict with the direction of the {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}. + *

    + *

    + * This method is called in {@link yfiles.tree.DefaultNodePlacer#placeSubtreeOfNode} to route the edges after the + * {@link yfiles.tree.SubtreeShape}s are arranged. It may be overridden to customize the routing style. + *

    + * @param graph the input graph + * @param localRoot the local root node whose connector is calculated and stored in the given subtree shape + * @param rootLayout the {@link } of the root node + * @param subtreeShape the shape of the whole subtree of the local root + * @param parentEdge the incoming edge of the local root node that will be the connector for the given subtree shape + * @param parentEdgeLayout the current {@link } of the connector edge + * @param direction the direction specifier as defined in the {@link } interface which should be used for the connector + * @see yfiles.tree.NodePlacerBase#determineChildConnectors + * @protected + */ + calculateParentConnector(graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,rootLayout:yfiles.layout.INodeLayout,subtreeShape:yfiles.tree.SubtreeShape,parentEdge:yfiles.algorithms.Edge,parentEdgeLayout:yfiles.layout.IEdgeLayout,direction:number):void; + /** + * Calculates the routing of the source side of the edge to the given child node. + *

    + * This method delegates to {@link yfiles.tree.DefaultNodePlacer#calculateSourceEdgeLayout} if the {@link yfiles.tree.DefaultNodePlacer#routingStyle routing style} is not + * {@link yfiles.tree.RoutingStyle#FORK}. It may be overridden to implement a custom routing style. + *

    + * @param rootLayout the {@link } of the local root node + * @param childShape the {@link } instance of the corresponding child's subtree + * @param edge the edge + * @param rootForkCoordinate the y-coordinate of the first bend of the edge if the placement is horizontal, the x-coordinate otherwise + * @param childForkCoordinate the y-coordinate of the second (= last) bend of the edge if the placement is horizontal, the x-coordinate otherwise + * @protected + */ + calculateSlopedSourceEdgeLayout(rootLayout:yfiles.layout.INodeLayout,childShape:yfiles.tree.SubtreeShape,edge:yfiles.algorithms.Edge,childForkCoordinate:number,rootForkCoordinate:number):void; + /** + * Calculates the routing of the source side of the edge to the given child node. + *

    + * This implementation adds bends to the {@link yfiles.layout.IEdgeLayout} of the given edge according to the specified {@link yfiles.tree.DefaultNodePlacer#routingStyle routing style} + * and {@link yfiles.tree.DefaultNodePlacer#childPlacement child placement}. It also updates the target points in the {@link yfiles.tree.SubtreeShape}. + *

    + *

    + * This method is called by {@link yfiles.tree.DefaultNodePlacer#calculateSlopedSourceEdgeLayout} to route the edges. It may be + * overridden to implement a custom edge routing style. + *

    + * @param rootLayout the {@link } of the local root node + * @param childShape the {@link } of the child's subtree that is connected through the given edge + * @param edge the edge + * @protected + */ + calculateSourceEdgeLayout(rootLayout:yfiles.layout.INodeLayout,childShape:yfiles.tree.SubtreeShape,edge:yfiles.algorithms.Edge):void; + /** + * Calculates the routing of the target side of the edge to the given child node. + *

    + * This implementation just resets the current {@link yfiles.layout.IEdgeLayout}. + *

    + *

    + * This method is called by {@link yfiles.tree.DefaultNodePlacer#placeSubtreeOfNode} after the {@link yfiles.tree.SubtreeShape shapes} of the local root's children + * are placed. It may be overridden to add some {@link yfiles.tree.SubtreeShape#addTargetPoint target points} to the edge. + *

    + * @param rootLayout the {@link } of the local root node + * @param childShape the {@link } of the child's subtree that is connected through the given edge + * @param edge the edge + * @protected + */ + calculateTargetEdgeLayout(rootLayout:yfiles.layout.INodeLayout,childShape:yfiles.tree.SubtreeShape,edge:yfiles.algorithms.Edge):void; + /** + * Creates a {@link yfiles.collections.IComparer.} for outgoing edges which takes the initial coordinates of the edges' targets into account. + *

    + * Child nodes are sorted in a way that the layout will resemble the current arrangement of the nodes. This is especially + * useful for interactive or incremental layout calculation. + *

    + * @returns a {@link } that considers the initial coordinates of the nodes + */ + createComparer():yfiles.collections.IComparer; + /** + * Delegates to {@link yfiles.tree.DefaultNodePlacer#createComparer}. + * @returns the From Sketch {@link } + * @see yfiles.tree.DefaultNodePlacer#createComparer + */ + createFromSketchComparer():yfiles.collections.IComparer; + /** + * Gets or sets the direction in which the child nodes are placed with respect to their parent node. + *

    + * Subtrees can be placed below, above, left or right of their roots. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if an unknown placement specifier is set + * @type {yfiles.tree.ChildPlacement} + */ + childPlacement:yfiles.tree.ChildPlacement; + /** + * Gets or sets how the root node is aligned with its children and their {@link yfiles.tree.SubtreeShape}s. + * @throws {Stubs.Exceptions.ArgumentError} if an unknown root alignment specifier is set + * @type {yfiles.tree.RootAlignment} + */ + rootAlignment:yfiles.tree.RootAlignment; + /** + * Gets or sets the relative vertical alignment of nodes with the same parent. + *

    + * All values between 0 and 1 result in a valid alignment. + *

    + *
      + *
    • 0 - nodes are top-aligned
    • + *
    • 0.5 - nodes are center-aligned
    • + *
    • 1 - nodes are bottom-aligned
    • + *
    + *

    + * Values outside the interval [0,1] will result in a more compact node placement with unaligned nodes. + *

    + * @type {number} + */ + verticalAlignment:number; + /** + * Gets or sets the style in which edge paths are routed. + * @throws {Stubs.Exceptions.ArgumentError} if the specified routing style is unknown + * @type {yfiles.tree.RoutingStyle} + */ + routingStyle:yfiles.tree.RoutingStyle; + /** + * Gets or sets the vertical distance between nodes or {@link yfiles.tree.SubtreeShape}s. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + verticalDistance:number; + /** + * Gets or sets the minimum length for the first segment of an edge. + *

    + * During layout calculation, the edges of the tree are directed. Hence, the first segment is always the segment that is + * attached to the source, which is the local root node. + *

    + *

    + * The length needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the minimum segment length is negative + * @type {number} + */ + minimumFirstSegmentLength:number; + /** + * Gets or sets the minimum length for the last segment of an edge. + *

    + * During layout calculation, the edges of the tree are directed. Hence, the last segment is always the segment that is + * attached to the target, which is a child node. + *

    + *

    + * The length needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the minimum segment length is negative + * @type {number} + */ + minimumLastSegmentLength:number; + /** + * Gets or sets the minimum slope of the edge segments. + *

    + * These sloped segments are between the vertical first and last segment of the edge. + *

    + *

    + * The segments may become steeper but they will have at least the specified slope. Negative minimum slopes can lead to + * edge routes looking like spider legs. + *

    + * @see yfiles.tree.DefaultNodePlacer#minimumSlopeHeight + * @type {number} + */ + minimumSlope:number; + /** + * Gets or sets the minimum height for sloped edge segments. + *

    + * These sloped segments are between the vertical first and last segment of the edge. + *

    + *

    + * The segments may become steeper to reach the specified height. + *

    + * @see yfiles.tree.DefaultNodePlacer#minimumSlope + * @type {number} + */ + minimumSlopeHeight:number; + /** + * Gets or sets the horizontal distance between nodes or {@link yfiles.tree.SubtreeShape}s. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + horizontalDistance:number; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.DefaultPortAssignment} provides some simple {@link yfiles.tree.DefaultPortAssignment#mode port assignment styles}. + *

    + * Ports are either {@link yfiles.tree.PortAssignmentMode#NONE centered} on the node, distributed at one side of the node or placed considering + * {@link yfiles.layout.PortConstraint}s. + *

    + * @class + * @implements {yfiles.tree.IPortAssignment} + */ + export interface DefaultPortAssignment extends Object,yfiles.tree.IPortAssignment{} + export class DefaultPortAssignment { + /** + * Creates a new {@link yfiles.tree.DefaultPortAssignment} instance using the given port assignment mode and ratio between the + * border and the ports and the gap between the ports themselves. + * @param mode one of the predefined port assignment specifiers + * @param [ratio=0.5] the ratio of the distance between outer ports and the border to the distance between any two ports + * @throws {Stubs.Exceptions.ArgumentError} if an unknown mode is specified or if the specified ratio is negative + */ + constructor(mode:yfiles.tree.PortAssignmentMode,ratio?:number); + /** + * Creates a new {@link yfiles.tree.DefaultPortAssignment} instance with default settings. + */ + constructor(); + /** + * Assigns relative coordinates to the source port of the outgoing edge to a child of the given node. + *

    + * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignPorts} for each outgoing edge of the given node. It may + * be overridden to assign a custom location to the source port of outgoing edges. + *

    + * @param graph the input graph + * @param node the node + * @param edge the edge to the child node + * @param index the zero-based index of the child edge + * @see yfiles.layout.IEdgeLayout#sourcePoint + * @protected + */ + assignChildEdgeSourcePort(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge,index:number):void; + /** + * Assigns relative coordinates to the target port of the incoming edge from the parent of the given node. + *

    + * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignPorts} if the given node has a parent node. It may be + * overridden to assign a custom location to the target port of the incoming edge. + *

    + * @param graph the input graph + * @param node the node + * @param edge the edge from the parent node + * @see yfiles.layout.IEdgeLayout#targetPoint + * @protected + */ + assignParentEdgeTargetPort(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node,edge:yfiles.algorithms.Edge):void; + /** + * Places the ports of edges connecting to the given node according to the {@link yfiles.tree.DefaultPortAssignment#mode port assignment mode}. + * @param graph the input graph + * @param node the node whose adjacent edges' ports should be placed + * @see yfiles.tree.DefaultPortAssignment#mode + */ + assignPorts(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):void; + /** + * Determines the distance between the outer ports and the border of the node. + *

    + * This implementation calculates the gap according to the number of edges at one side of the node. It also includes the + * {@link yfiles.tree.DefaultPortAssignment#borderGapToPortGapRatio ratio between border gap and port gap}. + *

    + *

    + * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort} to calculate the location of the + * first port. It may be overridden to implement a different distribution of ports on the node's side. + *

    + * @param sideLength the width/height of the side + * @param edgeCount the number of edges that connect to this side + * @returns the absolute gap to be used on both sides of the ports + * @see yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort + * @see yfiles.tree.DefaultPortAssignment#borderGapToPortGapRatio + * @protected + */ + getPortBorderGap(sideLength:number,edgeCount:number):number; + /** + * Determines the distance between two adjacent ports. + *

    + * This implementation calculates the gap according to the number of edges at one side of the node. The edges are + * distributed keeping the given gap to the border of the node. + *

    + *

    + * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort} to calculate the distance between + * two ports. It may be overridden to implement a different distribution of ports on the node's side. + *

    + * @param sideLength the width/height of the side + * @param edgeCount the number of edges/ports that connect to this side + * @param portBorderGap the port border gap (i.e. calculated by {@link #getPortBorderGap}) + * @returns the absolute distance to be used between two adjacent ports + * @see yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort + * @see yfiles.tree.DefaultPortAssignment#getPortBorderGap + * @protected + */ + getPortDistanceDelta(sideLength:number,edgeCount:number,portBorderGap:number):number; + /** + * Retrieves the source {@link yfiles.layout.PortConstraint} for the given edge. + *

    + * This implementation accesses the {@link yfiles.algorithms.IDataProvider} registered with + * {@link yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY}. + *

    + *

    + * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort} in + * {@link yfiles.tree.PortAssignmentMode#PORT_CONSTRAINT}. + *

    + * @param graph the input graph + * @param edge the edge + * @param index the index of the child that is the target of the given edge + * @returns the source {@link } or null if no source {@link } is specified + * @see yfiles.layout.PortConstraint + * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY + * @see yfiles.tree.DefaultPortAssignment#assignChildEdgeSourcePort + * @protected + */ + getSourcePortConstraint(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge,index:number):yfiles.layout.PortConstraint; + /** + * Retrieves the target {@link yfiles.layout.PortConstraint} for the given edge. + *

    + * This implementation accesses the {@link yfiles.algorithms.IDataProvider} registered with + * {@link yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY}. + *

    + *

    + * This method is called by {@link yfiles.tree.DefaultPortAssignment#assignParentEdgeTargetPort} in + * {@link yfiles.tree.PortAssignmentMode#PORT_CONSTRAINT}. + *

    + * @param graph the input graph + * @param edge the edge + * @returns the target {@link } or null if no target {@link } is specified + * @see yfiles.layout.PortConstraint + * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY + * @see yfiles.tree.DefaultPortAssignment#assignParentEdgeTargetPort + * @protected + */ + getTargetPortConstraint(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):yfiles.layout.PortConstraint; + /** + * Gets or sets the mode that describes how ports are placed. + * @throws {Stubs.Exceptions.ArgumentError} if an unknown mode is specified + * @type {yfiles.tree.PortAssignmentMode} + */ + mode:yfiles.tree.PortAssignmentMode; + /** + * Gets or sets the ratio of the border gap (distance between the outer ports to the node border) to the port gap (distance between adjacent + * ports). + *

    + * The ratio must have a positive value. When the ratio is 0 the ports will be distributed along the whole side of the node + * without a gap between the last port and the corner. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified ratio is negative + * @type {number} + */ + borderGapToPortGapRatio:number; + /** + * Gets or sets whether or not the port assignment should reverse the order of the ports. + *

    + * The normal order is from left to right and from top to bottom. It will be reversed if this option is enabled. + *

    + * @type {boolean} + */ + reversedPortOrder:boolean; + static $class:yfiles.lang.Class; + } + /** + * {@link yfiles.tree.DelegatingNodePlacer} delegates the arrangement of the children to two different {@link yfiles.tree.INodePlacer}s. + *

    + * Layout Style This {@link yfiles.tree.INodePlacer} can, for example, be used for creating mind maps or a playing schedule of a sports + * competition. {@graph {"ann":{"s":[130,30],"d":1},"n":[[662,400,[[669.97,424.35,114.05,18.7]]],[662,175,[[669.97,199.35,114.05,18.7]]],[662,625,[[685.65,649.35,82.7,18.7]]],[812,175,[[829.98,199.35,94.04,18.7]]],[982,275,[[999.98,299.35,94.04,18.7]]],[812,625,[[835.65,649.35,82.7,18.7]]],[512,175,[[519.97,199.35,114.05,18.7]]],[982,725,[[1010.64,749.35,72.71,18.7]]],[1152,775,[[1180.64,799.35,72.71,18.7]]],[1322,800,[[1341.97,824.35,90.05,18.7]]],[982,75,[[1004.32,99.35,85.37,18.7]]],[1152,675,[[1163.65,699.35,106.71,18.7]]],[1152,325,[[1177.32,349.35,79.36,18.7]]],[982,525,[[1005.65,549.35,82.7,18.7]]],[1152,125,[[1190.32,149.35,53.37,18.7]]],[1152,575,[[1175.65,599.35,82.7,18.7]]],[1322,350,[[1347.32,374.35,79.36,18.7]]],[1322,150,[[1343.65,174.35,86.7,18.7]]],[1322,300,[[1347.32,324.35,79.36,18.7]]],[1152,225,[[1169.98,249.35,94.04,18.7]]],[1152,25,[[1174.32,49.35,85.37,18.7]]],[342,75,[[372.66,99.35,68.69,18.7]]],[1152,475,[[1165.65,499.35,102.7,18.7]]],[1322,500,[[1326,524.35,122.06,18.7]]],[1322,250,[[1339.98,274.35,94.04,18.7]]],[1322,600,[[1330.31,624.35,113.38,18.7]]],[172,25,[[188.64,49.35,96.72,18.7]]],[342,275,[[349.97,299.35,114.05,18.7]]],[2,0,[[26.32,24.35,81.36,18.7]]],[1322,550,[[1345.65,574.35,82.7,18.7]]],[172,125,[[202.66,149.35,68.69,18.7]]],[1322,200,[[1344.32,224.35,85.36,18.7]]],[2,100,[[32.32,124.35,69.37,18.7]]],[1322,450,[[1335.65,474.35,102.7,18.7]]],[1322,750,[[1350.64,774.35,72.71,18.7]]],[512,625,[[532.65,649.35,88.69,18.7]]],[172,225,[[179.97,249.35,114.05,18.7]]],[1322,700,[[1329.63,724.35,114.74,18.7]]],[172,325,[[200.98,349.35,72.03,18.7]]],[1322,50,[[1344.32,74.35,85.37,18.7]]],[2,300,[[4.98,324.35,124.05,18.7]]],[2,50,[[18.64,74.35,96.72,18.7]]],[2,150,[[32.66,174.35,68.69,18.7]]],[1322,650,[[1333.65,674.35,106.71,18.7]]],[1322,0,[[1356.66,24.35,60.69,18.7]]],[1322,100,[[1360.32,124.35,53.37,18.7]]],[342,525,[[347.31,549.35,119.39,18.7]]],[172,475,[[171.97,499.35,130.06,18.7]]],[2,350,[[30.98,374.35,72.03,18.7]]],[2,450,[[1.97,474.35,130.06,18.7]]],[342,725,[[362.65,749.35,88.69,18.7]]],[2,200,[[25.31,224.35,83.37,18.7]]],[172,575,[[177.31,599.35,119.39,18.7]]],[172,675,[[197.32,699.35,79.35,18.7]]],[2,500,[[15.98,524.35,102.04,18.7]]],[2,550,[[14.63,574.35,104.73,18.7]]],[2,600,[[7.31,624.35,119.39,18.7]]],[2,250,[[9.97,274.35,114.05,18.7]]],[172,775,[[192.65,799.35,88.69,18.7]]],[2,750,[[22.65,774.35,88.69,18.7]]],[2,800,[[16.64,824.35,100.72,18.7]]],[2,650,[[11.97,674.35,110.07,18.7]]],[2,700,[[27.32,724.35,79.35,18.7]]]],"e":[[0,1],[0,2],[1,3],[3,4,[954,190,954,290]],[2,5],[1,6],[5,7,[954,640,954,740]],[7,8,[1124,740,1124,790]],[8,9,[1294,790,1294,815]],[3,10,[954,190,954,90]],[7,11,[1124,740,1124,690]],[4,12,[1124,290,1124,340]],[5,13,[954,640,954,540]],[10,14,[1124,90,1124,140]],[13,15,[1124,540,1124,590]],[12,16,[1294,340,1294,365]],[14,17,[1294,140,1294,165]],[12,18,[1294,340,1294,315]],[4,19,[1124,290,1124,240]],[10,20,[1124,90,1124,40]],[6,21,[500,190,500,90]],[13,22,[1124,540,1124,490]],[22,23,[1294,490,1294,515]],[19,24,[1294,240,1294,265]],[15,25,[1294,590,1294,615]],[21,26,[330,90,330,40]],[6,27,[500,190,500,290]],[26,28,[160,40,160,15]],[15,29,[1294,590,1294,565]],[21,30,[330,90,330,140]],[19,31,[1294,240,1294,215]],[30,32,[160,140,160,115]],[22,33,[1294,490,1294,465]],[8,34,[1294,790,1294,765]],[2,35],[27,36,[330,290,330,240]],[11,37,[1294,690,1294,715]],[27,38,[330,290,330,340]],[20,39,[1294,40,1294,65]],[38,40,[160,340,160,315]],[26,41,[160,40,160,65]],[30,42,[160,140,160,165]],[11,43,[1294,690,1294,665]],[20,44,[1294,40,1294,15]],[14,45,[1294,140,1294,115]],[35,46,[500,640,500,540]],[46,47,[330,540,330,490]],[38,48,[160,340,160,365]],[47,49,[160,490,160,465]],[35,50,[500,640,500,740]],[36,51,[160,240,160,215]],[46,52,[330,540,330,590]],[50,53,[330,740,330,690]],[47,54,[160,490,160,515]],[52,55,[160,590,160,565]],[52,56,[160,590,160,615]],[36,57,[160,240,160,265]],[50,58,[330,740,330,790]],[58,59,[160,790,160,765]],[58,60,[160,790,160,815]],[53,61,[160,690,160,665]],[53,62,[160,690,160,715]]],"vp":[1.0,0.0,1451.0,830.0]}} + *

    + *

    + * There are two subtrees that are placed above and below the root; Both subtrees consist of two subtrees that are placed + * left and right of their local root + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface DelegatingNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class DelegatingNodePlacer { + /** + * Creates a new {@link yfiles.tree.DefaultNodePlacer} instance with default settings using the given modification matrix and the + * given node placers as delegates. + * @param modificationMatrix the transformation matrix + * @param placerUpperLeft the first delegate {@link } which places the left subtrees + * @param placerLowerRight the second delegate {@link } which places the right subtrees + * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,placerUpperLeft:yfiles.tree.INodePlacer,placerLowerRight:yfiles.tree.INodePlacer); + /** + * Returns all upper-left children of the local root node. + *

    + * Which children belong to this list is determined using the {@link yfiles.algorithms.IDataProvider} registered with + * {@link yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY}. If no such {@link yfiles.algorithms.IDataProvider} is registered, the + * first half of the children is returned. + *

    + *

    + * These children are placed using the {@link yfiles.tree.INodePlacer} returned by {@link yfiles.tree.DelegatingNodePlacer#primaryPlacer}. + *

    + * @param localRoot the local root node + * @param graph the input graph + * @returns the list of upper-left child {@link }s + * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY + */ + primaryChildren(localRoot:yfiles.algorithms.Node,graph:yfiles.layout.LayoutGraph):yfiles.algorithms.NodeList; + /** + * Returns all lower-right children of the local root node. + *

    + * Which children belong to this list is determined using the {@link yfiles.algorithms.IDataProvider} registered with + * {@link yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY}. If no such {@link yfiles.algorithms.IDataProvider} is registered, the + * second half of the children is returned. + *

    + *

    + * These children are placed using the {@link yfiles.tree.INodePlacer} returned by {@link yfiles.tree.DelegatingNodePlacer#secondaryPlacer}. + *

    + * @param localRoot the local root node + * @param graph the input graph + * @returns the list of lower-right child {@link }s + * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY + */ + secondaryChildren(localRoot:yfiles.algorithms.Node,graph:yfiles.layout.LayoutGraph):yfiles.algorithms.NodeList; + /** + * Data provider key for dividing the children into two sets + *

    + * If there is no {@link yfiles.algorithms.IDataProvider} registered with this key, half of the nodes are placed left of the root + * and the remaining nodes are placed right of the root. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static PRIMARY_NODES_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Gets the {@link yfiles.tree.INodePlacer} instance that will arrange the lower-right part of the graph. + * @see yfiles.tree.DelegatingNodePlacer#primaryPlacer + * @see yfiles.tree.DelegatingNodePlacer#secondaryChildren + * @type {yfiles.tree.INodePlacer} + */ + secondaryPlacer:yfiles.tree.INodePlacer; + /** + * Gets the {@link yfiles.tree.INodePlacer} instance that will arrange the upper-left part of the graph. + * @see yfiles.tree.DelegatingNodePlacer#secondaryPlacer + * @see yfiles.tree.DelegatingNodePlacer#primaryChildren + * @type {yfiles.tree.INodePlacer} + */ + primaryPlacer:yfiles.tree.INodePlacer; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.DendrogramNodePlacer} arranges subtrees as dendrograms. + *

    + * Layout Style This {@link yfiles.tree.INodePlacer} arranges nodes from top to bottom. It arranges subtrees in such a way that all subtrees of + * a single local root are aligned with their bottom border. {@graph {"ann":{"s":[30,30],"d":1},"n":[[212.5,0],[400,70],[450,140],[300,210],[400,210],[450,210],[150,140],[25,70],[200,280],[150,280],[50,210],[450,280],[350,280],[25,140],[100,210],[400,280],[0,280],[300,280],[50,280],[100,280],[250,280]],"e":[[0,1,[227.5,50,415,50]],[1,2,[415,120,465,120]],[0,3,[227.5,50,315,50]],[1,4],[2,5],[0,6,[227.5,50,165,50]],[0,7,[227.5,50,40,50]],[6,8,[165,190,215,190]],[6,9],[5,11],[1,12,[415,120,365,120]],[7,13],[13,10,[40,190,65,190]],[6,14,[165,190,115,190]],[4,15],[13,16,[40,190,15,190]],[3,17],[10,18],[14,19],[0,20,[227.5,50,265,50]]],"vp":[0.0,0.0,480.0,310.0]}} + *

    + *

    + * Note: This implementation does not support {@link yfiles.layout.PortConstraint}s. + *

    + * @class + * @implements {yfiles.tree.IFromSketchNodePlacer} + */ + export interface DendrogramNodePlacer extends Object,yfiles.tree.IFromSketchNodePlacer{} + export class DendrogramNodePlacer { + /** + * Creates a new {@link yfiles.tree.DendrogramNodePlacer} instance with default settings. + */ + constructor(); + /** + * Creates a {@link yfiles.collections.IComparer.} that sorts outgoing edges according to the x-coordinate of their target nodes. + *

    + * This {@link yfiles.collections.IComparer.} can be used for achieving a From Sketch layout. + *

    + * @returns the {@link } + * @see yfiles.tree.DendrogramNodePlacer#createFromSketchComparer + */ + createComparer():yfiles.collections.IComparer; + /** + * Creates a {@link yfiles.collections.IComparer.} for the edges which takes the initial x-coordinates of the nodes into account. + *

    + * This implementation delegates to {@link yfiles.tree.DendrogramNodePlacer#createComparer}. + *

    + * @returns the {@link } for the edges + * @see yfiles.tree.DendrogramNodePlacer#createComparer + */ + createFromSketchComparer():yfiles.collections.IComparer; + /** + * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. + *

    + * This implementation returns null. Hence, no pre- or post-processing is done. + *

    + * @param layouter the current {@link } instance + * @param graph the input graph + * @param currentRoot the root node handled by this {@link } + * @returns null + */ + createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; + /** + * Provides {@link yfiles.tree.ParentConnectorDirection#NORTH} for all children. + *

    + * Edges will always connect to the top of the child nodes. + *

    + * @param localRoot the local root node + * @param connectorMap the map that is used for storing the direction specifiers of the child nodes + */ + determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; + /** + * Arranges the {@link yfiles.tree.SubtreeShape SubtreeShapes} of the local root and its children as a dendrogram. + * @param nodeShapeProvider the {@link } for obtaining an initial shape of the root node + * @param subtreeShapeProvider the {@link } for accessing the pre-calculated shapes of the subtrees + * @param graph the input graph + * @param localRoot the root of the subtree that should be arranged by this method + * @param parentConnectorDirection the direction specifier for the connector of the local root node to its parent node + * @returns the combined shape of the whole subtree rooted at the given local root node + */ + placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; + /** + * Gets or sets the minimum distance between the {@link yfiles.tree.SubtreeShape} of a root node and the bus connecting to all of + * its children. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + minimumRootDistance:number; + /** + * Gets or sets the minimum horizontal distance between adjacent {@link yfiles.tree.SubtreeShape SubtreeShapes}. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + minimumSubtreeDistance:number; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.DoubleLineNodePlacer} arranges the children of a local root alternating in two lines. + *

    + * Layout Style This {@link yfiles.tree.INodePlacer} arranges nodes from top to bottom. It places the subtrees in two horizontal lines below + * the root. They are distributed in an alternating fashion, i.e., adjacent subtrees are in different lines. + *

    + *

    + * This node placer is especially useful for leaves with a large width. + *

    + *

    + * {@graph {"ann":{"s":[141.67,30],"d":1},"n":[[298.33,0,60,30],[0,60],[85.83,99.9],[171.67,60],[257.5,99.9],[343.33,60],[429.17,99.9],[515,60]],"e":[[0,1,[70.83,15]],[0,2,[156.67,15]],[0,3,[242.5,15]],[0,4],[0,5,[414.17,15]],[0,6,[500,15]],[0,7,[585.83,15]]],"vp":[0.0,0.0,657.0,130.0]}} + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface DoubleLineNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class DoubleLineNodePlacer { + /** + * Creates a new {@link yfiles.tree.DoubleLineNodePlacer} instance whose direction is specified by the given modification matrix. + * @param modificationMatrix the transformation matrix for this {@link } + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); + /** + * Creates a new {@link yfiles.tree.DoubleLineNodePlacer} instance with the default settings. + */ + constructor(); + /** + * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlginment} that defines how the root node is aligned with its children and their shapes. + * @type {yfiles.tree.RootNodeAlignment} + */ + rootAlignment:yfiles.tree.RootNodeAlignment; + /** + * Gets or sets the ratio of the {@link yfiles.tree.RotatableNodePlacerBase#spacing spacing} between the root and the children in the upper line and the spacing between the + * two lines of subtrees. + * @type {number} + */ + doubleLineSpacingRatio:number; + static $class:yfiles.lang.Class; + } + /** + * A {@link yfiles.tree.FreeNodePlacer} is a simple pseudo-placer. + *

    + * The children of local root nodes are not moved. The {@link yfiles.tree.INodePlacer} just merges their rotated shapes and routes + * the edges. + *

    + *

    + * This {@link yfiles.tree.INodePlacer} may be useful if a local root node does not have any children or you want to place them + * manually. + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface FreeNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class FreeNodePlacer { + /** + * Creates a new instance of {@link yfiles.tree.FreeNodePlacer} with default settings. + */ + constructor(); + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.GridNodePlacer} arranges the shapes of the children of a local root in a grid. + *

    + * Layout Style The grid consists of a number of rows. The subtrees are assigned to the rows using a {@link yfiles.algorithms.IDataProvider} + * that is registered with the graph with {@link yfiles.tree.GridNodePlacer#ROW_INDEX_DP_KEY}. {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[50,140],[50,210],[50,70],[100,140],[100,210],[100,70],[150,140],[150,210],[150,70],[200,140],[200,210],[200,70]],"e":[[0,1,[40,15,40,120,65,120]],[0,2,[40,15,40,190,65,190]],[0,3,[40,15,40,50,65,50]],[0,4,[40,15,40,120,115,120]],[0,5,[40,15,40,190,115,190]],[0,6,[40,15,40,50,115,50]],[0,7,[40,15,40,120,165,120]],[0,8,[40,15,40,190,165,190]],[0,9,[40,15,40,50,165,50]],[0,10,[40,15,40,120,215,120]],[0,11,[40,15,40,190,215,190]],[0,12,[40,15,40,50,215,50]]],"vp":[0.0,0.0,230.0,240.0]}} + *

    + *

    + * Child nodes placed in a grid using three rows and four columns + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface GridNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class GridNodePlacer { + /** + * Creates a new {@link yfiles.tree.GridNodePlacer} instance with the given {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix} and {@link yfiles.tree.GridNodePlacer#rootAlignment root alignment}. + * @param modificationMatrix the transformation matrix for this {@link } + * @param rootAlignment the alignment of the local root with its subtrees + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,rootAlignment:yfiles.tree.RootNodeAlignment); + /** + * Creates a new {@link yfiles.tree.GridNodePlacer} instance whose direction is specified by the given modification matrix. + * @param modificationMatrix the transformation matrix for this {@link } + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); + /** + * Creates a new {@link yfiles.tree.GridNodePlacer} with default settings. + */ + constructor(); + /** + * Data provider key for assigning nodes to the rows in the grid + *

    + * If no {@link yfiles.algorithms.IDataProvider} is registered with this key, all nodes will be placed in the same row. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static ROW_INDEX_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlginment} that defines how the root node is aligned with its children and their shapes. + * @type {yfiles.tree.RootNodeAlignment} + */ + rootAlignment:yfiles.tree.RootNodeAlignment; + static $class:yfiles.lang.Class; + } + /** + * This {@link yfiles.tree.INodePlacer} places the children of a local root in groups. + *

    + * The groups are determined by the grouping of the edges that connect the children to its root. The placement of the + * groups is specified by a {@link yfiles.tree.INodePlacer} which will consider grouped children as one child. The children within + * a group are placed by another {@link yfiles.tree.INodePlacer}. + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":1},"n":[[70.15,0,91.19,30],[0,91],[111,91],[201.5,91],[0,141],[111,141],[201.5,141]],"e":[[0,1,-30,15,0,0,[85.75,50,50,50,50,106]],[0,2,0,15,0,0,[115.75,50,91,50,91,106]],[0,3,30,15,0,0,[145.75,50,181.5,50,181.5,106]],[0,4,-30,15,0,0,[85.75,50,50,50,50,156]],[0,5,0,15,0,0,[115.75,50,91,50,91,156]],[0,6,30,15,0,0,[145.75,50,181.5,50,181.5,156]]],"vp":[0.0,0.0,232.0,171.0]}} There are three edge groups whose target nodes are placed above each other + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + * @class + * @implements {yfiles.tree.INodePlacer} + */ + export interface GroupedNodePlacer extends Object,yfiles.tree.INodePlacer{} + export class GroupedNodePlacer { + /** + * Creates a new {@link yfiles.tree.GroupedNodePlacer} instance. + * @param groupPlacer the {@link } which places the child groups + * @param childPlacer the {@link } which places the children within their group + */ + constructor(groupPlacer:yfiles.tree.INodePlacer,childPlacer:yfiles.tree.INodePlacer); + /** + * Creates a {@link yfiles.tree.IProcessor} that prepares the graph for edge grouping. + *

    + * In a pre-processing step, the {@link yfiles.tree.IProcessor} inserts a dummy node for each edge group and connects it to the + * local root and the edges of the according group. The child node placer is assigned to those dummy nodes and will arrange + * them during the layout calculation. + *

    + *

    + * The changes to the graph are restored in a post-processing step. + *

    + * @param layouter the current {@link } instance + * @param graph the input graph + * @param currentRoot the root node handled by this {@link } + * @returns the {@link } responsible for preparing the graph + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + */ + createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; + /** + * Delegates to the {@link yfiles.tree.INodePlacer} responsible for arranging the nodes in one group. + * @param localRoot the local root node + * @param connectorMap the map used for storing the direction specifiers of the child nodes + */ + determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; + /** + * Places the groups of {@link yfiles.tree.SubtreeShape}s according to their group IDs. + * @param nodeShapeProvider the {@link } for obtaining an initial shape of the root node + * @param subtreeShapeProvider the {@link } for accessing the pre-calculated shapes of the subtrees + * @param graph the input graph + * @param localRoot the root of the subtree that should be arranged by this method + * @param parentConnectorDirection the direction specifier for the connector of the local root node to its parent node + * @returns the merged {@link }s of the local root and its children + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + */ + placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; + static $class:yfiles.lang.Class; + } + /** + * A {@link yfiles.tree.IFromSketchNodePlacer} arranges the subtrees while taking the initial locations of the nodes into account. + *

    + * It provides a {@link yfiles.collections.IComparer.} which sorts the outgoing edges of a node according to the initial coordinates of their target nodes. + * Keeping the original order of nodes, this {@link yfiles.collections.IComparer.} allows to incrementally add new nodes to the graph. + *

    + * @interface + * @implements {yfiles.tree.INodePlacer} + */ + export interface IFromSketchNodePlacer extends Object,yfiles.tree.INodePlacer{ + /** + * Creates an {@link yfiles.collections.IComparer. edge comparator} which takes the initial coordinates of the nodes into account. + *

    + * This {@link yfiles.collections.IComparer.} defines the order of the outgoing edges of a node before the actual placement of the node's subtree is + * calculated. + *

    + * @returns the {@link } for the edges + * @abstract + */ + createFromSketchComparer():yfiles.collections.IComparer; + } + var IFromSketchNodePlacer:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A {@link yfiles.tree.INodePlacer} is responsible for the arrangement of a local root node and all of its subtrees. + *

    + * Subtrees are represented as {@link yfiles.tree.SubtreeShape SubtreeShape}s with a connecting edge to the root of the subtree. + *

    + *

    + * Implementations of this interface have to: + *

    + *
      + *
    • + * arrange the {@link yfiles.tree.SubtreeShape SubtreeShapes} and the root node (only the relative position matters, shapes can be placed at any absolute + * location, {@link yfiles.tree.TreeLayout} will perform the final alignment). + *
    • + *
    • + * perform the edge routing from the root node to all child nodes with respect to the connector provided by the + * {@link yfiles.tree.SubtreeShape SubtreeShapes} + *
    • + *
    • calculate the union of the {@link yfiles.tree.SubtreeShape SubtreeShapes} and the shape of the root node as well as any added edges
    • + *
    • initialize the connector of the root node with respect to the preferred connection direction
    • + *
    • return the {@link yfiles.tree.SubtreeShape SubtreeShape} for the subtree including the local root
    • + *
    + * @interface + */ + export interface INodePlacer extends Object{ + /** + * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. + *

    + * This method is called by {@link yfiles.tree.TreeLayout} before arranging the {@link yfiles.tree.SubtreeShape SubtreeShapes}. If no pre- or post-processing is + * needed, this method may return null. + *

    + * @param layouter the current {@link } instance + * @param graph the input graph + * @param currentRoot the root node handled by this {@link } + * @returns a {@link } instance or null + * @abstract + */ + createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; + /** + * Provides the direction of the connector to the {@link yfiles.tree.SubtreeShape SubtreeShape} for each child node. + *

    + * This method is called by {@link yfiles.tree.TreeLayout} before the {@link yfiles.tree.SubtreeShape SubtreeShapes} for the children of the local root node are + * calculated. The direction specifiers are stored in the given map for all child nodes of the local root. + *

    + * @param localRoot the local root node + * @param connectorMap the map that must be used for storing the direction specifiers of the child nodes + * @abstract + */ + determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; + /** + * Arranges the {@link yfiles.tree.SubtreeShape SubtreeShapes} of the local root and its children and routes the edges that connect them. + *

    + * This method is the main method of the tree layout algorithm. It is called by {@link yfiles.tree.TreeLayout} in each recursion + * step to place the local root in relation to its children. Their shapes will be merged into one + * {@link yfiles.tree.SubtreeShape SubtreeShape}, which is returned by this method. + *

    + *

    + * The {@link yfiles.tree.SubtreeShape SubtreeShape} for the local root can be obtained from the nodeShapeProvider. subtreeShapeProvider contains the {@link yfiles.tree.SubtreeShape SubtreeShapes} + * assigned to the child nodes. + *

    + *

    + * Due to the order in which the tree nodes are processed, it is guaranteed that at the time of the invocation of this + * method the {@link yfiles.tree.SubtreeShape SubtreeShape} of every descendant node has already been calculated. + *

    + * @param nodeShapeProvider the {@link } for obtaining an initial shape of the root node + * @param subtreeShapeProvider the {@link } for accessing the pre-calculated shapes of the subtrees + * @param graph the input graph + * @param localRoot the root of the subtree that should be arranged by this method + * @param parentConnectorDirection the direction specifier for the connector of the local root node to its parent node + * @returns the combined shape of the whole subtree + * @abstract + */ + placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; + } + var INodePlacer:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A {@link yfiles.tree.IPortAssignment} places the ports of edges connecting to the same node. + *

    + * Classes implementing this interface are responsible for the assignment of the edges' ports. {@link yfiles.tree.INodePlacer} + * instances need to obey the currently set ports. + *

    + * @interface + */ + export interface IPortAssignment extends Object{ + /** + * Places the ports of edges connecting to the given node. + *

    + * This method is called by {@link yfiles.tree.TreeLayout} before the actual layout calculation takes place. It assigns both the + * single incoming edge's target port as well as all source ports of all outgoing child edges. + *

    + * @param graph the graph + * @param node the node whose adjacent edges' ports should be set + * @abstract + */ + assignPorts(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):void; + } + var IPortAssignment:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A {@link yfiles.tree.IProcessor} provides the possibility for each {@link yfiles.tree.INodePlacer} to prepare (and clean up) the graph + * for the children of the local root. + *

    + * It is created by {@link yfiles.tree.INodePlacer#createProcessor} and called by the {@link yfiles.tree.TreeLayout} before and after the + * actual arrangement of the nodes. + *

    + *

    + * A {@link yfiles.tree.IProcessor} may change values within the + * {@link yfiles.algorithms.IDataMap}s for its children. It can also temporarily change the graph by hiding nodes or adding dummy + * nodes. + *

    + * @interface + */ + export interface IProcessor extends Object{ + /** + * This method is called by the {@link yfiles.tree.TreeLayout} after the layout has finished. + *

    + * It can be used for cleanup tasks. + *

    + *

    + * Changes on the graph structure that have been made in {@link yfiles.tree.IProcessor#preProcess} can be undone here. + *

    + * @abstract + */ + postProcess():void; + /** + * Performs preparations for the actual tree layout in a pre-processing step. + *

    + * This method is called by {@link yfiles.tree.TreeLayout} before the {@link yfiles.tree.INodePlacer}s are called recursively. A {@link yfiles.tree.IProcessor} + * may change some settings within this method. This can be used for specifying values for the children of the local root, + * manipulate the graph structure or do anything else that needs to be done. + *

    + * @param nodePlacerDataProvider the map that stores a {@link } instance for each node + * @param portAssignmentDataProvider The map that stores a {@link } instance for each node + * @param childComparatorProvider the map that stores a {@link } instance for each node + * @abstract + */ + preProcess(nodePlacerDataProvider:yfiles.algorithms.IDataMap,portAssignmentDataProvider:yfiles.algorithms.IDataMap,childComparatorProvider:yfiles.algorithms.IDataMap):void; + } + var IProcessor:{ + $class:yfiles.lang.Class; + isInstance(o:Object):boolean; + }; + /** + * A {@link yfiles.tree.LayeredNodePlacer} arranges the nodes of a subtree respecting layers. + *

    + * Layout Style Nodes that have the same depth in the tree will be placed in the same horizontal layer. They will be vertically + * {@link yfiles.tree.LayeredNodePlacer#verticalAlignment aligned}. {@graph {"ann":{"s":[30,30],"d":1},"n":[[245.52,0],[69.46,77.5],[7.5,162.5],[181.42,240,45,45],[57.5,155,45,45],[0,240,45,45],[246.42,77.5],[406.58,70,45,45],[181.42,155,45,45],[246.42,155,45,45],[375.88,247.5],[7.5,332.5],[122.5,158.04,38.92,38.92],[409.62,158.04,38.92,38.92],[311.42,162.5],[65,247.5],[443.38,243.04,38.92,38.92],[138.92,332.5],[338.92,325,45,45],[311.42,247.5],[403.92,328.04,38.92,38.92],[188.92,332.5],[238.92,332.5]],"e":[[0,1,[260.52,42,84.46,42]],[1,2,[84.46,127,22.5,127]],[1,4,[84.46,127,80,127]],[2,5],[0,6,[260.52,42,261.42,42]],[0,7,[260.52,42,429.08,42]],[6,8,[261.42,127,203.92,127]],[8,3],[6,9,[261.42,127,268.92,127]],[5,11],[1,12,[84.46,127,141.96,127]],[7,13],[13,10,[429.08,212,390.88,212]],[6,14,[261.42,127,326.42,127]],[4,15],[13,16,[429.08,212,462.83,212]],[3,17,[203.92,297,153.92,297]],[10,18,[390.88,297,361.42,297]],[14,19],[10,20,[390.88,297,423.38,297]],[3,21],[3,22,[203.92,297,253.92,297]]],"vp":[0.0,0.0,483.0,370.0]}} + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface LayeredNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class LayeredNodePlacer { + /** + * Creates a new {@link yfiles.tree.LayeredNodePlacer} instance whose direction is specified by the given modification matrix. + *

    + * The given ID identifies different {@link yfiles.tree.LayeredNodePlacer} instances that share the same layer heights. + *

    + * @param modificationMatrix the transformation matrix for this {@link } + * @param id the {@link } ID + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,id:Object); + /** + * Creates a new {@link yfiles.tree.LayeredNodePlacer} instance with the default settings. + */ + constructor(); + /** + * Gets or sets whether or not the layering is done dendrogram-like. + *

    + * When enabled, leaves are placed in the same layer and remaining tree nodes are assigned to a layer as close to their + * children as possible. + *

    + * @type {boolean} + */ + dendrogramStyle:boolean; + /** + * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlginment} that defines how the root node is aligned with its children and their shapes. + * @type {yfiles.tree.RootNodeAlignment} + */ + rootAlignment:yfiles.tree.RootNodeAlignment; + /** + * Gets or sets the relative vertical alignment of nodes within their respective layers. + *

    + * A value of 0 means that nodes are top-aligned; a value of 0.5 means that nodes are center-aligned; a value of 1 means + * that nodes are bottom-aligned; + *

    + *

    + * Values for a valid vertical alignment are in the range [0..1]. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified alignment is outside [0..1] + * @type {number} + */ + verticalAlignment:number; + /** + * Gets the ID of this {@link yfiles.tree.LayeredNodePlacer}. + *

    + * The ID is used for identifying + * {@link yfiles.tree.LayeredNodePlacer}s that share information about the layer height. Using different IDs allows aligned layouts + * within different subtrees. + *

    + * @type {Object} + */ + id:Object; + /** + * Gets or sets the distance between two adjacent layers. + *

    + * The spacing needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified spacing is negative + * @type {number} + */ + layerSpacing:number; + /** + * Gets or sets the routing style for the edges in the subtree. + * @throws {Stubs.Exceptions.ArgumentError} if the specified routing style specifier is unknown + * @type {yfiles.tree.LayeredRoutingStyle} + */ + routingStyle:yfiles.tree.LayeredRoutingStyle; + /** + * Gets or sets the vertical bus alignment for orthogonally routed edges. + *

    + * The bus alignment determines the relative position of an edge bus in between two subsequent layers of nodes. + *

    + *

    + * Values for a valid vertical alignment are in the range [0..1], such that: + *

    + *
      + *
    • A value of 0.0 places the bus at the top, right below the parent node.
    • + *
    • A value of 0.5 places the bus in the middle between parent and child nodes.
    • + *
    • A value of 1.0 places the bus at the bottom, right above the child nodes.
    • + *
    + * @throws {Stubs.Exceptions.ArgumentError} if the specified alignment is outside [0..1] + * @type {number} + */ + busAlignment:number; + /** + * Gets or sets whether or not straight edges are extended to avoid label overlaps. + *

    + * If enabled, polyline connectors between the parent and its children are added to the according subtree shape. Node or + * edge labels will not be crossed. + *

    + * @type {boolean} + */ + polylineLabeling:boolean; + static $class:yfiles.lang.Class; + } + /** + * A {@link yfiles.tree.LeafNodePlacer} creates a {@link yfiles.tree.SubtreeShape SubtreeShape} for a leaf node and routes its incoming edge at the target side. + * @class + * @implements {yfiles.tree.INodePlacer} + */ + export interface LeafNodePlacer extends Object,yfiles.tree.INodePlacer{} + export class LeafNodePlacer { + /** + * Creates a new {@link yfiles.tree.LeafNodePlacer} instance with default settings. + */ + constructor(); + /** + * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. + *

    + * This implementation returns null. Hence, no pre- or post-processing is done. + *

    + * @param layouter the current {@link } instance + * @param graph the input graph + * @param currentRoot the root node handled by this {@link } + * @returns null + */ + createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; + /** + * Does nothing because leaf nodes don't have children so there are no child connectors. + * @param localRoot the local root node + * @param connectorMap the map that must be used for storing the direction specifiers of the child nodes + */ + determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; + /** + * Creates a {@link yfiles.tree.SubtreeShape} for the local root node (a leaf node in this case) and adds target points to the + * incoming edge. + *

    + * The incoming edge is routed according to possibly assigned {@link yfiles.layout.PortConstraint}s. + *

    + * @param nodeShapeProvider the {@link } for obtaining an initial shape of the root node + * @param subtreeShapeProvider the {@link } for accessing the pre-calculated shapes of the subtrees + * @param graph the input graph + * @param localRoot the root of the subtree that should be arranged by this method + * @param parentConnectorDirection the direction specifier for the connector of the local root node to its parent node + * @returns the {@link } of the leaf node including the connector + */ + placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.LeftRightNodePlacer} arranges the children in a subtree on the left and the right of a vertical bus. + *

    + * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[35,0],[0,50],[70,50],[0,100],[70,100],[0,150],[70,150],[0,200],[70,200],[35,250]],"e":[[0,1,[50,65]],[0,2,[50,65]],[0,3,[50,115]],[0,4,[50,115]],[0,5,[50,165]],[0,6,[50,165]],[0,7,[50,215]],[0,8,[50,215]],[0,9]],"vp":[0.0,0.0,100.0,280.0]}} + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface LeftRightNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class LeftRightNodePlacer { + /** + * Creates a new {@link yfiles.tree.LeftRightNodePlacer} instance using the given modification matrix. + * @param modificationMatrix the transformation matrix for this {@link } + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); + /** + * Creates a new {@link yfiles.tree.LeftRightNodePlacer} instance with default settings. + */ + constructor(); + /** + * Creates a special {@link yfiles.algorithms.IDataProvider} that determines whether a given node is placed left or right of the + * parent node. + *

    + * This {@link yfiles.algorithms.IDataProvider} can be registered with the graph with key + * {@link yfiles.tree.LeftRightNodePlacer#LEFT_RIGHT_DP_KEY}. It calculates the side with respect to the initial coordinates of the + * nodes in the graph, considering the orientation of the subtree. + *

    + *

    + * If a node is assigned to the left side, this {@link yfiles.algorithms.IDataProvider} will return true. For the right side, it + * will return false. + *

    + * @param nodePlacerMap a {@link } containing the corresponding {@link }s for the node + * @returns + * @static + */ + static createLeftRightDataProvider(nodePlacerMap:yfiles.algorithms.IDataProvider):yfiles.algorithms.IDataProvider; + /** + * Data provider key for assigning nodes to the left or the right side of the bus + *

    + * If no {@link yfiles.algorithms.IDataProvider} is specified using this key, the nodes will be placed alternating from left to + * right. + *

    + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static LEFT_RIGHT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Gets or sets the horizontal distance between nodes or subtrees. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + horizontalDistance:number; + /** + * Gets or sets the vertical distance between nodes or subtrees. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified distance is negative + * @type {number} + */ + verticalDistance:number; + /** + * Sets a uniform horizontal and vertical spacing between subtrees. + *

    + * This method sets the given distance value for the {@link yfiles.tree.LeftRightNodePlacer#horizontalDistance horizontal spacing} and for the {@link yfiles.tree.LeftRightNodePlacer#verticalDistance vertical spacing}. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the specified spacing value is negative + * @see yfiles.tree.LeftRightNodePlacer#horizontalDistance + * @see yfiles.tree.LeftRightNodePlacer#verticalDistance + * @type {number} + */ + spacing:number; + /** + * Gets or sets whether or not the last child is placed centered, aligned with the bus and below the other child nodes. + *

    + * When enabled, the last child will always be centered independent of the number of siblings. + *

    + * @type {boolean} + */ + placeLastOnBottom:boolean; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.MultiParentDescriptor} provides style information for multi-parent structures. + *

    + * This class is used by {@link yfiles.tree.TreeLayout} to determine the desired layout of nodes that constitute a multi-parent + * structure. All nodes of such a structure are placed side by side and the incident edges are routed over common points + * for incoming edges and for outgoing edges. + *

    + *

    + * {@graph {"ann":{"s":[40,40],"d":1},"n":[[411.25,0],[682.5,85],[210,155],[612.5,165],[35,225],[577.5,235],[385,320.5],[682.5,155,40,60],[70,305],[210,85],[0,295,40,60],[0,385],[210,225],[700,320.5],[175,295],[245,295],[315,225],[752.5,165],[420,405.5],[647.5,235],[752.5,235],[770,406],[140,380.5,40,60],[210,390.5],[315,295,40,60],[490,405.5],[175,485.5],[455,320.5],[481.25,0],[700,406],[560,406],[630,406],[560,491],[630,491],[525,320.5],[280,380.5,40,60],[70,390.5]],"e":[[0,1,[431.25,55.5,466.25,55.5,466.25,70,702.5,70]],[1,3,[702.5,140,632.5,140]],[2,4,[230,210,55,210]],[3,5,[632.5,220,597.5,220]],[5,6,[597.5,290,475,290,475,305,405,305]],[1,7],[4,8,[55,280,90,280]],[0,9,[431.25,55.5,466.25,55.5,466.25,70,230,70]],[9,2],[4,10,[55,280,20,280]],[10,11],[2,12],[5,13,[597.5,290,720,290]],[12,14,[230,280,195,280]],[12,15,[230,280,265,280]],[2,16,[230,210,335,210]],[1,17,[702.5,140,772.5,140]],[6,18,[405,376,475,376,475,390.5,440,390.5]],[3,19,[632.5,220,667.5,220]],[17,20],[13,21,[720,375.5,790,375.5]],[14,22,[195,365,160,365]],[14,23,[195,365,230,365]],[16,24],[6,25,[405,376,475,376,475,390.5,510,390.5]],[22,26,[160,456,195,456]],[23,26,[230,456,195,456]],[5,27,[597.5,290,475,290]],[27,18,[475,390.5,440,390.5]],[27,25,[475,390.5,510,390.5]],[28,9,[501.25,55.5,466.25,55.5,466.25,70,230,70]],[28,1,[501.25,55.5,466.25,55.5,466.25,70,702.5,70]],[13,29],[13,30,[720,375.5,615,375.5,615,390.5,580,390.5]],[13,31,[720,375.5,615,375.5,615,390.5,650,390.5]],[30,32,[580,461.5,615,461.5,615,476,580,476]],[31,32,[650,461.5,615,461.5,615,476,580,476]],[30,33,[580,461.5,615,461.5,615,476,650,476]],[31,33,[650,461.5,615,461.5,615,476,650,476]],[5,34,[597.5,290,475,290,475,305,545,305]],[34,18,[545,376,475,376,475,390.5,440,390.5]],[34,25,[545,376,475,376,475,390.5,510,390.5]],[14,35,[195,365,300,365]],[35,26,[300,456,195,456]],[14,36,[195,365,90,365]],[36,26,[90,456,195,456]]],"vp":[0.0,0.0,810.0,531.0]}} + *

    + *

    + * A tree graph containing multi-parent structures + *

    + * @see yfiles.tree.TreeLayout#MULTI_PARENT_DESCRIPTOR_DP_KEY + * @class + */ + export interface MultiParentDescriptor extends Object{} + export class MultiParentDescriptor { + /** + * Creates a new {@link yfiles.tree.MultiParentDescriptor} instance with default settings. + */ + constructor(); + /** + * Gets or sets the minimum distance between two nodes belonging to the same multi-parent structure. + *

    + * The distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given node distance is negative + * @type {number} + */ + minimumNodeDistance:number; + /** + * Gets or sets the minimum distance between the nodes of a multi-parent structure and the bus connecting these nodes. + *

    + * In case the edge style is not orthogonal, the bus only consists of a common point. + *

    + *

    + * The minimum distance needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given bus distance is negative + * @type {number} + */ + minimumBusDistance:number; + /** + * Gets or sets the relative vertical alignment of nodes belonging to the same multi-parent structure. + *

    + * A value of 0 means that nodes are top-aligned; a value of 1 means that nodes are bottom-aligned; a value of 0.5 means + * that nodes are center-aligned. + *

    + *

    + * Values outside the interval [0,1] will result in a compact node placement with unaligned nodes, especially when labels + * are considered. + *

    + * @type {number} + */ + verticalAlignment:number; + /** + * Gets or sets the routing style for edges that connect to nodes which constitute a multi-parent structure. + * @throws {Stubs.Exceptions.ArgumentError} if the given routing style is unknown + * @type {yfiles.tree.MultiParentRoutingStyle} + */ + edgeStyle:yfiles.tree.MultiParentRoutingStyle; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.NodeOrderComparer} compares edges according to a specified order. + *

    + * It obtains the order from a {@link yfiles.algorithms.IDataProvider} registered with the graph with key + * {@link yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY}. + *

    + *

    + * Various tree layout algorithms can use this {@link yfiles.collections.IComparer.} to influence the resulting layout. To achieve this, use this comparator and + * assign it to the comparator property of the layout algorithm classes. + *

    + * @see yfiles.tree.ClassicTreeLayout#comparer + * @see yfiles.tree.TreeLayout#defaultOutEdgeComparer + * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY + * @see yfiles.tree.BalloonLayout#comparer + * @see yfiles.tree.AspectRatioTreeLayout#comparer + * @see yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY + * @class + * @implements {yfiles.collections.IComparer.} + */ + export interface NodeOrderComparer extends Object,yfiles.collections.IComparer{} + export class NodeOrderComparer { + /** + * Creates a new {@link yfiles.tree.NodeOrderComparer} instance. + */ + constructor(); + /** + * Compares two edges according to their index in the order specified using a {@link yfiles.algorithms.IDataProvider}. + *

    + * Target nodes for which the {@link yfiles.algorithms.IDataProvider} registered with {@link yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY} + * returns null or an {@link Object} that does not implement {@link yfiles.lang.IComparable} are treated as being smaller than other target + * nodes. + *

    + * @param edge1 the first edge + * @param edge2 the second edge + * @returns + * @see yfiles.tree.NodeOrderComparer#NODE_ORDER_COMPARABLE_DP_KEY + */ + compare(edge1:Object,edge2:Object):number; + /** + * Data provider key for registering an order for each node in the graph + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static NODE_ORDER_COMPARABLE_DP_KEY:yfiles.algorithms.NodeDpKey; + static $class:yfiles.lang.Class; + } + /** + * Abstract base class for implementations of the {@link yfiles.tree.INodePlacer} interface. + *

    + * This class provides convenience methods for sub-tasks that are often used during the arrangement of a local root and its + * children. It also offers prepared implementations for the methods of the {@link yfiles.tree.INodePlacer} interface. + *

    + *

    + * Subclasses just need to override the following two abstract methods: {@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode} and + * {@link yfiles.tree.NodePlacerBase#determineChildConnectors}. + *

    + * @class + * @implements {yfiles.tree.INodePlacer} + * @implements {yfiles.lang.ICloneable} + */ + export interface NodePlacerBase extends Object,yfiles.tree.INodePlacer,yfiles.lang.ICloneable{} + export class NodePlacerBase { + /** + * Creates a new instance of {@link yfiles.tree.NodePlacerBase}. + */ + constructor(); + /** + * Returns a clone of this {@link yfiles.tree.INodePlacer} instance. + * @returns an exact copy of this {@link } instance + */ + clone():Object; + /** + * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. + *

    + * This implementation returns null. Hence, no pre- or post-processing will be done. + *

    + * @param layouter the current {@link } instance + * @param graph the input graph + * @param currentRoot the root node handled by this {@link } + * @returns null + */ + createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; + /** + * Determines a connector direction for the given child node. + *

    + * This method is used in {@link yfiles.tree.NodePlacerBase#determineChildConnectors} and must be implemented by subclasses. + *

    + * @param child the child node + * @returns a direction specifier as defined in the {@link } interface + * @protected + * @abstract + */ + determineChildConnector(child:yfiles.algorithms.Node):yfiles.tree.ParentConnectorDirection; + /** + * Provides the direction of the connector to the {@link yfiles.tree.SubtreeShape SubtreeShape} for each child node. + *

    + * This implementation uses {@link yfiles.tree.NodePlacerBase#determineChildConnector} to retrieve the direction for the + * connectors. + *

    + * @param localRoot the local root node + * @param connectorMap the map that must be used for storing the direction specifiers of the child nodes + */ + determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; + /** + * Returns the {@link yfiles.tree.SubtreeShape} for the given node. + *

    + * This is a convenience method that retrieves a {@link yfiles.tree.SubtreeShape} for a single node from the corresponding + * {@link yfiles.algorithms.IDataProvider}. + *

    + *

    + * This method is used in {@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode} for retrieving the {@link yfiles.tree.SubtreeShape}s for + * the local root nodes. It may be overridden to return a custom implementation of {@link yfiles.tree.SubtreeShape}. + *

    + * @param node the node + * @returns the {@link } for the given node + * @protected + */ + getNodeShape(node:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; + /** + * Returns the {@link yfiles.tree.SubtreeShape} for the subtree rooted at the given node. + *

    + * This is a convenience method that retrieves a {@link yfiles.tree.SubtreeShape} of a complete subtree from the corresponding + * {@link yfiles.algorithms.IDataProvider}. + *

    + *

    + * This method is used in {@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode} for retrieving the {@link yfiles.tree.SubtreeShape}s for + * the subtrees that are arranged. It may be overridden to return a custom implementation of {@link yfiles.tree.SubtreeShape}. + *

    + * @param node the local root node + * @returns the {@link } of the subtree rooted at the given local root node + * @protected + */ + getSubtreeShape(node:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; + /** + * Initializes the local data structures and then delegates the work to the abstract variant of this method + * ({@link yfiles.tree.NodePlacerBase#placeSubtreeOfNode}) + * @param nodeShapeProvider the {@link } for obtaining an initial shape of the root node + * @param subtreeShapeProvider the {@link } for accessing the pre-calculated shapes of the subtrees + * @param graph the input graph + * @param localRoot the root of the subtree that should be arranged by this method + * @param parentConnectorDirection the direction specifier for the connector of the local root node to its parent node + * @returns the merged {@link } for the subtree rooted at the local root node + * @see yfiles.tree.NodePlacerBase#placeSubtreeOfNode + */ + placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; + /** + * Arranges the local root relative to the {@link yfiles.tree.SubtreeShape} of its children. + *

    + * This is the main method that must be implemented by subclasses. It is called by + * {@link yfiles.tree.NodePlacerBase#placeSubtree}. + *

    + * @param localRoot the local root node + * @param parentConnectorDirection the direction of the connector + * @returns a {@link } instance that describes the shape of the whole subtree rooted at the given local root + * @protected + * @abstract + */ + placeSubtreeOfNode(localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; + /** + * The graph instance this class is working on. + * @protected + * @type {yfiles.layout.LayoutGraph} + */ + graph:yfiles.layout.LayoutGraph; + static $class:yfiles.lang.Class; + } + /** + * A {@link yfiles.tree.RootNodeAlignment} describes how a local root node is arranged in relation to its children. + *

    + * The actual placement depends on the orientation of the subtree rooted at the current local root node. All descriptions + * of the provided alignments refer to the top-to-bottom orientation described by + * {@link yfiles.tree.RotatableNodePlacerMatrix#DEFAULT}. In this case, the subtrees are placed below the local root and the local + * root is aligned horizontally above them. + *

    + * @class + */ + export interface RootNodeAlignment extends Object{} + export class RootNodeAlignment { + /** + * Calculates the common bounds of the given subtree shapes. + *

    + * This method can be used when placing the local root above its subtrees in method + * {@link yfiles.tree.RootNodeAlignment#placeParentHorizontal}. + *

    + * @param shapes a list of rotated subtree shapes + * @returns the rectangle describing the bounds containing all given shapes + * @protected + * @static + */ + static getBounds(shapes:yfiles.collections.IList):yfiles.algorithms.Rectangle2D; + /** + * Moves the shape of the local root to a suitable position relative to the children's shapes. + *

    + * The movement should only be done on the x-axis (horizontally). + *

    + *

    + * This method is called by {@link yfiles.tree.RotatableNodePlacerBase}s when they {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode place the subtrees}. + *

    + * @param rootShape the shape of the local root node that will be moved + * @param shapes a list of rotated subtree shapes, representing the shapes of the child nodes + * @param shapeBounds accumulated bounds of the shapes of all child nodes + * @param spacing the spacing value that should be used + * @protected + * @abstract + */ + placeParentHorizontal(rootShape:yfiles.tree.RotatedSubtreeShape,shapes:yfiles.collections.IList,shapeBounds:yfiles.algorithms.Rectangle2D,spacing:number):void; + /** + * Horizontal {@link yfiles.tree.RootNodeAlignment} at the center of the subtrees. + *

    + * The root node is placed centered above its whole subgraph. To determine the alignment, only {@link yfiles.layout.INodeLayout}s + * are considered. Node labels are not included although they are also contained in {@link yfiles.tree.SubtreeShape}s. + *

    + * @const + * @static + * @type {yfiles.tree.RootNodeAlignment} + */ + static CENTER:yfiles.tree.RootNodeAlignment; + /** + * Horizontal {@link yfiles.tree.RootNodeAlignment} at the median child node. + *

    + * The root node is placed above the median of its children. To determine the alignment, only {@link yfiles.layout.INodeLayout}s + * are considered. Node labels are not included although they are also contained in {@link yfiles.tree.SubtreeShape}s. + *

    + * @const + * @static + * @type {yfiles.tree.RootNodeAlignment} + */ + static MEDIAN:yfiles.tree.RootNodeAlignment; + /** + * Horizontal {@link yfiles.tree.RootNodeAlignment} left of the children. + *

    + * The local root node leaves a distance specified by the given spacing to the leftmost child. To determine the alignment, + * only {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in + * {@link yfiles.tree.SubtreeShape}s. + *

    + * @const + * @static + * @type {yfiles.tree.RootNodeAlignment} + */ + static LEADING:yfiles.tree.RootNodeAlignment; + /** + * Horizontal {@link yfiles.tree.RootNodeAlignment} right of the children. + *

    + * The root node leaves a distance specified by the given spacing to the rightmost child. To determine the alignment, only + * {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in + * {@link yfiles.tree.SubtreeShape}s. + *

    + * @const + * @static + * @type {yfiles.tree.RootNodeAlignment} + */ + static TRAILING:yfiles.tree.RootNodeAlignment; + /** + * Horizontal {@link yfiles.tree.RootNodeAlignment} at the left side. + *

    + * The root node is placed left aligned with its leftmost child. To determine the alignment, only + * {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in + * {@link yfiles.tree.SubtreeShape}s. + *

    + * @const + * @static + * @type {yfiles.tree.RootNodeAlignment} + */ + static LEFT:yfiles.tree.RootNodeAlignment; + /** + * Horizontal {@link yfiles.tree.RootNodeAlignment} at the right side. + *

    + * The root node is placed right aligned with its rightmost child. To determine the alignment, only + * {@link yfiles.layout.INodeLayout}s are considered. Node labels are not included although they are also contained in + * {@link yfiles.tree.SubtreeShape}s. + *

    + * @const + * @static + * @type {yfiles.tree.RootNodeAlignment} + */ + static RIGHT:yfiles.tree.RootNodeAlignment; + /** + * Horizontal alignment at the center of the children. + *

    + * The root node is placed centered over its direct children. To determine the alignment, only {@link yfiles.layout.INodeLayout}s + * are considered. Node labels are not included although they are also contained in {@link yfiles.tree.SubtreeShape}s. + *

    + * @const + * @static + * @type {yfiles.tree.RootNodeAlignment} + */ + static CENTER_OVER_CHILDREN:yfiles.tree.RootNodeAlignment; + /** + * An array containing all supported {@link yfiles.tree.RootNodeAlignment}s. + * @const + * @static + * @type {Array.} + */ + static ALL:yfiles.tree.RootNodeAlignment[]; + static $class:yfiles.lang.Class; + } + /** + * A matrix describes the rotation of the subtree handled by {@link yfiles.tree.RotatableNodePlacerBase}. + *

    + * Subtrees may be rotated or mirrored. Also, matrices offering a combination of rotation and mirroring are provided. + *

    + * @class + */ + export interface RotatableNodePlacerMatrix extends Object{} + export class RotatableNodePlacerMatrix { + /** + * Compares the values of the current {@link yfiles.tree.RotatableNodePlacerMatrix} with the values of the given + * {@link yfiles.tree.RotatableNodePlacerMatrix}. + * @param other the matrix + * @returns true if this matrix and the given other matrix contain the same values, false otherwise + */ + equalValues(other:yfiles.tree.RotatableNodePlacerMatrix):boolean; + /** + * Multiplies this {@link yfiles.tree.RotatableNodePlacerMatrix} with the given other {@link yfiles.tree.RotatableNodePlacerMatrix}. + * @param other the other matrix + * @returns the product of both matrices + */ + multiply(other:yfiles.tree.RotatableNodePlacerMatrix):yfiles.tree.RotatableNodePlacerMatrix; + /** + * The identity matrix which does not apply any rotation or mirroring. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static DEFAULT:yfiles.tree.RotatableNodePlacerMatrix; + /** + * A matrix which applies a counter-clockwise rotation by 90 degrees. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static ROT90:yfiles.tree.RotatableNodePlacerMatrix; + /** + * A matrix which applies a rotation by 180 degrees. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static ROT180:yfiles.tree.RotatableNodePlacerMatrix; + /** + * A matrix which applies a counter-clockwise rotation by 270 degrees. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static ROT270:yfiles.tree.RotatableNodePlacerMatrix; + /** + * A matrix which applies a horizontal mirroring. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static MIR_HOR:yfiles.tree.RotatableNodePlacerMatrix; + /** + * A matrix which applies a vertical mirroring. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static MIR_VERT:yfiles.tree.RotatableNodePlacerMatrix; + /** + * A matrix which applies a horizontal mirroring and a counter-clockwise rotation by 90 degrees. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static MIR_HOR_ROT90:yfiles.tree.RotatableNodePlacerMatrix; + /** + * A matrix which applies a vertical mirroring and a counter-clockwise rotation by 90 degrees. + * @const + * @static + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + static MIR_VERT_ROT90:yfiles.tree.RotatableNodePlacerMatrix; + static $class:yfiles.lang.Class; + } + /** + * Abstract base class for {@link yfiles.tree.INodePlacer}s that support rotations of the subtrees. + *

    + * The direction specified in this {@link yfiles.tree.RotatableNodePlacerBase} (defined by a + * {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix transformation matrix}) rotates the subtree that is placed. This is the final direction of this subtree. Rotations are + * not accumulated. + *

    + *

    + * {@link yfiles.tree.INodePlacer}s of this type will only implement the default direction (i.e. top-to-bottom). The other + * directions are calculated using the specified modification {@link yfiles.tree.RotatableNodePlacerMatrix}. The direction used by + * the implementing + * {@link yfiles.tree.INodePlacer}s is called the model direction while the actual direction in the graph is the real direction. + *

    + *

    + * Note that using rotatable {@link yfiles.tree.INodePlacer}s has some pitfalls. Calculations must be aware of the rotations. + * Especially operations on {@link yfiles.algorithms.BorderLine}s should not be called directly (e.g. + * {@link yfiles.algorithms.BorderLine#mergeWithMin}, {@link yfiles.algorithms.BorderLine#mergeWithMax}). The corresponding methods of {@link yfiles.tree.RotatableNodePlacerBase} + * already support the different directions. + *

    + *

    + * Subclasses just need to override the following two abstract methods: {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode} + * and {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnectors}. + *

    + * @class + * @implements {yfiles.tree.IFromSketchNodePlacer} + */ + export interface RotatableNodePlacerBase extends Object,yfiles.tree.IFromSketchNodePlacer{} + export class RotatableNodePlacerBase { + /** + * Creates a new instance of {@link yfiles.tree.RotatableNodePlacerBase} whose direction is specified by the given modification + * matrix. + * @param modificationMatrix the transformation matrix for the {@link } + * @protected + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); + /** + * Creates a {@link yfiles.collections.IComparer.} for outgoing edges that takes the rotation into account. + * @returns the {@link } that considers the rotation + */ + createComparer():yfiles.collections.IComparer; + /** + * Delegates to {@link yfiles.tree.RotatableNodePlacerBase#createComparer}. + * @returns the From Sketch {@link } + * @see yfiles.tree.RotatableNodePlacerBase#createComparer + */ + createFromSketchComparer():yfiles.collections.IComparer; + /** + * Creates an optional {@link yfiles.tree.IProcessor} for pre- and post-processing. + *

    + * This implementation returns null. Hence, no pre- or post-processing is done. + *

    + * @param layouter the current {@link } instance + * @param graph the input graph + * @param currentRoot the root node handled by this {@link } + * @returns null + */ + createProcessor(layouter:yfiles.tree.TreeLayout,graph:yfiles.layout.LayoutGraph,currentRoot:yfiles.algorithms.Node):yfiles.tree.IProcessor; + /** + * Determines a connector direction for the given child node. + *

    + * This method is called by {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnectors} and must be implemented by + * subclasses. Implementations can assume the default direction (top-to-bottom) for their arrangement. + *

    + * @param child the child node + * @returns a direction specifier as defined in the {@link } interface + * @protected + * @abstract + */ + determineChildConnector(child:yfiles.algorithms.Node):yfiles.tree.ParentConnectorDirection; + /** + * Provides the direction of the connector to the {@link yfiles.tree.SubtreeShape SubtreeShape} for each child node. + *

    + * This implementation uses {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnector} and the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix} to + * retrieve the direction for the connectors. + *

    + * @param localRoot the local root + * @param connectorMap the map that must be used for storing the direction specifiers of the child nodes + * @see yfiles.tree.RotatableNodePlacerBase#determineChildConnector + */ + determineChildConnectors(localRoot:yfiles.algorithms.Node,connectorMap:yfiles.algorithms.IDataMap):void; + /** + * Returns the rotated subtree shape for the given node. + *

    + * This is a convenience method that retrieves a rotated subtree shape for a single node from the corresponding + * {@link yfiles.algorithms.IDataProvider}. This shape may be modified and returned by + * {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode}. + *

    + * @param node the node + * @returns the subtree shape for the given node + * @protected + */ + getNodeShape(node:yfiles.algorithms.Node):yfiles.tree.RotatedSubtreeShape; + /** + * Returns the target {@link yfiles.layout.PortConstraint} for the local root's incoming edge. + *

    + * This method translates the {@link yfiles.layout.PortConstraint} according to the rotation described by the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. + * It should be used instead of {@link yfiles.layout.PortConstraint#getTPC}. + *

    + *

    + * This method may be used in {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode} to route the edges to the according + * port. It may be overridden to provide constant {@link yfiles.layout.PortConstraint}s for each node. + *

    + * @param localRoot the local root + * @returns the {@link } for the incoming edge of the local root or {@link #ANY} if no {@link } + * is assigned for that edge + * @protected + */ + getPortConstraint(localRoot:yfiles.algorithms.Node):yfiles.layout.PortConstraint; + /** + * Returns the absolute source point of the given edge depending on the rotation of this {@link yfiles.tree.INodePlacer}. + *

    + * This method translates the source point according to the rotation described by the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. It should be + * used instead of {@link yfiles.layout.LayoutGraph#getSourcePointAbs}. + *

    + *

    + * It can be used in an implementation of {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode}. + *

    + * @param edge the edge whose absolute source point should be calculated + * @returns the translated absolute source point for the given edge and current modification matrix + * @protected + */ + getSourcePointAbs(edge:yfiles.algorithms.Edge):yfiles.algorithms.YPoint; + /** + * Returns the rotated subtree shape for the subtree rooted at the given node. + *

    + * This is a convenience method that retrieves a subtree shape of a complete subtree from the corresponding + * {@link yfiles.algorithms.IDataProvider}. + *

    + * @param node the local root node + * @returns the rotated subtree shape of the subtree rooted at the given local root node + * @protected + */ + getSubtreeShape(node:yfiles.algorithms.Node):yfiles.tree.RotatedSubtreeShape; + /** + * Initializes the local data structures and then delegates the work to the abstract variant of this method + * ({@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode}). + * @param nodeShapeProvider the {@link } for obtaining an initial shape of the root node + * @param subtreeShapeProvider the {@link } for accessing the pre-calculated shapes of the subtrees + * @param graph the input graph + * @param localRoot the root of the subtree that should be arranged by this method + * @param parentConnectorDirection the direction specifier for the connector of the local root node to its parent node + * @returns the merged {@link } for the subtree rooted at the local root node + * @see yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode + */ + placeSubtree(nodeShapeProvider:yfiles.algorithms.IDataProvider,subtreeShapeProvider:yfiles.algorithms.IDataProvider,graph:yfiles.layout.LayoutGraph,localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.SubtreeShape; + /** + * Arranges the local root relative to the rotated subtree shapes of its children. + *

    + * This is the main method that must be implemented by subclasses. For calculations and locations subclasses should use the + * corresponding methods of {@link yfiles.tree.RotatableNodePlacerBase} which already consider the {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. + *

    + * @param localRoot the local root node + * @param parentConnectorDirection the direction specifier for the connector of the local root node to its parent node + * @returns the merged subtree shape that contains the local root node and all its children + * @protected + * @abstract + */ + placeSubtreeOfNode(localRoot:yfiles.algorithms.Node,parentConnectorDirection:yfiles.tree.ParentConnectorDirection):yfiles.tree.RotatedSubtreeShape; + /** + * Translates the given real direction of the resulting layout to the model direction of this + * {@link yfiles.tree.RotatableNodePlacerBase}. + *

    + * This method is used in {@link yfiles.tree.RotatableNodePlacerBase#placeSubtreeOfNode} to be able to retrieve the model direction + * for the connector + *

    + * @param realDirection the real direction + * @returns the model direction + * @throws {Stubs.Exceptions.ArgumentError} if translation for the given real direction is not implemented + * @protected + */ + translateDirectionToModel(realDirection:yfiles.tree.ParentConnectorDirection):number; + /** + * Translates the given model direction to the real direction in the resulting layout. + *

    + * This method is used in {@link yfiles.tree.RotatableNodePlacerBase#determineChildConnectors} to be able to return the real + * connector direction. + *

    + * @param modelDirection the model direction + * @returns the real direction + * @throws {Stubs.Exceptions.ArgumentError} if translation for the given model direction is not implemented + * @protected + */ + translateDirectionToReal(modelDirection:yfiles.tree.ParentConnectorDirection):number; + /** + * Translates a point from the real layout direction to the model direction using the given modification matrix. + * @param modificationMatrix the modification matrix to use for the translation + * @param realWorldPoint the point with coordinates from the real world + * @returns the translated point with coordinates from the model + * @static + */ + static translatePoint(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,realWorldPoint:yfiles.algorithms.YPoint):yfiles.algorithms.YPoint; + /** + * The graph instance this {@link yfiles.tree.INodePlacer} is working on. + * @protected + * @type {yfiles.layout.LayoutGraph} + */ + graph:yfiles.layout.LayoutGraph; + /** + * The provider of {@link yfiles.tree.SubtreeShape}s for whole subtrees. + * @protected + * @type {yfiles.algorithms.IDataProvider} + */ + subtreeShapeProvider:yfiles.algorithms.IDataProvider; + /** + * The provider of {@link yfiles.tree.SubtreeShape}s for single nodes. + * @protected + * @type {yfiles.algorithms.IDataProvider} + */ + nodeShapeProvider:yfiles.algorithms.IDataProvider; + /** + * The list containing the created children. + * @protected + * @type {yfiles.collections.IList.} + */ + createdChildren:yfiles.collections.IList; + /** + * Gets the modification matrix that defines the direction of the subtree. + * @type {yfiles.tree.RotatableNodePlacerMatrix} + */ + modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix; + /** + * Gets or sets the spacing between subtrees. + *

    + * The spacing needs to be non-negative. + *

    + * @throws {Stubs.Exceptions.ArgumentError} if the given spacing is negative + * @type {number} + */ + spacing:number; + static $class:yfiles.lang.Class; + } + /** + * Decorates a SubtreeShape and provides rotated access on it. + * @class + */ + export interface RotatedSubtreeShape extends Object{} + export class RotatedSubtreeShape { + /** + * For testing purposes only + * @protected + */ + constructor(); + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.SimpleNodePlacer} arranges all children of a local root in a single row. + *

    + * Layout Style {@graph {"ann":{"s":[30,30],"d":1},"n":[[0,0],[50,50],[235,50],[370,50],[720,50],[100,100],[770,100],[285,100],[420,50],[520,50],[570,100],[670,100],[150,150],[720,150],[470,100],[335,100],[620,150],[820,150],[520,150],[185,100]],"e":[[0,1,[65,15]],[0,2,[250,15]],[0,3,[385,15]],[0,4,[735,15]],[1,5,[115,65]],[4,6,[785,65]],[2,7,[300,65]],[0,8,[435,15]],[0,9,[535,15]],[9,10,[585,65]],[9,11,[685,65]],[5,12,[165,115]],[11,13,[735,115]],[8,14,[485,65]],[2,15,[350,65]],[10,16,[635,115]],[6,17,[835,115]],[14,18,[535,115]],[1,19,[200,65]]],"vp":[0.0,0.0,850.0,180.0]}} + *

    + * @class + * @extends {yfiles.tree.RotatableNodePlacerBase} + */ + export interface SimpleNodePlacer extends yfiles.tree.RotatableNodePlacerBase{} + export class SimpleNodePlacer { + /** + * Creates a new {@link yfiles.tree.SimpleNodePlacer} instance that uses the given {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix} and {@link yfiles.tree.SimpleNodePlacer#rootAlignment root alignment}. + * @param modificationMatrix the transformation matrix for this {@link } + * @param rootAlignment the alignment for the local root in relation to its subtrees + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix,rootAlignment:yfiles.tree.RootNodeAlignment); + /** + * Creates a new {@link yfiles.tree.SimpleNodePlacer} instance that uses the given {@link yfiles.tree.RotatableNodePlacerBase#modificationMatrix modification matrix}. + * @param modificationMatrix the transformation matrix for this {@link } + */ + constructor(modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix); + /** + * Creates a new {@link yfiles.tree.SimpleNodePlacer} instance with default settings. + */ + constructor(); + /** + * Gets or sets the {@link yfiles.tree.RootNodeAlignment RootAlignment} that defines how the root node is aligned with its children and their shapes. + * @type {yfiles.tree.RootNodeAlignment} + */ + rootAlignment:yfiles.tree.RootNodeAlignment; + /** + * Gets or sets the relative vertical alignment of nodes with the same parent. + *

    + * All values between 0 and 1 result in a valid alignment. + *

    + *
      + *
    • 0 - nodes are top-aligned
    • + *
    • 0.5 - nodes are center-aligned
    • + *
    • 1 - nodes are bottom-aligned
    • + *
    + *

    + * Values outside the interval [0,1] may result in a more compact node placement with unaligned nodes, especially when + * labels are considered. + *

    + * @type {number} + */ + verticalAlignment:number; + /** + * Gets or sets whether or not a bus is created in the space between the parent and its children. + * @type {boolean} + */ + createBus:boolean; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.TreeComponentLayout} arranges tree-like subgraph structures in a mixed layout style. + *

    + * {@graph {"ann":{"s":[37.5,37.5],"d":1},"n":[[-18.75,231.25],[56.25,231.25],[131.25,231.25],[-18.75,631.25],[631.25,231.25],[631.25,631.25],[131.25,631.25],[-18.75,-18.75],[631.25,-18.75],[631.25,131.25],[631.25,56.25],[131.25,406.25],[131.25,556.25],[447.5,75,1],[560,162.5,1],[497.5,162.5,1],[391.25,343.75,1],[328.75,343.75,1],[247.5,500,1],[247.5,587.5,1],[310,500,1],[310,587.5,1],[266.25,343.75,1],[272.5,75,1],[385,162.5,1],[322.5,162.5,1],[97.5,75,1],[210,162.5,1],[147.5,162.5,1]],"e":[[0,1,18.75,-0,-18.75,-0],[1,2,18.75,-0,-18.75,-0],[0,3,-0,18.75,-0,-18.75],[2,4,18.75,-0,-18.75,-0],[4,5,-0,18.75,-0,-18.75],[5,6,-18.75,-0,18.75,-0],[6,3,-18.75,-0,18.75,-0],[0,7,-0,-18.75,-0,18.75],[7,8,18.75,-0,-18.75,-0],[4,9,-0,-18.75,-0,18.75],[8,10,-0,18.75,-0,-18.75],[10,9,-0,18.75,-0,-18.75],[11,2,-0,-18.75,-0,18.75],[11,12,-0,18.75,-0,-18.75],[6,12,-0,-18.75,-0,18.75],[7,13,18.75,12.5,0,0,[52.5,12.5,52.5,50,466.25,50]],[13,14,-13.75,0,-0,-0,[452.5,137.5,578.75,137.5]],[13,15,-13.75,0,-0,-0,[452.5,137.5,516.25,137.5]],[2,16,18.75,12.5,0,0,[221.25,262.5,221.25,318.75,410,318.75]],[2,17,18.75,12.5,0,0,[221.25,262.5,221.25,318.75,347.5,318.75]],[11,18,18.75,-0,0,0,[202.5,425,202.5,475,266.25,475]],[11,19,18.75,-0,0,0,[202.5,425,202.5,562.5,266.25,562.5]],[11,20,18.75,-0,0,0,[202.5,425,202.5,475,328.75,475]],[11,21,18.75,-0,0,0,[202.5,425,202.5,562.5,328.75,562.5]],[2,22,18.75,12.5,0,0,[221.25,262.5,221.25,318.75,285,318.75]],[7,23,18.75,12.5,0,0,[52.5,12.5,52.5,50,291.25,50]],[23,24,-13.75,0,-0,-0,[277.5,137.5,403.75,137.5]],[23,25,-13.75,0,-0,-0,[277.5,137.5,341.25,137.5]],[7,26,18.75,12.5,0,0,[52.5,12.5,52.5,50,116.25,50]],[26,27,-13.75,0,-0,-0,[102.5,137.5,228.75,137.5]],[26,28,-13.75,0,-0,-0,[102.5,137.5,166.25,137.5]]],"vp":[-19.0,-19.0,688.0,688.0]}} + *

    + *

    + * The tree components are marked + *

    + * @class + * @implements {yfiles.layout.ILayoutStage} + */ + export interface TreeComponentLayout extends Object,yfiles.layout.ILayoutStage{} + export class TreeComponentLayout { + /** + * Creates a new {@link yfiles.tree.TreeComponentLayout} instance using the specified layouter for arranging the subtrees. + * @param treeCoreLayouter the layout algorithm used for arranging the tree components + * @throws {Stubs.Exceptions.ArgumentError} if the specified layout algorithm is null + */ + constructor(treeCoreLayouter:yfiles.layout.ILayoutAlgorithm); + /** + * Finds the tree components inside the given graph and applies a {@link yfiles.tree.TreeComponentLayout#treeComponentCoreLayout tree layout} to them. + * @param graph the input graph + */ + applyLayout(graph:yfiles.layout.LayoutGraph):void; + /** + * Delegates the layout calculation to the {@link yfiles.tree.TreeComponentLayout#coreLayout core layout algorithm} and handles the dummy nodes. + *

    + * The dummy nodes are marked using the given {@link yfiles.algorithms.IDataProvider}. + *

    + *

    + * This implementation just registers the dummy node {@link yfiles.algorithms.IDataProvider} with the graph with key + * {@link yfiles.tree.TreeComponentLayout#DUMMY_NODE_DP_KEY}, executes the core layout algorithm and finally removes the data + * provider again. + *

    + *

    + * This method is called by {@link yfiles.tree.TreeComponentLayout#applyLayout} to invoke the core layout algorithm. It may be + * overridden to customize the handling of the dummy nodes. + *

    + * @param graph the input graph + * @param dummyDp the {@link } which marks the dummy nodes + * @protected + */ + applyLayoutUsingDummies(graph:yfiles.layout.LayoutGraph,dummyDp:yfiles.algorithms.IDataProvider):void; + /** + * Data provider key for identifying dummy nodes during the layout calculation + *

    + * This {@link yfiles.algorithms.IDataProvider} is registered and also removed in + * {@link yfiles.tree.TreeComponentLayout#applyLayoutUsingDummies}. + *

    + * @see yfiles.tree.TreeComponentLayout#applyLayoutUsingDummies + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static DUMMY_NODE_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * + * @type {yfiles.layout.ILayoutAlgorithm} + */ + coreLayout:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets the layout algorithm that is applied to tree components. + * @type {yfiles.layout.ILayoutAlgorithm} + */ + treeComponentCoreLayout:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets whether or not tree component arrangement is improved by changing the orientation of components. + * @type {boolean} + */ + optimizeOrientation:boolean; + static $class:yfiles.lang.Class; + } + /** + * A {@link yfiles.tree.SubtreeShape} represents the position and the borders of a subtree. + *

    + * {@link yfiles.tree.INodePlacer}s will move {@link yfiles.tree.SubtreeShape}s and use the borders to calculate distances between the + * subtrees. When two subtrees are placed in relation to their common root, their + * {@link yfiles.tree.SubtreeShape}s are merged to represent the new subtree. + *

    + *

    + * The borders on each side of the {@link yfiles.tree.SubtreeShape} are modeled with + * {@link yfiles.algorithms.BorderLine}s. The resulting area includes the borders of each node and edge in the corresponding + * subtree. It can also contain the bounds of labels belonging to those nodes and edges. + *

    + *

    + * The {@link yfiles.tree.SubtreeShape} also describes a connector defining the location to which the edge from its parent is + * attached. It is possible to add some bends (target points) at the end of this edge and include them in the + * {@link yfiles.tree.SubtreeShape}. During layout calculation, the last target point is the connection point for the edge. + *

    + * @see yfiles.tree.SubtreeShape#getBorderLine + * @see yfiles.tree.SubtreeShape#connectorX + * @see yfiles.tree.SubtreeShape#connectorY + * @see yfiles.tree.SubtreeShape#addBoundsToShape + * @see yfiles.tree.SubtreeShape#addTargetPoint + * @class + * @final + */ + export interface SubtreeShape extends Object{} + export class SubtreeShape { + /** + * Extends this {@link yfiles.tree.SubtreeShape} instance by the given rectangle. + *

    + * The border lines are updated with this segment. + *

    + * @param x the x-coordinate of the upper-left corner of the rectangle + * @param y the y-coordinate of the upper-left corner of the rectangle + * @param width the width of the rectangle + * @param height the height of the rectangle + * @see yfiles.tree.SubtreeShape#getBorderLine + */ + addBoundsToShape(x:number,y:number,width:number,height:number):void; + /** + * Adds all edge segments of the given edge to this {@link yfiles.tree.SubtreeShape} instance. + *

    + * The border lines are updated. + *

    + * @param graph the input graph + * @param edge the given edge + * @see yfiles.tree.SubtreeShape#getBorderLine + * @see yfiles.tree.SubtreeShape#addLineSegment + */ + addEdgeSegments(graph:yfiles.layout.LayoutGraph,edge:yfiles.algorithms.Edge):void; + /** + * Extends this {@link yfiles.tree.SubtreeShape} instance by the given segment. + *

    + * The border lines are updated with this segment. + *

    + * @param x1 the x-coordinate of the first point of the segment + * @param y1 the y-coordinate of the first point of the segment + * @param x2 the x-coordinate of the second point of the segment + * @param y2 the y-coordinate of the second point of the segment + * @see yfiles.tree.SubtreeShape#getBorderLine + * @see yfiles.tree.SubtreeShape#addEdgeSegments + * @see yfiles.tree.SubtreeShape#updateConnectorShape + */ + addLineSegment(x1:number,y1:number,x2:number,y2:number):void; + /** + * Adds another point to the connector. + *

    + * The points will appear as bend of the incoming edge. Points are added in reverse direction of the edge. Hence, the last + * target point is further away from the target node than the points before. + *

    + * @param x the current x-coordinate of the point + * @param y the current y-coordinate of the point + */ + addTargetPoint(x:number,y:number):void; + /** + * Appends all target points that have previously been added to this shape to the given {@link yfiles.layout.IEdgeLayout} + * instance. + *

    + * This method is used by {@link yfiles.tree.INodePlacer} instances for the final edge paths. + *

    + * @param edgeLayout the {@link } that will be modified + * @see yfiles.tree.SubtreeShape#addTargetPoint + */ + appendTargetPoints(edgeLayout:yfiles.layout.IEdgeLayout):void; + /** + * Copies the state of this {@link yfiles.tree.SubtreeShape} instance to the given shape applying a modification matrix. + * @param toShape the given shape that gets the assigned values + * @param modificationMatrix the matrix that may add geometrical modifications + */ + assignValuesTo(toShape:yfiles.tree.SubtreeShape,modificationMatrix:yfiles.tree.RotatableNodePlacerMatrix):void; + /** + * Creates a clone of this {@link yfiles.tree.SubtreeShape} instance, modifying it using the provided modification matrix. + * @param matrix the matrix that defines the modification for the new instance + * @returns the clone of this {@link } instance + * @see yfiles.tree.RotatableNodePlacerMatrix#DEFAULT + */ + createCopy(matrix:yfiles.tree.RotatableNodePlacerMatrix):yfiles.tree.SubtreeShape; + /** + * Returns the {@link yfiles.algorithms.BorderLine} instance that describes the {@link yfiles.tree.SubtreeShape} at the given side. + * @param index one of the predefined borderline directions + * @returns the {@link } instance for the given side + * @throws {Stubs.Exceptions.ArgumentError} if the given index is invalid + */ + getBorderLine(index:number):yfiles.algorithms.BorderLine; + /** + * Merges the given {@link yfiles.tree.SubtreeShape} instance with this {@link yfiles.tree.SubtreeShape} instance. + *

    + * The border lines are updated. + *

    + * @param other the {@link } to be merged with this {@link } + */ + mergeWith(other:yfiles.tree.SubtreeShape):void; + /** + * Moves this {@link yfiles.tree.SubtreeShape} instance and its connector by the given offsets. + *

    + * Border lines are updated. + *

    + * @param dx the delta x-offset by which this shape will be moved + * @param dy the delta y-offset by which this shape will be moved + */ + move(dx:number,dy:number):void; + /** + * Adds the line segments of the connector to the bounds of this {@link yfiles.tree.SubtreeShape} instance. + *

    + * The line segments result from the target points. + *

    + * @see yfiles.tree.SubtreeShape#addTargetPoint + */ + updateConnectorShape():void; + /** + * Gets the bounds of the {@link yfiles.layout.INodeLayout} of the root node of this {@link yfiles.tree.SubtreeShape} instance. + * @type {yfiles.algorithms.Rectangle2D} + */ + coreBounds:yfiles.algorithms.Rectangle2D; + /** + * Gets the current bounds of this {@link yfiles.tree.SubtreeShape} instance. + * @type {yfiles.algorithms.Rectangle2D} + */ + bounds:yfiles.algorithms.Rectangle2D; + /** + * Gets the current x-coordinate of the connection point to which the layout algorithm connects the ingoing edge. + *

    + * The connection point can change when target points are added to the {@link yfiles.tree.SubtreeShape} instance. + *

    + * @see yfiles.tree.SubtreeShape#addTargetPoint + * @see yfiles.tree.SubtreeShape#appendTargetPoints + * @type {number} + */ + connectorX:number; + /** + * Gets the current y-coordinate of the connection point to which the layout algorithm connects the ingoing edge. + *

    + * The connection point can change when target points are added to the {@link yfiles.tree.SubtreeShape} instance. + *

    + * @see yfiles.tree.SubtreeShape#addTargetPoint + * @see yfiles.tree.SubtreeShape#appendTargetPoints + * @type {number} + */ + connectorY:number; + /** + * Gets the direction of the last connector segment. + * @type {yfiles.tree.ConnectorDirection} + */ + connectorDirection:yfiles.tree.ConnectorDirection; + /** + * Gets the current minimum x-coordinate of this {@link yfiles.tree.SubtreeShape} instance. + * @type {number} + */ + minX:number; + /** + * Gets the current minimum y-coordinate of this {@link yfiles.tree.SubtreeShape} instance. + * @type {number} + */ + minY:number; + /** + * Gets the current maximum x-coordinate of this {@link yfiles.tree.SubtreeShape} instance. + * @type {number} + */ + maxX:number; + /** + * Gets the current maximum y-coordinate of this {@link yfiles.tree.SubtreeShape} instance. + * @type {number} + */ + maxY:number; + /** + * Gets the current x-coordinate of the origin of this {@link yfiles.tree.SubtreeShape} instance. + *

    + * The origin is defined as the upper left corner of the {@link yfiles.layout.INodeLayout} of the local root of this shape. + *

    + * @type {number} + */ + originX:number; + /** + * Gets the current y-coordinate of the origin of this {@link yfiles.tree.SubtreeShape} instance. + *

    + * The origin is defined as the upper left corner of the {@link yfiles.layout.INodeLayout} of the local root of this shape. + *

    + * @type {number} + */ + originY:number; + static $class:yfiles.lang.Class; + } + /** + * This layout algorithm arranges graphs with a tree structure. + *

    + * Layout Style {@link yfiles.tree.TreeLayout} provides multiple different arrangements of trees and subtrees. It is easy to customize the + * {@link yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY order of edges}, the {@link yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY port assignment} and the {@link yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY arrangement of the nodes} for each subtree. + *

    + *

    + * Tree layout algorithms are commonly applied to visualize relational data and produce diagrams of high quality that are + * able to reveal possible hierarchic properties of the graph. More precisely, they find applications in dataflow analysis, + * software engineering, bioinformatics and business administration. + *

    + *

    + * {@graph {"ann": {"s": [37.5,37.5], "d": 1},"n": [[209.96,0], [71.88,77.5], [348.04,77.5], [348.04,155], [202.77,232.5], [172.5,310], [71.88,232.5], [115,387.5], [115,310], [233.04,310], [71.88,155], [348.04,232.5], [319.29,310], [376.79,310], [463.04,232.5], [491.79,310], [434.29,310], [28.75,310], [57.5,387.5], [0,387.5], [376.79,387.5], [261.79,387.5], [204.29,387.5]], "e": [[0,1], [0,2], [2,3], [3,4], [4,5], [6,8], [8,7], [4,9], [1,10], [10,6], [3,11], [11,12], [11,13], [3,14], [14,15], [14,16], [6,17], [17,18], [17,19], [13,20], [9,21], [9,22]], "vp": [0.0,0.0,530.0,425.0]}} Example graph with a layout calculated by {@link yfiles.tree.TreeLayout} using default settings {@graph {"ann": {"s": [60,30], "d": 1},"n": [[1190,0], [0,50], [160,120], [80,120], [240,120], [120,190], [200,190], [280,190], [160,310], [80,310], [240,310], [120,240], [200,240], [280,240], [330,50], [460,256.6], [410,306.6], [510,306.6], [410,356.6], [510,356.6], [460,406.6], [650,441.6], [410,491.6], [490,491.6], [570,491.6], [710,50], [790,100], [870,170], [950,170], [1030,170], [1110,170], [1190,170], [870,240], [950,240], [1030,240], [1110,240], [1190,240], [870,310], [950,310], [1030,310], [1110,310], [1190,310], [870,380], [950,380], [1030,380], [1110,380], [1190,380], [430,120], [500,170], [540,206.6], [580,170], [620,206.6], [660,170], [80,520], [160,430], [160,480], [226.6,405], [226.6,455], [160,380], [790,465], [870,430], [950,430], [950,500], [1030,465], [870,500]], "e": [[0,1,[30,15]], [1,2,[30,100,190,100]], [2,3,[190,170,110,170]], [2,4,[190,170,270,170]], [2,5,[190,170,150,170]], [2,6,[190,170,230,170]], [2,7,[190,170,310,170]], [1,8,[30,360,190,360]], [8,9,[190,290,110,290]], [8,10,[190,290,270,290]], [8,11,[190,290,150,290]], [8,12,[190,290,230,290]], [8,13,[190,290,310,290]], [0,14,[360,15]], [14,15,[360,271.6]], [15,16,[490,321.6]], [15,17,[490,321.6]], [15,18,[490,371.6]], [15,19,[490,371.6]], [15,20], [14,21,[360,456.6]], [21,22,[440,456.6]], [21,23,[520,456.6]], [21,24,[600,456.6]], [0,25,[740,15]], [25,26,[740,115]], [26,27,[860,115,860,150,900,150]], [26,28,[860,115,860,150,980,150]], [26,29,[860,115,860,150,1060,150]], [26,30,[860,115,860,150,1140,150]], [26,31,[860,115,860,150,1220,150]], [26,32,[860,115,860,220,900,220]], [26,33,[860,115,860,220,980,220]], [26,34,[860,115,860,220,1060,220]], [26,35,[860,115,860,220,1140,220]], [26,36,[860,115,860,220,1220,220]], [26,37,[860,115,860,290,900,290]], [26,38,[860,115,860,290,980,290]], [26,39,[860,115,860,290,1060,290]], [26,40,[860,115,860,290,1140,290]], [26,41,[860,115,860,290,1220,290]], [26,42,[860,115,860,360,900,360]], [26,43,[860,115,860,360,980,360]], [26,44,[860,115,860,360,1060,360]], [26,45,[860,115,860,360,1140,360]], [26,46,[860,115,860,360,1220,360]], [14,47,[360,100,410,100,410,135]], [47,48,[530,135]], [47,49,[570,135]], [47,50,[610,135]], [47,51,[650,135]], [47,52,[690,135]], [1,53,[30,535]], [53,54,[110,445]], [53,55,[110,495]], [53,56,[110,420]], [53,57,[110,470]], [53,58,[110,395]], [25,59,[740,480]], [59,60,[900,480]], [59,61,[980,480]], [59,62,[980,480]], [59,63], [59,64,[900,480]]], "vp": [0.0,0.0,1250.0,550.0]}} Tree layout using different + * {@link yfiles.tree.INodePlacer}s and rotationsConcept + *

    + *

    + * The layout algorithm starts from the leaves and continues with their parents, then with the parents of the parents and + * so on. When a node is processed, the algorithm will use the corresponding {@link yfiles.tree.INodePlacer} instance to move its + * children (along with their subtrees) to a suitable position and to route the outgoing edges of this node. Then, the next + * local root node will be processed. + *

    + *

    + * To avoid moving all nodes several times and to know the area that the subtrees occupy, the layout algorithm uses + * {@link yfiles.tree.SubtreeShape}s. These {@link yfiles.tree.SubtreeShape}s are moved and merged during layout calculation. + *

    + *

    + * Features + *

    + *

    + * Each subtree can have a different style of node placement. {@link yfiles.tree.INodePlacer}s are responsible for arranging + * subtrees and their common root node. They can be specified separately for each local root with a {@link yfiles.algorithms.IDataProvider} + * registered with the graph using key {@link yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY}. + *

    + *

    + * A custom node can be defined as root of the tree using a {@link yfiles.algorithms.IDataProvider} registered with the graph with + * key {@link yfiles.tree.TreeLayout#SELECTED_ROOT_DP_KEY}. + *

    + *

    + * The layout algorithm can be configured to reserve space for node labels and place the edge labels along edges such that + * the labels won't overlap with other graph elements. Edge labels are placed according to the information stored in a {@link yfiles.layout.PreferredPlacementDescriptor} + * instance. However, the placement along the edge will only affect the order of multiple labels at the same edge. The + * algorithm will always place the labels close to the target node. + *

    + *

    + * Grouping of nodes can also be handled by this layout algorithm. It is important that a group node contains a whole + * subtree. Otherwise, the group nodes may overlap with each other or with other nodes. Furthermore, the user may specify + * minimum size constraints for each group node using {@link yfiles.algorithms.IDataProvider} key + * {@link yfiles.layout.GroupingKeys#MINIMUM_NODE_SIZE_DP_KEY}. + *

    + *

    + * {@link yfiles.tree.TreeLayout} supports custom sorting of the outgoing edges of a node. For example, a {@link yfiles.tree.INodePlacer} + * instance that implements {@link yfiles.tree.IFromSketchNodePlacer} provides a comparator that keeps the current order of + * siblings, allowing to extend the graph incrementally. + *

    + *

    + * This layout algorithm can only handle graphs with a tree structure. To apply it to a general graph, a {@link yfiles.tree.TreeReductionStage} + * can be appended. This stage will temporarily remove some edges of the input graph until a tree is obtained. After the + * layout calculation, the stage will reinsert the edges that were removed and route them separately. + *

    + * @class + * @extends {yfiles.layout.MultiStageLayout} + */ + export interface TreeLayout extends yfiles.layout.MultiStageLayout{} + export class TreeLayout { + /** + * Creates a new {@link yfiles.tree.TreeLayout} instance with default settings. + */ + constructor(); + /** + * Creates a {@link yfiles.tree.SubtreeShape} for the given node that consists only of the bounds of this particular node. + *

    + * It may also include node labels or {@link yfiles.layout.NodeHalo}s. + *

    + *

    + * This method may be overridden to return a custom {@link yfiles.tree.SubtreeShape} for the given node. + *

    + * @param node the given node + * @returns a {@link } instance + */ + createNodeShape(node:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; + /** + * Returns a list of edges that need to be reversed in order to obtain a valid rooted and directed tree from the input + * graph. + *

    + * The root node of the tree is either a node marked by a {@link yfiles.algorithms.IDataProvider} registered with the graph with + * key {@link yfiles.tree.TreeLayout#SELECTED_ROOT_DP_KEY} or is defined according to {@link yfiles.algorithms.Trees#getRoot}. + *

    + *

    + * This method is called initially to calculate a rooted tree from the input graph. It may be overridden to apply a custom + * algorithm that determines which edges need to be reversed. + *

    + * @returns a list of edges that need to be reversed + * @see yfiles.tree.TreeLayout#reverseEdges + * @protected + */ + directTree():yfiles.algorithms.EdgeList; + /** + * Returns the {@link yfiles.tree.INodePlacer} instance that is used for the placement of the local root node and the + * {@link yfiles.tree.SubtreeShape}s. + *

    + * The method may be overridden to return custom {@link yfiles.tree.INodePlacer} instances. It is possible to return a shared + * instance for multiple different nodes because the instances are not used after subsequent calls to this method. + *

    + *

    + * The current implementation returns the {@link yfiles.tree.INodePlacer} defined by the {@link yfiles.algorithms.IDataProvider} registered + * with key {@link yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY}. It falls back to the default {@link yfiles.tree.INodePlacer} if there is no + * specific {@link yfiles.tree.INodePlacer} for the given node. + *

    + * @param localRoot the root of the local subtree + * @returns the {@link } instance that places the subtree below the given local root node + * @see yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY + * @see yfiles.tree.TreeLayout#defaultNodePlacer + * @protected + */ + getNodePlacer(localRoot:yfiles.algorithms.Node):yfiles.tree.INodePlacer; + /** + * Returns the {@link yfiles.collections.IComparer.} instance that will sort the outgoing edges connecting to the given node. + *

    + * The {@link yfiles.collections.IComparer.} can be null in case the initial edge order shall be used. + *

    + *

    + * The method may be overridden to return custom {@link yfiles.collections.IComparer.} instances. It is possible to return a shared instance for multiple + * different nodes because the instances are not used after subsequent calls to this method. + *

    + *

    + * The current implementation returns the {@link yfiles.collections.IComparer.} defined in the {@link yfiles.algorithms.IDataProvider} registered with key + * {@link yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY}. It falls back to the default {@link yfiles.collections.IComparer.} if there is no specific {@link yfiles.collections.IComparer.} for the given + * node. + *

    + * @param localRoot the root of the local subtree + * @returns the {@link } or null that sorts the outgoing edges of the given node + * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY + * @see yfiles.tree.TreeLayout#defaultOutEdgeComparer + */ + getOutEdgeComparer(localRoot:yfiles.algorithms.Node):yfiles.collections.IComparer; + /** + * Returns the {@link yfiles.tree.IPortAssignment} instance that places the ports of the connecting edges of the given node. + *

    + * The method may be overridden to return customized {@link yfiles.tree.IPortAssignment} instances. It is possible to return a + * shared instance for multiple different nodes because the instances are not used after subsequent calls to this method. + *

    + *

    + * The current implementation returns the {@link yfiles.tree.IPortAssignment} defined by the {@link yfiles.algorithms.IDataProvider} + * registered with key {@link yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY}. It falls back to the default {@link yfiles.tree.IPortAssignment} + * if there is no specific {@link yfiles.tree.IPortAssignment} for the given node. + *

    + * @param localRoot the root of the local subtree + * @returns the {@link } instance that assigns the ports of the edges at the given node + * @see yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY + * @see yfiles.tree.TreeLayout#defaultPortAssignment + * @protected + */ + getPortAssignment(localRoot:yfiles.algorithms.Node):yfiles.tree.IPortAssignment; + /** + * Returns an array of the nodes that will be laid out. + *

    + * The given node will be considered as the root of the tree. The order of the elements ensures that no parent is processed + * before one of its successors. + *

    + *

    + * This method may be overridden to change the order in which the nodes (and their subtrees) are handled. However, it is + * important to keep the parents after the successors. Only siblings can change places. + *

    + * @param root the node to be considered as root of the tree + * @returns an array of nodes that will be laid out + * @protected + */ + getRootsArray(root:yfiles.algorithms.Node):yfiles.algorithms.Node[]; + /** + * Provides access to the {@link yfiles.tree.SubtreeShape} for the given node. + *

    + * The {@link yfiles.tree.SubtreeShape} contains information about the current extent and location of the subtree rooted at the + * node. It should only be modified during the layout of the parent node. Also, it won't be initialized before the layout + * of the corresponding subtree is calculated. + *

    + *

    + * This method updates the {@link yfiles.tree.SubtreeShape} in {@link yfiles.tree.TreeLayout#layoutRoot}. + *

    + * @param localRoot the root of the subtree + * @returns the {@link } instance if it has already been calculated, null otherwise + * @protected + */ + getSubtreeShape(localRoot:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; + /** + * Calculates the layout for the given root node and its subtrees. + *

    + * This method is invoked for each node in the tree exactly once. Thus, children are always handled before their parents. + * In this manner, the subtrees already have a layout and can be arranged with their parent. + *

    + *

    + * To retrieve the shapes of the subtrees of all children of the local root, this method uses + * {@link yfiles.tree.TreeLayout#getSubtreeShape}. + *

    + *

    + * The method may be overridden to add configuration code. + *

    + * @param localRoot the root of the subtree that whose layout is calculated + * @returns the combined {@link } of the local root node and all of its children and connecting edges + * @protected + */ + layoutRoot(localRoot:yfiles.algorithms.Node):yfiles.tree.SubtreeShape; + /** + * Reverses the direction of given edges. + *

    + * This method will be called initially after the {@link yfiles.tree.TreeLayout#directTree} method and finally after the layout has + * been calculated. It may be overridden to additionally reverse data that depends on the direction of the edges. + *

    + * @param reversedEdges the edges that will be reversed + * @protected + */ + reverseEdges(reversedEdges:yfiles.algorithms.EdgeList):void; + /** + * Data provider key for specifying a child node placer for each node + * @see yfiles.tree.TreeLayout#defaultNodePlacer + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static NODE_PLACER_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for assigning ports to nodes + * @see yfiles.tree.TreeLayout#defaultPortAssignment + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static PORT_ASSIGNMENT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for specifying the comparator for the outgoing edges + * @see yfiles.tree.TreeLayout#defaultOutEdgeComparer + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.>} + */ + static OUT_EDGE_COMPARER_DP_KEY:yfiles.algorithms.NodeDpKey>; + /** + * Data provider key for defining the priority of critical edges + *

    + * The layout algorithm tries to align each node pair that is connected by a critical edge (integer value > + * 0). This feature can, for example, be used for highlighting different edge paths that are important for a user. + * Conflicts between different critical edges are always resolved in favor of the higher priority. + *

    + *

    + * Critical edges will always align the centers of source and target node, thus replacing the current root alignment of the + * {@link yfiles.tree.INodePlacer}. + *

    + *

    + * The critical edge may not be straight if subtrees are rotated or port constraints are assigned. + *

    + *

    + * This feature is only supported by the following {@link yfiles.tree.INodePlacer}s: + *

    + *
      + *
    • {@link yfiles.tree.DefaultNodePlacer}
    • + *
    • {@link yfiles.tree.SimpleNodePlacer}
    • + *
    • {@link yfiles.tree.LayeredNodePlacer}
    • + *
    • {@link yfiles.tree.DoubleLineNodePlacer}
    • + *
    • {@link yfiles.tree.DendrogramNodePlacer}
    • + *
    + * @const + * @static + * @type {yfiles.algorithms.EdgeDpKey.} + */ + static CRITICAL_EDGE_DP_KEY:yfiles.algorithms.EdgeDpKey; + /** + * Data provider key for retrieving descriptors for nodes in multi-parent structures + *

    + * The returned descriptor affects the layout of the multi-parent structure. + *

    + * @see yfiles.tree.TreeLayout#multiParentAllowed + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static MULTI_PARENT_DESCRIPTOR_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * Data provider key for marking the node that will be used as root node of the tree + * @const + * @static + * @type {yfiles.algorithms.NodeDpKey.} + */ + static SELECTED_ROOT_DP_KEY:yfiles.algorithms.NodeDpKey; + /** + * The input graph for which a layout is calculated. + * @protected + * @type {yfiles.layout.LayoutGraph} + */ + graph:yfiles.layout.LayoutGraph; + /** + * Gets or sets whether or not group nodes are handled by the layout algorithm. + * @type {boolean} + */ + groupingSupported:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for arranging the components of the graph is activated. + * @see yfiles.layout.MultiStageLayout#componentLayoutEnabled + * @see yfiles.layout.MultiStageLayout#componentLayout + * @see yfiles.layout.ComponentLayout + * @type {boolean} + */ + componentLayoutEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing parallel edges is activated. + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouterEnabled + * @see yfiles.layout.MultiStageLayout#parallelEdgeRouter + * @see yfiles.router.ParallelEdgeRouter + * @type {boolean} + */ + parallelEdgeRouterEnabled:boolean; + /** + * Sets whether or not the {@link yfiles.layout.ILayoutStage} used for routing self-loops is activated. + * @see yfiles.layout.MultiStageLayout#selfLoopRouterEnabled + * @see yfiles.layout.MultiStageLayout#selfLoopRouter + * @see yfiles.layout.SelfLoopRouter + * @type {boolean} + */ + selfLoopRouterEnabled:boolean; + /** + * Gets a {@link yfiles.algorithms.IDataAcceptor} that can overwrite the source {@link yfiles.layout.PortConstraint port contraint} temporarily used during the layout. + *

    + * This method sets temporary source {@link yfiles.layout.PortConstraint}s, e.g., after edge reversal. It may be overridden to + * handle those {@link yfiles.layout.PortConstraint}s separately. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY + * @type {yfiles.algorithms.IDataAcceptor} + */ + sourcePortConstraintDataAcceptor:yfiles.algorithms.IDataAcceptor; + /** + * Gets a {@link yfiles.algorithms.IDataAcceptor} that can overwrite the target {@link yfiles.layout.PortConstraint port contraint} temporarily used during the layout. + *

    + * This method sets temporary target {@link yfiles.layout.PortConstraint}s, e.g., after edge reversal. It may be overridden to + * handle those {@link yfiles.layout.PortConstraint}s separately. + *

    + * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY + * @protected + * @type {yfiles.algorithms.IDataAcceptor} + */ + targetPortConstraintDataAcceptor:yfiles.algorithms.IDataAcceptor; + /** + * Gets a {@link yfiles.algorithms.IDataAcceptor} that can be used for temporarily overwriting the source group information used + * during the layout. + *

    + * This method may be overridden to handle those edge groups separately. + *

    + * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY + * @protected + * @type {yfiles.algorithms.IDataAcceptor} + */ + sourceGroupDataAcceptor:yfiles.algorithms.IDataAcceptor; + /** + * Gets a {@link yfiles.algorithms.IDataAcceptor} that can be used for temporarily overwriting the target group information used + * during the layout. + *

    + * This method may be overridden to handle those edge groups separately. + *

    + * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY + * @protected + * @type {yfiles.algorithms.IDataAcceptor} + */ + targetGroupDataAcceptor:yfiles.algorithms.IDataAcceptor; + /** + * Gets or sets the default {@link yfiles.tree.INodePlacer} instance that arranges all subtrees that do not have a specific {@link yfiles.tree.INodePlacer} + * assigned using a {@link yfiles.algorithms.IDataProvider}. + * @throws {Stubs.Exceptions.ArgumentError} if the default {@link yfiles.tree.INodePlacer} is set to null + * @see yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY + * @type {yfiles.tree.INodePlacer} + */ + defaultNodePlacer:yfiles.tree.INodePlacer; + /** + * Gets or sets the default {@link yfiles.tree.INodePlacer} instance that places the leaf nodes of the tree. + * @throws {Stubs.Exceptions.ArgumentError} if the default {@link yfiles.tree.INodePlacer} is set to null + * @see yfiles.tree.TreeLayout#defaultNodePlacer + * @type {yfiles.tree.INodePlacer} + */ + defaultLeafPlacer:yfiles.tree.INodePlacer; + /** + * Gets or sets the default {@link yfiles.tree.IPortAssignment} instance for all subtrees that do not have a specific {@link yfiles.tree.IPortAssignment} + * assigned using a {@link yfiles.algorithms.IDataProvider}. + * @throws {Stubs.Exceptions.ArgumentError} if the default {@link yfiles.tree.IPortAssignment} is set to null + * @see yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY + * @type {yfiles.tree.IPortAssignment} + */ + defaultPortAssignment:yfiles.tree.IPortAssignment; + /** + * Gets or sets the default {@link yfiles.collections.IComparer.} instance that sorts the outgoing edges in all subtrees that do not have a specific {@link yfiles.collections.IComparer.} assigned + * using a {@link yfiles.algorithms.IDataProvider}. + * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY + * @type {yfiles.collections.IComparer.} + */ + defaultOutEdgeComparer:yfiles.collections.IComparer; + /** + * Gets or sets whether or not the layout algorithm reserves space for node labels. + *

    + * If this feature is enabled, the {@link yfiles.tree.SubtreeShape} of the nodes will also hold the shapes of its labels. + *

    + * @type {boolean} + */ + considerNodeLabels:boolean; + /** + * Gets or sets whether or not edge labels are placed by the layout algorithm. + *

    + * If this is enabled, the {@link yfiles.tree.SubtreeShape}s of the subtrees are extended by the edge labels. + *

    + *

    + * The layout algorithm uses the information of {@link yfiles.layout.PreferredPlacementDescriptor} for an edge label to determine + * the corresponding placement. However, edge labels are always placed at the target side of the edge. The placement along + * the edge only affects the order of the edge labels at the same edge. + *

    + * @type {boolean} + */ + integratedEdgeLabeling:boolean; + /** + * Gets or sets whether or not multi-parent structures are allowed for this tree layout. + *

    + * If multi-parent structures are allowed, the directed input graph may contain structures of multiple nodes that share the + * same predecessors as well as the same successors. All nodes belonging to such a structure are placed side by side and + * the incident edges are routed in a bus-style manner. + *

    + * @type {boolean} + */ + multiParentAllowed:boolean; + static $class:yfiles.lang.Class; + } + /** + * The {@link yfiles.tree.TreeReductionStage} temporarily reduces general graphs to trees. + *

    + * Layout Style + *

    + *

    + * This stage prepares a non-tree graph such that it can be processed by a tree layout algorithm. + *

    + *

    + * {@graph {"ann":{"s":[30,30],"d":1},"n":[[150,0],[260,70],[210,70],[260,140],[310,210],[335,280],[75,70],[285,280],[25,70],[25,140],[75,140],[150,70],[25,210],[185,280],[175,140],[50,280],[0,280],[210,210],[235,280],[125,140]],"e":[[0,1,[165,50,275,50]],[0,2,[165,50,225,50]],[1,3],[3,4,[275,190,325,190]],[4,5,[325,260,350,260]],[0,6,[165,50,90,50]],[4,7,[325,260,300,260]],[0,8,[165,50,40,50]],[8,9],[6,10],[0,11],[9,12],[11,14,[165,120,190,120]],[12,15,[40,260,65,260]],[12,16,[40,260,15,260]],[3,17,[275,190,225,190]],[17,13,[225,260,200,260]],[17,18,[225,260,250,260]],[11,19,[165,120,140,120]],[2,11,1],[12,13,1],[17,14,1]],"vp":[0.0,0.0,365.0,310.0]}} + *

    + *

    + * The non-tree edges are marked + *

    + *

    + * Concept This {@link yfiles.layout.ILayoutStage} works in three steps: + *

    + *
      + *
    1. Remove some edges to get a tree or forest from the graph
    2. + *
    3. Invoke the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} which supports tree graph handling
    4. + *
    5. Reinsert all previously removed edges
    6. + *
    7. + * Optionally route these edges using the non-tree edge router and place their labels using the non-tree edge labeling + * algorithm. + *
    8. + *
    + *

    + * Features + *

    + *

    + * The routing of the temporarily hidden non-tree edges can be customized by specifying an {@link yfiles.tree.TreeReductionStage#nonTreeEdgeRouter edge routing algorithm} for those + * edges. Similarly, the placement of edge labels of non-tree edges can be delegated to a custom + * {@link yfiles.tree.TreeReductionStage#nonTreeEdgeLabelingAlgorithm edge labeling algorithm}. As default, both custom algorithms are not specified and, thus, non-tree edges are not routed + * and edge labels not placed. + *

    + *

    + * This stage is also able to handle multi-parent structures, i.e., structures of multiple nodes that share the same + * predecessors as well as the same successors. More precisely, if the specified {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} supports + * multi-parent structures (see {@link yfiles.tree.TreeLayout#multiParentAllowed}) and option {@link yfiles.tree.TreeReductionStage#multiParentAllowed} is enabled, this stage does not hide such structures, i.e., the multi-parent + * structures are passed to the {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. + *

    + *

    + * Non-tree edges can also be bundled together such that their common parts are to some degree merged into a bundled part. + * The edge bundling can be specified by means of method {@link yfiles.tree.TreeReductionStage#edgeBundling}. + *

    + * @class + * @extends {yfiles.layout.LayoutStageBase} + */ + export interface TreeReductionStage extends yfiles.layout.LayoutStageBase{} + export class TreeReductionStage { + /** + * Creates a new {@link yfiles.tree.TreeReductionStage} instance with the given core layout algorithm and default settings. + * @param core the core layout algorithm + */ + constructor(core:yfiles.layout.ILayoutAlgorithm); + /** + * Creates a new {@link yfiles.tree.TreeReductionStage} instance with default settings. + */ + constructor(); + /** + * Creates a routing algorithm that routes edges as a single straight segment. + *

    + * The created instance can be used for {@link yfiles.tree.TreeReductionStage#nonTreeEdgeRouter routing non-tree edges}. + *

    + * @returns an edge routing algorithm that produces straight-line edges + * @see yfiles.tree.TreeReductionStage#nonTreeEdgeRouter + */ + createStraightLineRouter():yfiles.layout.ILayoutAlgorithm; + /** + * Routes all edges that do not belong to the chosen spanning tree. + *

    + * This method is called by {@link yfiles.tree.TreeReductionStage#applyLayout} after the tree was arranged by the + * {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm}. It may be overridden to apply custom edge routes. + *

    + * @param graph the graph containing tree and non-tree edges + * @param nonTreeEdgeMap the {@link } that marks all non-tree edges in the graph + * @protected + */ + routeNonTreeEdges(graph:yfiles.layout.LayoutGraph,nonTreeEdgeMap:yfiles.algorithms.IEdgeMap):void; + /** + * Data provider key for explicitly marking (some) edges that should not be considered for the tree + * @see yfiles.tree.TreeReductionStage#nonTreeEdgeRouter + * @const + * @static + * @type {yfiles.algorithms.EdgeDpKey.} + */ + static NON_TREE_EDGES_DP_KEY:yfiles.algorithms.EdgeDpKey; + /** + * Gets or sets whether or not multi-parent structures (structures of multiple nodes that share the same predecessors as + * well as the same successors) are allowed. + *

    + * More precisely, if this option is enabled and the specified {@link yfiles.layout.LayoutStageBase#coreLayout core layout algorithm} can handle multi-parent structures + * (see {@link yfiles.tree.TreeLayout#multiParentAllowed}), this stage does not hide such structures, but the multi-parent structures are passed on to the {@link yfiles.layout.LayoutStageBase#coreLayout} core layout + * algorithm}. + *

    + * @type {boolean} + */ + multiParentAllowed:boolean; + /** + * Gets or sets the edge routing algorithm that is applied to all non-tree edges. + * @see yfiles.tree.TreeReductionStage#nonTreeEdgeSelectionKey + * @type {yfiles.layout.ILayoutAlgorithm} + */ + nonTreeEdgeRouter:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that will be used by the {@link yfiles.tree.TreeReductionStage#nonTreeEdgeRouter non-tree edge routing algorithm} + * to determine the edges that need to be routed. + * @see yfiles.tree.TreeReductionStage#nonTreeEdgeRouter + * @type {Object} + */ + nonTreeEdgeSelectionKey:Object; + /** + * Gets or sets the labeling algorithm that is applied to all edge labels that belong to non-tree edges. + *

    + * It is required that a suitable {@link yfiles.tree.TreeReductionStage#nonTreeEdgeLabelSelectionKey edge label selection key} is set. Otherwise, the edge labeling algorithm might also place + * labels of tree edges. + *

    + * @see yfiles.tree.TreeReductionStage#nonTreeEdgeLabelSelectionKey + * @type {yfiles.layout.ILayoutAlgorithm} + */ + nonTreeEdgeLabelingAlgorithm:yfiles.layout.ILayoutAlgorithm; + /** + * Gets or sets the key to register a {@link yfiles.algorithms.IDataProvider} that is used by the {@link yfiles.tree.TreeReductionStage#nonTreeEdgeLabelingAlgorithm non-tree edge labeling algorithm} + * to determine which edge labels it should place. + * @see yfiles.tree.TreeReductionStage#nonTreeEdgeLabelingAlgorithm + * @type {Object} + */ + nonTreeEdgeLabelSelectionKey:Object; + /** + * Gets the {@link yfiles.layout.EdgeBundling} instance that defines the settings of the edge bundling feature. + *

    + * The specified {@link yfiles.layout.EdgeBundling} defines global bundling properties. Settings for individual edges can be + * defined by assigning an {@link yfiles.layout.EdgeBundleDescriptor} to an edge using a {@link yfiles.algorithms.IDataProvider} registered + * with key {@link yfiles.layout.EdgeBundling#EDGE_BUNDLE_DESCRIPTOR_DP_KEY}. To enable bundling for all non-tree edges, set a {@link yfiles.layout.EdgeBundling#defaultBundleDescriptor default bundle descriptor} + * which has {@link yfiles.layout.EdgeBundleDescriptor#bundled bundling} enabled. + *

    + *

    + * If the graph contains self-loops that belong to the set of non-tree edges, the stage will invoke the router defined for + * the non-tree edges in order to route them. In the case where this is not desired, the user has to hide them from the + * stage and route them afterwards as desired. + *

    + * @type {yfiles.layout.EdgeBundling} + */ + edgeBundling:yfiles.layout.EdgeBundling; + static $class:yfiles.lang.Class; + } + /** + * Specifies custom data for the {@link yfiles.tree.AspectRatioTreeLayout}. + * @class + * @extends {yfiles.layout.LayoutData} + */ + export interface AspectRatioTreeLayoutData extends yfiles.layout.LayoutData{} + export class AspectRatioTreeLayoutData { + constructor(); + /** + * Gets or sets the mapping from nodes to the aspect ratio of their sub tree. + * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ASPECT_RATIO_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + subtreeAspectRatios:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes with sub trees to their placements. + * @see yfiles.tree.AspectRatioTreeLayout#ROOT_PLACEMENT_DP_KEY + * @see yfiles.tree.AspectRatioTreeLayout#getRootPlacement + * @type {yfiles.layout.ItemMapping.} + */ + rootPlacements:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes to the routing policies of their sub trees. + * @see yfiles.tree.AspectRatioTreeLayout#SUBTREE_ROUTING_POLICY_DP_KEY + * @see yfiles.tree.AspectRatioTreeLayout#getSubtreeArrangement + * @type {yfiles.layout.ItemMapping.} + */ + subtreeRoutingPolicies:yfiles.layout.ItemMapping; + static $class:yfiles.lang.Class; + } + /** + * Specifies custom data for the {@link yfiles.tree.BalloonLayout}. + * @class + * @extends {yfiles.layout.LayoutData} + */ + export interface BalloonLayoutData extends yfiles.layout.LayoutData{} + export class BalloonLayoutData { + constructor(); + /** + * Gets or sets the collection of nodes that should be arranged in an interleaved fashion. + * @see yfiles.tree.BalloonLayout#INTERLEAVED_NODES_DP_KEY + * @type {yfiles.layout.ItemCollection.} + */ + interleavedNodes:yfiles.layout.ItemCollection; + /** + * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. + * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + nodeHalos:yfiles.layout.ItemMapping; + /** + * Gets or sets the AbortHandler used during the layout. + * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY + * @type {yfiles.algorithms.AbortHandler} + */ + abortHandler:yfiles.algorithms.AbortHandler; + /** + * Gets or sets the mapping for marking the node that will be used as root node of the tree. + *

    + * The custom root node selection induced by this property is only considered if the {@link yfiles.tree.BalloonLayout#rootNodePolicy root node policy} is set to + * {@link yfiles.tree.RootNodePolicy#SELECTED_ROOT}. + *

    + * @see yfiles.tree.BalloonLayout#SELECTED_ROOT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + treeRoot:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping that provides a {@link yfiles.layout.PreferredPlacementDescriptor} instance for edge + * {@link yfiles.graph.ILabel}s. + * @see yfiles.layout.PreferredPlacementDescriptor + * @see yfiles.layout.LayoutGraphAdapter#EDGE_LABEL_LAYOUT_PREFERRED_PLACEMENT_DESCRIPTOR_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + edgeLabelPreferredPlacement:yfiles.layout.ItemMapping; + static $class:yfiles.lang.Class; + } + /** + * Specifies custom data for the {@link yfiles.tree.TreeLayout}. + * @class + * @extends {yfiles.layout.LayoutData} + */ + export interface TreeLayoutData extends yfiles.layout.LayoutData{} + export class TreeLayoutData { + constructor(); + /** + * Gets or sets the mapping from nodes to their {@link yfiles.tree.INodePlacer}. + * @see yfiles.tree.TreeLayout#NODE_PLACER_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + nodePlacers:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes to their {@link yfiles.tree.IPortAssignment}. + * @see yfiles.tree.TreeLayout#PORT_ASSIGNMENT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + portAssignments:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes to comparison functions used to sort the nodes' outgoing edges. + * @see yfiles.tree.TreeLayout#OUT_EDGE_COMPARER_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + outEdgeComparers:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes to their {@link yfiles.layout.NodeHalo}. + * @see yfiles.layout.NodeHalo#NODE_HALO_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + nodeHalos:yfiles.layout.ItemMapping; + /** + * Gets or sets a mapping from edges to their source {@link yfiles.layout.PortConstraint}. + * @see yfiles.layout.PortConstraintKeys#SOURCE_PORT_CONSTRAINT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + sourcePortConstraints:yfiles.layout.ItemMapping; + /** + * Gets or sets a mapping from edges to their target {@link yfiles.layout.PortConstraint}. + * @see yfiles.layout.PortConstraintKeys#TARGET_PORT_CONSTRAINT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + targetPortConstraints:yfiles.layout.ItemMapping; + /** + * Gets or sets the collection of nodes the {@link yfiles.tree.AssistantNodePlacer} considers as assistants. + *

    + * This collection is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns any {@link yfiles.tree.AssistantNodePlacer} . + *

    + * @see yfiles.tree.AssistantNodePlacer#ASSISTANT_NODE_DP_KEY + * @type {yfiles.layout.ItemCollection.} + */ + assistantNodes:yfiles.layout.ItemCollection; + /** + * Gets or sets the collection of nodes the {@link yfiles.tree.DelegatingNodePlacer} places with its {@link yfiles.tree.DelegatingNodePlacer#primaryPlacer}. + *

    + * This collection is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns any {@link yfiles.tree.DelegatingNodePlacer} . + *

    + * @see yfiles.tree.DelegatingNodePlacer#PRIMARY_NODES_DP_KEY + * @type {yfiles.layout.ItemCollection.} + */ + delegatingNodePlacersPrimaryNodes:yfiles.layout.ItemCollection; + /** + * Gets or sets a mapping from nodes to a boolean value that specifies whether a node should be placed left of the bus + * (true) or right of the bus (false). + *

    + * This mapping is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns a {@link yfiles.tree.LeftRightNodePlacer} . + *

    + * @see yfiles.tree.LeftRightNodePlacer#LEFT_RIGHT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + leftRightPlacersLeftNodes:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping from nodes to the index of the row the {@link yfiles.tree.GridNodePlacer} shall place the node in. + *

    + * This collection is only considered if {@link yfiles.tree.TreeLayoutData#nodePlacers} returns any {@link yfiles.tree.GridNodePlacer} . + *

    + * @see yfiles.tree.GridNodePlacer#ROW_INDEX_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + gridNodePlacerRowIndices:yfiles.layout.ItemMapping; + /** + * Gets or sets the AbortHandler used during the layout. + * @see yfiles.algorithms.AbortHandler#ABORT_HANDLER_DP_KEY + * @type {yfiles.algorithms.AbortHandler} + */ + abortHandler:yfiles.algorithms.AbortHandler; + /** + * Gets or sets the mapping for marking the node that will be used as root node of the tree. + * @see yfiles.tree.TreeLayout#SELECTED_ROOT_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + treeRoot:yfiles.layout.ItemMapping; + /** + * Gets or sets the mapping that provides a {@link yfiles.layout.PreferredPlacementDescriptor} instance for edge + * {@link yfiles.graph.ILabel}s. + * @see yfiles.layout.PreferredPlacementDescriptor + * @see yfiles.layout.LayoutGraphAdapter#EDGE_LABEL_LAYOUT_PREFERRED_PLACEMENT_DESCRIPTOR_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + edgeLabelPreferredPlacement:yfiles.layout.ItemMapping; + static $class:yfiles.lang.Class; + } + /** + * Specifies custom data for the {@link yfiles.tree.TreeReductionStage}. + * @class + * @extends {yfiles.layout.LayoutData} + */ + export interface TreeReductionStageData extends yfiles.layout.LayoutData{} + export class TreeReductionStageData { + constructor(); + /** + * Gets or sets the collection of edges explicitly marked as not belonging to a tree. + * @see yfiles.tree.TreeReductionStage#NON_TREE_EDGES_DP_KEY + * @type {yfiles.layout.ItemCollection.} + */ + nonTreeEdges:yfiles.layout.ItemCollection; + /** + * Gets or sets the mapping of edges to their {@link yfiles.layout.EdgeBundleDescriptor}. + *

    + * Bundling together multiple edges means that their common parts are to some degree merged into a bundled part. At the + * source and target point, the edges are again clearly split. + *

    + *

    + * If an edge is mapped to null, the {@link yfiles.layout.EdgeBundling#defaultBundleDescriptor default descriptor} is used. + *

    + * @see yfiles.layout.EdgeBundleDescriptor + * @see yfiles.tree.TreeReductionStage#edgeBundling + * @type {yfiles.layout.ItemMapping.} + */ + edgeBundleDescriptors:yfiles.layout.ItemMapping; + static $class:yfiles.lang.Class; + } }export namespace genealogy{ /** * This layout algorithm arranges genealogical graphs (family trees). @@ -113710,7 +113313,7 @@ declare namespace system{ *

    * In order to determine whether a node represents an individual or a partnership, a {@link yfiles.algorithms.IDataProvider} has to * be registered with key {@link yfiles.genealogy.FamilyTreeLayout#FAMILY_TYPE_DP_KEY}. If this {@link yfiles.algorithms.IDataProvider} is - * missing, an {@link Stubs.Exceptions.ArgumentError} will be thrown. + * missing, an {@link yfiles.lang.Exception} will be thrown. *

    *

    * This {@link yfiles.algorithms.IDataProvider} provides: @@ -113726,7 +113329,7 @@ declare namespace system{ *

    * A {@link yfiles.genealogy.FamilyType#FAMILY} node links all members of a family. It can only have two incoming edges from the * parents. Two nodes of the same type (families or individuals) cannot be directly connected. If the input graph violates - * these specifications, a {@link yfiles.algorithms.InvalidGraphStructureError} exception will be thrown. + * these specifications, a {@link yfiles.lang.Exception} exception will be thrown. *

    *

    * The layout is calculated basically in two steps: @@ -113751,14 +113354,13 @@ declare namespace system{ * The location of {@link yfiles.genealogy.FamilyType#FAMILY} nodes can be {@link yfiles.genealogy.FamilyTreeLayout#familyNodesAlwaysBelow specified} in relation to the partners. This placement * can be set independently for {@link yfiles.genealogy.FamilyTreeLayout#partnerlessBelow parents}. *

    - * @class yfiles.genealogy.FamilyTreeLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface FamilyTreeLayout extends yfiles.layout.MultiStageLayout{} export class FamilyTreeLayout { /** * Creates a new instance of {@link yfiles.genealogy.FamilyTreeLayout} with default settings. - * @constructor */ constructor(); /** @@ -113915,7 +113517,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.genealogy.FamilyTreeLayout}. - * @class yfiles.genealogy.FamilyTreeLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface FamilyTreeLayoutData extends yfiles.layout.LayoutData{} @@ -113934,65 +113536,64 @@ declare namespace system{ /** * This class is a default implementation of interface {@link yfiles.multipage.IElementFactory}. * @see yfiles.multipage.IElementFactory - * @class yfiles.multipage.DefaultElementFactory + * @class * @implements {yfiles.multipage.IElementFactory} */ export interface DefaultElementFactory extends Object,yfiles.multipage.IElementFactory{} export class DefaultElementFactory { /** * Creates a new instance of {@link yfiles.multipage.DefaultElementFactory}. - * @constructor */ constructor(); /** * - * @param {yfiles.multipage.LayoutContext} context - * @param {yfiles.algorithms.Node} connector - * @param {yfiles.algorithms.Node} opposite - * @param {Object} origEdgeId - * @param {boolean} atTarget - * @returns {yfiles.algorithms.Edge} + * @param context + * @param connector + * @param opposite + * @param origEdgeId + * @param atTarget + * @returns */ createConnectorEdge(context:yfiles.multipage.LayoutContext,connector:yfiles.algorithms.Node,opposite:yfiles.algorithms.Node,origEdgeId:Object,atTarget:boolean):yfiles.algorithms.Edge; /** * - * @param {yfiles.multipage.LayoutContext} context - * @param {yfiles.algorithms.YList} edgeIds - * @param {Object} representedNodeId - * @returns {yfiles.algorithms.Node} + * @param context + * @param edgeIds + * @param representedNodeId + * @returns */ createConnectorNode(context:yfiles.multipage.LayoutContext,edgeIds:yfiles.algorithms.YList,representedNodeId:Object):yfiles.algorithms.Node; /** * - * @param {yfiles.multipage.LayoutContext} context - * @param {yfiles.algorithms.Node} proxyNode - * @param {yfiles.algorithms.Node} opposite - * @param {Object} replacingEdgeId - * @param {Object} origNodeId - * @returns {yfiles.algorithms.Edge} + * @param context + * @param proxyNode + * @param opposite + * @param replacingEdgeId + * @param origNodeId + * @returns */ createProxyEdge(context:yfiles.multipage.LayoutContext,proxyNode:yfiles.algorithms.Node,opposite:yfiles.algorithms.Node,replacingEdgeId:Object,origNodeId:Object):yfiles.algorithms.Edge; /** * - * @param {yfiles.multipage.LayoutContext} context - * @param {Object} origNodeId - * @returns {yfiles.algorithms.Node} + * @param context + * @param origNodeId + * @returns */ createProxyNode(context:yfiles.multipage.LayoutContext,origNodeId:Object):yfiles.algorithms.Node; /** * - * @param {yfiles.multipage.LayoutContext} context - * @param {yfiles.algorithms.Node} proxyReference - * @param {yfiles.algorithms.Node} opposite - * @param {Object} referencingCopyId - * @returns {yfiles.algorithms.Edge} + * @param context + * @param proxyReference + * @param opposite + * @param referencingCopyId + * @returns */ createProxyReferenceEdge(context:yfiles.multipage.LayoutContext,proxyReference:yfiles.algorithms.Node,opposite:yfiles.algorithms.Node,referencingCopyId:Object):yfiles.algorithms.Edge; /** * - * @param {yfiles.multipage.LayoutContext} context - * @param {Object} referringProxyId - * @returns {yfiles.algorithms.Node} + * @param context + * @param referringProxyId + * @returns */ createProxyReferenceNode(context:yfiles.multipage.LayoutContext,referringProxyId:Object):yfiles.algorithms.Node; /** @@ -114005,11 +113606,11 @@ declare namespace system{ *

    * Subclasses may implement this method to use custom size values. *

    - * @param {yfiles.multipage.LayoutContext} context an object providing relevant layout information, for example, the current graph as well as various information about the + * @param context an object providing relevant layout information, for example, the current graph as well as various information about the * graph elements - * @param {Object} id the element ID - * @param {number} type the type of the node to be created - * @returns {yfiles.algorithms.YDimension} the default size of the new node + * @param id the element ID + * @param type the type of the node to be created + * @returns the default size of the new node * @protected */ getDefaultNodeSize(context:yfiles.multipage.LayoutContext,id:Object,type:number):yfiles.algorithms.YDimension; @@ -114219,13 +113820,13 @@ declare namespace system{ *

    * Such an edge connects the given {@link yfiles.multipage.NodeType#CONNECTOR connector} and opposite node. *

    - * @param {yfiles.multipage.LayoutContext} context an object providing relevant layout information, for example, the current graph as well as various information about the + * @param context an object providing relevant layout information, for example, the current graph as well as various information about the * graph elements - * @param {yfiles.algorithms.Node} connector the endpoint of the edge that represents the connector node - * @param {yfiles.algorithms.Node} opposite the other endpoint of the edge - * @param {Object} origEdgeId the ID of the edge that is split by the connector edge - * @param {boolean} atTarget true if the connector node is the target of the edge, false otherwise - * @returns {yfiles.algorithms.Edge} the created connector edge + * @param connector the endpoint of the edge that represents the connector node + * @param opposite the other endpoint of the edge + * @param origEdgeId the ID of the edge that is split by the connector edge + * @param atTarget true if the connector node is the target of the edge, false otherwise + * @returns the created connector edge * @see yfiles.multipage.EdgeType#CONNECTOR * @see yfiles.multipage.NodeType#CONNECTOR * @see yfiles.multipage.LayoutContext#createEdge @@ -114234,11 +113835,11 @@ declare namespace system{ createConnectorEdge(context:yfiles.multipage.LayoutContext,connector:yfiles.algorithms.Node,opposite:yfiles.algorithms.Node,origEdgeId:Object,atTarget:boolean):yfiles.algorithms.Edge; /** * Callback method for creating a node of type {@link yfiles.multipage.NodeType#CONNECTOR}. - * @param {yfiles.multipage.LayoutContext} context an object providing relevant layout information, for example, the current graph as well as various information about the + * @param context an object providing relevant layout information, for example, the current graph as well as various information about the * graph elements - * @param {yfiles.algorithms.YList} edgesIds a {@link yfiles.algorithms.YList list} that contains the IDs of edges that are split by this connector - * @param {Object} representedNodeId the ID of the node that is represented by this connector - * @returns {yfiles.algorithms.Node} the created connector node + * @param edgesIds a {@link list} that contains the IDs of edges that are split by this connector + * @param representedNodeId the ID of the node that is represented by this connector + * @returns the created connector node * @see yfiles.multipage.NodeType#CONNECTOR * @see yfiles.multipage.LayoutContext#createNode * @see yfiles.multipage.INodeInfo#representedNode @@ -114250,13 +113851,13 @@ declare namespace system{ *

    * Such an edge should connect the given {@link yfiles.multipage.NodeType#PROXY proxy} and opposite node. *

    - * @param {yfiles.multipage.LayoutContext} context an object providing relevant layout information, for example, the current graph as well as various information about the + * @param context an object providing relevant layout information, for example, the current graph as well as various information about the * graph elements - * @param {yfiles.algorithms.Node} proxyNode the endpoint of the edge that represents the proxy node - * @param {yfiles.algorithms.Node} opposite the other endpoint of the new edge - * @param {Object} replacingEdgeId the ID of the related edge that is connected to the original node - * @param {Object} origNodeId the ID of the original node to which the proxy node refers - * @returns {yfiles.algorithms.Edge} the created proxy edge + * @param proxyNode the endpoint of the edge that represents the proxy node + * @param opposite the other endpoint of the new edge + * @param replacingEdgeId the ID of the related edge that is connected to the original node + * @param origNodeId the ID of the original node to which the proxy node refers + * @returns the created proxy edge * @see yfiles.multipage.EdgeType#PROXY * @see yfiles.multipage.NodeType#PROXY * @see yfiles.multipage.LayoutContext#createEdge @@ -114265,10 +113866,10 @@ declare namespace system{ createProxyEdge(context:yfiles.multipage.LayoutContext,proxyNode:yfiles.algorithms.Node,opposite:yfiles.algorithms.Node,replacingEdgeId:Object,origNodeId:Object):yfiles.algorithms.Edge; /** * Callback method for creating a node of type {@link yfiles.multipage.NodeType#PROXY}. - * @param {yfiles.multipage.LayoutContext} context an object providing relevant layout information, for example, the current graph as well as various information about the + * @param context an object providing relevant layout information, for example, the current graph as well as various information about the * graph elements - * @param {Object} origNodeId the ID of the node for which a proxy has to be created - * @returns {yfiles.algorithms.Node} the created proxy node + * @param origNodeId the ID of the node for which a proxy has to be created + * @returns the created proxy node * @see yfiles.multipage.LayoutContext#createNode * @see yfiles.multipage.NodeType#PROXY_REFERENCE * @see yfiles.multipage.NodeType#PROXY @@ -114280,12 +113881,12 @@ declare namespace system{ *

    * Such an (undirected) edge should connect the given {@link yfiles.multipage.NodeType#PROXY_REFERENCE proxy reference} and opposite node. *

    - * @param {yfiles.multipage.LayoutContext} context an object providing relevant layout information, for example, the current graph as well as various information about the + * @param context an object providing relevant layout information, for example, the current graph as well as various information about the * graph elements - * @param {yfiles.algorithms.Node} proxyReference the endpoint of the edge that represents the proxy reference node - * @param {yfiles.algorithms.Node} opposite the other endpoint of the new edge - * @param {Object} referencingCopyId the ID of the proxy node that is referenced by the proxy reference node - * @returns {yfiles.algorithms.Edge} the created proxy reference edge + * @param proxyReference the endpoint of the edge that represents the proxy reference node + * @param opposite the other endpoint of the new edge + * @param referencingCopyId the ID of the proxy node that is referenced by the proxy reference node + * @returns the created proxy reference edge * @see yfiles.multipage.EdgeType#PROXY_REFERENCE * @see yfiles.multipage.NodeType#PROXY_REFERENCE * @see yfiles.multipage.LayoutContext#createEdge @@ -114294,10 +113895,10 @@ declare namespace system{ createProxyReferenceEdge(context:yfiles.multipage.LayoutContext,proxyReference:yfiles.algorithms.Node,opposite:yfiles.algorithms.Node,referencingCopyId:Object):yfiles.algorithms.Edge; /** * Callback method for creating a node of type {@link yfiles.multipage.NodeType#PROXY_REFERENCE}. - * @param {yfiles.multipage.LayoutContext} context an object providing relevant layout information, for example, the current graph as well as various information about the + * @param context an object providing relevant layout information, for example, the current graph as well as various information about the * graph elements - * @param {Object} referringProxyId the ID of the proxy to which the created node refers - * @returns {yfiles.algorithms.Node} the new proxy reference node + * @param referringProxyId the ID of the proxy to which the created node refers + * @returns the new proxy reference node * @see yfiles.multipage.NodeType#PROXY_REFERENCE * @see yfiles.multipage.LayoutContext#createNode * @see yfiles.multipage.NodeType#PROXY @@ -114316,29 +113917,29 @@ declare namespace system{ export interface IElementInfoManager extends Object{ /** * Returns the edge information object of the given edge. - * @param {yfiles.algorithms.Edge} edge the edge for which the information object should be returned - * @returns {yfiles.multipage.IEdgeInfo} the edge information object of the given edge + * @param edge the edge for which the information object should be returned + * @returns the edge information object of the given edge * @abstract */ getEdgeInfo(edge:yfiles.algorithms.Edge):yfiles.multipage.IEdgeInfo; /** * Returns the edge label information object of the given edge label layout. - * @param {yfiles.layout.IEdgeLabelLayout} edgeLabelLayout the edge label layout for which the information object should be returned - * @returns {yfiles.multipage.IEdgeLabelInfo} the edge label information object of the given edge label layout + * @param edgeLabelLayout the edge label layout for which the information object should be returned + * @returns the edge label information object of the given edge label layout * @abstract */ getEdgeLabelInfo(edgeLabelLayout:yfiles.layout.IEdgeLabelLayout):yfiles.multipage.IEdgeLabelInfo; /** * Returns the node information object of the given node. - * @param {yfiles.algorithms.Node} node the node for which the information object should be returned - * @returns {yfiles.multipage.INodeInfo} the node information object of the given node + * @param node the node for which the information object should be returned + * @returns the node information object of the given node * @abstract */ getNodeInfo(node:yfiles.algorithms.Node):yfiles.multipage.INodeInfo; /** * Returns the node label layout information object of the given node label layout. - * @param {yfiles.layout.INodeLabelLayout} nodeLabelLayout the node label layout for which the information object should be returned - * @returns {yfiles.multipage.INodeLabelInfo} the node label information object of the given node label layout + * @param nodeLabelLayout the node label layout for which the information object should be returned + * @returns the node label information object of the given node label layout * @abstract */ getNodeLabelInfo(nodeLabelLayout:yfiles.layout.INodeLabelLayout):yfiles.multipage.INodeLabelInfo; @@ -114354,7 +113955,7 @@ declare namespace system{ export interface ILayoutCallback extends Object{ /** * Invoked from {@link yfiles.multipage.MultiPageLayout#applyLayout} when a new multi-page layout has been calculated. - * @param {yfiles.multipage.MultiPageLayoutResult} result the result of the layout calculation + * @param result the result of the layout calculation * @see yfiles.multipage.MultiPageLayout#applyLayout * @abstract */ @@ -114453,101 +114054,101 @@ declare namespace system{ *

    * It provides several methods to access data as well as adding and removing elements. *

    - * @class yfiles.multipage.LayoutContext + * @class * @implements {yfiles.multipage.IElementInfoManager} */ export interface LayoutContext extends Object,yfiles.multipage.IElementInfoManager{} export class LayoutContext { /** * Adds a label to a given edge. - * @param {yfiles.layout.IEdgeLabelLayout} label the label that should be added to the given edge - * @param {yfiles.algorithms.Edge} labeledElement the edge to which the label should be added + * @param label the label that should be added to the given edge + * @param labeledElement the edge to which the label should be added */ addEdgeLabel(label:yfiles.layout.IEdgeLabelLayout,labeledElement:yfiles.algorithms.Edge):void; /** * Adds a label to a given node. - * @param {yfiles.layout.INodeLabelLayout} label the label that should be added to the given node - * @param {yfiles.algorithms.Node} labeledElement the node to which the label should be added + * @param label the label that should be added to the given node + * @param labeledElement the node to which the label should be added */ addNodeLabel(label:yfiles.layout.INodeLabelLayout,labeledElement:yfiles.algorithms.Node):void; /** * All methods of the {@link yfiles.multipage.IElementFactory} have to use this method to create an edge. - * @param {yfiles.algorithms.Node} source the source of the edge - * @param {yfiles.algorithms.Node} target the target of the edge - * @param {Object} sameDataElementId the ID of the edge whose data should be copied to the created edge (or null if no data should be copied) - * @returns {yfiles.algorithms.Edge} the created edge + * @param source the source of the edge + * @param target the target of the edge + * @param sameDataElementId the ID of the edge whose data should be copied to the created edge (or null if no data should be copied) + * @returns the created edge * @see yfiles.multipage.IElementFactory */ createEdge(source:yfiles.algorithms.Node,target:yfiles.algorithms.Node,sameDataElementId:Object):yfiles.algorithms.Edge; /** * All methods of the {@link yfiles.multipage.IElementFactory} have to use this method to create a node. - * @param {Object} sameDataElementId the ID of the node whose data should be copied to the created node (or null if no data should be copied) - * @returns {yfiles.algorithms.Node} the created node + * @param sameDataElementId the ID of the node whose data should be copied to the created node (or null if no data should be copied) + * @returns the created node * @see yfiles.multipage.IElementFactory */ createNode(sameDataElementId:Object):yfiles.algorithms.Node; /** * - * @param {yfiles.algorithms.Edge} edge - * @returns {yfiles.multipage.IEdgeInfo} + * @param edge + * @returns */ getEdgeInfo(edge:yfiles.algorithms.Edge):yfiles.multipage.IEdgeInfo; /** * - * @param {yfiles.layout.IEdgeLabelLayout} edgeLabelLayout - * @returns {yfiles.multipage.IEdgeLabelInfo} + * @param edgeLabelLayout + * @returns */ getEdgeLabelInfo(edgeLabelLayout:yfiles.layout.IEdgeLabelLayout):yfiles.multipage.IEdgeLabelInfo; /** * - * @param {yfiles.algorithms.Node} node - * @returns {yfiles.multipage.INodeInfo} + * @param node + * @returns */ getNodeInfo(node:yfiles.algorithms.Node):yfiles.multipage.INodeInfo; /** * - * @param {yfiles.layout.INodeLabelLayout} nodeLabelLayout - * @returns {yfiles.multipage.INodeLabelInfo} + * @param nodeLabelLayout + * @returns */ getNodeLabelInfo(nodeLabelLayout:yfiles.layout.INodeLabelLayout):yfiles.multipage.INodeLabelInfo; /** * Returns the edge of the input graph with the given ID or null if there is no such edge. - * @param {Object} id the ID of the edge that should be returned - * @returns {yfiles.algorithms.Edge} the edge of the input graph with the given ID or null if there is no such edge + * @param id the ID of the edge that should be returned + * @returns the edge of the input graph with the given ID or null if there is no such edge */ getOriginalEdge(id:Object):yfiles.algorithms.Edge; /** * Returns the node of the input graph with the given ID or null if there is no such node. - * @param {Object} id the ID of the node that should be returned - * @returns {yfiles.algorithms.Node} the node of the input graph with the given ID or null if there is no such node + * @param id the ID of the node that should be returned + * @returns the node of the input graph with the given ID or null if there is no such node */ getOriginalNode(id:Object):yfiles.algorithms.Node; /** * Returns the edge of a page graph (a graph that represents the result of the multi-page layout) with the given ID or null * if there is no such edge. - * @param {Object} id the ID of the edge that should be returned - * @returns {yfiles.algorithms.Edge} the edge of a page graph with the given ID or null if there is no such edge + * @param id the ID of the edge that should be returned + * @returns the edge of a page graph with the given ID or null if there is no such edge */ getPageEdge(id:Object):yfiles.algorithms.Edge; /** * Returns the node of a page graph (a graph that represents the result of the multi-page layout) with the given ID or null * if there is no such node. - * @param {Object} id the ID of the node that should be returned - * @returns {yfiles.algorithms.Node} the node of a page graph with the given ID or null if there is no such node + * @param id the ID of the node that should be returned + * @returns the node of a page graph with the given ID or null if there is no such node */ getPageNode(id:Object):yfiles.algorithms.Node; /** * Removes a label from a given edge. - * @param {yfiles.layout.IEdgeLabelLayout} label the label that should be removed - * @param {yfiles.algorithms.Edge} labeledElement the edge owning the label - * @returns {boolean} + * @param label the label that should be removed + * @param labeledElement the edge owning the label + * @returns */ removeEdgeLabel(label:yfiles.layout.IEdgeLabelLayout,labeledElement:yfiles.algorithms.Edge):boolean; /** * Removes a label from a given node. - * @param {yfiles.layout.INodeLabelLayout} label the label that should be removed - * @param {yfiles.algorithms.Node} labeledElement the node owning the label - * @returns {boolean} + * @param label the label that should be removed + * @param labeledElement the node owning the label + * @returns */ removeNodeLabel(label:yfiles.layout.INodeLabelLayout,labeledElement:yfiles.algorithms.Node):boolean; /** @@ -114611,15 +114212,14 @@ declare namespace system{ * not specify a return value. Therefore, client code has to {@link yfiles.multipage.MultiPageLayout#layoutCallback register} a {@link yfiles.multipage.ILayoutCallback} that is invoked * when the algorithm has calculated a new multi-page result. *

    - * @class yfiles.multipage.MultiPageLayout + * @class * @extends {yfiles.layout.LayoutStageBase} */ export interface MultiPageLayout extends yfiles.layout.LayoutStageBase{} export class MultiPageLayout { /** * Creates a new {@link yfiles.multipage.MultiPageLayout} instance. - * @param {yfiles.layout.ILayoutAlgorithm} core the layout algorithm used for a single page - * @constructor + * @param core the layout algorithm used for a single page */ constructor(core:yfiles.layout.ILayoutAlgorithm); /** @@ -114631,10 +114231,10 @@ declare namespace system{ *

    * Subclasses may implement a custom layout strategy for this step. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.IDataProvider} incrementalNodesDP a {@link yfiles.algorithms.IDataProvider} that returns a boolean value indicating whether or not a node is marked; the positions + * @param graph the input graph + * @param incrementalNodesDP a {@link } that returns a boolean value indicating whether or not a node is marked; the positions * of the non-marked nodes are not allowed to change - * @param {yfiles.multipage.LayoutContext} context the current layout context + * @param context the current layout context * @see yfiles.multipage.LayoutContext * @protected */ @@ -114645,8 +114245,8 @@ declare namespace system{ * Unlike method {@link yfiles.multipage.MultiPageLayout#applyLayout}, this method ignores the registered {@link yfiles.multipage.MultiPageLayout#layoutCallback layout callback} and * directly returns the calculated {@link yfiles.multipage.MultiPageLayoutResult}. *

    - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @returns {yfiles.multipage.MultiPageLayoutResult} an instance of {@link yfiles.multipage.MultiPageLayoutResult} that represents the result of the layout run + * @param graph the input graph + * @returns an instance of {@link } that represents the result of the layout run * @throws {Stubs.Exceptions.ArgumentError} if for one of the keys {@link yfiles.multipage.MultiPageLayout#NODE_ID_DP_KEY}, {@link yfiles.multipage.MultiPageLayout#EDGE_ID_DP_KEY}, * {@link yfiles.multipage.MultiPageLayout#NODE_LABEL_ID_DP_KEY} and {@link yfiles.multipage.MultiPageLayout#EDGE_LABEL_ID_DP_KEY} no {@link yfiles.algorithms.IDataProvider} * is registered with the given graph @@ -114662,7 +114262,7 @@ declare namespace system{ *

    * Subclasses may create a custom implementation of the element factory. *

    - * @returns {yfiles.multipage.IElementFactory} the created element factory + * @returns the created element factory * @see yfiles.multipage.MultiPageLayout#elementFactory * @see yfiles.multipage.MultiPageLayout#elementFactory * @see yfiles.multipage.IElementFactory @@ -114678,32 +114278,33 @@ declare namespace system{ *

    * Subclasses may implement a custom remove/restore strategy. *

    - * @param {yfiles.algorithms.Node} connector1 the first connector of the connector pair - * @param {yfiles.algorithms.Node} connector2 the second connector of the connector pair - * @param {yfiles.algorithms.YList} originalEdgeIds the IDs of the original edges that have to be restored - * @param {yfiles.multipage.LayoutContext} context the current layout context - * @returns {boolean} true if the removal of the connector pair was successful, false otherwise + * @param connector1 the first connector of the connector pair + * @param connector2 the second connector of the connector pair + * @param originalEdgeIds the IDs of the original edges that have to be restored + * @param context the current layout context + * @returns true if the removal of the connector pair was successful, false otherwise * @see yfiles.multipage.MultiPageLayout#routeRestoredEdges * @protected */ removeConnectorPair(connector1:yfiles.algorithms.Node,connector2:yfiles.algorithms.Node,originalEdgeIds:yfiles.algorithms.YList,context:yfiles.multipage.LayoutContext):boolean; /** - * This method is called by {@link yfiles.multipage.MultiPageLayout#removeConnectorPair} to route the restored edges. + * This method is called whenever some single edges have to be routed without changing the position of nodes (e.g., by {@link yfiles.multipage.MultiPageLayout#removeConnectorPair} + * to route the restored edges). *

    * It has to guarantee that the routes are fully contained within the given bounding rectangle. *

    *

    * Subclasses may implement a custom routing strategy for the restored edges. *

    - * @param {yfiles.layout.LayoutGraph} graph the relevant graph - * @param {yfiles.algorithms.IDataProvider} selectedEdgesDP a {@link yfiles.algorithms.IDataProvider} that returns a boolean value indicating whether or not an edge should be rerouted - * @param {yfiles.algorithms.YRectangle} boundingRectangle the edge routes should be fully contained within this rectangle + * @param graph the relevant graph + * @param selectedEdgesDP a {@link } that returns a boolean value indicating whether or not an edge should be rerouted + * @param boundingRectangle the edge routes should be fully contained within this rectangle * @see yfiles.multipage.MultiPageLayout#removeConnectorPair * @protected */ routeRestoredEdges(graph:yfiles.layout.LayoutGraph,selectedEdgesDP:yfiles.algorithms.IDataProvider,boundingRectangle:yfiles.algorithms.YRectangle):void; /** - * Data provider key for assigning a cluster ID to common (non-group) nodes. + * Data provider key for assigning a cluster ID to common (non-group) nodes * @see yfiles.multipage.MultiPageLayout#strictClusterSeparation * @const * @static @@ -114711,35 +114312,35 @@ declare namespace system{ */ static NODE_CLUSTER_ID_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data provider key for mapping each node of the input graph to a unique ID. + * Data provider key for mapping each node of the input graph to a unique ID * @const * @static * @type {yfiles.algorithms.NodeDpKey.} */ static NODE_ID_DP_KEY:yfiles.algorithms.NodeDpKey; /** - * Data provider key for mapping each edge of the input graph to a unique ID. + * Data provider key for mapping each edge of the input graph to a unique ID * @const * @static * @type {yfiles.algorithms.EdgeDpKey.} */ static EDGE_ID_DP_KEY:yfiles.algorithms.EdgeDpKey; /** - * Data provider key for mapping each edge label of the input graph to a unique ID. + * Data provider key for mapping each edge label of the input graph to a unique ID * @const * @static * @type {yfiles.algorithms.IEdgeLabelLayoutDpKey.} */ static EDGE_LABEL_ID_DP_KEY:yfiles.algorithms.IEdgeLabelLayoutDpKey; /** - * Data provider key for mapping each node label of the input graph to a unique ID. + * Data provider key for mapping each node label of the input graph to a unique ID * @const * @static * @type {yfiles.algorithms.INodeLabelLayoutDpKey.} */ static NODE_LABEL_ID_DP_KEY:yfiles.algorithms.INodeLabelLayoutDpKey; /** - * Data provider key for specifying the type of multi-edges. + * Data provider key for specifying the type of multi-edges *

    * If {@link yfiles.multipage.MultiPageLayout#edgeBundleModeMask} & {@link yfiles.multipage.EdgeBundleModes#DISTINGUISH_TYPES} == 1, multi-edges (edges with same endpoints) associated with * different types (objects) are distinguished, i.e., they are split by different connector pairs (see @@ -114851,33 +114452,33 @@ declare namespace system{ * {@link yfiles.multipage.MultiPageLayout#applyLayout}. In the latter case, a {@link yfiles.multipage.ILayoutCallback} has to be {@link yfiles.multipage.MultiPageLayout#layoutCallback set} * before starting the layout run. *

    - * @class yfiles.multipage.MultiPageLayoutResult + * @class * @implements {yfiles.multipage.IElementInfoManager} */ export interface MultiPageLayoutResult extends Object,yfiles.multipage.IElementInfoManager{} export class MultiPageLayoutResult { /** * - * @param {yfiles.algorithms.Edge} edge - * @returns {yfiles.multipage.IEdgeInfo} + * @param edge + * @returns */ getEdgeInfo(edge:yfiles.algorithms.Edge):yfiles.multipage.IEdgeInfo; /** * - * @param {yfiles.layout.IEdgeLabelLayout} edgeLabelLayout - * @returns {yfiles.multipage.IEdgeLabelInfo} + * @param edgeLabelLayout + * @returns */ getEdgeLabelInfo(edgeLabelLayout:yfiles.layout.IEdgeLabelLayout):yfiles.multipage.IEdgeLabelInfo; /** * - * @param {yfiles.algorithms.Node} node - * @returns {yfiles.multipage.INodeInfo} + * @param node + * @returns */ getNodeInfo(node:yfiles.algorithms.Node):yfiles.multipage.INodeInfo; /** * - * @param {yfiles.layout.INodeLabelLayout} nodeLabelLayout - * @returns {yfiles.multipage.INodeLabelInfo} + * @param nodeLabelLayout + * @returns */ getNodeLabelInfo(nodeLabelLayout:yfiles.layout.INodeLabelLayout):yfiles.multipage.INodeLabelInfo; /** @@ -114885,8 +114486,8 @@ declare namespace system{ *

    * A page graph is a subgraph of the input graph whose layout fits the {@link yfiles.multipage.MultiPageLayout#maximumPageSize specified maximum page size}. *

    - * @param {number} pageNo the given page number - * @returns {yfiles.layout.LayoutGraph} the page graph associated with the given page number + * @param pageNo the given page number + * @returns the page graph associated with the given page number * @throws {Stubs.Exceptions.IndexOutOfRangeError} if pageNo >= pageCount or pageNo < 0 * @see yfiles.multipage.MultiPageLayoutResult#pageCount */ @@ -114896,7 +114497,7 @@ declare namespace system{ *

    * Each page contains a {@link yfiles.multipage.MultiPageLayoutResult#getPage page graph} whose layout fits the {@link yfiles.multipage.MultiPageLayout#maximumPageSize specified maximum page size}. *

    - * @returns {number} the number of available pages + * @returns the number of available pages * @see yfiles.multipage.MultiPageLayoutResult#getPage */ pageCount():number; @@ -114904,7 +114505,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.multipage.MultiPageLayout}. - * @class yfiles.multipage.MultiPageLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface MultiPageLayoutData extends yfiles.layout.LayoutData{} @@ -115001,14 +114602,13 @@ declare namespace system{ * groups. Edge bundling is supported only if {@link yfiles.circular.CircularLayout#partitionStyle partition layout style} is set to {@link yfiles.circular.PartitionStyle#CYCLE} and {@link yfiles.circular.CircularLayout#layoutStyle layout style} * is other than {@link yfiles.circular.LayoutStyle#BCC_ISOLATED}. *

    - * @class yfiles.circular.CircularLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface CircularLayout extends yfiles.layout.MultiStageLayout{} export class CircularLayout { /** * Creates a new {@link yfiles.circular.CircularLayout} instance with the default settings. - * @constructor */ constructor(); /** @@ -115248,14 +114848,13 @@ declare namespace system{ *
  • The radius can be determined automatically. A specified {@link yfiles.circular.SingleCycleLayout#minimumRadius minimum radius} will be obeyed when choosing the radius.
  • *
  • The radius can be chosen manually. To do so, disable the {@link yfiles.circular.SingleCycleLayout#automaticRadius automatic radius selection} and specify the custom radius via {@link yfiles.circular.SingleCycleLayout#fixedRadius}.
  • * - * @class yfiles.circular.SingleCycleLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface SingleCycleLayout extends yfiles.layout.MultiStageLayout{} export class SingleCycleLayout { /** * Creates a new {@link yfiles.circular.SingleCycleLayout} instance with default settings. - * @constructor */ constructor(); /** @@ -115312,9 +114911,8 @@ declare namespace system{ */ automaticRadius:boolean; /** - * Gets or sets the {@link yfiles.algorithms.INodeSequencer} that will be used for determining the order of the nodes for the - * circle placement. - * @throws {Stubs.Exceptions.ArgumentError} if the specified {@link yfiles.algorithms.INodeSequencer} is null + * Gets or sets the custom {@link yfiles.algorithms.INodeSequencer} that will be used for determining the order of the nodes for + * the circle placement. * @type {yfiles.algorithms.INodeSequencer} */ nodeSequencer:yfiles.algorithms.INodeSequencer; @@ -115347,7 +114945,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.circular.CircularLayout}. - * @class yfiles.circular.CircularLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface CircularLayoutData extends yfiles.layout.LayoutData{} @@ -115412,18 +115010,17 @@ declare namespace system{ * is registered with the graph with key {@link yfiles.orthogonal.OrthogonalLayout#EDGE_LAYOUT_DESCRIPTOR_DP_KEY}. *

    * @see yfiles.orthogonal.OrthogonalLayout#EDGE_LAYOUT_DESCRIPTOR_DP_KEY - * @class yfiles.orthogonal.EdgeLayoutDescriptor + * @class */ export interface EdgeLayoutDescriptor extends Object{} export class EdgeLayoutDescriptor { /** * Creates a new instance of {@link yfiles.orthogonal.EdgeLayoutDescriptor} with the default settings. - * @constructor */ constructor(); /** * Creates a copy of this {@link yfiles.orthogonal.EdgeLayoutDescriptor} instance. - * @returns {yfiles.orthogonal.EdgeLayoutDescriptor} a copy of this {@link yfiles.orthogonal.EdgeLayoutDescriptor} instance + * @returns a copy of this {@link } instance */ createCopy():yfiles.orthogonal.EdgeLayoutDescriptor; /** @@ -115592,14 +115189,13 @@ declare namespace system{ * {@link yfiles.orthogonal.OrthogonalLayout#faceMaximization}, respectively. The drawback when these settings are enabled is that the running time of the algorithm may be * drastically increased. *

    - * @class yfiles.orthogonal.OrthogonalLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface OrthogonalLayout extends yfiles.layout.MultiStageLayout{} export class OrthogonalLayout { /** * Creates a new {@link yfiles.orthogonal.OrthogonalLayout} instance with default settings. - * @constructor */ constructor(); /** @@ -115609,7 +115205,7 @@ declare namespace system{ * This method may be overridden to create a new {@link yfiles.orthogonal.EdgeLayoutDescriptor} instance with different * configuration settings. *

    - * @returns {yfiles.orthogonal.EdgeLayoutDescriptor} a new {@link yfiles.orthogonal.EdgeLayoutDescriptor} instance + * @returns a new {@link } instance * @protected */ createEdgeLayoutDescriptor():yfiles.orthogonal.EdgeLayoutDescriptor; @@ -115827,14 +115423,13 @@ declare namespace system{ *

    * Octilinear routing of edges can be supported by appending {@link yfiles.router.PolylineLayoutStage}. *

    - * @class yfiles.orthogonal.CompactOrthogonalLayout + * @class * @extends {yfiles.layout.PartitionLayout} */ export interface CompactOrthogonalLayout extends yfiles.layout.PartitionLayout{} export class CompactOrthogonalLayout { /** * Creates a new {@link yfiles.orthogonal.CompactOrthogonalLayout} instance with default settings. - * @constructor */ constructor(); /** @@ -115867,7 +115462,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.orthogonal.OrthogonalLayout}. - * @class yfiles.orthogonal.OrthogonalLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface OrthogonalLayoutData extends yfiles.layout.LayoutData{} @@ -115910,6 +115505,14 @@ declare namespace system{ * @type {yfiles.algorithms.AbortHandler} */ abortHandler:yfiles.algorithms.AbortHandler; + /** + * Gets or sets the mapping that provides a {@link yfiles.layout.PreferredPlacementDescriptor} instance for edge + * {@link yfiles.graph.ILabel}s. + * @see yfiles.layout.PreferredPlacementDescriptor + * @see yfiles.layout.LayoutGraphAdapter#EDGE_LABEL_LAYOUT_PREFERRED_PLACEMENT_DESCRIPTOR_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + edgeLabelPreferredPlacement:yfiles.layout.ItemMapping; static $class:yfiles.lang.Class; } }export namespace radial{ @@ -115930,6 +115533,7 @@ declare namespace system{ /** * Specifier for a center nodes policy which chooses the node with the highest weighted centrality as center node. * @see yfiles.radial.RadialLayout#centerNodesPolicy + * @see yfiles.algorithms.Trees#getWeightedCenterNode */ WEIGHTED_CENTRALITY, /** @@ -115983,13 +115587,12 @@ declare namespace system{ * layout algorithm will return a {@link yfiles.radial.RadialLayoutNodeInfo} object with appropriately filled fields for each {@link yfiles.algorithms.Node} * when the layout is calculated. *

    - * @class yfiles.radial.RadialLayoutNodeInfo + * @class */ export interface RadialLayoutNodeInfo extends Object{} export class RadialLayoutNodeInfo { /** * Creates a new {@link yfiles.radial.RadialLayoutNodeInfo} instance. - * @constructor */ constructor(); /** @@ -116059,14 +115662,13 @@ declare namespace system{ * value. If the layer spacing is 0, the radii are chosen such that all nodes fit on their corresponding circles. A minimum * layer distance is specified by {@link yfiles.radial.RadialLayout#minimumLayerDistance}. *

    - * @class yfiles.radial.RadialLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface RadialLayout extends yfiles.layout.MultiStageLayout{} export class RadialLayout { /** * Creates a new {@link yfiles.radial.RadialLayout} instance with the default settings. - * @constructor */ constructor(); /** @@ -116184,7 +115786,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.radial.RadialLayout}. - * @class yfiles.radial.RadialLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface RadialLayoutData extends yfiles.layout.LayoutData{} @@ -116259,14 +115861,13 @@ declare namespace system{ * independent. *

    * @see yfiles.seriesparallel.SeriesParallelLayout#defaultOutEdgeComparer - * @class yfiles.seriesparallel.DefaultOutEdgeComparer + * @class * @implements {yfiles.collections.IComparer.} */ export interface DefaultOutEdgeComparer extends Object,yfiles.collections.IComparer{} export class DefaultOutEdgeComparer { /** * Creates a {@link yfiles.seriesparallel.DefaultOutEdgeComparer} instance with default settings. - * @constructor */ constructor(); /** @@ -116275,9 +115876,9 @@ declare namespace system{ * The order of edges is kept unless there are * {@link yfiles.layout.PortConstraint}s assigned. Then the edges will be sorted to avoid edge crossings. *

    - * @param {Object} o1 the first edge - * @param {Object} o2 the second edge - * @returns {number} the order of the given two edges + * @param o1 the first edge + * @param o2 the second edge + * @returns the order of the given two edges */ compare(o1:Object,o2:Object):number; static $class:yfiles.lang.Class; @@ -116298,7 +115899,7 @@ declare namespace system{ * @see yfiles.layout.PortConstraint * @see yfiles.layout.PortConstraintKeys#SOURCE_GROUP_ID_DP_KEY * @see yfiles.layout.PortConstraintKeys#TARGET_GROUP_ID_DP_KEY - * @class yfiles.seriesparallel.DefaultPortAssignment + * @class * @implements {yfiles.seriesparallel.IPortAssignment} */ export interface DefaultPortAssignment extends Object,yfiles.seriesparallel.IPortAssignment{} @@ -116306,21 +115907,19 @@ declare namespace system{ /** * Creates a new {@link yfiles.seriesparallel.DefaultPortAssignment} instance using the given {@link yfiles.seriesparallel.DefaultPortAssignment#mode mode} and a given value for the {@link yfiles.seriesparallel.DefaultPortAssignment#borderGapToPortGapRatio ratio} * of the gap between the border and the ports to the gap between the ports themselves. - * @param {yfiles.seriesparallel.PortAssignmentMode} mode one of the predefined port assignment modes - * @param {number} [ratio=0.5] the ratio of the distance between outer ports and the border to the distance between any two ports + * @param mode one of the predefined port assignment modes + * @param [ratio=0.5] the ratio of the distance between outer ports and the border to the distance between any two ports * @throws {Stubs.Exceptions.ArgumentError} if the given mode is unknown or the given ratio is negative - * @constructor */ constructor(mode:yfiles.seriesparallel.PortAssignmentMode,ratio?:number); /** * Creates a new {@link yfiles.seriesparallel.DefaultPortAssignment} with default settings. - * @constructor */ constructor(); /** * Places the ports of edges connecting to the given node according to the {@link yfiles.seriesparallel.DefaultPortAssignment#mode port assignment mode}. - * @param {yfiles.layout.LayoutGraph} graph the input graph - * @param {yfiles.algorithms.Node} node the node whose adjacent edges' ports should be placed + * @param graph the input graph + * @param node the node whose adjacent edges' ports should be placed * @see yfiles.seriesparallel.DefaultPortAssignment#mode */ assignPorts(graph:yfiles.layout.LayoutGraph,node:yfiles.algorithms.Node):void; @@ -116334,9 +115933,9 @@ declare namespace system{ * This method is called by {@link yfiles.seriesparallel.DefaultPortAssignment#assignPorts} to calculate the location of the first * port. It may be overridden to implement a different distribution of ports on the node's side. *

    - * @param {number} sideLength the width/height of the side - * @param {number} edgeCount the number of edges that connect to this side - * @returns {number} the absolute gap to be used on both sides of the ports + * @param sideLength the width/height of the side + * @param edgeCount the number of edges that connect to this side + * @returns the absolute gap to be used on both sides of the ports * @see yfiles.seriesparallel.DefaultPortAssignment#assignPorts * @see yfiles.seriesparallel.DefaultPortAssignment#borderGapToPortGapRatio * @protected @@ -116352,10 +115951,10 @@ declare namespace system{ * This method is called by {@link yfiles.seriesparallel.DefaultPortAssignment#assignPorts} to calculate the distance between two * ports. It may be overridden to implement a different distribution of ports on the node's side. *

    - * @param {number} sideLength the width/height of the side - * @param {number} edgeCount the number of edges/ports that connect to this side - * @param {number} portBorderGap the port border gap (i.e. calculated by {@link yfiles.seriesparallel.DefaultPortAssignment#getPortBorderGap}) - * @returns {number} the absolute distance to be used between two adjacent ports + * @param sideLength the width/height of the side + * @param edgeCount the number of edges/ports that connect to this side + * @param portBorderGap the port border gap (i.e. calculated by {@link #getPortBorderGap}) + * @returns the absolute distance to be used between two adjacent ports * @see yfiles.seriesparallel.DefaultPortAssignment#assignPorts * @see yfiles.seriesparallel.DefaultPortAssignment#getPortBorderGap * @protected @@ -116406,18 +116005,17 @@ declare namespace system{ *

    * @see yfiles.seriesparallel.SeriesParallelLayout#EDGE_LAYOUT_DESCRIPTOR_DP_KEY * @see yfiles.seriesparallel.SeriesParallelLayout#defaultEdgeLayoutDescriptor - * @class yfiles.seriesparallel.EdgeLayoutDescriptor + * @class */ export interface EdgeLayoutDescriptor extends Object{} export class EdgeLayoutDescriptor { /** * Creates a new instance of {@link yfiles.seriesparallel.EdgeLayoutDescriptor} with default settings. - * @constructor */ constructor(); /** * Creates a copy of this {@link yfiles.seriesparallel.EdgeLayoutDescriptor} instance. - * @returns {yfiles.seriesparallel.EdgeLayoutDescriptor} a copy of this {@link yfiles.seriesparallel.EdgeLayoutDescriptor} instance + * @returns a copy of this {@link } instance */ createCopy():yfiles.seriesparallel.EdgeLayoutDescriptor; /** @@ -116519,8 +116117,8 @@ declare namespace system{ *

    * This method is called by {@link yfiles.seriesparallel.SeriesParallelLayout} before the actual layout of the graph takes place. *

    - * @param {yfiles.layout.LayoutGraph} graph the graph instance the node is part of - * @param {yfiles.algorithms.Node} node the node whose incident edges' ports are assigned + * @param graph the graph instance the node is part of + * @param node the node whose incident edges' ports are assigned * @see yfiles.seriesparallel.SeriesParallelLayout#OUT_EDGE_COMPARER_DP_KEY * @see yfiles.seriesparallel.SeriesParallelLayout#defaultOutEdgeComparer * @abstract @@ -116605,14 +116203,13 @@ declare namespace system{ * edges from the input graph until a series-parallel graph is obtained. The edges that were removed will be routed * separately afterwards. *

    - * @class yfiles.seriesparallel.SeriesParallelLayout + * @class * @extends {yfiles.layout.MultiStageLayout} */ export interface SeriesParallelLayout extends yfiles.layout.MultiStageLayout{} export class SeriesParallelLayout { /** * Creates a new {@link yfiles.seriesparallel.SeriesParallelLayout} instance with default settings. - * @constructor */ constructor(); /** @@ -116620,8 +116217,8 @@ declare namespace system{ *

    * The current implementation detects the series-parallel graph structure in linear time. *

    - * @param {yfiles.algorithms.Graph} graph the input graph - * @returns {boolean} true if the given graph is series-parallel, false otherwise + * @param graph the input graph + * @returns true if the given graph is series-parallel, false otherwise * @static */ static isSeriesParallelGraph(graph:yfiles.algorithms.Graph):boolean; @@ -116871,7 +116468,7 @@ declare namespace system{ } /** * Specifies custom data for the {@link yfiles.seriesparallel.SeriesParallelLayout}. - * @class yfiles.seriesparallel.SeriesParallelLayoutData + * @class * @extends {yfiles.layout.LayoutData} */ export interface SeriesParallelLayoutData extends yfiles.layout.LayoutData{} @@ -116914,10 +116511,19 @@ declare namespace system{ * @type {yfiles.algorithms.AbortHandler} */ abortHandler:yfiles.algorithms.AbortHandler; + /** + * Gets or sets the mapping that provides a {@link yfiles.layout.PreferredPlacementDescriptor} instance for edge + * {@link yfiles.graph.ILabel}s. + * @see yfiles.layout.PreferredPlacementDescriptor + * @see yfiles.layout.LayoutGraphAdapter#EDGE_LABEL_LAYOUT_PREFERRED_PLACEMENT_DESCRIPTOR_DP_KEY + * @type {yfiles.layout.ItemMapping.} + */ + edgeLabelPreferredPlacement:yfiles.layout.ItemMapping; static $class:yfiles.lang.Class; } }} +type yfiles_namespace = typeof yfiles; declare module 'yfiles/algorithms' { export = yfiles; } declare module 'yfiles/complete' { export = yfiles; } declare module 'yfiles/lang' { export = yfiles.lang; } @@ -116940,4 +116546,4 @@ declare module 'yfiles/view-editor' { export = yfiles; } declare module 'yfiles/view-folding' { export = yfiles; } declare module 'yfiles/view-graphml' { export = yfiles; } declare module 'yfiles/view-layout-bridge' { export = yfiles; } -declare module 'yfiles/view-table' { export = yfiles; } +declare module 'yfiles/view-table' { export = yfiles; } \ No newline at end of file diff --git a/types/yfiles/yfiles-tests.ts b/types/yfiles/yfiles-tests.ts index 9f227aced5..05e284529c 100644 --- a/types/yfiles/yfiles-tests.ts +++ b/types/yfiles/yfiles-tests.ts @@ -118,6 +118,7 @@ class BasicTest { let a21 = new yfiles.styles.ArcEdgeStyle(); let a22 = new yfiles.tree.AspectRatioTreeLayout(); let a23 = new yfiles.view.GraphComponent(); + let yfilesNamespace : yfiles_namespace; } testsForVersion2001() { From 038ab80ad11f6281f23db34e03ac87c70e718af7 Mon Sep 17 00:00:00 2001 From: mulles3008 Date: Thu, 27 Apr 2017 20:06:55 +0200 Subject: [PATCH 074/321] Added wait to i18n.Options interface (#16154) * Added wait to i18n.Options interface Enables setting global wait-flag. Important for react-i18next>=3.1.0 (https://github.com/i18next/react-i18next/blob/master/CHANGELOG.md#310) * Added interface i18n.ReactOptions for options specific to react-i18next --- types/i18next/i18next-tests.ts | 3 ++- types/i18next/index.d.ts | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/types/i18next/i18next-tests.ts b/types/i18next/i18next-tests.ts index e51f2f495c..744fd950d4 100644 --- a/types/i18next/i18next-tests.ts +++ b/types/i18next/i18next-tests.ts @@ -55,7 +55,8 @@ i18n.init({ interpolation: {}, detection: null, backend: null, - cache: null + cache: null, + wait: false }); i18n.t('helloWorld', { diff --git a/types/i18next/index.d.ts b/types/i18next/index.d.ts index ee06d8d18c..c0b0c82d81 100644 --- a/types/i18next/index.d.ts +++ b/types/i18next/index.d.ts @@ -87,12 +87,17 @@ declare namespace i18n { cache?: any; } + // init options for react-i18next + interface ReactOptions { + wait?: boolean; + } + type TranslationFunction = (key: string, options?: TranslationOptions) => string; interface I18n { //constructor(options?: Options, callback?: (err: any, t: TranslationFunction) => void); - init(options?: Options, callback?: (err: any, t: TranslationFunction) => void): I18n; + init(options?: Options&ReactOptions, callback?: (err: any, t: TranslationFunction) => void): I18n; loadResources(callback?: (err: any) => void): void; From ffa30397c21cd8603b80696d5b954342be09729f Mon Sep 17 00:00:00 2001 From: Nicholas Simmons Date: Thu, 27 Apr 2017 14:56:45 -0400 Subject: [PATCH 075/321] Add koa-redis type definitions (#16179) --- types/koa-redis/index.d.ts | 17 +++++++++++++++++ types/koa-redis/koa-redis-tests.ts | 20 ++++++++++++++++++++ types/koa-redis/tsconfig.json | 22 ++++++++++++++++++++++ types/koa-redis/tslint.json | 1 + 4 files changed, 60 insertions(+) create mode 100644 types/koa-redis/index.d.ts create mode 100644 types/koa-redis/koa-redis-tests.ts create mode 100644 types/koa-redis/tsconfig.json create mode 100644 types/koa-redis/tslint.json diff --git a/types/koa-redis/index.d.ts b/types/koa-redis/index.d.ts new file mode 100644 index 0000000000..94937c6455 --- /dev/null +++ b/types/koa-redis/index.d.ts @@ -0,0 +1,17 @@ +// Type definitions for koa-redis 3.0 +// Project: https://github.com/koajs/koa-redis +// Definitions by: Nick Simmons +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import {ClientOpts} from 'redis'; +import {SessionStore} from 'koa-generic-session'; + +declare namespace redisStore { + interface RedisOptions extends ClientOpts { + duplicate?: boolean; + client?: any; + } +} + +declare function redisStore(options: redisStore.RedisOptions): SessionStore; +export = redisStore; diff --git a/types/koa-redis/koa-redis-tests.ts b/types/koa-redis/koa-redis-tests.ts new file mode 100644 index 0000000000..68d557336c --- /dev/null +++ b/types/koa-redis/koa-redis-tests.ts @@ -0,0 +1,20 @@ +import * as Koa from "koa"; +import {MemoryStore, Session} from "koa-generic-session"; +import session = require("koa-generic-session"); +import redisStore = require("koa-redis"); + +const app = new Koa(); + +app.use(session({ + store: redisStore({ + url: 'redis://url:123', + host: 'redisHost', + port: 123, + path: 'redis/path', + db: '2', + duplicate: false, + client: {} + }) +})); + +app.listen(80); diff --git a/types/koa-redis/tsconfig.json b/types/koa-redis/tsconfig.json new file mode 100644 index 0000000000..c6a27579dd --- /dev/null +++ b/types/koa-redis/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "koa-redis-tests.ts" + ] +} diff --git a/types/koa-redis/tslint.json b/types/koa-redis/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/koa-redis/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From c2bca7cc2269e74e318c3ed01b648361bdd29e32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Wouts?= Date: Fri, 28 Apr 2017 04:59:33 +1000 Subject: [PATCH 076/321] [shelljs] Declare ShellConfig.execPath property (#16171) * Declare ShellConfig.execPath property See its usage in https://github.com/shelljs/shelljs/blob/master/src/exec.js * [shelljs] Add tslint.json The tslint.json config includes two exceptions: - unified-signatures = false because overloaded methods have different enough purposes to warrant a separate documentation - max-line-length = false because existing documentation breaks the rule, and it seems better fixed separately Code changes are straightforward style changes suggested by the linter. --- types/shelljs/index.d.ts | 167 ++++++++++++++++----------------- types/shelljs/shelljs-tests.ts | 51 +++++----- types/shelljs/tslint.json | 7 ++ 3 files changed, 115 insertions(+), 110 deletions(-) create mode 100644 types/shelljs/tslint.json diff --git a/types/shelljs/index.d.ts b/types/shelljs/index.d.ts index a8f2196dab..c8a7dbaec6 100644 --- a/types/shelljs/index.d.ts +++ b/types/shelljs/index.d.ts @@ -1,32 +1,30 @@ -// Type definitions for ShellJS v0.7.6 +// Type definitions for ShellJS 0.7 // Project: http://shelljs.org // Definitions by: Niklas Mollenhauer // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - /// - import child = require("child_process"); /** * Changes to directory dir for the duration of the script * @param {string} dir Directory to change in. */ -export declare function cd(dir: string): void; +export function cd(dir: string): void; /** * Returns the current directory. * @return {string} The current directory. */ -export declare function pwd(): string; +export function pwd(): string; /** * Returns array of files in the given path, or in current directory if no path provided. * @param {string[]} ...paths Paths to search. * @return {string[]} An array of files in the given path(s). */ -export declare function ls(...paths: string[]): string[]; +export function ls(...paths: string[]): string[]; /** * Returns array of files in the given path, or in current directory if no path provided. @@ -34,14 +32,14 @@ export declare function ls(...paths: string[]): string[]; * @param {string[]} ...paths Paths to search. * @return {string[]} An array of files in the given path(s). */ -export declare function ls(options: string, ...paths: string[]): string[]; +export function ls(options: string, ...paths: string[]): string[]; /** * Returns array of files in the given path, or in current directory if no path provided. * @param {string[]} paths Paths to search. * @return {string[]} An array of files in the given path(s). */ -export declare function ls(paths: string[]): string[]; +export function ls(paths: string[]): string[]; /** * Returns array of files in the given path, or in current directory if no path provided. @@ -49,35 +47,35 @@ export declare function ls(paths: string[]): string[]; * @param {string[]} paths Paths to search. * @return {string[]} An array of files in the given path(s). */ -export declare function ls(options: string, paths: string[]): string[]; +export function ls(options: string, paths: string[]): string[]; /** * Returns array of all files (however deep) in the given paths. * @param {string[]} ...path The path(s) to search. * @return {string[]} An array of all files (however deep) in the given path(s). */ -export declare function find(...path: string[]): string[]; +export function find(...path: string[]): string[]; /** * Returns array of all files (however deep) in the given paths. * @param {string[]} path The path(s) to search. * @return {string[]} An array of all files (however deep) in the given path(s). */ -export declare function find(path: string[]): string[]; +export function find(path: string[]): string[]; /** * Copies files. The wildcard * is accepted. * @param {string} source The source. * @param {string} dest The destination. */ -export declare function cp(source: string, dest: string): void; +export function cp(source: string, dest: string): void; /** * Copies files. The wildcard * is accepted. * @param {string[]} source The source. * @param {string} dest The destination. */ -export declare function cp(source: string[], dest: string): void; +export function cp(source: string[], dest: string): void; /** * Copies files. The wildcard * is accepted. @@ -85,7 +83,7 @@ export declare function cp(source: string[], dest: string): void; * @param {strin]} source The source. * @param {string} dest The destination. */ -export declare function cp(options: string, source: string, dest: string): void; +export function cp(options: string, source: string, dest: string): void; /** * Copies files. The wildcard * is accepted. @@ -93,73 +91,73 @@ export declare function cp(options: string, source: string, dest: string): void; * @param {string[]} source The source. * @param {string} dest The destination. */ -export declare function cp(options: string, source: string[], dest: string): void; +export function cp(options: string, source: string[], dest: string): void; /** * Removes files. The wildcard * is accepted. * @param {string[]} ...files Files to remove. */ -export declare function rm(...files: string[]): void; +export function rm(...files: string[]): void; /** * Removes files. The wildcard * is accepted. * @param {string[]} files Files to remove. */ -export declare function rm(files: string[]): void; +export function rm(files: string[]): void; /** * Removes files. The wildcard * is accepted. * @param {string} options Available options: -f (force), -r, -R (recursive) * @param {string[]} ...files Files to remove. */ -export declare function rm(options: string, ...files: string[]): void; +export function rm(options: string, ...files: string[]): void; /** * Removes files. The wildcard * is accepted. * @param {string} options Available options: -f (force), -r, -R (recursive) * @param {string[]} ...files Files to remove. */ -export declare function rm(options: string, files: string[]): void; +export function rm(options: string, files: string[]): void; /** * Moves files. The wildcard * is accepted. * @param {string} source The source. * @param {string} dest The destination. */ -export declare function mv(source: string, dest: string): void; +export function mv(source: string, dest: string): void; /** * Moves files. The wildcard * is accepted. * @param {string[]} source The source. * @param {string} dest The destination. */ -export declare function mv(source: string[], dest: string): void; +export function mv(source: string[], dest: string): void; /** * Creates directories. * @param {string[]} ...dir Directories to create. */ -export declare function mkdir(...dir: string[]): void; +export function mkdir(...dir: string[]): void; /** * Creates directories. * @param {string[]} dir Directories to create. */ -export declare function mkdir(dir: string[]): void; +export function mkdir(dir: string[]): void; /** * Creates directories. * @param {string} options Available options: p (full paths, will create intermediate dirs if necessary) * @param {string[]} ...dir The directories to create. */ -export declare function mkdir(options: string, ...dir: string[]): void; +export function mkdir(options: string, ...dir: string[]): void; /** * Creates directories. * @param {string} options Available options: p (full paths, will create intermediate dirs if necessary) * @param {string[]} dir The directories to create. */ -export declare function mkdir(options: string, dir: string[]): void; +export function mkdir(options: string, dir: string[]): void; /** * Evaluates expression using the available primaries and returns corresponding value. @@ -167,22 +165,21 @@ export declare function mkdir(options: string, dir: string[]): void; * @param {string} path The path. * @return {boolean} See option parameter. */ -export declare function test(option: string, path: string): boolean; +export function test(option: string, path: string): boolean; /** * Returns a string containing the given file, or a concatenated string containing the files if more than one file is given (a new line character is introduced between each file). Wildcard * accepted. * @param {string[]} ...files Files to use. * @return {string} A string containing the given file, or a concatenated string containing the files if more than one file is given (a new line character is introduced between each file). */ -export declare function cat(...files: string[]): string; +export function cat(...files: string[]): string; /** * Returns a string containing the given file, or a concatenated string containing the files if more than one file is given (a new line character is introduced between each file). Wildcard * accepted. * @param {string[]} files Files to use. * @return {string} A string containing the given file, or a concatenated string containing the files if more than one file is given (a new line character is introduced between each file). */ -export declare function cat(files: string[]): string; - +export function cat(files: string[]): string; // Does not work yet. export interface String { @@ -206,7 +203,7 @@ export interface String { * @param {string} file The file to process. * @return {string} The new string after replacement. */ -export declare function sed(searchRegex: RegExp, replacement: string, file: string): string; +export function sed(searchRegex: RegExp, replacement: string, file: string): string; /** * Reads an input string from file and performs a JavaScript replace() on the input using the given search regex and replacement string or function. Returns the new string after replacement. @@ -215,7 +212,7 @@ export declare function sed(searchRegex: RegExp, replacement: string, file: stri * @param {string} file The file to process. * @return {string} The new string after replacement. */ -export declare function sed(searchRegex: string, replacement: string, file: string): string; +export function sed(searchRegex: string, replacement: string, file: string): string; /** * Reads an input string from file and performs a JavaScript replace() on the input using the given search regex and replacement string or function. Returns the new string after replacement. @@ -225,7 +222,7 @@ export declare function sed(searchRegex: string, replacement: string, file: stri * @param {string} file The file to process. * @return {string} The new string after replacement. */ -export declare function sed(options: string, searchRegex: RegExp, replacement: string, file: string): string; +export function sed(options: string, searchRegex: RegExp, replacement: string, file: string): string; /** * Reads an input string from file and performs a JavaScript replace() on the input using the given search regex and replacement string or function. Returns the new string after replacement. @@ -235,7 +232,7 @@ export declare function sed(options: string, searchRegex: RegExp, replacement: s * @param {string} file The file to process. * @return {string} The new string after replacement. */ -export declare function sed(options: string, searchRegex: string, replacement: string, file: string): string; +export function sed(options: string, searchRegex: string, replacement: string, file: string): string; /** * Reads input string from given files and returns a string containing all lines of the file that match the given regex_filter. Wildcard * accepted. @@ -243,7 +240,7 @@ export declare function sed(options: string, searchRegex: string, replacement: s * @param {string[]} ...files The files to process. * @return {string} Returns a string containing all lines of the file that match the given regex_filter. */ -export declare function grep(regex_filter: RegExp, ...files: string[]): string; +export function grep(regex_filter: RegExp, ...files: string[]): string; /** * Reads input string from given files and returns a string containing all lines of the file that match the given regex_filter. Wildcard * accepted. @@ -251,7 +248,7 @@ export declare function grep(regex_filter: RegExp, ...files: string[]): string; * @param {string[]} ...files The files to process. * @return {string} Returns a string containing all lines of the file that match the given regex_filter. */ -export declare function grep(regex_filter: RegExp, files: string[]): string; +export function grep(regex_filter: RegExp, files: string[]): string; /** * Reads input string from given files and returns a string containing all lines of the file that match the given regex_filter. Wildcard * accepted. @@ -260,7 +257,7 @@ export declare function grep(regex_filter: RegExp, files: string[]): string; * @param {string[]} ...files The files to process. * @return {string} Returns a string containing all lines of the file that match the given regex_filter. */ -export declare function grep(options: string, regex_filter: string, ...files: string[]): string; +export function grep(options: string, regex_filter: string, ...files: string[]): string; /** * Reads input string from given files and returns a string containing all lines of the file that match the given regex_filter. Wildcard * accepted. @@ -269,42 +266,42 @@ export declare function grep(options: string, regex_filter: string, ...files: st * @param {string[]} files The files to process. * @return {string} Returns a string containing all lines of the file that match the given regex_filter. */ -export declare function grep(options: string, regex_filter: string, files: string[]): string; +export function grep(options: string, regex_filter: string, files: string[]): string; /** * Searches for command in the system's PATH. On Windows looks for .exe, .cmd, and .bat extensions. * @param {string} command The command to search for. * @return {string} Returns string containing the absolute path to the command. */ -export declare function which(command: string): string; +export function which(command: string): string; /** * Prints string to stdout, and returns string with additional utility methods like .to(). * @param {string[]} ...text The text to print. * @return {string} Returns the string that was passed as argument. */ -export declare function echo(...text: string[]): string; +export function echo(...text: string[]): string; /** * Save the current directory on the top of the directory stack and then cd to dir. With no arguments, pushd exchanges the top two directories. Returns an array of paths in the stack. * @param {"+N"} dir Brings the Nth directory (counting from the left of the list printed by dirs, starting with zero) to the top of the list by rotating the stack. * @return {string[]} Returns an array of paths in the stack. */ -export declare function pushd(dir: "+N"): string[]; +export function pushd(dir: "+N"): string[]; /** * Save the current directory on the top of the directory stack and then cd to dir. With no arguments, pushd exchanges the top two directories. Returns an array of paths in the stack. * @param {"-N"} dir Brings the Nth directory (counting from the right of the list printed by dirs, starting with zero) to the top of the list by rotating the stack. * @return {string[]} Returns an array of paths in the stack. */ -export declare function pushd(dir: "-N"): string[]; +export function pushd(dir: "-N"): string[]; /** * Save the current directory on the top of the directory stack and then cd to dir. With no arguments, pushd exchanges the top two directories. Returns an array of paths in the stack. * @param {string} dir Makes the current working directory be the top of the stack, and then executes the equivalent of cd dir. * @return {string[]} Returns an array of paths in the stack. */ -export declare function pushd(dir: string): string[]; +export function pushd(dir: string): string[]; /** * Save the current directory on the top of the directory stack and then cd to dir. With no arguments, pushd exchanges the top two directories. Returns an array of paths in the stack. @@ -312,7 +309,7 @@ export declare function pushd(dir: string): string[]; * @param {"+N"} dir Brings the Nth directory (counting from the left of the list printed by dirs, starting with zero) to the top of the list by rotating the stack. * @return {string[]} Returns an array of paths in the stack. */ -export declare function pushd(options: string, dir: "+N"): string[]; +export function pushd(options: string, dir: "+N"): string[]; /** * Save the current directory on the top of the directory stack and then cd to dir. With no arguments, pushd exchanges the top two directories. Returns an array of paths in the stack. @@ -320,7 +317,7 @@ export declare function pushd(options: string, dir: "+N"): string[]; * @param {"-N"} dir Brings the Nth directory (counting from the right of the list printed by dirs, starting with zero) to the top of the list by rotating the stack. * @return {string[]} Returns an array of paths in the stack. */ -export declare function pushd(options: string, dir: "-N"): string[]; +export function pushd(options: string, dir: "-N"): string[]; /** * Save the current directory on the top of the directory stack and then cd to dir. With no arguments, pushd exchanges the top two directories. Returns an array of paths in the stack. @@ -328,34 +325,34 @@ export declare function pushd(options: string, dir: "-N"): string[]; * @param {string} dir Makes the current working directory be the top of the stack, and then executes the equivalent of cd dir. * @return {string[]} Returns an array of paths in the stack. */ -export declare function pushd(options: string, dir: string): string[]; +export function pushd(options: string, dir: string): string[]; /** * When no arguments are given, popd removes the top directory from the stack and performs a cd to the new top directory. The elements are numbered from 0 starting at the first directory listed with dirs; i.e., popd is equivalent to popd +0. Returns an array of paths in the stack. * @param {"+N"} dir Removes the Nth directory (counting from the left of the list printed by dirs), starting with zero. * @return {string[]} Returns an array of paths in the stack. */ -export declare function popd(dir: "+N"): string[]; +export function popd(dir: "+N"): string[]; /** * When no arguments are given, popd removes the top directory from the stack and performs a cd to the new top directory. The elements are numbered from 0 starting at the first directory listed with dirs; i.e., popd is equivalent to popd +0. Returns an array of paths in the stack. * @return {string[]} Returns an array of paths in the stack. */ -export declare function popd(): string[]; +export function popd(): string[]; /** * When no arguments are given, popd removes the top directory from the stack and performs a cd to the new top directory. The elements are numbered from 0 starting at the first directory listed with dirs; i.e., popd is equivalent to popd +0. Returns an array of paths in the stack. * @param {"-N"} dir Removes the Nth directory (counting from the right of the list printed by dirs), starting with zero. * @return {string[]} Returns an array of paths in the stack. */ -export declare function popd(dir: "-N"): string[]; +export function popd(dir: "-N"): string[]; /** * When no arguments are given, popd removes the top directory from the stack and performs a cd to the new top directory. The elements are numbered from 0 starting at the first directory listed with dirs; i.e., popd is equivalent to popd +0. Returns an array of paths in the stack. * @param {string} dir You can only use -N and +N. * @return {string[]} Returns an array of paths in the stack. */ -export declare function popd(dir: string): string[]; +export function popd(dir: string): string[]; /** * When no arguments are given, popd removes the top directory from the stack and performs a cd to the new top directory. The elements are numbered from 0 starting at the first directory listed with dirs; i.e., popd is equivalent to popd +0. Returns an array of paths in the stack. @@ -363,7 +360,7 @@ export declare function popd(dir: string): string[]; * @param {"+N"} dir Removes the Nth directory (counting from the left of the list printed by dirs), starting with zero. * @return {string[]} Returns an array of paths in the stack. */ -export declare function popd(options: string, dir: "+N"): string[]; +export function popd(options: string, dir: "+N"): string[]; /** * When no arguments are given, popd removes the top directory from the stack and performs a cd to the new top directory. The elements are numbered from 0 starting at the first directory listed with dirs; i.e., popd is equivalent to popd +0. Returns an array of paths in the stack. @@ -371,7 +368,7 @@ export declare function popd(options: string, dir: "+N"): string[]; * @param {"-N"} dir Removes the Nth directory (counting from the right of the list printed by dirs), starting with zero. * @return {string[]} Returns an array of paths in the stack. */ -export declare function popd(options: string, dir: "-N"): string[]; +export function popd(options: string, dir: "-N"): string[]; /** * When no arguments are given, popd removes the top directory from the stack and performs a cd to the new top directory. The elements are numbered from 0 starting at the first directory listed with dirs; i.e., popd is equivalent to popd +0. Returns an array of paths in the stack. @@ -379,42 +376,42 @@ export declare function popd(options: string, dir: "-N"): string[]; * @param {string} dir You can only use -N and +N. * @return {string[]} Returns an array of paths in the stack. */ -export declare function popd(options: string, dir: string): string[]; +export function popd(options: string, dir: string): string[]; /** * Clears the directory stack by deleting all of the elements. * @param {"-c"} options Clears the directory stack by deleting all of the elements. * @return {string[]} Returns an array of paths in the stack, or a single path if +N or -N was specified. */ -export declare function dirs(options: "-c"): string[]; +export function dirs(options: "-c"): string[]; /** * Display the list of currently remembered directories. Returns an array of paths in the stack, or a single path if +N or -N was specified. * @param {"+N"} options Displays the Nth directory (counting from the left of the list printed by dirs when invoked without options), starting with zero. * @return {string[]} Returns an array of paths in the stack, or a single path if +N or -N was specified. */ -export declare function dirs(options: "+N"): string; +export function dirs(options: "+N"): string; /** * Display the list of currently remembered directories. Returns an array of paths in the stack, or a single path if +N or -N was specified. * @param {"-N"} options Displays the Nth directory (counting from the right of the list printed by dirs when invoked without options), starting with zero. * @return {string[]} Returns an array of paths in the stack, or a single path if +N or -N was specified. */ -export declare function dirs(options: "-N"): string; +export function dirs(options: "-N"): string; /** * Display the list of currently remembered directories. Returns an array of paths in the stack, or a single path if +N or -N was specified. * @param {string} options Available options: -c, -N, +N. You can only use those. * @return {any} Returns an array of paths in the stack, or a single path if +N or -N was specified. */ -export declare function dirs(options: string): any; +export function dirs(options: string): any; /** * Links source to dest. Use -f to force the link, should dest already exist. * @param {string} source The source. * @param {string} dest The destination. */ -export declare function ln(source: string, dest: string): void; +export function ln(source: string, dest: string): void; /** * Links source to dest. Use -f to force the link, should dest already exist. @@ -422,49 +419,47 @@ export declare function ln(source: string, dest: string): void; * @param {string} source The source. * @param {string} dest The destination. */ -export declare function ln(options: string, source: string, dest: string): void; +export function ln(options: string, source: string, dest: string): void; /** * Exits the current process with the given exit code. * @param {number} code The exit code. */ -export declare function exit(code: number): void; +export function exit(code: number): void; /** * Object containing environment variables (both getter and setter). Shortcut to process.env. */ -export declare var env: { [key: string]: string }; +export const env: { [key: string]: string }; /** * Executes the given command synchronously. * @param {string} command The command to execute. * @return {ExecOutputReturnValue} Returns an object containing the return code and output as string. */ -export declare function exec(command: string): ExecOutputReturnValue; +export function exec(command: string): ExecOutputReturnValue; /** * Executes the given command synchronously. * @param {string} command The command to execute. * @param {ExecOptions} options Silence and synchronous options. * @return {ExecOutputReturnValue | child.ChildProcess} Returns an object containing the return code and output as string, or if {async:true} was passed, a ChildProcess. */ -export declare function exec(command: string, options: ExecOptions): ExecOutputReturnValue | child.ChildProcess; +export function exec(command: string, options: ExecOptions): ExecOutputReturnValue | child.ChildProcess; /** * Executes the given command synchronously. * @param {string} command The command to execute. * @param {ExecOptions} options Silence and synchronous options. * @param {ExecCallback} callback Receives code and output asynchronously. */ -export declare function exec(command: string, options: ExecOptions, callback: ExecCallback): child.ChildProcess; +export function exec(command: string, options: ExecOptions, callback: ExecCallback): child.ChildProcess; /** * Executes the given command synchronously. * @param {string} command The command to execute. * @param {ExecCallback} callback Receives code and output asynchronously. */ -export declare function exec(command: string, callback: ExecCallback): child.ChildProcess; +export function exec(command: string, callback: ExecCallback): child.ChildProcess; -export interface ExecCallback { - (code: number, stdout: string, stderr: string): any; -} +export type ExecCallback = (code: number, stdout: string, stderr: string) => any; export interface ExecOptions extends child.ExecOptions { silent?: boolean; @@ -484,7 +479,7 @@ export interface ExecOutputReturnValue { * @param {number} octalMode The access mode. Octal. * @param {string} file The file to use. */ -export declare function chmod(octalMode: number, file: string): void; +export function chmod(octalMode: number, file: string): void; /** * Alters the permissions of a file or directory by either specifying the absolute permissions in octal form or expressing the changes in symbols. This command tries to mimic the POSIX behavior as much as possible. Notable exceptions: @@ -493,7 +488,7 @@ export declare function chmod(octalMode: number, file: string): void; * @param {string} mode The access mode. Can be an octal string or a symbolic mode string. * @param {string} file The file to use. */ -export declare function chmod(mode: string, file: string): void; +export function chmod(mode: string, file: string): void; // Non-Unix commands @@ -501,36 +496,34 @@ export declare function chmod(mode: string, file: string): void; * Searches and returns string containing a writeable, platform-dependent temporary directory. Follows Python's tempfile algorithm. * @return {string} The temp file path. */ -export declare function tempdir(): string; +export function tempdir(): string; /** * Tests if error occurred in the last command. * @return {string} Returns null if no error occurred, otherwise returns string explaining the error */ -export declare function error(): string; +export function error(): string; -export declare function touch(...files: string[]): void; -export declare function touch(files: string[]): void; - -type TouchOptionsLiteral = "-a" | "-c" | "-m" | "-d" | "-r"; - -export declare function touch(options: TouchOptionsLiteral, ...files: string[]): void; -export declare function touch(options: TouchOptionsLiteral, files: string[]): void; +export type TouchOptionsLiteral = "-a" | "-c" | "-m" | "-d" | "-r"; /** * Update the access and modification times of each FILE to the current time. A FILE argument that does not exist is created empty, unless -c is supplied */ -type touchOptionsArray = { +export interface touchOptionsArray { '-d'?: string; '-r'?: string; -}; +} -export declare function touch(options: touchOptionsArray, ...files: string[]): void; -export declare function touch(options: touchOptionsArray, files: string[]): void; +export function touch(...files: string[]): void; +export function touch(files: string[]): void; +export function touch(options: TouchOptionsLiteral, ...files: string[]): void; +export function touch(options: TouchOptionsLiteral, files: string[]): void; +export function touch(options: touchOptionsArray, ...files: string[]): void; +export function touch(options: touchOptionsArray, files: string[]): void; // Configuration -interface ShellConfig { +export interface ShellConfig { /** * Suppresses all command output if true, except for echo() calls. Default is false. * @type {boolean} @@ -542,10 +535,16 @@ interface ShellConfig { * @type {boolean} */ fatal: boolean; + + /** + * Absolute path of the Node binary. Default is null (inferred). + * @type {string|null} + */ + execPath: string | null; } /** * The shelljs configuration. * @type {ShellConfig} */ -export declare var config: ShellConfig; +export const config: ShellConfig; diff --git a/types/shelljs/shelljs-tests.ts b/types/shelljs/shelljs-tests.ts index 03f439af02..e771eccbca 100644 --- a/types/shelljs/shelljs-tests.ts +++ b/types/shelljs/shelljs-tests.ts @@ -2,8 +2,7 @@ import shell = require("shelljs"); -if (!shell.which("git")) -{ +if (!shell.which("git")) { shell.echo("Sorry, this script requires git"); shell.exit(1); } @@ -22,9 +21,10 @@ shell.ls("*.js").forEach( file => { shell.cd(".."); +shell.config.execPath = shell.which('node'); + // Run external tool synchronously -if (shell.exec('git commit -am "Auto-commit"').code !== 0) -{ +if (shell.exec('git commit -am "Auto-commit"').code !== 0) { shell.echo("Error: Git commit failed"); shell.exit(1); } @@ -52,7 +52,7 @@ shell.mkdir("-p", ["/tmp/a/b/c/d", "/tmp/e/f/g"]); // same as above if (shell.test("-d", "/tmp/a/b/c/d")) { /* do something with dir */ } if (!shell.test("-f", "/tmp/a/b/c/d")) { /* do something with dir */ } -var str = shell.cat("file*.txt"); +let str = shell.cat("file*.txt"); str = shell.cat("file1", "file2"); str = shell.cat(["file1", "file2"]); // same as above @@ -62,7 +62,7 @@ shell.sed(/.*DELETE_THIS_LINE.*\n/, "", "source.js"); shell.grep("-v", "GLOBAL_VARIABLE", "*.js"); shell.grep("GLOBAL_VARIABLE", "*.js"); -var nodeExec = shell.which("node"); +let nodeExec = shell.which("node"); shell.pushd("/etc"); // Returns /etc /usr shell.pushd("+1"); // Returns /usr /etc @@ -76,35 +76,35 @@ shell.echo(process.cwd()); // '/usr' shell.ln("file", "newlink"); shell.ln("-sf", "file", "existing"); -var testPath = shell.env["path"]; +let testPath = shell.env["path"]; import child = require("child_process"); -var version = shell.exec("node --version").stdout; +let version = shell.exec("node --version").stdout; -var version2 = shell.exec("node --version", { async: false }); -var output = version2.stdout; +let version2 = shell.exec("node --version", { async: false }); +let output = version2.stdout; -var asyncVersion3 = shell.exec("node --version", { async: true }); -var pid = asyncVersion3.pid; +let asyncVersion3 = shell.exec("node --version", { async: true }); +let pid = asyncVersion3.pid; -shell.exec("node --version", { silent: true }, function (code, stdout, stderr) { - var version = stdout; +shell.exec("node --version", { silent: true }, (code, stdout, stderr) => { + let version = stdout; }); -shell.exec("node --version", { silent: true, async: true, cwd: '/usr/local/bin' }, function (code, stdout, stderr) { - var version = stdout; +shell.exec("node --version", { silent: true, async: true, cwd: '/usr/local/bin' }, (code, stdout, stderr) => { + let version = stdout; }); -shell.exec("node --version", function (code, stdout, stderr) { - var version = stdout; +shell.exec("node --version", (code, stdout, stderr) => { + let version = stdout; }); -shell.exec("node --version", function (code: number) { - var num: number = code; +shell.exec("node --version", (code: number) => { + let num: number = code; }); -var childProc = shell.exec("node --version", function (code: number) { - var num: number = code; +let childProc = shell.exec("node --version", (code: number) => { + let num: number = code; }); -var pid = childProc.pid; +pid = childProc.pid; shell.chmod(755, "/Users/brandon"); shell.chmod("755", "/Users/brandon"); // same as above @@ -126,10 +126,9 @@ shell.touch({ '-r': '/some/file.txt' }, '/Users/brandom/test1'); shell.touch({ '-r': '/some/file.txt' }, '/Users/brandom/test1', '/Users/brandom/test2'); shell.touch({ '-r': '/oome/file.txt' }, ['/Users/brandom/test1', '/Users/brandom/test2']); +let tmp = shell.tempdir(); // "/tmp" for most *nix platforms -var tmp = shell.tempdir(); // "/tmp" for most *nix platforms - -var errorlol = shell.error(); +let errorlol = shell.error(); shell.config.fatal = true; shell.config.silent = true; diff --git a/types/shelljs/tslint.json b/types/shelljs/tslint.json new file mode 100644 index 0000000000..85874f7b2a --- /dev/null +++ b/types/shelljs/tslint.json @@ -0,0 +1,7 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + "max-line-length": false, + "unified-signatures": false + } +} From b878b731b028ba22a78564d5d8b10fc2d48173c8 Mon Sep 17 00:00:00 2001 From: Reid Weber Date: Thu, 27 Apr 2017 14:02:22 -0700 Subject: [PATCH 077/321] Added running to CronJob interface --- types/cron/index.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/types/cron/index.d.ts b/types/cron/index.d.ts index d4fa027c93..780890c014 100644 --- a/types/cron/index.d.ts +++ b/types/cron/index.d.ts @@ -14,6 +14,7 @@ interface CronJobStatic { interface CronJob { start(): void; stop(): void; + running: boolean | undefined; } export declare var CronJob: CronJobStatic; From 52140f15093c4337d7ea9fbca66f610c38d664c2 Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Thu, 27 Apr 2017 23:57:55 +0200 Subject: [PATCH 078/321] NodeJS: ensure process.stdout.columns support (#16178) * ensure process.stdout.columns support * make tty stream interfaces optional --- types/node/v6/index.d.ts | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/types/node/v6/index.d.ts b/types/node/v6/index.d.ts index 6bac11b605..0c1796368e 100644 --- a/types/node/v6/index.d.ts +++ b/types/node/v6/index.d.ts @@ -358,10 +358,19 @@ declare namespace NodeJS { isTTY?: true; } + export interface WriteStream extends Socket { + columns?: number; + rows?: number; + } + export interface ReadStream extends Socket { + isRaw?: boolean; + setRawMode?(mode: boolean): void; + } + export interface Process extends EventEmitter { - stdout: Socket; - stderr: Socket; - stdin: Socket; + stdout: WriteStream; + stderr: WriteStream; + stdin: ReadStream; argv: string[]; argv0: string; execArgv: string[]; From 886cdd2f820bbb64ba7bde711879db7e3fb38da6 Mon Sep 17 00:00:00 2001 From: Michael Zlatkovsky Date: Thu, 27 Apr 2017 19:02:55 -0700 Subject: [PATCH 079/321] Updated ExcelApi from v1.3 to v1.6 (#16165) Also minor updates to tests (added one test for `object.set`, and let VS Code auto-format the rest) --- types/office-js/index.d.ts | 5933 +++++++++++++++++++++++----- types/office-js/office-js-tests.ts | 244 +- 2 files changed, 4984 insertions(+), 1193 deletions(-) diff --git a/types/office-js/index.d.ts b/types/office-js/index.d.ts index 1b7f8424cb..e6f947b677 100644 --- a/types/office-js/index.d.ts +++ b/types/office-js/index.d.ts @@ -52,7 +52,7 @@ declare namespace Office { Excel, /** * Host is PowerPoint - */ + */ PowerPoint, /** * Host is Outlook @@ -64,12 +64,12 @@ declare namespace Office { OneNote, /** * Host is Project - */ + */ Project, /** * Host is Access */ - Access + Access } export enum PlatformType { /** @@ -2453,11 +2453,10 @@ declare module OfficeExtension { //////////////////////////////////////////////////////////////// -//////////////// Begin Excel APIs (latest = 1.3) /////////////// +/////////////////////// Begin Excel APIs /////////////////////// //////////////////////////////////////////////////////////////// - -declare module Excel { +declare namespace Excel { interface ThreeArrowsSet { [index: number]: Icon; redDownArrow: Icon; @@ -2616,6 +2615,65 @@ declare module Excel { fiveBoxes: FiveBoxesSet; } var icons: IconCollections; + /** + * Provides connection session for a remote workbook. + */ + class Session { + private static WorkbookSessionIdHeaderName; + private static WorkbookSessionIdHeaderNameLower; + constructor(workbookUrl?: string, requestHeaders?: { + [name: string]: string; + }, persisted?: boolean); + /** + * Close the session. + */ + close(): OfficeExtension.IPromise; + } + /** + * The RequestContext object facilitates requests to the Excel application. Since the Office add-in and the Excel application run in two different processes, the request context is required to get access to the Excel object model from the add-in. + */ + class RequestContext extends OfficeExtension.ClientRequestContext { + constructor(url?: string | Session); + readonly workbook: Workbook; + readonly application: Application; + } + /** + * Executes a batch script that performs actions on the Excel object model, using a new RequestContext. When the promise is resolved, any tracked objects that were automatically allocated during execution will be released. + * @param batch - A function that takes in a RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the Excel application. Since the Office add-in and the Excel application run in two different processes, the RequestContext is required to get access to the Excel object model from the add-in. + */ + function run(batch: (context: Excel.RequestContext) => OfficeExtension.IPromise): OfficeExtension.IPromise; + /** + * Executes a batch script that performs actions on the Excel object model, using a new remote RequestContext. When the promise is resolved, any tracked objects that were automatically allocated during execution will be released. + * @param requestInfo - The URL of the remote workbook and the request headers to be sent. + * @param batch - A function that takes in a RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the Excel application. Since the Office add-in and the Excel application run in two different processes, the RequestContext is required to get access to the Excel object model from the add-in. + */ + function run(requestInfo: OfficeExtension.RequestUrlAndHeaderInfo | Session, batch: (context: Excel.RequestContext) => OfficeExtension.IPromise): OfficeExtension.IPromise; + /** + * Executes a batch script that performs actions on the Excel object model, using the RequestContext of a previously-created API object. When the promise is resolved, any tracked objects that were automatically allocated during execution will be released. + * @param object - A previously-created API object. The batch will use the same RequestContext as the passed-in object, which means that any changes applied to the object will be picked up by "context.sync()". + * @param batch - A function that takes in a RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the Excel application. Since the Office add-in and the Excel application run in two different processes, the RequestContext is required to get access to the Excel object model from the add-in. + */ + function run(object: OfficeExtension.ClientObject, batch: (context: Excel.RequestContext) => OfficeExtension.IPromise): OfficeExtension.IPromise; + /** + * Executes a batch script that performs actions on the Excel object model, using the remote RequestContext of a previously-created API object. When the promise is resolved, any tracked objects that were automatically allocated during execution will be released. + * @param requestInfo - The URL of the remote workbook and the request headers to be sent. + * @param object - A previously-created API object. The batch will use the same RequestContext as the passed-in object, which means that any changes applied to the object will be picked up by "context.sync()". + * @param batch - A function that takes in a RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the Excel application. Since the Office add-in and the Excel application run in two different processes, the RequestContext is required to get access to the Excel object model from the add-in. + */ + function run(requestInfo: OfficeExtension.RequestUrlAndHeaderInfo | Session, object: OfficeExtension.ClientObject, batch: (context: Excel.RequestContext) => OfficeExtension.IPromise): OfficeExtension.IPromise; + /** + * Executes a batch script that performs actions on the Excel object model, using the RequestContext of previously-created API objects. + * @param objects - An array of previously-created API objects. The array will be validated to make sure that all of the objects share the same context. The batch will use this shared RequestContext, which means that any changes applied to these objects will be picked up by "context.sync()". + * @param batch - A function that takes in a RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the Excel application. Since the Office add-in and the Excel application run in two different processes, the RequestContext is required to get access to the Excel object model from the add-in. + */ + function run(objects: OfficeExtension.ClientObject[], batch: (context: Excel.RequestContext) => OfficeExtension.IPromise): OfficeExtension.IPromise; + /** + * Executes a batch script that performs actions on the Excel object model, using the remote RequestContext of previously-created API objects. + * @param requestInfo - The URL of the remote workbook and the request headers to be sent. + * @param objects - An array of previously-created API objects. The array will be validated to make sure that all of the objects share the same context. The batch will use this shared RequestContext, which means that any changes applied to these objects will be picked up by "context.sync()". + * @param batch - A function that takes in a RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the Excel application. Since the Office add-in and the Excel application run in two different processes, the RequestContext is required to get access to the Excel object model from the add-in. + */ + function run(requestInfo: OfficeExtension.RequestUrlAndHeaderInfo | Session, objects: OfficeExtension.ClientObject[], batch: (context: Excel.RequestContext) => OfficeExtension.IPromise): OfficeExtension.IPromise; /** * * Provides information about the binding that raised the SelectionChanged event. @@ -2689,6 +2747,21 @@ declare module Excel { */ workbook: Excel.Workbook; } + /** + * + * Provides information about the setting that raised the SettingsChanged event + * + * [Api set: ExcelApi 1.4] + */ + interface SettingsChangedEventArgs { + /** + * + * Gets the Setting object that represents the binding that raised the SettingsChanged event + * + * [Api set: ExcelApi 1.4] + */ + settings: Excel.SettingCollection; + } /** * * Represents the Excel application that manages the workbook. @@ -2702,16 +2775,23 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - calculationMode: string; + readonly calculationMode: string; /** * * Recalculate all currently opened workbooks in Excel. * - * @param calculationType Specifies the calculation type to use. See Excel.CalculationType for details. - * * [Api set: ExcelApi 1.1] + * + * @param calculationType Specifies the calculation type to use. See Excel.CalculationType for details. */ calculate(calculationType: string): void; + /** + * + * Suspends calculation until the next "context.sync()" is called. Once set, it is the developer's responsibility to re-calc the workbook, to ensure that any dependencies are propagated. + * + * [Api set: ExcelApi 1.7 (PREVIEW)] + */ + suspendApiCalculationUntilNextSync(): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -2733,49 +2813,63 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - application: Excel.Application; + readonly application: Excel.Application; /** * * Represents a collection of bindings that are part of the workbook. Read-only. * * [Api set: ExcelApi 1.1] */ - bindings: Excel.BindingCollection; + readonly bindings: Excel.BindingCollection; + /** + * + * Represents the collection of custom XML parts contained by this workbook. Read-only. + * + * [Api set: ExcelApi 1.5] + */ + readonly customXmlParts: Excel.CustomXmlPartCollection; /** * * Represents Excel application instance that contains this workbook. Read-only. * * [Api set: ExcelApi 1.2] */ - functions: Excel.Functions; + readonly functions: Excel.Functions; /** * * Represents a collection of workbook scoped named items (named ranges and constants). Read-only. * * [Api set: ExcelApi 1.1] */ - names: Excel.NamedItemCollection; + readonly names: Excel.NamedItemCollection; /** * * Represents a collection of PivotTables associated with the workbook. Read-only. * * [Api set: ExcelApi 1.3] */ - pivotTables: Excel.PivotTableCollection; + readonly pivotTables: Excel.PivotTableCollection; + /** + * + * Represents a collection of Settings associated with the workbook. Read-only. + * + * [Api set: ExcelApi 1.4] + */ + readonly settings: Excel.SettingCollection; /** * * Represents a collection of tables associated with the workbook. Read-only. * * [Api set: ExcelApi 1.1] */ - tables: Excel.TableCollection; + readonly tables: Excel.TableCollection; /** * * Represents a collection of worksheets associated with the workbook. Read-only. * * [Api set: ExcelApi 1.1] */ - worksheets: Excel.WorksheetCollection; + readonly worksheets: Excel.WorksheetCollection; /** * * Gets the currently selected range from the workbook. @@ -2793,7 +2887,7 @@ declare module Excel { * * [Api set: ExcelApi 1.2] */ - onSelectionChanged: OfficeExtension.EventHandlers; + readonly onSelectionChanged: OfficeExtension.EventHandlers; toJSON(): {}; } /** @@ -2809,35 +2903,42 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - charts: Excel.ChartCollection; + readonly charts: Excel.ChartCollection; + /** + * + * Collection of names scoped to the current worksheet. Read-only. + * + * [Api set: ExcelApi 1.4] + */ + readonly names: Excel.NamedItemCollection; /** * * Collection of PivotTables that are part of the worksheet. Read-only. * * [Api set: ExcelApi 1.3] */ - pivotTables: Excel.PivotTableCollection; + readonly pivotTables: Excel.PivotTableCollection; /** * * Returns sheet protection object for a worksheet. * * [Api set: ExcelApi 1.2] */ - protection: Excel.WorksheetProtection; + readonly protection: Excel.WorksheetProtection; /** * * Collection of tables that are part of the worksheet. Read-only. * * [Api set: ExcelApi 1.1] */ - tables: Excel.TableCollection; + readonly tables: Excel.TableCollection; /** * * Returns a value that uniquely identifies the worksheet in a given workbook. The value of the identifier remains the same even when the worksheet is renamed or moved. Read-only. * * [Api set: ExcelApi 1.1] */ - id: string; + readonly id: string; /** * * The display name of the worksheet. @@ -2859,6 +2960,15 @@ declare module Excel { * [Api set: ExcelApi 1.1 for reading visibility; 1.2 for setting it.] */ visibility: string; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.WorksheetUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Worksheet): void; /** * * Activate the worksheet in the Excel UI. @@ -2866,6 +2976,13 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ activate(): void; + /** + * + * Calculates all cells on a worksheet. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + calculate(markAllDirty: boolean): void; /** * * Deletes the worksheet from the workbook. @@ -2877,30 +2994,75 @@ declare module Excel { * * Gets the range object containing the single cell based on row and column numbers. The cell can be outside the bounds of its parent range, so long as it's stays within the worksheet grid. * + * [Api set: ExcelApi 1.1] + * * @param row The row number of the cell to be retrieved. Zero-indexed. * @param column the column number of the cell to be retrieved. Zero-indexed. - * - * [Api set: ExcelApi 1.1] */ getCell(row: number, column: number): Excel.Range; + /** + * + * Gets the worksheet that follows this one. If there are no worksheets following this one, this method will throw an error. + * + * [Api set: ExcelApi 1.5] + * + * @param visibleOnly If true, considers only visible worksheets, skipping over any hidden ones. + */ + getNext(visibleOnly?: boolean): Excel.Worksheet; + /** + * + * Gets the worksheet that follows this one. If there are no worksheets following this one, this method will return a null object. + * + * [Api set: ExcelApi 1.5] + * + * @param visibleOnly If true, considers only visible worksheets, skipping over any hidden ones. + */ + getNextOrNullObject(visibleOnly?: boolean): Excel.Worksheet; + /** + * + * Gets the worksheet that precedes this one. If there are no previous worksheets, this method will throw an error. + * + * [Api set: ExcelApi 1.5] + * + * @param visibleOnly If true, considers only visible worksheets, skipping over any hidden ones. + */ + getPrevious(visibleOnly?: boolean): Excel.Worksheet; + /** + * + * Gets the worksheet that precedes this one. If there are no previous worksheets, this method will return a null objet. + * + * [Api set: ExcelApi 1.5] + * + * @param visibleOnly If true, considers only visible worksheets, skipping over any hidden ones. + */ + getPreviousOrNullObject(visibleOnly?: boolean): Excel.Worksheet; /** * * Gets the range object specified by the address or name. * - * @param address The address or the name of the range. If not specified, the entire worksheet range is returned. - * * [Api set: ExcelApi 1.1] + * + * @param address The address or the name of the range. If not specified, the entire worksheet range is returned. */ getRange(address?: string): Excel.Range; /** * - * The used range is the smallest range that encompasses any cells that have a value or formatting assigned to them. If the worksheet is blank, this function will return the top left cell. - * - * @param valuesOnly Considers only cells with values as used cells (ignores formatting). [Api set: ExcelApi 1.2] + * The used range is the smallest range that encompasses any cells that have a value or formatting assigned to them. If the entire worksheet is blank, this function will return the top left cell (i.e.,: it will *not* throw an error). * * [Api set: ExcelApi 1.1] + * + * @param valuesOnly Considers only cells with values as used cells (ignoring formatting). [Api set: ExcelApi 1.2] */ getUsedRange(valuesOnly?: boolean): Excel.Range; + /** + * + * The used range is the smallest range that encompasses any cells that have a value or formatting assigned to them. If the entire worksheet is blank, this function will return a null object. + * + * [Api set: ExcelApi 1.4] + * + * @param valuesOnly Considers only cells with values as used cells. + */ + getUsedRangeOrNullObject(valuesOnly?: boolean): Excel.Range; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -2921,14 +3083,14 @@ declare module Excel { */ class WorksheetCollection extends OfficeExtension.ClientObject { /** Gets the loaded child items in this collection. */ - items: Array; + readonly items: Array; /** * * Adds a new worksheet to the workbook. The worksheet will be added at the end of existing worksheets. If you wish to activate the newly added worksheet, call ".activate() on it. * - * @param name The name of the worksheet to be added. If specified, name should be unqiue. If not specified, Excel determines the name of the new worksheet. - * * [Api set: ExcelApi 1.1] + * + * @param name The name of the worksheet to be added. If specified, name should be unqiue. If not specified, Excel determines the name of the new worksheet. */ add(name?: string): Excel.Worksheet; /** @@ -2938,15 +3100,47 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ getActiveWorksheet(): Excel.Worksheet; + /** + * + * Gets the number of worksheets in the collection. + * + * [Api set: ExcelApi 1.4] + */ + getCount(visibleOnly?: boolean): OfficeExtension.ClientResult; + /** + * + * Gets the first worksheet in the collection. + If true, considers only visible worksheets, skipping over any hidden ones. + * + * [Api set: ExcelApi 1.5] + */ + getFirst(visibleOnly?: boolean): Excel.Worksheet; /** * * Gets a worksheet object using its Name or ID. * - * @param key The Name or ID of the worksheet. - * * [Api set: ExcelApi 1.1] + * + * @param key The Name or ID of the worksheet. */ getItem(key: string): Excel.Worksheet; + /** + * + * Gets a worksheet object using its Name or ID. If the worksheet does not exist, will return a null object. + * + * [Api set: ExcelApi 1.4] + * + * @param key The Name or ID of the worksheet. + */ + getItemOrNullObject(key: string): Excel.Worksheet; + /** + * + * Gets the last worksheet in the collection. + If true, considers only visible worksheets, skipping over any hidden ones. + * + * [Api set: ExcelApi 1.5] + */ + getLast(visibleOnly?: boolean): Excel.Worksheet; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -2966,21 +3160,21 @@ declare module Excel { * * [Api set: ExcelApi 1.2] */ - options: Excel.WorksheetProtectionOptions; + readonly options: Excel.WorksheetProtectionOptions; /** * * Indicates if the worksheet is protected. Read-Only. * * [Api set: ExcelApi 1.2] */ - protected: boolean; + readonly protected: boolean; /** * * Protects a worksheet. Fails if the worksheet has been protected. * - * @param options sheet protection options. - * * [Api set: ExcelApi 1.2] + * + * @param options sheet protection options. */ protect(options?: Excel.WorksheetProtectionOptions): void; /** @@ -3091,55 +3285,62 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ class Range extends OfficeExtension.ClientObject { + /** + * + * Collection of ConditionalFormats that intersect the range. Read-only. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly conditionalFormats: Excel.ConditionalFormatCollection; /** * * Returns a format object, encapsulating the range's font, fill, borders, alignment, and other properties. Read-only. * * [Api set: ExcelApi 1.1] */ - format: Excel.RangeFormat; + readonly format: Excel.RangeFormat; /** * * Represents the range sort of the current range. * * [Api set: ExcelApi 1.2] */ - sort: Excel.RangeSort; + readonly sort: Excel.RangeSort; /** * * The worksheet containing the current range. Read-only. * * [Api set: ExcelApi 1.1] */ - worksheet: Excel.Worksheet; + readonly worksheet: Excel.Worksheet; /** * * Represents the range reference in A1-style. Address value will contain the Sheet reference (e.g. Sheet1!A1:B4). Read-only. * * [Api set: ExcelApi 1.1] */ - address: string; + readonly address: string; /** * * Represents range reference for the specified range in the language of the user. Read-only. * * [Api set: ExcelApi 1.1] */ - addressLocal: string; + readonly addressLocal: string; /** * * Number of cells in the range. This API will return -1 if the cell count exceeds 2^31-1 (2,147,483,647). Read-only. * * [Api set: ExcelApi 1.1] */ - cellCount: number; + readonly cellCount: number; /** * * Represents the total number of columns in the range. Read-only. * * [Api set: ExcelApi 1.1] */ - columnCount: number; + readonly columnCount: number; /** * * Represents if all columns of the current range are hidden. @@ -3153,7 +3354,7 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - columnIndex: number; + readonly columnIndex: number; /** * * Represents the formula in A1-style notation. @@ -3181,7 +3382,7 @@ declare module Excel { * * [Api set: ExcelApi 1.2] */ - hidden: boolean; + readonly hidden: boolean; /** * * Represents Excel's number format code for the given cell. @@ -3195,7 +3396,7 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - rowCount: number; + readonly rowCount: number; /** * * Represents if all rows of the current range are hidden. @@ -3209,21 +3410,21 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - rowIndex: number; + readonly rowIndex: number; /** * * Text values of the specified range. The Text value will not depend on the cell width. The # sign substitution that happens in Excel UI will not affect the text value returned by the API. Read-only. * * [Api set: ExcelApi 1.1] */ - text: Array>; + readonly text: Array>; /** * * Represents the type of data of each cell. Read-only. * * [Api set: ExcelApi 1.1] */ - valueTypes: Array>; + readonly valueTypes: Array>; /** * * Represents the raw values of the specified range. The data returned could be of type string, number, or a boolean. Cell that contain an error will return the error string. @@ -3231,80 +3432,96 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ values: Array>; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.RangeUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Range): void; + /** + * + * Calculates a range of cells on a worksheet. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + calculate(): void; /** * * Clear range values, format, fill, border, etc. * - * @param applyTo Determines the type of clear action. See Excel.ClearApplyTo for details. - * * [Api set: ExcelApi 1.1] + * + * @param applyTo Determines the type of clear action. See Excel.ClearApplyTo for details. */ clear(applyTo?: string): void; /** * * Deletes the cells associated with the range. * - * @param shift Specifies which way to shift the cells. See Excel.DeleteShiftDirection for details. - * * [Api set: ExcelApi 1.1] + * + * @param shift Specifies which way to shift the cells. See Excel.DeleteShiftDirection for details. */ delete(shift: string): void; /** * * Gets the smallest range object that encompasses the given ranges. For example, the GetBoundingRect of "B2:C5" and "D10:E15" is "B2:E16". * - * @param anotherRange The range object or address or range name. - * * [Api set: ExcelApi 1.1] + * + * @param anotherRange The range object or address or range name. */ getBoundingRect(anotherRange: Excel.Range | string): Excel.Range; /** * * Gets the range object containing the single cell based on row and column numbers. The cell can be outside the bounds of its parent range, so long as it's stays within the worksheet grid. The returned cell is located relative to the top left cell of the range. * + * [Api set: ExcelApi 1.1] + * * @param row Row number of the cell to be retrieved. Zero-indexed. * @param column Column number of the cell to be retrieved. Zero-indexed. - * - * [Api set: ExcelApi 1.1] */ getCell(row: number, column: number): Excel.Range; /** * * Gets a column contained in the range. * - * @param column Column number of the range to be retrieved. Zero-indexed. - * * [Api set: ExcelApi 1.1] + * + * @param column Column number of the range to be retrieved. Zero-indexed. */ getColumn(column: number): Excel.Range; /** * * Gets a certain number of columns to the right of the current Range object. * - * @param count The number of columns to include in the resulting range. In general, use a positive number to create a range outside the current range. You can also use a negative number to create a range within the current range. The default value is 1. - * * [Api set: ExcelApi 1.2] + * + * @param count The number of columns to include in the resulting range. In general, use a positive number to create a range outside the current range. You can also use a negative number to create a range within the current range. The default value is 1. */ getColumnsAfter(count?: number): Excel.Range; /** * * Gets a certain number of columns to the left of the current Range object. * - * @param count The number of columns to include in the resulting range. In general, use a positive number to create a range outside the current range. You can also use a negative number to create a range within the current range. The default value is 1. - * * [Api set: ExcelApi 1.2] + * + * @param count The number of columns to include in the resulting range. In general, use a positive number to create a range outside the current range. You can also use a negative number to create a range within the current range. The default value is 1. */ getColumnsBefore(count?: number): Excel.Range; /** * - * Gets an object that represents the entire column of the range. + * Gets an object that represents the entire column of the range (for example, if the current range represents cells "B4:E11", it's `getEntireColumn` is a range that represents columns "B:E"). * * [Api set: ExcelApi 1.1] */ getEntireColumn(): Excel.Range; /** * - * Gets an object that represents the entire row of the range. + * Gets an object that represents the entire row of the range (for example, if the current range represents cells "B4:E11", it's `GetEntireRow` is a range that represents rows "4:11"). * * [Api set: ExcelApi 1.1] */ @@ -3313,11 +3530,20 @@ declare module Excel { * * Gets the range object that represents the rectangular intersection of the given ranges. * - * @param anotherRange The range object or range address that will be used to determine the intersection of ranges. - * * [Api set: ExcelApi 1.1] + * + * @param anotherRange The range object or range address that will be used to determine the intersection of ranges. */ getIntersection(anotherRange: Excel.Range | string): Excel.Range; + /** + * + * Gets the range object that represents the rectangular intersection of the given ranges. If no intersection is found, will return a null object. + * + * [Api set: ExcelApi 1.4] + * + * @param anotherRange The range object or range address that will be used to determine the intersection of ranges. + */ + getIntersectionOrNullObject(anotherRange: Excel.Range | string): Excel.Range; /** * * Gets the last cell within the range. For example, the last cell of "B2:D5" is "D5". @@ -3341,60 +3567,69 @@ declare module Excel { getLastRow(): Excel.Range; /** * - * Gets an object which represents a range that's offset from the specified range. The dimension of the returned range will match this range. If the resulting range is forced outside the bounds of the worksheet grid, an exception will be thrown. + * Gets an object which represents a range that's offset from the specified range. The dimension of the returned range will match this range. If the resulting range is forced outside the bounds of the worksheet grid, an error will be thrown. + * + * [Api set: ExcelApi 1.1] * * @param rowOffset The number of rows (positive, negative, or 0) by which the range is to be offset. Positive values are offset downward, and negative values are offset upward. * @param columnOffset The number of columns (positive, negative, or 0) by which the range is to be offset. Positive values are offset to the right, and negative values are offset to the left. - * - * [Api set: ExcelApi 1.1] */ getOffsetRange(rowOffset: number, columnOffset: number): Excel.Range; /** * * Gets a Range object similar to the current Range object, but with its bottom-right corner expanded (or contracted) by some number of rows and columns. * + * [Api set: ExcelApi 1.2] + * * @param deltaRows The number of rows by which to expand the bottom-right corner, relative to the current range. Use a positive number to expand the range, or a negative number to decrease it. * @param deltaColumns The number of columnsby which to expand the bottom-right corner, relative to the current range. Use a positive number to expand the range, or a negative number to decrease it. - * - * [Api set: ExcelApi 1.2] */ getResizedRange(deltaRows: number, deltaColumns: number): Excel.Range; /** * * Gets a row contained in the range. * - * @param row Row number of the range to be retrieved. Zero-indexed. - * * [Api set: ExcelApi 1.1] + * + * @param row Row number of the range to be retrieved. Zero-indexed. */ getRow(row: number): Excel.Range; /** * * Gets a certain number of rows above the current Range object. * - * @param count The number of rows to include in the resulting range. In general, use a positive number to create a range outside the current range. You can also use a negative number to create a range within the current range. The default value is 1. - * * [Api set: ExcelApi 1.2] + * + * @param count The number of rows to include in the resulting range. In general, use a positive number to create a range outside the current range. You can also use a negative number to create a range within the current range. The default value is 1. */ getRowsAbove(count?: number): Excel.Range; /** * * Gets a certain number of rows below the current Range object. * - * @param count The number of rows to include in the resulting range. In general, use a positive number to create a range outside the current range. You can also use a negative number to create a range within the current range. The default value is 1. - * * [Api set: ExcelApi 1.2] + * + * @param count The number of rows to include in the resulting range. In general, use a positive number to create a range outside the current range. You can also use a negative number to create a range within the current range. The default value is 1. */ getRowsBelow(count?: number): Excel.Range; /** * - * Returns the used range of the given range object. - * - * @param valuesOnly Considers only cells with values as used cells. [Api set: ExcelApi 1.2] + * Returns the used range of the given range object. If there are no used cells within the range, this function will throw an ItemNotFound error. * * [Api set: ExcelApi 1.1] + * + * @param valuesOnly Considers only cells with values as used cells. [Api set: ExcelApi 1.2] */ getUsedRange(valuesOnly?: boolean): Excel.Range; + /** + * + * Returns the used range of the given range object. If there are no used cells within the range, this function will return a null object. + * + * [Api set: ExcelApi 1.4] + * + * @param valuesOnly Considers only cells with values as used cells. + */ + getUsedRangeOrNullObject(valuesOnly?: boolean): Excel.Range; /** * * Represents the visible rows of the current range. @@ -3406,18 +3641,18 @@ declare module Excel { * * Inserts a cell or a range of cells into the worksheet in place of this range, and shifts the other cells to make space. Returns a new Range object at the now blank space. * - * @param shift Specifies which way to shift the cells. See Excel.InsertShiftDirection for details. - * * [Api set: ExcelApi 1.1] + * + * @param shift Specifies which way to shift the cells. See Excel.InsertShiftDirection for details. */ insert(shift: string): Excel.Range; /** * * Merge the range cells into one region in the worksheet. * - * @param across Set true to merge cells in each row of the specified range as separate merged cells. The default value is false. - * * [Api set: ExcelApi 1.2] + * + * @param across Set true to merge cells in each row of the specified range as separate merged cells. The default value is false. */ merge(across?: boolean): void; /** @@ -3469,7 +3704,7 @@ declare module Excel { } /** * - * Represents a string reference of the form SheetName!A1:B5, or a global or local named range + * Represents a string reference of the form SheetName!A1:B5, or a global or local named range. * * [Api set: ExcelApi 1.2] */ @@ -3489,21 +3724,21 @@ declare module Excel { * * [Api set: ExcelApi 1.3] */ - rows: Excel.RangeViewCollection; + readonly rows: Excel.RangeViewCollection; /** * * Represents the cell addresses of the RangeView. * * [Api set: ExcelApi 1.3] */ - cellAddresses: Array>; + readonly cellAddresses: Array>; /** * * Returns the number of visible columns. Read-only. * * [Api set: ExcelApi 1.3] */ - columnCount: number; + readonly columnCount: number; /** * * Represents the formula in A1-style notation. @@ -3531,7 +3766,7 @@ declare module Excel { * * [Api set: ExcelApi 1.3] */ - index: number; + readonly index: number; /** * * Represents Excel's number format code for the given cell. @@ -3545,21 +3780,21 @@ declare module Excel { * * [Api set: ExcelApi 1.3] */ - rowCount: number; + readonly rowCount: number; /** * * Text values of the specified range. The Text value will not depend on the cell width. The # sign substitution that happens in Excel UI will not affect the text value returned by the API. Read-only. * * [Api set: ExcelApi 1.3] */ - text: Array>; + readonly text: Array>; /** * * Represents the type of data of each cell. Read-only. * * [Api set: ExcelApi 1.3] */ - valueTypes: Array>; + readonly valueTypes: Array>; /** * * Represents the raw values of the specified range view. The data returned could be of type string, number, or a boolean. Cell that contain an error will return the error string. @@ -3567,6 +3802,15 @@ declare module Excel { * [Api set: ExcelApi 1.3] */ values: Array>; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.RangeViewUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: RangeView): void; /** * * Gets the parent range associated with the current RangeView. @@ -3594,20 +3838,27 @@ declare module Excel { } /** * - * Represents a collection of worksheet objects that are part of the workbook. + * Represents a collection of RangeView objects. * * [Api set: ExcelApi 1.3] */ class RangeViewCollection extends OfficeExtension.ClientObject { /** Gets the loaded child items in this collection. */ - items: Array; + readonly items: Array; + /** + * + * Gets the number of RangeView objects in the collection. + * + * [Api set: ExcelApi 1.4] + */ + getCount(): OfficeExtension.ClientResult; /** * * Gets a RangeView Row via it's index. Zero-Indexed. * - * @param index Index of the visible row. - * * [Api set: ExcelApi 1.3] + * + * @param index Index of the visible row. */ getItemAt(index: number): Excel.RangeView; /** @@ -3618,30 +3869,99 @@ declare module Excel { } /** * - * Setting represents a key-value pair of a setting persisted to the document. + * Represents a collection of worksheet objects that are part of the workbook. * - * [Api set: ExcelApi 1.3] + * [Api set: ExcelApi 1.4] */ - class Setting extends OfficeExtension.ClientObject { + class SettingCollection extends OfficeExtension.ClientObject { + /** Gets the loaded child items in this collection. */ + readonly items: Array; /** * - * Represents the value stored for this setting. + * Sets or adds the specified setting to the workbook. * - * [Api set: ExcelApi 1.3] + * [Api set: ExcelApi 1.4] + * + * @param key The Key of the new setting. + * @param value The Value for the new setting. */ - value: any; + add(key: string, value: string | number | boolean | Array | any): Excel.Setting; + /** + * + * Gets the number of Settings in the collection. + * + * [Api set: ExcelApi 1.4] + */ + getCount(): OfficeExtension.ClientResult; + /** + * + * Gets a Setting entry via the key. + * + * [Api set: ExcelApi 1.4] + * + * @param key Key of the setting. + */ + getItem(key: string): Excel.Setting; + /** + * + * Gets a Setting entry via the key. If the Setting does not exist, will return a null object. + * + * [Api set: ExcelApi 1.4] + * + * @param key The key of the setting. + */ + getItemOrNullObject(key: string): Excel.Setting; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.SettingCollection; + /** + * + * Occurs when the Settings in the document are changed. + * + * [Api set: ExcelApi 1.4] + */ + readonly onSettingsChanged: OfficeExtension.EventHandlers; + toJSON(): {}; + } + /** + * + * Setting represents a key-value pair of a setting persisted to the document. + * + * [Api set: ExcelApi 1.4] + */ + class Setting extends OfficeExtension.ClientObject { + private static DateJSONPrefix; + private static DateJSONSuffix; + private static replaceStringDateWithDate(value); /** * * Returns the key that represents the id of the Setting. Read-only. * - * [Api set: ExcelApi 1.3] + * [Api set: ExcelApi 1.4] */ - key: string; + readonly key: string; + /** + * + * Represents the value stored for this setting. + * + * [Api set: ExcelApi 1.4] + */ + value: any; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.SettingUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Setting): void; /** * * Deletes the setting. * - * [Api set: ExcelApi 1.3] + * [Api set: ExcelApi 1.4] */ delete(): void; /** @@ -3650,6 +3970,7 @@ declare module Excel { load(option?: string | string[] | OfficeExtension.LoadOption): Excel.Setting; toJSON(): { "key": string; + "value": any; }; } /** @@ -3660,16 +3981,56 @@ declare module Excel { */ class NamedItemCollection extends OfficeExtension.ClientObject { /** Gets the loaded child items in this collection. */ - items: Array; + readonly items: Array; + /** + * + * Adds a new name to the collection of the given scope. + * + * [Api set: ExcelApi 1.4] + * + * @param name The name of the named item. + * @param reference The formula or the range that the name will refer to. + * @param comment The comment associated with the named item + * @returns + */ + add(name: string, reference: Excel.Range | string, comment?: string): Excel.NamedItem; + /** + * + * Adds a new name to the collection of the given scope using the user's locale for the formula. + * + * [Api set: ExcelApi 1.4] + * + * @param name The "name" of the named item. + * @param formula The formula in the user's locale that the name will refer to. + * @param comment The comment associated with the named item + * @returns + */ + addFormulaLocal(name: string, formula: string, comment?: string): Excel.NamedItem; + /** + * + * Gets the number of named items in the collection. + * + * [Api set: ExcelApi 1.4] + */ + getCount(): OfficeExtension.ClientResult; /** * * Gets a nameditem object using its name * - * @param name nameditem name. - * * [Api set: ExcelApi 1.1] + * + * @param name nameditem name. */ getItem(name: string): Excel.NamedItem; + /** + * + * Gets a nameditem object using its name. If the nameditem object does not exist, will return a null object. + * + * [Api set: ExcelApi 1.4] + * + * @param name nameditem name. + */ + getItemOrNullObject(name: string): Excel.NamedItem; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -3683,27 +4044,55 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ class NamedItem extends OfficeExtension.ClientObject { + /** + * + * Returns the worksheet on which the named item is scoped to. Throws an error if the items is scoped to the workbook instead. + * + * [Api set: ExcelApi 1.4] + */ + readonly worksheet: Excel.Worksheet; + /** + * + * Returns the worksheet on which the named item is scoped to. Returns a null object if the item is scoped to the workbook instead. + * + * [Api set: ExcelApi 1.4] + */ + readonly worksheetOrNullObject: Excel.Worksheet; + /** + * + * Represents the comment associated with this name. + * + * [Api set: ExcelApi 1.4] + */ + comment: string; /** * * The name of the object. Read-only. * * [Api set: ExcelApi 1.1] */ - name: string; + readonly name: string; + /** + * + * Indicates whether the name is scoped to the workbook or to a specific worksheet. Read-only. + * + * [Api set: ExcelApi 1.4] + */ + readonly scope: string; /** * * Indicates the type of the value returned by the name's formula. See Excel.NamedItemType for details. Read-only. * * [Api set: ExcelApi 1.1] */ - type: string; + readonly type: string; /** * - * Represents the value computed by the name's formula. Read-only. + * Represents the value computed by the name's formula. For a named range, will return the range address. Read-only. * * [Api set: ExcelApi 1.1] */ - value: any; + readonly value: any; /** * * Specifies whether the object is visible or not. @@ -3711,18 +4100,34 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ visible: boolean; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.NamedItemUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: NamedItem): void; /** * - * Returns the range object that is associated with the name. Throws an exception if the named item's type is not a range. + * Deletes the given name. + * + * [Api set: ExcelApi 1.4] + */ + delete(): void; + /** + * + * Returns the range object that is associated with the name. Throws an error if the named item's type is not a range. * * [Api set: ExcelApi 1.1] */ getRange(): Excel.Range; /** * - * Returns the range object that is associated with the name. Returns a null object if the named item's type is not a range + * Returns the range object that is associated with the name. Returns a null object if the named item's type is not a range. * - * [Api set: ExcelApi 1.1] + * [Api set: ExcelApi 1.4] */ getRangeOrNullObject(): Excel.Range; /** @@ -3730,7 +4135,9 @@ declare module Excel { */ load(option?: string | string[] | OfficeExtension.LoadOption): Excel.NamedItem; toJSON(): { + "comment": string; "name": string; + "scope": string; "type": string; "value": any; "visible": boolean; @@ -3749,14 +4156,14 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - id: string; + readonly id: string; /** * * Returns the type of the binding. See Excel.BindingType for details. Read-only. * * [Api set: ExcelApi 1.1] */ - type: string; + readonly type: string; /** * * Deletes the binding. @@ -3795,14 +4202,14 @@ declare module Excel { * * [Api set: ExcelApi 1.2] */ - onDataChanged: OfficeExtension.EventHandlers; + readonly onDataChanged: OfficeExtension.EventHandlers; /** * * Occurs when the selection is changed within the binding. * * [Api set: ExcelApi 1.2] */ - onSelectionChanged: OfficeExtension.EventHandlers; + readonly onSelectionChanged: OfficeExtension.EventHandlers; toJSON(): { "id": string; "type": string; @@ -3816,64 +4223,80 @@ declare module Excel { */ class BindingCollection extends OfficeExtension.ClientObject { /** Gets the loaded child items in this collection. */ - items: Array; + readonly items: Array; /** * * Returns the number of bindings in the collection. Read-only. * * [Api set: ExcelApi 1.1] */ - count: number; + readonly count: number; /** * * Add a new binding to a particular Range. * + * [Api set: ExcelApi 1.3] + * * @param range Range to bind the binding to. May be an Excel Range object, or a string. If string, must contain the full address, including the sheet name * @param bindingType Type of binding. See Excel.BindingType. * @param id Name of binding. - * - * [Api set: ExcelApi 1.3] */ add(range: Excel.Range | string, bindingType: string, id: string): Excel.Binding; /** * * Add a new binding based on a named item in the workbook. * + * [Api set: ExcelApi 1.3] + * * @param name Name from which to create binding. * @param bindingType Type of binding. See Excel.BindingType. * @param id Name of binding. - * - * [Api set: ExcelApi 1.3] */ addFromNamedItem(name: string, bindingType: string, id: string): Excel.Binding; /** * * Add a new binding based on the current selection. * + * [Api set: ExcelApi 1.3] + * * @param bindingType Type of binding. See Excel.BindingType. * @param id Name of binding. - * - * [Api set: ExcelApi 1.3] */ addFromSelection(bindingType: string, id: string): Excel.Binding; + /** + * + * Gets the number of bindings in the collection. + * + * [Api set: ExcelApi 1.4] + */ + getCount(): OfficeExtension.ClientResult; /** * * Gets a binding object by ID. * - * @param id Id of the binding object to be retrieved. - * * [Api set: ExcelApi 1.1] + * + * @param id Id of the binding object to be retrieved. */ getItem(id: string): Excel.Binding; /** * * Gets a binding object based on its position in the items array. * - * @param index Index value of the object to be retrieved. Zero-indexed. - * * [Api set: ExcelApi 1.1] + * + * @param index Index value of the object to be retrieved. Zero-indexed. */ getItemAt(index: number): Excel.Binding; + /** + * + * Gets a binding object by ID. If the binding object does not exist, will return a null object. + * + * [Api set: ExcelApi 1.4] + * + * @param id Id of the binding object to be retrieved. + */ + getItemOrNullObject(id: string): Excel.Binding; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -3890,42 +4313,58 @@ declare module Excel { */ class TableCollection extends OfficeExtension.ClientObject { /** Gets the loaded child items in this collection. */ - items: Array; + readonly items: Array; /** * * Returns the number of tables in the workbook. Read-only. * * [Api set: ExcelApi 1.1] */ - count: number; + readonly count: number; /** * * Create a new table. The range object or source address determines the worksheet under which the table will be added. If the table cannot be added (e.g., because the address is invalid, or the table would overlap with another table), an error will be thrown. * + * [Api set: ExcelApi 1.1] + * * @param address A Range object, or a string address or name of the range representing the data source. If the address does not contain a sheet name, the currently-active sheet is used. [Api set: ExcelApi 1.1 for string parameter; 1.3 for accepting a Range object as well] * @param hasHeaders Boolean value that indicates whether the data being imported has column labels. If the source does not contain headers (i.e,. when this property set to false), Excel will automatically generate header shifting the data down by one row. - * - * [Api set: ExcelApi 1.1] */ add(address: Excel.Range | string, hasHeaders: boolean): Excel.Table; + /** + * + * Gets the number of tables in the collection. + * + * [Api set: ExcelApi 1.4] + */ + getCount(): OfficeExtension.ClientResult; /** * * Gets a table by Name or ID. * - * @param key Name or ID of the table to be retrieved. - * * [Api set: ExcelApi 1.1] + * + * @param key Name or ID of the table to be retrieved. */ getItem(key: number | string): Excel.Table; /** * * Gets a table based on its position in the collection. * - * @param index Index value of the object to be retrieved. Zero-indexed. - * * [Api set: ExcelApi 1.1] + * + * @param index Index value of the object to be retrieved. Zero-indexed. */ getItemAt(index: number): Excel.Table; + /** + * + * Gets a table by Name or ID. If the table does not exist, will return a null object. + * + * [Api set: ExcelApi 1.4] + * + * @param key Name or ID of the table to be retrieved. + */ + getItemOrNullObject(key: number | string): Excel.Table; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -3947,28 +4386,28 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - columns: Excel.TableColumnCollection; + readonly columns: Excel.TableColumnCollection; /** * * Represents a collection of all the rows in the table. Read-only. * * [Api set: ExcelApi 1.1] */ - rows: Excel.TableRowCollection; + readonly rows: Excel.TableRowCollection; /** * * Represents the sorting for the table. * * [Api set: ExcelApi 1.2] */ - sort: Excel.TableSort; + readonly sort: Excel.TableSort; /** * * The worksheet containing the current table. Read-only. * * [Api set: ExcelApi 1.2] */ - worksheet: Excel.Worksheet; + readonly worksheet: Excel.Worksheet; /** * * Indicates whether the first column contains special formatting. @@ -3989,7 +4428,7 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - id: number; + readonly id: number; /** * * Name of the table. @@ -4039,6 +4478,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ style: string; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.TableUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Table): void; /** * * Clears all the filters currently applied on the table. @@ -4120,43 +4568,59 @@ declare module Excel { */ class TableColumnCollection extends OfficeExtension.ClientObject { /** Gets the loaded child items in this collection. */ - items: Array; + readonly items: Array; /** * * Returns the number of columns in the table. Read-only. * * [Api set: ExcelApi 1.1] */ - count: number; + readonly count: number; /** * * Adds a new column to the table. * + * [Api set: ExcelApi 1.1 requires an index smaller than the total column count; 1.4 allows index to be optional (null or -1) and will append a column at the end; 1.4 allows name parameter at creation time.] + * * @param index Specifies the relative position of the new column. If null or -1, the addition happens at the end. Columns with a higher index will be shifted to the side. Zero-indexed. * @param values A 2-dimensional array of unformatted values of the table column. * @param name Specifies the name of the new column. If null, the default name will be used. - * - * [Api set: ExcelApi 1.1 requires an index smaller than the total column count; 1.4 allows index to be optional (null or -1) and will append a column at the end; 1.4 allows name parameter at creation time.] */ add(index?: number, values?: Array> | boolean | string | number, name?: string): Excel.TableColumn; + /** + * + * Gets the number of columns in the table. + * + * [Api set: ExcelApi 1.4] + */ + getCount(): OfficeExtension.ClientResult; /** * * Gets a column object by Name or ID. * - * @param key Column Name or ID. - * * [Api set: ExcelApi 1.1] + * + * @param key Column Name or ID. */ getItem(key: number | string): Excel.TableColumn; /** * * Gets a column based on its position in the collection. * - * @param index Index value of the object to be retrieved. Zero-indexed. - * * [Api set: ExcelApi 1.1] + * + * @param index Index value of the object to be retrieved. Zero-indexed. */ getItemAt(index: number): Excel.TableColumn; + /** + * + * Gets a column object by Name or ID. If the column does not exist, will return a null object. + * + * [Api set: ExcelApi 1.4] + * + * @param key Column Name or ID. + */ + getItemOrNullObject(key: number | string): Excel.TableColumn; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -4178,21 +4642,21 @@ declare module Excel { * * [Api set: ExcelApi 1.2] */ - filter: Excel.Filter; + readonly filter: Excel.Filter; /** * * Returns a unique key that identifies the column within the table. Read-only. * * [Api set: ExcelApi 1.1] */ - id: number; + readonly id: number; /** * * Returns the index number of the column within the columns collection of the table. Zero-indexed. Read-only. * * [Api set: ExcelApi 1.1] */ - index: number; + readonly index: number; /** * * Represents the name of the table column. @@ -4207,6 +4671,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ values: Array>; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.TableColumnUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: TableColumn): void; /** * * Deletes the column from the table. @@ -4256,36 +4729,58 @@ declare module Excel { /** * * Represents a collection of all the rows that are part of the table. + + Note that unlike Ranges or Columns, which will adjust if new rows/columns are added before them, + a TableRow object represent the physical location of the table row, but not the data. + That is, if the data is sorted or if new rows are added, a table row will continue + to point at the index for which it was created. * * [Api set: ExcelApi 1.1] */ class TableRowCollection extends OfficeExtension.ClientObject { /** Gets the loaded child items in this collection. */ - items: Array; + readonly items: Array; /** * * Returns the number of rows in the table. Read-only. * * [Api set: ExcelApi 1.1] */ - count: number; + readonly count: number; /** * * Adds one or more rows to the table. The return object will be the top of the newly added row(s). + + Note that unlike Ranges or Columns, which will adjust if new rows/columns are added before them, + a TableRow object represent the physical location of the table row, but not the data. + That is, if the data is sorted or if new rows are added, a table row will continue + to point at the index for which it was created. + * + * [Api set: ExcelApi 1.1 for adding a single row; 1.4 allows adding of multiple rows.] * * @param index Specifies the relative position of the new row. If null or -1, the addition happens at the end. Any rows below the inserted row are shifted downwards. Zero-indexed. * @param values A 2-dimensional array of unformatted values of the table row. - * - * [Api set: ExcelApi 1.1 for adding a single row; 1.4 allows adding of multiple rows.] */ add(index?: number, values?: Array> | boolean | string | number): Excel.TableRow; /** * - * Gets a row based on its position in the collection. + * Gets the number of rows in the table. * - * @param index Index value of the object to be retrieved. Zero-indexed. + * [Api set: ExcelApi 1.4] + */ + getCount(): OfficeExtension.ClientResult; + /** + * + * Gets a row based on its position in the collection. + + Note that unlike Ranges or Columns, which will adjust if new rows/columns are added before them, + a TableRow object represent the physical location of the table row, but not the data. + That is, if the data is sorted or if new rows are added, a table row will continue + to point at the index for which it was created. * * [Api set: ExcelApi 1.1] + * + * @param index Index value of the object to be retrieved. Zero-indexed. */ getItemAt(index: number): Excel.TableRow; /** @@ -4299,6 +4794,11 @@ declare module Excel { /** * * Represents a row in a table. + + Note that unlike Ranges or Columns, which will adjust if new rows/columns are added before them, + a TableRow object represent the physical location of the table row, but not the data. + That is, if the data is sorted or if new rows are added, a table row will continue + to point at the index for which it was created. * * [Api set: ExcelApi 1.1] */ @@ -4309,7 +4809,7 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - index: number; + readonly index: number; /** * * Represents the raw values of the specified range. The data returned could be of type string, number, or a boolean. Cell that contain an error will return the error string. @@ -4317,6 +4817,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ values: Array>; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.TableRowUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: TableRow): void; /** * * Deletes the row from the table. @@ -4353,28 +4862,28 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - borders: Excel.RangeBorderCollection; + readonly borders: Excel.RangeBorderCollection; /** * * Returns the fill object defined on the overall range. Read-only. * * [Api set: ExcelApi 1.1] */ - fill: Excel.RangeFill; + readonly fill: Excel.RangeFill; /** * * Returns the font object defined on the overall range. Read-only. * * [Api set: ExcelApi 1.1] */ - font: Excel.RangeFont; + readonly font: Excel.RangeFont; /** * * Returns the format protection object for a range. * * [Api set: ExcelApi 1.2] */ - protection: Excel.FormatProtection; + readonly protection: Excel.FormatProtection; /** * * Gets or sets the width of all colums within the range. If the column widths are not uniform, null will be returned. @@ -4410,6 +4919,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ wrapText: boolean; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.RangeFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: RangeFormat): void; /** * * Changes the width of the columns of the current range to achieve the best fit, based on the current data in the columns. @@ -4460,6 +4978,15 @@ declare module Excel { * [Api set: ExcelApi 1.2] */ locked: boolean; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.FormatProtectionUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: FormatProtection): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -4483,6 +5010,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ color: string; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.RangeFillUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: RangeFill): void; /** * * Resets the range background. @@ -4518,7 +5054,7 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - sideIndex: string; + readonly sideIndex: string; /** * * One of the constants of line style specifying the line style for the border. See Excel.BorderLineStyle for details. @@ -4533,6 +5069,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ weight: string; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.RangeBorderUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: RangeBorder): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -4546,36 +5091,36 @@ declare module Excel { } /** * - * Represents the border objects that make up range border. + * Represents the border objects that make up the range border. * * [Api set: ExcelApi 1.1] */ class RangeBorderCollection extends OfficeExtension.ClientObject { /** Gets the loaded child items in this collection. */ - items: Array; + readonly items: Array; /** * * Number of border objects in the collection. Read-only. * * [Api set: ExcelApi 1.1] */ - count: number; + readonly count: number; /** * * Gets a border object using its name * - * @param index Index value of the border object to be retrieved. See Excel.BorderIndex for details. - * * [Api set: ExcelApi 1.1] + * + * @param index Index value of the border object to be retrieved. See Excel.BorderIndex for details. */ getItem(index: string): Excel.RangeBorder; /** * * Gets a border object using its index * - * @param index Index value of the object to be retrieved. Zero-indexed. - * * [Api set: ExcelApi 1.1] + * + * @param index Index value of the object to be retrieved. Zero-indexed. */ getItemAt(index: number): Excel.RangeBorder; /** @@ -4635,6 +5180,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ underline: string; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.RangeFontUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: RangeFont): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -4656,43 +5210,60 @@ declare module Excel { */ class ChartCollection extends OfficeExtension.ClientObject { /** Gets the loaded child items in this collection. */ - items: Array; + readonly items: Array; /** * * Returns the number of charts in the worksheet. Read-only. * * [Api set: ExcelApi 1.1] */ - count: number; + readonly count: number; /** * * Creates a new chart. * + * [Api set: ExcelApi 1.1] + * * @param type Represents the type of a chart. See Excel.ChartType for details. * @param sourceData The Range object corresponding to the source data. * @param seriesBy Specifies the way columns or rows are used as data series on the chart. See Excel.ChartSeriesBy for details. - * - * [Api set: ExcelApi 1.1] */ add(type: string, sourceData: Excel.Range, seriesBy?: string): Excel.Chart; + /** + * + * Returns the number of charts in the worksheet. + * + * [Api set: ExcelApi 1.4] + */ + getCount(): OfficeExtension.ClientResult; /** * * Gets a chart using its name. If there are multiple charts with the same name, the first one will be returned. * - * @param name Name of the chart to be retrieved. - * * [Api set: ExcelApi 1.1] + * + * @param name Name of the chart to be retrieved. */ getItem(name: string): Excel.Chart; /** * * Gets a chart based on its position in the collection. * - * @param index Index value of the object to be retrieved. Zero-indexed. - * * [Api set: ExcelApi 1.1] + * + * @param index Index value of the object to be retrieved. Zero-indexed. */ getItemAt(index: number): Excel.Chart; + /** + * + * Gets a chart using its name. If there are multiple charts with the same name, the first one will be returned. + If the chart does not exist, will return a null object. + * + * [Api set: ExcelApi 1.4] + * + * @param name Name of the chart to be retrieved. + */ + getItemOrNullObject(name: string): Excel.Chart; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -4714,49 +5285,49 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - axes: Excel.ChartAxes; + readonly axes: Excel.ChartAxes; /** * * Represents the datalabels on the chart. Read-only. * * [Api set: ExcelApi 1.1] */ - dataLabels: Excel.ChartDataLabels; + readonly dataLabels: Excel.ChartDataLabels; /** * * Encapsulates the format properties for the chart area. Read-only. * * [Api set: ExcelApi 1.1] */ - format: Excel.ChartAreaFormat; + readonly format: Excel.ChartAreaFormat; /** * * Represents the legend for the chart. Read-only. * * [Api set: ExcelApi 1.1] */ - legend: Excel.ChartLegend; + readonly legend: Excel.ChartLegend; /** * * Represents either a single series or collection of series in the chart. Read-only. * * [Api set: ExcelApi 1.1] */ - series: Excel.ChartSeriesCollection; + readonly series: Excel.ChartSeriesCollection; /** * * Represents the title of the specified chart, including the text, visibility, position and formating of the title. Read-only. * * [Api set: ExcelApi 1.1] */ - title: Excel.ChartTitle; + readonly title: Excel.ChartTitle; /** * * The worksheet containing the current chart. Read-only. * * [Api set: ExcelApi 1.2] */ - worksheet: Excel.Worksheet; + readonly worksheet: Excel.Worksheet; /** * * Represents the height, in points, of the chart object. @@ -4792,6 +5363,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ width: number; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: Chart): void; /** * * Deletes the chart object. @@ -4804,31 +5384,31 @@ declare module Excel { * Renders the chart as a base64-encoded image by scaling the chart to fit the specified dimensions. The aspect ratio is preserved as part of the resizing. * + * [Api set: ExcelApi 1.2] + * * @param height (Optional) The desired height of the resulting image. * @param width (Optional) The desired width of the resulting image. * @param fittingMode (Optional) The method used to scale the chart to the specified to the specified dimensions (if both height and width are set)." - * - * [Api set: ExcelApi 1.2] */ getImage(width?: number, height?: number, fittingMode?: string): OfficeExtension.ClientResult; /** * * Resets the source data for the chart. * + * [Api set: ExcelApi 1.1] + * * @param sourceData The Range object corresponding to the source data. * @param seriesBy Specifies the way columns or rows are used as data series on the chart. Can be one of the following: Auto (default), Rows, Columns. See Excel.ChartSeriesBy for details. - * - * [Api set: ExcelApi 1.1] */ setData(sourceData: Excel.Range, seriesBy?: string): void; /** * * Positions the chart relative to cells on the worksheet. * + * [Api set: ExcelApi 1.1] + * * @param startCell The start cell. This is where the chart will be moved to. The start cell is the top-left or top-right cell, depending on the user's right-to-left display settings. * @param endCell (Optional) The end cell. If specified, the chart's width and height will be set to fully cover up this cell/range. - * - * [Api set: ExcelApi 1.1] */ setPosition(startCell: Excel.Range | string, endCell?: Excel.Range | string): void; /** @@ -4861,14 +5441,23 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - fill: Excel.ChartFill; + readonly fill: Excel.ChartFill; /** * * Represents the font attributes (font name, font size, color, etc.) for the current object. Read-only. * * [Api set: ExcelApi 1.1] */ - font: Excel.ChartFont; + readonly font: Excel.ChartFont; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartAreaFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartAreaFormat): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -4886,21 +5475,28 @@ declare module Excel { */ class ChartSeriesCollection extends OfficeExtension.ClientObject { /** Gets the loaded child items in this collection. */ - items: Array; + readonly items: Array; /** * * Returns the number of series in the collection. Read-only. * * [Api set: ExcelApi 1.1] */ - count: number; + readonly count: number; + /** + * + * Returns the number of series in the collection. + * + * [Api set: ExcelApi 1.4] + */ + getCount(): OfficeExtension.ClientResult; /** * * Retrieves a series based on its position in the collection * - * @param index Index value of the object to be retrieved. Zero-indexed. - * * [Api set: ExcelApi 1.1] + * + * @param index Index value of the object to be retrieved. Zero-indexed. */ getItemAt(index: number): Excel.ChartSeries; /** @@ -4924,14 +5520,14 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - format: Excel.ChartSeriesFormat; + readonly format: Excel.ChartSeriesFormat; /** * * Represents a collection of all points in the series. Read-only. * * [Api set: ExcelApi 1.1] */ - points: Excel.ChartPointsCollection; + readonly points: Excel.ChartPointsCollection; /** * * Represents the name of a series in a chart. @@ -4939,6 +5535,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ name: string; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartSeriesUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartSeries): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -4961,14 +5566,23 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - fill: Excel.ChartFill; + readonly fill: Excel.ChartFill; /** * * Represents line formatting. Read-only. * * [Api set: ExcelApi 1.1] */ - line: Excel.ChartLineFormat; + readonly line: Excel.ChartLineFormat; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartSeriesFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartSeriesFormat): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -4986,21 +5600,28 @@ declare module Excel { */ class ChartPointsCollection extends OfficeExtension.ClientObject { /** Gets the loaded child items in this collection. */ - items: Array; + readonly items: Array; /** * - * Returns the number of chart points in the collection. Read-only. + * Returns the number of chart points in the series. Read-only. * * [Api set: ExcelApi 1.1] */ - count: number; + readonly count: number; + /** + * + * Returns the number of chart points in the series. + * + * [Api set: ExcelApi 1.4] + */ + getCount(): OfficeExtension.ClientResult; /** * * Retrieve a point based on its position within the series. * - * @param index Index value of the object to be retrieved. Zero-indexed. - * * [Api set: ExcelApi 1.1] + * + * @param index Index value of the object to be retrieved. Zero-indexed. */ getItemAt(index: number): Excel.ChartPoint; /** @@ -5024,14 +5645,14 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - format: Excel.ChartPointFormat; + readonly format: Excel.ChartPointFormat; /** * * Returns the value of a chart point. Read-only. * * [Api set: ExcelApi 1.1] */ - value: any; + readonly value: any; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5054,7 +5675,7 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - fill: Excel.ChartFill; + readonly fill: Excel.ChartFill; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5076,21 +5697,30 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - categoryAxis: Excel.ChartAxis; + readonly categoryAxis: Excel.ChartAxis; /** * * Represents the series axis of a 3-dimensional chart. Read-only. * * [Api set: ExcelApi 1.1] */ - seriesAxis: Excel.ChartAxis; + readonly seriesAxis: Excel.ChartAxis; /** * * Represents the value axis in an axis. Read-only. * * [Api set: ExcelApi 1.1] */ - valueAxis: Excel.ChartAxis; + readonly valueAxis: Excel.ChartAxis; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartAxesUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartAxes): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5114,28 +5744,28 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - format: Excel.ChartAxisFormat; + readonly format: Excel.ChartAxisFormat; /** * * Returns a gridlines object that represents the major gridlines for the specified axis. Read-only. * * [Api set: ExcelApi 1.1] */ - majorGridlines: Excel.ChartGridlines; + readonly majorGridlines: Excel.ChartGridlines; /** * * Returns a Gridlines object that represents the minor gridlines for the specified axis. Read-only. * * [Api set: ExcelApi 1.1] */ - minorGridlines: Excel.ChartGridlines; + readonly minorGridlines: Excel.ChartGridlines; /** * * Represents the axis title. Read-only. * * [Api set: ExcelApi 1.1] */ - title: Excel.ChartAxisTitle; + readonly title: Excel.ChartAxisTitle; /** * * Represents the interval between two major tick marks. Can be set to a numeric value or an empty string. The returned value is always a number. @@ -5164,6 +5794,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ minorUnit: any; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartAxisUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartAxis): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5192,14 +5831,23 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - font: Excel.ChartFont; + readonly font: Excel.ChartFont; /** * * Represents chart line formatting. Read-only. * * [Api set: ExcelApi 1.1] */ - line: Excel.ChartLineFormat; + readonly line: Excel.ChartLineFormat; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartAxisFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartAxisFormat): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5222,7 +5870,7 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - format: Excel.ChartAxisTitleFormat; + readonly format: Excel.ChartAxisTitleFormat; /** * * Represents the axis title. @@ -5237,6 +5885,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ visible: boolean; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartAxisTitleUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartAxisTitle): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5260,7 +5917,16 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - font: Excel.ChartFont; + readonly font: Excel.ChartFont; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartAxisTitleFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartAxisTitleFormat): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5282,7 +5948,7 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - format: Excel.ChartDataLabelFormat; + readonly format: Excel.ChartDataLabelFormat; /** * * DataLabelPosition value that represents the position of the data label. See Excel.ChartDataLabelPosition for details. @@ -5339,6 +6005,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ showValue: boolean; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartDataLabelsUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartDataLabels): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5368,14 +6043,23 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - fill: Excel.ChartFill; + readonly fill: Excel.ChartFill; /** * * Represents the font attributes (font name, font size, color, etc.) for a chart data label. Read-only. * * [Api set: ExcelApi 1.1] */ - font: Excel.ChartFont; + readonly font: Excel.ChartFont; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartDataLabelFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartDataLabelFormat): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5398,7 +6082,7 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - format: Excel.ChartGridlinesFormat; + readonly format: Excel.ChartGridlinesFormat; /** * * Boolean value representing if the axis gridlines are visible or not. @@ -5406,6 +6090,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ visible: boolean; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartGridlinesUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartGridlines): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5428,7 +6121,16 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - line: Excel.ChartLineFormat; + readonly line: Excel.ChartLineFormat; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartGridlinesFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartGridlinesFormat): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5450,7 +6152,7 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - format: Excel.ChartLegendFormat; + readonly format: Excel.ChartLegendFormat; /** * * Boolean value for whether the chart legend should overlap with the main body of the chart. @@ -5472,6 +6174,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ visible: boolean; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartLegendUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartLegend): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5496,14 +6207,23 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - fill: Excel.ChartFill; + readonly fill: Excel.ChartFill; /** * * Represents the font attributes such as font name, font size, color, etc. of a chart legend. Read-only. * * [Api set: ExcelApi 1.1] */ - font: Excel.ChartFont; + readonly font: Excel.ChartFont; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartLegendFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartLegendFormat): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5526,7 +6246,7 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - format: Excel.ChartTitleFormat; + readonly format: Excel.ChartTitleFormat; /** * * Boolean value representing if the chart title will overlay the chart or not. @@ -5548,6 +6268,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ visible: boolean; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartTitleUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartTitle): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5572,14 +6301,23 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - fill: Excel.ChartFill; + readonly fill: Excel.ChartFill; /** * * Represents the font attributes (font name, font size, color, etc.) for an object. Read-only. * * [Api set: ExcelApi 1.1] */ - font: Excel.ChartFont; + readonly font: Excel.ChartFont; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartTitleFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartTitleFormat): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5611,9 +6349,9 @@ declare module Excel { * * Sets the fill formatting of a chart element to a uniform color. * - * @param color HTML color code representing the color of the border line, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). - * * [Api set: ExcelApi 1.1] + * + * @param color HTML color code representing the color of the border line, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). */ setSolidColor(color: string): void; toJSON(): {}; @@ -5632,6 +6370,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ color: string; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartLineFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartLineFormat): void; /** * * Clear the line format of a chart element. @@ -5696,6 +6443,15 @@ declare module Excel { * [Api set: ExcelApi 1.1] */ underline: string; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ChartFontUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ChartFont): void; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -5720,13 +6476,13 @@ declare module Excel { * * Perform a sort operation. * + * [Api set: ExcelApi 1.2] + * * @param fields The list of conditions to sort on. * @param matchCase Whether to have the casing impact string ordering. * @param hasHeaders Whether the range has a header. * @param orientation Whether the operation is sorting rows or columns. * @param method The ordering method used for Chinese characters. - * - * [Api set: ExcelApi 1.2] */ apply(fields: Array, matchCase?: boolean, hasHeaders?: boolean, orientation?: string, method?: string): void; toJSON(): {}; @@ -5744,30 +6500,30 @@ declare module Excel { * * [Api set: ExcelApi 1.2] */ - fields: Array; + readonly fields: Array; /** * * Represents whether the casing impacted the last sort of the table. * * [Api set: ExcelApi 1.2] */ - matchCase: boolean; + readonly matchCase: boolean; /** * * Represents Chinese character ordering method last used to sort the table. * * [Api set: ExcelApi 1.2] */ - method: string; + readonly method: string; /** * * Perform a sort operation. * + * [Api set: ExcelApi 1.2] + * * @param fields The list of conditions to sort on. * @param matchCase Whether to have the casing impact string ordering. * @param method The ordering method used for Chinese characters. - * - * [Api set: ExcelApi 1.2] */ apply(fields: Array, matchCase?: boolean, method?: string): void; /** @@ -5857,106 +6613,106 @@ declare module Excel { * * [Api set: ExcelApi 1.2] */ - criteria: Excel.FilterCriteria; + readonly criteria: Excel.FilterCriteria; /** * * Apply the given filter criteria on the given column. * - * @param criteria The criteria to apply. - * * [Api set: ExcelApi 1.2] + * + * @param criteria The criteria to apply. */ apply(criteria: Excel.FilterCriteria): void; /** * * Apply a "Bottom Item" filter to the column for the given number of elements. * - * @param count The number of elements from the bottom to show. - * * [Api set: ExcelApi 1.2] + * + * @param count The number of elements from the bottom to show. */ applyBottomItemsFilter(count: number): void; /** * * Apply a "Bottom Percent" filter to the column for the given percentage of elements. * - * @param percent The percentage of elements from the bottom to show. - * * [Api set: ExcelApi 1.2] + * + * @param percent The percentage of elements from the bottom to show. */ applyBottomPercentFilter(percent: number): void; /** * * Apply a "Cell Color" filter to the column for the given color. * - * @param color The background color of the cells to show. - * * [Api set: ExcelApi 1.2] + * + * @param color The background color of the cells to show. */ applyCellColorFilter(color: string): void; /** * * Apply a "Icon" filter to the column for the given criteria strings. * + * [Api set: ExcelApi 1.2] + * * @param criteria1 The first criteria string. * @param criteria2 The second criteria string. * @param oper The operator that describes how the two criteria are joined. - * - * [Api set: ExcelApi 1.2] */ applyCustomFilter(criteria1: string, criteria2?: string, oper?: string): void; /** * * Apply a "Dynamic" filter to the column. * - * @param criteria The dynamic criteria to apply. - * * [Api set: ExcelApi 1.2] + * + * @param criteria The dynamic criteria to apply. */ applyDynamicFilter(criteria: string): void; /** * * Apply a "Font Color" filter to the column for the given color. * - * @param color The font color of the cells to show. - * * [Api set: ExcelApi 1.2] + * + * @param color The font color of the cells to show. */ applyFontColorFilter(color: string): void; /** * * Apply a "Icon" filter to the column for the given icon. * - * @param icon The icons of the cells to show. - * * [Api set: ExcelApi 1.2] + * + * @param icon The icons of the cells to show. */ applyIconFilter(icon: Excel.Icon): void; /** * * Apply a "Top Item" filter to the column for the given number of elements. * - * @param count The number of elements from the top to show. - * * [Api set: ExcelApi 1.2] + * + * @param count The number of elements from the top to show. */ applyTopItemsFilter(count: number): void; /** * * Apply a "Top Percent" filter to the column for the given percentage of elements. * - * @param percent The percentage of elements from the top to show. - * * [Api set: ExcelApi 1.2] + * + * @param percent The percentage of elements from the top to show. */ applyTopPercentFilter(percent: number): void; /** * * Apply a "Values" filter to the column for the given values. * - * @param values The list of values to show. - * * [Api set: ExcelApi 1.2] + * + * @param values The list of values to show. */ applyValuesFilter(values: Array): void; /** @@ -5992,7 +6748,7 @@ declare module Excel { * * The first criterion used to filter data. Used as an operator in the case of "custom" filtering. For example ">50" for number greater than 50 or "=*s" for values ending in "s". - + Used as a number in the case of top/bottom items/percents. E.g. "5" for the top 5 items if filterOn is set to "topItems" * * [Api set: ExcelApi 1.2] @@ -6085,6 +6841,177 @@ declare module Excel { */ set: string; } + /** + * + * A scoped collection of custom XML parts. + A scoped collection is the result of some operation, e.g. filtering by namespace. + A scoped collection cannot be scoped any further. + * + * [Api set: ExcelApi 1.5] + */ + class CustomXmlPartScopedCollection extends OfficeExtension.ClientObject { + /** Gets the loaded child items in this collection. */ + readonly items: Array; + /** + * + * Gets the number of CustomXML parts in this collection. + * + * [Api set: ExcelApi 1.5] + */ + getCount(): OfficeExtension.ClientResult; + /** + * + * Gets a custom XML part based on its ID. + * + * [Api set: ExcelApi 1.5] + * + * @param id ID of the object to be retrieved. + */ + getItem(id: string): Excel.CustomXmlPart; + /** + * + * Gets a custom XML part based on its ID. + If the CustomXmlPart does not exist, the return object's isNull property will be true. + * + * [Api set: ExcelApi 1.5] + * + * @param id ID of the object to be retrieved. + */ + getItemOrNullObject(id: string): Excel.CustomXmlPart; + /** + * + * If the collection contains exactly one item, this method returns it. + Otherwise, this method produces an error. + * + * [Api set: ExcelApi 1.5] + */ + getOnlyItem(): Excel.CustomXmlPart; + /** + * + * If the collection contains exactly one item, this method returns it. + Otherwise, this method returns Null. + * + * [Api set: ExcelApi 1.5] + */ + getOnlyItemOrNullObject(): Excel.CustomXmlPart; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.CustomXmlPartScopedCollection; + toJSON(): {}; + } + /** + * + * A collection of custom XML parts. + * + * [Api set: ExcelApi 1.5] + */ + class CustomXmlPartCollection extends OfficeExtension.ClientObject { + /** Gets the loaded child items in this collection. */ + readonly items: Array; + /** + * + * Adds a new custom XML part to the workbook. + * + * [Api set: ExcelApi 1.5] + * + * @param xml XML content. Must be a valid XML fragment. + */ + add(xml: string): Excel.CustomXmlPart; + /** + * + * Gets a new scoped collection of custom XML parts whose namespaces match the given namespace. + * + * [Api set: ExcelApi 1.5] + * + * @param namespaceUri + */ + getByNamespace(namespaceUri: string): Excel.CustomXmlPartScopedCollection; + /** + * + * Gets the number of CustomXml parts in the collection. + * + * [Api set: ExcelApi 1.5] + */ + getCount(): OfficeExtension.ClientResult; + /** + * + * Gets a custom XML part based on its ID. + * + * [Api set: ExcelApi 1.5] + * + * @param id ID of the object to be retrieved. + */ + getItem(id: string): Excel.CustomXmlPart; + /** + * + * Gets a custom XML part based on its ID. + If the CustomXmlPart does not exist, the return object's isNull property will be true. + * + * [Api set: ExcelApi 1.5] + * + * @param id ID of the object to be retrieved. + */ + getItemOrNullObject(id: string): Excel.CustomXmlPart; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.CustomXmlPartCollection; + toJSON(): {}; + } + /** + * + * Represents a custom XML part object in a workbook. + * + * [Api set: ExcelApi 1.5] + */ + class CustomXmlPart extends OfficeExtension.ClientObject { + /** + * + * The custom XML part's ID. Read-only. + * + * [Api set: ExcelApi 1.5] + */ + readonly id: string; + /** + * + * The custom XML part's namespace URI. Read-only. + * + * [Api set: ExcelApi 1.5] + */ + readonly namespaceUri: string; + /** + * + * Deletes the custom XML part. + * + * [Api set: ExcelApi 1.5] + */ + delete(): void; + /** + * + * Gets the custom XML part's full XML content. + * + * [Api set: ExcelApi 1.5] + */ + getXml(): OfficeExtension.ClientResult; + /** + * + * Sets the custom XML part's full XML content. + * + * [Api set: ExcelApi 1.5] + * + * @param xml XML content for the part. + */ + setXml(xml: string): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.CustomXmlPart; + toJSON(): { + "id": string; + "namespaceUri": string; + }; + } /** * * Represents a collection of all the PivotTables that are part of the workbook or worksheet. @@ -6093,19 +7020,35 @@ declare module Excel { */ class PivotTableCollection extends OfficeExtension.ClientObject { /** Gets the loaded child items in this collection. */ - items: Array; + readonly items: Array; + /** + * + * Gets the number of pivot tables in the collection. + * + * [Api set: ExcelApi 1.4] + */ + getCount(): OfficeExtension.ClientResult; /** * * Gets a PivotTable by name. * - * @param name Name of the PivotTable to be retrieved. - * * [Api set: ExcelApi 1.3] + * + * @param name Name of the PivotTable to be retrieved. */ getItem(name: string): Excel.PivotTable; /** * - * Refreshes all the PivotTables in the collection. + * Gets a PivotTable by name. If the PivotTable does not exist, will return a null object. + * + * [Api set: ExcelApi 1.4] + * + * @param name Name of the PivotTable to be retrieved. + */ + getItemOrNullObject(name: string): Excel.PivotTable; + /** + * + * Refreshes all the pivot tables in the collection. * * [Api set: ExcelApi 1.3] */ @@ -6129,7 +7072,14 @@ declare module Excel { * * [Api set: ExcelApi 1.3] */ - worksheet: Excel.Worksheet; + readonly worksheet: Excel.Worksheet; + /** + * + * Id of the PivotTable. + * + * [Api set: ExcelApi 1.5] + */ + readonly id: string; /** * * Name of the PivotTable. @@ -6137,6 +7087,15 @@ declare module Excel { * [Api set: ExcelApi 1.3] */ name: string; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.PivotTableUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: PivotTable): void; /** * * Refreshes the PivotTable. @@ -6149,13 +7108,1276 @@ declare module Excel { */ load(option?: string | string[] | OfficeExtension.LoadOption): Excel.PivotTable; toJSON(): { + "id": string; "name": string; }; } + /** + * + * Represents a collection of all the conditional formats that are overlap the range. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class ConditionalFormatCollection extends OfficeExtension.ClientObject { + /** Gets the loaded child items in this collection. */ + readonly items: Array; + /** + * + * Adds a new conditional format to the collection at the first/top priority. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + * + * @param type The type of conditional format being added. See Excel.ConditionalFormatType for details. + */ + add(type: string): Excel.ConditionalFormat; + /** + * + * Clears all conditional formats active on the current specified range. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + clearAll(): void; + /** + * + * Returns the number of conditional formats in the workbook. Read-only. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + getCount(): OfficeExtension.ClientResult; + /** + * + * Returns a conditional format at the given index. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + * + * @param index Index of the conditional formats to be retrieved. + */ + getItemAt(index: number): Excel.ConditionalFormat; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.ConditionalFormatCollection; + toJSON(): {}; + } + /** + * + * An object encapsulating a conditional format's range, format, rule, and other properties. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class ConditionalFormat extends OfficeExtension.ClientObject { + /** + * + * Returns the cell value conditional format properties if the current conditional format is a CellValue type. + For example to format all cells between 5 and 10. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly cellValue: Excel.CellValueConditionalFormat; + /** + * + * Returns the cell value conditional format properties if the current conditional format is a CellValue type. + For example to format all cells between 5 and 10. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly cellValueOrNullObject: Excel.CellValueConditionalFormat; + /** + * + * Returns the ColorScale conditional format properties if the current conditional format is an ColorScale type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly colorScale: Excel.ColorScaleConditionalFormat; + /** + * + * Returns the ColorScale conditional format properties if the current conditional format is an ColorScale type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly colorScaleOrNullObject: Excel.ColorScaleConditionalFormat; + /** + * + * Returns the custom conditional format properties if the current conditional format is a custom type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly custom: Excel.CustomConditionalFormat; + /** + * + * Returns the custom conditional format properties if the current conditional format is a custom type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly customOrNullObject: Excel.CustomConditionalFormat; + /** + * + * Returns the data bar properties if the current conditional format is a data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly dataBar: Excel.DataBarConditionalFormat; + /** + * + * Returns the data bar properties if the current conditional format is a data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly dataBarOrNullObject: Excel.DataBarConditionalFormat; + /** + * + * Returns the IconSet conditional format properties if the current conditional format is an IconSet type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly iconSet: Excel.IconSetConditionalFormat; + /** + * + * Returns the IconSet conditional format properties if the current conditional format is an IconSet type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly iconSetOrNullObject: Excel.IconSetConditionalFormat; + /** + * + * Returns the preset criteria conditional format such as above average/below average/unique values/contains blank/nonblank/error/noerror properties. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly preset: Excel.PresetCriteriaConditionalFormat; + /** + * + * Returns the preset criteria conditional format such as above average/below average/unique values/contains blank/nonblank/error/noerror properties. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly presetOrNullObject: Excel.PresetCriteriaConditionalFormat; + /** + * + * Returns the specific text conditional format properties if the current conditional format is a text type. + For example to format cells matching the word "Text". + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly textComparison: Excel.TextConditionalFormat; + /** + * + * Returns the specific text conditional format properties if the current conditional format is a text type. + For example to format cells matching the word "Text". + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly textComparisonOrNullObject: Excel.TextConditionalFormat; + /** + * + * Returns the Top/Bottom conditional format properties if the current conditional format is an TopBottom type. + For example to format the top 10% or bottom 10 items. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly topBottom: Excel.TopBottomConditionalFormat; + /** + * + * Returns the Top/Bottom conditional format properties if the current conditional format is an TopBottom type. + For example to format the top 10% or bottom 10 items. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly topBottomOrNullObject: Excel.TopBottomConditionalFormat; + /** + * + * The priority (or index) within the conditional format collection that this conditional format currently exists in. Changing this also + changes other conditional formats' priorities, to allow for a contiguous priority order. + Use a negative priority to begin from the back. + Priorities greater than than bounds will get and set to the maximum (or minimum if negative) priority. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + priority: number; + /** + * + * If the conditions of this conditional format are met, no lower-priority formats shall take effect on that cell. + Null on databars, icon sets, and colorscales as there's no concept of StopIfTrue for these + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + stopIfTrue: boolean; + /** + * + * A type of conditional format. Only one can be set at a time. Read-Only. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly type: string; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ConditionalFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ConditionalFormat): void; + /** + * + * Deletes this conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + delete(): void; + /** + * + * Returns the range the conditonal format is applied to or a null object if the range is discontiguous. Read-only. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + getRange(): Excel.Range; + /** + * + * Returns the range the conditonal format is applied to or a null object if the range is discontiguous. Read-only. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + getRangeOrNullObject(): Excel.Range; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.ConditionalFormat; + toJSON(): { + "cellValue": CellValueConditionalFormat; + "cellValueOrNullObject": CellValueConditionalFormat; + "colorScale": ColorScaleConditionalFormat; + "colorScaleOrNullObject": ColorScaleConditionalFormat; + "custom": CustomConditionalFormat; + "customOrNullObject": CustomConditionalFormat; + "dataBar": DataBarConditionalFormat; + "dataBarOrNullObject": DataBarConditionalFormat; + "iconSet": IconSetConditionalFormat; + "iconSetOrNullObject": IconSetConditionalFormat; + "preset": PresetCriteriaConditionalFormat; + "presetOrNullObject": PresetCriteriaConditionalFormat; + "priority": number; + "stopIfTrue": boolean; + "textComparison": TextConditionalFormat; + "textComparisonOrNullObject": TextConditionalFormat; + "topBottom": TopBottomConditionalFormat; + "topBottomOrNullObject": TopBottomConditionalFormat; + "type": string; + }; + } + /** + * + * Represents an Excel Conditional Data Bar Type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class DataBarConditionalFormat extends OfficeExtension.ClientObject { + /** + * + * Representation of all values to the left of the axis in an Excel data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly negativeFormat: Excel.ConditionalDataBarNegativeFormat; + /** + * + * Representation of all values to the right of the axis in an Excel data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly positiveFormat: Excel.ConditionalDataBarPositiveFormat; + /** + * + * HTML color code representing the color of the Axis line, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). + "" (empty string) if no axis is present or set. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + axisColor: string; + /** + * + * Representation of how the axis is determined for an Excel data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + axisFormat: string; + /** + * + * Represents the direction that the data bar graphic should be based on. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + barDirection: string; + /** + * + * The rule for what consistutes the lower bound (and how to calculate it, if applicable) for a data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + lowerBoundRule: Excel.ConditionalDataBarRule; + /** + * + * If true, hides the values from the cells where the data bar is applied. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + showDataBarOnly: boolean; + /** + * + * The rule for what constitutes the upper bound (and how to calculate it, if applicable) for a data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + upperBoundRule: Excel.ConditionalDataBarRule; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.DataBarConditionalFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: DataBarConditionalFormat): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.DataBarConditionalFormat; + toJSON(): { + "axisColor": string; + "axisFormat": string; + "barDirection": string; + "lowerBoundRule": ConditionalDataBarRule; + "negativeFormat": ConditionalDataBarNegativeFormat; + "positiveFormat": ConditionalDataBarPositiveFormat; + "showDataBarOnly": boolean; + "upperBoundRule": ConditionalDataBarRule; + }; + } + /** + * + * Represents a conditional format DataBar Format for the positive side of the data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class ConditionalDataBarPositiveFormat extends OfficeExtension.ClientObject { + /** + * + * HTML color code representing the color of the border line, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). + "" (empty string) if no border is present or set. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + borderColor: string; + /** + * + * HTML color code representing the fill color, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + fillColor: string; + /** + * + * Boolean representation of whether or not the DataBar has a gradient. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + gradientFill: boolean; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ConditionalDataBarPositiveFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ConditionalDataBarPositiveFormat): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.ConditionalDataBarPositiveFormat; + toJSON(): { + "borderColor": string; + "fillColor": string; + "gradientFill": boolean; + }; + } + /** + * + * Represents a conditional format DataBar Format for the negative side of the data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class ConditionalDataBarNegativeFormat extends OfficeExtension.ClientObject { + /** + * + * HTML color code representing the color of the border line, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). + "Empty String" if no border is present or set. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + borderColor: string; + /** + * + * HTML color code representing the fill color, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + fillColor: string; + /** + * + * Boolean representation of whether or not the negative DataBar has the same border color as the positive DataBar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + matchPositiveBorderColor: boolean; + /** + * + * Boolean representation of whether or not the negative DataBar has the same fill color as the positive DataBar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + matchPositiveFillColor: boolean; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ConditionalDataBarNegativeFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ConditionalDataBarNegativeFormat): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.ConditionalDataBarNegativeFormat; + toJSON(): { + "borderColor": string; + "fillColor": string; + "matchPositiveBorderColor": boolean; + "matchPositiveFillColor": boolean; + }; + } + /** + * + * Represents a rule-type for a Data Bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + interface ConditionalDataBarRule { + /** + * + * The formula, if required, to evaluate the databar rule on. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + formula?: string; + /** + * + * The type of rule for the databar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + type: string; + } + /** + * + * Represents a custom conditional format type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class CustomConditionalFormat extends OfficeExtension.ClientObject { + /** + * + * Returns a format object, encapsulating the conditional formats font, fill, borders, and other properties. Read-only. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly format: Excel.ConditionalRangeFormat; + /** + * + * Represents the Rule object on this conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly rule: Excel.ConditionalFormatRule; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.CustomConditionalFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: CustomConditionalFormat): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.CustomConditionalFormat; + toJSON(): { + "format": ConditionalRangeFormat; + "rule": ConditionalFormatRule; + }; + } + /** + * + * Represents a rule, for all traditional rule/format pairings. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class ConditionalFormatRule extends OfficeExtension.ClientObject { + /** + * + * The formula, if required, to evaluate the conditional format rule on. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + formula: string; + /** + * + * The formula, if required, to evaluate the conditional format rule on in the user's language. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + formulaLocal: string; + /** + * + * The formula, if required, to evaluate the conditional format rule on in R1C1-style notation. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + formulaR1C1: string; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ConditionalFormatRuleUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ConditionalFormatRule): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.ConditionalFormatRule; + toJSON(): { + "formula": string; + "formulaLocal": string; + "formulaR1C1": string; + }; + } + /** + * + * Represents an IconSet criteria for conditional formatting. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class IconSetConditionalFormat extends OfficeExtension.ClientObject { + /** + * + * An array of Criteria and IconSets for the rules and potential custom icons for conditional icons. Note that for the first criterion only the custom icon can be modified, while type, formula and operator will be ignored when set. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + criteria: Array; + /** + * + * If true, reverses the icon orders for the IconSet. Note that this cannot be set if custom icons are used. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + reverseIconOrder: boolean; + /** + * + * If true, hides the values and only shows icons. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + showIconOnly: boolean; + /** + * + * If set, displays the IconSet option for the conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + style: string; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.IconSetConditionalFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: IconSetConditionalFormat): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.IconSetConditionalFormat; + toJSON(): { + "criteria": ConditionalIconCriterion[]; + "reverseIconOrder": boolean; + "showIconOnly": boolean; + "style": string; + }; + } + /** + * + * Represents an Icon Criterion which contains a type, value, an Operator, and an optional custom icon, if not using an iconset. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + interface ConditionalIconCriterion { + /** + * + * The custom icon for the current criterion if different from the default IconSet, else null will be returned. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + customIcon?: Excel.Icon; + /** + * + * A number or a formula depending on the type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + formula: string; + /** + * + * GreaterThan or GreaterThanOrEqual for each of the rule type for the Icon conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + operator: string; + /** + * + * What the icon conditional formula should be based on. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + type: string; + } + /** + * + * Represents an IconSet criteria for conditional formatting. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class ColorScaleConditionalFormat extends OfficeExtension.ClientObject { + /** + * + * The criteria of the color scale. Midpoint is optional when using a two point color scale. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + criteria: Excel.ConditionalColorScaleCriteria; + /** + * + * If true the color scale will have three points (minimum, midpoint, maximum), otherwise it will have two (minimum, maximum). + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly threeColorScale: boolean; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ColorScaleConditionalFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ColorScaleConditionalFormat): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.ColorScaleConditionalFormat; + toJSON(): { + "criteria": ConditionalColorScaleCriteria; + "threeColorScale": boolean; + }; + } + /** + * + * Represents the criteria of the color scale. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + interface ConditionalColorScaleCriteria { + /** + * + * The maximum point Color Scale Criterion. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + maximum: Excel.ConditionalColorScaleCriterion; + /** + * + * The midpoint Color Scale Criterion if the color scale is a 3-color scale. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + midpoint?: Excel.ConditionalColorScaleCriterion; + /** + * + * The minimum point Color Scale Criterion. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + minimum: Excel.ConditionalColorScaleCriterion; + } + /** + * + * Represents a Color Scale Criterion which contains a type, value and a color. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + interface ConditionalColorScaleCriterion { + /** + * + * HTML color code representation of the color scale color. E.g. #FF0000 represents Red. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + color?: string; + /** + * + * A number, a formula, or null (if Type is LowestValue). + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + formula?: string; + /** + * + * What the icon conditional formula should be based on. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + type: string; + } + /** + * + * Represents a Top/Bottom conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class TopBottomConditionalFormat extends OfficeExtension.ClientObject { + /** + * + * Returns a format object, encapsulating the conditional formats font, fill, borders, and other properties. Read-only. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly format: Excel.ConditionalRangeFormat; + /** + * + * The criteria of the Top/Bottom conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + rule: Excel.ConditionalTopBottomRule; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.TopBottomConditionalFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: TopBottomConditionalFormat): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.TopBottomConditionalFormat; + toJSON(): { + "format": ConditionalRangeFormat; + "rule": ConditionalTopBottomRule; + }; + } + /** + * + * Represents the rule of the top/bottom conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + interface ConditionalTopBottomRule { + /** + * + * The rank between 1 and 1000 for numeric ranks or 1 and 100 for percent ranks. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + rank: number; + /** + * + * Format values based on the top or bottom rank. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + type: string; + } + /** + * + * Represents the the preset criteria conditional format such as above average/below average/unique values/contains blank/nonblank/error/noerror. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class PresetCriteriaConditionalFormat extends OfficeExtension.ClientObject { + /** + * + * Returns a format object, encapsulating the conditional formats font, fill, borders, and other properties. Read-only. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly format: Excel.ConditionalRangeFormat; + /** + * + * The rule of the conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + rule: Excel.ConditionalPresetCriteriaRule; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.PresetCriteriaConditionalFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: PresetCriteriaConditionalFormat): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.PresetCriteriaConditionalFormat; + toJSON(): { + "format": ConditionalRangeFormat; + "rule": ConditionalPresetCriteriaRule; + }; + } + /** + * + * Represents the Preset Criteria Conditional Format Rule + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + interface ConditionalPresetCriteriaRule { + /** + * + * The criterion of the conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + criterion: string; + } + /** + * + * Represents a specific text conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class TextConditionalFormat extends OfficeExtension.ClientObject { + /** + * + * Returns a format object, encapsulating the conditional formats font, fill, borders, and other properties. Read-only. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly format: Excel.ConditionalRangeFormat; + /** + * + * The rule of the conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + rule: Excel.ConditionalTextComparisonRule; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.TextConditionalFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: TextConditionalFormat): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.TextConditionalFormat; + toJSON(): { + "format": ConditionalRangeFormat; + "rule": ConditionalTextComparisonRule; + }; + } + /** + * + * Represents a Cell Value Conditional Format Rule + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + interface ConditionalTextComparisonRule { + /** + * + * The operator of the text conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + operator: string; + /** + * + * The Text value of conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + text: string; + } + /** + * + * Represents a cell value conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class CellValueConditionalFormat extends OfficeExtension.ClientObject { + /** + * + * Returns a format object, encapsulating the conditional formats font, fill, borders, and other properties. Read-only. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly format: Excel.ConditionalRangeFormat; + /** + * + * Represents the Rule object on this conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + rule: Excel.ConditionalCellValueRule; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.CellValueConditionalFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: CellValueConditionalFormat): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.CellValueConditionalFormat; + toJSON(): { + "format": ConditionalRangeFormat; + "rule": ConditionalCellValueRule; + }; + } + /** + * + * Represents a Cell Value Conditional Format Rule + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + interface ConditionalCellValueRule { + /** + * + * The formula, if required, to evaluate the conditional format rule on. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + formula1: string; + /** + * + * The formula, if required, to evaluate the conditional format rule on. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + formula2?: string; + /** + * + * The operator of the text conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + operator: string; + } + /** + * + * A format object encapsulating the conditional formats range's font, fill, borders, and other properties. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class ConditionalRangeFormat extends OfficeExtension.ClientObject { + /** + * + * Collection of border objects that apply to the overall conditional format range. Read-only. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly borders: Excel.ConditionalRangeBorderCollection; + /** + * + * Returns the fill object defined on the overall conditional format range. Read-only. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly fill: Excel.ConditionalRangeFill; + /** + * + * Returns the font object defined on the overall conditional format range. Read-only. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly font: Excel.ConditionalRangeFont; + /** + * + * Represents Excel's number format code for the given range. Cleared if null is passed in. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + numberFormat: any; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ConditionalRangeFormatUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ConditionalRangeFormat): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.ConditionalRangeFormat; + toJSON(): { + "numberFormat": any; + }; + } + /** + * + * This object represents the font attributes (font style,, color, etc.) for an object. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class ConditionalRangeFont extends OfficeExtension.ClientObject { + /** + * + * Represents the bold status of font. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + bold: boolean; + /** + * + * HTML color code representation of the text color. E.g. #FF0000 represents Red. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + color: string; + /** + * + * Represents the italic status of the font. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + italic: boolean; + /** + * + * Represents the strikethrough status of the font. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + strikethrough: boolean; + /** + * + * Type of underline applied to the font. See Excel.ConditionalRangeFontUnderlineStyle for details. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + underline: string; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ConditionalRangeFontUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ConditionalRangeFont): void; + /** + * + * Resets the font formats. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + clear(): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.ConditionalRangeFont; + toJSON(): { + "bold": boolean; + "color": string; + "italic": boolean; + "strikethrough": boolean; + "underline": string; + }; + } + /** + * + * Represents the background of a conditional range object. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class ConditionalRangeFill extends OfficeExtension.ClientObject { + /** + * + * HTML color code representing the color of the fill, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + color: string; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ConditionalRangeFillUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ConditionalRangeFill): void; + /** + * + * Resets the fill. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + clear(): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.ConditionalRangeFill; + toJSON(): { + "color": string; + }; + } + /** + * + * Represents the border of an object. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class ConditionalRangeBorder extends OfficeExtension.ClientObject { + /** + * + * HTML color code representing the color of the border line, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + color: string; + /** + * + * Constant value that indicates the specific side of the border. See Excel.ConditionalRangeBorderIndex for details. Read-only. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly sideIndex: string; + /** + * + * One of the constants of line style specifying the line style for the border. See Excel.BorderLineStyle for details. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + style: string; + /** Sets multiple properties on the object at the same time, based on JSON input. */ + set(properties: Interfaces.ConditionalRangeBorderUpdateData, options?: { + /** + * Throw an error if the passed-in property list includes read-only properties (default = true). + */ + throwOnReadOnly?: boolean; + }): void; + /** Sets multiple properties on the object at the same time, based on an existing loaded object. */ + set(properties: ConditionalRangeBorder): void; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.ConditionalRangeBorder; + toJSON(): { + "color": string; + "sideIndex": string; + "style": string; + }; + } + /** + * + * Represents the border objects that make up range border. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + class ConditionalRangeBorderCollection extends OfficeExtension.ClientObject { + /** + * + * Gets the top border + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly bottom: Excel.ConditionalRangeBorder; + /** + * + * Gets the top border + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly left: Excel.ConditionalRangeBorder; + /** + * + * Gets the top border + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly right: Excel.ConditionalRangeBorder; + /** + * + * Gets the top border + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly top: Excel.ConditionalRangeBorder; + /** Gets the loaded child items in this collection. */ + readonly items: Array; + /** + * + * Number of border objects in the collection. Read-only. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + readonly count: number; + /** + * + * Gets a border object using its name + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + * + * @param index Index value of the border object to be retrieved. See Excel.ConditionalRangeBorderIndex for details. + */ + getItem(index: string): Excel.ConditionalRangeBorder; + /** + * + * Gets a border object using its index + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + * + * @param index Index value of the object to be retrieved. Zero-indexed. + */ + getItemAt(index: number): Excel.ConditionalRangeBorder; + /** + * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. + */ + load(option?: string | string[] | OfficeExtension.LoadOption): Excel.ConditionalRangeBorderCollection; + toJSON(): { + "count": number; + }; + } /** * [Api set: ExcelApi 1.1] */ - module BindingType { + namespace BindingType { var range: string; var table: string; var text: string; @@ -6163,7 +8385,7 @@ declare module Excel { /** * [Api set: ExcelApi 1.1] */ - module BorderIndex { + namespace BorderIndex { var edgeTop: string; var edgeBottom: string; var edgeLeft: string; @@ -6176,7 +8398,7 @@ declare module Excel { /** * [Api set: ExcelApi 1.1] */ - module BorderLineStyle { + namespace BorderLineStyle { var none: string; var continuous: string; var dash: string; @@ -6189,7 +8411,7 @@ declare module Excel { /** * [Api set: ExcelApi 1.1] */ - module BorderWeight { + namespace BorderWeight { var hairline: string; var thin: string; var medium: string; @@ -6198,7 +8420,7 @@ declare module Excel { /** * [Api set: ExcelApi 1.1] */ - module CalculationMode { + namespace CalculationMode { var automatic: string; var automaticExceptTables: string; var manual: string; @@ -6206,23 +8428,39 @@ declare module Excel { /** * [Api set: ExcelApi 1.1] */ - module CalculationType { + namespace CalculationType { + /** + * + * Recalculates all cells that Excel has marked as dirty, that is, dependents of volatile or changed data, and cells programmatically marked as dirty. + * + */ var recalculate: string; + /** + * + * This will mark all cells as dirty and then recalculate them. + * + */ var full: string; + /** + * + * This will rebuild the full dependency chain, mark all cells as dirty and then recalculate them. + * + */ var fullRebuild: string; } /** - * [Api set: ExcelApi 1.1] + * [Api set: ExcelApi 1.1 for All/Formats/Contents, 1.7 for Hyperlinks.] */ - module ClearApplyTo { + namespace ClearApplyTo { var all: string; var formats: string; var contents: string; + var hyperlinks: string; } /** * [Api set: ExcelApi 1.1] */ - module ChartDataLabelPosition { + namespace ChartDataLabelPosition { var invalid: string; var none: string; var center: string; @@ -6239,7 +8477,7 @@ declare module Excel { /** * [Api set: ExcelApi 1.1] */ - module ChartLegendPosition { + namespace ChartLegendPosition { var invalid: string; var top: string; var bottom: string; @@ -6254,7 +8492,7 @@ declare module Excel { * * [Api set: ExcelApi 1.1] */ - module ChartSeriesBy { + namespace ChartSeriesBy { /** * * On Desktop, the "auto" option will inspect the source data shape to automatically guess whether the data is by rows or columns; on Excel Online, "auto" will simply default to "columns". @@ -6267,7 +8505,7 @@ declare module Excel { /** * [Api set: ExcelApi 1.1] */ - module ChartType { + namespace ChartType { var invalid: string; var columnClustered: string; var columnStacked: string; @@ -6346,21 +8584,227 @@ declare module Excel { /** * [Api set: ExcelApi 1.1] */ - module ChartUnderlineStyle { + namespace ChartUnderlineStyle { var none: string; var single: string; } + /** + * + * Represents the format options for a Data Bar Axis. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + namespace ConditionalDataBarAxisFormat { + var automatic: string; + var none: string; + var cellMidPoint: string; + } + /** + * + * Represents the Data Bar direction within a cell. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + namespace ConditionalDataBarDirection { + var context: string; + var leftToRight: string; + var rightToLeft: string; + } + /** + * + * Represents the direction for a selection. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + namespace ConditionalFormatDirection { + var top: string; + var bottom: string; + } + /** + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + namespace ConditionalFormatType { + var custom: string; + var dataBar: string; + var colorScale: string; + var iconSet: string; + var topBottom: string; + var presetCriteria: string; + var containsText: string; + var cellValue: string; + } + /** + * + * Represents the types of conditional format values. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + namespace ConditionalFormatRuleType { + var invalid: string; + var automatic: string; + var lowestValue: string; + var highestValue: string; + var number: string; + var percent: string; + var formula: string; + var percentile: string; + } + /** + * + * Represents the types of conditional format values. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + namespace ConditionalFormatIconRuleType { + var invalid: string; + var number: string; + var percent: string; + var formula: string; + var percentile: string; + } + /** + * + * Represents the types of conditional format values. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + namespace ConditionalFormatColorCriterionType { + var invalid: string; + var lowestValue: string; + var highestValue: string; + var number: string; + var percent: string; + var formula: string; + var percentile: string; + } + /** + * + * Represents the criteria for the above/below average conditional format type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + namespace ConditionalTopBottomCriterionType { + var invalid: string; + var topItems: string; + var topPercent: string; + var bottomItems: string; + var bottomPercent: string; + } + /** + * + * Represents the criteria for the Preset Criteria conditional format type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + namespace ConditionalFormatPresetCriterion { + var invalid: string; + var blanks: string; + var nonBlanks: string; + var errors: string; + var nonErrors: string; + var yesterday: string; + var today: string; + var tomorrow: string; + var lastSevenDays: string; + var lastWeek: string; + var thisWeek: string; + var nextWeek: string; + var lastMonth: string; + var thisMonth: string; + var nextMonth: string; + var aboveAverage: string; + var belowAverage: string; + var equalOrAboveAverage: string; + var equalOrBelowAverage: string; + var oneStdDevAboveAverage: string; + var oneStdDevBelowAverage: string; + var twoStdDevAboveAverage: string; + var twoStdDevBelowAverage: string; + var threeStdDevAboveAverage: string; + var threeStdDevBelowAverage: string; + var uniqueValues: string; + var duplicateValues: string; + } + /** + * + * Represents the operator of the text conditional format type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + namespace ConditionalTextOperator { + var invalid: string; + var contains: string; + var notContains: string; + var beginsWith: string; + var endsWith: string; + } + /** + * + * Represents the operator of the text conditional format type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + namespace ConditionalCellValueOperator { + var invalid: string; + var between: string; + var notBetween: string; + var equalTo: string; + var notEqualTo: string; + var greaterThan: string; + var lessThan: string; + var greaterThanOrEqual: string; + var lessThanOrEqual: string; + } + /** + * + * Represents the operator for each icon criteria. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + namespace ConditionalIconCriterionOperator { + var invalid: string; + var greaterThan: string; + var greaterThanOrEqual: string; + } + /** + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + namespace ConditionalRangeBorderIndex { + var edgeTop: string; + var edgeBottom: string; + var edgeLeft: string; + var edgeRight: string; + } + /** + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + namespace ConditionalRangeBorderLineStyle { + var none: string; + var continuous: string; + var dash: string; + var dashDot: string; + var dashDotDot: string; + var dot: string; + } + /** + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + namespace ConditionalRangeFontUnderlineStyle { + var none: string; + var single: string; + var double: string; + } /** * [Api set: ExcelApi 1.1] */ - module DeleteShiftDirection { + namespace DeleteShiftDirection { var up: string; var left: string; } /** * [Api set: ExcelApi 1.2] */ - module DynamicFilterCriteria { + namespace DynamicFilterCriteria { var unknown: string; var aboveAverage: string; var allDatesInPeriodApril: string; @@ -6400,7 +8844,7 @@ declare module Excel { /** * [Api set: ExcelApi 1.2] */ - module FilterDatetimeSpecificity { + namespace FilterDatetimeSpecificity { var year: string; var month: string; var day: string; @@ -6411,7 +8855,7 @@ declare module Excel { /** * [Api set: ExcelApi 1.2] */ - module FilterOn { + namespace FilterOn { var bottomItems: string; var bottomPercent: string; var cellColor: string; @@ -6426,14 +8870,14 @@ declare module Excel { /** * [Api set: ExcelApi 1.2] */ - module FilterOperator { + namespace FilterOperator { var and: string; var or: string; } /** * [Api set: ExcelApi 1.1] */ - module HorizontalAlignment { + namespace HorizontalAlignment { var general: string; var left: string; var center: string; @@ -6446,7 +8890,7 @@ declare module Excel { /** * [Api set: ExcelApi 1.2] */ - module IconSet { + namespace IconSet { var invalid: string; var threeArrows: string; var threeArrowsGray: string; @@ -6472,7 +8916,7 @@ declare module Excel { /** * [Api set: ExcelApi 1.2] */ - module ImageFittingMode { + namespace ImageFittingMode { var fit: string; var fitAndCenter: string; var fill: string; @@ -6480,14 +8924,21 @@ declare module Excel { /** * [Api set: ExcelApi 1.1] */ - module InsertShiftDirection { + namespace InsertShiftDirection { var down: string; var right: string; } + /** + * [Api set: ExcelApi 1.4] + */ + namespace NamedItemScope { + var worksheet: string; + var workbook: string; + } /** * [Api set: ExcelApi 1.1] */ - module NamedItemType { + namespace NamedItemType { var string: string; var integer: string; var double: string; @@ -6498,7 +8949,7 @@ declare module Excel { /** * [Api set: ExcelApi 1.1] */ - module RangeUnderlineStyle { + namespace RangeUnderlineStyle { var none: string; var single: string; var double: string; @@ -6508,7 +8959,7 @@ declare module Excel { /** * [Api set: ExcelApi 1.1] */ - module SheetVisibility { + namespace SheetVisibility { var visible: string; var hidden: string; var veryHidden: string; @@ -6516,7 +8967,7 @@ declare module Excel { /** * [Api set: ExcelApi 1.1] */ - module RangeValueType { + namespace RangeValueType { var unknown: string; var empty: string; var string: string; @@ -6528,14 +8979,14 @@ declare module Excel { /** * [Api set: ExcelApi 1.2] */ - module SortOrientation { + namespace SortOrientation { var rows: string; var columns: string; } /** * [Api set: ExcelApi 1.2] */ - module SortOn { + namespace SortOn { var value: string; var cellColor: string; var fontColor: string; @@ -6544,21 +8995,21 @@ declare module Excel { /** * [Api set: ExcelApi 1.2] */ - module SortDataOption { + namespace SortDataOption { var normal: string; var textAsNumber: string; } /** * [Api set: ExcelApi 1.2] */ - module SortMethod { + namespace SortMethod { var pinYin: string; var strokeCount: string; } /** * [Api set: ExcelApi 1.1] */ - module VerticalAlignment { + namespace VerticalAlignment { var top: string; var center: string; var bottom: string; @@ -6578,14 +9029,14 @@ declare module Excel { * * [Api set: ExcelApi 1.2] */ - error: string; + readonly error: string; /** * * The value of function evaluation. The value field will be populated only if no error has occurred (i.e., the Error property is not set). * * [Api set: ExcelApi 1.2] */ - value: T; + readonly value: T; /** * Queues up a command to load the specified properties of the object. You must call "context.sync()" before reading the properties. */ @@ -6606,15 +9057,17 @@ declare module Excel { * * Returns the absolute value of a number, a number without its sign. * - * @param number Is the real number for which you want the absolute value. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the real number for which you want the absolute value. */ abs(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the accrued interest for a security that pays periodic interest. * + * [Api set: ExcelApi 1.2] + * * @param issue Is the security's issue date, expressed as a serial date number. * @param firstInterest Is the security's first interest date, expressed as a serial date number. * @param settlement Is the security's settlement date, expressed as a serial date number. @@ -6623,63 +9076,63 @@ declare module Excel { * @param frequency Is the number of coupon payments per year. * @param basis Is the type of day count basis to use. * @param calcMethod Is a logical value: to accrued interest from issue date = TRUE or omitted; to calculate from last coupon payment date = FALSE. - * - * [Api set: ExcelApi 1.2] */ accrInt(issue: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, firstInterest: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, rate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, par: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, frequency: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, calcMethod?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the accrued interest for a security that pays interest at maturity. * + * [Api set: ExcelApi 1.2] + * * @param issue Is the security's issue date, expressed as a serial date number. * @param settlement Is the security's maturity date, expressed as a serial date number. * @param rate Is the security's annual coupon rate. * @param par Is the security's par value. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ accrIntM(issue: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, rate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, par: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the arccosine of a number, in radians in the range 0 to Pi. The arccosine is the angle whose cosine is Number. * - * @param number Is the cosine of the angle you want and must be from -1 to 1. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the cosine of the angle you want and must be from -1 to 1. */ acos(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the inverse hyperbolic cosine of a number. * - * @param number Is any real number equal to or greater than 1. - * * [Api set: ExcelApi 1.2] + * + * @param number Is any real number equal to or greater than 1. */ acosh(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the arccotangent of a number, in radians in the range 0 to Pi. * - * @param number Is the cotangent of the angle you want. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the cotangent of the angle you want. */ acot(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the inverse hyperbolic cotangent of a number. * - * @param number Is the hyperbolic cotangent of the angle that you want. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the hyperbolic cotangent of the angle that you want. */ acoth(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the prorated linear depreciation of an asset for each accounting period. * + * [Api set: ExcelApi 1.2] + * * @param cost Is the cost of the asset. * @param datePurchased Is the date the asset is purchased. * @param firstPeriod Is the date of the end of the first period. @@ -6687,14 +9140,14 @@ declare module Excel { * @param period Is the period. * @param rate Is the rate of depreciation. * @param basis Year_basis : 0 for year of 360 days, 1 for actual, 3 for year of 365 days. - * - * [Api set: ExcelApi 1.2] */ amorDegrc(cost: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, datePurchased: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, firstPeriod: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, salvage: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, period: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, rate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the prorated linear depreciation of an asset for each accounting period. * + * [Api set: ExcelApi 1.2] + * * @param cost Is the cost of the asset. * @param datePurchased Is the date the asset is purchased. * @param firstPeriod Is the date of the end of the first period. @@ -6702,1260 +9155,1258 @@ declare module Excel { * @param period Is the period. * @param rate Is the rate of depreciation. * @param basis Year_basis : 0 for year of 360 days, 1 for actual, 3 for year of 365 days. - * - * [Api set: ExcelApi 1.2] */ amorLinc(cost: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, datePurchased: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, firstPeriod: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, salvage: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, period: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, rate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Checks whether all arguments are TRUE, and returns TRUE if all arguments are TRUE. * - * @param values List of parameters, whose elements are 1 to 255 conditions you want to test that can be either TRUE or FALSE and can be logical values, arrays, or references. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 conditions you want to test that can be either TRUE or FALSE and can be logical values, arrays, or references. */ and(...values: Array>): FunctionResult; /** * * Converts a Roman numeral to Arabic. * - * @param text Is the Roman numeral you want to convert. - * * [Api set: ExcelApi 1.2] + * + * @param text Is the Roman numeral you want to convert. */ arabic(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of areas in a reference. An area is a range of contiguous cells or a single cell. * - * @param reference Is a reference to a cell or range of cells and can refer to multiple areas. - * * [Api set: ExcelApi 1.2] + * + * @param reference Is a reference to a cell or range of cells and can refer to multiple areas. */ areas(reference: Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Changes full-width (double-byte) characters to half-width (single-byte) characters. Use with double-byte character sets (DBCS). * - * @param text Is a text, or a reference to a cell containing a text. - * * [Api set: ExcelApi 1.2] + * + * @param text Is a text, or a reference to a cell containing a text. */ asc(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the arcsine of a number in radians, in the range -Pi/2 to Pi/2. * - * @param number Is the sine of the angle you want and must be from -1 to 1. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the sine of the angle you want and must be from -1 to 1. */ asin(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the inverse hyperbolic sine of a number. * - * @param number Is any real number equal to or greater than 1. - * * [Api set: ExcelApi 1.2] + * + * @param number Is any real number equal to or greater than 1. */ asinh(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the arctangent of a number in radians, in the range -Pi/2 to Pi/2. * - * @param number Is the tangent of the angle you want. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the tangent of the angle you want. */ atan(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the arctangent of the specified x- and y- coordinates, in radians between -Pi and Pi, excluding -Pi. * + * [Api set: ExcelApi 1.2] + * * @param xNum Is the x-coordinate of the point. * @param yNum Is the y-coordinate of the point. - * - * [Api set: ExcelApi 1.2] */ atan2(xNum: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, yNum: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the inverse hyperbolic tangent of a number. * - * @param number Is any real number between -1 and 1 excluding -1 and 1. - * * [Api set: ExcelApi 1.2] + * + * @param number Is any real number between -1 and 1 excluding -1 and 1. */ atanh(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the average of the absolute deviations of data points from their mean. Arguments can be numbers or names, arrays, or references that contain numbers. * - * @param values List of parameters, whose elements are 1 to 255 arguments for which you want the average of the absolute deviations. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 arguments for which you want the average of the absolute deviations. */ aveDev(...values: Array>): FunctionResult; /** * * Returns the average (arithmetic mean) of its arguments, which can be numbers or names, arrays, or references that contain numbers. * - * @param values List of parameters, whose elements are 1 to 255 numeric arguments for which you want the average. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numeric arguments for which you want the average. */ average(...values: Array>): FunctionResult; /** * * Returns the average (arithmetic mean) of its arguments, evaluating text and FALSE in arguments as 0; TRUE evaluates as 1. Arguments can be numbers, names, arrays, or references. * - * @param values List of parameters, whose elements are 1 to 255 arguments for which you want the average. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 arguments for which you want the average. */ averageA(...values: Array>): FunctionResult; /** * * Finds average(arithmetic mean) for the cells specified by a given condition or criteria. * + * [Api set: ExcelApi 1.2] + * * @param range Is the range of cells you want evaluated. * @param criteria Is the condition or criteria in the form of a number, expression, or text that defines which cells will be used to find the average. * @param averageRange Are the actual cells to be used to find the average. If omitted, the cells in range are used. - * - * [Api set: ExcelApi 1.2] */ averageIf(range: Excel.Range | Excel.RangeReference | Excel.FunctionResult, criteria: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, averageRange?: Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Finds average(arithmetic mean) for the cells specified by a given set of conditions or criteria. * + * [Api set: ExcelApi 1.2] + * * @param averageRange Are the actual cells to be used to find the average. * @param values List of parameters, where the first element of each pair is the Is the range of cells you want evaluated for the particular condition , and the second element is is the condition or criteria in the form of a number, expression, or text that defines which cells will be used to find the average. - * - * [Api set: ExcelApi 1.2] */ averageIfs(averageRange: Excel.Range | Excel.RangeReference | Excel.FunctionResult, ...values: Array | number | string | boolean>): FunctionResult; /** * * Converts a number to text (baht). * - * @param number Is a number that you want to convert. - * * [Api set: ExcelApi 1.2] + * + * @param number Is a number that you want to convert. */ bahtText(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a number into a text representation with the given radix (base). * + * [Api set: ExcelApi 1.2] + * * @param number Is the number that you want to convert. * @param radix Is the base Radix that you want to convert the number into. * @param minLength Is the minimum length of the returned string. If omitted leading zeros are not added. - * - * [Api set: ExcelApi 1.2] */ base(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, radix: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, minLength?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the modified Bessel function In(x). * + * [Api set: ExcelApi 1.2] + * * @param x Is the value at which to evaluate the function. * @param n Is the order of the Bessel function. - * - * [Api set: ExcelApi 1.2] */ besselI(x: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, n: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the Bessel function Jn(x). * + * [Api set: ExcelApi 1.2] + * * @param x Is the value at which to evaluate the function. * @param n Is the order of the Bessel function. - * - * [Api set: ExcelApi 1.2] */ besselJ(x: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, n: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the modified Bessel function Kn(x). * + * [Api set: ExcelApi 1.2] + * * @param x Is the value at which to evaluate the function. * @param n Is the order of the function. - * - * [Api set: ExcelApi 1.2] */ besselK(x: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, n: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the Bessel function Yn(x). * + * [Api set: ExcelApi 1.2] + * * @param x Is the value at which to evaluate the function. * @param n Is the order of the function. - * - * [Api set: ExcelApi 1.2] */ besselY(x: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, n: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the beta probability distribution function. * + * [Api set: ExcelApi 1.2] + * * @param x Is the value between A and B at which to evaluate the function. * @param alpha Is a parameter to the distribution and must be greater than 0. * @param beta Is a parameter to the distribution and must be greater than 0. * @param cumulative Is a logical value: for the cumulative distribution function, use TRUE; for the probability density function, use FALSE. * @param A Is an optional lower bound to the interval of x. If omitted, A = 0. * @param B Is an optional upper bound to the interval of x. If omitted, B = 1. - * - * [Api set: ExcelApi 1.2] */ beta_Dist(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, alpha: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, beta: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, cumulative: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, A?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, B?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the inverse of the cumulative beta probability density function (BETA.DIST). * + * [Api set: ExcelApi 1.2] + * * @param probability Is a probability associated with the beta distribution. * @param alpha Is a parameter to the distribution and must be greater than 0. * @param beta Is a parameter to the distribution and must be greater than 0. * @param A Is an optional lower bound to the interval of x. If omitted, A = 0. * @param B Is an optional upper bound to the interval of x. If omitted, B = 1. - * - * [Api set: ExcelApi 1.2] */ beta_Inv(probability: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, alpha: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, beta: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, A?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, B?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a binary number to decimal. * - * @param number Is the binary number you want to convert. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the binary number you want to convert. */ bin2Dec(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a binary number to hexadecimal. * + * [Api set: ExcelApi 1.2] + * * @param number Is the binary number you want to convert. * @param places Is the number of characters to use. - * - * [Api set: ExcelApi 1.2] */ bin2Hex(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, places?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a binary number to octal. * + * [Api set: ExcelApi 1.2] + * * @param number Is the binary number you want to convert. * @param places Is the number of characters to use. - * - * [Api set: ExcelApi 1.2] */ bin2Oct(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, places?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the individual term binomial distribution probability. * + * [Api set: ExcelApi 1.2] + * * @param numberS Is the number of successes in trials. * @param trials Is the number of independent trials. * @param probabilityS Is the probability of success on each trial. * @param cumulative Is a logical value: for the cumulative distribution function, use TRUE; for the probability mass function, use FALSE. - * - * [Api set: ExcelApi 1.2] */ binom_Dist(numberS: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, trials: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, probabilityS: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, cumulative: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the probability of a trial result using a binomial distribution. * + * [Api set: ExcelApi 1.2] + * * @param trials Is the number of independent trials. * @param probabilityS Is the probability of success on each trial. * @param numberS Is the number of successes in trials. * @param numberS2 If provided this function returns the probability that the number of successful trials shall lie between numberS and numberS2. - * - * [Api set: ExcelApi 1.2] */ binom_Dist_Range(trials: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, probabilityS: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numberS: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numberS2?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the smallest value for which the cumulative binomial distribution is greater than or equal to a criterion value. * + * [Api set: ExcelApi 1.2] + * * @param trials Is the number of Bernoulli trials. * @param probabilityS Is the probability of success on each trial, a number between 0 and 1 inclusive. * @param alpha Is the criterion value, a number between 0 and 1 inclusive. - * - * [Api set: ExcelApi 1.2] */ binom_Inv(trials: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, probabilityS: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, alpha: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns a bitwise 'And' of two numbers. * + * [Api set: ExcelApi 1.2] + * * @param number1 Is the decimal representation of the binary number you want to evaluate. * @param number2 Is the decimal representation of the binary number you want to evaluate. - * - * [Api set: ExcelApi 1.2] */ bitand(number1: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, number2: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns a number shifted left by shift_amount bits. * + * [Api set: ExcelApi 1.2] + * * @param number Is the decimal representation of the binary number you want to evaluate. * @param shiftAmount Is the number of bits that you want to shift Number left by. - * - * [Api set: ExcelApi 1.2] */ bitlshift(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, shiftAmount: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns a bitwise 'Or' of two numbers. * + * [Api set: ExcelApi 1.2] + * * @param number1 Is the decimal representation of the binary number you want to evaluate. * @param number2 Is the decimal representation of the binary number you want to evaluate. - * - * [Api set: ExcelApi 1.2] */ bitor(number1: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, number2: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns a number shifted right by shift_amount bits. * + * [Api set: ExcelApi 1.2] + * * @param number Is the decimal representation of the binary number you want to evaluate. * @param shiftAmount Is the number of bits that you want to shift Number right by. - * - * [Api set: ExcelApi 1.2] */ bitrshift(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, shiftAmount: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns a bitwise 'Exclusive Or' of two numbers. * + * [Api set: ExcelApi 1.2] + * * @param number1 Is the decimal representation of the binary number you want to evaluate. * @param number2 Is the decimal representation of the binary number you want to evaluate. - * - * [Api set: ExcelApi 1.2] */ bitxor(number1: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, number2: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Rounds a number up, to the nearest integer or to the nearest multiple of significance. * + * [Api set: ExcelApi 1.2] + * * @param number Is the value you want to round. * @param significance Is the multiple to which you want to round. * @param mode When given and nonzero this function will round away from zero. - * - * [Api set: ExcelApi 1.2] */ ceiling_Math(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, significance?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, mode?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Rounds a number up, to the nearest integer or to the nearest multiple of significance. * + * [Api set: ExcelApi 1.2] + * * @param number Is the value you want to round. * @param significance Is the multiple to which you want to round. - * - * [Api set: ExcelApi 1.2] */ ceiling_Precise(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, significance?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the character specified by the code number from the character set for your computer. * - * @param number Is a number between 1 and 255 specifying which character you want. - * * [Api set: ExcelApi 1.2] + * + * @param number Is a number between 1 and 255 specifying which character you want. */ char(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the left-tailed probability of the chi-squared distribution. * + * [Api set: ExcelApi 1.2] + * * @param x Is the value at which you want to evaluate the distribution, a nonnegative number. * @param degFreedom Is the number of degrees of freedom, a number between 1 and 10^10, excluding 10^10. * @param cumulative Is a logical value for the function to return: the cumulative distribution function = TRUE; the probability density function = FALSE. - * - * [Api set: ExcelApi 1.2] */ chiSq_Dist(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, cumulative: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the right-tailed probability of the chi-squared distribution. * + * [Api set: ExcelApi 1.2] + * * @param x Is the value at which you want to evaluate the distribution, a nonnegative number. * @param degFreedom Is the number of degrees of freedom, a number between 1 and 10^10, excluding 10^10. - * - * [Api set: ExcelApi 1.2] */ chiSq_Dist_RT(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the inverse of the left-tailed probability of the chi-squared distribution. * + * [Api set: ExcelApi 1.2] + * * @param probability Is a probability associated with the chi-squared distribution, a value between 0 and 1 inclusive. * @param degFreedom Is the number of degrees of freedom, a number between 1 and 10^10, excluding 10^10. - * - * [Api set: ExcelApi 1.2] */ chiSq_Inv(probability: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the inverse of the right-tailed probability of the chi-squared distribution. * + * [Api set: ExcelApi 1.2] + * * @param probability Is a probability associated with the chi-squared distribution, a value between 0 and 1 inclusive. * @param degFreedom Is the number of degrees of freedom, a number between 1 and 10^10, excluding 10^10. - * - * [Api set: ExcelApi 1.2] */ chiSq_Inv_RT(probability: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Chooses a value or action to perform from a list of values, based on an index number. * + * [Api set: ExcelApi 1.2] + * * @param indexNum Specifies which value argument is selected. indexNum must be between 1 and 254, or a formula or a reference to a number between 1 and 254. * @param values List of parameters, whose elements are 1 to 254 numbers, cell references, defined names, formulas, functions, or text arguments from which CHOOSE selects. - * - * [Api set: ExcelApi 1.2] */ choose(indexNum: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, ...values: Array>): FunctionResult; /** * * Removes all nonprintable characters from text. * - * @param text Is any worksheet information from which you want to remove nonprintable characters. - * * [Api set: ExcelApi 1.2] + * + * @param text Is any worksheet information from which you want to remove nonprintable characters. */ clean(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns a numeric code for the first character in a text string, in the character set used by your computer. * - * @param text Is the text for which you want the code of the first character. - * * [Api set: ExcelApi 1.2] + * + * @param text Is the text for which you want the code of the first character. */ code(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of columns in an array or reference. * - * @param array Is an array or array formula, or a reference to a range of cells for which you want the number of columns. - * * [Api set: ExcelApi 1.2] + * + * @param array Is an array or array formula, or a reference to a range of cells for which you want the number of columns. */ columns(array: Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of combinations for a given number of items. * + * [Api set: ExcelApi 1.2] + * * @param number Is the total number of items. * @param numberChosen Is the number of items in each combination. - * - * [Api set: ExcelApi 1.2] */ combin(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numberChosen: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of combinations with repetitions for a given number of items. * + * [Api set: ExcelApi 1.2] + * * @param number Is the total number of items. * @param numberChosen Is the number of items in each combination. - * - * [Api set: ExcelApi 1.2] */ combina(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numberChosen: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts real and imaginary coefficients into a complex number. * + * [Api set: ExcelApi 1.2] + * * @param realNum Is the real coefficient of the complex number. * @param iNum Is the imaginary coefficient of the complex number. * @param suffix Is the suffix for the imaginary component of the complex number. - * - * [Api set: ExcelApi 1.2] */ complex(realNum: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, iNum: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, suffix?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Joins several text strings into one text string. * - * @param values List of parameters, whose elements are 1 to 255 text strings to be joined into a single text string and can be text strings, numbers, or single-cell references. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 text strings to be joined into a single text string and can be text strings, numbers, or single-cell references. */ concatenate(...values: Array>): FunctionResult; /** * * Returns the confidence interval for a population mean, using a normal distribution. * + * [Api set: ExcelApi 1.2] + * * @param alpha Is the significance level used to compute the confidence level, a number greater than 0 and less than 1. * @param standardDev Is the population standard deviation for the data range and is assumed to be known. standardDev must be greater than 0. * @param size Is the sample size. - * - * [Api set: ExcelApi 1.2] */ confidence_Norm(alpha: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, standardDev: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, size: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the confidence interval for a population mean, using a Student's T distribution. * + * [Api set: ExcelApi 1.2] + * * @param alpha Is the significance level used to compute the confidence level, a number greater than 0 and less than 1. * @param standardDev Is the population standard deviation for the data range and is assumed to be known. standardDev must be greater than 0. * @param size Is the sample size. - * - * [Api set: ExcelApi 1.2] */ confidence_T(alpha: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, standardDev: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, size: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a number from one measurement system to another. * + * [Api set: ExcelApi 1.2] + * * @param number Is the value in from_units to convert. * @param fromUnit Is the units for number. * @param toUnit Is the units for the result. - * - * [Api set: ExcelApi 1.2] */ convert(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, fromUnit: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, toUnit: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the cosine of an angle. * - * @param number Is the angle in radians for which you want the cosine. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the angle in radians for which you want the cosine. */ cos(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the hyperbolic cosine of a number. * - * @param number Is any real number. - * * [Api set: ExcelApi 1.2] + * + * @param number Is any real number. */ cosh(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the cotangent of an angle. * - * @param number Is the angle in radians for which you want the cotangent. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the angle in radians for which you want the cotangent. */ cot(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the hyperbolic cotangent of a number. * - * @param number Is the angle in radians for which you want the hyperbolic cotangent. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the angle in radians for which you want the hyperbolic cotangent. */ coth(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Counts the number of cells in a range that contain numbers. * - * @param values List of parameters, whose elements are 1 to 255 arguments that can contain or refer to a variety of different types of data, but only numbers are counted. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 arguments that can contain or refer to a variety of different types of data, but only numbers are counted. */ count(...values: Array>): FunctionResult; /** * * Counts the number of cells in a range that are not empty. * - * @param values List of parameters, whose elements are 1 to 255 arguments representing the values and cells you want to count. Values can be any type of information. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 arguments representing the values and cells you want to count. Values can be any type of information. */ countA(...values: Array>): FunctionResult; /** * * Counts the number of empty cells in a specified range of cells. * - * @param range Is the range from which you want to count the empty cells. - * * [Api set: ExcelApi 1.2] + * + * @param range Is the range from which you want to count the empty cells. */ countBlank(range: Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Counts the number of cells within a range that meet the given condition. * + * [Api set: ExcelApi 1.2] + * * @param range Is the range of cells from which you want to count nonblank cells. * @param criteria Is the condition in the form of a number, expression, or text that defines which cells will be counted. - * - * [Api set: ExcelApi 1.2] */ countIf(range: Excel.Range | Excel.RangeReference | Excel.FunctionResult, criteria: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Counts the number of cells specified by a given set of conditions or criteria. * - * @param values List of parameters, where the first element of each pair is the Is the range of cells you want evaluated for the particular condition , and the second element is is the condition in the form of a number, expression, or text that defines which cells will be counted. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, where the first element of each pair is the Is the range of cells you want evaluated for the particular condition , and the second element is is the condition in the form of a number, expression, or text that defines which cells will be counted. */ countIfs(...values: Array | number | string | boolean>): FunctionResult; /** * * Returns the number of days from the beginning of the coupon period to the settlement date. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param frequency Is the number of coupon payments per year. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ coupDayBs(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, frequency: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of days in the coupon period that contains the settlement date. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param frequency Is the number of coupon payments per year. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ coupDays(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, frequency: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of days from the settlement date to the next coupon date. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param frequency Is the number of coupon payments per year. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ coupDaysNc(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, frequency: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the next coupon date after the settlement date. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param frequency Is the number of coupon payments per year. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ coupNcd(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, frequency: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of coupons payable between the settlement date and maturity date. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param frequency Is the number of coupon payments per year. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ coupNum(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, frequency: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the previous coupon date before the settlement date. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param frequency Is the number of coupon payments per year. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ coupPcd(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, frequency: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the cosecant of an angle. * - * @param number Is the angle in radians for which you want the cosecant. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the angle in radians for which you want the cosecant. */ csc(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the hyperbolic cosecant of an angle. * - * @param number Is the angle in radians for which you want the hyperbolic cosecant. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the angle in radians for which you want the hyperbolic cosecant. */ csch(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the cumulative interest paid between two periods. * + * [Api set: ExcelApi 1.2] + * * @param rate Is the interest rate. * @param nper Is the total number of payment periods. * @param pv Is the present value. * @param startPeriod Is the first period in the calculation. * @param endPeriod Is the last period in the calculation. * @param type Is the timing of the payment. - * - * [Api set: ExcelApi 1.2] */ cumIPmt(rate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, nper: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pv: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, startPeriod: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, endPeriod: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, type: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the cumulative principal paid on a loan between two periods. * + * [Api set: ExcelApi 1.2] + * * @param rate Is the interest rate. * @param nper Is the total number of payment periods. * @param pv Is the present value. * @param startPeriod Is the first period in the calculation. * @param endPeriod Is the last period in the calculation. * @param type Is the timing of the payment. - * - * [Api set: ExcelApi 1.2] */ cumPrinc(rate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, nper: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pv: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, startPeriod: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, endPeriod: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, type: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Averages the values in a column in a list or database that match conditions you specify. * + * [Api set: ExcelApi 1.2] + * * @param database Is the range of cells that makes up the list or database. A database is a list of related data. * @param field Is either the label of the column in double quotation marks or a number that represents the column's position in the list. * @param criteria Is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition. - * - * [Api set: ExcelApi 1.2] */ daverage(database: Excel.Range | Excel.RangeReference | Excel.FunctionResult, field: number | string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, criteria: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Counts the cells containing numbers in the field (column) of records in the database that match the conditions you specify. * + * [Api set: ExcelApi 1.2] + * * @param database Is the range of cells that makes up the list or database. A database is a list of related data. * @param field Is either the label of the column in double quotation marks or a number that represents the column's position in the list. * @param criteria Is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition. - * - * [Api set: ExcelApi 1.2] */ dcount(database: Excel.Range | Excel.RangeReference | Excel.FunctionResult, field: number | string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, criteria: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Counts nonblank cells in the field (column) of records in the database that match the conditions you specify. * + * [Api set: ExcelApi 1.2] + * * @param database Is the range of cells that makes up the list or database. A database is a list of related data. * @param field Is either the label of the column in double quotation marks or a number that represents the column's position in the list. * @param criteria Is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition. - * - * [Api set: ExcelApi 1.2] */ dcountA(database: Excel.Range | Excel.RangeReference | Excel.FunctionResult, field: number | string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, criteria: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Extracts from a database a single record that matches the conditions you specify. * + * [Api set: ExcelApi 1.2] + * * @param database Is the range of cells that makes up the list or database. A database is a list of related data. * @param field Is either the label of the column in double quotation marks or a number that represents the column's position in the list. * @param criteria Is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition. - * - * [Api set: ExcelApi 1.2] */ dget(database: Excel.Range | Excel.RangeReference | Excel.FunctionResult, field: number | string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, criteria: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the largest number in the field (column) of records in the database that match the conditions you specify. * + * [Api set: ExcelApi 1.2] + * * @param database Is the range of cells that makes up the list or database. A database is a list of related data. * @param field Is either the label of the column in double quotation marks or a number that represents the column's position in the list. * @param criteria Is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition. - * - * [Api set: ExcelApi 1.2] */ dmax(database: Excel.Range | Excel.RangeReference | Excel.FunctionResult, field: number | string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, criteria: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the smallest number in the field (column) of records in the database that match the conditions you specify. * + * [Api set: ExcelApi 1.2] + * * @param database Is the range of cells that makes up the list or database. A database is a list of related data. * @param field Is either the label of the column in double quotation marks or a number that represents the column's position in the list. * @param criteria Is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition. - * - * [Api set: ExcelApi 1.2] */ dmin(database: Excel.Range | Excel.RangeReference | Excel.FunctionResult, field: number | string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, criteria: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Multiplies the values in the field (column) of records in the database that match the conditions you specify. * + * [Api set: ExcelApi 1.2] + * * @param database Is the range of cells that makes up the list or database. A database is a list of related data. * @param field Is either the label of the column in double quotation marks or a number that represents the column's position in the list. * @param criteria Is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition. - * - * [Api set: ExcelApi 1.2] */ dproduct(database: Excel.Range | Excel.RangeReference | Excel.FunctionResult, field: number | string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, criteria: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Estimates the standard deviation based on a sample from selected database entries. * + * [Api set: ExcelApi 1.2] + * * @param database Is the range of cells that makes up the list or database. A database is a list of related data. * @param field Is either the label of the column in double quotation marks or a number that represents the column's position in the list. * @param criteria Is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition. - * - * [Api set: ExcelApi 1.2] */ dstDev(database: Excel.Range | Excel.RangeReference | Excel.FunctionResult, field: number | string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, criteria: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Calculates the standard deviation based on the entire population of selected database entries. * + * [Api set: ExcelApi 1.2] + * * @param database Is the range of cells that makes up the list or database. A database is a list of related data. * @param field Is either the label of the column in double quotation marks or a number that represents the column's position in the list. * @param criteria Is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition. - * - * [Api set: ExcelApi 1.2] */ dstDevP(database: Excel.Range | Excel.RangeReference | Excel.FunctionResult, field: number | string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, criteria: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Adds the numbers in the field (column) of records in the database that match the conditions you specify. * + * [Api set: ExcelApi 1.2] + * * @param database Is the range of cells that makes up the list or database. A database is a list of related data. * @param field Is either the label of the column in double quotation marks or a number that represents the column's position in the list. * @param criteria Is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition. - * - * [Api set: ExcelApi 1.2] */ dsum(database: Excel.Range | Excel.RangeReference | Excel.FunctionResult, field: number | string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, criteria: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Estimates variance based on a sample from selected database entries. * + * [Api set: ExcelApi 1.2] + * * @param database Is the range of cells that makes up the list or database. A database is a list of related data. * @param field Is either the label of the column in double quotation marks or a number that represents the column's position in the list. * @param criteria Is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition. - * - * [Api set: ExcelApi 1.2] */ dvar(database: Excel.Range | Excel.RangeReference | Excel.FunctionResult, field: number | string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, criteria: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Calculates variance based on the entire population of selected database entries. * + * [Api set: ExcelApi 1.2] + * * @param database Is the range of cells that makes up the list or database. A database is a list of related data. * @param field Is either the label of the column in double quotation marks or a number that represents the column's position in the list. * @param criteria Is the range of cells that contains the conditions you specify. The range includes a column label and one cell below the label for a condition. - * - * [Api set: ExcelApi 1.2] */ dvarP(database: Excel.Range | Excel.RangeReference | Excel.FunctionResult, field: number | string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, criteria: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number that represents the date in Microsoft Excel date-time code. * + * [Api set: ExcelApi 1.2] + * * @param year Is a number from 1900 or 1904 (depending on the workbook's date system) to 9999. * @param month Is a number from 1 to 12 representing the month of the year. * @param day Is a number from 1 to 31 representing the day of the month. - * - * [Api set: ExcelApi 1.2] */ date(year: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, month: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, day: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a date in the form of text to a number that represents the date in Microsoft Excel date-time code. * - * @param dateText Is text that represents a date in a Microsoft Excel date format, between 1/1/1900 or 1/1/1904 (depending on the workbook's date system) and 12/31/9999. - * * [Api set: ExcelApi 1.2] + * + * @param dateText Is text that represents a date in a Microsoft Excel date format, between 1/1/1900 or 1/1/1904 (depending on the workbook's date system) and 12/31/9999. */ datevalue(dateText: string | number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the day of the month, a number from 1 to 31. * - * @param serialNumber Is a number in the date-time code used by Microsoft Excel. - * * [Api set: ExcelApi 1.2] + * + * @param serialNumber Is a number in the date-time code used by Microsoft Excel. */ day(serialNumber: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of days between the two dates. * + * [Api set: ExcelApi 1.2] + * * @param endDate startDate and endDate are the two dates between which you want to know the number of days. * @param startDate startDate and endDate are the two dates between which you want to know the number of days. - * - * [Api set: ExcelApi 1.2] */ days(endDate: string | number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, startDate: string | number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of days between two dates based on a 360-day year (twelve 30-day months). * + * [Api set: ExcelApi 1.2] + * * @param startDate startDate and endDate are the two dates between which you want to know the number of days. * @param endDate startDate and endDate are the two dates between which you want to know the number of days. * @param method Is a logical value specifying the calculation method: U.S. (NASD) = FALSE or omitted; European = TRUE. - * - * [Api set: ExcelApi 1.2] */ days360(startDate: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, endDate: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, method?: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the depreciation of an asset for a specified period using the fixed-declining balance method. * + * [Api set: ExcelApi 1.2] + * * @param cost Is the initial cost of the asset. * @param salvage Is the salvage value at the end of the life of the asset. * @param life Is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset). * @param period Is the period for which you want to calculate the depreciation. Period must use the same units as Life. * @param month Is the number of months in the first year. If month is omitted, it is assumed to be 12. - * - * [Api set: ExcelApi 1.2] */ db(cost: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, salvage: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, life: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, period: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, month?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Changes half-width (single-byte) characters within a character string to full-width (double-byte) characters. Use with double-byte character sets (DBCS). * - * @param text Is a text, or a reference to a cell containing a text. - * * [Api set: ExcelApi 1.2] + * + * @param text Is a text, or a reference to a cell containing a text. */ dbcs(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the depreciation of an asset for a specified period using the double-declining balance method or some other method you specify. * + * [Api set: ExcelApi 1.2] + * * @param cost Is the initial cost of the asset. * @param salvage Is the salvage value at the end of the life of the asset. * @param life Is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset). * @param period Is the period for which you want to calculate the depreciation. Period must use the same units as Life. * @param factor Is the rate at which the balance declines. If Factor is omitted, it is assumed to be 2 (the double-declining balance method). - * - * [Api set: ExcelApi 1.2] */ ddb(cost: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, salvage: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, life: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, period: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, factor?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a decimal number to binary. * + * [Api set: ExcelApi 1.2] + * * @param number Is the decimal integer you want to convert. * @param places Is the number of characters to use. - * - * [Api set: ExcelApi 1.2] */ dec2Bin(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, places?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a decimal number to hexadecimal. * + * [Api set: ExcelApi 1.2] + * * @param number Is the decimal integer you want to convert. * @param places Is the number of characters to use. - * - * [Api set: ExcelApi 1.2] */ dec2Hex(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, places?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a decimal number to octal. * + * [Api set: ExcelApi 1.2] + * * @param number Is the decimal integer you want to convert. * @param places Is the number of characters to use. - * - * [Api set: ExcelApi 1.2] */ dec2Oct(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, places?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a text representation of a number in a given base into a decimal number. * + * [Api set: ExcelApi 1.2] + * * @param number Is the number that you want to convert. * @param radix Is the base Radix of the number you are converting. - * - * [Api set: ExcelApi 1.2] */ decimal(number: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, radix: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts radians to degrees. * - * @param angle Is the angle in radians that you want to convert. - * * [Api set: ExcelApi 1.2] + * + * @param angle Is the angle in radians that you want to convert. */ degrees(angle: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Tests whether two numbers are equal. * + * [Api set: ExcelApi 1.2] + * * @param number1 Is the first number. * @param number2 Is the second number. - * - * [Api set: ExcelApi 1.2] */ delta(number1: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, number2?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the sum of squares of deviations of data points from their sample mean. * - * @param values List of parameters, whose elements are 1 to 255 arguments, or an array or array reference, on which you want DEVSQ to calculate. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 arguments, or an array or array reference, on which you want DEVSQ to calculate. */ devSq(...values: Array>): FunctionResult; /** * * Returns the discount rate for a security. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param pr Is the security's price per $100 face value. * @param redemption Is the security's redemption value per $100 face value. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ disc(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pr: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, redemption: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a number to text, using currency format. * + * [Api set: ExcelApi 1.2] + * * @param number Is a number, a reference to a cell containing a number, or a formula that evaluates to a number. * @param decimals Is the number of digits to the right of the decimal point. The number is rounded as necessary; if omitted, Decimals = 2. - * - * [Api set: ExcelApi 1.2] */ dollar(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, decimals?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a dollar price, expressed as a fraction, into a dollar price, expressed as a decimal number. * + * [Api set: ExcelApi 1.2] + * * @param fractionalDollar Is a number expressed as a fraction. * @param fraction Is the integer to use in the denominator of the fraction. - * - * [Api set: ExcelApi 1.2] */ dollarDe(fractionalDollar: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, fraction: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a dollar price, expressed as a decimal number, into a dollar price, expressed as a fraction. * + * [Api set: ExcelApi 1.2] + * * @param decimalDollar Is a decimal number. * @param fraction Is the integer to use in the denominator of a fraction. - * - * [Api set: ExcelApi 1.2] */ dollarFr(decimalDollar: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, fraction: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the annual duration of a security with periodic interest payments. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param coupon Is the security's annual coupon rate. * @param yld Is the security's annual yield. * @param frequency Is the number of coupon payments per year. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ duration(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, coupon: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, yld: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, frequency: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Rounds a number up, to the nearest integer or to the nearest multiple of significance. * + * [Api set: ExcelApi 1.2] + * * @param number Is the value you want to round. * @param significance Is the multiple to which you want to round. - * - * [Api set: ExcelApi 1.2] */ ecma_Ceiling(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, significance: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the serial number of the date that is the indicated number of months before or after the start date. * + * [Api set: ExcelApi 1.2] + * * @param startDate Is a serial date number that represents the start date. * @param months Is the number of months before or after startDate. - * - * [Api set: ExcelApi 1.2] */ edate(startDate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, months: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the effective annual interest rate. * + * [Api set: ExcelApi 1.2] + * * @param nominalRate Is the nominal interest rate. * @param npery Is the number of compounding periods per year. - * - * [Api set: ExcelApi 1.2] */ effect(nominalRate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, npery: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the serial number of the last day of the month before or after a specified number of months. * + * [Api set: ExcelApi 1.2] + * * @param startDate Is a serial date number that represents the start date. * @param months Is the number of months before or after the startDate. - * - * [Api set: ExcelApi 1.2] */ eoMonth(startDate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, months: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the error function. * + * [Api set: ExcelApi 1.2] + * * @param lowerLimit Is the lower bound for integrating ERF. * @param upperLimit Is the upper bound for integrating ERF. - * - * [Api set: ExcelApi 1.2] */ erf(lowerLimit: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, upperLimit?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the complementary error function. * - * @param x Is the lower bound for integrating ERF. - * * [Api set: ExcelApi 1.2] + * + * @param x Is the lower bound for integrating ERF. */ erfC(x: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the complementary error function. * - * @param X Is the lower bound for integrating ERFC.PRECISE. - * * [Api set: ExcelApi 1.2] + * + * @param X Is the lower bound for integrating ERFC.PRECISE. */ erfC_Precise(X: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the error function. * - * @param X Is the lower bound for integrating ERF.PRECISE. - * * [Api set: ExcelApi 1.2] + * + * @param X Is the lower bound for integrating ERF.PRECISE. */ erf_Precise(X: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns a number matching an error value. * - * @param errorVal Is the error value for which you want the identifying number, and can be an actual error value or a reference to a cell containing an error value. - * * [Api set: ExcelApi 1.2] + * + * @param errorVal Is the error value for which you want the identifying number, and can be an actual error value or a reference to a cell containing an error value. */ error_Type(errorVal: string | number | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Rounds a positive number up and negative number down to the nearest even integer. * - * @param number Is the value to round. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the value to round. */ even(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Checks whether two text strings are exactly the same, and returns TRUE or FALSE. EXACT is case-sensitive. * + * [Api set: ExcelApi 1.2] + * * @param text1 Is the first text string. * @param text2 Is the second text string. - * - * [Api set: ExcelApi 1.2] */ exact(text1: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, text2: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns e raised to the power of a given number. * - * @param number Is the exponent applied to the base e. The constant e equals 2.71828182845904, the base of the natural logarithm. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the exponent applied to the base e. The constant e equals 2.71828182845904, the base of the natural logarithm. */ exp(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the exponential distribution. * + * [Api set: ExcelApi 1.2] + * * @param x Is the value of the function, a nonnegative number. * @param lambda Is the parameter value, a positive number. * @param cumulative Is a logical value for the function to return: the cumulative distribution function = TRUE; the probability density function = FALSE. - * - * [Api set: ExcelApi 1.2] */ expon_Dist(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, lambda: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, cumulative: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the future value of an initial principal after applying a series of compound interest rates. * + * [Api set: ExcelApi 1.2] + * * @param principal Is the present value. * @param schedule Is an array of interest rates to apply. - * - * [Api set: ExcelApi 1.2] */ fvschedule(principal: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, schedule: number | string | Excel.Range | boolean | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the (left-tailed) F probability distribution (degree of diversity) for two data sets. * + * [Api set: ExcelApi 1.2] + * * @param x Is the value at which to evaluate the function, a nonnegative number. * @param degFreedom1 Is the numerator degrees of freedom, a number between 1 and 10^10, excluding 10^10. * @param degFreedom2 Is the denominator degrees of freedom, a number between 1 and 10^10, excluding 10^10. * @param cumulative Is a logical value for the function to return: the cumulative distribution function = TRUE; the probability density function = FALSE. - * - * [Api set: ExcelApi 1.2] */ f_Dist(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom1: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom2: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, cumulative: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the (right-tailed) F probability distribution (degree of diversity) for two data sets. * + * [Api set: ExcelApi 1.2] + * * @param x Is the value at which to evaluate the function, a nonnegative number. * @param degFreedom1 Is the numerator degrees of freedom, a number between 1 and 10^10, excluding 10^10. * @param degFreedom2 Is the denominator degrees of freedom, a number between 1 and 10^10, excluding 10^10. - * - * [Api set: ExcelApi 1.2] */ f_Dist_RT(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom1: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom2: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the inverse of the (left-tailed) F probability distribution: if p = F.DIST(x,...), then F.INV(p,...) = x. * + * [Api set: ExcelApi 1.2] + * * @param probability Is a probability associated with the F cumulative distribution, a number between 0 and 1 inclusive. * @param degFreedom1 Is the numerator degrees of freedom, a number between 1 and 10^10, excluding 10^10. * @param degFreedom2 Is the denominator degrees of freedom, a number between 1 and 10^10, excluding 10^10. - * - * [Api set: ExcelApi 1.2] */ f_Inv(probability: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom1: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom2: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the inverse of the (right-tailed) F probability distribution: if p = F.DIST.RT(x,...), then F.INV.RT(p,...) = x. * + * [Api set: ExcelApi 1.2] + * * @param probability Is a probability associated with the F cumulative distribution, a number between 0 and 1 inclusive. * @param degFreedom1 Is the numerator degrees of freedom, a number between 1 and 10^10, excluding 10^10. * @param degFreedom2 Is the denominator degrees of freedom, a number between 1 and 10^10, excluding 10^10. - * - * [Api set: ExcelApi 1.2] */ f_Inv_RT(probability: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom1: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom2: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the factorial of a number, equal to 1*2*3*...* Number. * - * @param number Is the nonnegative number you want the factorial of. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the nonnegative number you want the factorial of. */ fact(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the double factorial of a number. * - * @param number Is the value for which to return the double factorial. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the value for which to return the double factorial. */ factDouble(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** @@ -7969,978 +10420,978 @@ declare module Excel { * * Returns the starting position of one text string within another text string. FIND is case-sensitive. * + * [Api set: ExcelApi 1.2] + * * @param findText Is the text you want to find. Use double quotes (empty text) to match the first character in withinText; wildcard characters not allowed. * @param withinText Is the text containing the text you want to find. * @param startNum Specifies the character at which to start the search. The first character in withinText is character number 1. If omitted, startNum = 1. - * - * [Api set: ExcelApi 1.2] */ find(findText: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, withinText: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, startNum?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Finds the starting position of one text string within another text string. FINDB is case-sensitive. Use with double-byte character sets (DBCS). * + * [Api set: ExcelApi 1.2] + * * @param findText Is the text you want to find. * @param withinText Is the text containing the text you want to find. * @param startNum Specifies the character at which to start the search. - * - * [Api set: ExcelApi 1.2] */ findB(findText: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, withinText: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, startNum?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the Fisher transformation. * - * @param x Is the value for which you want the transformation, a number between -1 and 1, excluding -1 and 1. - * * [Api set: ExcelApi 1.2] + * + * @param x Is the value for which you want the transformation, a number between -1 and 1, excluding -1 and 1. */ fisher(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the inverse of the Fisher transformation: if y = FISHER(x), then FISHERINV(y) = x. * - * @param y Is the value for which you want to perform the inverse of the transformation. - * * [Api set: ExcelApi 1.2] + * + * @param y Is the value for which you want to perform the inverse of the transformation. */ fisherInv(y: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Rounds a number to the specified number of decimals and returns the result as text with or without commas. * + * [Api set: ExcelApi 1.2] + * * @param number Is the number you want to round and convert to text. * @param decimals Is the number of digits to the right of the decimal point. If omitted, Decimals = 2. * @param noCommas Is a logical value: do not display commas in the returned text = TRUE; do display commas in the returned text = FALSE or omitted. - * - * [Api set: ExcelApi 1.2] */ fixed(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, decimals?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, noCommas?: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Rounds a number down, to the nearest integer or to the nearest multiple of significance. * + * [Api set: ExcelApi 1.2] + * * @param number Is the value you want to round. * @param significance Is the multiple to which you want to round. * @param mode When given and nonzero this function will round towards zero. - * - * [Api set: ExcelApi 1.2] */ floor_Math(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, significance?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, mode?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Rounds a number down, to the nearest integer or to the nearest multiple of significance. * + * [Api set: ExcelApi 1.2] + * * @param number Is the numeric value you want to round. * @param significance Is the multiple to which you want to round. - * - * [Api set: ExcelApi 1.2] */ floor_Precise(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, significance?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the future value of an investment based on periodic, constant payments and a constant interest rate. * + * [Api set: ExcelApi 1.2] + * * @param rate Is the interest rate per period. For example, use 6%/4 for quarterly payments at 6% APR. * @param nper Is the total number of payment periods in the investment. * @param pmt Is the payment made each period; it cannot change over the life of the investment. * @param pv Is the present value, or the lump-sum amount that a series of future payments is worth now. If omitted, Pv = 0. * @param type Is a value representing the timing of payment: payment at the beginning of the period = 1; payment at the end of the period = 0 or omitted. - * - * [Api set: ExcelApi 1.2] */ fv(rate: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, nper: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pmt: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pv?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, type?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the Gamma function value. * - * @param x Is the value for which you want to calculate Gamma. - * * [Api set: ExcelApi 1.2] + * + * @param x Is the value for which you want to calculate Gamma. */ gamma(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the natural logarithm of the gamma function. * - * @param x Is the value for which you want to calculate GAMMALN, a positive number. - * * [Api set: ExcelApi 1.2] + * + * @param x Is the value for which you want to calculate GAMMALN, a positive number. */ gammaLn(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the natural logarithm of the gamma function. * - * @param x Is the value for which you want to calculate GAMMALN.PRECISE, a positive number. - * * [Api set: ExcelApi 1.2] + * + * @param x Is the value for which you want to calculate GAMMALN.PRECISE, a positive number. */ gammaLn_Precise(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the gamma distribution. * + * [Api set: ExcelApi 1.2] + * * @param x Is the value at which you want to evaluate the distribution, a nonnegative number. * @param alpha Is a parameter to the distribution, a positive number. * @param beta Is a parameter to the distribution, a positive number. If beta = 1, GAMMA.DIST returns the standard gamma distribution. * @param cumulative Is a logical value: return the cumulative distribution function = TRUE; return the probability mass function = FALSE or omitted. - * - * [Api set: ExcelApi 1.2] */ gamma_Dist(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, alpha: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, beta: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, cumulative: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the inverse of the gamma cumulative distribution: if p = GAMMA.DIST(x,...), then GAMMA.INV(p,...) = x. * + * [Api set: ExcelApi 1.2] + * * @param probability Is the probability associated with the gamma distribution, a number between 0 and 1, inclusive. * @param alpha Is a parameter to the distribution, a positive number. * @param beta Is a parameter to the distribution, a positive number. If beta = 1, GAMMA.INV returns the inverse of the standard gamma distribution. - * - * [Api set: ExcelApi 1.2] */ gamma_Inv(probability: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, alpha: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, beta: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns 0.5 less than the standard normal cumulative distribution. * - * @param x Is the value for which you want the distribution. - * * [Api set: ExcelApi 1.2] + * + * @param x Is the value for which you want the distribution. */ gauss(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the greatest common divisor. * - * @param values List of parameters, whose elements are 1 to 255 values. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 values. */ gcd(...values: Array>): FunctionResult; /** * * Tests whether a number is greater than a threshold value. * + * [Api set: ExcelApi 1.2] + * * @param number Is the value to test against step. * @param step Is the threshold value. - * - * [Api set: ExcelApi 1.2] */ geStep(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, step?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the geometric mean of an array or range of positive numeric data. * - * @param values List of parameters, whose elements are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the mean. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the mean. */ geoMean(...values: Array>): FunctionResult; /** * * Looks for a value in the top row of a table or array of values and returns the value in the same column from a row you specify. * + * [Api set: ExcelApi 1.2] + * * @param lookupValue Is the value to be found in the first row of the table and can be a value, a reference, or a text string. * @param tableArray Is a table of text, numbers, or logical values in which data is looked up. tableArray can be a reference to a range or a range name. * @param rowIndexNum Is the row number in tableArray from which the matching value should be returned. The first row of values in the table is row 1. * @param rangeLookup Is a logical value: to find the closest match in the top row (sorted in ascending order) = TRUE or omitted; find an exact match = FALSE. - * - * [Api set: ExcelApi 1.2] */ hlookup(lookupValue: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, tableArray: Excel.Range | number | Excel.RangeReference | Excel.FunctionResult, rowIndexNum: Excel.Range | number | Excel.RangeReference | Excel.FunctionResult, rangeLookup?: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the harmonic mean of a data set of positive numbers: the reciprocal of the arithmetic mean of reciprocals. * - * @param values List of parameters, whose elements are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the harmonic mean. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the harmonic mean. */ harMean(...values: Array>): FunctionResult; /** * * Converts a Hexadecimal number to binary. * + * [Api set: ExcelApi 1.2] + * * @param number Is the hexadecimal number you want to convert. * @param places Is the number of characters to use. - * - * [Api set: ExcelApi 1.2] */ hex2Bin(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, places?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a hexadecimal number to decimal. * - * @param number Is the hexadecimal number you want to convert. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the hexadecimal number you want to convert. */ hex2Dec(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a hexadecimal number to octal. * + * [Api set: ExcelApi 1.2] + * * @param number Is the hexadecimal number you want to convert. * @param places Is the number of characters to use. - * - * [Api set: ExcelApi 1.2] */ hex2Oct(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, places?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the hour as a number from 0 (12:00 A.M.) to 23 (11:00 P.M.). * - * @param serialNumber Is a number in the date-time code used by Microsoft Excel, or text in time format, such as 16:48:00 or 4:48:00 PM. - * * [Api set: ExcelApi 1.2] + * + * @param serialNumber Is a number in the date-time code used by Microsoft Excel, or text in time format, such as 16:48:00 or 4:48:00 PM. */ hour(serialNumber: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the hypergeometric distribution. * + * [Api set: ExcelApi 1.2] + * * @param sampleS Is the number of successes in the sample. * @param numberSample Is the size of the sample. * @param populationS Is the number of successes in the population. * @param numberPop Is the population size. * @param cumulative Is a logical value: for the cumulative distribution function, use TRUE; for the probability density function, use FALSE. - * - * [Api set: ExcelApi 1.2] */ hypGeom_Dist(sampleS: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numberSample: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, populationS: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numberPop: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, cumulative: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Creates a shortcut or jump that opens a document stored on your hard drive, a network server, or on the Internet. * + * [Api set: ExcelApi 1.2] + * * @param linkLocation Is the text giving the path and file name to the document to be opened, a hard drive location, UNC address, or URL path. * @param friendlyName Is text or a number that is displayed in the cell. If omitted, the cell displays the linkLocation text. - * - * [Api set: ExcelApi 1.2] */ hyperlink(linkLocation: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, friendlyName?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Rounds a number up, to the nearest integer or to the nearest multiple of significance. * + * [Api set: ExcelApi 1.2] + * * @param number Is the value you want to round. * @param significance Is the optional multiple to which you want to round. - * - * [Api set: ExcelApi 1.2] */ iso_Ceiling(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, significance?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Checks whether a condition is met, and returns one value if TRUE, and another value if FALSE. * + * [Api set: ExcelApi 1.2] + * * @param logicalTest Is any value or expression that can be evaluated to TRUE or FALSE. * @param valueIfTrue Is the value that is returned if logicalTest is TRUE. If omitted, TRUE is returned. You can nest up to seven IF functions. * @param valueIfFalse Is the value that is returned if logicalTest is FALSE. If omitted, FALSE is returned. - * - * [Api set: ExcelApi 1.2] */ if(logicalTest: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, valueIfTrue?: Excel.Range | number | string | boolean | Excel.RangeReference | Excel.FunctionResult, valueIfFalse?: Excel.Range | number | string | boolean | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the absolute value (modulus) of a complex number. * - * @param inumber Is a complex number for which you want the absolute value. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the absolute value. */ imAbs(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the argument q, an angle expressed in radians. * - * @param inumber Is a complex number for which you want the argument. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the argument. */ imArgument(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the complex conjugate of a complex number. * - * @param inumber Is a complex number for which you want the conjugate. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the conjugate. */ imConjugate(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the cosine of a complex number. * - * @param inumber Is a complex number for which you want the cosine. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the cosine. */ imCos(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the hyperbolic cosine of a complex number. * - * @param inumber Is a complex number for which you want the hyperbolic cosine. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the hyperbolic cosine. */ imCosh(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the cotangent of a complex number. * - * @param inumber Is a complex number for which you want the cotangent. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the cotangent. */ imCot(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the cosecant of a complex number. * - * @param inumber Is a complex number for which you want the cosecant. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the cosecant. */ imCsc(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the hyperbolic cosecant of a complex number. * - * @param inumber Is a complex number for which you want the hyperbolic cosecant. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the hyperbolic cosecant. */ imCsch(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the quotient of two complex numbers. * + * [Api set: ExcelApi 1.2] + * * @param inumber1 Is the complex numerator or dividend. * @param inumber2 Is the complex denominator or divisor. - * - * [Api set: ExcelApi 1.2] */ imDiv(inumber1: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, inumber2: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the exponential of a complex number. * - * @param inumber Is a complex number for which you want the exponential. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the exponential. */ imExp(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the natural logarithm of a complex number. * - * @param inumber Is a complex number for which you want the natural logarithm. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the natural logarithm. */ imLn(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the base-10 logarithm of a complex number. * - * @param inumber Is a complex number for which you want the common logarithm. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the common logarithm. */ imLog10(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the base-2 logarithm of a complex number. * - * @param inumber Is a complex number for which you want the base-2 logarithm. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the base-2 logarithm. */ imLog2(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns a complex number raised to an integer power. * + * [Api set: ExcelApi 1.2] + * * @param inumber Is a complex number you want to raise to a power. * @param number Is the power to which you want to raise the complex number. - * - * [Api set: ExcelApi 1.2] */ imPower(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the product of 1 to 255 complex numbers. * - * @param values Inumber1, Inumber2,... are from 1 to 255 complex numbers to multiply. - * * [Api set: ExcelApi 1.2] + * + * @param values Inumber1, Inumber2,... are from 1 to 255 complex numbers to multiply. */ imProduct(...values: Array>): FunctionResult; /** * * Returns the real coefficient of a complex number. * - * @param inumber Is a complex number for which you want the real coefficient. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the real coefficient. */ imReal(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the secant of a complex number. * - * @param inumber Is a complex number for which you want the secant. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the secant. */ imSec(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the hyperbolic secant of a complex number. * - * @param inumber Is a complex number for which you want the hyperbolic secant. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the hyperbolic secant. */ imSech(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the sine of a complex number. * - * @param inumber Is a complex number for which you want the sine. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the sine. */ imSin(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the hyperbolic sine of a complex number. * - * @param inumber Is a complex number for which you want the hyperbolic sine. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the hyperbolic sine. */ imSinh(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the square root of a complex number. * - * @param inumber Is a complex number for which you want the square root. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the square root. */ imSqrt(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the difference of two complex numbers. * + * [Api set: ExcelApi 1.2] + * * @param inumber1 Is the complex number from which to subtract inumber2. * @param inumber2 Is the complex number to subtract from inumber1. - * - * [Api set: ExcelApi 1.2] */ imSub(inumber1: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, inumber2: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the sum of complex numbers. * - * @param values List of parameters, whose elements are from 1 to 255 complex numbers to add. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are from 1 to 255 complex numbers to add. */ imSum(...values: Array>): FunctionResult; /** * * Returns the tangent of a complex number. * - * @param inumber Is a complex number for which you want the tangent. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the tangent. */ imTan(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the imaginary coefficient of a complex number. * - * @param inumber Is a complex number for which you want the imaginary coefficient. - * * [Api set: ExcelApi 1.2] + * + * @param inumber Is a complex number for which you want the imaginary coefficient. */ imaginary(inumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Rounds a number down to the nearest integer. * - * @param number Is the real number you want to round down to an integer. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the real number you want to round down to an integer. */ int(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the interest rate for a fully invested security. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param investment Is the amount invested in the security. * @param redemption Is the amount to be received at maturity. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ intRate(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, investment: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, redemption: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the interest payment for a given period for an investment, based on periodic, constant payments and a constant interest rate. * + * [Api set: ExcelApi 1.2] + * * @param rate Is the interest rate per period. For example, use 6%/4 for quarterly payments at 6% APR. * @param per Is the period for which you want to find the interest and must be in the range 1 to Nper. * @param nper Is the total number of payment periods in an investment. * @param pv Is the present value, or the lump-sum amount that a series of future payments is worth now. * @param fv Is the future value, or a cash balance you want to attain after the last payment is made. If omitted, Fv = 0. * @param type Is a logical value representing the timing of payment: at the end of the period = 0 or omitted, at the beginning of the period = 1. - * - * [Api set: ExcelApi 1.2] */ ipmt(rate: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, per: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, nper: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pv: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, fv?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, type?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the internal rate of return for a series of cash flows. * + * [Api set: ExcelApi 1.2] + * * @param values Is an array or a reference to cells that contain numbers for which you want to calculate the internal rate of return. * @param guess Is a number that you guess is close to the result of IRR; 0.1 (10 percent) if omitted. - * - * [Api set: ExcelApi 1.2] */ irr(values: Excel.Range | Excel.RangeReference | Excel.FunctionResult, guess?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Checks whether a value is an error (#VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, or #NULL!) excluding #N/A, and returns TRUE or FALSE. * - * @param value Is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value. - * * [Api set: ExcelApi 1.2] + * + * @param value Is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value. */ isErr(value: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Checks whether a value is an error (#N/A, #VALUE!, #REF!, #DIV/0!, #NUM!, #NAME?, or #NULL!), and returns TRUE or FALSE. * - * @param value Is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value. - * * [Api set: ExcelApi 1.2] + * + * @param value Is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value. */ isError(value: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns TRUE if the number is even. * - * @param number Is the value to test. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the value to test. */ isEven(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Checks whether a reference is to a cell containing a formula, and returns TRUE or FALSE. * - * @param reference Is a reference to the cell you want to test. Reference can be a cell reference, a formula, or name that refers to a cell. - * * [Api set: ExcelApi 1.2] + * + * @param reference Is a reference to the cell you want to test. Reference can be a cell reference, a formula, or name that refers to a cell. */ isFormula(reference: Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Checks whether a value is a logical value (TRUE or FALSE), and returns TRUE or FALSE. * - * @param value Is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value. - * * [Api set: ExcelApi 1.2] + * + * @param value Is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value. */ isLogical(value: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Checks whether a value is #N/A, and returns TRUE or FALSE. * - * @param value Is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value. - * * [Api set: ExcelApi 1.2] + * + * @param value Is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value. */ isNA(value: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Checks whether a value is not text (blank cells are not text), and returns TRUE or FALSE. * - * @param value Is the value you want tested: a cell; a formula; or a name referring to a cell, formula, or value. - * * [Api set: ExcelApi 1.2] + * + * @param value Is the value you want tested: a cell; a formula; or a name referring to a cell, formula, or value. */ isNonText(value: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Checks whether a value is a number, and returns TRUE or FALSE. * - * @param value Is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value. - * * [Api set: ExcelApi 1.2] + * + * @param value Is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value. */ isNumber(value: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns TRUE if the number is odd. * - * @param number Is the value to test. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the value to test. */ isOdd(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Checks whether a value is text, and returns TRUE or FALSE. * - * @param value Is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value. - * * [Api set: ExcelApi 1.2] + * + * @param value Is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value. */ isText(value: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the ISO week number in the year for a given date. * - * @param date Is the date-time code used by Microsoft Excel for date and time calculation. - * * [Api set: ExcelApi 1.2] + * + * @param date Is the date-time code used by Microsoft Excel for date and time calculation. */ isoWeekNum(date: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the interest paid during a specific period of an investment. * + * [Api set: ExcelApi 1.2] + * * @param rate Interest rate per period. For example, use 6%/4 for quarterly payments at 6% APR. * @param per Period for which you want to find the interest. * @param nper Number of payment periods in an investment. * @param pv Lump sum amount that a series of future payments is right now. - * - * [Api set: ExcelApi 1.2] */ ispmt(rate: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, per: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, nper: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pv: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Checks whether a value is a reference, and returns TRUE or FALSE. * - * @param value Is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value. - * * [Api set: ExcelApi 1.2] + * + * @param value Is the value you want to test. Value can refer to a cell, a formula, or a name that refers to a cell, formula, or value. */ isref(value: Excel.Range | number | string | boolean | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the kurtosis of a data set. * - * @param values List of parameters, whose elements are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the kurtosis. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the kurtosis. */ kurt(...values: Array>): FunctionResult; /** * * Returns the k-th largest value in a data set. For example, the fifth largest number. * + * [Api set: ExcelApi 1.2] + * * @param array Is the array or range of data for which you want to determine the k-th largest value. * @param k Is the position (from the largest) in the array or cell range of the value to return. - * - * [Api set: ExcelApi 1.2] */ large(array: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, k: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the least common multiple. * - * @param values List of parameters, whose elements are 1 to 255 values for which you want the least common multiple. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 values for which you want the least common multiple. */ lcm(...values: Array>): FunctionResult; /** * * Returns the specified number of characters from the start of a text string. * + * [Api set: ExcelApi 1.2] + * * @param text Is the text string containing the characters you want to extract. * @param numChars Specifies how many characters you want LEFT to extract; 1 if omitted. - * - * [Api set: ExcelApi 1.2] */ left(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numChars?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the specified number of characters from the start of a text string. Use with double-byte character sets (DBCS). * + * [Api set: ExcelApi 1.2] + * * @param text Is the text string containing the characters you want to extract. * @param numBytes Specifies how many characters you want LEFT to return. - * - * [Api set: ExcelApi 1.2] */ leftb(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numBytes?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of characters in a text string. * - * @param text Is the text whose length you want to find. Spaces count as characters. - * * [Api set: ExcelApi 1.2] + * + * @param text Is the text whose length you want to find. Spaces count as characters. */ len(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of characters in a text string. Use with double-byte character sets (DBCS). * - * @param text Is the text whose length you want to find. - * * [Api set: ExcelApi 1.2] + * + * @param text Is the text whose length you want to find. */ lenb(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the natural logarithm of a number. * - * @param number Is the positive real number for which you want the natural logarithm. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the positive real number for which you want the natural logarithm. */ ln(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the logarithm of a number to the base you specify. * + * [Api set: ExcelApi 1.2] + * * @param number Is the positive real number for which you want the logarithm. * @param base Is the base of the logarithm; 10 if omitted. - * - * [Api set: ExcelApi 1.2] */ log(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, base?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the base-10 logarithm of a number. * - * @param number Is the positive real number for which you want the base-10 logarithm. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the positive real number for which you want the base-10 logarithm. */ log10(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the lognormal distribution of x, where ln(x) is normally distributed with parameters Mean and Standard_dev. * + * [Api set: ExcelApi 1.2] + * * @param x Is the value at which to evaluate the function, a positive number. * @param mean Is the mean of ln(x). * @param standardDev Is the standard deviation of ln(x), a positive number. * @param cumulative Is a logical value: for the cumulative distribution function, use TRUE; for the probability density function, use FALSE. - * - * [Api set: ExcelApi 1.2] */ logNorm_Dist(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, mean: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, standardDev: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, cumulative: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the inverse of the lognormal cumulative distribution function of x, where ln(x) is normally distributed with parameters Mean and Standard_dev. * + * [Api set: ExcelApi 1.2] + * * @param probability Is a probability associated with the lognormal distribution, a number between 0 and 1, inclusive. * @param mean Is the mean of ln(x). * @param standardDev Is the standard deviation of ln(x), a positive number. - * - * [Api set: ExcelApi 1.2] */ logNorm_Inv(probability: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, mean: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, standardDev: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Looks up a value either from a one-row or one-column range or from an array. Provided for backward compatibility. * + * [Api set: ExcelApi 1.2] + * * @param lookupValue Is a value that LOOKUP searches for in lookupVector and can be a number, text, a logical value, or a name or reference to a value. * @param lookupVector Is a range that contains only one row or one column of text, numbers, or logical values, placed in ascending order. * @param resultVector Is a range that contains only one row or column, the same size as lookupVector. - * - * [Api set: ExcelApi 1.2] */ lookup(lookupValue: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, lookupVector: Excel.Range | Excel.RangeReference | Excel.FunctionResult, resultVector?: Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts all letters in a text string to lowercase. * - * @param text Is the text you want to convert to lowercase. Characters in Text that are not letters are not changed. - * * [Api set: ExcelApi 1.2] + * + * @param text Is the text you want to convert to lowercase. Characters in Text that are not letters are not changed. */ lower(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the Macauley modified duration for a security with an assumed par value of $100. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param coupon Is the security's annual coupon rate. * @param yld Is the security's annual yield. * @param frequency Is the number of coupon payments per year. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ mduration(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, coupon: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, yld: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, frequency: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the internal rate of return for a series of periodic cash flows, considering both cost of investment and interest on reinvestment of cash. * + * [Api set: ExcelApi 1.2] + * * @param values Is an array or a reference to cells that contain numbers that represent a series of payments (negative) and income (positive) at regular periods. * @param financeRate Is the interest rate you pay on the money used in the cash flows. * @param reinvestRate Is the interest rate you receive on the cash flows as you reinvest them. - * - * [Api set: ExcelApi 1.2] */ mirr(values: Excel.Range | Excel.RangeReference | Excel.FunctionResult, financeRate: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, reinvestRate: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns a number rounded to the desired multiple. * + * [Api set: ExcelApi 1.2] + * * @param number Is the value to round. * @param multiple Is the multiple to which you want to round number. - * - * [Api set: ExcelApi 1.2] */ mround(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, multiple: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the relative position of an item in an array that matches a specified value in a specified order. * + * [Api set: ExcelApi 1.2] + * * @param lookupValue Is the value you use to find the value you want in the array, a number, text, or logical value, or a reference to one of these. * @param lookupArray Is a contiguous range of cells containing possible lookup values, an array of values, or a reference to an array. * @param matchType Is a number 1, 0, or -1 indicating which value to return. - * - * [Api set: ExcelApi 1.2] */ match(lookupValue: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, lookupArray: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, matchType?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the largest value in a set of values. Ignores logical values and text. * - * @param values List of parameters, whose elements are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the maximum. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the maximum. */ max(...values: Array>): FunctionResult; /** * * Returns the largest value in a set of values. Does not ignore logical values and text. * - * @param values List of parameters, whose elements are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the maximum. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the maximum. */ maxA(...values: Array>): FunctionResult; /** * * Returns the median, or the number in the middle of the set of given numbers. * - * @param values List of parameters, whose elements are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the median. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the median. */ median(...values: Array>): FunctionResult; /** * * Returns the characters from the middle of a text string, given a starting position and length. * + * [Api set: ExcelApi 1.2] + * * @param text Is the text string from which you want to extract the characters. * @param startNum Is the position of the first character you want to extract. The first character in Text is 1. * @param numChars Specifies how many characters to return from Text. - * - * [Api set: ExcelApi 1.2] */ mid(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, startNum: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numChars: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns characters from the middle of a text string, given a starting position and length. Use with double-byte character sets (DBCS). * + * [Api set: ExcelApi 1.2] + * * @param text Is the text string containing the characters you want to extract. * @param startNum Is the position of the first character you want to extract in text. * @param numBytes Specifies how many characters to return from text. - * - * [Api set: ExcelApi 1.2] */ midb(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, startNum: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numBytes: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the smallest number in a set of values. Ignores logical values and text. * - * @param values List of parameters, whose elements are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the minimum. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the minimum. */ min(...values: Array>): FunctionResult; /** * * Returns the smallest value in a set of values. Does not ignore logical values and text. * - * @param values List of parameters, whose elements are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the minimum. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numbers, empty cells, logical values, or text numbers for which you want the minimum. */ minA(...values: Array>): FunctionResult; /** * * Returns the minute, a number from 0 to 59. * - * @param serialNumber Is a number in the date-time code used by Microsoft Excel or text in time format, such as 16:48:00 or 4:48:00 PM. - * * [Api set: ExcelApi 1.2] + * + * @param serialNumber Is a number in the date-time code used by Microsoft Excel or text in time format, such as 16:48:00 or 4:48:00 PM. */ minute(serialNumber: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the remainder after a number is divided by a divisor. * + * [Api set: ExcelApi 1.2] + * * @param number Is the number for which you want to find the remainder after the division is performed. * @param divisor Is the number by which you want to divide Number. - * - * [Api set: ExcelApi 1.2] */ mod(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, divisor: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the month, a number from 1 (January) to 12 (December). * - * @param serialNumber Is a number in the date-time code used by Microsoft Excel. - * * [Api set: ExcelApi 1.2] + * + * @param serialNumber Is a number in the date-time code used by Microsoft Excel. */ month(serialNumber: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the multinomial of a set of numbers. * - * @param values List of parameters, whose elements are 1 to 255 values for which you want the multinomial. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 values for which you want the multinomial. */ multiNomial(...values: Array>): FunctionResult; /** * * Converts non-number value to a number, dates to serial numbers, TRUE to 1, anything else to 0 (zero). * - * @param value Is the value you want converted. - * * [Api set: ExcelApi 1.2] + * + * @param value Is the value you want converted. */ n(value: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of periods for an investment based on periodic, constant payments and a constant interest rate. * + * [Api set: ExcelApi 1.2] + * * @param rate Is the interest rate per period. For example, use 6%/4 for quarterly payments at 6% APR. * @param pmt Is the payment made each period; it cannot change over the life of the investment. * @param pv Is the present value, or the lump-sum amount that a series of future payments is worth now. * @param fv Is the future value, or a cash balance you want to attain after the last payment is made. If omitted, zero is used. * @param type Is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0 or omitted. - * - * [Api set: ExcelApi 1.2] */ nper(rate: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pmt: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pv: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, fv?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, type?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** @@ -8954,96 +11405,96 @@ declare module Excel { * * Returns the negative binomial distribution, the probability that there will be Number_f failures before the Number_s-th success, with Probability_s probability of a success. * + * [Api set: ExcelApi 1.2] + * * @param numberF Is the number of failures. * @param numberS Is the threshold number of successes. * @param probabilityS Is the probability of a success; a number between 0 and 1. * @param cumulative Is a logical value: for the cumulative distribution function, use TRUE; for the probability mass function, use FALSE. - * - * [Api set: ExcelApi 1.2] */ negBinom_Dist(numberF: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numberS: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, probabilityS: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, cumulative: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of whole workdays between two dates. * + * [Api set: ExcelApi 1.2] + * * @param startDate Is a serial date number that represents the start date. * @param endDate Is a serial date number that represents the end date. * @param holidays Is an optional set of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays. - * - * [Api set: ExcelApi 1.2] */ networkDays(startDate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, endDate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, holidays?: number | string | Excel.Range | boolean | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of whole workdays between two dates with custom weekend parameters. * + * [Api set: ExcelApi 1.2] + * * @param startDate Is a serial date number that represents the start date. * @param endDate Is a serial date number that represents the end date. * @param weekend Is a number or string specifying when weekends occur. * @param holidays Is an optional set of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays. - * - * [Api set: ExcelApi 1.2] */ networkDays_Intl(startDate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, endDate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, weekend?: number | string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, holidays?: number | string | Excel.Range | boolean | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the annual nominal interest rate. * + * [Api set: ExcelApi 1.2] + * * @param effectRate Is the effective interest rate. * @param npery Is the number of compounding periods per year. - * - * [Api set: ExcelApi 1.2] */ nominal(effectRate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, npery: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the normal distribution for the specified mean and standard deviation. * + * [Api set: ExcelApi 1.2] + * * @param x Is the value for which you want the distribution. * @param mean Is the arithmetic mean of the distribution. * @param standardDev Is the standard deviation of the distribution, a positive number. * @param cumulative Is a logical value: for the cumulative distribution function, use TRUE; for the probability density function, use FALSE. - * - * [Api set: ExcelApi 1.2] */ norm_Dist(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, mean: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, standardDev: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, cumulative: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the inverse of the normal cumulative distribution for the specified mean and standard deviation. * + * [Api set: ExcelApi 1.2] + * * @param probability Is a probability corresponding to the normal distribution, a number between 0 and 1 inclusive. * @param mean Is the arithmetic mean of the distribution. * @param standardDev Is the standard deviation of the distribution, a positive number. - * - * [Api set: ExcelApi 1.2] */ norm_Inv(probability: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, mean: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, standardDev: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the standard normal distribution (has a mean of zero and a standard deviation of one). * + * [Api set: ExcelApi 1.2] + * * @param z Is the value for which you want the distribution. * @param cumulative Is a logical value for the function to return: the cumulative distribution function = TRUE; the probability density function = FALSE. - * - * [Api set: ExcelApi 1.2] */ norm_S_Dist(z: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, cumulative: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the inverse of the standard normal cumulative distribution (has a mean of zero and a standard deviation of one). * - * @param probability Is a probability corresponding to the normal distribution, a number between 0 and 1 inclusive. - * * [Api set: ExcelApi 1.2] + * + * @param probability Is a probability corresponding to the normal distribution, a number between 0 and 1 inclusive. */ norm_S_Inv(probability: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Changes FALSE to TRUE, or TRUE to FALSE. * - * @param logical Is a value or expression that can be evaluated to TRUE or FALSE. - * * [Api set: ExcelApi 1.2] + * + * @param logical Is a value or expression that can be evaluated to TRUE or FALSE. */ not(logical: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** @@ -9057,65 +11508,67 @@ declare module Excel { * * Returns the net present value of an investment based on a discount rate and a series of future payments (negative values) and income (positive values). * + * [Api set: ExcelApi 1.2] + * * @param rate Is the rate of discount over the length of one period. * @param values List of parameters, whose elements are 1 to 254 payments and income, equally spaced in time and occurring at the end of each period. - * - * [Api set: ExcelApi 1.2] */ npv(rate: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, ...values: Array>): FunctionResult; /** * * Converts text to number in a locale-independent manner. * + * [Api set: ExcelApi 1.2] + * * @param text Is the string representing the number you want to convert. * @param decimalSeparator Is the character used as the decimal separator in the string. * @param groupSeparator Is the character used as the group separator in the string. - * - * [Api set: ExcelApi 1.2] */ numberValue(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, decimalSeparator?: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, groupSeparator?: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts an octal number to binary. * + * [Api set: ExcelApi 1.2] + * * @param number Is the octal number you want to convert. * @param places Is the number of characters to use. - * - * [Api set: ExcelApi 1.2] */ oct2Bin(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, places?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts an octal number to decimal. * - * @param number Is the octal number you want to convert. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the octal number you want to convert. */ oct2Dec(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts an octal number to hexadecimal. * + * [Api set: ExcelApi 1.2] + * * @param number Is the octal number you want to convert. * @param places Is the number of characters to use. - * - * [Api set: ExcelApi 1.2] */ oct2Hex(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, places?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Rounds a positive number up and negative number down to the nearest odd integer. * - * @param number Is the value to round. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the value to round. */ odd(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the price per $100 face value of a security with an odd first period. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param issue Is the security's issue date, expressed as a serial date number. @@ -9125,14 +11578,14 @@ declare module Excel { * @param redemption Is the security's redemption value per $100 face value. * @param frequency Is the number of coupon payments per year. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ oddFPrice(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, issue: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, firstCoupon: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, rate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, yld: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, redemption: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, frequency: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the yield of a security with an odd first period. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param issue Is the security's issue date, expressed as a serial date number. @@ -9142,14 +11595,14 @@ declare module Excel { * @param redemption Is the security's redemption value per $100 face value. * @param frequency Is the number of coupon payments per year. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ oddFYield(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, issue: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, firstCoupon: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, rate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pr: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, redemption: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, frequency: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the price per $100 face value of a security with an odd last period. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param lastInterest Is the security's last coupon date, expressed as a serial date number. @@ -9158,14 +11611,14 @@ declare module Excel { * @param redemption Is the security's redemption value per $100 face value. * @param frequency Is the number of coupon payments per year. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ oddLPrice(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, lastInterest: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, rate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, yld: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, redemption: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, frequency: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the yield of a security with an odd last period. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param lastInterest Is the security's last coupon date, expressed as a serial date number. @@ -9174,99 +11627,97 @@ declare module Excel { * @param redemption Is the security's redemption value per $100 face value. * @param frequency Is the number of coupon payments per year. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ oddLYield(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, lastInterest: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, rate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pr: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, redemption: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, frequency: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Checks whether any of the arguments are TRUE, and returns TRUE or FALSE. Returns FALSE only if all arguments are FALSE. * - * @param values List of parameters, whose elements are 1 to 255 conditions that you want to test that can be either TRUE or FALSE. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 conditions that you want to test that can be either TRUE or FALSE. */ or(...values: Array>): FunctionResult; /** * * Returns the number of periods required by an investment to reach a specified value. * + * [Api set: ExcelApi 1.2] + * * @param rate Is the interest rate per period. * @param pv Is the present value of the investment. * @param fv Is the desired future value of the investment. - * - * [Api set: ExcelApi 1.2] */ pduration(rate: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pv: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, fv: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the rank of a value in a data set as a percentage of the data set as a percentage (0..1, exclusive) of the data set. * + * [Api set: ExcelApi 1.2] + * * @param array Is the array or range of data with numeric values that defines relative standing. * @param x Is the value for which you want to know the rank. * @param significance Is an optional value that identifies the number of significant digits for the returned percentage, three digits if omitted (0.xxx%). - * - * [Api set: ExcelApi 1.2] */ percentRank_Exc(array: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, significance?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the rank of a value in a data set as a percentage of the data set as a percentage (0..1, inclusive) of the data set. * + * [Api set: ExcelApi 1.2] + * * @param array Is the array or range of data with numeric values that defines relative standing. * @param x Is the value for which you want to know the rank. * @param significance Is an optional value that identifies the number of significant digits for the returned percentage, three digits if omitted (0.xxx%). - * - * [Api set: ExcelApi 1.2] */ percentRank_Inc(array: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, significance?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the k-th percentile of values in a range, where k is in the range 0..1, exclusive. * + * [Api set: ExcelApi 1.2] + * * @param array Is the array or range of data that defines relative standing. * @param k Is the percentile value that is between 0 through 1, inclusive. - * - * [Api set: ExcelApi 1.2] */ percentile_Exc(array: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, k: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the k-th percentile of values in a range, where k is in the range 0..1, inclusive. * + * [Api set: ExcelApi 1.2] + * * @param array Is the array or range of data that defines relative standing. * @param k Is the percentile value that is between 0 through 1, inclusive. - * - * [Api set: ExcelApi 1.2] */ percentile_Inc(array: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, k: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of permutations for a given number of objects that can be selected from the total objects. * + * [Api set: ExcelApi 1.2] + * * @param number Is the total number of objects. * @param numberChosen Is the number of objects in each permutation. - * - * [Api set: ExcelApi 1.2] */ permut(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numberChosen: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of permutations for a given number of objects (with repetitions) that can be selected from the total objects. * + * [Api set: ExcelApi 1.2] + * * @param number Is the total number of objects. * @param numberChosen Is the number of objects in each permutation. - * - * [Api set: ExcelApi 1.2] */ permutationa(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numberChosen: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the value of the density function for a standard normal distribution. * - * @param x Is the number for which you want the density of the standard normal distribution. - * * [Api set: ExcelApi 1.2] + * + * @param x Is the number for which you want the density of the standard normal distribution. */ phi(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** @@ -9280,54 +11731,56 @@ declare module Excel { * * Calculates the payment for a loan based on constant payments and a constant interest rate. * + * [Api set: ExcelApi 1.2] + * * @param rate Is the interest rate per period for the loan. For example, use 6%/4 for quarterly payments at 6% APR. * @param nper Is the total number of payments for the loan. * @param pv Is the present value: the total amount that a series of future payments is worth now. * @param fv Is the future value, or a cash balance you want to attain after the last payment is made, 0 (zero) if omitted. * @param type Is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0 or omitted. - * - * [Api set: ExcelApi 1.2] */ pmt(rate: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, nper: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pv: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, fv?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, type?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the Poisson distribution. * + * [Api set: ExcelApi 1.2] + * * @param x Is the number of events. * @param mean Is the expected numeric value, a positive number. * @param cumulative Is a logical value: for the cumulative Poisson probability, use TRUE; for the Poisson probability mass function, use FALSE. - * - * [Api set: ExcelApi 1.2] */ poisson_Dist(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, mean: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, cumulative: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the result of a number raised to a power. * + * [Api set: ExcelApi 1.2] + * * @param number Is the base number, any real number. * @param power Is the exponent, to which the base number is raised. - * - * [Api set: ExcelApi 1.2] */ power(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, power: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the payment on the principal for a given investment based on periodic, constant payments and a constant interest rate. * + * [Api set: ExcelApi 1.2] + * * @param rate Is the interest rate per period. For example, use 6%/4 for quarterly payments at 6% APR. * @param per Specifies the period and must be in the range 1 to nper. * @param nper Is the total number of payment periods in an investment. * @param pv Is the present value: the total amount that a series of future payments is worth now. * @param fv Is the future value, or cash balance you want to attain after the last payment is made. * @param type Is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0 or omitted. - * - * [Api set: ExcelApi 1.2] */ ppmt(rate: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, per: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, nper: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pv: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, fv?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, type?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the price per $100 face value of a security that pays periodic interest. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param rate Is the security's annual coupon rate. @@ -9335,105 +11788,103 @@ declare module Excel { * @param redemption Is the security's redemption value per $100 face value. * @param frequency Is the number of coupon payments per year. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ price(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, rate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, yld: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, redemption: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, frequency: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the price per $100 face value of a discounted security. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param discount Is the security's discount rate. * @param redemption Is the security's redemption value per $100 face value. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ priceDisc(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, discount: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, redemption: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the price per $100 face value of a security that pays interest at maturity. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param issue Is the security's issue date, expressed as a serial date number. * @param rate Is the security's interest rate at date of issue. * @param yld Is the security's annual yield. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ priceMat(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, issue: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, rate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, yld: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Multiplies all the numbers given as arguments. * - * @param values List of parameters, whose elements are 1 to 255 numbers, logical values, or text representations of numbers that you want to multiply. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numbers, logical values, or text representations of numbers that you want to multiply. */ product(...values: Array>): FunctionResult; /** * * Converts a text string to proper case; the first letter in each word to uppercase, and all other letters to lowercase. * - * @param text Is text enclosed in quotation marks, a formula that returns text, or a reference to a cell containing text to partially capitalize. - * * [Api set: ExcelApi 1.2] + * + * @param text Is text enclosed in quotation marks, a formula that returns text, or a reference to a cell containing text to partially capitalize. */ proper(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the present value of an investment: the total amount that a series of future payments is worth now. * + * [Api set: ExcelApi 1.2] + * * @param rate Is the interest rate per period. For example, use 6%/4 for quarterly payments at 6% APR. * @param nper Is the total number of payment periods in an investment. * @param pmt Is the payment made each period and cannot change over the life of the investment. * @param fv Is the future value, or a cash balance you want to attain after the last payment is made. * @param type Is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0 or omitted. - * - * [Api set: ExcelApi 1.2] */ pv(rate: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, nper: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pmt: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, fv?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, type?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the quartile of a data set, based on percentile values from 0..1, exclusive. * + * [Api set: ExcelApi 1.2] + * * @param array Is the array or cell range of numeric values for which you want the quartile value. * @param quart Is a number: minimum value = 0; 1st quartile = 1; median value = 2; 3rd quartile = 3; maximum value = 4. - * - * [Api set: ExcelApi 1.2] */ quartile_Exc(array: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, quart: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the quartile of a data set, based on percentile values from 0..1, inclusive. * + * [Api set: ExcelApi 1.2] + * * @param array Is the array or cell range of numeric values for which you want the quartile value. * @param quart Is a number: minimum value = 0; 1st quartile = 1; median value = 2; 3rd quartile = 3; maximum value = 4. - * - * [Api set: ExcelApi 1.2] */ quartile_Inc(array: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, quart: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the integer portion of a division. * + * [Api set: ExcelApi 1.2] + * * @param numerator Is the dividend. * @param denominator Is the divisor. - * - * [Api set: ExcelApi 1.2] */ quotient(numerator: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, denominator: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts degrees to radians. * - * @param angle Is an angle in degrees that you want to convert. - * * [Api set: ExcelApi 1.2] + * + * @param angle Is an angle in degrees that you want to convert. */ radians(angle: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** @@ -9447,575 +11898,575 @@ declare module Excel { * * Returns a random number between the numbers you specify. * + * [Api set: ExcelApi 1.2] + * * @param bottom Is the smallest integer RANDBETWEEN will return. * @param top Is the largest integer RANDBETWEEN will return. - * - * [Api set: ExcelApi 1.2] */ randBetween(bottom: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, top: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the rank of a number in a list of numbers: its size relative to other values in the list; if more than one value has the same rank, the average rank is returned. * + * [Api set: ExcelApi 1.2] + * * @param number Is the number for which you want to find the rank. * @param ref Is an array of, or a reference to, a list of numbers. Nonnumeric values are ignored. * @param order Is a number: rank in the list sorted descending = 0 or omitted; rank in the list sorted ascending = any nonzero value. - * - * [Api set: ExcelApi 1.2] */ rank_Avg(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, ref: Excel.Range | Excel.RangeReference | Excel.FunctionResult, order?: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the rank of a number in a list of numbers: its size relative to other values in the list; if more than one value has the same rank, the top rank of that set of values is returned. * + * [Api set: ExcelApi 1.2] + * * @param number Is the number for which you want to find the rank. * @param ref Is an array of, or a reference to, a list of numbers. Nonnumeric values are ignored. * @param order Is a number: rank in the list sorted descending = 0 or omitted; rank in the list sorted ascending = any nonzero value. - * - * [Api set: ExcelApi 1.2] */ rank_Eq(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, ref: Excel.Range | Excel.RangeReference | Excel.FunctionResult, order?: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the interest rate per period of a loan or an investment. For example, use 6%/4 for quarterly payments at 6% APR. * + * [Api set: ExcelApi 1.2] + * * @param nper Is the total number of payment periods for the loan or investment. * @param pmt Is the payment made each period and cannot change over the life of the loan or investment. * @param pv Is the present value: the total amount that a series of future payments is worth now. * @param fv Is the future value, or a cash balance you want to attain after the last payment is made. If omitted, uses Fv = 0. * @param type Is a logical value: payment at the beginning of the period = 1; payment at the end of the period = 0 or omitted. * @param guess Is your guess for what the rate will be; if omitted, Guess = 0.1 (10 percent). - * - * [Api set: ExcelApi 1.2] */ rate(nper: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pmt: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pv: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, fv?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, type?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, guess?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the amount received at maturity for a fully invested security. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param investment Is the amount invested in the security. * @param discount Is the security's discount rate. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ received(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, investment: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, discount: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Replaces part of a text string with a different text string. * + * [Api set: ExcelApi 1.2] + * * @param oldText Is text in which you want to replace some characters. * @param startNum Is the position of the character in oldText that you want to replace with newText. * @param numChars Is the number of characters in oldText that you want to replace. * @param newText Is the text that will replace characters in oldText. - * - * [Api set: ExcelApi 1.2] */ replace(oldText: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, startNum: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numChars: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, newText: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Replaces part of a text string with a different text string. Use with double-byte character sets (DBCS). * + * [Api set: ExcelApi 1.2] + * * @param oldText Is text in which you want to replace some characters. * @param startNum Is the position of the character in oldText that you want to replace with newText. * @param numBytes Is the number of characters in oldText that you want to replace with newText. * @param newText Is the text that will replace characters in oldText. - * - * [Api set: ExcelApi 1.2] */ replaceB(oldText: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, startNum: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numBytes: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, newText: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Repeats text a given number of times. Use REPT to fill a cell with a number of instances of a text string. * + * [Api set: ExcelApi 1.2] + * * @param text Is the text you want to repeat. * @param numberTimes Is a positive number specifying the number of times to repeat text. - * - * [Api set: ExcelApi 1.2] */ rept(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numberTimes: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the specified number of characters from the end of a text string. * + * [Api set: ExcelApi 1.2] + * * @param text Is the text string that contains the characters you want to extract. * @param numChars Specifies how many characters you want to extract, 1 if omitted. - * - * [Api set: ExcelApi 1.2] */ right(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numChars?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the specified number of characters from the end of a text string. Use with double-byte character sets (DBCS). * + * [Api set: ExcelApi 1.2] + * * @param text Is the text string containing the characters you want to extract. * @param numBytes Specifies how many characters you want to extract. - * - * [Api set: ExcelApi 1.2] */ rightb(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numBytes?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts an Arabic numeral to Roman, as text. * + * [Api set: ExcelApi 1.2] + * * @param number Is the Arabic numeral you want to convert. * @param form Is the number specifying the type of Roman numeral you want. - * - * [Api set: ExcelApi 1.2] */ roman(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, form?: boolean | number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Rounds a number to a specified number of digits. * + * [Api set: ExcelApi 1.2] + * * @param number Is the number you want to round. * @param numDigits Is the number of digits to which you want to round. Negative rounds to the left of the decimal point; zero to the nearest integer. - * - * [Api set: ExcelApi 1.2] */ round(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numDigits: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Rounds a number down, toward zero. * + * [Api set: ExcelApi 1.2] + * * @param number Is any real number that you want rounded down. * @param numDigits Is the number of digits to which you want to round. Negative rounds to the left of the decimal point; zero or omitted, to the nearest integer. - * - * [Api set: ExcelApi 1.2] */ roundDown(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numDigits: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Rounds a number up, away from zero. * + * [Api set: ExcelApi 1.2] + * * @param number Is any real number that you want rounded up. * @param numDigits Is the number of digits to which you want to round. Negative rounds to the left of the decimal point; zero or omitted, to the nearest integer. - * - * [Api set: ExcelApi 1.2] */ roundUp(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numDigits: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of rows in a reference or array. * - * @param array Is an array, an array formula, or a reference to a range of cells for which you want the number of rows. - * * [Api set: ExcelApi 1.2] + * + * @param array Is an array, an array formula, or a reference to a range of cells for which you want the number of rows. */ rows(array: Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns an equivalent interest rate for the growth of an investment. * + * [Api set: ExcelApi 1.2] + * * @param nper Is the number of periods for the investment. * @param pv Is the present value of the investment. * @param fv Is the future value of the investment. - * - * [Api set: ExcelApi 1.2] */ rri(nper: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pv: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, fv: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the secant of an angle. * - * @param number Is the angle in radians for which you want the secant. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the angle in radians for which you want the secant. */ sec(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the hyperbolic secant of an angle. * - * @param number Is the angle in radians for which you want the hyperbolic secant. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the angle in radians for which you want the hyperbolic secant. */ sech(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the second, a number from 0 to 59. * - * @param serialNumber Is a number in the date-time code used by Microsoft Excel or text in time format, such as 16:48:23 or 4:48:47 PM. - * * [Api set: ExcelApi 1.2] + * + * @param serialNumber Is a number in the date-time code used by Microsoft Excel or text in time format, such as 16:48:23 or 4:48:47 PM. */ second(serialNumber: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the sum of a power series based on the formula. * + * [Api set: ExcelApi 1.2] + * * @param x Is the input value to the power series. * @param n Is the initial power to which you want to raise x. * @param m Is the step by which to increase n for each term in the series. * @param coefficients Is a set of coefficients by which each successive power of x is multiplied. - * - * [Api set: ExcelApi 1.2] */ seriesSum(x: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, n: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, m: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, coefficients: Excel.Range | string | number | boolean | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the sheet number of the referenced sheet. * - * @param value Is the name of a sheet or a reference that you want the sheet number of. If omitted the number of the sheet containing the function is returned. - * * [Api set: ExcelApi 1.2] + * + * @param value Is the name of a sheet or a reference that you want the sheet number of. If omitted the number of the sheet containing the function is returned. */ sheet(value?: Excel.Range | string | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number of sheets in a reference. * - * @param reference Is a reference for which you want to know the number of sheets it contains. If omitted the number of sheets in the workbook containing the function is returned. - * * [Api set: ExcelApi 1.2] + * + * @param reference Is a reference for which you want to know the number of sheets it contains. If omitted the number of sheets in the workbook containing the function is returned. */ sheets(reference?: Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the sign of a number: 1 if the number is positive, zero if the number is zero, or -1 if the number is negative. * - * @param number Is any real number. - * * [Api set: ExcelApi 1.2] + * + * @param number Is any real number. */ sign(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the sine of an angle. * - * @param number Is the angle in radians for which you want the sine. Degrees * PI()/180 = radians. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the angle in radians for which you want the sine. Degrees * PI()/180 = radians. */ sin(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the hyperbolic sine of a number. * - * @param number Is any real number. - * * [Api set: ExcelApi 1.2] + * + * @param number Is any real number. */ sinh(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the skewness of a distribution: a characterization of the degree of asymmetry of a distribution around its mean. * - * @param values List of parameters, whose elements are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the skewness. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numbers or names, arrays, or references that contain numbers for which you want the skewness. */ skew(...values: Array>): FunctionResult; /** * * Returns the skewness of a distribution based on a population: a characterization of the degree of asymmetry of a distribution around its mean. * - * @param values List of parameters, whose elements are 1 to 254 numbers or names, arrays, or references that contain numbers for which you want the population skewness. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 254 numbers or names, arrays, or references that contain numbers for which you want the population skewness. */ skew_p(...values: Array>): FunctionResult; /** * * Returns the straight-line depreciation of an asset for one period. * + * [Api set: ExcelApi 1.2] + * * @param cost Is the initial cost of the asset. * @param salvage Is the salvage value at the end of the life of the asset. * @param life Is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset). - * - * [Api set: ExcelApi 1.2] */ sln(cost: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, salvage: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, life: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the k-th smallest value in a data set. For example, the fifth smallest number. * + * [Api set: ExcelApi 1.2] + * * @param array Is an array or range of numerical data for which you want to determine the k-th smallest value. * @param k Is the position (from the smallest) in the array or range of the value to return. - * - * [Api set: ExcelApi 1.2] */ small(array: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, k: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the square root of a number. * - * @param number Is the number for which you want the square root. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the number for which you want the square root. */ sqrt(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the square root of (number * Pi). * - * @param number Is the number by which p is multiplied. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the number by which p is multiplied. */ sqrtPi(number: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Estimates standard deviation based on a sample, including logical values and text. Text and the logical value FALSE have the value 0; the logical value TRUE has the value 1. * - * @param values List of parameters, whose elements are 1 to 255 values corresponding to a sample of a population and can be values or names or references to values. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 values corresponding to a sample of a population and can be values or names or references to values. */ stDevA(...values: Array>): FunctionResult; /** * * Calculates standard deviation based on an entire population, including logical values and text. Text and the logical value FALSE have the value 0; the logical value TRUE has the value 1. * - * @param values List of parameters, whose elements are 1 to 255 values corresponding to a population and can be values, names, arrays, or references that contain values. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 values corresponding to a population and can be values, names, arrays, or references that contain values. */ stDevPA(...values: Array>): FunctionResult; /** * * Calculates standard deviation based on the entire population given as arguments (ignores logical values and text). * - * @param values List of parameters, whose elements are 1 to 255 numbers corresponding to a population and can be numbers or references that contain numbers. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numbers corresponding to a population and can be numbers or references that contain numbers. */ stDev_P(...values: Array>): FunctionResult; /** * * Estimates standard deviation based on a sample (ignores logical values and text in the sample). * - * @param values List of parameters, whose elements are 1 to 255 numbers corresponding to a sample of a population and can be numbers or references that contain numbers. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numbers corresponding to a sample of a population and can be numbers or references that contain numbers. */ stDev_S(...values: Array>): FunctionResult; /** * * Returns a normalized value from a distribution characterized by a mean and standard deviation. * + * [Api set: ExcelApi 1.2] + * * @param x Is the value you want to normalize. * @param mean Is the arithmetic mean of the distribution. * @param standardDev Is the standard deviation of the distribution, a positive number. - * - * [Api set: ExcelApi 1.2] */ standardize(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, mean: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, standardDev: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Replaces existing text with new text in a text string. * + * [Api set: ExcelApi 1.2] + * * @param text Is the text or the reference to a cell containing text in which you want to substitute characters. * @param oldText Is the existing text you want to replace. If the case of oldText does not match the case of text, SUBSTITUTE will not replace the text. * @param newText Is the text you want to replace oldText with. * @param instanceNum Specifies which occurrence of oldText you want to replace. If omitted, every instance of oldText is replaced. - * - * [Api set: ExcelApi 1.2] */ substitute(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, oldText: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, newText: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, instanceNum?: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns a subtotal in a list or database. * + * [Api set: ExcelApi 1.2] + * * @param functionNum Is the number 1 to 11 that specifies the summary function for the subtotal. * @param values List of parameters, whose elements are 1 to 254 ranges or references for which you want the subtotal. - * - * [Api set: ExcelApi 1.2] */ subtotal(functionNum: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, ...values: Array>): FunctionResult; /** * * Adds all the numbers in a range of cells. * - * @param values List of parameters, whose elements are 1 to 255 numbers to sum. Logical values and text are ignored in cells, included if typed as arguments. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numbers to sum. Logical values and text are ignored in cells, included if typed as arguments. */ sum(...values: Array>): FunctionResult; /** * * Adds the cells specified by a given condition or criteria. * + * [Api set: ExcelApi 1.2] + * * @param range Is the range of cells you want evaluated. * @param criteria Is the condition or criteria in the form of a number, expression, or text that defines which cells will be added. * @param sumRange Are the actual cells to sum. If omitted, the cells in range are used. - * - * [Api set: ExcelApi 1.2] */ sumIf(range: Excel.Range | Excel.RangeReference | Excel.FunctionResult, criteria: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, sumRange?: Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Adds the cells specified by a given set of conditions or criteria. * + * [Api set: ExcelApi 1.2] + * * @param sumRange Are the actual cells to sum. * @param values List of parameters, where the first element of each pair is the Is the range of cells you want evaluated for the particular condition , and the second element is is the condition or criteria in the form of a number, expression, or text that defines which cells will be added. - * - * [Api set: ExcelApi 1.2] */ sumIfs(sumRange: Excel.Range | Excel.RangeReference | Excel.FunctionResult, ...values: Array | number | string | boolean>): FunctionResult; /** * * Returns the sum of the squares of the arguments. The arguments can be numbers, arrays, names, or references to cells that contain numbers. * - * @param values List of parameters, whose elements are 1 to 255 numbers, arrays, names, or references to arrays for which you want the sum of the squares. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numbers, arrays, names, or references to arrays for which you want the sum of the squares. */ sumSq(...values: Array>): FunctionResult; /** * * Returns the sum-of-years' digits depreciation of an asset for a specified period. * + * [Api set: ExcelApi 1.2] + * * @param cost Is the initial cost of the asset. * @param salvage Is the salvage value at the end of the life of the asset. * @param life Is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset). * @param per Is the period and must use the same units as Life. - * - * [Api set: ExcelApi 1.2] */ syd(cost: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, salvage: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, life: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, per: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Checks whether a value is text, and returns the text if it is, or returns double quotes (empty text) if it is not. * - * @param value Is the value to test. - * * [Api set: ExcelApi 1.2] + * + * @param value Is the value to test. */ t(value: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the bond-equivalent yield for a treasury bill. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the Treasury bill's settlement date, expressed as a serial date number. * @param maturity Is the Treasury bill's maturity date, expressed as a serial date number. * @param discount Is the Treasury bill's discount rate. - * - * [Api set: ExcelApi 1.2] */ tbillEq(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, discount: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the price per $100 face value for a treasury bill. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the Treasury bill's settlement date, expressed as a serial date number. * @param maturity Is the Treasury bill's maturity date, expressed as a serial date number. * @param discount Is the Treasury bill's discount rate. - * - * [Api set: ExcelApi 1.2] */ tbillPrice(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, discount: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the yield for a treasury bill. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the Treasury bill's settlement date, expressed as a serial date number. * @param maturity Is the Treasury bill's maturity date, expressed as a serial date number. * @param pr Is the Treasury Bill's price per $100 face value. - * - * [Api set: ExcelApi 1.2] */ tbillYield(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pr: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the left-tailed Student's t-distribution. * + * [Api set: ExcelApi 1.2] + * * @param x Is the numeric value at which to evaluate the distribution. * @param degFreedom Is an integer indicating the number of degrees of freedom that characterize the distribution. * @param cumulative Is a logical value: for the cumulative distribution function, use TRUE; for the probability density function, use FALSE. - * - * [Api set: ExcelApi 1.2] */ t_Dist(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, cumulative: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the two-tailed Student's t-distribution. * + * [Api set: ExcelApi 1.2] + * * @param x Is the numeric value at which to evaluate the distribution. * @param degFreedom Is an integer indicating the number of degrees of freedom that characterize the distribution. - * - * [Api set: ExcelApi 1.2] */ t_Dist_2T(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the right-tailed Student's t-distribution. * + * [Api set: ExcelApi 1.2] + * * @param x Is the numeric value at which to evaluate the distribution. * @param degFreedom Is an integer indicating the number of degrees of freedom that characterize the distribution. - * - * [Api set: ExcelApi 1.2] */ t_Dist_RT(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the left-tailed inverse of the Student's t-distribution. * + * [Api set: ExcelApi 1.2] + * * @param probability Is the probability associated with the two-tailed Student's t-distribution, a number between 0 and 1 inclusive. * @param degFreedom Is a positive integer indicating the number of degrees of freedom to characterize the distribution. - * - * [Api set: ExcelApi 1.2] */ t_Inv(probability: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the two-tailed inverse of the Student's t-distribution. * + * [Api set: ExcelApi 1.2] + * * @param probability Is the probability associated with the two-tailed Student's t-distribution, a number between 0 and 1 inclusive. * @param degFreedom Is a positive integer indicating the number of degrees of freedom to characterize the distribution. - * - * [Api set: ExcelApi 1.2] */ t_Inv_2T(probability: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, degFreedom: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the tangent of an angle. * - * @param number Is the angle in radians for which you want the tangent. Degrees * PI()/180 = radians. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the angle in radians for which you want the tangent. Degrees * PI()/180 = radians. */ tan(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the hyperbolic tangent of a number. * - * @param number Is any real number. - * * [Api set: ExcelApi 1.2] + * + * @param number Is any real number. */ tanh(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a value to text in a specific number format. * + * [Api set: ExcelApi 1.2] + * * @param value Is a number, a formula that evaluates to a numeric value, or a reference to a cell containing a numeric value. * @param formatText Is a number format in text form from the Category box on the Number tab in the Format Cells dialog box (not General). - * - * [Api set: ExcelApi 1.2] */ text(value: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, formatText: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts hours, minutes, and seconds given as numbers to an Excel serial number, formatted with a time format. * + * [Api set: ExcelApi 1.2] + * * @param hour Is a number from 0 to 23 representing the hour. * @param minute Is a number from 0 to 59 representing the minute. * @param second Is a number from 0 to 59 representing the second. - * - * [Api set: ExcelApi 1.2] */ time(hour: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, minute: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, second: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a text time to an Excel serial number for a time, a number from 0 (12:00:00 AM) to 0.999988426 (11:59:59 PM). Format the number with a time format after entering the formula. * - * @param timeText Is a text string that gives a time in any one of the Microsoft Excel time formats (date information in the string is ignored). - * * [Api set: ExcelApi 1.2] + * + * @param timeText Is a text string that gives a time in any one of the Microsoft Excel time formats (date information in the string is ignored). */ timevalue(timeText: string | number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** @@ -10029,19 +12480,19 @@ declare module Excel { * * Removes all spaces from a text string except for single spaces between words. * - * @param text Is the text from which you want spaces removed. - * * [Api set: ExcelApi 1.2] + * + * @param text Is the text from which you want spaces removed. */ trim(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the mean of the interior portion of a set of data values. * + * [Api set: ExcelApi 1.2] + * * @param array Is the range or array of values to trim and average. * @param percent Is the fractional number of data points to exclude from the top and bottom of the data set. - * - * [Api set: ExcelApi 1.2] */ trimMean(array: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, percent: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** @@ -10055,119 +12506,121 @@ declare module Excel { * * Truncates a number to an integer by removing the decimal, or fractional, part of the number. * + * [Api set: ExcelApi 1.2] + * * @param number Is the number you want to truncate. * @param numDigits Is a number specifying the precision of the truncation, 0 (zero) if omitted. - * - * [Api set: ExcelApi 1.2] */ trunc(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, numDigits?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns an integer representing the data type of a value: number = 1; text = 2; logical value = 4; error value = 16; array = 64. * - * @param value Can be any value. - * * [Api set: ExcelApi 1.2] + * + * @param value Can be any value. */ type(value: boolean | string | number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a number to text, using currency format. * + * [Api set: ExcelApi 1.2] + * * @param number Is a number, a reference to a cell containing a number, or a formula that evaluates to a number. * @param decimals Is the number of digits to the right of the decimal point. - * - * [Api set: ExcelApi 1.2] */ usdollar(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, decimals?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the Unicode character referenced by the given numeric value. * - * @param number Is the Unicode number representing a character. - * * [Api set: ExcelApi 1.2] + * + * @param number Is the Unicode number representing a character. */ unichar(number: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the number (code point) corresponding to the first character of the text. * - * @param text Is the character that you want the Unicode value of. - * * [Api set: ExcelApi 1.2] + * + * @param text Is the character that you want the Unicode value of. */ unicode(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a text string to all uppercase letters. * - * @param text Is the text you want converted to uppercase, a reference or a text string. - * * [Api set: ExcelApi 1.2] + * + * @param text Is the text you want converted to uppercase, a reference or a text string. */ upper(text: string | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Looks for a value in the leftmost column of a table, and then returns a value in the same row from a column you specify. By default, the table must be sorted in an ascending order. * + * [Api set: ExcelApi 1.2] + * * @param lookupValue Is the value to be found in the first column of the table, and can be a value, a reference, or a text string. * @param tableArray Is a table of text, numbers, or logical values, in which data is retrieved. tableArray can be a reference to a range or a range name. * @param colIndexNum Is the column number in tableArray from which the matching value should be returned. The first column of values in the table is column 1. * @param rangeLookup Is a logical value: to find the closest match in the first column (sorted in ascending order) = TRUE or omitted; find an exact match = FALSE. - * - * [Api set: ExcelApi 1.2] */ vlookup(lookupValue: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, tableArray: Excel.Range | number | Excel.RangeReference | Excel.FunctionResult, colIndexNum: Excel.Range | number | Excel.RangeReference | Excel.FunctionResult, rangeLookup?: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Converts a text string that represents a number to a number. * - * @param text Is the text enclosed in quotation marks or a reference to a cell containing the text you want to convert. - * * [Api set: ExcelApi 1.2] + * + * @param text Is the text enclosed in quotation marks or a reference to a cell containing the text you want to convert. */ value(text: string | boolean | number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Estimates variance based on a sample, including logical values and text. Text and the logical value FALSE have the value 0; the logical value TRUE has the value 1. * - * @param values List of parameters, whose elements are 1 to 255 value arguments corresponding to a sample of a population. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 value arguments corresponding to a sample of a population. */ varA(...values: Array>): FunctionResult; /** * * Calculates variance based on the entire population, including logical values and text. Text and the logical value FALSE have the value 0; the logical value TRUE has the value 1. * - * @param values List of parameters, whose elements are 1 to 255 value arguments corresponding to a population. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 value arguments corresponding to a population. */ varPA(...values: Array>): FunctionResult; /** * * Calculates variance based on the entire population (ignores logical values and text in the population). * - * @param values List of parameters, whose elements are 1 to 255 numeric arguments corresponding to a population. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numeric arguments corresponding to a population. */ var_P(...values: Array>): FunctionResult; /** * * Estimates variance based on a sample (ignores logical values and text in the sample). * - * @param values List of parameters, whose elements are 1 to 255 numeric arguments corresponding to a sample of a population. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 255 numeric arguments corresponding to a sample of a population. */ var_S(...values: Array>): FunctionResult; /** * * Returns the depreciation of an asset for any period you specify, including partial periods, using the double-declining balance method or some other method you specify. * + * [Api set: ExcelApi 1.2] + * * @param cost Is the initial cost of the asset. * @param salvage Is the salvage value at the end of the life of the asset. * @param life Is the number of periods over which the asset is being depreciated (sometimes called the useful life of the asset). @@ -10175,120 +12628,120 @@ declare module Excel { * @param endPeriod Is the ending period for which you want to calculate the depreciation, in the same units as Life. * @param factor Is the rate at which the balance declines, 2 (double-declining balance) if omitted. * @param noSwitch Switch to straight-line depreciation when depreciation is greater than the declining balance = FALSE or omitted; do not switch = TRUE. - * - * [Api set: ExcelApi 1.2] */ vdb(cost: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, salvage: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, life: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, startPeriod: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, endPeriod: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, factor?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, noSwitch?: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the week number in the year. * + * [Api set: ExcelApi 1.2] + * * @param serialNumber Is the date-time code used by Microsoft Excel for date and time calculation. * @param returnType Is a number (1 or 2) that determines the type of the return value. - * - * [Api set: ExcelApi 1.2] */ weekNum(serialNumber: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, returnType?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns a number from 1 to 7 identifying the day of the week of a date. * + * [Api set: ExcelApi 1.2] + * * @param serialNumber Is a number that represents a date. * @param returnType Is a number: for Sunday=1 through Saturday=7, use 1; for Monday=1 through Sunday=7, use 2; for Monday=0 through Sunday=6, use 3. - * - * [Api set: ExcelApi 1.2] */ weekday(serialNumber: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, returnType?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the Weibull distribution. * + * [Api set: ExcelApi 1.2] + * * @param x Is the value at which to evaluate the function, a nonnegative number. * @param alpha Is a parameter to the distribution, a positive number. * @param beta Is a parameter to the distribution, a positive number. * @param cumulative Is a logical value: for the cumulative distribution function, use TRUE; for the probability mass function, use FALSE. - * - * [Api set: ExcelApi 1.2] */ weibull_Dist(x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, alpha: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, beta: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, cumulative: boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the serial number of the date before or after a specified number of workdays. * + * [Api set: ExcelApi 1.2] + * * @param startDate Is a serial date number that represents the start date. * @param days Is the number of nonweekend and non-holiday days before or after startDate. * @param holidays Is an optional array of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays. - * - * [Api set: ExcelApi 1.2] */ workDay(startDate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, days: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, holidays?: number | string | Excel.Range | boolean | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the serial number of the date before or after a specified number of workdays with custom weekend parameters. * + * [Api set: ExcelApi 1.2] + * * @param startDate Is a serial date number that represents the start date. * @param days Is the number of nonweekend and non-holiday days before or after startDate. * @param weekend Is a number or string specifying when weekends occur. * @param holidays Is an optional array of one or more serial date numbers to exclude from the working calendar, such as state and federal holidays and floating holidays. - * - * [Api set: ExcelApi 1.2] */ workDay_Intl(startDate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, days: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, weekend?: number | string | Excel.Range | Excel.RangeReference | Excel.FunctionResult, holidays?: number | string | Excel.Range | boolean | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the internal rate of return for a schedule of cash flows. * + * [Api set: ExcelApi 1.2] + * * @param values Is a series of cash flows that correspond to a schedule of payments in dates. * @param dates Is a schedule of payment dates that corresponds to the cash flow payments. * @param guess Is a number that you guess is close to the result of XIRR. - * - * [Api set: ExcelApi 1.2] */ xirr(values: number | string | Excel.Range | boolean | Excel.RangeReference | Excel.FunctionResult, dates: number | string | Excel.Range | boolean | Excel.RangeReference | Excel.FunctionResult, guess?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the net present value for a schedule of cash flows. * + * [Api set: ExcelApi 1.2] + * * @param rate Is the discount rate to apply to the cash flows. * @param values Is a series of cash flows that correspond to a schedule of payments in dates. * @param dates Is a schedule of payment dates that corresponds to the cash flow payments. - * - * [Api set: ExcelApi 1.2] */ xnpv(rate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, values: number | string | Excel.Range | boolean | Excel.RangeReference | Excel.FunctionResult, dates: number | string | Excel.Range | boolean | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns a logical 'Exclusive Or' of all arguments. * - * @param values List of parameters, whose elements are 1 to 254 conditions you want to test that can be either TRUE or FALSE and can be logical values, arrays, or references. - * * [Api set: ExcelApi 1.2] + * + * @param values List of parameters, whose elements are 1 to 254 conditions you want to test that can be either TRUE or FALSE and can be logical values, arrays, or references. */ xor(...values: Array>): FunctionResult; /** * * Returns the year of a date, an integer in the range 1900 - 9999. * - * @param serialNumber Is a number in the date-time code used by Microsoft Excel. - * * [Api set: ExcelApi 1.2] + * + * @param serialNumber Is a number in the date-time code used by Microsoft Excel. */ year(serialNumber: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the year fraction representing the number of whole days between start_date and end_date. * + * [Api set: ExcelApi 1.2] + * * @param startDate Is a serial date number that represents the start date. * @param endDate Is a serial date number that represents the end date. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ yearFrac(startDate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, endDate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the yield on a security that pays periodic interest. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param rate Is the security's annual coupon rate. @@ -10296,51 +12749,49 @@ declare module Excel { * @param redemption Is the security's redemption value per $100 face value. * @param frequency Is the number of coupon payments per year. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ yield(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, rate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pr: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, redemption: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, frequency: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the annual yield for a discounted security. For example, a treasury bill. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param pr Is the security's price per $100 face value. * @param redemption Is the security's redemption value per $100 face value. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ yieldDisc(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pr: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, redemption: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the annual yield of a security that pays interest at maturity. * + * [Api set: ExcelApi 1.2] + * * @param settlement Is the security's settlement date, expressed as a serial date number. * @param maturity Is the security's maturity date, expressed as a serial date number. * @param issue Is the security's issue date, expressed as a serial date number. * @param rate Is the security's interest rate at date of issue. * @param pr Is the security's price per $100 face value. * @param basis Is the type of day count basis to use. - * - * [Api set: ExcelApi 1.2] */ yieldMat(settlement: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, maturity: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, issue: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, rate: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, pr: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult, basis?: number | string | boolean | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; /** * * Returns the one-tailed P-value of a z-test. * + * [Api set: ExcelApi 1.2] + * * @param array Is the array or range of data against which to test X. * @param x Is the value to test. * @param sigma Is the population (known) standard deviation. If omitted, the sample standard deviation is used. - * - * [Api set: ExcelApi 1.2] */ z_Test(array: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, x: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult, sigma?: number | Excel.Range | Excel.RangeReference | Excel.FunctionResult): FunctionResult; toJSON(): {}; } - module ErrorCodes { + namespace ErrorCodes { var accessDenied: string; var apiNotFound: string; var generalException: string; @@ -10355,56 +12806,1382 @@ declare module Excel { var notImplemented: string; var unsupportedOperation: string; } -} -declare module Excel { - /** - * The RequestContext object facilitates requests to the Excel application. Since the Office add-in and the Excel application run in two different processes, the request context is required to get access to the Excel object model from the add-in. - */ - class RequestContext extends OfficeExtension.ClientRequestContext { - constructor(url?: string); - workbook: Workbook; + module Interfaces { + /** An interface for updating data on the Worksheet object, for use in "worksheet.set({ ... })". */ + interface WorksheetUpdateData { + /** + * + * The display name of the worksheet. + * + * [Api set: ExcelApi 1.1] + */ + name?: string; + /** + * + * The zero-based position of the worksheet within the workbook. + * + * [Api set: ExcelApi 1.1] + */ + position?: number; + /** + * + * The Visibility of the worksheet. + * + * [Api set: ExcelApi 1.1 for reading visibility; 1.2 for setting it.] + */ + visibility?: string; + } + /** An interface for updating data on the Range object, for use in "range.set({ ... })". */ + interface RangeUpdateData { + /** + * + * Returns a format object, encapsulating the range's font, fill, borders, alignment, and other properties. + * + * [Api set: ExcelApi 1.1] + */ + format?: Excel.Interfaces.RangeFormatUpdateData; + /** + * + * Represents if all columns of the current range are hidden. + * + * [Api set: ExcelApi 1.2] + */ + columnHidden?: boolean; + /** + * + * Represents the formula in A1-style notation. + * + * [Api set: ExcelApi 1.1] + */ + formulas?: Array>; + /** + * + * Represents the formula in A1-style notation, in the user's language and number-formatting locale. For example, the English "=SUM(A1, 1.5)" formula would become "=SUMME(A1; 1,5)" in German. + * + * [Api set: ExcelApi 1.1] + */ + formulasLocal?: Array>; + /** + * + * Represents the formula in R1C1-style notation. + * + * [Api set: ExcelApi 1.2] + */ + formulasR1C1?: Array>; + /** + * + * Represents Excel's number format code for the given cell. + * + * [Api set: ExcelApi 1.1] + */ + numberFormat?: Array>; + /** + * + * Represents if all rows of the current range are hidden. + * + * [Api set: ExcelApi 1.2] + */ + rowHidden?: boolean; + /** + * + * Represents the raw values of the specified range. The data returned could be of type string, number, or a boolean. Cell that contain an error will return the error string. + * + * [Api set: ExcelApi 1.1] + */ + values?: Array>; + } + /** An interface for updating data on the RangeView object, for use in "rangeView.set({ ... })". */ + interface RangeViewUpdateData { + /** + * + * Represents the formula in A1-style notation. + * + * [Api set: ExcelApi 1.3] + */ + formulas?: Array>; + /** + * + * Represents the formula in A1-style notation, in the user's language and number-formatting locale. For example, the English "=SUM(A1, 1.5)" formula would become "=SUMME(A1; 1,5)" in German. + * + * [Api set: ExcelApi 1.3] + */ + formulasLocal?: Array>; + /** + * + * Represents the formula in R1C1-style notation. + * + * [Api set: ExcelApi 1.3] + */ + formulasR1C1?: Array>; + /** + * + * Represents Excel's number format code for the given cell. + * + * [Api set: ExcelApi 1.3] + */ + numberFormat?: Array>; + /** + * + * Represents the raw values of the specified range view. The data returned could be of type string, number, or a boolean. Cell that contain an error will return the error string. + * + * [Api set: ExcelApi 1.3] + */ + values?: Array>; + } + /** An interface for updating data on the Setting object, for use in "setting.set({ ... })". */ + interface SettingUpdateData { + /** + * + * Represents the value stored for this setting. + * + * [Api set: ExcelApi 1.4] + */ + value?: any; + } + /** An interface for updating data on the NamedItem object, for use in "namedItem.set({ ... })". */ + interface NamedItemUpdateData { + /** + * + * Represents the comment associated with this name. + * + * [Api set: ExcelApi 1.4] + */ + comment?: string; + /** + * + * Specifies whether the object is visible or not. + * + * [Api set: ExcelApi 1.1] + */ + visible?: boolean; + } + /** An interface for updating data on the Table object, for use in "table.set({ ... })". */ + interface TableUpdateData { + /** + * + * Indicates whether the first column contains special formatting. + * + * [Api set: ExcelApi 1.3] + */ + highlightFirstColumn?: boolean; + /** + * + * Indicates whether the last column contains special formatting. + * + * [Api set: ExcelApi 1.3] + */ + highlightLastColumn?: boolean; + /** + * + * Name of the table. + * + * [Api set: ExcelApi 1.1] + */ + name?: string; + /** + * + * Indicates whether the columns show banded formatting in which odd columns are highlighted differently from even ones to make reading the table easier. + * + * [Api set: ExcelApi 1.3] + */ + showBandedColumns?: boolean; + /** + * + * Indicates whether the rows show banded formatting in which odd rows are highlighted differently from even ones to make reading the table easier. + * + * [Api set: ExcelApi 1.3] + */ + showBandedRows?: boolean; + /** + * + * Indicates whether the filter buttons are visible at the top of each column header. Setting this is only allowed if the table contains a header row. + * + * [Api set: ExcelApi 1.3] + */ + showFilterButton?: boolean; + /** + * + * Indicates whether the header row is visible or not. This value can be set to show or remove the header row. + * + * [Api set: ExcelApi 1.1] + */ + showHeaders?: boolean; + /** + * + * Indicates whether the total row is visible or not. This value can be set to show or remove the total row. + * + * [Api set: ExcelApi 1.1] + */ + showTotals?: boolean; + /** + * + * Constant value that represents the Table style. Possible values are: TableStyleLight1 thru TableStyleLight21, TableStyleMedium1 thru TableStyleMedium28, TableStyleStyleDark1 thru TableStyleStyleDark11. A custom user-defined style present in the workbook can also be specified. + * + * [Api set: ExcelApi 1.1] + */ + style?: string; + } + /** An interface for updating data on the TableColumn object, for use in "tableColumn.set({ ... })". */ + interface TableColumnUpdateData { + /** + * + * Represents the name of the table column. + * + * [Api set: ExcelApi 1.1 for getting the name; 1.4 for setting it.] + */ + name?: string; + /** + * + * Represents the raw values of the specified range. The data returned could be of type string, number, or a boolean. Cell that contain an error will return the error string. + * + * [Api set: ExcelApi 1.1] + */ + values?: Array>; + } + /** An interface for updating data on the TableRow object, for use in "tableRow.set({ ... })". */ + interface TableRowUpdateData { + /** + * + * Represents the raw values of the specified range. The data returned could be of type string, number, or a boolean. Cell that contain an error will return the error string. + * + * [Api set: ExcelApi 1.1] + */ + values?: Array>; + } + /** An interface for updating data on the RangeFormat object, for use in "rangeFormat.set({ ... })". */ + interface RangeFormatUpdateData { + /** + * + * Returns the fill object defined on the overall range. + * + * [Api set: ExcelApi 1.1] + */ + fill?: Excel.Interfaces.RangeFillUpdateData; + /** + * + * Returns the font object defined on the overall range. + * + * [Api set: ExcelApi 1.1] + */ + font?: Excel.Interfaces.RangeFontUpdateData; + /** + * + * Returns the format protection object for a range. + * + * [Api set: ExcelApi 1.2] + */ + protection?: Excel.Interfaces.FormatProtectionUpdateData; + /** + * + * Gets or sets the width of all colums within the range. If the column widths are not uniform, null will be returned. + * + * [Api set: ExcelApi 1.2] + */ + columnWidth?: number; + /** + * + * Represents the horizontal alignment for the specified object. See Excel.HorizontalAlignment for details. + * + * [Api set: ExcelApi 1.1] + */ + horizontalAlignment?: string; + /** + * + * Gets or sets the height of all rows in the range. If the row heights are not uniform null will be returned. + * + * [Api set: ExcelApi 1.2] + */ + rowHeight?: number; + /** + * + * Represents the vertical alignment for the specified object. See Excel.VerticalAlignment for details. + * + * [Api set: ExcelApi 1.1] + */ + verticalAlignment?: string; + /** + * + * Indicates if Excel wraps the text in the object. A null value indicates that the entire range doesn't have uniform wrap setting + * + * [Api set: ExcelApi 1.1] + */ + wrapText?: boolean; + } + /** An interface for updating data on the FormatProtection object, for use in "formatProtection.set({ ... })". */ + interface FormatProtectionUpdateData { + /** + * + * Indicates if Excel hides the formula for the cells in the range. A null value indicates that the entire range doesn't have uniform formula hidden setting. + * + * [Api set: ExcelApi 1.2] + */ + formulaHidden?: boolean; + /** + * + * Indicates if Excel locks the cells in the object. A null value indicates that the entire range doesn't have uniform lock setting. + * + * [Api set: ExcelApi 1.2] + */ + locked?: boolean; + } + /** An interface for updating data on the RangeFill object, for use in "rangeFill.set({ ... })". */ + interface RangeFillUpdateData { + /** + * + * HTML color code representing the color of the border line, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange") + * + * [Api set: ExcelApi 1.1] + */ + color?: string; + } + /** An interface for updating data on the RangeBorder object, for use in "rangeBorder.set({ ... })". */ + interface RangeBorderUpdateData { + /** + * + * HTML color code representing the color of the border line, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). + * + * [Api set: ExcelApi 1.1] + */ + color?: string; + /** + * + * One of the constants of line style specifying the line style for the border. See Excel.BorderLineStyle for details. + * + * [Api set: ExcelApi 1.1] + */ + style?: string; + /** + * + * Specifies the weight of the border around a range. See Excel.BorderWeight for details. + * + * [Api set: ExcelApi 1.1] + */ + weight?: string; + } + /** An interface for updating data on the RangeFont object, for use in "rangeFont.set({ ... })". */ + interface RangeFontUpdateData { + /** + * + * Represents the bold status of font. + * + * [Api set: ExcelApi 1.1] + */ + bold?: boolean; + /** + * + * HTML color code representation of the text color. E.g. #FF0000 represents Red. + * + * [Api set: ExcelApi 1.1] + */ + color?: string; + /** + * + * Represents the italic status of the font. + * + * [Api set: ExcelApi 1.1] + */ + italic?: boolean; + /** + * + * Font name (e.g. "Calibri") + * + * [Api set: ExcelApi 1.1] + */ + name?: string; + /** + * + * Font size. + * + * [Api set: ExcelApi 1.1] + */ + size?: number; + /** + * + * Type of underline applied to the font. See Excel.RangeUnderlineStyle for details. + * + * [Api set: ExcelApi 1.1] + */ + underline?: string; + } + /** An interface for updating data on the Chart object, for use in "chart.set({ ... })". */ + interface ChartUpdateData { + /** + * + * Represents chart axes. + * + * [Api set: ExcelApi 1.1] + */ + axes?: Excel.Interfaces.ChartAxesUpdateData; + /** + * + * Represents the datalabels on the chart. + * + * [Api set: ExcelApi 1.1] + */ + dataLabels?: Excel.Interfaces.ChartDataLabelsUpdateData; + /** + * + * Encapsulates the format properties for the chart area. + * + * [Api set: ExcelApi 1.1] + */ + format?: Excel.Interfaces.ChartAreaFormatUpdateData; + /** + * + * Represents the legend for the chart. + * + * [Api set: ExcelApi 1.1] + */ + legend?: Excel.Interfaces.ChartLegendUpdateData; + /** + * + * Represents the title of the specified chart, including the text, visibility, position and formating of the title. + * + * [Api set: ExcelApi 1.1] + */ + title?: Excel.Interfaces.ChartTitleUpdateData; + /** + * + * Represents the height, in points, of the chart object. + * + * [Api set: ExcelApi 1.1] + */ + height?: number; + /** + * + * The distance, in points, from the left side of the chart to the worksheet origin. + * + * [Api set: ExcelApi 1.1] + */ + left?: number; + /** + * + * Represents the name of a chart object. + * + * [Api set: ExcelApi 1.1] + */ + name?: string; + /** + * + * Represents the distance, in points, from the top edge of the object to the top of row 1 (on a worksheet) or the top of the chart area (on a chart). + * + * [Api set: ExcelApi 1.1] + */ + top?: number; + /** + * + * Represents the width, in points, of the chart object. + * + * [Api set: ExcelApi 1.1] + */ + width?: number; + } + /** An interface for updating data on the ChartAreaFormat object, for use in "chartAreaFormat.set({ ... })". */ + interface ChartAreaFormatUpdateData { + /** + * + * Represents the font attributes (font name, font size, color, etc.) for the current object. + * + * [Api set: ExcelApi 1.1] + */ + font?: Excel.Interfaces.ChartFontUpdateData; + } + /** An interface for updating data on the ChartSeries object, for use in "chartSeries.set({ ... })". */ + interface ChartSeriesUpdateData { + /** + * + * Represents the formatting of a chart series, which includes fill and line formatting. + * + * [Api set: ExcelApi 1.1] + */ + format?: Excel.Interfaces.ChartSeriesFormatUpdateData; + /** + * + * Represents the name of a series in a chart. + * + * [Api set: ExcelApi 1.1] + */ + name?: string; + } + /** An interface for updating data on the ChartSeriesFormat object, for use in "chartSeriesFormat.set({ ... })". */ + interface ChartSeriesFormatUpdateData { + /** + * + * Represents line formatting. + * + * [Api set: ExcelApi 1.1] + */ + line?: Excel.Interfaces.ChartLineFormatUpdateData; + } + /** An interface for updating data on the ChartAxes object, for use in "chartAxes.set({ ... })". */ + interface ChartAxesUpdateData { + /** + * + * Represents the category axis in a chart. + * + * [Api set: ExcelApi 1.1] + */ + categoryAxis?: Excel.Interfaces.ChartAxisUpdateData; + /** + * + * Represents the series axis of a 3-dimensional chart. + * + * [Api set: ExcelApi 1.1] + */ + seriesAxis?: Excel.Interfaces.ChartAxisUpdateData; + /** + * + * Represents the value axis in an axis. + * + * [Api set: ExcelApi 1.1] + */ + valueAxis?: Excel.Interfaces.ChartAxisUpdateData; + } + /** An interface for updating data on the ChartAxis object, for use in "chartAxis.set({ ... })". */ + interface ChartAxisUpdateData { + /** + * + * Represents the formatting of a chart object, which includes line and font formatting. + * + * [Api set: ExcelApi 1.1] + */ + format?: Excel.Interfaces.ChartAxisFormatUpdateData; + /** + * + * Returns a gridlines object that represents the major gridlines for the specified axis. + * + * [Api set: ExcelApi 1.1] + */ + majorGridlines?: Excel.Interfaces.ChartGridlinesUpdateData; + /** + * + * Returns a Gridlines object that represents the minor gridlines for the specified axis. + * + * [Api set: ExcelApi 1.1] + */ + minorGridlines?: Excel.Interfaces.ChartGridlinesUpdateData; + /** + * + * Represents the axis title. + * + * [Api set: ExcelApi 1.1] + */ + title?: Excel.Interfaces.ChartAxisTitleUpdateData; + /** + * + * Represents the interval between two major tick marks. Can be set to a numeric value or an empty string. The returned value is always a number. + * + * [Api set: ExcelApi 1.1] + */ + majorUnit?: any; + /** + * + * Represents the maximum value on the value axis. Can be set to a numeric value or an empty string (for automatic axis values). The returned value is always a number. + * + * [Api set: ExcelApi 1.1] + */ + maximum?: any; + /** + * + * Represents the minimum value on the value axis. Can be set to a numeric value or an empty string (for automatic axis values). The returned value is always a number. + * + * [Api set: ExcelApi 1.1] + */ + minimum?: any; + /** + * + * Represents the interval between two minor tick marks. "Can be set to a numeric value or an empty string (for automatic axis values). The returned value is always a number. + * + * [Api set: ExcelApi 1.1] + */ + minorUnit?: any; + } + /** An interface for updating data on the ChartAxisFormat object, for use in "chartAxisFormat.set({ ... })". */ + interface ChartAxisFormatUpdateData { + /** + * + * Represents the font attributes (font name, font size, color, etc.) for a chart axis element. + * + * [Api set: ExcelApi 1.1] + */ + font?: Excel.Interfaces.ChartFontUpdateData; + /** + * + * Represents chart line formatting. + * + * [Api set: ExcelApi 1.1] + */ + line?: Excel.Interfaces.ChartLineFormatUpdateData; + } + /** An interface for updating data on the ChartAxisTitle object, for use in "chartAxisTitle.set({ ... })". */ + interface ChartAxisTitleUpdateData { + /** + * + * Represents the formatting of chart axis title. + * + * [Api set: ExcelApi 1.1] + */ + format?: Excel.Interfaces.ChartAxisTitleFormatUpdateData; + /** + * + * Represents the axis title. + * + * [Api set: ExcelApi 1.1] + */ + text?: string; + /** + * + * A boolean that specifies the visibility of an axis title. + * + * [Api set: ExcelApi 1.1] + */ + visible?: boolean; + } + /** An interface for updating data on the ChartAxisTitleFormat object, for use in "chartAxisTitleFormat.set({ ... })". */ + interface ChartAxisTitleFormatUpdateData { + /** + * + * Represents the font attributes, such as font name, font size, color, etc. of chart axis title object. + * + * [Api set: ExcelApi 1.1] + */ + font?: Excel.Interfaces.ChartFontUpdateData; + } + /** An interface for updating data on the ChartDataLabels object, for use in "chartDataLabels.set({ ... })". */ + interface ChartDataLabelsUpdateData { + /** + * + * Represents the format of chart data labels, which includes fill and font formatting. + * + * [Api set: ExcelApi 1.1] + */ + format?: Excel.Interfaces.ChartDataLabelFormatUpdateData; + /** + * + * DataLabelPosition value that represents the position of the data label. See Excel.ChartDataLabelPosition for details. + * + * [Api set: ExcelApi 1.1] + */ + position?: string; + /** + * + * String representing the separator used for the data labels on a chart. + * + * [Api set: ExcelApi 1.1] + */ + separator?: string; + /** + * + * Boolean value representing if the data label bubble size is visible or not. + * + * [Api set: ExcelApi 1.1] + */ + showBubbleSize?: boolean; + /** + * + * Boolean value representing if the data label category name is visible or not. + * + * [Api set: ExcelApi 1.1] + */ + showCategoryName?: boolean; + /** + * + * Boolean value representing if the data label legend key is visible or not. + * + * [Api set: ExcelApi 1.1] + */ + showLegendKey?: boolean; + /** + * + * Boolean value representing if the data label percentage is visible or not. + * + * [Api set: ExcelApi 1.1] + */ + showPercentage?: boolean; + /** + * + * Boolean value representing if the data label series name is visible or not. + * + * [Api set: ExcelApi 1.1] + */ + showSeriesName?: boolean; + /** + * + * Boolean value representing if the data label value is visible or not. + * + * [Api set: ExcelApi 1.1] + */ + showValue?: boolean; + } + /** An interface for updating data on the ChartDataLabelFormat object, for use in "chartDataLabelFormat.set({ ... })". */ + interface ChartDataLabelFormatUpdateData { + /** + * + * Represents the font attributes (font name, font size, color, etc.) for a chart data label. + * + * [Api set: ExcelApi 1.1] + */ + font?: Excel.Interfaces.ChartFontUpdateData; + } + /** An interface for updating data on the ChartGridlines object, for use in "chartGridlines.set({ ... })". */ + interface ChartGridlinesUpdateData { + /** + * + * Represents the formatting of chart gridlines. + * + * [Api set: ExcelApi 1.1] + */ + format?: Excel.Interfaces.ChartGridlinesFormatUpdateData; + /** + * + * Boolean value representing if the axis gridlines are visible or not. + * + * [Api set: ExcelApi 1.1] + */ + visible?: boolean; + } + /** An interface for updating data on the ChartGridlinesFormat object, for use in "chartGridlinesFormat.set({ ... })". */ + interface ChartGridlinesFormatUpdateData { + /** + * + * Represents chart line formatting. + * + * [Api set: ExcelApi 1.1] + */ + line?: Excel.Interfaces.ChartLineFormatUpdateData; + } + /** An interface for updating data on the ChartLegend object, for use in "chartLegend.set({ ... })". */ + interface ChartLegendUpdateData { + /** + * + * Represents the formatting of a chart legend, which includes fill and font formatting. + * + * [Api set: ExcelApi 1.1] + */ + format?: Excel.Interfaces.ChartLegendFormatUpdateData; + /** + * + * Boolean value for whether the chart legend should overlap with the main body of the chart. + * + * [Api set: ExcelApi 1.1] + */ + overlay?: boolean; + /** + * + * Represents the position of the legend on the chart. See Excel.ChartLegendPosition for details. + * + * [Api set: ExcelApi 1.1] + */ + position?: string; + /** + * + * A boolean value the represents the visibility of a ChartLegend object. + * + * [Api set: ExcelApi 1.1] + */ + visible?: boolean; + } + /** An interface for updating data on the ChartLegendFormat object, for use in "chartLegendFormat.set({ ... })". */ + interface ChartLegendFormatUpdateData { + /** + * + * Represents the font attributes such as font name, font size, color, etc. of a chart legend. + * + * [Api set: ExcelApi 1.1] + */ + font?: Excel.Interfaces.ChartFontUpdateData; + } + /** An interface for updating data on the ChartTitle object, for use in "chartTitle.set({ ... })". */ + interface ChartTitleUpdateData { + /** + * + * Represents the formatting of a chart title, which includes fill and font formatting. + * + * [Api set: ExcelApi 1.1] + */ + format?: Excel.Interfaces.ChartTitleFormatUpdateData; + /** + * + * Boolean value representing if the chart title will overlay the chart or not. + * + * [Api set: ExcelApi 1.1] + */ + overlay?: boolean; + /** + * + * Represents the title text of a chart. + * + * [Api set: ExcelApi 1.1] + */ + text?: string; + /** + * + * A boolean value the represents the visibility of a chart title object. + * + * [Api set: ExcelApi 1.1] + */ + visible?: boolean; + } + /** An interface for updating data on the ChartTitleFormat object, for use in "chartTitleFormat.set({ ... })". */ + interface ChartTitleFormatUpdateData { + /** + * + * Represents the font attributes (font name, font size, color, etc.) for an object. + * + * [Api set: ExcelApi 1.1] + */ + font?: Excel.Interfaces.ChartFontUpdateData; + } + /** An interface for updating data on the ChartLineFormat object, for use in "chartLineFormat.set({ ... })". */ + interface ChartLineFormatUpdateData { + /** + * + * HTML color code representing the color of lines in the chart. + * + * [Api set: ExcelApi 1.1] + */ + color?: string; + } + /** An interface for updating data on the ChartFont object, for use in "chartFont.set({ ... })". */ + interface ChartFontUpdateData { + /** + * + * Represents the bold status of font. + * + * [Api set: ExcelApi 1.1] + */ + bold?: boolean; + /** + * + * HTML color code representation of the text color. E.g. #FF0000 represents Red. + * + * [Api set: ExcelApi 1.1] + */ + color?: string; + /** + * + * Represents the italic status of the font. + * + * [Api set: ExcelApi 1.1] + */ + italic?: boolean; + /** + * + * Font name (e.g. "Calibri") + * + * [Api set: ExcelApi 1.1] + */ + name?: string; + /** + * + * Size of the font (e.g. 11) + * + * [Api set: ExcelApi 1.1] + */ + size?: number; + /** + * + * Type of underline applied to the font. See Excel.ChartUnderlineStyle for details. + * + * [Api set: ExcelApi 1.1] + */ + underline?: string; + } + /** An interface for updating data on the PivotTable object, for use in "pivotTable.set({ ... })". */ + interface PivotTableUpdateData { + /** + * + * Name of the PivotTable. + * + * [Api set: ExcelApi 1.3] + */ + name?: string; + } + /** An interface for updating data on the ConditionalFormat object, for use in "conditionalFormat.set({ ... })". */ + interface ConditionalFormatUpdateData { + /** + * + * Returns the cell value conditional format properties if the current conditional format is a CellValue type. + For example to format all cells between 5 and 10. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + cellValue?: Excel.Interfaces.CellValueConditionalFormatUpdateData; + /** + * + * Returns the cell value conditional format properties if the current conditional format is a CellValue type. + For example to format all cells between 5 and 10. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + cellValueOrNullObject?: Excel.Interfaces.CellValueConditionalFormatUpdateData; + /** + * + * Returns the ColorScale conditional format properties if the current conditional format is an ColorScale type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + colorScale?: Excel.Interfaces.ColorScaleConditionalFormatUpdateData; + /** + * + * Returns the ColorScale conditional format properties if the current conditional format is an ColorScale type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + colorScaleOrNullObject?: Excel.Interfaces.ColorScaleConditionalFormatUpdateData; + /** + * + * Returns the custom conditional format properties if the current conditional format is a custom type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + custom?: Excel.Interfaces.CustomConditionalFormatUpdateData; + /** + * + * Returns the custom conditional format properties if the current conditional format is a custom type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + customOrNullObject?: Excel.Interfaces.CustomConditionalFormatUpdateData; + /** + * + * Returns the data bar properties if the current conditional format is a data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + dataBar?: Excel.Interfaces.DataBarConditionalFormatUpdateData; + /** + * + * Returns the data bar properties if the current conditional format is a data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + dataBarOrNullObject?: Excel.Interfaces.DataBarConditionalFormatUpdateData; + /** + * + * Returns the IconSet conditional format properties if the current conditional format is an IconSet type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + iconSet?: Excel.Interfaces.IconSetConditionalFormatUpdateData; + /** + * + * Returns the IconSet conditional format properties if the current conditional format is an IconSet type. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + iconSetOrNullObject?: Excel.Interfaces.IconSetConditionalFormatUpdateData; + /** + * + * Returns the preset criteria conditional format such as above average/below average/unique values/contains blank/nonblank/error/noerror properties. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + preset?: Excel.Interfaces.PresetCriteriaConditionalFormatUpdateData; + /** + * + * Returns the preset criteria conditional format such as above average/below average/unique values/contains blank/nonblank/error/noerror properties. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + presetOrNullObject?: Excel.Interfaces.PresetCriteriaConditionalFormatUpdateData; + /** + * + * Returns the specific text conditional format properties if the current conditional format is a text type. + For example to format cells matching the word "Text". + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + textComparison?: Excel.Interfaces.TextConditionalFormatUpdateData; + /** + * + * Returns the specific text conditional format properties if the current conditional format is a text type. + For example to format cells matching the word "Text". + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + textComparisonOrNullObject?: Excel.Interfaces.TextConditionalFormatUpdateData; + /** + * + * Returns the Top/Bottom conditional format properties if the current conditional format is an TopBottom type. + For example to format the top 10% or bottom 10 items. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + topBottom?: Excel.Interfaces.TopBottomConditionalFormatUpdateData; + /** + * + * Returns the Top/Bottom conditional format properties if the current conditional format is an TopBottom type. + For example to format the top 10% or bottom 10 items. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + topBottomOrNullObject?: Excel.Interfaces.TopBottomConditionalFormatUpdateData; + /** + * + * The priority (or index) within the conditional format collection that this conditional format currently exists in. Changing this also + changes other conditional formats' priorities, to allow for a contiguous priority order. + Use a negative priority to begin from the back. + Priorities greater than than bounds will get and set to the maximum (or minimum if negative) priority. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + priority?: number; + /** + * + * If the conditions of this conditional format are met, no lower-priority formats shall take effect on that cell. + Null on databars, icon sets, and colorscales as there's no concept of StopIfTrue for these + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + stopIfTrue?: boolean; + } + /** An interface for updating data on the DataBarConditionalFormat object, for use in "dataBarConditionalFormat.set({ ... })". */ + interface DataBarConditionalFormatUpdateData { + /** + * + * Representation of all values to the left of the axis in an Excel data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + negativeFormat?: Excel.Interfaces.ConditionalDataBarNegativeFormatUpdateData; + /** + * + * Representation of all values to the right of the axis in an Excel data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + positiveFormat?: Excel.Interfaces.ConditionalDataBarPositiveFormatUpdateData; + /** + * + * HTML color code representing the color of the Axis line, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). + "" (empty string) if no axis is present or set. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + axisColor?: string; + /** + * + * Representation of how the axis is determined for an Excel data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + axisFormat?: string; + /** + * + * Represents the direction that the data bar graphic should be based on. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + barDirection?: string; + /** + * + * The rule for what consistutes the lower bound (and how to calculate it, if applicable) for a data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + lowerBoundRule?: Excel.ConditionalDataBarRule; + /** + * + * If true, hides the values from the cells where the data bar is applied. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + showDataBarOnly?: boolean; + /** + * + * The rule for what constitutes the upper bound (and how to calculate it, if applicable) for a data bar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + upperBoundRule?: Excel.ConditionalDataBarRule; + } + /** An interface for updating data on the ConditionalDataBarPositiveFormat object, for use in "conditionalDataBarPositiveFormat.set({ ... })". */ + interface ConditionalDataBarPositiveFormatUpdateData { + /** + * + * HTML color code representing the color of the border line, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). + "" (empty string) if no border is present or set. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + borderColor?: string; + /** + * + * HTML color code representing the fill color, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + fillColor?: string; + /** + * + * Boolean representation of whether or not the DataBar has a gradient. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + gradientFill?: boolean; + } + /** An interface for updating data on the ConditionalDataBarNegativeFormat object, for use in "conditionalDataBarNegativeFormat.set({ ... })". */ + interface ConditionalDataBarNegativeFormatUpdateData { + /** + * + * HTML color code representing the color of the border line, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). + "Empty String" if no border is present or set. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + borderColor?: string; + /** + * + * HTML color code representing the fill color, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + fillColor?: string; + /** + * + * Boolean representation of whether or not the negative DataBar has the same border color as the positive DataBar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + matchPositiveBorderColor?: boolean; + /** + * + * Boolean representation of whether or not the negative DataBar has the same fill color as the positive DataBar. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + matchPositiveFillColor?: boolean; + } + /** An interface for updating data on the CustomConditionalFormat object, for use in "customConditionalFormat.set({ ... })". */ + interface CustomConditionalFormatUpdateData { + /** + * + * Returns a format object, encapsulating the conditional formats font, fill, borders, and other properties. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + format?: Excel.Interfaces.ConditionalRangeFormatUpdateData; + /** + * + * Represents the Rule object on this conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + rule?: Excel.Interfaces.ConditionalFormatRuleUpdateData; + } + /** An interface for updating data on the ConditionalFormatRule object, for use in "conditionalFormatRule.set({ ... })". */ + interface ConditionalFormatRuleUpdateData { + /** + * + * The formula, if required, to evaluate the conditional format rule on. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + formula?: string; + /** + * + * The formula, if required, to evaluate the conditional format rule on in the user's language. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + formulaLocal?: string; + /** + * + * The formula, if required, to evaluate the conditional format rule on in R1C1-style notation. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + formulaR1C1?: string; + } + /** An interface for updating data on the IconSetConditionalFormat object, for use in "iconSetConditionalFormat.set({ ... })". */ + interface IconSetConditionalFormatUpdateData { + /** + * + * An array of Criteria and IconSets for the rules and potential custom icons for conditional icons. Note that for the first criterion only the custom icon can be modified, while type, formula and operator will be ignored when set. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + criteria?: Array; + /** + * + * If true, reverses the icon orders for the IconSet. Note that this cannot be set if custom icons are used. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + reverseIconOrder?: boolean; + /** + * + * If true, hides the values and only shows icons. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + showIconOnly?: boolean; + /** + * + * If set, displays the IconSet option for the conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + style?: string; + } + /** An interface for updating data on the ColorScaleConditionalFormat object, for use in "colorScaleConditionalFormat.set({ ... })". */ + interface ColorScaleConditionalFormatUpdateData { + /** + * + * The criteria of the color scale. Midpoint is optional when using a two point color scale. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + criteria?: Excel.ConditionalColorScaleCriteria; + } + /** An interface for updating data on the TopBottomConditionalFormat object, for use in "topBottomConditionalFormat.set({ ... })". */ + interface TopBottomConditionalFormatUpdateData { + /** + * + * Returns a format object, encapsulating the conditional formats font, fill, borders, and other properties. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + format?: Excel.Interfaces.ConditionalRangeFormatUpdateData; + /** + * + * The criteria of the Top/Bottom conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + rule?: Excel.ConditionalTopBottomRule; + } + /** An interface for updating data on the PresetCriteriaConditionalFormat object, for use in "presetCriteriaConditionalFormat.set({ ... })". */ + interface PresetCriteriaConditionalFormatUpdateData { + /** + * + * Returns a format object, encapsulating the conditional formats font, fill, borders, and other properties. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + format?: Excel.Interfaces.ConditionalRangeFormatUpdateData; + /** + * + * The rule of the conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + rule?: Excel.ConditionalPresetCriteriaRule; + } + /** An interface for updating data on the TextConditionalFormat object, for use in "textConditionalFormat.set({ ... })". */ + interface TextConditionalFormatUpdateData { + /** + * + * Returns a format object, encapsulating the conditional formats font, fill, borders, and other properties. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + format?: Excel.Interfaces.ConditionalRangeFormatUpdateData; + /** + * + * The rule of the conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + rule?: Excel.ConditionalTextComparisonRule; + } + /** An interface for updating data on the CellValueConditionalFormat object, for use in "cellValueConditionalFormat.set({ ... })". */ + interface CellValueConditionalFormatUpdateData { + /** + * + * Returns a format object, encapsulating the conditional formats font, fill, borders, and other properties. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + format?: Excel.Interfaces.ConditionalRangeFormatUpdateData; + /** + * + * Represents the Rule object on this conditional format. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + rule?: Excel.ConditionalCellValueRule; + } + /** An interface for updating data on the ConditionalRangeFormat object, for use in "conditionalRangeFormat.set({ ... })". */ + interface ConditionalRangeFormatUpdateData { + /** + * + * Represents Excel's number format code for the given range. Cleared if null is passed in. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + numberFormat?: any; + } + /** An interface for updating data on the ConditionalRangeFont object, for use in "conditionalRangeFont.set({ ... })". */ + interface ConditionalRangeFontUpdateData { + /** + * + * Represents the bold status of font. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + bold?: boolean; + /** + * + * HTML color code representation of the text color. E.g. #FF0000 represents Red. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + color?: string; + /** + * + * Represents the italic status of the font. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + italic?: boolean; + /** + * + * Represents the strikethrough status of the font. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + strikethrough?: boolean; + /** + * + * Type of underline applied to the font. See Excel.ConditionalRangeFontUnderlineStyle for details. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + underline?: string; + } + /** An interface for updating data on the ConditionalRangeFill object, for use in "conditionalRangeFill.set({ ... })". */ + interface ConditionalRangeFillUpdateData { + /** + * + * HTML color code representing the color of the fill, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + color?: string; + } + /** An interface for updating data on the ConditionalRangeBorder object, for use in "conditionalRangeBorder.set({ ... })". */ + interface ConditionalRangeBorderUpdateData { + /** + * + * HTML color code representing the color of the border line, of the form #RRGGBB (e.g. "FFA500") or as a named HTML color (e.g. "orange"). + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + color?: string; + /** + * + * One of the constants of line style specifying the line style for the border. See Excel.BorderLineStyle for details. + * + * [Api set: ExcelApi 1.6 (PREVIEW)] + */ + style?: string; + } } - /** - * Executes a batch script that performs actions on the Excel object model, using a new RequestContext. When the promise is resolved, any tracked objects that were automatically allocated during execution will be released. - * @param batch - A function that takes in a RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the Excel application. Since the Office add-in and the Excel application run in two different processes, the RequestContext is required to get access to the Excel object model from the add-in. - */ - function run(batch: (context: Excel.RequestContext) => OfficeExtension.IPromise): OfficeExtension.IPromise; - /** - * Executes a batch script that performs actions on the Excel object model, using a new remote RequestContext. When the promise is resolved, any tracked objects that were automatically allocated during execution will be released. - * @param requestInfo - The URL of the remote workbook and the request headers to be sent. - * @param batch - A function that takes in a RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the Excel application. Since the Office add-in and the Excel application run in two different processes, the RequestContext is required to get access to the Excel object model from the add-in. - */ - function run(requestInfo: OfficeExtension.RequestUrlAndHeaderInfo, batch: (context: Excel.RequestContext) => OfficeExtension.IPromise): OfficeExtension.IPromise; - /** - * Executes a batch script that performs actions on the Excel object model, using the RequestContext of a previously-created API object. When the promise is resolved, any tracked objects that were automatically allocated during execution will be released. - * @param object - A previously-created API object. The batch will use the same RequestContext as the passed-in object, which means that any changes applied to the object will be picked up by "context.sync()". - * @param batch - A function that takes in a RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the Excel application. Since the Office add-in and the Excel application run in two different processes, the RequestContext is required to get access to the Excel object model from the add-in. - */ - function run(object: OfficeExtension.ClientObject, batch: (context: Excel.RequestContext) => OfficeExtension.IPromise): OfficeExtension.IPromise; - /** - * Executes a batch script that performs actions on the Excel object model, using the remote RequestContext of a previously-created API object. When the promise is resolved, any tracked objects that were automatically allocated during execution will be released. - * @param requestInfo - The URL of the remote workbook and the request headers to be sent. - * @param object - A previously-created API object. The batch will use the same RequestContext as the passed-in object, which means that any changes applied to the object will be picked up by "context.sync()". - * @param batch - A function that takes in a RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the Excel application. Since the Office add-in and the Excel application run in two different processes, the RequestContext is required to get access to the Excel object model from the add-in. - */ - function run(requestInfo: OfficeExtension.RequestUrlAndHeaderInfo, object: OfficeExtension.ClientObject, batch: (context: Excel.RequestContext) => OfficeExtension.IPromise): OfficeExtension.IPromise; - /** - * Executes a batch script that performs actions on the Excel object model, using the RequestContext of previously-created API objects. - * @param objects - An array of previously-created API objects. The array will be validated to make sure that all of the objects share the same context. The batch will use this shared RequestContext, which means that any changes applied to these objects will be picked up by "context.sync()". - * @param batch - A function that takes in a RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the Excel application. Since the Office add-in and the Excel application run in two different processes, the RequestContext is required to get access to the Excel object model from the add-in. - */ - function run(objects: OfficeExtension.ClientObject[], batch: (context: Excel.RequestContext) => OfficeExtension.IPromise): OfficeExtension.IPromise; - /** - * Executes a batch script that performs actions on the Excel object model, using the remote RequestContext of previously-created API objects. - * @param requestInfo - The URL of the remote workbook and the request headers to be sent. - * @param objects - An array of previously-created API objects. The array will be validated to make sure that all of the objects share the same context. The batch will use this shared RequestContext, which means that any changes applied to these objects will be picked up by "context.sync()". - * @param batch - A function that takes in a RequestContext and returns a promise (typically, just the result of "context.sync()"). The context parameter facilitates requests to the Excel application. Since the Office add-in and the Excel application run in two different processes, the RequestContext is required to get access to the Excel object model from the add-in. - */ - function run(requestInfo: OfficeExtension.RequestUrlAndHeaderInfo, objects: OfficeExtension.ClientObject[], batch: (context: Excel.RequestContext) => OfficeExtension.IPromise): OfficeExtension.IPromise; } - //////////////////////////////////////////////////////////////// //////////////////////// End Excel APIs //////////////////////// //////////////////////////////////////////////////////////////// @@ -10418,10 +14195,9 @@ declare module Excel { //////////////////////////////////////////////////////////////// -//////////////////////// Begin Word APIs /////////////////////// +/////////////////////// Begin Word APIs //////////////////////// //////////////////////////////////////////////////////////////// - declare namespace Word { /** * @@ -15825,11 +19601,8 @@ declare module Word { } - - - //////////////////////////////////////////////////////////////// -///////////////////////// End Word APIs //////////////////////// +//////////////////////// End Word APIs ///////////////////////// //////////////////////////////////////////////////////////////// diff --git a/types/office-js/office-js-tests.ts b/types/office-js/office-js-tests.ts index 768ed7ae5d..d5a874693a 100644 --- a/types/office-js/office-js-tests.ts +++ b/types/office-js/office-js-tests.ts @@ -6,64 +6,64 @@ Copyright (c) Microsoft Corporation function test_excel() { - + // Range - Excel.run(function(ctx) { + Excel.run(function (ctx) { var range = ctx.workbook.getSelectedRange().load("values"); return ctx.sync() - .then(function() { + .then(function () { var vals = range.values; - for (var i = 0; i < vals.length; i++){ - for (var j = 0; j < vals[i].length; j++){ + for (var i = 0; i < vals.length; i++) { + for (var j = 0; j < vals[i].length; j++) { vals[i][j] = vals[i][j].toUpperCase(); } } range.values = vals; }) - .then(ctx.sync); + .then(ctx.sync); }).catch(function (error) { console.log(error); }); - - + + // Chart Excel.run(function (ctx) { var sheet = ctx.workbook.worksheets.getItem("Sheet1"); - + var range = sheet.getRange("A1:B3"); range.values = [ ["", "Gender"], ["Male", 12], ["Female", 14] ]; - - var chart = sheet.charts.add("pie", range, "auto"); - + + var chart = sheet.charts.add(Excel.ChartType._3DColumn, range, "auto"); + chart.format.fill.setSolidColor("F8F8FF"); - + chart.title.text = "Class Demographics"; chart.title.format.font.bold = true; chart.title.format.font.size = 18; chart.title.format.font.color = "568568"; - + chart.legend.position = "right"; chart.legend.format.font.name = "Algerian"; chart.legend.format.font.size = 13; - + chart.dataLabels.showPercentage = true; chart.dataLabels.format.font.size = 15; chart.dataLabels.format.font.color = "444444"; - + var points = chart.series.getItemAt(0).points; points.getItemAt(0).format.fill.setSolidColor("8FBC8F"); points.getItemAt(1).format.fill.setSolidColor("D87093"); - + return ctx.sync(); }).catch(function (error) { console.log(error); }); - - + + // Table Excel.run(function (ctx) { var rows = ctx.workbook.tables.getItem("Table1").rows.load("values"); @@ -71,77 +71,95 @@ function test_excel() { .then(function () { var largestRow = 0; var largestValue = 0; - - for (var i = 0; i < rows.items.length; i++){ - if (rows.items[i].values[0][1] > largestValue){ + + for (var i = 0; i < rows.items.length; i++) { + if (rows.items[i].values[0][1] > largestValue) { largestRow = i; largestValue = rows.items[i].values[0][1]; } } - + var largestRowRng = rows.getItemAt(largestRow).getRange(); largestRowRng.format.fill.color = "#ff0000"; - + }) - .then(ctx.sync); + .then(ctx.sync); }).catch(function (error) { console.log(error); }); - + + + // Object.set + Excel.run(ctx => { + const range = ctx.workbook.getSelectedRange(); + range.set({ + values: [[1]], + format: { + font: { + bold: true + }, + fill: { + color: "red" + } + } + }); + + return ctx.sync(); + }).catch(console.log); } function test_word() { - + // Search Word.run(function (context) { - + // Create a proxy object for the document body. var body = context.document.body; - + // Setup the search options. var options = Word.SearchOptions.newObject(context); options.matchCase = false - + // Queue a commmand to search the document. var searchResults = context.document.body.search('video', options); - + // Queue a commmand to load the results. context.load(searchResults, 'text, font'); - + // Synchronize the document state by executing the queued-up commands, // and return a promise to indicate task completion. return context.sync().then(function () { - var results = 'Found count: ' + searchResults.items.length + - '; we highlighted the results.'; - + var results = 'Found count: ' + searchResults.items.length + + '; we highlighted the results.'; + // Queue a command to change the font for each found item. for (var i = 0; i < searchResults.items.length; i++) { - searchResults.items[i].font.color = '#FF0000' // Change color to Red - searchResults.items[i].font.highlightColor = '#FFFF00'; - searchResults.items[i].font.bold = true; + searchResults.items[i].font.color = '#FF0000' // Change color to Red + searchResults.items[i].font.highlightColor = '#FFFF00'; + searchResults.items[i].font.bold = true; } - + // Synchronize the document state by executing the queued-up commands, // and return a promise to indicate task completion. return context.sync().then(function () { console.log(results); - }); - }); + }); + }); }) - .catch(function (error) { - console.log('Error: ' + JSON.stringify(error)); - if (error instanceof OfficeExtension.Error) { - console.log('Debug info: ' + JSON.stringify(error.debugInfo)); - } - }); + .catch(function (error) { + console.log('Error: ' + JSON.stringify(error)); + if (error instanceof OfficeExtension.Error) { + console.log('Debug info: ' + JSON.stringify(error.debugInfo)); + } + }); + - // Content control Word.run(function (context) { - + // Create a proxy range object for the current selection. var range = context.document.getSelection(); - + // Queue a commmand to create the content control. var myContentControl = range.insertContentControl(); myContentControl.tag = 'Customer-Address'; @@ -150,84 +168,84 @@ function test_word() { myContentControl.insertText('One Microsoft Way, Redmond, WA 98052', 'replace'); myContentControl.cannotEdit = true; myContentControl.appearance = 'tags'; - + // Queue a command to load the id property for the content control you created. context.load(myContentControl, 'id'); - + // Synchronize the document state by executing the queued-up commands, // and return a promise to indicate task completion. return context.sync().then(function () { console.log('Created content control with id: ' + myContentControl.id); - }); + }); }) - .catch(function (error) { - console.log('Error: ' + JSON.stringify(error)); - if (error instanceof OfficeExtension.Error) { - console.log('Debug info: ' + JSON.stringify(error.debugInfo)); - } - }); + .catch(function (error) { + console.log('Error: ' + JSON.stringify(error)); + if (error instanceof OfficeExtension.Error) { + console.log('Debug info: ' + JSON.stringify(error.debugInfo)); + } + }); - // Body.insertInlinePictureFromBase64 Word 1.1 - Word.run(function(context) { - - // Create a proxy body object. - var body = context.document.body; + // Body.insertInlinePictureFromBase64 Word 1.1 + Word.run(function (context) { - // Queue a command to insert the image into the document. - var image = body.insertInlinePictureFromBase64('', Word.InsertLocation.start); - - // Queue a command to select the image. - image.select(); - - // Synchronize the document state by executing the queued commands, - // and returning a promise to indicate task completion. - return context.sync() - }) - .catch(function(error) { - console.log('Error: ' + JSON.stringify(error)); - if (error instanceof OfficeExtension.Error) { - console.log('Debug info: ' + JSON.stringify(error.debugInfo)); - } - }); - - // Body.insertInlinePictureFromBase64 Word 1.2 - Word.run((context) => { + // Create a proxy body object. + var body = context.document.body; - // Create a proxy object for the range at the current selection. - var imageRange = context.document.getSelection(); + // Queue a command to insert the image into the document. + var image = body.insertInlinePictureFromBase64('', Word.InsertLocation.start); - // Load the selected range. - context.load(imageRange, 'text'); + // Queue a command to select the image. + image.select(); - // Synchronize the document state by executing the queued commands, - // and return a promise to indicate task completion. - return context.sync() - .then(() => { + // Synchronize the document state by executing the queued commands, + // and returning a promise to indicate task completion. + return context.sync() + }) + .catch(function (error) { + console.log('Error: ' + JSON.stringify(error)); + if (error instanceof OfficeExtension.Error) { + console.log('Debug info: ' + JSON.stringify(error.debugInfo)); + } + }); - // Queue a command to insert the image into the document. - var insertedImage = imageRange.insertInlinePictureFromBase64('', Word.InsertLocation.replace); + // Body.insertInlinePictureFromBase64 Word 1.2 + Word.run((context) => { - // Queue a command to navigate the UI to the insert picture. - insertedImage.select(); + // Create a proxy object for the range at the current selection. + var imageRange = context.document.getSelection(); - // Queue an indefinite number of commands to insert paragraphs - // based on the number of callouts added to the image. - if (this._calloutNumber > 0) { - var lastParagraph = insertedImage.insertParagraph('Here are your callout descriptions:', Word.InsertLocation.after) as Word.Paragraph; + // Load the selected range. + context.load(imageRange, 'text'); - for (var i = 0; i < this._calloutNumber; i++) { - lastParagraph = lastParagraph.insertParagraph((i + 1) + ') [enter callout description].', Word.InsertLocation.after); - } - } - }) - // Synchronize the document state by executing the queued commands. - .then(context.sync); - }) - .catch((error) => { - console.log('Error: ' + JSON.stringify(error)); - if (error instanceof OfficeExtension.Error) { - console.log('Debug info: ' + JSON.stringify(error.debugInfo)); - } - }); + // Synchronize the document state by executing the queued commands, + // and return a promise to indicate task completion. + return context.sync() + .then(() => { + + // Queue a command to insert the image into the document. + var insertedImage = imageRange.insertInlinePictureFromBase64('', Word.InsertLocation.replace); + + // Queue a command to navigate the UI to the insert picture. + insertedImage.select(); + + // Queue an indefinite number of commands to insert paragraphs + // based on the number of callouts added to the image. + if (this._calloutNumber > 0) { + var lastParagraph = insertedImage.insertParagraph('Here are your callout descriptions:', Word.InsertLocation.after) as Word.Paragraph; + + for (var i = 0; i < this._calloutNumber; i++) { + lastParagraph = lastParagraph.insertParagraph((i + 1) + ') [enter callout description].', Word.InsertLocation.after); + } + } + }) + // Synchronize the document state by executing the queued commands. + .then(context.sync); + }) + .catch((error) => { + console.log('Error: ' + JSON.stringify(error)); + if (error instanceof OfficeExtension.Error) { + console.log('Debug info: ' + JSON.stringify(error.debugInfo)); + } + }); } From 4e341618558c54f3e621aaa16c29666ee49195e8 Mon Sep 17 00:00:00 2001 From: Nick Redmond Date: Fri, 28 Apr 2017 09:44:09 -0700 Subject: [PATCH 080/321] react-native: PermissionsAndroid should have requestMultiple method --- types/react-native/index.d.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/types/react-native/index.d.ts b/types/react-native/index.d.ts index a87295fdf0..fe7602bb9f 100644 --- a/types/react-native/index.d.ts +++ b/types/react-native/index.d.ts @@ -7053,6 +7053,12 @@ export interface PermissionsAndroidStatic { * and then shows the system permission dialog */ request(permission: Permission, rationale?: Rationale): Promise + /** + * Prompts the user to enable multiple permissions in the same dialog and + * returns an object with the permissions as keys and strings as values + * indicating whether the user allowed or denied the request + */ + requestMultiple(permissions: Array): Promise<{[permission: string]: PermissionStatus}> } export interface PushNotificationPermissions { From 767259eaa9f2092c481e63fafd6594b5e32306c4 Mon Sep 17 00:00:00 2001 From: Guilhem Brouat Date: Fri, 28 Apr 2017 19:41:13 +0200 Subject: [PATCH 081/321] =?UTF-8?q?[openlayers]=20Added=20missing=20functi?= =?UTF-8?q?ons=20and=20configuration=20property=20added=E2=80=A6=20(#16167?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [openlayers] Added missing functions and configuration property added by openlayers 4.1.0 * Added tests --- types/openlayers/index.d.ts | 94 +++++++++++++++++----------- types/openlayers/openlayers-tests.ts | 37 +++++++---- 2 files changed, 84 insertions(+), 47 deletions(-) diff --git a/types/openlayers/index.d.ts b/types/openlayers/index.d.ts index b9d2c55ef6..577e2f485a 100644 --- a/types/openlayers/index.d.ts +++ b/types/openlayers/index.d.ts @@ -1,6 +1,6 @@ -// Type definitions for OpenLayers v4.0.1 +// Type definitions for OpenLayers v4.1.0 // Project: http://openlayers.org/ -// Definitions by: Olivier Sechet +// Definitions by: Olivier Sechet , Guilhem Brouat // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // Definitions partially generated using tsd-jsdoc (https://github.com/englercj/tsd-jsdoc) @@ -4919,28 +4919,28 @@ declare module ol { * @param {ol.proj.Projection=} opt_projection Projection. */ constructor(type: ol.interaction.DragAndDropEventType, file: File, opt_features?: ol.Feature[], opt_projection?: ol.proj.Projection); - + /** * The features parsed from dropped data. * @type {Array.|undefined} * @api stable */ features: ol.Feature[]; - + /** * The dropped file. * @type {File} * @api stable */ file: File; - + /** * The feature projection. * @type {ol.proj.Projection|undefined} * @api */ projection: ol.proj.Projection; - + } } @@ -5023,7 +5023,7 @@ declare module ol { * @implements {oli.DragBoxEvent} */ constructor(type: string, coordinate: ol.Coordinate, mapBrowserEvent: ol.MapBrowserEvent); - + /** * The coordinate of the drag event. * @const @@ -5031,14 +5031,14 @@ declare module ol { * @api stable */ coordinate: ol.Coordinate; - + /** * @const * @type {ol.MapBrowserEvent} * @api */ mapBrowserEvent: ol.MapBrowserEvent; - + } } @@ -5195,14 +5195,14 @@ declare module ol { * @param {ol.Feature} feature The feature drawn. */ constructor(type: ol.interaction.DrawEventType, feature: ol.Feature); - + /** * The feature being drawn. * @type {ol.Feature} * @api stable */ feature: ol.Feature; - + } } @@ -5500,21 +5500,21 @@ declare module ol { * {@link ol.MapBrowserPointerEvent}. */ constructor(type: ol.ModifyEventType, features: ol.Collection, mapBrowserPointerEvent: ol.MapBrowserPointerEvent); - + /** * The features being modified. * @type {ol.Collection.} * @api */ features: ol.Collection; - + /** * Associated {@link ol.MapBrowserEvent}. * @type {ol.MapBrowserEvent} * @api */ mapBrowserEvent: ol.MapBrowserEvent; - + } } @@ -5722,28 +5722,28 @@ declare module ol { * @constructor */ constructor(type: string, selected: ol.Feature[], deselected: ol.Feature[], mapBrowserEvent: ol.MapBrowserEvent); - + /** * Selected features array. * @type {Array.} * @api */ selected: ol.Feature[]; - + /** * Deselected features array. * @type {Array.} * @api */ deselected: ol.Feature[]; - + /** * Associated {@link ol.MapBrowserEvent}. * @type {ol.MapBrowserEvent} * @api */ mapBrowserEvent: ol.MapBrowserEvent; - + } } @@ -5922,14 +5922,14 @@ declare module ol { * @param {ol.Coordinate} coordinate The event coordinate. */ constructor(type: ol.interaction.TranslateEventType, features: ol.Collection, coordinate: ol.Coordinate); - + /** * The features being translated. * @type {ol.Collection.} * @api */ features: ol.Collection; - + /** * The coordinate of the drag event. * @const @@ -5937,7 +5937,7 @@ declare module ol { * @api */ coordinate: ol.Coordinate; - + } } @@ -7854,18 +7854,18 @@ declare module ol { } - /** - * Register proj4. If not explicitly registered, it will be assumed that - * proj4js will be loaded in the global namespace. For example in a - * browserify ES6 environment you could use: - * - * import ol from 'openlayers'; - * import proj4 from 'proj4'; - * ol.proj.setProj4(proj4); - * - * @param {any} proj4 Proj4. - * @api - */ + /** + * Register proj4. If not explicitly registered, it will be assumed that + * proj4js will be loaded in the global namespace. For example in a + * browserify ES6 environment you could use: + * + * import ol from 'openlayers'; + * import proj4 from 'proj4'; + * ol.proj.setProj4(proj4); + * + * @param {any} proj4 Proj4. + * @api + */ function setProj4(proj4: any): void; /** @@ -8391,6 +8391,13 @@ declare module ol { */ getSource(): ol.source.Vector; + /** + * Get the distance in pixels between clusters. + * @return {number} The distance in pixels. + * @api + */ + getDistance(): number; + /** * Set the distance in pixels between clusters. * @param {number} distance The distance in pixels. @@ -10632,7 +10639,7 @@ declare module ol { * @param {ol.style.Fill} fill Fill style. * @api */ - setFill(fill: ol.style.Fill):void; + setFill(fill: ol.style.Fill): void; /** * Set a geometry that is rendered instead of the feature's geometry. @@ -11798,6 +11805,20 @@ declare module ol { */ setRotation(rotation: number): void; + /** + * Set a new maximum zoom level for the view. + * @param {number} zoom The maximum zoom level. + * @api stable + */ + setMaxZoom(zoom: number): void; + + /** + * Set a new minimum zoom level for the view. + * @param {number} zoom The minimum zoom level. + * @api stable + */ + setMinZoom(zoom: number): void; + /** * Zoom to a specific zoom level. * @param {number} zoom Zoom level. @@ -11812,7 +11833,7 @@ declare module ol { * @param {olx.AnimateOptions | (completed: boolean) => void } restArgs * @api experimental */ - animate(...var_args: Array): void; + animate(...var_args: Array): void; } @@ -12367,6 +12388,7 @@ declare module olx { interface DefaultsOptions { altShiftDragRotate?: boolean; doubleClickZoom?: boolean; + constrainResolution?: boolean; keyboard?: boolean; mouseWheelZoom?: boolean; shiftDragZoom?: boolean; @@ -12487,7 +12509,7 @@ declare module olx { geometryName?: string; condition?: ol.EventsConditionType; freehandCondition?: ol.EventsConditionType; - freehand?:boolean; + freehand?: boolean; wrapX?: boolean; } diff --git a/types/openlayers/openlayers-tests.ts b/types/openlayers/openlayers-tests.ts index 01d12bf1b6..de12feeb80 100644 --- a/types/openlayers/openlayers-tests.ts +++ b/types/openlayers/openlayers-tests.ts @@ -64,6 +64,7 @@ let styleArray: Array; let styleFunction: ol.StyleFunction; let tilegrid: ol.tilegrid.TileGrid; let transformFn: ol.TransformFunction; +let clusterSource: ol.source.Cluster; let vectorSource: ol.source.Vector; let units: ol.proj.Units; let styleRegularShape: ol.style.RegularShape; @@ -350,6 +351,13 @@ featureCollection = vectorSource.getFeaturesCollection(); featureArray = vectorSource.getFeaturesInExtent(extent); voidValue = vectorSource.removeFeature(feature); + +clusterSource = new ol.source.Cluster({ + source: vectorSource +}); + +numberValue = clusterSource.getDistance(); + // // ol.Feature // @@ -386,6 +394,9 @@ let view: ol.View = new ol.View({ zoom: numberValue, }); +voidValue = view.setMaxZoom(numberValue); +voidValue = view.setMinZoom(numberValue); + // // ol.layer.Tile // @@ -418,10 +429,10 @@ voidValue = olObject.unset(stringValue, booleanValue); ol.Observable.unByKey(eventKey); let observable: ol.Observable = new ol.Observable(); voidValue = observable.changed(); -voidOrBooleanValue = observable.dispatchEvent({type: stringValue}); -voidOrBooleanValue = observable.dispatchEvent({type: stringValue, target: domEventTarget}); -voidOrBooleanValue = observable.dispatchEvent({type: stringValue, target: eventTarget}); -voidOrBooleanValue = observable.dispatchEvent({type: stringValue, a: numberValue, b: stringValue, c: booleanValue, d: null, e: {}}); +voidOrBooleanValue = observable.dispatchEvent({ type: stringValue }); +voidOrBooleanValue = observable.dispatchEvent({ type: stringValue, target: domEventTarget }); +voidOrBooleanValue = observable.dispatchEvent({ type: stringValue, target: eventTarget }); +voidOrBooleanValue = observable.dispatchEvent({ type: stringValue, a: numberValue, b: stringValue, c: booleanValue, d: null, e: {} }); voidOrBooleanValue = observable.dispatchEvent(olEvent); voidOrBooleanValue = observable.dispatchEvent(stringValue); numberValue = observable.getRevision(); @@ -437,7 +448,7 @@ voidValue = observable.un([stringValue, stringValue], fn, {}); // let getPointResolutionFn: (n: number, c: ol.Coordinate) => number; projection = new ol.proj.Projection({ - code:stringValue, + code: stringValue, }); stringValue = projection.getCode(); extent = projection.getExtent(); @@ -468,7 +479,7 @@ let imageWMS: ol.source.ImageWMS = new ol.source.ImageWMS({ params: {}, projection: projection, serverType: stringValue, - url:stringValue + url: stringValue }); // @@ -484,7 +495,7 @@ let tileWMS: ol.source.TileWMS = new ol.source.TileWMS({ params: {}, projection: projection, serverType: stringValue, - url:stringValue + url: stringValue }); voidValue = tileWMS.updateParams(tileWMS.getParams()); @@ -657,7 +668,7 @@ draw = new ol.interaction.Draw({ type: "Point", style: styleFunction }); -let styleFunctionAsStyle = function(feature: ol.Feature, resolution: number): ol.style.Style { return style; } +let styleFunctionAsStyle = function (feature: ol.Feature, resolution: number): ol.style.Style { return style; } draw = new ol.interaction.Draw({ type: "Point", style: styleFunctionAsStyle @@ -665,10 +676,14 @@ draw = new ol.interaction.Draw({ ol.interaction.Draw.createBox(); ol.interaction.Draw.createRegularPolygon(); ol.interaction.Draw.createRegularPolygon(4); -ol.interaction.Draw.createRegularPolygon(4,0); +ol.interaction.Draw.createRegularPolygon(4, 0); + +ol.interaction.defaults({ + constrainResolution: booleanValue +}); -let styleFunctionAsArray = function(feature: ol.Feature, resolution: number): ol.style.Style[] { return styleArray; } +let styleFunctionAsArray = function (feature: ol.Feature, resolution: number): ol.style.Style[] { return styleArray; } draw = new ol.interaction.Draw({ type: "Point", style: styleFunctionAsArray @@ -705,7 +720,7 @@ const select: ol.interaction.Select = new ol.interaction.Select({ // styleRegularShape = new ol.style.RegularShape({ - fill: new ol.style.Fill({color: 'red'}), + fill: new ol.style.Fill({ color: 'red' }), points: 4, }); From 0cd29398f150d2a84f723badebdd3811cce75f47 Mon Sep 17 00:00:00 2001 From: Joscha Feth Date: Sat, 29 Apr 2017 03:45:36 +1000 Subject: [PATCH 082/321] popper.js: update type definitions to 1.8.5 (#16159) * popper.js: 1.8.5: update type definitions * lints * Update index.d.ts * remove copy --- types/popper.js/index.d.ts | 107 ++++++++++++++++------------- types/popper.js/popper.js-tests.ts | 13 ++-- 2 files changed, 68 insertions(+), 52 deletions(-) diff --git a/types/popper.js/index.d.ts b/types/popper.js/index.d.ts index 71713a2ae1..0f8f06a7ba 100644 --- a/types/popper.js/index.d.ts +++ b/types/popper.js/index.d.ts @@ -1,58 +1,73 @@ -// Type definitions for popper.js v0.4.0 +// Type definitions for popper.js v1.8.5 // Project: https://github.com/FezVrasta/popper.js/ -// Definitions by: rhysd +// Definitions by: rhysd , joscha // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare namespace Popper { - export interface PopperOptions { - placement?: string; - gpuAcceleration?: boolean; - offset?: number; - boundariesElement?: string | Element; - boundariesPadding?: number; - preventOverflowOrder?: ("left" | "right" | "top" | "bottom")[]; - flipBehavior?: string | string[]; - modifiers?: string[]; - modifiersIgnored?: string[]; - removeOnDestroy?: boolean; - arrowElement?: string | Element; - } - export class Modifiers { - applyStyle(data: Object): Object; - shift(data: Object): Object; - preventOverflow(data: Object): Object; - keepTogether(data: Object): Object; - flip(data: Object): Object; - offset(data: Object): Object; - arrow(data: Object): Object; - } - export interface Data { - placement: string; - offsets: { - popper: { - position: string; - top: number; - left: number; - }; - }; - } + export interface PopperOptions { + placement?: string; + boundariesPadding?: number; + modifiers?: { + order?: number, + enabled?: boolean, + fn?: Function, + 'function'?: Function, + onLoad?: Function, + applyStyle?: { + gpuAcceleration?: boolean, + }, + preventOverflow?: { + boundariesElement?: string | Element, + priority?: ('left' | 'right' | 'top' | 'bottom')[], + }, + offset?: { + offset?: number, + }, + flip?: { + behavior?: string | string[], + boundariesElement?: string | Element, + }, + }; + modifiersIgnored?: string[]; + removeOnDestroy?: boolean; + arrowElement?: string | Element; + onCreate?(data: Popper.Data): void; + onUpdate?(data: Popper.Data): void; + } + export class Modifiers { + applyStyle(data: Object): Object; + shift(data: Object): Object; + preventOverflow(data: Object): Object; + keepTogether(data: Object): Object; + flip(data: Object): Object; + offset(data: Object): Object; + arrow(data: Object): Object; + } + export interface Data { + placement: string; + offsets: { + popper: { + position: string; + top: number; + left: number; + }; + }; + } } declare class Popper { - public modifiers: Popper.Modifiers; - public placement: string; + public modifiers: Popper.Modifiers; + public placement: string; - constructor(reference: Element, popper: Element | Object, options?: Popper.PopperOptions); + constructor(reference: Element, popper: Element | Object, options?: Popper.PopperOptions); - destroy(): void; - update(): void; - onCreate(cb: (data: Popper.Data) => void): this; - onUpdate(cb: (data: Popper.Data) => void): this; - parse(config: Object): Element; - runModifiers(data: Object, modifiers: string[], ends: Function): void; - isModifierRequired(): boolean; + destroy(): void; + update(): void; + parse(config: Object): Element; + runModifiers(data: Object, modifiers: string[], ends: Function): void; + isModifierRequired(): boolean; } -declare module "popper.js" { - export = Popper; +declare module 'popper.js' { + export default Popper; } diff --git a/types/popper.js/popper.js-tests.ts b/types/popper.js/popper.js-tests.ts index 872118aff4..326a23206c 100644 --- a/types/popper.js/popper.js-tests.ts +++ b/types/popper.js/popper.js-tests.ts @@ -1,5 +1,5 @@ -import * as Popper from 'popper.js'; +import Popper from 'popper.js'; var reference = document.querySelector('.my-button'); var thePopper = new Popper( @@ -30,9 +30,10 @@ var anotherPopper = new Popper( var reference = document.querySelector('.my-button'); var popper = document.querySelector('.my-popper'); -var anotherPopper = new Popper(reference, popper).onCreate(function(instance) { - console.log(instance.offsets); -}).onUpdate(function(data) { - var p = data.offsets.popper; - console.log(`top: ${p.top}, left: ${p.left}`); +var anotherPopper = new Popper(reference, popper, { + onCreate: (data => console.log(data)), + onUpdate: ((data) => { + var p = data.offsets.popper; + console.log(`top: ${p.top}, left: ${p.left}`); + }) }); From 44b6460fecbafb3e0cc5b703525a4432fea7e821 Mon Sep 17 00:00:00 2001 From: Daniel Perez Alvarez Date: Fri, 28 Apr 2017 10:47:54 -0700 Subject: [PATCH 083/321] Update types for remote-redux-devtools (#16186) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- types/remote-redux-devtools/index.d.ts | 133 ++++++++++++++---- types/remote-redux-devtools/package.json | 5 + .../remote-redux-devtools-tests.ts | 50 ++++++- types/remote-redux-devtools/tsconfig.json | 4 +- types/remote-redux-devtools/tslint.json | 1 + 5 files changed, 160 insertions(+), 33 deletions(-) create mode 100644 types/remote-redux-devtools/package.json create mode 100644 types/remote-redux-devtools/tslint.json diff --git a/types/remote-redux-devtools/index.d.ts b/types/remote-redux-devtools/index.d.ts index b43f35cd1f..4725bc4c58 100644 --- a/types/remote-redux-devtools/index.d.ts +++ b/types/remote-redux-devtools/index.d.ts @@ -1,31 +1,112 @@ -// Type definitions for remote-redux-devtools v0.3.2 +// Type definitions for remote-redux-devtools 0.5 // Project: https://github.com/zalmoxisus/remote-redux-devtools -// Definitions by: Colin Eberhardt +// Definitions by: Colin Eberhardt , Daniel Perez Alvarez // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -declare module "remote-redux-devtools" { +import { + Action, + ActionCreator, + ActionCreatorsMapObject, + GenericStoreEnhancer +} from "redux"; - type StringOrArray = string | string[]; - - interface Config { - name?: string; - realtime?: boolean; - hostname?: string; - port?: number; - secure?: boolean; - filters?: {[key: string]: string[]}; - maxAge?: number; - startOn?: StringOrArray; - stopOn?: StringOrArray; - sendOn?: StringOrArray; - sendOnError?: number; - sendTo?: string; - id?: string; - } - - function devTools(config?: Config): Function; - - namespace devTools {} - - export = devTools; +export interface RemoteReduxDevToolsOptions { + /** The instance name to be showed on the monitor page. */ + name?: string; + /** + * Specifies whether to allow remote monitoring. By default is + * `process.env.NODE_ENV === 'development'`. + */ + realtime?: boolean; + /** + * Used to specify host for `remotedev-server`. If `port` is specified, + * default value is `localhost`. + */ + hostname?: string; + /** Used to specify host's port for `remotedev-server`. */ + port?: number; + /** Specifies whether to use `https` protocol for `remotedev-server`. */ + secure?: boolean; + /** + * Maximum allowed actions to be stored in the history tree. The oldest + * actions are removed once `maxAge` is reached. It's critical for + * performance. + */ + maxAge?: number; + /** + * Function which takes `action` object as argument, and should return + * `action` object back. + */ + actionSanitizer?(action: any): any; + /** + * Function which takes `state` object as argument, and should return + * `state` object back. + */ + stateSanitizer?(state: any): any; + /** + * Actions types to be hidden in the monitors (while passed to the + * reducers). If `actionsWhitelist` specified, `actionsBlacklist` is ignored. + */ + actionsBlacklist?: string | string[]; + /** + * Actions types to be shown in the monitors (while passed to the reducers). + * If `actionsWhitelist` specified, `actionsBlacklist` is ignored. + */ + actionsWhitelist?: string | string[]; + /** + * Action or list of actions which should start remote monitoring (when + * `realtime` is `false`). + */ + startOn?: string | string[]; + /** Action or list of actions which should stop remote monitoring. */ + stopOn?: string | string[]; + /** + * Action or list of actions which should trigger sending the history to + * the monitor (without starting it). + */ + sendOn?: string | string[]; + /** + * `0` - disabled (default) + * `1` - send all uncaught exception messages + * `2` - send only reducers error messages. + */ + sendOnError?: 0 | 1 | 2; + /** + * URL of the monitor to send the history when sendOn is triggered. By + * default is `${secure ? 'https' : 'http'}://${hostname}:${port}`. + */ + sendTo?: string; + /** Action creators functions to be available in the dispatcher. */ + actionCreators?: Array> | ActionCreatorsMapObject; + /** + * If specified as `false`, it will not record the changes till clicking on + * *Start recording* button. Available only for Redux enhancer, for others + * use `autoPause`. + */ + shouldRecordChanges?: boolean; + /** + * If specified as `true`, it will not allow any non-monitor actions to be + * dispatched till clicking on *Unlock changes* button. Available only for + * Redux enhancer. + */ + shouldStartLocked?: boolean; + /** + * If set to `false`, will not recompute the states on hot reloading (or on + * replacing the reducers). Available only for Redux enhancer. + */ + shouldHotReload?: boolean; + /** + * If specified as `true`, whenever there's an exception in reducers, the + * monitors will show the error message, and next actions will not be + * dispatched. + */ + shouldCatchErrors?: boolean; + /** + * Identifies the instance when sending the history triggered by `sendOn`. + * You can use, for example, user id here, to know who sent the data. + */ + id?: string; } + +export function composeWithDevTools(options?: RemoteReduxDevToolsOptions): (...funcs: GenericStoreEnhancer[]) => GenericStoreEnhancer; +export function composeWithDevTools(...funcs: GenericStoreEnhancer[]): GenericStoreEnhancer; diff --git a/types/remote-redux-devtools/package.json b/types/remote-redux-devtools/package.json new file mode 100644 index 0000000000..36ce503807 --- /dev/null +++ b/types/remote-redux-devtools/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "redux": "^3.6.0" + } +} diff --git a/types/remote-redux-devtools/remote-redux-devtools-tests.ts b/types/remote-redux-devtools/remote-redux-devtools-tests.ts index 2215c81399..218405a963 100644 --- a/types/remote-redux-devtools/remote-redux-devtools-tests.ts +++ b/types/remote-redux-devtools/remote-redux-devtools-tests.ts @@ -1,11 +1,51 @@ -import * as devTools from "remote-redux-devtools"; +import { + Action, + Middleware, + Reducer, + applyMiddleware, + createStore +} from 'redux'; +import { composeWithDevTools } from 'remote-redux-devtools'; -// example configuration from: https://github.com/zalmoxisus/remote-redux-devtools -devTools({ +const composeEnhancers = composeWithDevTools(); + +const reducer: Reducer<{}> = () => ({}); +const middleware: Middleware[] = []; +const store = createStore(reducer, composeEnhancers( + applyMiddleware(...middleware) +)); + +const store1 = createStore(reducer, composeWithDevTools({ + actionSanitizer: (action) => action, + stateSanitizer: (state) => state +})); + +const store2 = createStore(reducer, composeWithDevTools({ + actionsBlacklist: 'SOME_ACTION' +})); + +const store3 = createStore(reducer, composeWithDevTools({ + shouldRecordChanges: true, + shouldStartLocked: true, + shouldHotReload: true, + shouldCatchErrors: true +})); + +const store4 = createStore(reducer, composeWithDevTools({ + id: 'android-app', + name: 'Android app', + sendTo: 'https://example.com' +})); + +const store5 = createStore(reducer, composeWithDevTools({ name: 'Android app', realtime: true, hostname: 'localhost', port: 8000, + secure: false, maxAge: 30, - filters: { blacklist: ['EFFECT_RESOLVED'] } -}); + startOn: '@@START', + stopOn: '@@STOP', + sendOn: ['@@SEND'], + sendOnError: 2 +})); diff --git a/types/remote-redux-devtools/tsconfig.json b/types/remote-redux-devtools/tsconfig.json index 67d6cba7a8..d38d13a996 100644 --- a/types/remote-redux-devtools/tsconfig.json +++ b/types/remote-redux-devtools/tsconfig.json @@ -6,7 +6,7 @@ ], "noImplicitAny": true, "noImplicitThis": true, - "strictNullChecks": false, + "strictNullChecks": true, "baseUrl": "../", "typeRoots": [ "../" @@ -19,4 +19,4 @@ "index.d.ts", "remote-redux-devtools-tests.ts" ] -} \ No newline at end of file +} diff --git a/types/remote-redux-devtools/tslint.json b/types/remote-redux-devtools/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/remote-redux-devtools/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From b96c59423533e8a02125f4be9766d9f7fd054dfc Mon Sep 17 00:00:00 2001 From: Benjamin Date: Sat, 29 Apr 2017 05:48:29 +1200 Subject: [PATCH 084/321] Update raygun definition (#16187) --- types/raygun4js/index.d.ts | 40 +++++++++++++++++++++++++++++- types/raygun4js/raygun4js-tests.ts | 6 +++++ 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/types/raygun4js/index.d.ts b/types/raygun4js/index.d.ts index 6acae0a8dd..66a7ce8ee9 100644 --- a/types/raygun4js/index.d.ts +++ b/types/raygun4js/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for raygun4js 2.4.2 +// Type definitions for raygun4js 2.6.0 // Project: https://github.com/MindscapeHQ/raygun4js // Definitions by: Brian Surowiec , Benjamin Harding // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -104,6 +104,11 @@ interface RaygunOptions { * A string URI containing the protocol, domain and port (optional) where all payloads will be sent to. This can be used to proxy payloads to the Raygun API through your own server. When not set this defaults internally to the Raygun API, and for most usages you won't need to set this. */ apiEndpoint?: string; + + /** + * String which can be optionally set "onLoad" which will then boot the RealUserMonitoring side instead of waiting for the `load` event. + */ + from?: string|"onLoad"; } interface RaygunPayload { @@ -250,6 +255,26 @@ interface RaygunStatic { * Track Single Page Application route events. */ trackEvent(type: "pageView", options: { path: string }): void; + + /** + * Records a manual breadcrumb with the given message and metadata passed. + */ + recordBreadcrumb(message:string,metadata?:any): void; + + /** + * Enables all breadcrumbs level or a type can be passed which will enable only that passed one. + */ + enableAutoBreadcrumbs(type?:"XHR"|"Clicks"|"Console"|"Navigation"): void; + + /** + * Disables all breadcrumbs or a type can be passed to disable only that one. + */ + disableAutoBreadcrumbs(type?:"XHR"|"Clicks"|"Console"|"Navigation"): void; + + /** + * Pass "breadcrumbsLevel" alongside a valid breadcrumbs level to set the current level. Passing options other than "breadcrumbsLevel" will set xhr hosts to ignore being + */ + setBreadcrumbOption(option?:string|"breadcrumbsLevel", value?:string|"debug"|"info"|"warning"|"error"): void; } interface RaygunV2UserDetails { @@ -298,6 +323,19 @@ interface RaygunV2 { (key: "send"|"withCustomData", value: any): void; (key: "getRaygunInstance"):RaygunStatic; (key: "detach"): void; + (key: "disableAutoBreadcrumbs"): void; + (key: "enableAutoBreadcrumbs"): void; + (key: "disableAutoBreadcrumbsConsole"): void; + (key: "enableAutoBreadcrumbsConsole"): void; + (key: "disableAutoBreadcrumbsNavigation"): void; + (key: "enableAutoBreadcrumbsNavigation"): void; + (key: "disableAutoBreadcrumbsClicks"): void; + (key: "enableAutoBreadcrumbsClicks"): void; + (key: "disableAutoBreadcrumbsXHR"): void; + (key: "enableAutoBreadcrumbsXHR"): void; + (key: "setAutoBreadcrumbsXHRIgnoredHosts"): void; + (key: "setBreadcrumbLevel"): void; + (key: "recordBreadcrumb", message:string|{message:string,metadata:any,level:string|"debug"|"info"|"warning"|"error",location:string}, metadata:any): void; (key: string):void; } diff --git a/types/raygun4js/raygun4js-tests.ts b/types/raygun4js/raygun4js-tests.ts index 34ffeafbfb..7fe6fc6496 100644 --- a/types/raygun4js/raygun4js-tests.ts +++ b/types/raygun4js/raygun4js-tests.ts @@ -79,3 +79,9 @@ client.endSession(); client.trackEvent('pageView', { path: '/url' }); + +client.disableAutoBreadcrumbs(); + +client.enableAutoBreadcrumbs(); + +client.recordBreadcrumb("Breadcrumb Message", { custom: "data" }); From d195893d7bef2ee0b02d9884160f7d30796040dd Mon Sep 17 00:00:00 2001 From: Jakob Mulvad Nielsen Date: Fri, 28 Apr 2017 19:51:11 +0200 Subject: [PATCH 085/321] [pixi.js] Fixed definition of renderer options (#16190) * Fixed definition of pixi.js renderer options * Fixed missing semicolons --- types/pixi.js/index.d.ts | 10 ++-------- types/pixi.js/pixi.js-tests.ts | 8 ++++++++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/types/pixi.js/index.d.ts b/types/pixi.js/index.d.ts index 1d49cf0533..88ed75eced 100644 --- a/types/pixi.js/index.d.ts +++ b/types/pixi.js/index.d.ts @@ -836,18 +836,12 @@ declare namespace PIXI { destroy(): void; } - interface IWebGLRendererOptions { - view?: HTMLCanvasElement; - transparent?: boolean; - autoResize?: boolean; - antialias?: boolean; + interface IWebGLRendererOptions extends IRendererOptions { forceFXAA?: boolean; - resolution?: number; - clearBeforeRender?: boolean; preserveDrawingBuffer?: boolean; - roundPixels?: boolean; legacy?: boolean; } + class WebGLRenderer extends SystemRenderer { // plugintarget mixin start static __plugins: Object; diff --git a/types/pixi.js/pixi.js-tests.ts b/types/pixi.js/pixi.js-tests.ts index 95c24e08ac..f73dfd7021 100644 --- a/types/pixi.js/pixi.js-tests.ts +++ b/types/pixi.js/pixi.js-tests.ts @@ -20,6 +20,14 @@ function basics() { } } + class Renderer { + private renderer: PIXI.WebGLRenderer; + constructor() { + // Renderer should allow options from both WebGLRenderer and underlying SystemRenderer + this.renderer = new PIXI.WebGLRenderer(0, 0, { backgroundColor : 0x272d37, forceFXAA: true }); + } + } + class Click { private app: PIXI.Application; From d31f645856e95f235d7a5d94a624cdb6dda8c141 Mon Sep 17 00:00:00 2001 From: Danny Arnold Date: Fri, 28 Apr 2017 19:52:41 +0200 Subject: [PATCH 086/321] fix shortid() not callable (#16193) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- types/shortid/index.d.ts | 18 ++++++++++++------ types/shortid/shortid-tests.ts | 2 ++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/types/shortid/index.d.ts b/types/shortid/index.d.ts index 437c502fce..e22504054f 100644 --- a/types/shortid/index.d.ts +++ b/types/shortid/index.d.ts @@ -1,11 +1,17 @@ // Type definitions for shortid // Project: https://github.com/dylang/shortid -// Definitions by: Sam Saint-Pettersen +// Definitions by: Sam Saint-Pettersen , Danny Arnold // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +declare const shortid: ShortId -export declare function generate(): string; -export declare function characters(string: string): string; -export declare function isValid(id: any): boolean; -export declare function worker(integer: number): void; -export declare function seed(float: number): void; +export = shortid + +interface ShortId { + (): string, + generate: () => string, + characters: (string: string) => string, + isValid: (id: any) => boolean, + worker: (integer: number) => void, + seed: (float: number) => void, +} diff --git a/types/shortid/shortid-tests.ts b/types/shortid/shortid-tests.ts index 6d05a500b4..3093bbf32a 100644 --- a/types/shortid/shortid-tests.ts +++ b/types/shortid/shortid-tests.ts @@ -2,8 +2,10 @@ import shortid = require('shortid'); var my_short_id: string = shortid.generate(); +var my_short_id2: string = shortid(); console.log(my_short_id); console.log('Is valid short id? => %s', shortid.isValid(my_short_id)); // => true +console.log('Is valid short id? => %s', shortid.isValid(my_short_id2)); // => true console.log('Is valid short id? => %s', shortid.isValid(5)); // => false console.log('Is valid short id? => %s', shortid.isValid('i have spaces')); // => false From cb4276018894ccd8621df909cfa001ecf8285809 Mon Sep 17 00:00:00 2001 From: Jeremy Fauvel Date: Fri, 28 Apr 2017 19:54:07 +0200 Subject: [PATCH 087/321] Add missing Redirect props (#16195) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- types/react-router/index.d.ts | 4 ++++ types/react-router/test/Switch.tsx | 15 +++++++++++++++ types/react-router/tsconfig.json | 3 ++- 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 types/react-router/test/Switch.tsx diff --git a/types/react-router/index.d.ts b/types/react-router/index.d.ts index 4eb3aa14f9..2c21ac742b 100644 --- a/types/react-router/index.d.ts +++ b/types/react-router/index.d.ts @@ -11,6 +11,7 @@ // Dovydas Navickas // Tanguy Krotoff // Huy Nguyen +// Jérémy Fauvel // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.2 @@ -49,6 +50,9 @@ declare module 'react-router' { to: H.LocationDescriptor; push?: boolean; from?: string; + path?: string; + exact?: boolean; + strict?: boolean; } class Redirect extends React.Component {} diff --git a/types/react-router/test/Switch.tsx b/types/react-router/test/Switch.tsx new file mode 100644 index 0000000000..626b0f6f7e --- /dev/null +++ b/types/react-router/test/Switch.tsx @@ -0,0 +1,15 @@ +import * as React from 'react' +import { BrowserRouter, Redirect, Route, Switch } from 'react-router-dom' + +const Home = () =>

    Home

    + +const SwitchTest = () => ( + + + + + + +) + +export default SwitchTest diff --git a/types/react-router/tsconfig.json b/types/react-router/tsconfig.json index 9ae373d000..3a2e475777 100644 --- a/types/react-router/tsconfig.json +++ b/types/react-router/tsconfig.json @@ -27,6 +27,7 @@ "test/PreventingTransitions.tsx", "test/Recursive.tsx", "test/RouteConfig.tsx", - "test/Sidebar.tsx" + "test/Sidebar.tsx", + "test/Switch.tsx" ] } From 0aa77fc2b36fef8f93d35b142a2501eba86f6a16 Mon Sep 17 00:00:00 2001 From: Pasi Eronen Date: Fri, 28 Apr 2017 20:56:46 +0300 Subject: [PATCH 088/321] joi: add support for array.unique(comparator) (#16200) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- types/joi/index.d.ts | 3 ++- types/joi/joi-tests.ts | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/types/joi/index.d.ts b/types/joi/index.d.ts index c11bcb9daf..b1696bb7ad 100644 --- a/types/joi/index.d.ts +++ b/types/joi/index.d.ts @@ -567,7 +567,8 @@ export interface ArraySchema extends AnySchema { * Be aware that a deep equality is performed on elements of the array having a type of object, * a performance penalty is to be expected for this kind of operation. */ - unique(): ArraySchema; + unique(comparator?: (a: any, b: any) => boolean): ArraySchema; + unique(comparator?: string): ArraySchema; } export interface ObjectSchema extends AnySchema { diff --git a/types/joi/joi-tests.ts b/types/joi/joi-tests.ts index f35a124183..a58623ea06 100644 --- a/types/joi/joi-tests.ts +++ b/types/joi/joi-tests.ts @@ -261,6 +261,8 @@ arrSchema = arrSchema.min(num); arrSchema = arrSchema.max(num); arrSchema = arrSchema.length(num); arrSchema = arrSchema.unique(); +arrSchema = arrSchema.unique((a, b) => a.test === b.test); +arrSchema = arrSchema.unique('customer.id'); arrSchema = arrSchema.items(numSchema); From 73fb208f9819e3e58eba5a8a5a814e6376bf77ce Mon Sep 17 00:00:00 2001 From: Dmitry Kharitonov Date: Sat, 29 Apr 2017 01:06:09 +0400 Subject: [PATCH 089/321] Update index.d.ts (#16212) Add `origin` param to `doc.replaceRange` --- types/codemirror/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/codemirror/index.d.ts b/types/codemirror/index.d.ts index d0b2dd6511..561d311540 100644 --- a/types/codemirror/index.d.ts +++ b/types/codemirror/index.d.ts @@ -439,7 +439,7 @@ declare namespace CodeMirror { /** Replace the part of the document between from and to with the given string. from and to must be {line, ch} objects. to can be left off to simply insert the string at position from. */ - replaceRange(replacement: string, from: CodeMirror.Position, to?: CodeMirror.Position): void; + replaceRange(replacement: string, from: CodeMirror.Position, to?: CodeMirror.Position, origin?: string): void; /** Get the content of line n. */ getLine(n: number): string; From 8477fccea44b2c0b62e05a988bcc84c8d7749629 Mon Sep 17 00:00:00 2001 From: Federico Caselli Date: Fri, 28 Apr 2017 23:07:55 +0200 Subject: [PATCH 090/321] timeoutCallback is optional (#16197) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- types/rwlock/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/rwlock/index.d.ts b/types/rwlock/index.d.ts index 2a034b78c3..dd7e9d2c9d 100644 --- a/types/rwlock/index.d.ts +++ b/types/rwlock/index.d.ts @@ -19,7 +19,7 @@ declare namespace ReadWriteLock { interface Options { scope?: any; timeout?: number; - timeoutCallback(): void; + timeoutCallback?(): void; } } From dc9845e6349a32c897adfcc2c2d2f29a8aac5470 Mon Sep 17 00:00:00 2001 From: Kat Busch Date: Fri, 28 Apr 2017 14:14:58 -0700 Subject: [PATCH 091/321] [react-bootstrap] Add disable ButtonProps (#16209) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add an optional extended description… --- types/react-bootstrap/index.d.ts | 3 ++- types/react-bootstrap/react-bootstrap-tests.tsx | 6 ++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/types/react-bootstrap/index.d.ts b/types/react-bootstrap/index.d.ts index 2067c97c68..a11abcd38d 100644 --- a/types/react-bootstrap/index.d.ts +++ b/types/react-bootstrap/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for react-bootstrap // Project: https://github.com/react-bootstrap/react-bootstrap -// Definitions by: Walker Burgin , Vincent Siao , Danilo Barros , Batbold Gansukh , Raymond May Jr. , Cheng Sieu Ly +// Definitions by: Walker Burgin , Vincent Siao , Danilo Barros , Batbold Gansukh , Raymond May Jr. , Cheng Sieu Ly , Kat Busch // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.1 @@ -82,6 +82,7 @@ declare namespace ReactBootstrap { bsStyle?: string; bsSize?: Sizes; componentClass?: React.ReactType; + disabled?: boolean; } type Button = React.ClassicComponent; var Button: React.ClassicComponentClass; diff --git a/types/react-bootstrap/react-bootstrap-tests.tsx b/types/react-bootstrap/react-bootstrap-tests.tsx index 432636559b..14784f9a3d 100644 --- a/types/react-bootstrap/react-bootstrap-tests.tsx +++ b/types/react-bootstrap/react-bootstrap-tests.tsx @@ -99,6 +99,12 @@ export class ReactBootstrapTest extends Component { +
    + + + + +
    From 1b25b92cff6e57f95312fa2cb91ac189f70755b8 Mon Sep 17 00:00:00 2001 From: Josh Goldberg Date: Fri, 28 Apr 2017 17:20:25 -0400 Subject: [PATCH 092/321] chai.assert.throws should allow a regexp + message (#16068) Fixes #16067. --- types/chai/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/chai/index.d.ts b/types/chai/index.d.ts index 73f62290f5..7690fe49a7 100644 --- a/types/chai/index.d.ts +++ b/types/chai/index.d.ts @@ -848,7 +848,7 @@ declare namespace Chai { * @param regExp Potential expected message match. * @param message Message to display on error. */ - throws(fn: Function, regExp: RegExp): void; + throws(fn: Function, regExp: RegExp, message?: string): void; /** * Asserts that function will throw an error that is an instance of constructor. From de52c9ccca2732e72930d1990583707c064f0ea0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martynas=20Kunig=C4=97lis?= Date: Sat, 29 Apr 2017 00:21:27 +0300 Subject: [PATCH 093/321] Quote from Knex source code comments: 'The transactor is a full featured knex object, with a "commit", a "rollback" and a "savepoint" function.' (#16092) --- types/knex/index.d.ts | 10 +++++----- types/knex/knex-tests.ts | 14 +++++++++++++- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/types/knex/index.d.ts b/types/knex/index.d.ts index 0b107481f7..e95373120e 100644 --- a/types/knex/index.d.ts +++ b/types/knex/index.d.ts @@ -22,7 +22,7 @@ interface Knex extends Knex.QueryInterface { __knex__: string; raw: Knex.RawBuilder; - transaction: (transactionScope: ((trx: Knex.Transaction) => void)) => Promise; + transaction(transactionScope: (trx: Knex.Transaction) => any): Promise; destroy(callback: Function): void; destroy(): Promise; batchInsert(tableName : TableName, data: any[], chunkSize : number) : Knex.QueryBuilder; @@ -347,10 +347,10 @@ declare namespace Knex { exec(callback: Function): QueryBuilder; } - interface Transaction extends QueryBuilder { - commit: any; - rollback: any; - raw: Knex.RawBuilder; + interface Transaction extends Knex { + savepoint(transactionScope: (trx: Transaction) => any): Promise; + commit(value?: any): QueryBuilder; + rollback(error?: any): QueryBuilder; } // diff --git a/types/knex/knex-tests.ts b/types/knex/knex-tests.ts index 1c2d5c4b4a..920b347a70 100644 --- a/types/knex/knex-tests.ts +++ b/types/knex/knex-tests.ts @@ -434,7 +434,19 @@ knex.transaction(function(trx) { // Using trx as a transaction object: knex.transaction(function(trx) { - trx.raw('') + trx.raw(''); + + trx.on('query-error', function(error: Error) { + console.error(error); + }); + + trx.savepoint(function(nestedTrx) { + nestedTrx.rollback(new Error('something went terribly wrong')); + }); + + trx.transaction(function(nestedTrx) { + nestedTrx.commit(); + }); var info: any; var books: any[] = [ From 5dc27752e49efac4540158817fa08e640646f474 Mon Sep 17 00:00:00 2001 From: Peter Keuter Date: Mon, 1 May 2017 16:36:19 +0200 Subject: [PATCH 094/321] update mssql definitions to 4.0.1 (#15909) * update mssql definitions to 4.0.1 * updated tests * support es6 tagged template literals * implemented connectionstring constructor * updated tests --- types/mssql/index.d.ts | 57 +++++++++++++++++++++----------------- types/mssql/mssql-tests.ts | 25 +++++++++++------ 2 files changed, 47 insertions(+), 35 deletions(-) diff --git a/types/mssql/index.d.ts b/types/mssql/index.d.ts index 5f013e33a1..80dbf2cf43 100644 --- a/types/mssql/index.d.ts +++ b/types/mssql/index.d.ts @@ -1,6 +1,6 @@ -// Type definitions for mssql 3.3 +// Type definitions for mssql 4.0.1 // Project: https://www.npmjs.com/package/mssql -// Definitions by: COLSA Corporation , Ben Farr , Vitor Buzinaro , Matt Richardson , Jørgen Elgaard Larsen +// Definitions by: COLSA Corporation , Ben Farr , Vitor Buzinaro , Matt Richardson , Jørgen Elgaard Larsen , Peter Keuter // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// @@ -8,7 +8,7 @@ import events = require('events'); export interface ISqlType { - type: ISqlTypeFactory; + type: ISqlTypeFactory; } export interface ISqlTypeWithNoParams extends ISqlType { type: ISqlTypeFactoryWithNoParams } export interface ISqlTypeWithLength extends ISqlType { type: ISqlTypeFactoryWithLength; length: number } @@ -97,7 +97,6 @@ export declare var MAX: number; export declare var fix: boolean; export declare var Promise: any; - interface IMap extends Array<{ js: any, sql: any }> { register(jstype: any, sql: any): void; } @@ -110,10 +109,19 @@ export interface IColumnMetadata { index: number; name: string; length: number; - type: ISqlType; + type: ISqlType; udt?: any; } } +export interface IResult { + recordsets: IRecordSet[]; + recordset: IRecordSet; + rowsAffected: number[], + output: { [key: string]: any }; +} +export interface IProcedureResult extends IResult { + returnValue: any; +} export interface IRecordSet extends Array { columns: IColumnMetadata; } @@ -162,15 +170,17 @@ export interface config { pool?: IPool; } -export declare class Connection extends events.EventEmitter { +export declare class ConnectionPool extends events.EventEmitter { public connected: boolean; public connecting: boolean; public driver: string; public constructor(config: config, callback?: (err?: any) => void); - public connect(): Promise; + public constructor(connectionString: string, callback?: (err?: any) => void); + public connect(): Promise; public connect(callback: (err: any) => void): void; public close(): Promise; public close(callback: (err: any) => void): void; + public request(): Request; } export declare class ConnectionError implements Error { @@ -209,32 +219,30 @@ interface IRequestParameters { } export declare class Request extends events.EventEmitter { - public connection: Connection; public transaction: Transaction; public pstatement: PreparedStatement; public parameters: IRequestParameters; public verbose: boolean; - public multiple: boolean; public canceled: boolean; public stream: any; - public constructor(connection?: Connection); + public constructor(connection?: ConnectionPool); public constructor(transaction: Transaction); public constructor(preparedStatement: PreparedStatement); - public execute(procedure: string): Promise>; - public execute(procedure: string): Promise>; - public execute(procedure: string, callback: (err?: any, recordsets?: IRecordSet, returnValue?: any, rowsAffected?: number) => void): void; + public execute(procedure: string): Promise>; + public execute(procedure: string): Promise>; + public execute(procedure: string, callback: (err?: any, recordsets?: IProcedureResult, returnValue?: any) => void): void; public input(name: string, value: any): Request; public input(name: string, type: any, value: any): Request; public output(name: string, type: any, value?: any): Request; public pipe(stream: NodeJS.WritableStream): NodeJS.WritableStream; - public query(command: string): Promise>; - public query(command: string): Promise>; - public query(command: string, callback: (err?: Error, recordset?: IRecordSet, rowsAffected?: number) => void): void; - public query(command: string, callback: (err?: Error, recordset?: IRecordSet) => void): void; - public batch(batch: string): Promise>; - public batch(batch: string): Promise>; - public batch(batch: string, callback: (err?: Error, recordset?: IRecordSet) => void): void; - public batch(batch: string, callback: (err?: any, recordset?: IRecordSet) => void): void; + public query(strings: TemplateStringsArray, ...interpolations: any[]): Promise>; + public query(command: string): Promise>; + public query(command: string): Promise>; + public query(command: string, callback: (err?: Error, recordset?: IResult) => void): void; + public batch(batch: string): Promise>; + public batch(batch: string): Promise>; + public batch(batch: string, callback: (err?: Error, recordset?: IResult) => void): void; + public batch(batch: string, callback: (err?: any, recordset?: IResult) => void): void; public bulk(table: Table): Promise; public bulk(table: Table, callback: (err: Error, rowCount: any) => void): void; public cancel(): void; @@ -248,9 +256,8 @@ export declare class RequestError implements Error { } export declare class Transaction extends events.EventEmitter { - public connection: Connection; public isolationLevel: IIsolationLevel; - public constructor(connection?: Connection); + public constructor(connection?: ConnectionPool); public begin(isolationLevel?: IIsolationLevel): Promise; public begin(isolationLevel?: IIsolationLevel, callback?: (err?: any) => void): void; public commit(): Promise; @@ -267,14 +274,12 @@ export declare class TransactionError implements Error { } export declare class PreparedStatement extends events.EventEmitter { - public connection: Connection; public transaction: Transaction; public prepared: boolean; public statement: string; public parameters: IRequestParameters; - public multiple: boolean; public stream: any; - public constructor(connection?: Connection); + public constructor(connection?: ConnectionPool); public input(name: string, type: ISqlType): PreparedStatement; public output(name: string, type: ISqlType): PreparedStatement; public prepare(statement?: string): Promise; diff --git a/types/mssql/mssql-tests.ts b/types/mssql/mssql-tests.ts index 764f6da8e1..4bda996f85 100644 --- a/types/mssql/mssql-tests.ts +++ b/types/mssql/mssql-tests.ts @@ -1,7 +1,7 @@ import sql = require('mssql'); interface Entity{ - value: number; + value: number; } var config: sql.config = { @@ -15,7 +15,13 @@ var config: sql.config = { } } -var connection: sql.Connection = new sql.Connection(config, function (err: any) { +var connectionStringTest: sql.ConnectionPool = new sql.ConnectionPool("connectionstring", (err) => { + if (err) { + return err; + } +}); + +var connection: sql.ConnectionPool = new sql.ConnectionPool(config, function (err: any) { if (err != null) { console.warn("Issue with connecting to SQL Server!"); } @@ -24,25 +30,25 @@ var connection: sql.Connection = new sql.Connection(config, function (err: any) var getArticlesQuery = "SELECT * FROM TABLE"; - requestQuery.query(getArticlesQuery, function (err, recordSet) { + requestQuery.query(getArticlesQuery, function (err, result) { if (err) { console.error('Error happened calling Query: ' + err.name + " " + err.message); } // checking to see if the articles returned as at least one. - else if (recordSet.length > 0) { + else if (result.recordset.length > 0) { } }); getArticlesQuery = "SELECT 1 as value FROM TABLE"; - requestQuery.query(getArticlesQuery, function (err, recordSet) { + requestQuery.query(getArticlesQuery, function (err, result) { if (err) { console.error('Error happened calling Query: ' + err.name + " " + err.message); } // checking to see if the articles returned as at least one. - else if (recordSet.length > 0 && recordSet[0].value) { + else if (result.recordset.length > 0 && result.recordset[0].value) { } }); @@ -124,7 +130,7 @@ function test_table() { function test_promise_returns() { // Methods return a promises if the callback is omitted. - var connection: sql.Connection = new sql.Connection(config); + var connection: sql.ConnectionPool = new sql.ConnectionPool(config); connection.connect().then(() => { }); connection.close().then(() => { }); @@ -144,13 +150,14 @@ function test_promise_returns() { request.bulk(new sql.Table("table_name")).then(() => { }); request.query('SELECT 1').then((recordset) => { }); request.query('SELECT 1 as value').then(res => { }); + request.query`SELECT ${1} as value`.then(res => { }); request.execute('procedure_name').then((recordset) => { }); } function test_request_constructor() { // Request can be constructed with a connection, preparedStatment, transaction or no arguments - var connection: sql.Connection = new sql.Connection(config); + var connection: sql.ConnectionPool = new sql.ConnectionPool(config); var preparedStatment = new sql.PreparedStatement(connection); var transaction = new sql.Transaction(connection); @@ -161,7 +168,7 @@ function test_request_constructor() { } function test_classes_extend_eventemitter() { - var connection: sql.Connection = new sql.Connection(config); + var connection: sql.ConnectionPool = new sql.ConnectionPool(config); var transaction = new sql.Transaction(); var request = new sql.Request(); var preparedStatment = new sql.PreparedStatement(); From 6c0036b88198cbc59d2eed09aa3c93907b21a4f3 Mon Sep 17 00:00:00 2001 From: Dom Armstrong Date: Mon, 1 May 2017 15:41:29 +0100 Subject: [PATCH 095/321] Add dottie (#15969) * Add dottie * Add dottie --- types/dottie/dottie-tests.ts | 21 ++++ types/dottie/index.d.ts | 194 +++++++++++++++++++++++++++++++++++ types/dottie/tsconfig.json | 22 ++++ types/dottie/tslint.json | 1 + 4 files changed, 238 insertions(+) create mode 100644 types/dottie/dottie-tests.ts create mode 100644 types/dottie/index.d.ts create mode 100644 types/dottie/tsconfig.json create mode 100644 types/dottie/tslint.json diff --git a/types/dottie/dottie-tests.ts b/types/dottie/dottie-tests.ts new file mode 100644 index 0000000000..366d2e32d9 --- /dev/null +++ b/types/dottie/dottie-tests.ts @@ -0,0 +1,21 @@ +import dottie = require('dottie'); + +dottie.memoizePath = true; + +const nestedObject = { + some: { + nested: { + value: 'a' + } + } +}; + +dottie.exists(nestedObject, 'some.nested'); +dottie.default(nestedObject, 'some.nested.value', 'b'); +dottie.get(nestedObject, 'some.nested.value', 'b'); +dottie.set(nestedObject, 'some.nested.value', 'b'); +dottie.transform({ 'foo.bar': 'baz' }); +dottie.transform({ foo_bar: 'baz' }, { delimiter: '_' }); +dottie.flatten({ foo: { bar: 'baz' }}); +dottie.flatten({ foo: { bar: 'baz' }}, '_'); +dottie.paths(nestedObject); diff --git a/types/dottie/index.d.ts b/types/dottie/index.d.ts new file mode 100644 index 0000000000..66fb81df5f --- /dev/null +++ b/types/dottie/index.d.ts @@ -0,0 +1,194 @@ +// Type definitions for dottie 2.0 +// Project: https://github.com/mickhansen/dottie +// Definitions by: Dom Armstrong +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 + +declare const dottie: dottie.Dottie; +export = dottie; + +declare namespace dottie { + type DottiePath = string | string[]; + + /** + * @example: + * { + * 'foo.bar.baz': 'baz', + * 'foo.baz': 'baz', + * } + */ + interface FlatPaths { + [path: string]: any; + } + + interface SetOptions { + /** + * force overwrite defined non-object keys into objects if needed + */ + force?: boolean; + } + + interface TransformOptions { + /** + * Use a custom delimiter for path + */ + delimiter?: string; + } + + interface Dottie { + /** + * Dottie memoization flag + */ + memoizePath: boolean; + + /** + * Check path exists in object + * + * @example + * const values = { + * some: { + * key: 'foobar'; + * }, + * } + * + * dottie.exists(values, 'some.key'); // true + * dottie.exists(values, 'some.otherKey'); // false + */ + exists(obj: object, path: DottiePath): boolean; + + /** + * Gets nested value, or undefined if unreachable, or a default value if passed. + * + * @example + * const values = { + * some: { + * nested: { + * key: 'foobar'; + * } + * }, + * 'some.dot.included': { + * key: 'barfoo' + * } + * } + * + * dottie.get(values, 'some.nested.key'); // 'foobar' + * dottie.get(values, 'some.undefined.key'); // undefined + * dottie.get(values, 'some.undefined.key', 'defaultval'); // 'defaultval' + * dottie.get(values, ['some.dot.included', 'key']); // 'barfoo' + */ + get(obj: object, path: DottiePath, defaultValue: T): T; + + /** + * Sets nested value, creates nested structure if needed + * + * @example + * dottie.set(values, 'some.nested.value', someValue); + * dottie.set(values, ['some.dot.included', 'value'], someValue); + * dottie.set(values, 'some.nested.object', someValue, { force: true }); + */ + set(obj: object, path: DottiePath, value: any, options?: SetOptions): void; + + /** + * Set the default value if path does not exist + * + * @example + * dottie.default({}, 'some.value', 'a') as MyType; // { some: { value: 'a' }} + * dottie.default({ some: { value: 'a' }}, 'some.value', 'b') as MyType; // { some: { value: 'a' }} + */ + default(obj: object, path: DottiePath, value: any): any; + + /** + * Transform object from keys with dottie notation to nested objects + * + * @example + * const values = { + * 'user.name': 'Gummy Bear', + * 'user.email': 'gummybear@candymountain.com', + * 'user.professional.title': 'King', + * 'user.professional.employer': 'Candy Mountain' + * }; + * const transformed = dottie.transform(values) as MyType; + * + * assert.deepEqual(transformed, { + * user: { + * name: 'Gummy Bear', + * email: 'gummybear@candymountain.com', + * professional: { + * title: 'King', + * employer: 'Candy Mountain' + * } + * } + * }); + * + * @example with custom delimiter + * const values = { + * 'user_name': 'Mick Hansen', + * 'user_email': 'maker@mhansen.io' + * }; + * const transformed = dottie.transform(values, { delimiter: '_' }) as MyType; + * + * assert.deepEqual(transformed, { + * user: { + * name: 'Mick Hansen', + * email: 'maker@mhansen.io' + * } + * }); + */ + transform(obj: FlatPaths, options?: TransformOptions): any; + + /** + * Opposite of transform. Flattens a nested object + * + * @example + * const values = { + * user: { + * name: 'Gummy Bear', + * email: 'gummybear@candymountain.com', + * professional: { + * title: 'King', + * employer: 'Candy Mountain' + * } + * } + * }; + * const transformed = dottie.transform(values); + * + * assert.deepEqual(transformed, { + * 'user.name': 'Gummy Bear', + * 'user.email': 'gummybear@candymountain.com', + * 'user.professional.title': 'King', + * 'user.professional.employer': 'Candy Mountain' + * }); + * + * @example with custom delimiter + * const values = { + * user: { + * name: 'Mick Hansen', + * email: 'maker@mhansen.io' + * } + * }; + * const transformed = dottie.flatten(values, '_'); + * + * assert.deepEqual(transformed, { + * 'user_name': 'Mick Hansen', + * 'user_email': 'maker@mhansen.io' + * }); + */ + flatten(obj: object, delimiter?: string): FlatPaths; + + /** + * Get paths in object + * + * @example + * const object = { + * a: 1, + * b: { + * c: 2, + * d: { e: 3 } + * } + * }; + * + * dottie.paths(object); // ["a", "b.c", "b.d.e"]; + */ + paths(obj: object): string[]; + } +} diff --git a/types/dottie/tsconfig.json b/types/dottie/tsconfig.json new file mode 100644 index 0000000000..03af0fda9b --- /dev/null +++ b/types/dottie/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "dottie-tests.ts" + ] +} diff --git a/types/dottie/tslint.json b/types/dottie/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/dottie/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From 992ef67dcbeee862a9e047acf31dae494772cf17 Mon Sep 17 00:00:00 2001 From: Ali Taheri Moghaddar Date: Mon, 1 May 2017 19:14:25 +0430 Subject: [PATCH 096/321] [password-hash-and-salt] Add typings (#16073) * Add password-hash-and-salt typings * Fix lint error * Improve export semantics --- types/password-hash-and-salt/index.d.ts | 14 +++++++++++ .../password-hash-and-salt-tests.ts | 23 +++++++++++++++++++ types/password-hash-and-salt/tsconfig.json | 22 ++++++++++++++++++ types/password-hash-and-salt/tslint.json | 1 + 4 files changed, 60 insertions(+) create mode 100644 types/password-hash-and-salt/index.d.ts create mode 100644 types/password-hash-and-salt/password-hash-and-salt-tests.ts create mode 100644 types/password-hash-and-salt/tsconfig.json create mode 100644 types/password-hash-and-salt/tslint.json diff --git a/types/password-hash-and-salt/index.d.ts b/types/password-hash-and-salt/index.d.ts new file mode 100644 index 0000000000..710e18631c --- /dev/null +++ b/types/password-hash-and-salt/index.d.ts @@ -0,0 +1,14 @@ +// Type definitions for password-hash-and-salt 0.1 +// Project: https://github.com/florianheinemann/password-hash-and-salt +// Definitions by: Ali Taheri +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +interface Password { + hash(cb: (error: string, hash: string) => void): void; + verifyAgainst(hash: string, cb: (error: string, verified: boolean) => void): void; +} + +declare function password(password: string): Password; +declare namespace password {} + +export = password; diff --git a/types/password-hash-and-salt/password-hash-and-salt-tests.ts b/types/password-hash-and-salt/password-hash-and-salt-tests.ts new file mode 100644 index 0000000000..4865cf0eed --- /dev/null +++ b/types/password-hash-and-salt/password-hash-and-salt-tests.ts @@ -0,0 +1,23 @@ +import * as password from 'password-hash-and-salt'; + +const myuser: { hash: string } = { hash: '' }; + +// Creating hash and salt +password('mysecret').hash((error, hash) => { + if (error) + throw new Error('Something went wrong!'); + + // Store hash (incl. algorithm, iterations, and salt) + myuser.hash = hash; + + // Verifying a hash + password('hack').verifyAgainst(myuser.hash, (error, verified) => { + if (error) + throw new Error('Something went wrong!'); + if (!verified) { + // Wrong! + } else { + // Correct! + } + }); +}); diff --git a/types/password-hash-and-salt/tsconfig.json b/types/password-hash-and-salt/tsconfig.json new file mode 100644 index 0000000000..27c9ff3242 --- /dev/null +++ b/types/password-hash-and-salt/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "password-hash-and-salt-tests.ts" + ] +} \ No newline at end of file diff --git a/types/password-hash-and-salt/tslint.json b/types/password-hash-and-salt/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/password-hash-and-salt/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From 0a29ae08a9b78bd701e323a41ca99cbed5937c95 Mon Sep 17 00:00:00 2001 From: Yousef Date: Mon, 1 May 2017 21:29:24 +0200 Subject: [PATCH 097/321] fix null in sequelize find (#16219) --- types/sequelize/v3/index.d.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/types/sequelize/v3/index.d.ts b/types/sequelize/v3/index.d.ts index e823a926e2..d24cad3cdd 100644 --- a/types/sequelize/v3/index.d.ts +++ b/types/sequelize/v3/index.d.ts @@ -3724,15 +3724,15 @@ declare namespace sequelize { * Search for a single instance by its primary key. This applies LIMIT 1, so the listener will * always be called with a single instance. */ - findById(identifier?: number | string, options?: FindOptions): Promise; - findByPrimary(identifier?: number | string, options?: FindOptions): Promise; + findById(identifier?: number | string, options?: FindOptions): Promise; + findByPrimary(identifier?: number | string, options?: FindOptions): Promise; /** * Search for a single instance. This applies LIMIT 1, so the listener will always be called with a single * instance. */ - findOne(options?: FindOptions): Promise; - find(options?: FindOptions): Promise; + findOne(options?: FindOptions): Promise; + find(options?: FindOptions): Promise; /** * Run an aggregation method on the specified field From 0cefb71e500b0cda3dc04c07e3d2c8cb280b02de Mon Sep 17 00:00:00 2001 From: Mike Cook Date: Mon, 1 May 2017 20:34:37 +0100 Subject: [PATCH 098/321] Add type definitions for koa-websocket (#16221) --- types/koa-websocket/index.d.ts | 36 ++++++++++++++++++++++ types/koa-websocket/koa-websocket-tests.ts | 14 +++++++++ types/koa-websocket/tsconfig.json | 22 +++++++++++++ types/koa-websocket/tslint.json | 1 + 4 files changed, 73 insertions(+) create mode 100644 types/koa-websocket/index.d.ts create mode 100644 types/koa-websocket/koa-websocket-tests.ts create mode 100644 types/koa-websocket/tsconfig.json create mode 100644 types/koa-websocket/tslint.json diff --git a/types/koa-websocket/index.d.ts b/types/koa-websocket/index.d.ts new file mode 100644 index 0000000000..115dbb43f6 --- /dev/null +++ b/types/koa-websocket/index.d.ts @@ -0,0 +1,36 @@ +// Type definitions for koa-websocket 2.1 +// Project: https://github.com/kudos/koa-websocket +// Definitions by: My Self +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 + +import * as Koa from 'koa'; +import * as ws from 'ws'; +import * as http from 'http'; +import * as https from 'https'; + +type KoaWebsocketConnectionHandler = (socket: ws) => void; +type KoaWebsocketMiddleware = (this: KoaWebsocketMiddlewareContext, context: Koa.Context, next: () => Promise) => any; +interface KoaWebsocketMiddlewareContext extends Koa.Context { + websocket: ws; + path: string; +} + +declare class KoaWebsocketServer { + app: Koa; + middleware: Koa.Middleware[]; + + constructor(app: Koa); + listen(server: http.Server | https.Server): ws.Server; + onConnection(handler: KoaWebsocketConnectionHandler): void; + use(middleware: KoaWebsocketMiddleware): this; +} + +interface KoaWebsocketApp extends Koa { + ws: KoaWebsocketServer; +} + +type KoaWebsockets = (app: Koa) => KoaWebsocketApp; + +declare const websockets: KoaWebsockets; +export = websockets; diff --git a/types/koa-websocket/koa-websocket-tests.ts b/types/koa-websocket/koa-websocket-tests.ts new file mode 100644 index 0000000000..66bd4bf4d2 --- /dev/null +++ b/types/koa-websocket/koa-websocket-tests.ts @@ -0,0 +1,14 @@ +import * as Koa from 'koa'; +import * as websocket from 'koa-websocket'; + +const app = websocket(new Koa()); + +app.ws.use(async function(context, next) { + this.websocket.on('message', (message) => { + console.log(message); + }); + this.websocket.send('Hello world'); + await next(); +}); + +app.listen(3000); diff --git a/types/koa-websocket/tsconfig.json b/types/koa-websocket/tsconfig.json new file mode 100644 index 0000000000..effcb59356 --- /dev/null +++ b/types/koa-websocket/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "koa-websocket-tests.ts" + ] +} diff --git a/types/koa-websocket/tslint.json b/types/koa-websocket/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/koa-websocket/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From 7547cd219a1ecadf923d72d6ca995e827ecfa320 Mon Sep 17 00:00:00 2001 From: huhuanming Date: Tue, 2 May 2017 03:35:36 +0800 Subject: [PATCH 099/321] Add React navigation (#16223) * Add react-navigation Types * Add actions Functions : https://reactnavigation.org/docs/navigators/navigation-actions Note: the `type` option has to be optional because if not, we have to add it when we use one of actions. * Support of Screen Navigation Options For Stack, Tab and Drawer * Add Generic for NavigationNavigatorProps params * NavigationParams: any type of param * Add Tab and Drawer Navigators * Use of ViewStyle and TextStyle * Improve tsconfig.json && tslint.json * Add Test * fix test * fix lint --- types/react-navigation/index.d.ts | 603 ++++++++++++++++++ .../react-navigation-tests.tsx | 30 + types/react-navigation/tsconfig.json | 23 + types/react-navigation/tslint.json | 22 + 4 files changed, 678 insertions(+) create mode 100644 types/react-navigation/index.d.ts create mode 100644 types/react-navigation/react-navigation-tests.tsx create mode 100644 types/react-navigation/tsconfig.json create mode 100644 types/react-navigation/tslint.json diff --git a/types/react-navigation/index.d.ts b/types/react-navigation/index.d.ts new file mode 100644 index 0000000000..6b263642ff --- /dev/null +++ b/types/react-navigation/index.d.ts @@ -0,0 +1,603 @@ +// Type definitions for react-navigation 1.0 +// Project: https://github.com/react-community/react-navigation +// Definitions by: Huhuanming +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +import * as React from 'react' +import { + Animated, + ViewStyle, + TextStyle +} from 'react-native' + +export type HeaderMode = 'float' | 'screen' | 'none' + +export function addNavigationHelpers(params: any): any + +type SubViewProps = NavigationSceneRendererProps & { + onNavigateBack?: () => void, +} + +type SubViewRenderer = (subViewProps: SubViewProps) => React.ReactElement | undefined + +export type HeaderProps = NavigationSceneRendererProps & { + mode: HeaderMode, + onNavigateBack?: () => void, + renderLeftComponent: SubViewRenderer, + renderRightComponent: SubViewRenderer, + renderTitleComponent: SubViewRenderer, + tintColor?: string, + router: NavigationRouter, +} + +/** + * NavigationState is a tree of routes for a single navigator, where each child + * route may either be a NavigationScreenRoute or a NavigationRouterRoute. + * NavigationScreenRoute represents a leaf screen, while the + * NavigationRouterRoute represents the state of a child navigator. + * + * NOTE: NavigationState is a state tree local to a single navigator and + * its child navigators (via the routes field). + * If we're in navigator nested deep inside the app, the state will only be the + * state for that navigator. + * The state for the root navigator of our app represents the whole navigation + * state for the whole app. + */ +export interface NavigationState { + /** + * Index refers to the active child route in the routes array. + */ + index: number, + routes: any[], +} + +export interface NavigationRoute

    { + /** + * React's key used by some navigators. No need to specify these manually, + * they will be defined by the router. + */ + key: string, + /** + * For example 'Home'. + * This is used as a key in a route config when creating a navigator. + */ + routeName: string, + /** + * Path is an advanced feature used for deep linking and on the web. + */ + path?: string, + /** + * Params passed to this route when navigating to it, + * e.g. `{ car_id: 123 }` in a route that displays a car. + */ + params: P, +} + +export interface NavigationRouter { + /** + * The reducer that outputs the new navigation state for a given action, with + * an optional previous state. When the action is considered handled but the + * state is unchanged, the output state is null. + */ + getStateForAction: ( + action: NavigationAction, + lastState?: NavigationState, + ) => NavigationState | undefined, + + /** + * Maps a URI-like string to an action. This can be mapped to a state + * using `getStateForAction`. + */ + getActionForPathAndParams: (path: string, params?: NavigationParams) => NavigationAction | undefined, + + getPathAndParamsForState: (state: NavigationState) => { path: string, params?: NavigationParams }, + + getComponentForRouteName: (routeName: string) => NavigationComponent, + + getComponentForState: (state: NavigationState) => NavigationComponent, + + /** + * Gets the screen config for a given navigation screen prop. + * + * For example, we could get the config for a 'Foo' screen when the + * `navigation.state` is: + * + * {routeName: 'Foo', key: '123'} + */ + getScreenConfig: ( + navigation: NavigationScreenProp, + optionName: string, + ) => any, // todo, fix this any type to become a key of NavigationScreenConfig +} + +type NavigationFunc = (navigation: NavigationScreenProp, config: E) => E + +export type NavigationScreenOption = T | NavigationFunc + +export interface HeaderConfig { + /** + * Title string used by the navigation bar, or a custom component + */ + title?: string | React.ReactElement; + + /** + * Whether the navigation bar is visible. + */ + visible?: boolean; + + /** + * Renders a custom right component + */ + right?: React.ReactElement, + + /** + * Renders a custom left component + */ + left?: React.ReactElement + + /** + * Style passed into navigation bar container + */ + style?: ViewStyle, + + /** + * Style passed into navigation bar title + */ + titleStyle?: TextStyle, + + // // Style of title text + // titleTextStyle?: $NavigationThunk, + // // Tint color of navigation bar contents + // tintColor?: $NavigationThunk, + // // Navigation bar height + // height?: $NavigationThunk, + // // Navigation bar translucentcy + // translucent?: $NavigationThunk, + // // Renders a custom left component + // renderLeft?: React.Element<*> | + // (navigation: NavigationProp<*>, canGoBack: boolean) => React.Element<*>, + // // Renders a custom navigation bar background + // renderBackground?: $NavigationThunk>, +} + +export interface TabBarConfig { + /** + * Icon used by the tab bar. + */ + icon?: (options: { tintColor: string, focused: boolean }) => React.ReactElement | undefined; + /** + * Label text used by the tab bar. + */ + label?: string | React.ReactElement; +} + +export interface DrawerConfig { + /** + * Icon used by the drawer. + */ + icon?: (options: { tintColor: string, focused: boolean }) => React.ReactElement | undefined; + /** + * Label text used by the drawer. + */ + label?: string; +} + +export interface CardStackConfig { + /** + * Whether you can use gestures to dismiss this screen. + * Defaults to true on iOS, false on Android. + */ + gesturesEnabled?: boolean; +} + +export interface NavigationScreenOptions { + /** + * Title is rendered by certain navigators, e.g. the tab navigator, + * or on web as the title of the browser tab. + */ + title?: NavigationScreenOption; + /** + * Options passed to the navigation bar for this screen. + */ + header?: NavigationScreenOption; + /** + * Options passed to the tab bar for this screen. + */ + tabBar?: NavigationScreenOption; + /** + * Options passed to the drawer for this screen. + */ + drawer?: NavigationScreenOption; + /** + * Options passed to the card stack for this screen. + */ + cardStack?: NavigationScreenOption; +} + +export interface NavigationScreenConfig { + title?: string, + header?: HeaderConfig, + tabBar?: TabBarConfig, + drawer?: DrawerConfig; +} + +export type NavigationComponent = NavigationScreenComponent | NavigationNavigator + +export type NavigationScreenComponent = React.ComponentClass & { + navigationOptions?: NavigationScreenOptions, +} + +export type NavigationNavigator = React.ComponentClass & { + router?: NavigationRouter, + navigationOptions?: NavigationScreenOptions, +} + +export interface NavigationParams { + [key: string]: any, +} + +export interface NavigationNavigateAction { + type?: 'Navigation/NAVIGATE', + routeName: string, + params?: NavigationParams, + + // The action to run inside the sub-router + action?: NavigationNavigateAction, +} + +export interface NavigationBackAction { + type?: 'Navigation/BACK', + key?: string, +} + +export interface NavigationSetParamsAction { + type?: 'Navigation/SET_PARAMS', + + // The key of the route where the params should be set + key: string, + + // The new params to merge into the existing route params + params?: NavigationParams, +} + +export interface NavigationInitAction { + type?: 'Navigation/INIT', + params?: NavigationParams, +} + +export interface NavigationResetAction { + type?: 'Navigation/RESET', + index: number, + actions: NavigationNavigateAction[], +} + +export interface NavigationUriAction { + type?: 'Navigation/URI', + uri: string, +} + +export interface NavigationContainerOptions { + // This is used to extract the path from the URI passed to the app for a deep link + URIPrefix?: string, +} + +export interface NavigationContainerConfig { + containerOptions?: NavigationContainerOptions, +} + +export interface NavigationStackViewConfig { + mode?: 'card' | 'modal', + headerMode?: HeaderMode, + headerComponent?: React.ComponentClass, + cardStyle?: ViewStyle, + onTransitionStart?: () => void, + onTransitionEnd?: () => void, +} + +export interface NavigationStackRouterConfig { + initialRouteName?: string, + initialRouteParams?: NavigationParams, + paths?: NavigationPathsConfig, + navigationOptions?: NavigationScreenOptions, +} + +export type NavigationStackAction = + NavigationInitAction + | NavigationNavigateAction + | NavigationBackAction + | NavigationSetParamsAction + | NavigationResetAction + +export type NavigationTabAction = + NavigationInitAction + | NavigationNavigateAction + | NavigationBackAction + +export type NavigationAction = + NavigationInitAction + | NavigationStackAction + | NavigationTabAction + +export namespace NavigationActions { + function navigate(options: NavigationNavigateAction): any; + function reset(options: NavigationResetAction): any; + function back(options: NavigationBackAction): any; + function setParams(options: NavigationSetParamsAction): any; +} + +export type NavigationRouteConfig = T & { + navigationOptions?: NavigationScreenOptions, + path?: string, +} + +export interface NavigationPathsConfig { + [routeName: string]: string, +} + +export interface NavigationTabRouterConfig { + initialRouteName?: string, + paths?: NavigationPathsConfig, + navigationOptions?: NavigationScreenOptions, + order?: string[], // todo: type these as the real route names rather than 'string' + + // Does the back button cause the router to switch to the initial tab + backBehavior?: 'none' | 'initialRoute', // defaults `initialRoute` +} + +export interface NavigationRouteConfigMap { + [routeName: string]: NavigationRouteConfig, +} + +export type NavigationDispatch = (action: A) => boolean + +export interface NavigationProp { + state: S, + dispatch: NavigationDispatch, +} + +export type NavigationScreenProp = NavigationProp & { + goBack: (routeKey?: string) => boolean, + navigate: (routeName: string, params?: NavigationParams, action?: NavigationAction) => boolean, + setParams: (newParams: NavigationParams) => boolean, +} + +export interface NavigationNavigatorProps

    { + navigation: NavigationProp, NavigationAction>, +} + +/** + * Gestures, Animations, and Interpolators + */ + +export type NavigationAnimatedValue = Animated.Value + +export type NavigationGestureDirection = 'horizontal' | 'vertical' + +export interface NavigationLayout { + height: NavigationAnimatedValue, + initHeight: number, + initWidth: number, + isMeasured: boolean, + width: NavigationAnimatedValue, +} + +export interface NavigationScene { + index: number, + isActive: boolean, + isStale: boolean, + key: string, + route: any, +} + +export interface NavigationTransitionProps { + // The layout of the transitioner of the scenes. + layout: NavigationLayout, + + // The navigation state of the transitioner. + navigationState: NavigationState, + + // The progressive index of the transitioner's navigation state. + position: NavigationAnimatedValue, + + // The value that represents the progress of the transition when navigation + // state changes from one to another. Its numberic value will range from 0 + // to 1. + // progress.__getAnimatedValue() < 1 : transtion is happening. + // progress.__getAnimatedValue() == 1 : transtion completes. + progress: NavigationAnimatedValue, + + // All the scenes of the transitioner. + scenes: NavigationScene[], + + // The active scene, corresponding to the route at + // `navigationState.routes[navigationState.index]`. When rendering + // NavigationSceneRendererPropsIndex, the scene does not refer to the active + // scene, but instead the scene that is being rendered. The index always + // is the index of the scene + scene: NavigationScene, + index: number, + navigation: NavigationScreenProp, + + // The gesture distance for `horizontal` and `vertical` transitions + gestureResponseDistance?: number, +} + +// The scene renderer props are nearly identical to the props used for rendering +// a transition. The exception is that the passed scene is not the active scene +// but is instead the scene that the renderer should render content for. +export type NavigationSceneRendererProps = NavigationTransitionProps + +export interface NavigationPanHandlers { + onMoveShouldSetResponder: () => void, + onMoveShouldSetResponderCapture: () => void, + onResponderEnd: () => void, + onResponderGrant: () => void, + onResponderMove: () => void, + onResponderReject: () => void, + onResponderRelease: () => void, + onResponderStart: () => void, + onResponderTerminate: () => void, + onResponderTerminationRequest: () => void, + onStartShouldSetResponder: () => void, + onStartShouldSetResponderCapture: () => void, +} + +export interface NavigationTransitionSpec { + duration?: number, + // An easing function from `Easing`. + easing?: () => any, + // A timing function such as `Animated.timing`. + timing?: (value: NavigationAnimatedValue, config: any) => any, +} + +export type NavigationAnimationSetter = ( + position: NavigationAnimatedValue, + newState: NavigationState, + lastState: NavigationState, +) => void + +export type NavigationSceneRenderer = ( + props: NavigationSceneRendererProps, +) => React.ReactElement + +export type NavigationStyleInterpolator = ( + props: NavigationSceneRendererProps, +) => ViewStyle + +export interface LayoutEvent { + nativeEvent: { + layout: { + x: number; + y: number; + width: number; + height: number; + }, + } +} + +interface NavigationContainerProps { + navigation: NavigationProp + onNavigationStateChange?: ( + preNavigationState: NavigationState, + nextNavigationState: NavigationState, + ) => void +} + +interface NavigationContainerState { + nav?: NavigationState +} + +export interface NavigationContainer extends React.ComponentClass< + NavigationContainerProps +> { + router: any +} + +export type StackNavigatorConfig = + NavigationContainerConfig + & NavigationStackViewConfig + & NavigationStackRouterConfig; + +// Return createNavigationContainer +export function StackNavigator( + routeConfigMap: NavigationRouteConfigMap, + stackConfig?: StackNavigatorConfig, +): NavigationContainer + +/** + * Drawer Navigator + */ +export interface DrawNavigatorConfig { + drawerWidth?: number, + drawerPosition?: 'left'|'right', + contentComponent?: React.ReactElement, + contentOptions?: { + activeTintColor?: string, + activeBackgroundColor?: string, + inactiveTintColor?: string, + inactiveBackgroundColor?: string, + style?: ViewStyle, + labelStyle?: TextStyle + } +} + +export function DrawerNavigator( + routeConfigMap: NavigationRouteConfigMap, + drawConfig?: DrawNavigatorConfig, +): NavigationContainer; + +/** + * Tab Navigator + */ +export interface TabNavigatorConfig { + tabBarComponent?: React.ReactElement, + tabBarPosition?: 'top'|'bottom', + swipeEnabled?: boolean, + animationEnabled?: boolean, + lazy?: boolean, + tabBarOptions?: { + activeTintColor?: string, + activeBackgroundColor?: string, + inactiveTintColor?: string, + inactiveBackgroundColor?: string, + showLabel?: boolean, + style?: ViewStyle, + labelStyle?: TextStyle, + + // Top + showIcon?: boolean, + upperCaseLabel?: boolean, + pressColor?: string, + pressOpacity?: number, + scrollEnabled?: boolean, + tabStyle?: ViewStyle, + indicatorStyle?: ViewStyle + } + initialRouteName?: string, + order?: string[], + paths?: any // TODO: better def + backBehavior?: 'initialRoute'|'none' +} + +export function TabNavigator( + routeConfigMap: NavigationRouteConfigMap, + drawConfig?: TabNavigatorConfig, +): NavigationContainer; +/** + * Screen Options + */ +export interface StackNavigatorScreenOptions { + title?: string; + headerVisible?: boolean; + headerTitle?: string|React.ReactElement; + headerBackTitle?: string|null; + headerTruncatedBackTitle?: string; + headerRight?: React.ReactElement; + headerLeft?: React.ReactElement; + headerStyle?: ViewStyle; + headerTitleStyle?: ViewStyle; + headerTintColor?: string; + headerPressColorAndroid?: string; + gesturesEnabled?: boolean; +} + +export interface TabNavigatorScreenOptions { + title?: string; + tabBarVisible?: boolean; + tabBarIcon?: React.ReactElement; + tabBarLaben?: string + |React.ReactElement + | ((options: {focused: boolean, tintColor: string}) => React.ReactElement) + ; +} + +export interface DrawerNavigatorScreenOptions { + title?: string; + drawerLabel?: string + |React.ReactElement + | ((options: {focused: boolean, tintColor: string}) => React.ReactElement) + ; + drawerIcon?: React.ReactElement + | ((options: {focused: boolean, tintColor: string}) => React.ReactElement) + ; +} diff --git a/types/react-navigation/react-navigation-tests.tsx b/types/react-navigation/react-navigation-tests.tsx new file mode 100644 index 0000000000..d01ae62640 --- /dev/null +++ b/types/react-navigation/react-navigation-tests.tsx @@ -0,0 +1,30 @@ +import * as React from 'react'; +import { View } from 'react-native'; +import { + addNavigationHelpers, + StackNavigator, +} from 'react-navigation'; + +const Start = ( + +); + +export const AppNavigator = StackNavigator({ + StartImage: { + path: 'startImage', + screen: Start, + }, +}, { + initialRouteName: 'StartImage', +}); + +const Router = (props: any) => ( + +); diff --git a/types/react-navigation/tsconfig.json b/types/react-navigation/tsconfig.json new file mode 100644 index 0000000000..e670f06667 --- /dev/null +++ b/types/react-navigation/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": false, + "baseUrl": "../", + "jsx": "react", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "react-navigation-tests.tsx" + ] +} diff --git a/types/react-navigation/tslint.json b/types/react-navigation/tslint.json new file mode 100644 index 0000000000..0a6488b194 --- /dev/null +++ b/types/react-navigation/tslint.json @@ -0,0 +1,22 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + // Lowercase `object` is available in TypeScript 2.2 only. + "ban-types": false, + // Below are all TODO + "align": false, + "array-type": false, + "comment-format": false, + "interface-over-type-literal": false, + "jsdoc-format": false, + "no-misused-new": false, + "no-consecutive-blank-lines": false, + "no-empty-interface": false, + "no-padding": false, + "no-var": false, + "prefer-declare-function": false, + "prefer-method-signature": false, + "semicolon": false, + "strict-export-declare-modifiers": false + } +} From e8d4865015c4e6eb0a195abbe33937c461ff7b30 Mon Sep 17 00:00:00 2001 From: Paul Murray Date: Mon, 1 May 2017 16:12:09 -0400 Subject: [PATCH 100/321] fix CollectionAggregationOptions.maxTimeMS (#16226) `maxTimeMS` on `CollectionAggregationOptions` should be `number` not `boolean` --- types/mongodb/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/mongodb/index.d.ts b/types/mongodb/index.d.ts index 859dc87b26..4c4106c7a6 100644 --- a/types/mongodb/index.d.ts +++ b/types/mongodb/index.d.ts @@ -634,7 +634,7 @@ export interface CollectionAggregationOptions { allowDiskUse?: boolean; // specifies a cumulative time limit in milliseconds for processing operations // on the cursor. MongoDB interrupts the operation at the earliest following interrupt point. - maxTimeMS?: boolean; + maxTimeMS?: number; // Allow driver to bypass schema validation in MongoDB 3.2 or higher. bypassDocumentValidation?: boolean; } From 55d680e198f84727ef2f0011632f1cff1f82497d Mon Sep 17 00:00:00 2001 From: Oden Date: Mon, 1 May 2017 13:13:41 -0700 Subject: [PATCH 101/321] Remove unneeded and broken react-router dependency from react-i18next (#16228) --- types/react-i18next/index.d.ts | 3 +-- types/react-i18next/tsconfig.json | 5 ----- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/types/react-i18next/index.d.ts b/types/react-i18next/index.d.ts index 7114087cd6..930fa7ae3c 100644 --- a/types/react-i18next/index.d.ts +++ b/types/react-i18next/index.d.ts @@ -6,7 +6,6 @@ import * as I18next from "i18next"; import * as React from "react"; -import * as ReactRouter from "react-router"; export type TranslationFunction = I18next.TranslationFunction; @@ -53,6 +52,6 @@ interface TranslateOptions { export function translate(namespaces?: string[] | string, options?: TranslateOptions): (WrappedComponent: C) => C; -export function loadNamespaces({ components, i18n }: { components: ReactRouter.RouteComponent[], i18n: I18next.I18n }): Promise; +export function loadNamespaces({ components, i18n }: { components: (React.ComponentClass | React.StatelessComponent)[], i18n: I18next.I18n }): Promise; export as namespace ReactI18Next; diff --git a/types/react-i18next/tsconfig.json b/types/react-i18next/tsconfig.json index c64579c2e8..ad5bca544b 100644 --- a/types/react-i18next/tsconfig.json +++ b/types/react-i18next/tsconfig.json @@ -9,11 +9,6 @@ "noImplicitThis": true, "strictNullChecks": true, "baseUrl": "../", - "paths": { - "history": ["history/v2"], - "history/*": ["history/v2/*"], - "react-router": ["react-router/v2"] - }, "typeRoots": [ "../" ], From f532d39637dfd4c272b504794fe2ff0bfb704b81 Mon Sep 17 00:00:00 2001 From: Endel Dreyer Date: Mon, 1 May 2017 22:15:37 +0200 Subject: [PATCH 102/321] node: add pauseOnConnect to createServer options (#16230) Documentation: https://nodejs.org/api/net.html#net_net_createserver_options_connectionlistener --- types/node/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/node/index.d.ts b/types/node/index.d.ts index 0f2a6e663e..9985d61ccc 100644 --- a/types/node/index.d.ts +++ b/types/node/index.d.ts @@ -2122,7 +2122,7 @@ declare module "net" { prependOnceListener(event: "listening", listener: () => void): this; } export function createServer(connectionListener?: (socket: Socket) => void): Server; - export function createServer(options?: { allowHalfOpen?: boolean; }, connectionListener?: (socket: Socket) => void): Server; + export function createServer(options?: { allowHalfOpen?: boolean, pauseOnConnect?: boolean }, connectionListener?: (socket: Socket) => void): Server; export function connect(options: { port: number, host?: string, localAddress?: string, localPort?: string, family?: number, allowHalfOpen?: boolean; }, connectionListener?: Function): Socket; export function connect(port: number, host?: string, connectionListener?: Function): Socket; export function connect(path: string, connectionListener?: Function): Socket; From 5a71b4961f39b3b8b72c72622395ef251006ffc3 Mon Sep 17 00:00:00 2001 From: Michael Aird Date: Mon, 1 May 2017 16:16:20 -0400 Subject: [PATCH 103/321] Add missing scheduler properties/method (#16231) --- types/kendo-ui/index.d.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/types/kendo-ui/index.d.ts b/types/kendo-ui/index.d.ts index f1d3fa0437..9848335e49 100644 --- a/types/kendo-ui/index.d.ts +++ b/types/kendo-ui/index.d.ts @@ -5409,6 +5409,7 @@ declare namespace kendo.ui { slotByElement(element: Element): any; slotByElement(element: JQuery): any; view(type?: string): void; + view(): kendo.ui.SchedulerView; viewName(): string; } @@ -5627,7 +5628,8 @@ declare namespace kendo.ui { dateHeaderTemplate?: string|Function; dayTemplate?: string|Function; editable?: boolean|SchedulerViewEditable; - endTime?: Date; + endDate?(): Date; + endTime?: Date; eventHeight?: number; eventTemplate?: string|Function; eventTimeTemplate?: string|Function; @@ -5641,6 +5643,7 @@ declare namespace kendo.ui { selectedShortDateFormat?: string; showWorkHours?: boolean; slotTemplate?: string|Function; + startDate?(): Date; startTime?: Date; title?: string; type?: string; From 4d4b29f5630b01e7a42be4f77cb8c7d2ec4afd69 Mon Sep 17 00:00:00 2001 From: spacejack Date: Mon, 1 May 2017 16:16:42 -0400 Subject: [PATCH 104/321] Fixes for RouteResolver type and ClassComponent view method. (#16232) --- types/mithril/index.d.ts | 8 ++--- types/mithril/test/test-class-component.ts | 11 ++++--- types/mithril/test/test-route.ts | 38 ++++++++++++++++++++-- 3 files changed, 46 insertions(+), 11 deletions(-) diff --git a/types/mithril/index.d.ts b/types/mithril/index.d.ts index 1115d7c1f5..46fbb061ab 100644 --- a/types/mithril/index.d.ts +++ b/types/mithril/index.d.ts @@ -61,11 +61,11 @@ declare namespace Mithril { trust(html: string): Vnode; } - interface RouteResolver { + interface RouteResolver { /** The onmatch hook is called when the router needs to find a component to render. */ - render?(this: State, vnode: Vnode): Children; + onmatch?(this: this, args: Attrs, requestedPath: string): Component | Promise | void; /** The render method is called on every redraw for a matching route. */ - onmatch?(args: Params, requestedPath: string): Component | Promise | void; + render?(this: this, vnode: Vnode): Children; } /** This represents a key-value mapping linking routes to components. */ @@ -232,7 +232,7 @@ declare namespace Mithril { /** The onremove hook is called before a DOM element is removed from the document. */ onupdate?(vnode: VnodeDOM): any; /** Creates a view out of virtual elements. */ - view(vnode: CVnode): Children | null | void; + view(vnode: Vnode): Children | null | void; } /** diff --git a/types/mithril/test/test-class-component.ts b/types/mithril/test/test-class-component.ts index 7c1348683e..19f3aa343a 100644 --- a/types/mithril/test/test-class-component.ts +++ b/types/mithril/test/test-class-component.ts @@ -1,5 +1,5 @@ import * as m from 'mithril'; -import {ClassComponent, CVnode, CVnodeDOM} from 'mithril'; +import {ClassComponent, Vnode, CVnode, CVnodeDOM} from 'mithril'; /////////////////////////////////////////////////////////// // 0. @@ -95,12 +95,13 @@ class Comp4 implements ClassComponent { add(num: number) { this.count += num; } - view({attrs}: CVnode) { + view(vnode: Vnode) { return [ - m('h1', `This ${attrs.name} has been clicked ${this.count} times`), + m('h1', `This ${vnode.attrs.name} has been clicked ${this.count} times`), m('button', { - onclick: () => this.add(1) + // Can access 'this' via vnode.state + onclick: () => vnode.state.add(1) }, "Click me") ]; @@ -129,7 +130,7 @@ export interface Attrs { export default class MyComponent implements ClassComponent { count = 0; - view({attrs}: CVnode) { + view({attrs}: Vnode) { return m('span', `name: ${attrs.name}, count: ${this.count}`); } } diff --git a/types/mithril/test/test-route.ts b/types/mithril/test/test-route.ts index 5e584a8184..b18a92212c 100644 --- a/types/mithril/test/test-route.ts +++ b/types/mithril/test/test-route.ts @@ -1,4 +1,4 @@ -import {Component} from 'mithril'; +import {Component, Comp, RouteResolver} from 'mithril'; import * as h from 'mithril/hyperscript'; import * as route from 'mithril/route'; @@ -14,6 +14,39 @@ const component2 = { } } as Component<{title: string}, {}>; +interface Attrs { + id: string; +} + +interface State { + text: string; +} + +const component3: Comp = { + text: "Uninitialized", + oninit({state}) { + state.text = "Initialized"; + }, + view({attrs}) { + return h('p', 'id: ' + attrs.id); + } +}; + +// RouteResolver example using Attrs type and this context +const routeResolver: RouteResolver & {message: string} = { + message: "", + onmatch(attrs, path) { + this.message = "Match"; + const id: string = attrs.id; + return component3; + }, + render(vnode) { + this.message = "Render"; + vnode.key = vnode.attrs.id; + return vnode; + } +}; + route(document.body, '/', { '/': component1, '/test1': { @@ -41,7 +74,8 @@ route(document.body, '/', { resolve(component2); }); } - } + }, + 'test5/:id': routeResolver }); route.prefix('/app'); From 0edf649dcb4322d6695de3c1e0f7c421b60dd6bb Mon Sep 17 00:00:00 2001 From: valepu Date: Mon, 1 May 2017 22:17:01 +0200 Subject: [PATCH 105/321] Autobahn: Add missing Publish Options (#16233) Add all the missing publish options to interface IPublishOptions (according to documentation https://github.com/crossbario/autobahn-js/blob/master/doc/programming.md#publishing-events ). "disclose_me" is undocumented but it is indeed used inside autobahn's code --- types/autobahn/index.d.ts | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/types/autobahn/index.d.ts b/types/autobahn/index.d.ts index 8a37bdf21b..6741bcccd1 100644 --- a/types/autobahn/index.d.ts +++ b/types/autobahn/index.d.ts @@ -1,6 +1,6 @@ // Type definitions for AutobahnJS v0.9.7 // Project: http://autobahn.ws/js/ -// Definitions by: Elad Zelingher , Andy Hawkins +// Definitions by: Elad Zelingher , Andy Hawkins , Wladimir Totino // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// @@ -167,8 +167,14 @@ declare namespace autobahn { interface IPublishOptions { acknowledge?: boolean; exclude?: number[]; + exclude_authid?: string[]; + exclude_authrole?: string[]; eligible?: number[]; - disclose_me?: Boolean; + eligible_authid?: string[]; + eligible_authrole?: string[]; + retain?: boolean; + disclose_me?: boolean; + exclude_me?: boolean; } interface ISubscribeOptions { From 15d14159bac65d42872f78bf70138ee8f2efb7e3 Mon Sep 17 00:00:00 2001 From: Budi Irawan Date: Tue, 2 May 2017 06:44:20 +1000 Subject: [PATCH 106/321] improve fallback language (#16236) - add def for array of string - add def for object list --- types/i18next/i18next-tests.ts | 28 ++++++++++++++++++++++++++++ types/i18next/index.d.ts | 14 ++++++++++---- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/types/i18next/i18next-tests.ts b/types/i18next/i18next-tests.ts index 744fd950d4..2d3f6d3b04 100644 --- a/types/i18next/i18next-tests.ts +++ b/types/i18next/i18next-tests.ts @@ -59,6 +59,18 @@ i18n.init({ wait: false }); +i18n.init({ + fallbackLng: ['en', 'ru'], +}); + +i18n.init({ + fallbackLng: { + 'de-CH': ['fr', 'it'], + 'zh-HANT': ['zh-HANS', 'en'], + 'default': ['en'] + }, +}); + i18n.t('helloWorld', { defaultValue: 'default', count: 10 @@ -70,6 +82,22 @@ i18n.t('helloWorldInterpolated', { name: "world" }); +i18n.t('helloSingleFallbackLng', { + fallbackLng: 'en' +}); + +i18n.t('helloMultiFallbackLng', { + fallbackLng: ['en', 'ru'] +}); + +i18n.t('helloObjectFallbackLng', { + fallbackLng: { + 'de-CH': ['fr', 'it'], + 'zh-HANT': ['zh-HANS', 'en'], + 'default': ['en'] + }, +}); + i18n.exists("helloWorld"); const options:i18n.Options = i18n.options; diff --git a/types/i18next/index.d.ts b/types/i18next/index.d.ts index c0b0c82d81..1cacdeb7c3 100644 --- a/types/i18next/index.d.ts +++ b/types/i18next/index.d.ts @@ -1,6 +1,6 @@ -// Type definitions for i18next v2.3.4 +// Type definitions for i18next v2.3.5 // Project: http://i18next.com -// Definitions by: Michael Ledin +// Definitions by: Michael Ledin , Budi Irawan // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // Sources: https://github.com/i18next/i18next/ @@ -19,6 +19,12 @@ declare namespace i18n { [key: string]: any; } + interface FallbackLngObjList { + [language: string]: string[] + } + + type FallbackLng = string | string[] | FallbackLngObjList; + interface InterpolationOptions { escapeValue?: boolean; prefix?: string; @@ -41,7 +47,7 @@ declare namespace i18n { replace?: any; lng?: string; lngs?: string[]; - fallbackLng?: string; + fallbackLng?: FallbackLng; ns?: string | string[]; keySeparator?: string; nsSeparator?: string; @@ -57,7 +63,7 @@ declare namespace i18n { debug?: boolean; resources?: ResourceStore; lng?: string; - fallbackLng?: string; + fallbackLng?: FallbackLng; ns?: string | string[]; defaultNS?: string; fallbackNS?: string | string[]; From 3440a18e98cb7845e53ca37114bb3a9910c2fc7b Mon Sep 17 00:00:00 2001 From: sclassen Date: Mon, 1 May 2017 22:46:11 +0200 Subject: [PATCH 107/321] ngStorage: improve definitions and update to newest tslint (#16238) * update ngstorage to new linter configuration * update ngStorage interfaces - remove the method StorageService.get() as it does not exist - add the method StorageService.$supported() which was missing - StorageService.$default() and StorageService.$reset() return an intersection type of its argument and StorageService - add the method StorageProvider.remove() which was missing - add the method StorageProvider.supported which was missing --- types/ngstorage/index.d.ts | 45 ++++++++--- types/ngstorage/ngstorage-tests.ts | 125 +++++++++++++++-------------- types/ngstorage/tsconfig.json | 2 +- types/ngstorage/tslint.json | 1 + 4 files changed, 101 insertions(+), 72 deletions(-) create mode 100644 types/ngstorage/tslint.json diff --git a/types/ngstorage/index.d.ts b/types/ngstorage/index.d.ts index 15fb3c0481..83c740ff0e 100644 --- a/types/ngstorage/index.d.ts +++ b/types/ngstorage/index.d.ts @@ -1,23 +1,48 @@ -// Type definitions for ngstorage 0.3.11 +// Type definitions for ngstorage 0.3 // Project: https://github.com/gsklee/ngStorage // Definitions by: Jakub Pistek // Definitions: https://github.com/kubiq/DefinitelyTyped -declare module 'ngstorage' { +export namespace ngStorage { + interface StorageService { + /** + * @return true if the storage service is supported by the browser. + */ + $supported(): boolean; + + /** + * Adds default values to the store. + * Copies all properties of the default items to the store. + * If the store already has one of these properties it will skip it. + * + * @param items object holding the default values. + * @return the modified storage service. + */ + $default(items: T): StorageService & T; + + /** + * Removes all properties from the store. + * + * @param items optional object holding the default values to initialize the store after reset. + * @return the modified storage service. + */ + $reset(items?: T): StorageService & T; - interface IStorageService { - $default(items: {}): IStorageService; - $reset(items?: {}): IStorageService; $apply(): void; $sync(): void; - get(key: string): T; + + /** + * Access to the properties of the store. + */ + [key: string]: any; } - interface IStorageProvider extends angular.IServiceProvider { - - get(key: string): T; - set(key: string, value: T): T; + interface StorageProvider extends angular.IServiceProvider { + get(key: string): T | boolean; + set(key: string, value: T): T | boolean; + remove(key: string): void; + supported(): boolean; setKeyPrefix(prefix: string): void; setSerializer(serializer: (value: any) => string): void; setDeserializer(deserializer: (value: string) => any): void; diff --git a/types/ngstorage/ngstorage-tests.ts b/types/ngstorage/ngstorage-tests.ts index abddf19bb7..a69d905a55 100644 --- a/types/ngstorage/ngstorage-tests.ts +++ b/types/ngstorage/ngstorage-tests.ts @@ -1,78 +1,81 @@ -/// +import * as angular from "angular"; +import { ngStorage } from "ngstorage"; -import {IStorageService, IStorageProvider} from "ngstorage"; +let app: angular.IModule = angular.module('at', ['ngStorage']); -var app: any; -app.controller('LocalCtrl', function ($localStorage: IStorageService) { +app.controller('LocalCtrl', ($localStorage: ngStorage.StorageService) => { + if ($localStorage.$supported()) { + const store: MyStore & ngStorage.StorageService = $localStorage.$default({ + counter: 1 + }); - $localStorage.$default({ - counter: 1 - }); + store.$reset({ + counter: 1 + }); - $localStorage.$reset({ - counter: 1 - }); - - $localStorage.$reset(); - - $localStorage.$apply(); - - $localStorage.$sync(); + store.$reset(); + store.$apply(); + store.$sync(); + } }); -app.controller('SessionCtrl', function ($sessionStorage: IStorageService) { +app.controller('SessionCtrl', ($sessionStorage: ngStorage.StorageService) => { + if ($sessionStorage.$supported()) { + const store: MyStore & ngStorage.StorageService = $sessionStorage.$default({ + counter: 1 + }); - $sessionStorage.$default({ - counter: 1 - }); + store.$reset({ + counter: 1 + }); - $sessionStorage.$reset({ - counter: 1 - }); - - $sessionStorage.$reset(); - - $sessionStorage.$apply(); - - $sessionStorage.$sync(); + store.$reset(); + store.$apply(); + store.$sync(); + } }); -app.config(['$localStorageProvider', function ($localStorageProvider: IStorageProvider) { +app.config(($localStorageProvider: ngStorage.StorageProvider) => { + if ($localStorageProvider.supported()) { + $localStorageProvider.setKeyPrefix('NewPrefix'); + $localStorageProvider.set('MyKey', { counter: 'value' }); + $localStorageProvider.get('MyKey'); + $localStorageProvider.remove('MyKey'); - $localStorageProvider.setKeyPrefix('NewPrefix'); + const mySerializer = (value: any): string => { + return value.toString(); + }; - $localStorageProvider.get('MyKey'); + const myDeserializer = (value: string): any => { + return value; + }; - $localStorageProvider.set('MyKey', {counter: 'value'}); + $localStorageProvider.setSerializer(mySerializer); + $localStorageProvider.setDeserializer(myDeserializer); + } +}); - var mySerializer = function (value: any): string { - return value.toString(); - }; +app.config(($sessionStorageProvider: ngStorage.StorageProvider) => { + if ($sessionStorageProvider.supported()) { + $sessionStorageProvider.setKeyPrefix('NewPrefix'); + $sessionStorageProvider.set('MyKey', { counter: 'value' }); + $sessionStorageProvider.get('MyKey'); + $sessionStorageProvider.remove('MyKey'); - var myDeserializer = function (value: string): any { - return value; - }; + const mySerializer = (value: any): string => { + return value.toString(); + }; - $localStorageProvider.setSerializer(mySerializer); - $localStorageProvider.setDeserializer(myDeserializer); + const myDeserializer = (value: string): any => { + return value; + }; + + $sessionStorageProvider.setSerializer(mySerializer); + $sessionStorageProvider.setDeserializer(myDeserializer); + } +}); + +interface MyStore { + counter?: number; + foo?: string; } -]).config(['$sessionStorageProvider', function ($sessionStorageProvider: IStorageProvider) { - - $sessionStorageProvider.setKeyPrefix('NewPrefix'); - - $sessionStorageProvider.get('MyKey'); - - $sessionStorageProvider.set('MyKey', {counter: 'value'}); - - var mySerializer = function (value: any): string { - return value.toString(); - }; - - var myDeserializer = function (value: string): any { - return value; - }; - - $sessionStorageProvider.setSerializer(mySerializer); - $sessionStorageProvider.setDeserializer(myDeserializer); -} -]); diff --git a/types/ngstorage/tsconfig.json b/types/ngstorage/tsconfig.json index a3cdb4a204..fffe367328 100644 --- a/types/ngstorage/tsconfig.json +++ b/types/ngstorage/tsconfig.json @@ -7,7 +7,7 @@ ], "noImplicitAny": true, "noImplicitThis": true, - "strictNullChecks": false, + "strictNullChecks": true, "baseUrl": "../", "typeRoots": [ "../" diff --git a/types/ngstorage/tslint.json b/types/ngstorage/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/ngstorage/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From ddb6d939c3ad40e3e22fdf2d6c6d4fee3af29262 Mon Sep 17 00:00:00 2001 From: Denis Date: Mon, 1 May 2017 16:47:36 -0400 Subject: [PATCH 108/321] TS Linting react-router (#16240) - Using default `dtslint/dt.json` for linting --- types/react-router/index.d.ts | 184 ++++++++---------- types/react-router/test/Ambiguous.tsx | 14 +- types/react-router/test/Animation.tsx | 26 +-- types/react-router/test/Auth.tsx | 42 ++-- types/react-router/test/Basic.tsx | 16 +- types/react-router/test/CustomLink.tsx | 14 +- types/react-router/test/MemoryRouter.tsx | 14 +- types/react-router/test/ModalGallery.tsx | 52 ++--- .../react-router/test/NavigateWithContext.tsx | 54 ++--- types/react-router/test/NoMatch.tsx | 14 +- types/react-router/test/Params.tsx | 10 +- .../test/PreventingTransitions.tsx | 20 +- types/react-router/test/Recursive.tsx | 18 +- types/react-router/test/RouteConfig.tsx | 26 +-- types/react-router/test/Sidebar.tsx | 16 +- types/react-router/test/Switch.tsx | 10 +- types/react-router/tslint.json | 15 +- 17 files changed, 251 insertions(+), 294 deletions(-) diff --git a/types/react-router/index.d.ts b/types/react-router/index.d.ts index 2c21ac742b..07e22c26d5 100644 --- a/types/react-router/index.d.ts +++ b/types/react-router/index.d.ts @@ -15,112 +15,82 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.2 -declare module 'react-router' { - import * as React from 'react'; - import * as H from 'history'; +import * as React from 'react'; +import * as H from 'history'; - // This is the type of the context object that will be passed down to all children of - // a `Router` component: - interface RouterChildContext

    { - router: { - history: H.History - route: { - location: H.Location, - match: match

    - } - } - } - interface MemoryRouterProps { - initialEntries?: H.LocationDescriptor[]; - initialIndex?: number; - getUserConfirmation?: () => void; - keyLength?: number; - } - class MemoryRouter extends React.Component {} - - - interface PromptProps { - message: string | ((location: H.Location) => void); - when?: boolean; - } - class Prompt extends React.Component {} - - - interface RedirectProps { - to: H.LocationDescriptor; - push?: boolean; - from?: string; - path?: string; - exact?: boolean; - strict?: boolean; - } - class Redirect extends React.Component {} - - - interface RouteComponentProps

    { - match: match

    ; - location: H.Location; - history: H.History; - } - - interface RouteProps { - location?: H.Location; - component?: React.SFC | void> | React.ComponentClass | void>; - render?: (props: RouteComponentProps) => React.ReactNode; - children?: (props: RouteComponentProps) => React.ReactNode | React.ReactNode; - path?: string; - exact?: boolean; - strict?: boolean; - } - class Route extends React.Component {} - - - interface RouterProps { - history: any; - } - class Router extends React.Component {} - - - interface StaticRouterProps { - basename?: string; - location?: string | object; - context?: object; - } - class StaticRouter extends React.Component {} - - - interface SwitchProps extends RouteProps { - } - class Switch extends React.Component {} - - - interface match

    { - params: P; - isExact: boolean; - path: string; - url: string; - } - - - function matchPath

    (pathname: string, props: RouteProps): match

    | null; - - - function withRouter(component: React.SFC> | React.ComponentClass>): React.ComponentClass; - - - export { - MemoryRouter, - Prompt, - Redirect, - RouteComponentProps, // TypeScript specific, not from React Router itself - RouteProps, // TypeScript specific, not from React Router itself - Route, - Router, - StaticRouter, - Switch, - match, // TypeScript specific, not from React Router itself - matchPath, - withRouter, - RouterChildContext - } +// This is the type of the context object that will be passed down to all children of +// a `Router` component: +export interface RouterChildContext

    { + router: { + history: H.History + route: { + location: H.Location + match: match

    + } + }; } +export interface MemoryRouterProps { + initialEntries?: H.LocationDescriptor[]; + initialIndex?: number; + getUserConfirmation?: (() => void); + keyLength?: number; +} + +export class MemoryRouter extends React.Component {} + +export interface PromptProps { + message: string | ((location: H.Location) => void); + when?: boolean; +} +export class Prompt extends React.Component {} + +export interface RedirectProps { + to: H.LocationDescriptor; + push?: boolean; + from?: string; + path?: string; + exact?: boolean; + strict?: boolean; +} +export class Redirect extends React.Component {} + +export interface RouteComponentProps

    { + match: match

    ; + location: H.Location; + history: H.History; +} + +export interface RouteProps { + location?: H.Location; + component?: React.SFC | undefined> | React.ComponentClass | undefined>; + render?: ((props: RouteComponentProps) => React.ReactNode); + children?: ((props: RouteComponentProps) => React.ReactNode | React.ReactNode); + path?: string; + exact?: boolean; + strict?: boolean; +} +export class Route extends React.Component {} + +export interface RouterProps { + history: any; +} +export class Router extends React.Component {} + +export interface StaticRouterProps { + basename?: string; + location?: string | object; + context?: object; +} + +export class StaticRouter extends React.Component {} +export class Switch extends React.Component {} + +export interface match

    { + params: P; + isExact: boolean; + path: string; + url: string; +} + +export function matchPath

    (pathname: string, props: RouteProps): match

    | null; +export function withRouter(component: React.SFC> | React.ComponentClass>): React.ComponentClass; diff --git a/types/react-router/test/Ambiguous.tsx b/types/react-router/test/Ambiguous.tsx index 971636a1e0..6e6598fd71 100644 --- a/types/react-router/test/Ambiguous.tsx +++ b/types/react-router/test/Ambiguous.tsx @@ -1,11 +1,11 @@ -import * as React from 'react' +import * as React from 'react'; import { BrowserRouter as Router, RouteComponentProps, Route, Link, Switch -} from 'react-router-dom' +} from 'react-router-dom'; const AmbiguousExample = () => ( @@ -37,14 +37,14 @@ const AmbiguousExample = () => ( -) +); -const About = () =>

    About

    -const Company = () =>

    Company

    +const About = () =>

    About

    ; +const Company = () =>

    Company

    ; const User: React.SFC> = ({ match }) => (

    User: {match.params.user}

    -) +); -export default AmbiguousExample \ No newline at end of file +export default AmbiguousExample; diff --git a/types/react-router/test/Animation.tsx b/types/react-router/test/Animation.tsx index 1696dfd6fd..d303f29a97 100644 --- a/types/react-router/test/Animation.tsx +++ b/types/react-router/test/Animation.tsx @@ -1,5 +1,5 @@ -import * as React from 'react' -import * as ReactCSSTransitionGroup from 'react-addons-css-transition-group' +import * as React from 'react'; +import * as ReactCSSTransitionGroup from 'react-addons-css-transition-group'; import { BrowserRouter as Router, RouteComponentProps, @@ -7,7 +7,7 @@ import { LinkProps, Link, Redirect -} from 'react-router-dom' +} from 'react-router-dom'; /* you'll need this CSS somewhere .fade-enter { @@ -58,13 +58,13 @@ const AnimationExample = () => ( )}/> -) +); const NavLink: React.SFC = (props) => (
  • -) +); interface HSLParams { h: number; @@ -78,9 +78,9 @@ const HSL: React.SFC> = ({ match: { params } }) = ...styles.hsl, background: `hsl(${params.h}, ${params.s}%, ${params.l}%)` }}>hsl({params.h}, {params.s}%, {params.l}%) -) +); -const styles: any = {} +const styles: any = {}; styles.fill = { position: 'absolute', @@ -88,13 +88,13 @@ styles.fill = { right: 0, top: 0, bottom: 0 -} +}; styles.content = { ...styles.fill, top: '40px', textAlign: 'center' -} +}; styles.nav = { padding: 0, @@ -104,20 +104,20 @@ styles.nav = { height: '40px', width: '100%', display: 'flex' -} +}; styles.navItem = { textAlign: 'center', flex: 1, listStyleType: 'none', padding: '10px' -} +}; styles.hsl = { ...styles.fill, color: 'white', paddingTop: '20px', fontSize: '30px' -} +}; -export default AnimationExample \ No newline at end of file +export default AnimationExample; diff --git a/types/react-router/test/Auth.tsx b/types/react-router/test/Auth.tsx index 86dffe2b63..c57251f9ef 100644 --- a/types/react-router/test/Auth.tsx +++ b/types/react-router/test/Auth.tsx @@ -1,4 +1,4 @@ -import * as React from 'react' +import * as React from 'react'; import { BrowserRouter as Router, RouteComponentProps, @@ -7,7 +7,7 @@ import { Link, Redirect, withRouter -} from 'react-router-dom' +} from 'react-router-dom'; //////////////////////////////////////////////////////////// // 1. Click the public page @@ -28,31 +28,31 @@ const AuthExample = () => ( -) +); const fakeAuth = { isAuthenticated: false, authenticate(this: any, cb: () => void) { - this.isAuthenticated = true - setTimeout(cb, 100) // fake async + this.isAuthenticated = true; + setTimeout(cb, 100); // fake async }, signout(this: any, cb: () => void) { - this.isAuthenticated = false - setTimeout(cb, 100) + this.isAuthenticated = false; + setTimeout(cb, 100); } -} +}; const AuthButton = withRouter(({ history }) => ( fakeAuth.isAuthenticated ? (

    Welcome!

    ) : (

    You are not logged in.

    ) -)) +)); const PrivateRoute: React.SFC = ({ component, ...rest }) => ( ( @@ -63,30 +63,30 @@ const PrivateRoute: React.SFC = ({ component, ...rest }) => ( }}/> ) )}/> -) +); -const Public: React.SFC> = () =>

    Public

    -const Protected: React.SFC> = () =>

    Protected

    +const Public: React.SFC> = () =>

    Public

    ; +const Protected: React.SFC> = () =>

    Protected

    ; class Login extends React.Component, {redirectToReferrer: boolean}> { state = { redirectToReferrer: false - } + }; login = () => { fakeAuth.authenticate(() => { - this.setState({ redirectToReferrer: true }) - }) + this.setState({ redirectToReferrer: true }); + }); } render() { - const { from } = this.props.location.state || { from: { pathname: '/' } } - const { redirectToReferrer } = this.state + const { from } = this.props.location.state || { from: { pathname: '/' } }; + const { redirectToReferrer } = this.state; if (redirectToReferrer) { return ( - ) + ); } return ( @@ -94,8 +94,8 @@ class Login extends React.Component, {redirectToReferr

    You must log in to view the page at {from.pathname}

    - ) + ); } } -export default AuthExample \ No newline at end of file +export default AuthExample; diff --git a/types/react-router/test/Basic.tsx b/types/react-router/test/Basic.tsx index 16ff86947a..c2b6c58405 100644 --- a/types/react-router/test/Basic.tsx +++ b/types/react-router/test/Basic.tsx @@ -1,10 +1,10 @@ -import * as React from 'react' +import * as React from 'react'; import { BrowserRouter as Router, RouteComponentProps, Route, Link -} from 'react-router-dom' +} from 'react-router-dom'; const BasicExample = () => ( @@ -22,19 +22,19 @@ const BasicExample = () => ( -) +); const Home = () => (

    Home

    -) +); const About = () => (

    About

    -) +); const Topics: React.SFC> = ({ match }) => (
    @@ -62,12 +62,12 @@ const Topics: React.SFC> = ({ match }) => (

    Please select a topic.

    )}/>
    -) +); const Topic: React.SFC> = ({ match }) => (

    {match.params.topicId}

    -) +); -export default BasicExample \ No newline at end of file +export default BasicExample; diff --git a/types/react-router/test/CustomLink.tsx b/types/react-router/test/CustomLink.tsx index 2159cf039a..4ec8be4c87 100644 --- a/types/react-router/test/CustomLink.tsx +++ b/types/react-router/test/CustomLink.tsx @@ -1,10 +1,10 @@ -import * as React from 'react' +import * as React from 'react'; import { BrowserRouter as Router, Route, LinkProps, Link -} from 'react-router-dom' +} from 'react-router-dom'; const CustomLinkExample = () => ( @@ -16,7 +16,7 @@ const CustomLinkExample = () => ( -) +); interface OldSchoolMenuLinkProps extends LinkProps { activeOnlyWhenExact?: boolean; @@ -28,18 +28,18 @@ const OldSchoolMenuLink: React.SFC = ({ label, to, activ {match ? '> ' : ''}{label} )}/> -) +); const Home = () => (

    Home

    -) +); const About = () => (

    About

    -) +); -export default CustomLinkExample \ No newline at end of file +export default CustomLinkExample; diff --git a/types/react-router/test/MemoryRouter.tsx b/types/react-router/test/MemoryRouter.tsx index 1dd247acb2..7d947e436e 100644 --- a/types/react-router/test/MemoryRouter.tsx +++ b/types/react-router/test/MemoryRouter.tsx @@ -1,16 +1,16 @@ -import * as React from 'react' +import * as React from 'react'; import { MemoryRouter, Route, Link -} from 'react-router-dom' +} from 'react-router-dom'; const initialRouterEntries = [ '/', { pathname: '/about' } -] +]; const MemoryRouterExample = () => ( @@ -26,18 +26,18 @@ const MemoryRouterExample = () => ( -) +); const Home = () => (

    Home

    -) +); const About = () => (

    About

    -) +); -export default MemoryRouterExample +export default MemoryRouterExample; diff --git a/types/react-router/test/ModalGallery.tsx b/types/react-router/test/ModalGallery.tsx index ae817e0cc9..7236ea19a1 100644 --- a/types/react-router/test/ModalGallery.tsx +++ b/types/react-router/test/ModalGallery.tsx @@ -1,11 +1,11 @@ -import * as React from 'react' +import * as React from 'react'; import { BrowserRouter as Router, Switch, RouteComponentProps, Route, Link -} from 'react-router-dom' +} from 'react-router-dom'; // This example shows how to render two different screens // (or the same screen in a different context) at the same url, @@ -29,26 +29,26 @@ class ModalSwitch extends React.Component, void> { // So, to get both screens to render, we can save the old // location and pass it to Switch, so it will think the location // is still `/` even though its `/images/2`. - previousLocation = this.props.location + previousLocation = this.props.location; componentWillUpdate(nextProps: RouteComponentProps) { - const { location } = this.props + const { location } = this.props; // set previousLocation if props.location is not modal if ( nextProps.history.action !== 'POP' && (!location.state || !location.state.modal) ) { - this.previousLocation = this.props.location + this.previousLocation = this.props.location; } } render() { - const { location } = this.props + const { location } = this.props; const isModal = !!( location.state && location.state.modal && this.previousLocation !== location // not initial render - ) + ); return (
    @@ -58,7 +58,7 @@ class ModalSwitch extends React.Component, void> { {isModal ? : null}
    - ) + ); } } @@ -68,21 +68,21 @@ const IMAGES = [ { id: 2, title: 'Tomato', color: 'Tomato' }, { id: 3, title: 'Seven Ate Nine', color: '#789' }, { id: 4, title: 'Crimson', color: 'Crimson' } -] +]; const Thumbnail: React.SFC<{color: string}> = ({ color }) =>
    + }}/>; const Image: React.SFC<{color: string}> = ({ color }) =>
    + }}>
    ; const Home = () => (
    @@ -93,7 +93,7 @@ const Home = () => (
  • Crimson
  • -) +); const Gallery = () => (
    @@ -111,12 +111,12 @@ const Gallery = () => ( ))}
    -) +); const ImageView: React.SFC> = ({ match }) => { - const image = IMAGES[parseInt(match.params.id, 10)] + const image = IMAGES[parseInt(match.params.id, 10)]; if (!image) { - return
    Image not found
    + return
    Image not found
    ; } return ( @@ -124,18 +124,18 @@ const ImageView: React.SFC> = ({ match }) => {

    {image.title}

    - ) -} + ); +}; const Modal: React.SFC> = ({ match, history }) => { - const image = IMAGES[parseInt(match.params.id, 10)] + const image = IMAGES[parseInt(match.params.id, 10)]; if (!image) { - return null! + return null!; } const back = (e: React.MouseEvent) => { - e.stopPropagation() - history.goBack() - } + e.stopPropagation(); + history.goBack(); + }; return (
    > = ({ match, history })
    - ) -} + ); +}; const ModalGallery = () => ( -) +); -export default ModalGallery \ No newline at end of file +export default ModalGallery; diff --git a/types/react-router/test/NavigateWithContext.tsx b/types/react-router/test/NavigateWithContext.tsx index 6f7dfa9f4a..89b53aef58 100644 --- a/types/react-router/test/NavigateWithContext.tsx +++ b/types/react-router/test/NavigateWithContext.tsx @@ -1,42 +1,42 @@ import * as React from 'react'; import { - RouterChildContext, - RouteComponentProps + RouterChildContext, + RouteComponentProps } from 'react-router'; import { - BrowserRouter as Router, - Route, -} from 'react-router-dom' + BrowserRouter as Router, + Route, +} from 'react-router-dom'; interface Params { - id?: string + id?: string; } -type Props = RouteComponentProps +type Props = RouteComponentProps; class ComponentThatUsesContext extends React.Component { - static contextTypes = { - router: React.PropTypes.object.isRequired - } - context: RouterChildContext - private onClick = () => { - const { - history, - route: { - location, - match - } - } = this.context.router; - history.push('/some/url'); - } - render() { - return
    - } + static contextTypes = { + router: React.PropTypes.object.isRequired + }; + context: RouterChildContext; + private onClick = () => { + const { + history, + route: { + location, + match + } + } = this.context.router; + history.push('/some/url'); + } + render() { + return
    ; + } } const Test = () => ( - - - + + + ); export default Test; diff --git a/types/react-router/test/NoMatch.tsx b/types/react-router/test/NoMatch.tsx index 10b7a64fa9..83c359d33e 100644 --- a/types/react-router/test/NoMatch.tsx +++ b/types/react-router/test/NoMatch.tsx @@ -1,4 +1,4 @@ -import * as React from 'react' +import * as React from 'react'; import { BrowserRouter as Router, RouteComponentProps, @@ -6,7 +6,7 @@ import { Link, Switch, Redirect -} from 'react-router-dom' +} from 'react-router-dom'; const NoMatchExample = () => ( @@ -26,7 +26,7 @@ const NoMatchExample = () => (
    -) +); const Home = () => (

    @@ -35,14 +35,14 @@ const Home = () => ( matches. A <Route> with no path always matches.

    -) +); -const WillMatch = () =>

    Matched!

    +const WillMatch = () =>

    Matched!

    ; const NoMatch: React.SFC> = ({ location }) => (

    No match for {location.pathname}

    -) +); -export default NoMatchExample \ No newline at end of file +export default NoMatchExample; diff --git a/types/react-router/test/Params.tsx b/types/react-router/test/Params.tsx index 148161c317..a6d0bded7f 100644 --- a/types/react-router/test/Params.tsx +++ b/types/react-router/test/Params.tsx @@ -1,10 +1,10 @@ -import * as React from 'react' +import * as React from 'react'; import { BrowserRouter as Router, RouteComponentProps, Route, Link -} from 'react-router-dom' +} from 'react-router-dom'; const ParamsExample = () => ( @@ -20,12 +20,12 @@ const ParamsExample = () => (
    -) +); const Child: React.SFC> = ({ match }) => (

    ID: {match.params.id}

    -) +); -export default ParamsExample \ No newline at end of file +export default ParamsExample; diff --git a/types/react-router/test/PreventingTransitions.tsx b/types/react-router/test/PreventingTransitions.tsx index b23ba65608..bd5d76ae2b 100644 --- a/types/react-router/test/PreventingTransitions.tsx +++ b/types/react-router/test/PreventingTransitions.tsx @@ -1,11 +1,11 @@ -import * as React from 'react' +import * as React from 'react'; import { BrowserRouter as Router, RouteComponentProps, Route, Link, Prompt -} from 'react-router-dom' +} from 'react-router-dom'; const PreventingTransitionsExample = () => ( @@ -20,15 +20,15 @@ const PreventingTransitionsExample = () => (

    Two

    }/>
    -) +); -class Form extends React.Component { +class Form extends React.Component { state = { isBlocking: false - } + }; render() { - const { isBlocking } = this.state + const { isBlocking } = this.state; return (
    { (event.target as HTMLFormElement).reset(); this.setState({ isBlocking: false - }) + }); }} > { onChange={event => { this.setState({ isBlocking: event.target.value.length > 0 - }) + }); }} />

    @@ -67,8 +67,8 @@ class Form extends React.Component {

    - ) + ); } } -export default PreventingTransitionsExample \ No newline at end of file +export default PreventingTransitionsExample; diff --git a/types/react-router/test/Recursive.tsx b/types/react-router/test/Recursive.tsx index 31b7c5fe29..64c0f690dc 100644 --- a/types/react-router/test/Recursive.tsx +++ b/types/react-router/test/Recursive.tsx @@ -1,11 +1,11 @@ -import * as React from 'react' +import * as React from 'react'; import { BrowserRouter as Router, RouteComponentProps, Route, Link, match -} from 'react-router-dom' +} from 'react-router-dom'; import * as H from 'history'; const PEEPS = [ @@ -13,15 +13,15 @@ const PEEPS = [ { id: 1, name: 'Sean', friends: [ 0, 3 ] }, { id: 2, name: 'Kim', friends: [ 0, 1, 3 ], }, { id: 3, name: 'David', friends: [ 1, 2 ] } -] +]; -const find = (id: number) => PEEPS.find(p => p.id === id) +const find = (id: number) => PEEPS.find(p => p.id === id); const RecursiveExample = () => ( -) +); interface InitialPersonProps { match: { @@ -35,7 +35,7 @@ interface InitialPersonProps { type PersonProps = RouteComponentProps<{ id: number }>; const Person: React.SFC = ({ match }) => { - const person = find(match.params.id) + const person = find(match.params.id); return (
    @@ -51,7 +51,7 @@ const Person: React.SFC = ({ match }) => { }/>
    - ) -} + ); +}; -export default RecursiveExample +export default RecursiveExample; diff --git a/types/react-router/test/RouteConfig.tsx b/types/react-router/test/RouteConfig.tsx index 1dffdc1527..b723821080 100644 --- a/types/react-router/test/RouteConfig.tsx +++ b/types/react-router/test/RouteConfig.tsx @@ -1,11 +1,11 @@ -import * as React from 'react' +import * as React from 'react'; import { BrowserRouter as Router, RouteComponentProps, RouteProps, Route, Link -} from 'react-router-dom' +} from 'react-router-dom'; // Some folks find value in a centralized route config. // A route config is just data. React is great at mapping @@ -13,12 +13,12 @@ import { //////////////////////////////////////////////////////////// // first our route components -const Main = () =>

    Main

    +const Main = () =>

    Main

    ; -const Sandwiches = () =>

    Sandwiches

    +const Sandwiches = () =>

    Sandwiches

    ; interface PropsWithRoutes extends RouteComponentProps { - routes: Array; + routes: MyRouteProps[]; } const Tacos: React.SFC = ({ routes }) => ( @@ -33,10 +33,10 @@ const Tacos: React.SFC = ({ routes }) => ( ))} -) +); -const Bus = () =>

    Bus

    -const Cart = () =>

    Cart

    +const Bus = () =>

    Bus

    ; +const Cart = () =>

    Cart

    ; //////////////////////////////////////////////////////////// // then our route config @@ -44,7 +44,7 @@ interface MyRouteProps extends RouteProps { component: React.SFC; routes?: MyRouteProps[]; } -const routes: Array = [ +const routes: MyRouteProps[] = [ { path: '/sandwiches', component: Sandwiches }, @@ -59,7 +59,7 @@ const routes: Array = [ } ] } -] +]; // wrap and use this everywhere instead, then when // sub routes are added to any route it'll work @@ -68,7 +68,7 @@ const RouteWithSubRoutes = (route: MyRouteProps) => ( // pass the sub-routes down to keep nesting )}/> -) +); const RouteConfigExample = () => ( @@ -83,6 +83,6 @@ const RouteConfigExample = () => ( ))} -) +); -export default RouteConfigExample \ No newline at end of file +export default RouteConfigExample; diff --git a/types/react-router/test/Sidebar.tsx b/types/react-router/test/Sidebar.tsx index fb81829dfb..921db7eca0 100644 --- a/types/react-router/test/Sidebar.tsx +++ b/types/react-router/test/Sidebar.tsx @@ -1,20 +1,20 @@ -import * as React from 'react' +import * as React from 'react'; import { BrowserRouter as Router, RouteProps, Route, Link -} from 'react-router-dom' +} from 'react-router-dom'; // Each logical "route" has two components, one for // the sidebar and one for the main area. We want to // render both of them in different places when the // path matches the current URL. interface MyRoute extends RouteProps { - sidebar: () => JSX.Element; - main: () => JSX.Element; + sidebar: (() => JSX.Element); + main: (() => JSX.Element); } -const routes: Array = [ +const routes: MyRoute[] = [ { path: '/', exact: true, sidebar: () =>
    home!
    , @@ -28,7 +28,7 @@ const routes: Array = [ sidebar: () =>
    shoelaces!
    , main: () =>

    Shoelaces

    } -] +]; const SidebarExample = () => ( @@ -75,6 +75,6 @@ const SidebarExample = () => ( -) +); -export default SidebarExample \ No newline at end of file +export default SidebarExample; diff --git a/types/react-router/test/Switch.tsx b/types/react-router/test/Switch.tsx index 626b0f6f7e..6a8b50f247 100644 --- a/types/react-router/test/Switch.tsx +++ b/types/react-router/test/Switch.tsx @@ -1,7 +1,7 @@ -import * as React from 'react' -import { BrowserRouter, Redirect, Route, Switch } from 'react-router-dom' +import * as React from 'react'; +import { BrowserRouter, Redirect, Route, Switch } from 'react-router-dom'; -const Home = () =>

    Home

    +const Home = () =>

    Home

    ; const SwitchTest = () => ( @@ -10,6 +10,6 @@ const SwitchTest = () => ( -) +); -export default SwitchTest +export default SwitchTest; diff --git a/types/react-router/tslint.json b/types/react-router/tslint.json index 53121f8387..2750cc0197 100644 --- a/types/react-router/tslint.json +++ b/types/react-router/tslint.json @@ -1,14 +1 @@ -{ - "extends": "dtslint/dt.json", - "rules": { - "align": false, - "array-type": false, - "eofline": false, - "no-consecutive-blank-lines": false, - "no-empty-interface": false, - "prefer-method-signature": false, - "void-return": false, - "no-single-declare-module": false, - "semicolon": false - } -} +{ "extends": "dtslint/dt.json" } \ No newline at end of file From be0d3f97cb6760e29c13fc0910bc1f3b6758e52c Mon Sep 17 00:00:00 2001 From: Iain McGinniss Date: Mon, 1 May 2017 13:49:02 -0700 Subject: [PATCH 109/321] Typescript 2.3 fixes for credential management API (#16241) Removes the copied (now out of date) definition of RequestInit. Once 2.3 is "stable" for DefinitelyTyped (early June), CMRequestInit will be updated to match the latest lib.dom.d.ts definition. --- .../index.d.ts | 26 +++---------------- 1 file changed, 4 insertions(+), 22 deletions(-) diff --git a/types/webappsec-credential-management/index.d.ts b/types/webappsec-credential-management/index.d.ts index 36e6bf5c6a..d316572aab 100644 --- a/types/webappsec-credential-management/index.d.ts +++ b/types/webappsec-credential-management/index.d.ts @@ -1,4 +1,4 @@ -// Type definitions for W3C (WebAppSec) Credential Management API Level 1, 0.1 +// Type definitions for W3C (WebAppSec) Credential Management API Level 1, 0.2 // Project: https://github.com/w3c/webappsec-credential-management // Definitions by: Iain McGinniss // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped @@ -27,27 +27,9 @@ interface GlobalFetch { } /** - * Original definition from TS 2.2 dom. - */ -interface RequestInit { - method?: string; - headers?: any; - body?: any; - referrer?: string; - referrerPolicy?: string; - mode?: string; - credentials?: string; - cache?: string; - redirect?: string; - integrity?: string; - keepalive?: boolean; - window?: any; -} - -/** - * Variant of {@link RequestInit} that permits a {@link PasswordCredential} to - * be used in the {@code credentials} property. All other properties are - * identical to {@link RequestInit}. + * Variant of TS 2.2 {@link RequestInit} that permits a + * {@link PasswordCredential} to be used in the {@code credentials} property. + * All other properties are identical to {@link RequestInit}. */ interface CMRequestInit { method?: string; From 950c9cdca99ccc97dd09cb05609da679063584c5 Mon Sep 17 00:00:00 2001 From: beeme1mr Date: Mon, 1 May 2017 16:49:14 -0400 Subject: [PATCH 110/321] Added a code property to MongoError (#16242) Added missing code property to MongoError. http://thecodebarbarian.com/mongoose-error-handling --- types/mongodb/index.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/types/mongodb/index.d.ts b/types/mongodb/index.d.ts index 4c4106c7a6..5fe6332350 100644 --- a/types/mongodb/index.d.ts +++ b/types/mongodb/index.d.ts @@ -35,6 +35,7 @@ export interface MongoCallback { export class MongoError extends Error { constructor(message: string); static create(options: Object): MongoError; + code?: number; } //http://mongodb.github.io/node-mongodb-native/2.1/api/MongoClient.html#.connect From 3ff7e25c70b2e4cac8d6dde11fc227d172338681 Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Mon, 1 May 2017 22:56:02 +0200 Subject: [PATCH 111/321] feat(fs-extra): update typings to `3.0.x` (#16218) * feat(fs-extra): update typyings to `3.0.x` * feat(fs-extra): update typings to `3.0.x` * test(fs-extra): add more test coverage * add `pathExists` * fix lint issues * fix lint issues * add `TypeScript Version: 2.2' * add more tests * change `interface` to `type` * add typescript version * add missing semicolon * add universalify fs async methods * add `fs` methods * feat(fs-extra): update typings to `3.0.x` * fix lint issues * fix more lint issues * fs-extra: add `mkdtemp` * remove extra breakline * remove `walk` and overall improvments * fix tests * add options to test * remove `CopyFilterFunction` and `CopyFilter` * remove `CopyFilterFunction` and `CopyFilter` * fix test * re add `CopyFilter` * fs-extra: fix CopyFilter * fs-extra: remove `MkdirOptions` * fs-extra: remove exra interfaces * feat(fs-extra): update typings to --- types/fs-extra-promise/index.d.ts | 8 +- types/fs-extra/fs-extra-tests.ts | 158 +++++++++++--- types/fs-extra/index.d.ts | 328 +++++++++++++++++++++--------- types/fs-extra/tsconfig.json | 42 ++-- types/fs-extra/tslint.json | 3 + 5 files changed, 391 insertions(+), 148 deletions(-) create mode 100644 types/fs-extra/tslint.json diff --git a/types/fs-extra-promise/index.d.ts b/types/fs-extra-promise/index.d.ts index a03512a577..b4c9a648ac 100644 --- a/types/fs-extra-promise/index.d.ts +++ b/types/fs-extra-promise/index.d.ts @@ -2,6 +2,7 @@ // Project: https://github.com/overlookmotel/fs-extra-promise // Definitions by: midknight41 , Jason Swearingen // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 /// /// @@ -10,10 +11,15 @@ import * as stream from 'stream'; import { Stats } from 'fs'; import * as Promise from 'bluebird'; -import { CopyFilter, CopyOptions, ReadOptions, WriteOptions, MkdirOptions, MoveOptions } from 'fs-extra'; +import { CopyFilter, CopyOptions, ReadOptions, WriteOptions, MoveOptions } from 'fs-extra'; export * from 'fs-extra'; +export interface MkdirOptions { + fs?: any; + mode?: number; +} + //promisified versions export declare function copyAsync(src: string, dest: string): Promise; export declare function copyAsync(src: string, dest: string, filter: CopyFilter): Promise; diff --git a/types/fs-extra/fs-extra-tests.ts b/types/fs-extra/fs-extra-tests.ts index d39cae8d6f..005857e48c 100644 --- a/types/fs-extra/fs-extra-tests.ts +++ b/types/fs-extra/fs-extra-tests.ts @@ -1,106 +1,214 @@ import * as fs from 'fs-extra'; import * as Path from 'path'; +const len = 2; const src = ""; const dest = ""; const file = ""; const dir = ""; const path = ""; const data = ""; +const uid = 0; +const gid = 0; +const fd = 0; +const modeNum = 0; +const modeStr = ""; const object = {}; -const errorCallback = (err: Error) => {}; +const errorCallback = (err: Error) => { }; const readOptions: fs.ReadOptions = { - reviver : {} + reviver: {} }; const writeOptions: fs.WriteOptions = { - replacer: {} + replacer: {} }; +fs.moveSync(src, dest, {}); +fs.move(src, dest, {}).then(() => { + // stub +}); +fs.move(src, dest).then(() => { + // stub +}); +fs.move(src, dest, {}, () => { + // stub +}); +fs.move(src, dest, () => { + // stub +}); + +fs.copy(src, dest).then(() => { + // stub +}); +fs.copy(src, dest, { overwrite: true }).then(() => { + // stub +}); fs.copy(src, dest, errorCallback); -fs.copy(src, dest, (src: string) => { - return false; -}, errorCallback); +fs.copy(src, dest, (src: string) => false, errorCallback); fs.copy(src, dest, { - clobber: true, + overwrite: true, preserveTimestamps: true, - filter: (src: string) => { return false; } + filter: (src: string) => false }, errorCallback ); fs.copy(src, dest, { - clobber: true, + overwrite: true, preserveTimestamps: true, filter: /.*/ }, errorCallback ); fs.copySync(src, dest); -fs.copySync(src, dest, (src: string) => { - return false; -}); +fs.copySync(src, dest, (src: string) => false); fs.copySync(src, dest, /.*/); fs.copySync(src, dest, { - clobber: true, + overwrite: true, preserveTimestamps: true, - filter: (src: string) => { return false; } + filter: (src: string) => false } ); fs.copySync(src, dest, { - clobber: true, + overwrite: true, preserveTimestamps: true, filter: /.*/ } ); +fs.createFile(file).then(() => { + // stub +}); fs.createFile(file, errorCallback); fs.createFileSync(file); +fs.mkdirs(dir).then(() => { + // stub +}); +fs.mkdirp(dir).then(() => { + // stub +}); fs.mkdirs(dir, errorCallback); -fs.mkdirs(dir, {}, errorCallback); fs.mkdirsSync(dir); -fs.mkdirsSync(dir, {}); fs.mkdirp(dir, errorCallback); -fs.mkdirp(dir, {}, errorCallback); fs.mkdirpSync(dir); -fs.mkdirpSync(dir, {}); +fs.outputFile(file, data).then(() => { + // stub +}); fs.outputFile(file, data, errorCallback); fs.outputFileSync(file, data); -fs.outputJson(file, data, errorCallback); + +fs.outputJson(file, data, { + spaces: 2 +}).then(() => { + // stub +}); +fs.outputJson(file, data, { + spaces: 2 +}, errorCallback); fs.outputJSON(file, data, errorCallback); +fs.outputJSON(file, data).then(() => { + // stub +}); fs.outputJsonSync(file, data); fs.outputJSONSync(file, data); -fs.readJson(file, (error: Error, jsonObject: any) => {}); -fs.readJson(file, readOptions, (error: Error, jsonObject: any) => {}); -fs.readJSON(file, (error: Error, jsonObject: any) => {}); -fs.readJSON(file, readOptions, (error: Error, jsonObject: any) => {}); +fs.readJson(file).then(() => { + // stub +}); + +fs.readJson(file, readOptions).then(() => { + // stub +}); +fs.readJson(file, (error: Error, jsonObject: any) => { }); +fs.readJson(file, readOptions, (error: Error, jsonObject: any) => { }); +fs.readJSON(file, (error: Error, jsonObject: any) => { }); +fs.readJSON(file, readOptions, (error: Error, jsonObject: any) => { }); fs.readJsonSync(file, readOptions); fs.readJSONSync(file, readOptions); fs.remove(dir, errorCallback); +fs.remove(dir).then(() => { + // stub +}); fs.removeSync(dir); +fs.writeJson(file, object).then(() => { + // stub +}); +fs.writeJSON(file, object).then(() => { + // stub +}); fs.writeJson(file, object, errorCallback); fs.writeJson(file, object, writeOptions, errorCallback); fs.writeJSON(file, object, errorCallback); fs.writeJSON(file, object, writeOptions, errorCallback); - +fs.writeJson(file, object, writeOptions).then(() => { + // stub +}); +fs.writeJSON(file, object, writeOptions).then(() => { + // stub +}); fs.writeJsonSync(file, object, writeOptions); fs.writeJSONSync(file, object, writeOptions); +fs.ensureDir(path).then(() => { + // stub +}); fs.ensureDir(path, errorCallback); fs.ensureDirSync(path); + +fs.ensureFile(path).then(() => { + // stub +}); fs.ensureFile(path, errorCallback); fs.ensureFileSync(path); +fs.ensureLink(path).then(() => { + // stub +}); fs.ensureLink(path, errorCallback); fs.ensureLinkSync(path); +fs.ensureSymlink(path).then(() => { + // stub +}); fs.ensureSymlink(path, errorCallback); fs.ensureSymlinkSync(path); +fs.emptyDir(path).then(() => { + // stub +}); fs.emptyDir(path, errorCallback); fs.emptyDirSync(path); +fs.pathExists(path).then((_exist: boolean) => { + // stub +}); +fs.pathExists(path, (_err: Error, _exists: boolean) => { }); +const x: boolean = fs.pathExistsSync(path); + +fs.rename(src, dest, errorCallback); +fs.renameSync(src, dest); +fs.truncate(path, len, errorCallback); +fs.truncateSync(path, len); +fs.chown(path, uid, gid, errorCallback); +fs.chownSync(path, uid, gid); +fs.fchown(fd, uid, gid, errorCallback); +fs.fchownSync(fd, uid, gid); +fs.lchown(path, uid, gid, errorCallback); +fs.lchownSync(path, uid, gid); +fs.chmod(path, modeNum, errorCallback); +fs.chmod(path, modeStr, errorCallback); +fs.chmodSync(path, modeNum); +fs.chmodSync(path, modeStr); +fs.fchmod(fd, modeNum, errorCallback); +fs.fchmod(fd, modeStr, errorCallback); +fs.fchmodSync(fd, modeNum); +fs.fchmodSync(fd, modeStr); +fs.lchmod(path, modeStr, errorCallback); +fs.lchmod(path, modeNum, errorCallback); +fs.lchmodSync(path, modeNum); +fs.lchmodSync(path, modeStr); +fs.statSync(path); +fs.lstatSync(path); diff --git a/types/fs-extra/index.d.ts b/types/fs-extra/index.d.ts index c46dddba85..3d65d617b0 100644 --- a/types/fs-extra/index.d.ts +++ b/types/fs-extra/index.d.ts @@ -1,9 +1,8 @@ -// Type definitions for fs-extra 2.1 +// Type definitions for fs-extra 3.0 // Project: https://github.com/jprichardson/node-fs-extra -// Definitions by: midknight41 , Brendan Forster +// Definitions by: Alan Agius , midknight41 , Brendan Forster // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -// Imported from: https://github.com/soywiz/typescript-node-definitions/fs-extra.d.ts +// TypeScript Version: 2.2 /// @@ -11,123 +10,255 @@ import { Stats } from "fs"; export * from "fs"; -export declare function copy(src: string, dest: string, callback?: (err: Error) => void): void; -export declare function copy(src: string, dest: string, filter: CopyFilter, callback?: (err: Error) => void): void; -export declare function copy(src: string, dest: string, options: CopyOptions, callback?: (err: Error) => void): void; +export function copy(src: string, dest: string, options?: CopyOptions): Promise; +export function copy(src: string, dest: string, callback: (err: Error) => void): void; +export function copy(src: string, dest: string, options: CopyOptions, callback: (err: Error) => void): void; +export function copySync(src: string, dest: string, options?: CopyOptions): void; -export declare function copySync(src: string, dest: string): void; -export declare function copySync(src: string, dest: string, filter: CopyFilter): void; -export declare function copySync(src: string, dest: string, options: CopyOptions): void; +export function move(src: string, dest: string, options?: MoveOptions): Promise; +export function move(src: string, dest: string, callback: (err: Error) => void): void; +export function move(src: string, dest: string, options: MoveOptions, callback: (err: Error) => void): void; +export function moveSync(src: string, dest: string, options?: MoveOptions): void; -export declare function move(src: string, dest: string, callback?: (err: Error) => void): void; -export declare function move(src: string, dest: string, options: MoveOptions, callback?: (err: Error) => void): void; +export function createFile(file: string): Promise; +export function createFile(file: string, callback: (err: Error) => void): void; +export function createFileSync(file: string): void; -export declare function createFile(file: string, callback?: (err: Error) => void): void; -export declare function createFileSync(file: string): void; +export function ensureDir(path: string): Promise; +export function ensureDir(path: string, callback: (err: Error) => void): void; +export function ensureDirSync(path: string): void; -export declare function mkdirs(dir: string, callback?: (err: Error) => void): void; -export declare function mkdirp(dir: string, callback?: (err: Error) => void): void; -export declare function mkdirs(dir: string, options?: MkdirOptions, callback?: (err: Error) => void): void; -export declare function mkdirp(dir: string, options?: MkdirOptions, callback?: (err: Error) => void): void; -export declare function mkdirsSync(dir: string, options?: MkdirOptions): void; -export declare function mkdirpSync(dir: string, options?: MkdirOptions): void; +export function mkdirs(dir: string): Promise; +export function mkdirs(dir: string, callback: (err: Error) => void): void; +export function mkdirp(dir: string): Promise; +export function mkdirp(dir: string, callback: (err: Error) => void): void; +export function mkdirsSync(dir: string): void; +export function mkdirpSync(dir: string): void; -export declare function outputFile(file: string, data: any, callback?: (err: Error) => void): void; -export declare function outputFileSync(file: string, data: any): void; +export function outputFile(file: string, data: any): Promise; +export function outputFile(file: string, data: any, callback: (err: Error) => void): void; +export function outputFileSync(file: string, data: any): void; -export declare function outputJson(file: string, data: any, callback?: (err: Error) => void): void; -export declare function outputJSON(file: string, data: any, callback?: (err: Error) => void): void; -export declare function outputJsonSync(file: string, data: any): void; -export declare function outputJSONSync(file: string, data: any): void; +export function readJson(file: string, options?: ReadOptions): Promise; +export function readJson(file: string, callback: (err: Error, jsonObject: any) => void): void; +export function readJson(file: string, options: ReadOptions, callback: (err: Error, jsonObject: any) => void): void; +export function readJSON(file: string, options?: ReadOptions): Promise; +export function readJSON(file: string, callback: (err: Error, jsonObject: any) => void): void; +export function readJSON(file: string, options: ReadOptions, callback: (err: Error, jsonObject: any) => void): void; -export declare function readJson(file: string, callback: (err: Error, jsonObject: any) => void): void; -export declare function readJson(file: string, options: ReadOptions, callback: (err: Error, jsonObject: any) => void): void; -export declare function readJSON(file: string, callback: (err: Error, jsonObject: any) => void): void; -export declare function readJSON(file: string, options: ReadOptions, callback: (err: Error, jsonObject: any) => void): void; +export function readJsonSync(file: string, options?: ReadOptions): any; +export function readJSONSync(file: string, options?: ReadOptions): any; -export declare function readJsonSync(file: string, options?: ReadOptions): any; -export declare function readJSONSync(file: string, options?: ReadOptions): any; +export function remove(dir: string): Promise; +export function remove(dir: string, callback: (err: Error) => void): void; +export function removeSync(dir: string): void; -export declare function remove(dir: string, callback?: (err: Error) => void): void; -export declare function removeSync(dir: string): void; +export function outputJSON(file: string, data: any, options?: WriteOptions): Promise; +export function outputJSON(file: string, data: any, options: WriteOptions, callback: (err: Error) => void): void; +export function outputJSON(file: string, data: any, callback: (err: Error) => void): void; +export function outputJson(file: string, data: any, options?: WriteOptions): Promise; +export function outputJson(file: string, data: any, options: WriteOptions, callback: (err: Error) => void): void; +export function outputJson(file: string, data: any, callback: (err: Error) => void): void; +export function outputJsonSync(file: string, data: any, options?: WriteOptions): void; +export function outputJSONSync(file: string, data: any, options?: WriteOptions): void; -export declare function writeJson(file: string, object: any, callback?: (err: Error) => void): void; -export declare function writeJson(file: string, object: any, options?: WriteOptions, callback?: (err: Error) => void): void; -export declare function writeJSON(file: string, object: any, callback?: (err: Error) => void): void; -export declare function writeJSON(file: string, object: any, options?: WriteOptions, callback?: (err: Error) => void): void; +export function writeJSON(file: string, object: any, options?: WriteOptions): Promise; +export function writeJSON(file: string, object: any, callback: (err: Error) => void): void; +export function writeJSON(file: string, object: any, options: WriteOptions, callback: (err: Error) => void): void; +export function writeJson(file: string, object: any, options?: WriteOptions): Promise; +export function writeJson(file: string, object: any, callback: (err: Error) => void): void; +export function writeJson(file: string, object: any, options: WriteOptions, callback: (err: Error) => void): void; -export declare function writeJsonSync(file: string, object: any, options?: WriteOptions): void; -export declare function writeJSONSync(file: string, object: any, options?: WriteOptions): void; +export function writeJsonSync(file: string, object: any, options?: WriteOptions): void; +export function writeJSONSync(file: string, object: any, options?: WriteOptions): void; -export declare function ensureDir(path: string, callback: (err: Error) => void): void; -export declare function ensureDirSync(path: string): void; +export function ensureFile(path: string): Promise; +export function ensureFile(path: string, callback: (err: Error) => void): void; +export function ensureFileSync(path: string): void; -export declare function ensureFile(path: string, callback: (err: Error) => void): void; -export declare function ensureFileSync(path: string): void; +export function ensureLink(path: string): Promise; +export function ensureLink(path: string, callback: (err: Error) => void): void; +export function ensureLinkSync(path: string): void; -export declare function ensureLink(path: string, callback: (err: Error) => void): void; -export declare function ensureLinkSync(path: string): void; +export function ensureSymlink(path: string): Promise; +export function ensureSymlink(path: string, callback: (err: Error) => void): void; +export function ensureSymlinkSync(path: string): void; -export declare function ensureSymlink(path: string, callback: (err: Error) => void): void; -export declare function ensureSymlinkSync(path: string): void; +export function emptyDir(path: string): Promise; +export function emptyDir(path: string, callback: (err: Error) => void): void; +export function emptyDirSync(path: string): void; -export declare function emptyDir(path: string, callback?: (err: Error) => void): void; -export declare function emptyDirSync(path: string): boolean; +export function pathExists(path: string): Promise; +export function pathExists(path: string, callback: (err: Error, exists: boolean) => void): void; +export function pathExistsSync(path: string): boolean; -export interface WalkEventEmitter extends NodeJS.ReadableStream { - on(event: 'data', callback: (file: WalkEventFile) => void): this; - on(event: 'readable', callback: (this: PathEntryStream) => void): this; - on(event: 'error', callback: (error: Error, item: PathEntry) => void): this; - on(event: 'end', callback: () => void): this; - on(event: string | symbol, callback: Function): this; -} +// fs async methods +// copied from https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/node/v6/index.d.ts -export interface WalkEventFile { +/** Tests a user's permissions for the file specified by path. */ +export function access(path: string | Buffer, callback: (err: NodeJS.ErrnoException) => void): void; +export function access(path: string | Buffer, mode: number, callback: (err: NodeJS.ErrnoException) => void): void; +export function access(path: string | Buffer, mode?: number): Promise; + +export function appendFile(filename: string, data: any, options: { encoding?: string; mode?: number | string; flag?: string; }, callback: (err: NodeJS.ErrnoException) => void): void; +export function appendFile(filename: string, data: any, callback: (err: NodeJS.ErrnoException) => void): void; +export function appendFile(filename: string, data: any, options?: { encoding?: string; mode?: number | string; flag?: string; }): Promise; + +export function chmod(path: string | Buffer, mode: string | number, callback: (err?: NodeJS.ErrnoException) => void): void; +export function chmod(path: string | Buffer, mode: string | number): Promise; + +export function chown(path: string | Buffer, uid: number, gid: number): Promise; +export function chown(path: string | Buffer, uid: number, gid: number, callback: (err?: NodeJS.ErrnoException) => void): void; + +export function close(fd: number, callback: (err?: NodeJS.ErrnoException) => void): void; +export function close(fd: number): Promise; + +export function fchmod(fd: number, mode: string | number, callback: (err?: NodeJS.ErrnoException) => void): void; +export function fchmod(fd: number, mode: string | number): Promise; + +export function fchown(fd: number, uid: number, gid: number, callback: (err?: NodeJS.ErrnoException) => void): void; +export function fchown(fd: number, uid: number, gid: number): Promise; + +export function fdatasync(fd: number, callback: () => void): void; +export function fdatasync(fd: number): Promise; + +export function fstat(fd: number, callback: (err: NodeJS.ErrnoException, stats: Stats) => any): void; +export function fstat(fd: number): Promise; + +export function fsync(fd: number, callback: (err?: NodeJS.ErrnoException) => void): void; +export function fsync(fd: number): Promise; + +export function ftruncate(fd: number, callback: (err?: NodeJS.ErrnoException) => void): void; +export function ftruncate(fd: number, len: number, callback: (err?: NodeJS.ErrnoException) => void): void; +export function ftruncate(fd: number, len?: number): Promise; + +export function futimes(fd: number, atime: number, mtime: number, callback: (err?: NodeJS.ErrnoException) => void): void; +export function futimes(fd: number, atime: Date, mtime: Date, callback: (err?: NodeJS.ErrnoException) => void): void; +export function futimes(fd: number, atime: number, mtime: number): Promise; +export function futimes(fd: number, atime: Date, mtime: Date): Promise; + +export function lchown(path: string | Buffer, uid: number, gid: number, callback: (err?: NodeJS.ErrnoException) => void): void; +export function lchown(path: string | Buffer, uid: number, gid: number): Promise; + +export function link(srcpath: string | Buffer, dstpath: string | Buffer, callback: (err?: NodeJS.ErrnoException) => void): void; +export function link(srcpath: string | Buffer, dstpath: string | Buffer): Promise; + +export function lstat(path: string | Buffer, callback: (err: NodeJS.ErrnoException, stats: Stats) => any): void; +export function lstat(path: string | Buffer): Promise; + +/** + * Asynchronous mkdir - creates the directory specified in {path}. Parameter {mode} defaults to 0777. + * + * @param path + * @param callback No arguments other than a possible exception are given to the completion callback. + */ +export function mkdir(path: string | Buffer, callback: (err?: NodeJS.ErrnoException) => void): void; +/** + * Asynchronous mkdir - creates the directory specified in {path}. Parameter {mode} defaults to 0777. + * + * @param path + * @param mode + * @param callback No arguments other than a possible exception are given to the completion callback. + */ +export function mkdir(path: string | Buffer, mode: number | string, callback: (err?: NodeJS.ErrnoException) => void): void; +export function mkdir(path: string | Buffer): Promise; + +export function open(path: string | Buffer, flags: string | number, callback: (err: NodeJS.ErrnoException, fd: number) => void): void; +export function open(path: string | Buffer, flags: string | number, mode: number, callback: (err: NodeJS.ErrnoException, fd: number) => void): void; +export function open(path: string | Buffer, flags: string | number, mode?: number): Promise; + +export function read(fd: number, buffer: Buffer, offset: number, length: number, position: number | null, callback: (err: NodeJS.ErrnoException, bytesRead: number, buffer: Buffer) => void): void; +export function read(fd: number, buffer: Buffer, offset: number, length: number, position: number | null): Promise<[number, Buffer]>; + +export function readFile(filename: string, callback: (err: NodeJS.ErrnoException, data: Buffer) => void): void; +export function readFile(filename: string, encoding: string, callback: (err: NodeJS.ErrnoException, data: string) => void): void; +export function readFile(filename: string, options: { flag?: string; } | { encoding: string; flag?: string; }, callback: (err: NodeJS.ErrnoException, data: Buffer) => void): void; +export function readFile(filename: string, options: { flag?: string; } | { encoding: string; flag?: string; }): Promise; +// tslint:disable-next-line:unified-signatures +export function readFile(filename: string, encoding: string): Promise; +export function readFile(filename: string): Promise; + +export function readdir(path: string | Buffer, callback: (err: NodeJS.ErrnoException, files: string[]) => void): void; +export function readdir(path: string | Buffer): Promise; + +export function readlink(path: string | Buffer, callback: (err: NodeJS.ErrnoException, linkString: string) => any): void; +export function readlink(path: string | Buffer): Promise; + +export function realpath(path: string | Buffer, callback: (err: NodeJS.ErrnoException, resolvedPath: string) => any): void; +export function realpath(path: string | Buffer, cache: { [path: string]: string }, callback: (err: NodeJS.ErrnoException, resolvedPath: string) => any): void; +export function realpath(path: string | Buffer, cache?: { [path: string]: string }): Promise; + +export function rename(oldPath: string, newPath: string, callback: (err?: NodeJS.ErrnoException) => void): void; +export function rename(oldPath: string, newPath: string): Promise; + +/** + * Asynchronous rmdir - removes the directory specified in {path} + * + * @param path + * @param callback No arguments other than a possible exception are given to the completion callback. + */ +export function rmdir(path: string | Buffer, callback: (err?: NodeJS.ErrnoException) => void): void; +export function rmdir(path: string | Buffer): Promise; + +export function stat(path: string | Buffer, callback: (err: NodeJS.ErrnoException, stats: Stats) => any): void; +export function stat(path: string | Buffer): Promise; + +export function symlink(srcpath: string | Buffer, dstpath: string | Buffer, type: string, callback: (err?: NodeJS.ErrnoException) => void): void; +export function symlink(srcpath: string | Buffer, dstpath: string | Buffer, type?: string): Promise; + +export function truncate(path: string | Buffer, callback: (err?: NodeJS.ErrnoException) => void): void; +export function truncate(path: string | Buffer, len: number, callback: (err?: NodeJS.ErrnoException) => void): void; +export function truncate(path: string | Buffer, len?: number): Promise; + +/** + * Asynchronous unlink - deletes the file specified in {path} + * + * @param path + * @param callback No arguments other than a possible exception are given to the completion callback. + */ +export function unlink(path: string | Buffer, callback: (err?: NodeJS.ErrnoException) => void): void; +export function unlink(path: string | Buffer): Promise; + +export function utimes(path: string | Buffer, atime: number, mtime: number, callback: (err?: NodeJS.ErrnoException) => void): void; +export function utimes(path: string | Buffer, atime: Date, mtime: Date, callback: (err?: NodeJS.ErrnoException) => void): void; +export function utimes(path: string | Buffer, atime: number, mtime: number): Promise; +export function utimes(path: string | Buffer, atime: Date, mtime: Date): Promise; + +export function write(fd: number, buffer: Buffer, offset: number, length: number, position: number | null, callback: (err: NodeJS.ErrnoException, written: number, buffer: Buffer) => void): void; +export function write(fd: number, buffer: Buffer, offset: number, length: number, callback: (err: NodeJS.ErrnoException, written: number, buffer: Buffer) => void): void; +export function write(fd: number, data: any, callback: (err: NodeJS.ErrnoException, written: number, str: string) => void): void; +export function write(fd: number, data: any, offset: number, callback: (err: NodeJS.ErrnoException, written: number, str: string) => void): void; +export function write(fd: number, data: any, offset: number, encoding: string, callback: (err: NodeJS.ErrnoException, written: number, str: string) => void): void; +export function write(fd: number, buffer: Buffer, offset: number, length: number, position?: number | null): Promise<[number, Buffer]>; +export function write(fd: number, data: any, offset: number, encoding?: string): Promise<[number, string]>; + +export function writeFile(filename: string, data: any, callback: (err: NodeJS.ErrnoException) => void): void; +export function writeFile(filename: string, data: any, options: { encoding?: string; mode?: number; flag?: string; }, callback?: (err: NodeJS.ErrnoException) => void): void; +export function writeFile(filename: string, data: any, options?: { encoding?: string; mode?: number; flag?: string; }): Promise; + +/** + * Asynchronous mkdtemp - Creates a unique temporary directory. Generates six random characters to be appended behind a required prefix to create a unique temporary directory. + * + * @param prefix + * @param callback The created folder path is passed as a string to the callback's second parameter. + */ +export function mkdtemp(prefix: string, callback?: (err: NodeJS.ErrnoException, folder: string) => void): void; +export function mkdtemp(prefix: string): Promise; + +export interface PathEntry { path: string; stats: Stats; } -export interface WalkOptions { - /** - * Control how results are enumerated from `readdir`: - * - 'shift' will return the first element from the array. - * - 'pop' will return the last element from the array. - * - * If not specified, the default behaviour is 'shift' - */ - queueMethod?: 'pop' | 'shift'; - /** - * Provide a function to sort the paths before they are enumerated - */ - pathSorter?: (left: string, right: string) => number; - /** - * An optional object to override the default `fs` APIs for testing purposes - */ - fs?: Object; - /** - * Provide a function to exclude certain file paths. The function should - * return true when the element should be kept, and false otherwise. - */ - filter?: (path: string, index: number, array: Array) => boolean; +export interface PathEntryStream { + read(): PathEntry | null; } -export type PathEntry = { - path: string; - stats: Stats; -} - -export type PathEntryStream = { - read(): PathEntry | null -} - -export interface CopyFilterFunction { - (src: string): boolean -} +export type CopyFilterFunction = (src: string) => boolean; export type CopyFilter = CopyFilterFunction | RegExp; export interface CopyOptions { - clobber?: boolean; dereference?: boolean; overwrite?: boolean; preserveTimestamps?: boolean; @@ -137,28 +268,23 @@ export interface CopyOptions { } export interface MoveOptions { - clobber? : boolean; + overwrite?: boolean; limit?: number; } export interface ReadOptions { throws?: boolean; - fs?: Object; + fs?: object; reviver?: any; encoding?: string; flag?: string; } export interface WriteOptions { - fs?: Object; + fs?: object; replacer?: any; spaces?: number; encoding?: string; flag?: string; mode?: number; } - -export interface MkdirOptions { - fs?: any; - mode?: number; -} diff --git a/types/fs-extra/tsconfig.json b/types/fs-extra/tsconfig.json index 6337361eed..818b38896c 100644 --- a/types/fs-extra/tsconfig.json +++ b/types/fs-extra/tsconfig.json @@ -1,22 +1,22 @@ { - "compilerOptions": { - "module": "commonjs", - "lib": [ - "es6" - ], - "noImplicitAny": true, - "noImplicitThis": true, - "strictNullChecks": false, - "baseUrl": "../", - "typeRoots": [ - "../" - ], - "types": [], - "noEmit": true, - "forceConsistentCasingInFileNames": true - }, - "files": [ - "index.d.ts", - "fs-extra-tests.ts" - ] -} \ No newline at end of file + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "fs-extra-tests.ts" + ] +} diff --git a/types/fs-extra/tslint.json b/types/fs-extra/tslint.json new file mode 100644 index 0000000000..d88586e5bd --- /dev/null +++ b/types/fs-extra/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} From ebb729c3760cbd837294e9bce4edd061c219cdef Mon Sep 17 00:00:00 2001 From: Josh Gillespie Date: Mon, 1 May 2017 15:56:31 -0500 Subject: [PATCH 112/321] Adding the errors module to request-promise-native (#16216) * Adding the errors module from the request-promise-native * linting --- types/request-promise-native/index.d.ts | 90 ++- .../request-promise-native-tests.ts | 593 +++++++++--------- types/request-promise-native/tslint.json | 3 + 3 files changed, 365 insertions(+), 321 deletions(-) create mode 100644 types/request-promise-native/tslint.json diff --git a/types/request-promise-native/index.d.ts b/types/request-promise-native/index.d.ts index 05eedaab72..ab606fb542 100644 --- a/types/request-promise-native/index.d.ts +++ b/types/request-promise-native/index.d.ts @@ -1,32 +1,76 @@ -// Type definitions for request-promise-native v1.0.3 +// Type definitions for request-promise-native 1.0 // Project: https://github.com/request/request-promise-native // Definitions by: Gustavo Henke // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -import request = require('request'); -import http = require('http'); +declare module 'request-promise-native' { + import request = require('request'); + import http = require('http'); -declare namespace requestPromise { - interface RequestPromise extends request.Request { - then(onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike): Promise; - then(onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => void): Promise; - catch(onrejected?: (reason: any) => any | PromiseLike): Promise; - catch(onrejected?: (reason: any) => void): Promise; - promise(): Promise; - cancel(): void; + namespace requestPromise { + interface RequestPromise extends request.Request { + then(onfulfilled?: (value: any) => TResult | PromiseLike, onrejected?: (reason: any) => TResult | PromiseLike | void): Promise; + catch(onrejected?: (reason: any) => any | PromiseLike | void): Promise; + promise(): Promise; + cancel(): void; + } + + interface RequestPromiseOptions extends request.CoreOptions { + simple?: boolean; + transform?(body: any, response: http.IncomingMessage, resolveWithFullResponse?: boolean): any; + resolveWithFullResponse?: boolean; + } + + type FullResponse = request.RequestResponse; + type OptionsWithUri = request.UriOptions & RequestPromiseOptions; + type OptionsWithUrl = request.UrlOptions & RequestPromiseOptions; + type Options = OptionsWithUri | OptionsWithUrl; } - interface RequestPromiseOptions extends request.CoreOptions { - simple?: boolean; - transform?: (body: any, response: http.IncomingMessage, resolveWithFullResponse?: boolean) => any; - resolveWithFullResponse?: boolean; - } - - export type FullResponse = request.RequestResponse; - export type OptionsWithUri = request.UriOptions & RequestPromiseOptions; - export type OptionsWithUrl = request.UrlOptions & RequestPromiseOptions; - export type Options = OptionsWithUri | OptionsWithUrl; + let requestPromise: request.RequestAPI; + export = requestPromise; } -declare var requestPromise: request.RequestAPI; -export = requestPromise; +declare module 'request-promise-native/errors' { + import rp = require('request-promise-native'); + import http = require('http'); + + interface RequestError extends Error { + cause: any; + error: any; + options: rp.Options; + response: http.IncomingMessage; + } + interface RequestErrorConstructor { + new (cause: any, options: rp.Options, response: http.IncomingMessage): RequestError; + (cause: any, options: rp.Options, response: http.IncomingMessage): RequestError; + prototype: RequestError; + } + const RequestError: RequestErrorConstructor; + + interface StatusCodeError extends Error { + statusCode: number; + error: any; + options: rp.Options; + response: http.IncomingMessage; + } + interface StatusCodeErrorConstructor extends Error { + new (statusCode: number, body: any, options: rp.Options, response: http.IncomingMessage): StatusCodeError; + (statusCode: number, body: any, options: rp.Options, response: http.IncomingMessage): StatusCodeError; + prototype: StatusCodeError; + } + const StatusCodeError: StatusCodeErrorConstructor; + + interface TransformError extends Error { + cause: any; + error: any; + options: rp.Options; + response: http.IncomingMessage; + } + interface TransformErrorConstructor extends Error { + new (cause: any, options: rp.Options, response: http.IncomingMessage): TransformError; + (cause: any, options: rp.Options, response: http.IncomingMessage): TransformError; + prototype: TransformError; + } + const TransformError: TransformErrorConstructor; +} diff --git a/types/request-promise-native/request-promise-native-tests.ts b/types/request-promise-native/request-promise-native-tests.ts index 4267351328..b0562acc6e 100644 --- a/types/request-promise-native/request-promise-native-tests.ts +++ b/types/request-promise-native/request-promise-native-tests.ts @@ -1,126 +1,127 @@ -import * as rp from 'request-promise-native'; +import * as rpn from 'request-promise-native'; +import * as path from 'path'; -rp('http://www.google.com') - .then(console.dir) - .catch(console.error); +rpn('http://www.google.com') + .then(console.dir) + .catch(console.error); -var options: rp.Options = { - uri : 'http://posttestserver.com/post.php', - method : 'POST', - json: true, - body: { some: 'payload' } +let options: rpn.Options = { + uri: 'http://posttestserver.com/post.php', + method: 'POST', + json: true, + body: { some: 'payload' } }; -rp(options) - .then(console.dir) - .catch(console.error); +let j = rpn.jar(); -rp('http://google.com').then(() => {}); +rpn(options) + .then(console.dir) + .catch(console.error); + +rpn('http://google.com').then(() => { }); // This works: -rp('http://google.com').then(console.dir); -rp('http://google.com').catch(console.error); -rp('http://google.com').then(console.dir, console.error); +rpn('http://google.com').then(console.dir); +rpn('http://google.com').catch(console.error); +rpn('http://google.com').then(console.dir, console.error); -rp({ uri: 'http://google.com', resolveWithFullResponse: true }).then((response) => {}); -rp({ uri: 'http://google.com', simple: false }).catch((reason) => {}); +rpn({ uri: 'http://google.com', resolveWithFullResponse: true }).then((response) => { }); +rpn({ uri: 'http://google.com', simple: false }).catch((reason) => { }); - -//Defaults tests +// Defaults tests (() => { const githubUrl = 'https://github.com'; - const defaultJarRequest = rp.defaults({ jar: true }); - defaultJarRequest.get(githubUrl).then(() => {}); - //defaultJarRequest(); //this line doesn't compile (and shouldn't) - const defaultUrlRequest = rp.defaults({ url: githubUrl }); - defaultUrlRequest().then(() => {}); - defaultUrlRequest.get().then(() => {}); - const defaultBodyRequest = defaultUrlRequest.defaults({body: '{}', json: true}); - defaultBodyRequest.get().then(() => {}); - defaultBodyRequest.post().then(() => {}); - defaultBodyRequest.put().then(() => {}); + const defaultJarRequest = rpn.defaults({ jar: true }); + defaultJarRequest.get(githubUrl).then(() => { }); + // defaultJarRequest(); //this line doesn't compile (and shouldn't) + const defaultUrlRequest = rpn.defaults({ url: githubUrl }); + defaultUrlRequest().then(() => { }); + defaultUrlRequest.get().then(() => { }); + const defaultBodyRequest = defaultUrlRequest.defaults({ body: '{}', json: true }); + defaultBodyRequest.get().then(() => { }); + defaultBodyRequest.post().then(() => { }); + defaultBodyRequest.put().then(() => { }); })(); // Get full response after DELETE options = { - method: 'DELETE', - uri: 'http://my-server/path/to/resource/1234' + method: 'DELETE', + uri: 'http://my-server/path/to/resource/1234' }; -rp(options) - .then(function (response: http.IncomingMessage) { - console.log("DELETE succeeded with status %d", response.statusCode); - }) - .catch(console.error); +rpn(options) + .then((response: http.IncomingMessage) => { + console.log("DELETE succeeded with status %d", response.statusCode); + }) + .catch(console.error); -//The following examples from https://github.com/request/request +// The following examples from https://github.com/request/request import * as fs from 'fs'; import * as http from 'http'; -var request = rp; -request('http://www.google.com', function (error, response, body) { - if (!error && response.statusCode == 200) { +rpn('http://www.google.com', (error, response, body) => { + if (!error && response.statusCode === 200) { console.log(body); // Show the HTML for the Google homepage. } }); -request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png')); +rpn('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png')); -fs.createReadStream('file.json').pipe(request.put('http://mysite.com/obj.json')); +fs.createReadStream('file.json').pipe(rpn.put('http://mysite.com/obj.json')); -request.get('http://google.com/img.png').pipe(request.put('http://mysite.com/img.png')); +rpn.get('http://google.com/img.png').pipe(rpn.put('http://mysite.com/img.png')); -request +rpn .get('http://google.com/img.png') - .on('response', function(response: any) { + .on('response', (response: any) => { console.log(response.statusCode); // 200 console.log(response.headers['content-type']); // 'image/png' }) - .pipe(request.put('http://mysite.com/img.png')); + .pipe(rpn.put('http://mysite.com/img.png')); -request +rpn .get('http://mysite.com/doodle.png') - .on('error', function(err: any) { + .on('error', (err: any) => { console.log(err); }) .pipe(fs.createWriteStream('doodle.png')); -http.createServer(function (req, resp) { +http.createServer((req, resp) => { if (req.url === '/doodle.png') { if (req.method === 'PUT') { - req.pipe(request.put('http://mysite.com/doodle.png')); + req.pipe(rpn.put('http://mysite.com/doodle.png')); } else if (req.method === 'GET' || req.method === 'HEAD') { - request.get('http://mysite.com/doodle.png').pipe(resp); + rpn.get('http://mysite.com/doodle.png').pipe(resp); } } }); -http.createServer(function (req, resp) { +http.createServer((req, resp) => { if (req.url === '/doodle.png') { - var x = request('http://mysite.com/doodle.png'); + let x = rpn('http://mysite.com/doodle.png'); req.pipe(x); x.pipe(resp); } }); -var resp: http.ServerResponse; -var req: rp.RequestPromise; -req.pipe(request('http://mysite.com/doodle.png')).pipe(resp); +let resp: http.ServerResponse; +let req: rpn.RequestPromise; +req.pipe(rpn('http://mysite.com/doodle.png')).pipe(resp); -var r = request; -http.createServer(function (req, resp) { +let r = rpn; +http.createServer((req, resp) => { if (req.url === '/doodle.png') { r.get('http://google.com/doodle.png').pipe(resp); } }); -request.post('http://service.com/upload', {form:{key:'value'}}); +rpn.post('http://service.com/upload', { form: { key: 'value' } }); // or -request.post('http://service.com/upload').form({key:'value'}); +rpn.post('http://service.com/upload').form({ key: 'value' }); // or -request.post({url:'http://service.com/upload', form: {key:'value'}}, function(err,httpResponse,body){ /* ... */ }); +rpn.post({ url: 'http://service.com/upload', form: { key: 'value' } }, (err, httpResponse, body) => { /* ... */ }); -var data = { +let data = { // Pass a simple key-value pair my_field: 'my_value', // Pass data via Buffers @@ -136,93 +137,93 @@ var data = { // Use case: for some types of streams, you'll need to provide "file"-related information manually. // See the `form-data` README for more information about options: https://github.com/felixge/node-form-data custom_file: { - value: fs.createReadStream('/dev/urandom'), + value: fs.createReadStream('/dev/urandom'), options: { filename: 'topsecret.jpg', contentType: 'image/jpg' } } }; -request.post({url:'http://service.com/upload', formData: data}, function optionalCallback(err, httpResponse, body) { +rpn.post({ url: 'http://service.com/upload', formData: data }, function optionalCallback(err, httpResponse, body) { if (err) { return console.error('upload failed:', err); } console.log('Upload successful! Server responded with:', body); }); -var requestMultipart = request.post('http://service.com/upload', function optionalCallback(err, httpResponse, body) {}); -var form = requestMultipart.form(); +let requestMultipart = rpn.post('http://service.com/upload', function optionalCallback(err, httpResponse, body) { }); +let form = requestMultipart.form(); form.append('my_field', 'my_value'); form.append('my_buffer', new Buffer([1, 2, 3])); -form.append('custom_file', fs.createReadStream(__dirname + '/unicycle.jpg'), {filename: 'unicycle.jpg'}); +form.append('custom_file', fs.createReadStream(__dirname + '/unicycle.jpg'), { filename: 'unicycle.jpg' }); -request({ - method: 'PUT', - preambleCRLF: true, - postambleCRLF: true, - uri: 'http://service.com/upload', - multipart: { - chunked: false, - data: [ - { - 'content-type': 'application/json', - body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}}) - }, - { body: 'I am an attachment' } - ] - } - }, - function (error, response, body) { - if (error) { - return console.error('upload failed:', error); - } - console.log('Upload successful! Server responded with:', body); - }); -request({ - method: 'PUT', - preambleCRLF: true, - postambleCRLF: true, - uri: 'http://service.com/upload', - multipart: [ +rpn({ + method: 'PUT', + preambleCRLF: true, + postambleCRLF: true, + uri: 'http://service.com/upload', + multipart: { + chunked: false, + data: [ { 'content-type': 'application/json', - body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}}) + body: JSON.stringify({ foo: 'bar', _attachments: { 'message.txt': { follows: true, length: 18, content_type: 'text/plain' } } }) }, - { body: 'I am an attachment' }, - { body: fs.createReadStream('image.png') } + { body: 'I am an attachment' } ] - }, - function (error, response, body) { + } +}, + (error, response, body) => { + if (error) { + return console.error('upload failed:', error); + } + console.log('Upload successful! Server responded with:', body); + }); +rpn({ + method: 'PUT', + preambleCRLF: true, + postambleCRLF: true, + uri: 'http://service.com/upload', + multipart: [ + { + 'content-type': 'application/json', + body: JSON.stringify({ foo: 'bar', _attachments: { 'message.txt': { follows: true, length: 18, content_type: 'text/plain' } } }) + }, + { body: 'I am an attachment' }, + { body: fs.createReadStream('image.png') } + ] +}, + (error, response, body) => { if (error) { return console.error('upload failed:', error); } console.log('Upload successful! Server responded with:', body); }); -request.get('http://some.server.com/').auth('username', 'password', false); +rpn.get('http://some.server.com/').auth('username', 'password', false); // or -request.get('http://some.server.com/', { - 'auth': { - 'user': 'username', - 'pass': 'password', - 'sendImmediately': false +rpn.get('http://some.server.com/', { + auth: { + user: 'username', + pass: 'password', + sendImmediately: false } }); // or -request.get('http://some.server.com/').auth(null, null, true, 'bearerToken'); +rpn.get('http://some.server.com/').auth(null, null, true, 'bearerToken'); // or -request.get('http://some.server.com/', { - 'auth': { - 'bearer': 'bearerToken' +rpn.get('http://some.server.com/', { + auth: { + bearer: 'bearerToken' } }); -var username = 'username', - password = 'password', - url = 'http://' + username + ':' + password + '@some.server.com'; +let username = 'username'; +let password = 'password'; +let url = 'http://' + username + ':' + password + '@some.server.com'; -request({url: url}, function (error, response, body) { - // Do more stuff with 'body' here +rpn({ url }, (error, response, body) => { + // Do more stuff with 'body' here }); options = { @@ -233,253 +234,249 @@ options = { }; function callback(error: any, response: http.IncomingMessage, body: string) { - if (!error && response.statusCode == 200) { - var info = JSON.parse(body); + if (!error && response.statusCode === 200) { + let info = JSON.parse(body); console.log(info.stargazers_count + " Stars"); console.log(info.forks_count + " Forks"); } } -request(options, callback); +rpn(options, callback); // OAuth1.0 - 3-legged server side flow (Twitter example) // step 1 import * as qs from 'querystring'; const CONSUMER_KEY = 'key'; const CONSUMER_SECRET = 'secret'; -var oauth = - { callback: 'http://mysite.com/callback/' - , consumer_key: CONSUMER_KEY - , consumer_secret: CONSUMER_SECRET - } - , url = 'https://api.twitter.com/oauth/request_token' - ; -request.post({url:url, oauth:oauth}, function (e, r, body) { +let oauth = { + callback: 'http://mysite.com/callback/' + , consumer_key: CONSUMER_KEY + , consumer_secret: CONSUMER_SECRET +}; + +url = 'https://api.twitter.com/oauth/request_token'; + +rpn.post({ url, oauth }, (e, r, body) => { // Ideally, you would take the body in the response // and construct a URL that a user clicks on (like a sign in button). // The verifier is only available in the response after a user has // verified with twitter that they are authorizing your app. // step 2 - var req_data = qs.parse(body); - var uri = 'https://api.twitter.com/oauth/authenticate' - + '?' + qs.stringify({oauth_token: req_data.oauth_token}); + let req_data = qs.parse(body); + let uri = 'https://api.twitter.com/oauth/authenticate' + + '?' + qs.stringify({ oauth_token: req_data.oauth_token }); // redirect the user to the authorize uri // step 3 // after the user is redirected back to your server - var auth_data: any = qs.parse(body) - , oauth = - { consumer_key: CONSUMER_KEY - , consumer_secret: CONSUMER_SECRET - , token: auth_data.oauth_token - , token_secret: req_data.oauth_token_secret - , verifier: auth_data.oauth_verifier - } - , url = 'https://api.twitter.com/oauth/access_token' - ; - request.post({url:url, oauth:oauth}, function (e, r, body) { + let auth_data: any = qs.parse(body); + let oauth = { + consumer_key: CONSUMER_KEY + , consumer_secret: CONSUMER_SECRET + , token: auth_data.oauth_token + , token_secret: req_data.oauth_token_secret + , verifier: auth_data.oauth_verifier + }; + url = 'https://api.twitter.com/oauth/access_token'; + + rpn.post({ url, oauth }, (e, r, body) => { // ready to make signed requests on behalf of the user - var perm_data: any = qs.parse(body); - var oauth = - { consumer_key: CONSUMER_KEY - , consumer_secret: CONSUMER_SECRET - , token: perm_data.oauth_token - , token_secret: perm_data.oauth_token_secret - }; - var url = 'https://api.twitter.com/1.1/users/show.json'; - var query = { + let perm_data: any = qs.parse(body); + let oauth = { + consumer_key: CONSUMER_KEY + , consumer_secret: CONSUMER_SECRET + , token: perm_data.oauth_token + , token_secret: perm_data.oauth_token_secret + }; + + url = 'https://api.twitter.com/1.1/users/show.json'; + let query = { screen_name: perm_data.screen_name, user_id: perm_data.user_id }; - request.get({url:url, oauth:oauth, qs:query, json:true}, function (e, r, user) { + rpn.get({ url, oauth, qs: query, json: true }, (e, r, user) => { console.log(user); }); }); }); -var path = require('path') - , certFile = path.resolve(__dirname, 'ssl/client.crt') - , keyFile = path.resolve(__dirname, 'ssl/client.key') - , caFile = path.resolve(__dirname, 'ssl/ca.cert.pem'); +let certFile = path.resolve(__dirname, 'ssl/client.crt'); +let keyFile = path.resolve(__dirname, 'ssl/client.key'); +let caFile = path.resolve(__dirname, 'ssl/ca.cert.pem'); options = { - url: 'https://api.some-server.com/', + url: 'https://api.some-server.com/', + cert: fs.readFileSync(certFile), + key: fs.readFileSync(keyFile), + passphrase: 'password', + ca: fs.readFileSync(caFile) +}; + +rpn.get(options); + +options = { + url: 'https://api.some-server.com/', + agentOptions: { cert: fs.readFileSync(certFile), key: fs.readFileSync(keyFile), + // Or use `pfx` property replacing `cert` and `key` when using private key, certificate and CA certs in PFX or PKCS12 format: + // pfx: fs.readFileSync(pfxFilePath), passphrase: 'password', - ca: fs.readFileSync(caFile) + securityOptions: 'SSL_OP_NO_SSLv3' + } }; -request.get(options); +rpn.get(options); -var path = require('path') - , certFile = path.resolve(__dirname, 'ssl/client.crt') - , keyFile = path.resolve(__dirname, 'ssl/client.key'); - -options = { - url: 'https://api.some-server.com/', - agentOptions: { - cert: fs.readFileSync(certFile), - key: fs.readFileSync(keyFile), - // Or use `pfx` property replacing `cert` and `key` when using private key, certificate and CA certs in PFX or PKCS12 format: - // pfx: fs.readFileSync(pfxFilePath), - passphrase: 'password', - securityOptions: 'SSL_OP_NO_SSLv3' - } -}; - -request.get(options); - -request.get({ - url: 'https://api.some-server.com/', - agentOptions: { - secureProtocol: 'SSLv3_method' - } +rpn.get({ + url: 'https://api.some-server.com/', + agentOptions: { + secureProtocol: 'SSLv3_method' + } }); -request.get({ - url: 'https://api.some-server.com/', - agentOptions: { - ca: fs.readFileSync('ca.cert.pem') - } +rpn.get({ + url: 'https://api.some-server.com/', + agentOptions: { + ca: fs.readFileSync('ca.cert.pem') + } }); +rpn({ + // will be ignored + method: 'GET', + uri: 'http://www.google.com', -request({ - // will be ignored - method: 'GET', - uri: 'http://www.google.com', - - // HTTP Archive Request Object - har: { - url: 'http://www.mockbin.com/har', - method: 'POST', - headers: [ - { - name: 'content-type', - value: 'application/x-www-form-urlencoded' - } - ], - postData: { - mimeType: 'application/x-www-form-urlencoded', - params: [ - { - name: 'foo', - value: 'bar' - }, - { - name: 'hello', - value: 'world' - } - ] + // HTTP Archive Request Object + har: { + url: 'http://www.mockbin.com/har', + method: 'POST', + headers: [ + { + name: 'content-type', + value: 'application/x-www-form-urlencoded' } - } - }); - -//requests using baseRequest() will set the 'x-token' header -var baseRequest = request.defaults({ - headers: {'x-token': 'my-token'} -}); - -//requests using specialRequest() will include the 'x-token' header set in -//baseRequest and will also include the 'special' header -var specialRequest = baseRequest.defaults({ - headers: {special: 'special value'} -}); - -request.put(url); -request.patch(url); -request.post(url); -request.head(url); -request.del(url); -request.get(url); -request.cookie('key1=value1'); -request.jar(); -request.debug = true; - -request.get('http://10.255.255.1', {timeout: 1500}, function(err) { - console.log(err.code === 'ETIMEDOUT'); - // Set to `true` if the timeout was a connection timeout, `false` or - // `undefined` otherwise. - console.log(err.connect === true); - process.exit(0); -}); - -var rand = Math.floor(Math.random()*100000000).toString(); - request( - { method: 'PUT' - , uri: 'http://mikeal.iriscouch.com/testjs/' + rand - , multipart: - [ { 'content-type': 'application/json' - , body: JSON.stringify({foo: 'bar', _attachments: {'message.txt': {follows: true, length: 18, 'content_type': 'text/plain' }}}) + ], + postData: { + mimeType: 'application/x-www-form-urlencoded', + params: [ + { + name: 'foo', + value: 'bar' + }, + { + name: 'hello', + value: 'world' } - , { body: 'I am an attachment' } ] } - , function (error, response, body) { - if(response.statusCode == 201){ - console.log('document saved as: http://mikeal.iriscouch.com/testjs/'+ rand) - } else { - console.log('error: '+ response.statusCode) - console.log(body) - } - } - ); + } +}); -request( - { method: 'GET' +// requests using baseRequest() will set the 'x-token' header +let baseRequest = rpn.defaults({ + headers: { 'x-token': 'my-token' } +}); + +// requests using specialRequest() will include the 'x-token' header set in +// baseRequest and will also include the 'special' header +let specialRequest = baseRequest.defaults({ + headers: { special: 'special value' } +}); + +rpn.put(url); +rpn.patch(url); +rpn.post(url); +rpn.head(url); +rpn.del(url); +rpn.get(url); +rpn.cookie('key1=value1'); +rpn.jar(); +console.log(rpn.debug); + +rpn.get('http://10.255.255.1', { timeout: 1500 }, (err) => { + console.log(err.code === 'ETIMEDOUT'); + // Set to `true` if the timeout was a connection timeout, `false` or + // `undefined` otherwise. + console.log(err.connect === true); + process.exit(0); +}); + +let rand = Math.floor(Math.random() * 100000000).toString(); +rpn( + { + method: 'PUT' + , uri: 'http://mikeal.iriscouch.com/testjs/' + rand + , multipart: + [{ + 'content-type': 'application/json' + , body: JSON.stringify({ foo: 'bar', _attachments: { 'message.txt': { follows: true, length: 18, content_type: 'text/plain' } } }) + } + , { body: 'I am an attachment' } + ] + } + , (error, response, body) => { + if (response.statusCode === 201) { + console.log('document saved as: http://mikeal.iriscouch.com/testjs/' + rand); + } else { + console.log('error: ' + response.statusCode); + console.log(body); + } + } +); + +rpn( + { + method: 'GET' , uri: 'http://www.google.com' , gzip: true - } - , function (error, response, body) { - // body is the decompressed response body - console.log('server encoded the data as: ' + (response.headers['content-encoding'] || 'identity')) - console.log('the decoded data is: ' + body) - } - ).on('data', function(data: any) { - // decompressed data as it is received - console.log('decoded chunk: ' + data) - }) - .on('response', function(response: http.IncomingMessage) { + } + , (error, response, body) => { + // body is the decompressed response body + console.log('server encoded the data as: ' + (response.headers['content-encoding'] || 'identity')); + console.log('the decoded data is: ' + body); + } +).on('data', (data: any) => { + // decompressed data as it is received + console.log('decoded chunk: ' + data); +}) + .on('response', (response: http.IncomingMessage) => { // unmodified http.IncomingMessage object - response.on('data', function(data: any[]) { + response.on('data', (data: any[]) => { // compressed data as it is received - console.log('received ' + data.length + ' bytes of compressed data') - }) + console.log('received ' + data.length + ' bytes of compressed data'); + }); }); -var requestWithJar = request.defaults({jar: true}) -requestWithJar('http://www.google.com', function () { +let requestWithJar = rpn.defaults({ jar: true }); +requestWithJar('http://www.google.com', () => { requestWithJar('http://images.google.com'); }); -var j = request.jar() -requestWithJar = request.defaults({jar:j}) -requestWithJar('http://www.google.com', function () { +requestWithJar = rpn.defaults({ jar: j }); +requestWithJar('http://www.google.com', () => { requestWithJar('http://images.google.com'); }); -var j = request.jar(); -var cookie = request.cookie('key1=value1'); -var url = 'http://www.google.com'; +let cookie = rpn.cookie('key1=value1'); +url = 'http://www.google.com'; j.setCookie(cookie, url); -request({url: url, jar: j}, function () { - request('http://images.google.com'); +rpn({ url, jar: j }, () => { + rpn('http://images.google.com'); }); -//TODO: add definitions for tough-cookie-filestore -//var FileCookieStore = require('tough-cookie-filestore'); +// TODO: add definitions for tough-cookie-filestore +// let FileCookieStore = require('tough-cookie-filestore'); // NOTE - currently the 'cookies.json' file must already exist! -//var j = request.jar(new FileCookieStore('cookies.json')); -requestWithJar = request.defaults({ jar : j }) -request('http://www.google.com', function() { - request('http://images.google.com'); +// let j = request.jar(new FileCookieStore('cookies.json')); +requestWithJar = rpn.defaults({ jar: j }); +rpn('http://www.google.com', () => { + rpn('http://images.google.com'); }); -var j = request.jar() -request({url: 'http://www.google.com', jar: j}, function () { - var cookie_string = j.getCookieString(url); // "key1=value1; key2=value2; ..." - var cookies = j.getCookies(url); +rpn({ url: 'http://www.google.com', jar: j }, () => { + let cookie_string = j.getCookieString(url); // "key1=value1; key2=value2; ..." + let cookies = j.getCookies(url); // [{key: 'key1', value: 'value1', domain: "www.google.com", ...}, ...] }); diff --git a/types/request-promise-native/tslint.json b/types/request-promise-native/tslint.json new file mode 100644 index 0000000000..f93cf8562a --- /dev/null +++ b/types/request-promise-native/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} From 418bdd3a4971282c4dd3a5c0fa88a0bf9dc0906e Mon Sep 17 00:00:00 2001 From: lobo87 Date: Mon, 1 May 2017 23:02:04 +0200 Subject: [PATCH 113/321] added new types for npm package cordova-plugin-native-keyboard (#16152) * added cordova-plugin-native-keyboard * updated to conform linting checks --- .../cordova-plugin-native-keyboard-tests.ts | 43 +++ .../cordova-plugin-native-keyboard/index.d.ts | 303 ++++++++++++++++++ .../tsconfig.json | 22 ++ .../tslint.json | 1 + 4 files changed, 369 insertions(+) create mode 100644 types/cordova-plugin-native-keyboard/cordova-plugin-native-keyboard-tests.ts create mode 100644 types/cordova-plugin-native-keyboard/index.d.ts create mode 100644 types/cordova-plugin-native-keyboard/tsconfig.json create mode 100644 types/cordova-plugin-native-keyboard/tslint.json diff --git a/types/cordova-plugin-native-keyboard/cordova-plugin-native-keyboard-tests.ts b/types/cordova-plugin-native-keyboard/cordova-plugin-native-keyboard-tests.ts new file mode 100644 index 0000000000..4597e2c39a --- /dev/null +++ b/types/cordova-plugin-native-keyboard/cordova-plugin-native-keyboard-tests.ts @@ -0,0 +1,43 @@ +/** + * Display Messenger + */ +NativeKeyboard.showMessenger({ + onSubmit: (text) => {}, + onKeyboardDidHide: () => {}, + onKeyboardDidShow: () => {}, + onKeyboardWillShow: () => {}, + onTextChanged: (text) => {}, + onKeyboardWillHide: () => {}, +}); + +/** + * Display Messenger Keyboard + */ +NativeKeyboard.showMessengerKeyboard( + () => {}, + () => {}); + +/** + * Hide Messenger + */ +NativeKeyboard.hideMessenger( + { animated: true}, + () => {}, + () => {}); + +NativeKeyboard.hideMessenger(); + +/** + * Hide Messenger Keyboard + */ +NativeKeyboard.hideMessengerKeyboard( + () => {}, + () => {}); + +/** + * Update Messenger Keyboard + */ +NativeKeyboard.updateMessenger( + {text: 'FooBar'}, + () => {}, + () => {}); diff --git a/types/cordova-plugin-native-keyboard/index.d.ts b/types/cordova-plugin-native-keyboard/index.d.ts new file mode 100644 index 0000000000..0f64199bd1 --- /dev/null +++ b/types/cordova-plugin-native-keyboard/index.d.ts @@ -0,0 +1,303 @@ +// Type definitions for cordova-plugin-native-keyboard 1.3 +// Project: https://github.com/EddyVerbruggen/cordova-plugin-native-keyboard#readme +// Definitions by: Daniel Brolli +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +interface NativeKeyboard { + /** + * Show the messenger, the bare minimum which has to be passed to the function is + * the onSubmit callback + * @param options + */ + showMessenger( + options: NativeKeyboardShowOptions + ): void; + + /** + * It's likely your app only has 1 one page where you want to show the messenger, + * so you want to hide it when the user navigates away. You can choose to do this + * either animated (a quick slide down animation) or not. + * + * @param options + * @param onSuccess + * @param onError + */ + hideMessenger( + options?: NativeKeyboardHideOptions, + onSuccess?: () => void, + onError?: (err: any) => void + ): void; + + /** + * Show a previously hidden keyboard + * + * @param onSuccess + * @param onError + */ + showMessengerKeyboard( + onSuccess?: () => void, + onError?: (err: any) => void, + ): void; + + /** + * Hide the keyboard, but not the messenger bar + * + * @param onSuccess + * @param onError + */ + hideMessengerKeyboard( + onSuccess?: () => void, + onError?: (err: any) => void, + ): void; + + /** + * Manipulate the messenger while it's open. For instance if you want to + * update the text programmatically based on what the user typed (by responding to + * onTextChanged events). + * + * @param options + * @param onSuccess + * @param onError + */ + updateMessenger( + options: NativeKeyboardUpdateOptions, + onSuccess?: () => void, + onError?: (err: any) => void + ): void; +} + +interface NativeKeyboardUpdateOptions { + /** + * Replace the messenger's text by this. The current text remains if omitted. + */ + text?: string; + + /** + * Position the cursor anywhere in the text range. Defaults to the end of the text. + */ + caretIndex?: number; + + /** + * If false or omitted no changes to the keyboard state are made. + */ + showKeyboard?: boolean; +} + +interface NativeKeyboardHideOptions { + /** + * A boolean flag inidicating if the keyboard should be shown/hidden with an animation + */ + animated?: boolean; +} + +interface NativeKeyboardShowOptions { + /** + * Callback function, which is being called as soon as the user submits + * @param text + */ + onSubmit(text: string): void; + + /** + * Callback function which is being executed as soon as the keyboard will show + */ + onKeyboardWillShow?(): void; + + /** + * Callback function which is being executed as soon as the keyboard did show + */ + onKeyboardDidShow?(): void; + + /** + * Callback function which is being executed as soon as the keyboard will hide + */ + onKeyboardWillHide?(): void; + + /** + * Callback function which is being executed as soon as the keyboard did hide + */ + onKeyboardDidHide?(): void; + + /** + * Callback function which is being executed as soon as the entered text changes. Will + * return the new text + * + * @param text + */ + onTextChanged?(text: string): void; + + /** + * DOM element, which should be scrolled automatically + */ + autoscrollElement?: any; + + /** + * Boolean value indicating if the content should be scrolled to the end after the messenger is + * shown + */ + scrollToBottomAfterMessengerShows?: boolean; + + /** + * Boolean value indicating if the keyboard should be kept open after submitting the entered + * text + * + * Default: false + */ + keepOpenAfterSubmit?: boolean; + + /** + * Makes the messenger bar slide in from the bottom. + * + * Default: false + */ + animated?: boolean; + + /** + * Open the keyboard when showing the messenger. + * + * Default: false + */ + showKeyboard?: boolean; + + /** + * A text which will be in the messenger bar, when opening + */ + text?: string; + + /** + * The color of the typed text in HEX. + * + * Default: #444 + */ + textColor?: string; + + /** + * A placeholder which will be in the messenger bar, when opening and the input field is + * empty + */ + placeholder?: string; + + /** + * The color of the placeholder. + * + * Default: #ccc + */ + placeholderColor?: string; + + /** + * The background color of the messenger bar. + * + * Default: #F6F6F6 + */ + backgroundColor?: string; + + /** + * The background color of the textview. Looks nicest on Android + * if it's the same color as the backgroundColor property. + * + * Default: #F6F6F6 + */ + textViewBackgroundColor?: string; + + /** + * The border color of the textview. + * + * Default: #666666 + */ + textViewBorderColor?: string; + + /** + * Maximum amount of chars that can be entered + */ + maxChars?: number; + + /** + * Options are: "none", "split", "countdown", "countdownreversed". + * Note that if maxChars is set, "none" will still show a counter. + * + * Default: "none" + */ + counterStyle?: string; + + /** + * Options are: "default", "decimalpad", "phonepad", "numberpad", "namephonepad", + * "number", "email", "twitter", "url", "alphabet", "search", "ascii" + * + * Default: "default" + */ + type?: string; + + /** + * Options are: "light", "dark". + * + * Default: "default" + */ + appearance?: string; + + /** + * Disables things like the Emoji keyboard and the Predicive text entry bar + * + * Default: false + */ + secure?: boolean; + + /** + * The left button of the messenger bar + */ + leftButton?: LeftButtonOptions; + + /** + * The right button of the messenger bar + */ + rightButton?: ButtonOptions; +} + +interface ButtonOptions { + /** + * The type of the button. + * Either "text", "fontawesome" or "ionicon". + * + * Default: "text" + */ + type?: string; + + /** + * The value of the button. On "text" the string is used as label + * On fonatawesome or ionicon the icon name is used (e.g. fa-rocket) + * + * Default: "Send" + */ + value?: string; + + /** + * If type is "text" you can set this to either "normal", "bold" or "italic". + * + * Default: "normal" + */ + textStyle?: string; + + /** + * The color of the button in HEX + * + * Default: #000 + */ + color: string; + + /** + * A callback being executed as soon as the button is clicked + */ + onPress(): void; +} + +interface LeftButtonOptions extends ButtonOptions { + /** + * Set to true to disable the button once text has been entered. + * + * Default: false + */ + disabledWhenTextEntered?: boolean; +} + +/** NativeKeyboard instance */ +declare var NativeKeyboard: NativeKeyboard; +interface Window { + NativeKeyboard: NativeKeyboard; +} diff --git a/types/cordova-plugin-native-keyboard/tsconfig.json b/types/cordova-plugin-native-keyboard/tsconfig.json new file mode 100644 index 0000000000..4309b2406b --- /dev/null +++ b/types/cordova-plugin-native-keyboard/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "cordova-plugin-native-keyboard-tests.ts" + ] +} diff --git a/types/cordova-plugin-native-keyboard/tslint.json b/types/cordova-plugin-native-keyboard/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/cordova-plugin-native-keyboard/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From 7bd8b5865ca82475458ee6cb34f6656fc5727db0 Mon Sep 17 00:00:00 2001 From: Guo Yunhe Date: Tue, 2 May 2017 00:03:00 +0300 Subject: [PATCH 114/321] js-search: add definition (#16102) * js-search: add definition * js-search: fix project url * js-search: use module instead of namespace declare * js-search: change strictNullChecks to true * js-search: add tslint.json --- types/js-search/index.d.ts | 143 +++++++++++++++++++++++++++++ types/js-search/js-search-tests.ts | 58 ++++++++++++ types/js-search/tsconfig.json | 22 +++++ types/js-search/tslint.json | 1 + 4 files changed, 224 insertions(+) create mode 100644 types/js-search/index.d.ts create mode 100644 types/js-search/js-search-tests.ts create mode 100644 types/js-search/tsconfig.json create mode 100644 types/js-search/tslint.json diff --git a/types/js-search/index.d.ts b/types/js-search/index.d.ts new file mode 100644 index 0000000000..49c10251eb --- /dev/null +++ b/types/js-search/index.d.ts @@ -0,0 +1,143 @@ +// Type definitions for js-search v1.4.0 +// Project: https://github.com/bvaughn/js-search +// Definitions by: Guo Yunhe +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare module "js-search" { + + class Search { + + constructor( + uidFieldName: string | Array + ); + + public indexStrategy: IIndexStrategy; + public sanitizer: ISanitizer; + public searchIndex: ISearchIndex; + public tokenizer: ITokenizer; + + public addDocument(document: Object): void; + public addDocuments(documents: Array): void; + + public addIndex(field: string | Array): void; + + public search(query: string): Array; + + } + + interface IIndexStrategy { + expandToken(token: string): Array; + } + + class AllSubstringsIndexStrategy implements IIndexStrategy { + expandToken(token: string): Array; + } + + class ExactWordIndexStrategy implements IIndexStrategy { + expandToken(token: string): Array; + } + + class PrefixIndexStrategy implements IIndexStrategy { + expandToken(token: string): Array; + } + + interface ISanitizer { + sanitize(text: string): string; + } + + class CaseSensitiveSanitizer implements ISanitizer { + sanitize(text: string): string; + } + + class LowerCaseSanitizer implements ISanitizer { + sanitize(text: string): string; + } + + interface ISearchIndex { + indexDocument( + token: string, + uid: string, + document: Object + ): void; + + search( + tokens: Array, + corpus: Array + ): Array; + } + + type ITfIdfTokenMap = { + [token: string]: ITfIdfTokenMetadata; + }; + + type ITfIdfUidMap = { + [uid: string]: ITfIdfUidMetadata; + }; + + type ITfIdfTokenMetadata = { + $numDocumentOccurrences: number; + $totalNumOccurrences: number; + $uidMap: ITfIdfUidMap; + }; + + type ITfIdfUidMetadata = { + $document: Object; + $numTokenOccurrences: number; + }; + + class TfIdfSearchIndex implements ISearchIndex { + constructor(uidFieldName: string | Array); + + indexDocument(token: string, uid: string, doc: Object): void; + + search(tokens: Array, corpus: Array): Array; + } + + class UnorderedSearchIndex implements ISearchIndex { + constructor(); + + indexDocument(token: string, uid: string, doc: Object): void; + + search(tokens: Array, corpus: Array): Array; + } + + interface ITokenizer { + tokenize(text: string): Array; + } + + class SimpleTokenizer implements ITokenizer { + tokenize(text: string): Array; + } + + type StemmingFunction = (text: string) => string; + + class StemmingTokenizer implements ITokenizer { + constructor( + stemmingFunction: StemmingFunction, + decoratedTokenizer: ITokenizer + ); + + tokenize(text: string): Array; + } + + class StopWordsTokenizer implements ITokenizer { + constructor(decoratedTokenizer: ITokenizer); + + tokenize(text: string): Array; + } + + var StopWordsMap: any; + + class TokenHighlighter { + + constructor( + opt_indexStrategy: IIndexStrategy, + opt_sanitizer: ISanitizer, + opt_wrapperTagName: string + ); + + public highlight(text: string, tokens: Array): string; + + } + +} diff --git a/types/js-search/js-search-tests.ts b/types/js-search/js-search-tests.ts new file mode 100644 index 0000000000..b852e000cc --- /dev/null +++ b/types/js-search/js-search-tests.ts @@ -0,0 +1,58 @@ +import { Search, ITokenizer, StopWordsMap, StopWordsTokenizer, StemmingTokenizer, SimpleTokenizer, UnorderedSearchIndex } from "js-search"; + +var theGreatGatsby = { + isbn: '9781597226769', + title: 'The Great Gatsby', + author: { + name: 'F. Scott Fitzgerald' + }, + tags: ['book', 'inspirational'] +}; +var theDaVinciCode = { + isbn: '0307474275', + title: 'The DaVinci Code', + author: { + name: 'Dan Brown' + }, + tags: ['book', 'mystery'] +}; +var angelsAndDemons = { + isbn: '074349346X', + title: 'Angels & Demons', + author: { + name: 'Dan Brown', + }, + tags: ['book', 'mystery'] +}; + +var search = new Search('isbn'); +search.addIndex('title'); +search.addIndex(['author', 'name']); +search.addIndex('tags') + +search.addDocuments([theGreatGatsby, theDaVinciCode, angelsAndDemons]); + +search.search('The'); // [theGreatGatsby, theDaVinciCode] +search.search('scott'); // [theGreatGatsby] +search.search('dan'); // [angelsAndDemons, theDaVinciCode] +search.search('mystery') // [angelsAndDemons, theDaVinciCode] + +search.tokenizer = { + tokenize(text: any) { + // Convert text to an Array of strings and return the Array + } +}; + + +// Function should accept a string param and return a string +var stemmer = function () { return 'foobar' }; + +search.tokenizer = new StemmingTokenizer(stemmer, new SimpleTokenizer()); + + +search.tokenizer = new StopWordsTokenizer(new SimpleTokenizer()); + +StopWordsMap.the = false; // Do not treat "the" as a stop word +StopWordsMap.bob = true; // Treat "bob" as a stop word + +search.searchIndex = new UnorderedSearchIndex(); diff --git a/types/js-search/tsconfig.json b/types/js-search/tsconfig.json new file mode 100644 index 0000000000..83ce87381c --- /dev/null +++ b/types/js-search/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "js-search-tests.ts" + ] +} diff --git a/types/js-search/tslint.json b/types/js-search/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/js-search/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From 3d2aeae3119bbca70f3a68454570e456d25374c0 Mon Sep 17 00:00:00 2001 From: Andy Date: Mon, 1 May 2017 14:03:24 -0700 Subject: [PATCH 115/321] Remove `promise` package (#16030) --- types/promise/index.d.ts | 28 ---------------------------- types/promise/promise-tests.ts | 25 ------------------------- types/promise/tsconfig.json | 22 ---------------------- 3 files changed, 75 deletions(-) delete mode 100644 types/promise/index.d.ts delete mode 100644 types/promise/promise-tests.ts delete mode 100644 types/promise/tsconfig.json diff --git a/types/promise/index.d.ts b/types/promise/index.d.ts deleted file mode 100644 index d51e11de3d..0000000000 --- a/types/promise/index.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -// Type definitions for promise v7.1.1 -// Project: https://www.promisejs.org/ -// Definitions by: Manuel Rueda -// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - -export as namespace Promise; - -export = Promise; -declare var Promise: Promise.IPromise; - -declare namespace Promise { - export interface IPromise { - new (resolver: (resolve: (value: T) => void, reject: (reason: any) => void) => void): IThenable; - - resolve: (value: T) => IThenable; - reject: (value: T) => IThenable; - all: (array: Array>) => IThenable>; - denodeify: (fn: Function) => (...args: any[]) => IThenable; - nodeify: (fn: Function) => Function; - } - - export interface IThenable { - then(onFulfilled?: (value: T) => IThenable|R, onRejected?: (error: any) => IThenable|R): IThenable; - catch(onRejected?: (error: any) => IThenable|R): IThenable; - done(onFulfilled?: (value: T) => IThenable|R, onRejected?: (error: any) => IThenable|R): IThenable; - nodeify(callback: Function): IThenable; - } -} diff --git a/types/promise/promise-tests.ts b/types/promise/promise-tests.ts deleted file mode 100644 index c90cf4bf5e..0000000000 --- a/types/promise/promise-tests.ts +++ /dev/null @@ -1,25 +0,0 @@ -var prom = new Promise((resolve, reject) => { - resolve(true); -}); - -var prom2 = new Promise((resolve, reject) => { - resolve(true); -}); - -prom.then((val) => { - const b: boolean = val; -}).catch(() => { - -}); - -var prom3 = Promise.all([prom, prom2]); - -prom3.then((resolve: Array) => { - -}); - -function withCallback(arg: any, cb: (e: Error, result: any) => void): void { - cb(null, arg); -} -var prom4 = Promise.denodeify(withCallback); -prom4('test').then(result => result); diff --git a/types/promise/tsconfig.json b/types/promise/tsconfig.json deleted file mode 100644 index 5fc066d3e9..0000000000 --- a/types/promise/tsconfig.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "lib": [ - "es5" - ], - "noImplicitAny": true, - "noImplicitThis": true, - "strictNullChecks": false, - "baseUrl": "../", - "typeRoots": [ - "../" - ], - "types": [], - "noEmit": true, - "forceConsistentCasingInFileNames": true - }, - "files": [ - "index.d.ts", - "promise-tests.ts" - ] -} \ No newline at end of file From 93f85817e11b3c6f803189d6936a2d9c44e4efad Mon Sep 17 00:00:00 2001 From: Andy Date: Mon, 1 May 2017 14:04:18 -0700 Subject: [PATCH 116/321] leaflet-markercluster: Rename to "leaflet.markercluster" and convert to module (#16027) --- .../index.d.ts | 12 +++++++----- .../leaflet.markercluster-tests.ts} | 2 ++ .../tsconfig.json | 2 +- .../tslint.json | 0 4 files changed, 10 insertions(+), 6 deletions(-) rename types/{leaflet-markercluster => leaflet.markercluster}/index.d.ts (96%) rename types/{leaflet-markercluster/leaflet-markercluster-tests.ts => leaflet.markercluster/leaflet.markercluster-tests.ts} (98%) rename types/{leaflet-markercluster => leaflet.markercluster}/tsconfig.json (91%) rename types/{leaflet-markercluster => leaflet.markercluster}/tslint.json (100%) diff --git a/types/leaflet-markercluster/index.d.ts b/types/leaflet.markercluster/index.d.ts similarity index 96% rename from types/leaflet-markercluster/index.d.ts rename to types/leaflet.markercluster/index.d.ts index f2323f4573..b6780ec357 100644 --- a/types/leaflet-markercluster/index.d.ts +++ b/types/leaflet.markercluster/index.d.ts @@ -3,10 +3,12 @@ // Definitions by: Robert Imig // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped -/// +import * as Leaflet from "leaflet"; -declare namespace L { - interface MarkerCluster extends L.Marker { +export = Leaflet; + +declare global { namespace L { + interface MarkerCluster extends Marker { /* * Recursively retrieve all child markers of this cluster. */ @@ -103,7 +105,7 @@ declare namespace L { /* * Function used to create the cluster icon */ - iconCreateFunction?: ((cluster: L.MarkerCluster) => L.Icon | L.DivIcon); + iconCreateFunction?: ((cluster: MarkerCluster) => Icon | DivIcon); /* * Boolean to split the addLayers processing in to small intervals so that the page does not freeze. @@ -164,4 +166,4 @@ declare namespace L { * Create a marker cluster group, optionally given marker cluster group options. */ function markerClusterGroup(options?: MarkerClusterGroupOptions): MarkerClusterGroup; -} +} } diff --git a/types/leaflet-markercluster/leaflet-markercluster-tests.ts b/types/leaflet.markercluster/leaflet.markercluster-tests.ts similarity index 98% rename from types/leaflet-markercluster/leaflet-markercluster-tests.ts rename to types/leaflet.markercluster/leaflet.markercluster-tests.ts index 73b98586e9..2a2a4969e1 100644 --- a/types/leaflet-markercluster/leaflet-markercluster-tests.ts +++ b/types/leaflet.markercluster/leaflet.markercluster-tests.ts @@ -1,3 +1,5 @@ +import L = require("leaflet.markercluster"); + const polylineOptions: L.PolylineOptions = {}; const icon: L.Icon = L.icon({ iconUrl: 'foo' }); diff --git a/types/leaflet-markercluster/tsconfig.json b/types/leaflet.markercluster/tsconfig.json similarity index 91% rename from types/leaflet-markercluster/tsconfig.json rename to types/leaflet.markercluster/tsconfig.json index d5e7d33df8..6cc587aa00 100644 --- a/types/leaflet-markercluster/tsconfig.json +++ b/types/leaflet.markercluster/tsconfig.json @@ -18,6 +18,6 @@ }, "files": [ "index.d.ts", - "leaflet-markercluster-tests.ts" + "leaflet.markercluster-tests.ts" ] } \ No newline at end of file diff --git a/types/leaflet-markercluster/tslint.json b/types/leaflet.markercluster/tslint.json similarity index 100% rename from types/leaflet-markercluster/tslint.json rename to types/leaflet.markercluster/tslint.json From 774e70493563a14dd39dc327460ac2fd63a43112 Mon Sep 17 00:00:00 2001 From: Andy Date: Mon, 1 May 2017 14:04:37 -0700 Subject: [PATCH 117/321] selenium-webdriver: Fix Promise errors (#15989) --- types/selenium-webdriver/test/index.ts | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/types/selenium-webdriver/test/index.ts b/types/selenium-webdriver/test/index.ts index c7bae6700c..f325fe6604 100644 --- a/types/selenium-webdriver/test/index.ts +++ b/types/selenium-webdriver/test/index.ts @@ -822,8 +822,8 @@ function TestPromiseModule() { stringPromise = webdriver.promise.createFlow((newFlow: webdriver.promise.ControlFlow) => 'ABC'); let deferred: webdriver.promise.Deferred; - deferred = webdriver.promise.defer(); - deferred = webdriver.promise.defer(); + deferred = webdriver.promise.defer(); + deferred = webdriver.promise.defer(); stringPromise = deferred.promise; @@ -835,12 +835,12 @@ function TestPromiseModule() { voidPromise = webdriver.promise.fulfilled(); stringPromise = webdriver.promise.fulfilled('abc'); - stringPromise = webdriver.promise.fullyResolved('abc'); + stringPromise = webdriver.promise.fullyResolved('abc'); let bool: boolean = webdriver.promise.isGenerator(() => {}); let isPromise: boolean = webdriver.promise.isPromise('ABC'); - stringPromise = webdriver.promise.rejected('{a: 123}'); + stringPromise = webdriver.promise.rejected('{a: 123}'); webdriver.promise.setDefaultFlow(new webdriver.promise.ControlFlow()); @@ -935,11 +935,13 @@ function TestDeferred() { function TestPromiseClass() { let controlFlow: webdriver.promise.ControlFlow; let promise: webdriver.promise.Promise; - promise = new webdriver.promise.Promise((resolve: (value: string) => void, reject: () => void) => {}); - promise = new webdriver.promise.Promise((resolve: (value: webdriver.promise.Promise) => void, reject: () => void) => {}); - promise = new webdriver.promise.Promise((resolve: (value: string) => void, reject: () => void) => {}, controlFlow); + promise = new webdriver.promise.Promise((resolve, reject) => { + resolve(""); + resolve(Promise.resolve("")); + reject(new Error()); + }, controlFlow); - promise = promise.then(); + promise = promise.then(); promise = promise.then((a: string) => 'cde'); promise = promise.then((a: string) => 'cde', (e: any) => {}); promise = promise.then((a: string) => 'cde', (e: any) => 123); From 441bef5f52b71c559df8df67f48dd179191b374e Mon Sep 17 00:00:00 2001 From: Andy Date: Mon, 1 May 2017 14:04:53 -0700 Subject: [PATCH 118/321] cucumber: Fix new `--noImplicitAny` error (#15983) --- types/cucumber/cucumber-tests.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/types/cucumber/cucumber-tests.ts b/types/cucumber/cucumber-tests.ts index 379922d1a7..53ca726230 100644 --- a/types/cucumber/cucumber-tests.ts +++ b/types/cucumber/cucumber-tests.ts @@ -7,7 +7,7 @@ function StepSample() { type HookScenarioResult = cucumber.HookScenarioResult; cucumber.defineSupportCode(function ({setWorldConstructor, defineParameterType, After, Around, Before, registerHandler, Given, When, Then}) { - setWorldConstructor(function ({attach, parameters}) { + setWorldConstructor(function ({attach, parameters}: any) { this.attach = attach; this.parameters = parameters; this.visit = function (url: string, callback: Callback) { @@ -19,7 +19,7 @@ function StepSample() { console.log(scenarioResult.status === "failed"); callback(); }); - + Before({ timeout: 1000 }, function (scenarioResult: HookScenarioResult, callback: Callback) { console.log(scenarioResult.status === "failed"); callback(); @@ -35,7 +35,7 @@ function StepSample() { console.log("After"); callback(); }); - + After({ timeout: 1000 }, (scenarioResult: HookScenarioResult, callback?: Callback) => { console.log("After"); callback(); @@ -48,7 +48,7 @@ function StepSample() { Given(/^a variable set to (\d+)$/, (x: string) => { console.log("the number is: " + x); }); - + Given(/^a variable set to (\d+)$/, (x: number) => { console.log(typeof x); }); From 3a5fa639424011eba69ae5a407c4af00174e4bd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iker=20P=C3=A9rez=20Brunelli?= Date: Mon, 1 May 2017 23:46:38 +0200 Subject: [PATCH 119/321] Add snekfetch type definitions (#16214) * Add snekfetch typings * Fix linting errors * Remove unsused import * Make interfaces and types available to import --- types/snekfetch/index.d.ts | 126 +++++++++++++++++++++++++++++ types/snekfetch/snekfetch-tests.ts | 12 +++ types/snekfetch/tsconfig.json | 22 +++++ types/snekfetch/tslint.json | 3 + 4 files changed, 163 insertions(+) create mode 100644 types/snekfetch/index.d.ts create mode 100644 types/snekfetch/snekfetch-tests.ts create mode 100644 types/snekfetch/tsconfig.json create mode 100644 types/snekfetch/tslint.json diff --git a/types/snekfetch/index.d.ts b/types/snekfetch/index.d.ts new file mode 100644 index 0000000000..71ef08d9a1 --- /dev/null +++ b/types/snekfetch/index.d.ts @@ -0,0 +1,126 @@ +// Type definitions for snekfetch 3.1 +// Project: https://github.com/GusCaplan/snekfetch +// Definitions by: Iker Pérez Brunelli +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 + +/// + +import { ClientRequest } from 'http'; +import { Readable } from 'stream'; + +declare namespace Snekfetch { + interface SnekfetchOptions { + headers?: { [key: string]: any }; + data?: any; + } + + interface Result { + request: ClientRequest; + body: Buffer; + text: string; + ok: boolean; + headers: { [key: string]: any }; + status: number; + statusText: string; + } + + type methods = 'ACL' + | 'BIND' + | 'CHECKOUT' + | 'CONNECT' + | 'COPY' + | 'DELETE' + | 'GET' + | 'HEAD' + | 'LINK' + | 'LOCK' + | 'M-SEARCH' + | 'MERGE' + | 'MKACTIVITY' + | 'MKCALENDAR' + | 'MKCOL' + | 'MOVE' + | 'NOTIFY' + | 'OPTIONS' + | 'PATCH' + | 'POST' + | 'PROPFIND' + | 'PROPPATCH' + | 'PURGE' + | 'PUT' + | 'REBIND' + | 'REPORT' + | 'SEARCH' + | 'SUBSCRIBE' + | 'TRACE' + | 'UNBIND' + | 'UNLINK' + | 'UNLOCK' + | 'UNSUBSCRIBE' + | 'BREW'; +} + +declare class Snekfetch extends Readable { + static METHODS: Snekfetch.methods[]; + static version: string; + + data: any; + request: ClientRequest; + readonly response: Snekfetch.Result | null; + + constructor(method: Snekfetch.methods, url: string, opts?: Snekfetch.SnekfetchOptions); + + static acl(url: string): Snekfetch; + static bind(url: string): Snekfetch; + static checkout(url: string): Snekfetch; + static connect(url: string): Snekfetch; + static copy(url: string): Snekfetch; + static delete(url: string): Snekfetch; + static get(url: string): Snekfetch; + static head(url: string): Snekfetch; + static link(url: string): Snekfetch; + static lock(url: string): Snekfetch; + static msearch(url: string): Snekfetch; + static merge(url: string): Snekfetch; + static mkactivity(url: string): Snekfetch; + static mkcalendar(url: string): Snekfetch; + static mkcol(url: string): Snekfetch; + static move(url: string): Snekfetch; + static notify(url: string): Snekfetch; + static options(url: string): Snekfetch; + static patch(url: string): Snekfetch; + static post(url: string): Snekfetch; + static propfind(url: string): Snekfetch; + static proppatch(url: string): Snekfetch; + static purge(url: string): Snekfetch; + static put(url: string): Snekfetch; + static rebind(url: string): Snekfetch; + static report(url: string): Snekfetch; + static search(url: string): Snekfetch; + static subscribe(url: string): Snekfetch; + static trace(url: string): Snekfetch; + static unbind(url: string): Snekfetch; + static unlink(url: string): Snekfetch; + static unlock(url: string): Snekfetch; + static unsubscribe(url: string): Snekfetch; + static brew(url: string): Snekfetch; + + query(name: string, value: string): Snekfetch; + + set(name: string | { [key: string]: string | string[] }, value?: string | string[]): Snekfetch; + + attach(name: string, data: string | object | Buffer, filename?: string): Snekfetch; + + send(data?: any): Snekfetch; + + then(): Promise; + then(resolver: (res: Snekfetch.Result) => T, rejector?: (err: Error) => any): Promise; + + catch(rejector: (err: Error) => any): Promise; + + end(): Promise; + end(cb: (err: Error | null, res: Snekfetch.Result | Error | null) => T): Promise; +} + +export = Snekfetch; diff --git a/types/snekfetch/snekfetch-tests.ts b/types/snekfetch/snekfetch-tests.ts new file mode 100644 index 0000000000..b05c02628a --- /dev/null +++ b/types/snekfetch/snekfetch-tests.ts @@ -0,0 +1,12 @@ +import * as fs from 'fs'; +import * as snekfetch from 'snekfetch'; + +snekfetch.get('https://s.gus.host/o-SNAKES-80.jpg') + .then(r => fs.writeFile('download.jpg', r.body)); + +snekfetch.get('https://s.gus.host/o-SNAKES-80.jpg') + .pipe(fs.createWriteStream('download.jpg')); + +snekfetch.post('https://httpbin.org/post') + .send({ meme: 'dream' }) + .then(r => console.log(r.body)); diff --git a/types/snekfetch/tsconfig.json b/types/snekfetch/tsconfig.json new file mode 100644 index 0000000000..f07bbc8b66 --- /dev/null +++ b/types/snekfetch/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "snekfetch-tests.ts" + ] +} diff --git a/types/snekfetch/tslint.json b/types/snekfetch/tslint.json new file mode 100644 index 0000000000..40ebe59923 --- /dev/null +++ b/types/snekfetch/tslint.json @@ -0,0 +1,3 @@ +{ + "extends": "dtslint/dt.json" +} From ea345679fb124e9a31572ff022be85b2b0e9cb9c Mon Sep 17 00:00:00 2001 From: Mikal Madsen Date: Tue, 2 May 2017 00:19:16 +0200 Subject: [PATCH 120/321] Add Recase typings (#15744) * Add Recase typings * Add relaxed-json type definitions * Update Recase and Relaxed-JSON types as per PR review * Update Recase and Relaxed-JSON types --- types/recase/index.d.ts | 14 +++++++ types/recase/recase-tests.ts | 33 ++++++++++++++++ types/recase/tsconfig.json | 22 +++++++++++ types/recase/tslint.json | 1 + types/relaxed-json/index.d.ts | 16 ++++++++ types/relaxed-json/relaxed-json-tests.ts | 49 ++++++++++++++++++++++++ types/relaxed-json/tsconfig.json | 22 +++++++++++ types/relaxed-json/tslint.json | 1 + 8 files changed, 158 insertions(+) create mode 100644 types/recase/index.d.ts create mode 100644 types/recase/recase-tests.ts create mode 100644 types/recase/tsconfig.json create mode 100644 types/recase/tslint.json create mode 100644 types/relaxed-json/index.d.ts create mode 100644 types/relaxed-json/relaxed-json-tests.ts create mode 100644 types/relaxed-json/tsconfig.json create mode 100644 types/relaxed-json/tslint.json diff --git a/types/recase/index.d.ts b/types/recase/index.d.ts new file mode 100644 index 0000000000..29808f6130 --- /dev/null +++ b/types/recase/index.d.ts @@ -0,0 +1,14 @@ +// Type definitions for Recase 1.0 +// Project: https://www.npmjs.com/package/recase +// Definitions by: Mikal Madsen +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export interface Recase { + camelCopy(orig: any): any; + snakeCopy(orig: any): any; +} +export function create(opts: { + exceptions?: { + [origKey: string]: string; + }; +}): Recase; diff --git a/types/recase/recase-tests.ts b/types/recase/recase-tests.ts new file mode 100644 index 0000000000..fe554ecb4b --- /dev/null +++ b/types/recase/recase-tests.ts @@ -0,0 +1,33 @@ +import * as Recase from 'recase'; +const recase = Recase.create({exceptions: {FOO: 'foo'}}); + +const snake = recase.snakeCopy( + { + FOO: 1, // Exception + abcXyz: { // Normal + _abcXyz: [ // private + {__abcXyz: 1}, // very private + {___abcXyz: 1}, // very very private + ], + }, + }, +); + +const camel = recase.camelCopy( + { + foo: 1, // Exception + abc_xyz: { // Normal + _abc_xyz: [ // private + {__abc_xyz: 1}, // very private + {___abc_xyz: 1}, // very very private + ], + }, + }, +); + +recase.snakeCopy(1); +recase.camelCopy(2); +recase.snakeCopy('a'); +recase.camelCopy('b'); +recase.snakeCopy(['c', '1']); +recase.snakeCopy(['d', '1']); diff --git a/types/recase/tsconfig.json b/types/recase/tsconfig.json new file mode 100644 index 0000000000..fe94c39f52 --- /dev/null +++ b/types/recase/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "recase-tests.ts" + ] +} diff --git a/types/recase/tslint.json b/types/recase/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/recase/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } diff --git a/types/relaxed-json/index.d.ts b/types/relaxed-json/index.d.ts new file mode 100644 index 0000000000..7b081d9acf --- /dev/null +++ b/types/relaxed-json/index.d.ts @@ -0,0 +1,16 @@ +// Type definitions for relaxed-json 1.0 +// Project: https://github.com/phadej/relaxed-json +// Definitions by: Mikal Madsen +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +export type Reviver = (this: {}, key: string, value: any) => any; +export function transform(text: string): string; +export function parse(text: string, reviver: Reviver): {}; +export function parse(text: string, opts?: { + reviver?: Reviver, + relaxed?: boolean, + warnings?: boolean, + tolerant?: boolean, + duplicate?: boolean, +}): {}; +export function stringify(obj: any): string; diff --git a/types/relaxed-json/relaxed-json-tests.ts b/types/relaxed-json/relaxed-json-tests.ts new file mode 100644 index 0000000000..dc07398f9f --- /dev/null +++ b/types/relaxed-json/relaxed-json-tests.ts @@ -0,0 +1,49 @@ +import * as RJSON from 'relaxed-json'; + +const relaxedString = ` + { // comment + foo: "bar", // identifier + "arr": [1,2,3,], // trailing comma in array + "single-quoted": 'string', + 'trailing': 4, + }, +`; + +RJSON.transform(relaxedString); + +function revive(key: string, value: any): any { + return typeof value === 'number' + ? value * 2 // return value * 2 for numbers + : value; // return everything else unchanged +} + +RJSON.parse(relaxedString, revive); + +RJSON.parse(relaxedString, { + reviver: revive, + relaxed: true, + warnings: true, + tolerant: true, + duplicate: true, +}); + +RJSON.parse(relaxedString, { + tolerant: false, + duplicate: true, +}); + +RJSON.parse(relaxedString, { + reviver: revive, +}); + +RJSON.parse(relaxedString, {}); + +const parsed = RJSON.parse(relaxedString); +RJSON.stringify(parsed); + +RJSON.stringify({ + foo: 'bar', +}); +RJSON.stringify([1, 2, 3]); +RJSON.stringify(3); +RJSON.stringify('a'); diff --git a/types/relaxed-json/tsconfig.json b/types/relaxed-json/tsconfig.json new file mode 100644 index 0000000000..235aa056fa --- /dev/null +++ b/types/relaxed-json/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "relaxed-json-tests.ts" + ] +} diff --git a/types/relaxed-json/tslint.json b/types/relaxed-json/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/relaxed-json/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" } From b0a313322970e0107b3899f7ff432413dd8fc0e6 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Mon, 1 May 2017 18:43:32 -0400 Subject: [PATCH 121/321] Ember: Missing optional parameter for `Ember.Helper.helper` function (#16250) Currently, the second `hash` parameter to the closure is not supported, even though it's used in the Ember Documentation for the method: https://github.com/emberjs/ember.js/blob/v2.12.0/packages/ember-glimmer/lib/helper.js#L110-L114 I confirmed in the latest version of Ember.js that this `hash` parameter works, so I believe the types should be updated to support it. --- types/ember/ember-tests.ts | 11 +++++++++++ types/ember/index.d.ts | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/types/ember/ember-tests.ts b/types/ember/ember-tests.ts index 99f00aae6f..4119e1d7ec 100644 --- a/types/ember/ember-tests.ts +++ b/types/ember/ember-tests.ts @@ -105,6 +105,17 @@ App.userController = Em.Object.create({ }) }); +Ember.Helper.helper((params) => { + let cents = params[0]; + return `${cents * 0.01}`; +}); + +Ember.Helper.helper((params, hash) => { + let cents = params[0]; + let currency = hash.currency; + return `${currency}${cents * 0.01}`; +}); + Handlebars.registerHelper('highlight', (property: string, options: any) => new Handlebars.SafeString('' + "some value" + '')); diff --git a/types/ember/index.d.ts b/types/ember/index.d.ts index f7aedcb7c1..1a8d5455c5 100644 --- a/types/ember/index.d.ts +++ b/types/ember/index.d.ts @@ -1137,7 +1137,7 @@ declare namespace Ember { service(name?: string): Service; }; class Helper extends Object { - static helper( h: (a: any) => any): Helper; + static helper( h: (params: any, hash?: any) => any): Helper; compute(params: any[], hash: any): any; recompute(params: any[], hash: any): any; } From 7a49d23bc5ab2f1c3132f3996fd4f77468d200f5 Mon Sep 17 00:00:00 2001 From: Matthias Dailey Date: Mon, 1 May 2017 18:53:28 -0400 Subject: [PATCH 122/321] Add openlayers version 3.x (3.20) (#15923) --- types/openlayers/v3/index.d.ts | 13931 ++++++++++++++++++++++ types/openlayers/v3/openlayers-tests.ts | 765 ++ types/openlayers/v3/tsconfig.json | 28 + 3 files changed, 14724 insertions(+) create mode 100644 types/openlayers/v3/index.d.ts create mode 100644 types/openlayers/v3/openlayers-tests.ts create mode 100644 types/openlayers/v3/tsconfig.json diff --git a/types/openlayers/v3/index.d.ts b/types/openlayers/v3/index.d.ts new file mode 100644 index 0000000000..c9791bc109 --- /dev/null +++ b/types/openlayers/v3/index.d.ts @@ -0,0 +1,13931 @@ +// Type definitions for OpenLayers v3.20.0 +// Project: http://openlayers.org/ +// Definitions by: Olivier Sechet , Matthias Dailey +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// Definitions partially generated using tsd-jsdoc (https://github.com/englercj/tsd-jsdoc) + +declare type GlobalObject = Object; + +/** + * @namespace ol + */ +declare module ol { + /** + * The animation static methods are designed to be used with the + * {@link ol.Map#beforeRender} method. For example: + * + * var map = new ol.Map({ ... }); + * var zoom = ol.animation.zoom({ + * resolution: map.getView().getResolution() + * }); + * map.beforeRender(zoom); + * map.getView().setResolution(map.getView().getResolution() * 2); + * + * @namespace ol.animation + */ + module animation { + /** + * Generate an animated transition that will "bounce" the resolution as it + * approaches the final value. + * @param {olx.animation.BounceOptions} options Bounce options. + * @return {ol.PreRenderFunction} Pre-render function. + * @api + */ + function bounce(options: olx.animation.BounceOptions): ol.PreRenderFunction; + + /** + * Generate an animated transition while updating the view center. + * @param {olx.animation.PanOptions} options Pan options. + * @return {ol.PreRenderFunction} Pre-render function. + * @api + */ + function pan(options: olx.animation.PanOptions): ol.PreRenderFunction; + + /** + * Generate an animated transition while updating the view rotation. + * @param {olx.animation.RotateOptions} options Rotate options. + * @return {ol.PreRenderFunction} Pre-render function. + * @api + */ + function rotate(options: olx.animation.RotateOptions): ol.PreRenderFunction; + + /** + * Generate an animated transition while updating the view resolution. + * @param {olx.animation.ZoomOptions} options Zoom options. + * @return {ol.PreRenderFunction} Pre-render function. + * @api + */ + function zoom(options: olx.animation.ZoomOptions): ol.PreRenderFunction; + + } + + /** + * Error object thrown when an assertion failed. This is an ECMA-262 Error, + * extended with a `code` property. + * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error} + * @constructor + * @extends {Error} + * @implements {oli.AssertionError} + * @param {number} code Error code. + */ + class AssertionError extends Error { + /** + * Error object thrown when an assertion failed. This is an ECMA-262 Error, + * extended with a `code` property. + * @see {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error} + * @constructor + * @extends {Error} + * @implements {oli.AssertionError} + * @param {number} code Error code. + */ + constructor(code: number); + + /** + * Error code. The meaning of the code can be found on + * {@link http://openlayers.org/en/latest/errors.html} (replace `latest` with + * the version found in the OpenLayers script's header comment if a version + * other than the latest is used). + * @type {number} + * @api + */ + code: number; + + } + + /** + * @classdesc + * An attribution for a layer source. + * + * Example: + * + * source: new ol.source.OSM({ + * attributions: [ + * new ol.Attribution({ + * html: 'All maps © ' + + * 'OpenCycleMap' + * }), + * ol.source.OSM.ATTRIBUTION + * ], + * .. + * + * @constructor + * @param {olx.AttributionOptions} options Attribution options. + * @struct + * @api stable + */ + class Attribution { + /** + * @classdesc + * An attribution for a layer source. + * + * Example: + * + * source: new ol.source.OSM({ + * attributions: [ + * new ol.Attribution({ + * html: 'All maps © ' + + * 'OpenCycleMap' + * }), + * ol.source.OSM.ATTRIBUTION + * ], + * .. + * + * @constructor + * @param {olx.AttributionOptions} options Attribution options. + * @struct + * @api stable + */ + constructor(options: olx.AttributionOptions); + + /** + * Get the attribution markup. + * @return {string} The attribution HTML. + * @api stable + */ + getHTML(): string; + + } + + /** + * @classdesc + * An expanded version of standard JS Array, adding convenience methods for + * manipulation. Add and remove changes to the Collection trigger a Collection + * event. Note that this does not cover changes to the objects _within_ the + * Collection; they trigger events on the appropriate object, not on the + * Collection as a whole. + * + * @constructor + * @extends {ol.Object} + * @fires ol.Collection.Event + * @param {!Array.=} opt_array Array. + * @template T + * @api stable + */ + class Collection extends ol.Object { + /** + * @classdesc + * An expanded version of standard JS Array, adding convenience methods for + * manipulation. Add and remove changes to the Collection trigger a Collection + * event. Note that this does not cover changes to the objects _within_ the + * Collection; they trigger events on the appropriate object, not on the + * Collection as a whole. + * + * @constructor + * @extends {ol.Object} + * @fires ol.Collection.Event + * @param {!Array.=} opt_array Array. + * @template T + * @api stable + */ + constructor(opt_array?: T[]); + + /** + * Remove all elements from the collection. + * @api stable + */ + clear(): void; + + /** + * Add elements to the collection. This pushes each item in the provided array + * to the end of the collection. + * @param {!Array.} arr Array. + * @return {ol.Collection.} This collection. + * @api stable + */ + extend(arr: T[]): ol.Collection; + + /** + * Iterate over each element, calling the provided callback. + * @param {function(this: S, T, number, Array.): *} f The function to call + * for every element. This function takes 3 arguments (the element, the + * index and the array). The return value is ignored. + * @param {S=} opt_this The object to use as `this` in `f`. + * @template S + * @api stable + */ + forEach(f: ((item: T, index: number, array: T[]) => any), opt_this?: S): void; + + /** + * Get a reference to the underlying Array object. Warning: if the array + * is mutated, no events will be dispatched by the collection, and the + * collection's "length" property won't be in sync with the actual length + * of the array. + * @return {!Array.} Array. + * @api stable + */ + getArray(): T[]; + + /** + * Get the element at the provided index. + * @param {number} index Index. + * @return {T} Element. + * @api stable + */ + item(index: number): T; + + /** + * Get the length of this collection. + * @return {number} The length of the array. + * @observable + * @api stable + */ + getLength(): number; + + /** + * Insert an element at the provided index. + * @param {number} index Index. + * @param {T} elem Element. + * @api stable + */ + insertAt(index: number, elem: T): void; + + /** + * Remove the last element of the collection and return it. + * Return `undefined` if the collection is empty. + * @return {T|undefined} Element. + * @api stable + */ + pop(): (T); + + /** + * Insert the provided element at the end of the collection. + * @param {T} elem Element. + * @return {number} Length. + * @api stable + */ + push(elem: T): number; + + /** + * Remove the first occurrence of an element from the collection. + * @param {T} elem Element. + * @return {T|undefined} The removed element or undefined if none found. + * @api stable + */ + remove(elem: T): (T); + + /** + * Remove the element at the provided index and return it. + * Return `undefined` if the collection does not contain this index. + * @param {number} index Index. + * @return {T|undefined} Value. + * @api stable + */ + removeAt(index: number): (T); + + /** + * Set the element at the provided index. + * @param {number} index Index. + * @param {T} elem Element. + * @api stable + */ + setAt(index: number, elem: T): void; + + } + + module Collection { + + type EventType = string; + + /** + * @classdesc + * Events emitted by {@link ol.Collection} instances are instances of this + * type. + * + * @constructor + * @extends {ol.events.Event} + * @implements {oli.Collection.Event} + * @param {ol.Collection.EventType} type Type. + * @param {*=} opt_element Element. + */ + class Event extends ol.events.Event { + /** + * @classdesc + * Events emitted by {@link ol.Collection} instances are instances of this + * type. + * + * @constructor + * @extends {ol.events.Event} + * @implements {oli.Collection.Event} + * @param {ol.Collection.EventType} type Type. + * @param {*=} opt_element Element. + */ + constructor(type: ol.Collection.EventType, opt_element?: any); + + /** + * The element that is added to or removed from the collection. + * @type {*} + * @api stable + */ + element: any; + + } + } + + /** + * Colors can be defined as a {@link ol.Color} array, or as strings in + * `rgb(r,g,b)` or `rgba(r,g,b,a)` format, or in hex `#rrggbb` or `#rgb` format. + * Color names, like 'red', 'blue' or 'green', may also be used with the + * Canvas renderer. + * + * @namespace ol.color + */ + module color { + /** + * Return the color as an array. This function maintains a cache of calculated + * arrays which means the result should not be modified. + * @param {ol.Color|string} color Color. + * @return {ol.Color} Color. + * @api + */ + function asArray(color: (ol.Color | string)): ol.Color; + + /** + * Return the color as an rgba string. + * @param {ol.Color|string} color Color. + * @return {string} Rgba string. + * @api + */ + function asString(color: (ol.Color | string)): string; + + } + + /** + * An {@link ol.ColorLike} can be a color, gradient or pattern accepted by + * [CanvasRenderingContext2D.fillStyle](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/fillStyle). + * @namespace ol.colorlike + */ + module colorlike { + /** + * @param {ol.Color|ol.ColorLike} color Color. + * @return {ol.ColorLike} The color as an ol.ColorLike + * @api + */ + function asColorLike(color: (ol.Color | ol.ColorLike)): ol.ColorLike; + + } + + /** + * @namespace ol.control + */ + module control { + /** + * @classdesc + * Control to show all the attributions associated with the layer sources + * in the map. This control is one of the default controls included in maps. + * By default it will show in the bottom right portion of the map, but this can + * be changed by using a css selector for `.ol-attribution`. + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.AttributionOptions=} opt_options Attribution options. + * @api stable + */ + class Attribution extends ol.control.Control { + /** + * @classdesc + * Control to show all the attributions associated with the layer sources + * in the map. This control is one of the default controls included in maps. + * By default it will show in the bottom right portion of the map, but this can + * be changed by using a css selector for `.ol-attribution`. + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.AttributionOptions=} opt_options Attribution options. + * @api stable + */ + constructor(opt_options?: olx.control.AttributionOptions); + + /** + * Update the attribution element. + * @param {ol.MapEvent} mapEvent Map event. + * @this {ol.control.Attribution} + * @api + */ + static render(mapEvent: ol.MapEvent): void; + + /** + * Return `true` if the attribution is collapsible, `false` otherwise. + * @return {boolean} True if the widget is collapsible. + * @api stable + */ + getCollapsible(): boolean; + + /** + * Set whether the attribution should be collapsible. + * @param {boolean} collapsible True if the widget is collapsible. + * @api stable + */ + setCollapsible(collapsible: boolean): void; + + /** + * Collapse or expand the attribution according to the passed parameter. Will + * not do anything if the attribution isn't collapsible or if the current + * collapsed state is already the one requested. + * @param {boolean} collapsed True if the widget is collapsed. + * @api stable + */ + setCollapsed(collapsed: boolean): void; + + /** + * Return `true` when the attribution is currently collapsed or `false` + * otherwise. + * @return {boolean} True if the widget is collapsed. + * @api stable + */ + getCollapsed(): boolean; + + } + + /** + * @classdesc + * A control is a visible widget with a DOM element in a fixed position on the + * screen. They can involve user input (buttons), or be informational only; + * the position is determined using CSS. By default these are placed in the + * container with CSS class name `ol-overlaycontainer-stopevent`, but can use + * any outside DOM element. + * + * This is the base class for controls. You can use it for simple custom + * controls by creating the element with listeners, creating an instance: + * ```js + * var myControl = new ol.control.Control({element: myElement}); + * ``` + * and then adding this to the map. + * + * The main advantage of having this as a control rather than a simple separate + * DOM element is that preventing propagation is handled for you. Controls + * will also be `ol.Object`s in a `ol.Collection`, so you can use their + * methods. + * + * You can also extend this base for your own control class. See + * examples/custom-controls for an example of how to do this. + * + * @constructor + * @extends {ol.Object} + * @implements {oli.control.Control} + * @param {olx.control.ControlOptions} options Control options. + * @api stable + */ + class Control extends ol.Object { + /** + * @classdesc + * A control is a visible widget with a DOM element in a fixed position on the + * screen. They can involve user input (buttons), or be informational only; + * the position is determined using CSS. By default these are placed in the + * container with CSS class name `ol-overlaycontainer-stopevent`, but can use + * any outside DOM element. + * + * This is the base class for controls. You can use it for simple custom + * controls by creating the element with listeners, creating an instance: + * ```js + * var myControl = new ol.control.Control({element: myElement}); + * ``` + * and then adding this to the map. + * + * The main advantage of having this as a control rather than a simple separate + * DOM element is that preventing propagation is handled for you. Controls + * will also be `ol.Object`s in a `ol.Collection`, so you can use their + * methods. + * + * You can also extend this base for your own control class. See + * examples/custom-controls for an example of how to do this. + * + * @constructor + * @extends {ol.Object} + * @implements {oli.control.Control} + * @param {olx.control.ControlOptions} options Control options. + * @api stable + */ + constructor(options: olx.control.ControlOptions); + + /** + * Get the map associated with this control. + * @return {ol.Map} Map. + * @api stable + */ + getMap(): ol.Map; + + /** + * Remove the control from its current map and attach it to the new map. + * Subclasses may set up event handlers to get notified about changes to + * the map here. + * @param {ol.Map} map Map. + * @api stable + */ + setMap(map: ol.Map): void; + + /** + * This function is used to set a target element for the control. It has no + * effect if it is called after the control has been added to the map (i.e. + * after `setMap` is called on the control). If no `target` is set in the + * options passed to the control constructor and if `setTarget` is not called + * then the control is added to the map's overlay container. + * @param {Element|string} target Target. + * @api + */ + setTarget(target: (Element | string)): void; + + } + + /** + * @classdesc + * Provides a button that when clicked fills up the full screen with the map. + * The full screen source element is by default the element containing the map viewport unless + * overriden by providing the `source` option. In which case, the dom + * element introduced using this parameter will be displayed in full screen. + * + * When in full screen mode, a close button is shown to exit full screen mode. + * The [Fullscreen API](http://www.w3.org/TR/fullscreen/) is used to + * toggle the map in full screen mode. + * + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.FullScreenOptions=} opt_options Options. + * @api stable + */ + class FullScreen extends ol.control.Control { + /** + * @classdesc + * Provides a button that when clicked fills up the full screen with the map. + * The full screen source element is by default the element containing the map viewport unless + * overriden by providing the `source` option. In which case, the dom + * element introduced using this parameter will be displayed in full screen. + * + * When in full screen mode, a close button is shown to exit full screen mode. + * The [Fullscreen API](http://www.w3.org/TR/fullscreen/) is used to + * toggle the map in full screen mode. + * + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.FullScreenOptions=} opt_options Options. + * @api stable + */ + constructor(opt_options?: olx.control.FullScreenOptions); + + } + + /** + * Set of controls included in maps by default. Unless configured otherwise, + * this returns a collection containing an instance of each of the following + * controls: + * * {@link ol.control.Zoom} + * * {@link ol.control.Rotate} + * * {@link ol.control.Attribution} + * + * @param {olx.control.DefaultsOptions=} opt_options Defaults options. + * @return {ol.Collection.} Controls. + * @api stable + */ + function defaults(opt_options?: olx.control.DefaultsOptions): ol.Collection; + + /** + * @classdesc + * A control to show the 2D coordinates of the mouse cursor. By default, these + * are in the view projection, but can be in any supported projection. + * By default the control is shown in the top right corner of the map, but this + * can be changed by using the css selector `.ol-mouse-position`. + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.MousePositionOptions=} opt_options Mouse position + * options. + * @api stable + */ + class MousePosition extends ol.control.Control { + /** + * @classdesc + * A control to show the 2D coordinates of the mouse cursor. By default, these + * are in the view projection, but can be in any supported projection. + * By default the control is shown in the top right corner of the map, but this + * can be changed by using the css selector `.ol-mouse-position`. + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.MousePositionOptions=} opt_options Mouse position + * options. + * @api stable + */ + constructor(opt_options?: olx.control.MousePositionOptions); + + /** + * Update the mouseposition element. + * @param {ol.MapEvent} mapEvent Map event. + * @this {ol.control.MousePosition} + * @api + */ + static render(mapEvent: ol.MapEvent): void; + + /** + * Return the coordinate format type used to render the current position or + * undefined. + * @return {ol.CoordinateFormatType|undefined} The format to render the current + * position in. + * @observable + * @api stable + */ + getCoordinateFormat(): (ol.CoordinateFormatType); + + /** + * Return the projection that is used to report the mouse position. + * @return {ol.proj.Projection|undefined} The projection to report mouse + * position in. + * @observable + * @api stable + */ + getProjection(): (ol.proj.Projection); + + /** + * Set the coordinate format type used to render the current position. + * @param {ol.CoordinateFormatType} format The format to render the current + * position in. + * @observable + * @api stable + */ + setCoordinateFormat(format: ol.CoordinateFormatType): void; + + /** + * Set the projection that is used to report the mouse position. + * @param {ol.proj.Projection} projection The projection to report mouse + * position in. + * @observable + * @api stable + */ + setProjection(projection: ol.proj.Projection): void; + + } + + /** + * Create a new control with a map acting as an overview map for an other + * defined map. + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.OverviewMapOptions=} opt_options OverviewMap options. + * @api + */ + class OverviewMap extends ol.control.Control { + /** + * Create a new control with a map acting as an overview map for an other + * defined map. + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.OverviewMapOptions=} opt_options OverviewMap options. + * @api + */ + constructor(opt_options?: olx.control.OverviewMapOptions); + + /** + * Update the overview map element. + * @param {ol.MapEvent} mapEvent Map event. + * @this {ol.control.OverviewMap} + * @api + */ + static render(mapEvent: ol.MapEvent): void; + + /** + * Return `true` if the overview map is collapsible, `false` otherwise. + * @return {boolean} True if the widget is collapsible. + * @api stable + */ + getCollapsible(): boolean; + + /** + * Set whether the overview map should be collapsible. + * @param {boolean} collapsible True if the widget is collapsible. + * @api stable + */ + setCollapsible(collapsible: boolean): void; + + /** + * Collapse or expand the overview map according to the passed parameter. Will + * not do anything if the overview map isn't collapsible or if the current + * collapsed state is already the one requested. + * @param {boolean} collapsed True if the widget is collapsed. + * @api stable + */ + setCollapsed(collapsed: boolean): void; + + /** + * Determine if the overview map is collapsed. + * @return {boolean} The overview map is collapsed. + * @api stable + */ + getCollapsed(): boolean; + + /** + * Return the overview map. + * @return {ol.Map} Overview map. + * @api + */ + getOverviewMap(): ol.Map; + + } + + /** + * @classdesc + * A button control to reset rotation to 0. + * To style this control use css selector `.ol-rotate`. A `.ol-hidden` css + * selector is added to the button when the rotation is 0. + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.RotateOptions=} opt_options Rotate options. + * @api stable + */ + class Rotate extends ol.control.Control { + /** + * @classdesc + * A button control to reset rotation to 0. + * To style this control use css selector `.ol-rotate`. A `.ol-hidden` css + * selector is added to the button when the rotation is 0. + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.RotateOptions=} opt_options Rotate options. + * @api stable + */ + constructor(opt_options?: olx.control.RotateOptions); + + /** + * Update the rotate control element. + * @param {ol.MapEvent} mapEvent Map event. + * @this {ol.control.Rotate} + * @api + */ + static render(mapEvent: ol.MapEvent): void; + + } + + /** + * @classdesc + * A control displaying rough y-axis distances, calculated for the center of the + * viewport. For conformal projections (e.g. EPSG:3857, the default view + * projection in OpenLayers), the scale is valid for all directions. + * No scale line will be shown when the y-axis distance of a pixel at the + * viewport center cannot be calculated in the view projection. + * By default the scale line will show in the bottom left portion of the map, + * but this can be changed by using the css selector `.ol-scale-line`. + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.ScaleLineOptions=} opt_options Scale line options. + * @api stable + */ + class ScaleLine extends ol.control.Control { + /** + * @classdesc + * A control displaying rough y-axis distances, calculated for the center of the + * viewport. For conformal projections (e.g. EPSG:3857, the default view + * projection in OpenLayers), the scale is valid for all directions. + * No scale line will be shown when the y-axis distance of a pixel at the + * viewport center cannot be calculated in the view projection. + * By default the scale line will show in the bottom left portion of the map, + * but this can be changed by using the css selector `.ol-scale-line`. + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.ScaleLineOptions=} opt_options Scale line options. + * @api stable + */ + constructor(opt_options?: olx.control.ScaleLineOptions); + + /** + * Return the units to use in the scale line. + * @return {ol.control.ScaleLine.Units|undefined} The units to use in the scale + * line. + * @observable + * @api stable + */ + getUnits(): (ol.control.ScaleLine.Units); + + /** + * Update the scale line element. + * @param {ol.MapEvent} mapEvent Map event. + * @this {ol.control.ScaleLine} + * @api + */ + static render(mapEvent: ol.MapEvent): void; + + /** + * Set the units to use in the scale line. + * @param {ol.control.ScaleLine.Units} units The units to use in the scale line. + * @observable + * @api stable + */ + setUnits(units: ol.control.ScaleLine.Units): void; + } + + module ScaleLine { + /** + * @enum {string} + * @api + */ + type Property = string; + + /** + * Units for the scale line. Supported values are `'degrees'`, `'imperial'`, + * `'nautical'`, `'metric'`, `'us'`. + * @enum {string} + */ + type Units = "degrees" | "imperial" | "nautical" | "metric" | "us"; + } + + /** + * @classdesc + * A control with 2 buttons, one for zoom in and one for zoom out. + * This control is one of the default controls of a map. To style this control + * use css selectors `.ol-zoom-in` and `.ol-zoom-out`. + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.ZoomOptions=} opt_options Zoom options. + * @api stable + */ + class Zoom extends ol.control.Control { + /** + * @classdesc + * A control with 2 buttons, one for zoom in and one for zoom out. + * This control is one of the default controls of a map. To style this control + * use css selectors `.ol-zoom-in` and `.ol-zoom-out`. + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.ZoomOptions=} opt_options Zoom options. + * @api stable + */ + constructor(opt_options?: olx.control.ZoomOptions); + + } + + /** + * @classdesc + * A slider type of control for zooming. + * + * Example: + * + * map.addControl(new ol.control.ZoomSlider()); + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.ZoomSliderOptions=} opt_options Zoom slider options. + * @api stable + */ + class ZoomSlider extends ol.control.Control { + /** + * @classdesc + * A slider type of control for zooming. + * + * Example: + * + * map.addControl(new ol.control.ZoomSlider()); + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.ZoomSliderOptions=} opt_options Zoom slider options. + * @api stable + */ + constructor(opt_options?: olx.control.ZoomSliderOptions); + + /** + * Update the zoomslider element. + * @param {ol.MapEvent} mapEvent Map event. + * @this {ol.control.ZoomSlider} + * @api + */ + static render(mapEvent: ol.MapEvent): void; + + } + + /** + * @classdesc + * A button control which, when pressed, changes the map view to a specific + * extent. To style this control use the css selector `.ol-zoom-extent`. + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.ZoomToExtentOptions=} opt_options Options. + * @api stable + */ + class ZoomToExtent extends ol.control.Control { + /** + * @classdesc + * A button control which, when pressed, changes the map view to a specific + * extent. To style this control use the css selector `.ol-zoom-extent`. + * + * @constructor + * @extends {ol.control.Control} + * @param {olx.control.ZoomToExtentOptions=} opt_options Options. + * @api stable + */ + constructor(opt_options?: olx.control.ZoomToExtentOptions); + + } + + } + + /** + * @namespace ol.coordinate + */ + module coordinate { + /** + * Add `delta` to `coordinate`. `coordinate` is modified in place and returned + * by the function. + * + * Example: + * + * var coord = [7.85, 47.983333]; + * ol.coordinate.add(coord, [-2, 4]); + * // coord is now [5.85, 51.983333] + * + * @param {ol.Coordinate} coordinate Coordinate. + * @param {ol.Coordinate} delta Delta. + * @return {ol.Coordinate} The input coordinate adjusted by the given delta. + * @api stable + */ + function add(coordinate: ol.Coordinate, delta: ol.Coordinate): ol.Coordinate; + + /** + * Returns a {@link ol.CoordinateFormatType} function that can be used to format + * a {ol.Coordinate} to a string. + * + * Example without specifying the fractional digits: + * + * var coord = [7.85, 47.983333]; + * var stringifyFunc = ol.coordinate.createStringXY(); + * var out = stringifyFunc(coord); + * // out is now '8, 48' + * + * Example with explicitly specifying 2 fractional digits: + * + * var coord = [7.85, 47.983333]; + * var stringifyFunc = ol.coordinate.createStringXY(2); + * var out = stringifyFunc(coord); + * // out is now '7.85, 47.98' + * + * @param {number=} opt_fractionDigits The number of digits to include + * after the decimal point. Default is `0`. + * @return {ol.CoordinateFormatType} Coordinate format. + * @api stable + */ + function createStringXY(opt_fractionDigits?: number): ol.CoordinateFormatType; + + /** + * Transforms the given {@link ol.Coordinate} to a string using the given string + * template. The strings `{x}` and `{y}` in the template will be replaced with + * the first and second coordinate values respectively. + * + * Example without specifying the fractional digits: + * + * var coord = [7.85, 47.983333]; + * var template = 'Coordinate is ({x}|{y}).'; + * var out = ol.coordinate.format(coord, template); + * // out is now 'Coordinate is (8|48).' + * + * Example explicitly specifying the fractional digits: + * + * var coord = [7.85, 47.983333]; + * var template = 'Coordinate is ({x}|{y}).'; + * var out = ol.coordinate.format(coord, template, 2); + * // out is now 'Coordinate is (7.85|47.98).' + * + * @param {ol.Coordinate|undefined} coordinate Coordinate. + * @param {string} template A template string with `{x}` and `{y}` placeholders + * that will be replaced by first and second coordinate values. + * @param {number=} opt_fractionDigits The number of digits to include + * after the decimal point. Default is `0`. + * @return {string} Formatted coordinate. + * @api stable + */ + function format(coordinate: (ol.Coordinate), template: string, opt_fractionDigits?: number): string; + + /** + * Rotate `coordinate` by `angle`. `coordinate` is modified in place and + * returned by the function. + * + * Example: + * + * var coord = [7.85, 47.983333]; + * var rotateRadians = Math.PI / 2; // 90 degrees + * ol.coordinate.rotate(coord, rotateRadians); + * // coord is now [-47.983333, 7.85] + * + * @param {ol.Coordinate} coordinate Coordinate. + * @param {number} angle Angle in radian. + * @return {ol.Coordinate} Coordinate. + * @api stable + */ + function rotate(coordinate: ol.Coordinate, angle: number): ol.Coordinate; + + /** + * Format a geographic coordinate with the hemisphere, degrees, minutes, and + * seconds. + * + * Example without specifying fractional digits: + * + * var coord = [7.85, 47.983333]; + * var out = ol.coordinate.toStringHDMS(coord); + * // out is now '47° 58′ 60″ N 7° 50′ 60″ E' + * + * Example explicitly specifying 1 fractional digit: + * + * var coord = [7.85, 47.983333]; + * var out = ol.coordinate.toStringHDMS(coord, 1); + * // out is now '47° 58′ 60.0″ N 7° 50′ 60.0″ E' + * + * @param {ol.Coordinate|undefined} coordinate Coordinate. + * @param {number=} opt_fractionDigits The number of digits to include + * after the decimal point. Default is `0`. + * @return {string} Hemisphere, degrees, minutes and seconds. + * @api stable + */ + function toStringHDMS(coordinate?: ol.Coordinate, opt_fractionDigits?: number): string; + + /** + * Format a coordinate as a comma delimited string. + * + * Example without specifying fractional digits: + * + * var coord = [7.85, 47.983333]; + * var out = ol.coordinate.toStringXY(coord); + * // out is now '8, 48' + * + * Example explicitly specifying 1 fractional digit: + * + * var coord = [7.85, 47.983333]; + * var out = ol.coordinate.toStringXY(coord, 1); + * // out is now '7.8, 48.0' + * + * @param {ol.Coordinate|undefined} coordinate Coordinate. + * @param {number=} opt_fractionDigits The number of digits to include + * after the decimal point. Default is `0`. + * @return {string} XY. + * @api stable + */ + function toStringXY(coordinate?: ol.Coordinate, opt_fractionDigits?: number): string; + + } + + /** + * @classdesc + * The ol.DeviceOrientation class provides access to information from + * DeviceOrientation events. See the [HTML 5 DeviceOrientation Specification]( + * http://www.w3.org/TR/orientation-event/) for more details. + * + * Many new computers, and especially mobile phones + * and tablets, provide hardware support for device orientation. Web + * developers targeting mobile devices will be especially interested in this + * class. + * + * Device orientation data are relative to a common starting point. For mobile + * devices, the starting point is to lay your phone face up on a table with the + * top of the phone pointing north. This represents the zero state. All + * angles are then relative to this state. For computers, it is the same except + * the screen is open at 90 degrees. + * + * Device orientation is reported as three angles - `alpha`, `beta`, and + * `gamma` - relative to the starting position along the three planar axes X, Y + * and Z. The X axis runs from the left edge to the right edge through the + * middle of the device. Similarly, the Y axis runs from the bottom to the top + * of the device through the middle. The Z axis runs from the back to the front + * through the middle. In the starting position, the X axis points to the + * right, the Y axis points away from you and the Z axis points straight up + * from the device lying flat. + * + * The three angles representing the device orientation are relative to the + * three axes. `alpha` indicates how much the device has been rotated around the + * Z axis, which is commonly interpreted as the compass heading (see note + * below). `beta` indicates how much the device has been rotated around the X + * axis, or how much it is tilted from front to back. `gamma` indicates how + * much the device has been rotated around the Y axis, or how much it is tilted + * from left to right. + * + * For most browsers, the `alpha` value returns the compass heading so if the + * device points north, it will be 0. With Safari on iOS, the 0 value of + * `alpha` is calculated from when device orientation was first requested. + * ol.DeviceOrientation provides the `heading` property which normalizes this + * behavior across all browsers for you. + * + * It is important to note that the HTML 5 DeviceOrientation specification + * indicates that `alpha`, `beta` and `gamma` are in degrees while the + * equivalent properties in ol.DeviceOrientation are in radians for consistency + * with all other uses of angles throughout OpenLayers. + * + * To get notified of device orientation changes, register a listener for the + * generic `change` event on your `ol.DeviceOrientation` instance. + * + * @see {@link http://www.w3.org/TR/orientation-event/} + * + * @constructor + * @extends {ol.Object} + * @param {olx.DeviceOrientationOptions=} opt_options Options. + * @api + */ + class DeviceOrientation extends ol.Object { + /** + * @classdesc + * The ol.DeviceOrientation class provides access to information from + * DeviceOrientation events. See the [HTML 5 DeviceOrientation Specification]( + * http://www.w3.org/TR/orientation-event/) for more details. + * + * Many new computers, and especially mobile phones + * and tablets, provide hardware support for device orientation. Web + * developers targeting mobile devices will be especially interested in this + * class. + * + * Device orientation data are relative to a common starting point. For mobile + * devices, the starting point is to lay your phone face up on a table with the + * top of the phone pointing north. This represents the zero state. All + * angles are then relative to this state. For computers, it is the same except + * the screen is open at 90 degrees. + * + * Device orientation is reported as three angles - `alpha`, `beta`, and + * `gamma` - relative to the starting position along the three planar axes X, Y + * and Z. The X axis runs from the left edge to the right edge through the + * middle of the device. Similarly, the Y axis runs from the bottom to the top + * of the device through the middle. The Z axis runs from the back to the front + * through the middle. In the starting position, the X axis points to the + * right, the Y axis points away from you and the Z axis points straight up + * from the device lying flat. + * + * The three angles representing the device orientation are relative to the + * three axes. `alpha` indicates how much the device has been rotated around the + * Z axis, which is commonly interpreted as the compass heading (see note + * below). `beta` indicates how much the device has been rotated around the X + * axis, or how much it is tilted from front to back. `gamma` indicates how + * much the device has been rotated around the Y axis, or how much it is tilted + * from left to right. + * + * For most browsers, the `alpha` value returns the compass heading so if the + * device points north, it will be 0. With Safari on iOS, the 0 value of + * `alpha` is calculated from when device orientation was first requested. + * ol.DeviceOrientation provides the `heading` property which normalizes this + * behavior across all browsers for you. + * + * It is important to note that the HTML 5 DeviceOrientation specification + * indicates that `alpha`, `beta` and `gamma` are in degrees while the + * equivalent properties in ol.DeviceOrientation are in radians for consistency + * with all other uses of angles throughout OpenLayers. + * + * To get notified of device orientation changes, register a listener for the + * generic `change` event on your `ol.DeviceOrientation` instance. + * + * @see {@link http://www.w3.org/TR/orientation-event/} + * + * @constructor + * @extends {ol.Object} + * @param {olx.DeviceOrientationOptions=} opt_options Options. + * @api + */ + constructor(opt_options?: olx.DeviceOrientationOptions); + + /** + * Rotation around the device z-axis (in radians). + * @return {number|undefined} The euler angle in radians of the device from the + * standard Z axis. + * @observable + * @api + */ + getAlpha(): (number); + + /** + * Rotation around the device x-axis (in radians). + * @return {number|undefined} The euler angle in radians of the device from the + * planar X axis. + * @observable + * @api + */ + getBeta(): (number); + + /** + * Rotation around the device y-axis (in radians). + * @return {number|undefined} The euler angle in radians of the device from the + * planar Y axis. + * @observable + * @api + */ + getGamma(): (number); + + /** + * The heading of the device relative to north (in radians). + * @return {number|undefined} The heading of the device relative to north, in + * radians, normalizing for different browser behavior. + * @observable + * @api + */ + getHeading(): (number); + + /** + * Determine if orientation is being tracked. + * @return {boolean} Changes in device orientation are being tracked. + * @observable + * @api + */ + getTracking(): boolean; + + /** + * Enable or disable tracking of device orientation events. + * @param {boolean} tracking The status of tracking changes to alpha, beta and + * gamma. If true, changes are tracked and reported immediately. + * @observable + * @api + */ + setTracking(tracking: boolean): void; + + } + + /** + * Objects that need to clean up after themselves. + * @constructor + */ + class Disposable { + /** + * Objects that need to clean up after themselves. + * @constructor + */ + constructor(); + + } + + /** + * Easing functions for {@link ol.animation}. + * @namespace ol.easing + */ + module easing { + /** + * Start slow and speed up. + * @param {number} t Input between 0 and 1. + * @return {number} Output between 0 and 1. + * @api + */ + function easeIn(t: number): number; + + /** + * Start fast and slow down. + * @param {number} t Input between 0 and 1. + * @return {number} Output between 0 and 1. + * @api + */ + function easeOut(t: number): number; + + /** + * Start slow, speed up, and then slow down again. + * @param {number} t Input between 0 and 1. + * @return {number} Output between 0 and 1. + * @api + */ + function inAndOut(t: number): number; + + /** + * Maintain a constant speed over time. + * @param {number} t Input between 0 and 1. + * @return {number} Output between 0 and 1. + * @api + */ + function linear(t: number): number; + + /** + * Start slow, speed up, and at the very end slow down again. This has the + * same general behavior as {@link ol.easing.inAndOut}, but the final slowdown + * is delayed. + * @param {number} t Input between 0 and 1. + * @return {number} Output between 0 and 1. + * @api + */ + function upAndDown(t: number): number; + + } + + /** + * Applications do not normally create event instances. They register (and + * unregister) event listener functions, which, when called by the library as + * the result of an event being dispatched, are passed event instances as their + * first argument. Listeners can be registered and unregistered on all objects + * descending from {@link ol.Observable}. All event instances have a `target` + * property, which corresponds to the object on which the event was dispatched. + * By default, `this` within the listener also refers to the target, though + * this can be configured in the listener registration function. + * Some classes have their own event type, which return additional + * properties; see the specific event class page for details. + * + * @namespace ol.events + */ + module events { + /** + * @namespace ol.events.condition + */ + module condition { + /** + * Return `true` if only the alt-key is pressed, `false` otherwise (e.g. when + * additionally the shift-key is pressed). + * + * @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event. + * @return {boolean} True if only the alt key is pressed. + * @api stable + */ + function altKeyOnly(mapBrowserEvent: ol.MapBrowserEvent): boolean; + + /** + * Return `true` if only the alt-key and shift-key is pressed, `false` otherwise + * (e.g. when additionally the platform-modifier-key is pressed). + * + * @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event. + * @return {boolean} True if only the alt and shift keys are pressed. + * @api stable + */ + function altShiftKeysOnly(mapBrowserEvent: ol.MapBrowserEvent): boolean; + + /** + * Return always true. + * + * @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event. + * @return {boolean} True. + * @function + * @api stable + */ + function always(mapBrowserEvent: ol.MapBrowserEvent): boolean; + + /** + * Return `true` if the event is a `click` event, `false` otherwise. + * + * @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event. + * @return {boolean} True if the event is a map `click` event. + * @api stable + */ + function click(mapBrowserEvent: ol.MapBrowserEvent): boolean; + + /** + * Return always false. + * + * @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event. + * @return {boolean} False. + * @function + * @api stable + */ + function never(mapBrowserEvent: ol.MapBrowserEvent): boolean; + + /** + * Return `true` if the browser event is a `pointermove` event, `false` + * otherwise. + * + * @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event. + * @return {boolean} True if the browser event is a `pointermove` event. + * @api + */ + function pointerMove(mapBrowserEvent: ol.MapBrowserEvent): boolean; + + /** + * Return `true` if the event is a map `singleclick` event, `false` otherwise. + * + * @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event. + * @return {boolean} True if the event is a map `singleclick` event. + * @api stable + */ + function singleClick(mapBrowserEvent: ol.MapBrowserEvent): boolean; + + /** + * Return `true` if the event is a map `dblclick` event, `false` otherwise. + * + * @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event. + * @return {boolean} True if the event is a map `dblclick` event. + * @api stable + */ + function doubleClick(mapBrowserEvent: ol.MapBrowserEvent): boolean; + + /** + * Return `true` if no modifier key (alt-, shift- or platform-modifier-key) is + * pressed. + * + * @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event. + * @return {boolean} True only if there no modifier keys are pressed. + * @api stable + */ + function noModifierKeys(mapBrowserEvent: ol.MapBrowserEvent): boolean; + + /** + * Return `true` if only the platform-modifier-key (the meta-key on Mac, + * ctrl-key otherwise) is pressed, `false` otherwise (e.g. when additionally + * the shift-key is pressed). + * + * @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event. + * @return {boolean} True if only the platform modifier key is pressed. + * @api stable + */ + function platformModifierKeyOnly(mapBrowserEvent: ol.MapBrowserEvent): boolean; + + /** + * Return `true` if only the shift-key is pressed, `false` otherwise (e.g. when + * additionally the alt-key is pressed). + * + * @param {ol.MapBrowserEvent} mapBrowserEvent Map browser event. + * @return {boolean} True if only the shift key is pressed. + * @api stable + */ + function shiftKeyOnly(mapBrowserEvent: ol.MapBrowserEvent): boolean; + + /** + * Return `true` if the target element is not editable, i.e. not a ``-, + * `