diff --git a/d3/d3.d.ts b/d3/d3.d.ts index e1d501e0b..0bf3d599d 100644 --- a/d3/d3.d.ts +++ b/d3/d3.d.ts @@ -787,8 +787,18 @@ declare module D3 { (valueFunction: (data: T, index: number) => any): _Selection; }; - append: (name: string) => _Selection; - insert: (name: string, before: string) => _Selection; + append: { + (name: string): _Selection; + (elementFunction: (data: T, index: number) => any): _Selection; + } + + insert: { + (name: string, before: string): _Selection; + (insertElementFunction: (data: T, index: number) => any, before: string): _Selection; + (name: string, beforeElementFunction: (data: T, index: number) => any): _Selection; + (insertElementFunction: (data: T, index: number) => any, beforeElementFunction: (data: T, index: number) => any): _Selection; + } + remove: () => _Selection; empty: () => boolean; @@ -874,8 +884,18 @@ declare module D3 { export interface Selection extends _Selection { } export interface _EnterSelection { - append: (name: string) => _Selection; - insert: (name: string, before?: string) => _Selection; + append: { + (name: string): _Selection; + (elementFunction: (data: T, index: number) => any): _Selection; + } + + insert: { + (name: string, before?: string): _Selection; + (insertElementFunction: (data: T, index: number) => any, before?: string): _Selection; + (name: string, beforeElementFunction?: (data: T, index: number) => any): _Selection; + (insertElementFunction: (data: T, index: number) => any, beforeElementFunction?: (data: T, index: number) => any): _Selection; + } + select: (selector: string) => _Selection; empty: () => boolean; node: () => Element;