diff options
Diffstat (limited to 'js/dojo/dojox/charting/themes/gradientGenerator.js')
| -rw-r--r-- | js/dojo/dojox/charting/themes/gradientGenerator.js | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/js/dojo/dojox/charting/themes/gradientGenerator.js b/js/dojo/dojox/charting/themes/gradientGenerator.js new file mode 100644 index 0000000..e649a31 --- /dev/null +++ b/js/dojo/dojox/charting/themes/gradientGenerator.js @@ -0,0 +1,82 @@ +//>>built +define("dojox/charting/themes/gradientGenerator", ["dojo/_base/lang", "dojo/_base/array", "dojo/_base/Color", "../Theme", "dojox/color/_base", "./common"], + function(lang, arr, Color, Theme, dxcolor, themes){ + + var gg = lang.getObject("gradientGenerator", true, themes); + + gg.generateFills = function(colors, fillPattern, lumFrom, lumTo){ + // summary: + // generates 2-color gradients using pure colors, a fill pattern, and two luminance values + // colors: Array: + // Array of colors to generate gradients for each. + // fillPattern: Object: + // Gradient fill descriptor which colors list will be generated. + // lumFrom: Number: + // Initial luminance value (0-100). + // lumTo: Number: + // Final luminance value (0-100). + return arr.map(colors, function(c){ // Array + return Theme.generateHslGradient(c, fillPattern, lumFrom, lumTo); + }); + }; + + gg.updateFills = function(themes, fillPattern, lumFrom, lumTo){ + // summary: + // transforms solid color fills into 2-color gradients using a fill pattern, and two luminance values + // themes: Array: + // Array of mini-themes (usually series themes or marker themes), which fill will be transformed. + // fillPattern: Object: + // Gradient fill descriptor which colors list will be generated. + // lumFrom: Number: + // Initial luminance value (0-100). + // lumTo: Number: + // Final luminance value (0-100). + arr.forEach(themes, function(t){ + if(t.fill && !t.fill.type){ + t.fill = Theme.generateHslGradient(t.fill, fillPattern, lumFrom, lumTo); + } + }); + }; + + gg.generateMiniTheme = function(colors, fillPattern, lumFrom, lumTo, lumStroke){ + // summary: + // generates mini-themes with 2-color gradients using colors, a fill pattern, and three luminance values + // colors: Array: + // Array of colors to generate gradients for each. + // fillPattern: Object: + // Gradient fill descriptor which colors list will be generated. + // lumFrom: Number: + // Initial luminance value (0-100). + // lumTo: Number: + // Final luminance value (0-100). + // lumStroke: Number: + // Stroke luminance value (0-100). + return arr.map(colors, function(c){ // Array + c = new dxcolor.Color(c); + return { + fill: Theme.generateHslGradient(c, fillPattern, lumFrom, lumTo), + stroke: {color: Theme.generateHslColor(c, lumStroke)} + } + }); + }; + + gg.generateGradientByIntensity = function(color, intensityMap){ + // summary: + // generates gradient colors using an intensity map + // color: dojo.Color: + // Color to use to generate gradients. + // intensityMap: Array: + // Array of tuples {o, i}, where o is a gradient offset (0-1), + // and i is an intensity (0-255). + color = new Color(color); + return arr.map(intensityMap, function(stop){ // Array + var s = stop.i / 255; + return { + offset: stop.o, + color: new Color([color.r * s, color.g * s, color.b * s, color.a]) + }; + }); + } + + return gg; +}); |
