You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.8 KiB
81 lines
2.8 KiB
define(["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; |
|
});
|
|
|