From 47c26a46641dfd6d3c794b1e5fd3697e714ce825 Mon Sep 17 00:00:00 2001 From: Utkarsh Upadhyay Date: Tue, 29 Apr 2014 10:37:33 +0200 Subject: [PATCH] Allow setting of styles/properties via objects. Additionally: 1. Make the type for setting attributes via objects slightly stricter. 2. Add tests for style/property setting via object maps. --- d3/d3-tests.ts | 15 +++++++++++++++ d3/d3.d.ts | 4 +++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/d3/d3-tests.ts b/d3/d3-tests.ts index aab65c06c0..5bee2b84ae 100644 --- a/d3/d3-tests.ts +++ b/d3/d3-tests.ts @@ -2286,6 +2286,21 @@ function attrObjTest () { .attr({"xlink:href": function(d, i) { return d + "-" + i + ".png"; }}); } +// Test for setting styles as an object +// From https://github.com/mbostock/d3/blob/master/test/selection/style-test.js +function styleObjTest () { + d3.select('body') + .style({"background-color": "white", opacity: .42}); +} + +// Test for setting styles as an object +// From https://github.com/mbostock/d3/blob/master/test/selection/property-test.js +function propertyObjTest () { + d3.select('body') + .property({bgcolor: "purple", opacity: .41}); +} + + // Test for brushes // This triggers a bug (shown below) in the 0.9.0 compiler, but works with // 0.9.1 compiler. diff --git a/d3/d3.d.ts b/d3/d3.d.ts index 5f68f6f362..0b049726bc 100644 --- a/d3/d3.d.ts +++ b/d3/d3.d.ts @@ -710,7 +710,7 @@ declare module D3 { (name: string): string; (name: string, value: any): Selection; (name: string, valueFunction: (data: any, index: number) => any): Selection; - (attrValueMap : any): Selection; + (attrValueMap : Object): Selection; }; classed: { @@ -723,12 +723,14 @@ declare module D3 { (name: string): string; (name: string, value: any, priority?: string): Selection; (name: string, valueFunction: (data: any, index: number) => any, priority?: string): Selection; + (styleValueMap : Object): Selection; }; property: { (name: string): void; (name: string, value: any): Selection; (name: string, valueFunction: (data: any, index: number) => any): Selection; + (propertyValueMap : Object): Selection; }; text: {