mirror of https://github.com/grafana/grafana
Use d3 from node_modules (#9625)
* tech: annotations refactor, add tests for regions processing * tech: move d3 to npm and webpack, #9480 * tech: move color scale functions to separate module * fix opacity legend renderingpull/9626/head
parent
93ac6680ab
commit
396eadc5ac
@ -0,0 +1,27 @@ |
||||
import * as d3 from 'd3'; |
||||
import * as d3ScaleChromatic from 'd3-scale-chromatic'; |
||||
|
||||
export function getColorScale(colorScheme: any, lightTheme: boolean, maxValue: number, minValue = 0): (d: any) => any { |
||||
let colorInterpolator = d3ScaleChromatic[colorScheme.value]; |
||||
let colorScaleInverted = colorScheme.invert === 'always' || |
||||
(colorScheme.invert === 'dark' && !lightTheme); |
||||
|
||||
let start = colorScaleInverted ? maxValue : minValue; |
||||
let end = colorScaleInverted ? minValue : maxValue; |
||||
|
||||
return d3.scaleSequential(colorInterpolator).domain([start, end]); |
||||
} |
||||
|
||||
export function getOpacityScale(options, maxValue, minValue = 0) { |
||||
let legendOpacityScale; |
||||
if (options.colorScale === 'linear') { |
||||
legendOpacityScale = d3.scaleLinear() |
||||
.domain([minValue, maxValue]) |
||||
.range([0, 1]); |
||||
} else if (options.colorScale === 'sqrt') { |
||||
legendOpacityScale = d3.scalePow().exponent(options.exponent) |
||||
.domain([minValue, maxValue]) |
||||
.range([0, 1]); |
||||
} |
||||
return legendOpacityScale; |
||||
} |
@ -1,27 +0,0 @@ |
||||
Copyright 2010-2016 Mike Bostock |
||||
All rights reserved. |
||||
|
||||
Redistribution and use in source and binary forms, with or without modification, |
||||
are permitted provided that the following conditions are met: |
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this |
||||
list of conditions and the following disclaimer. |
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice, |
||||
this list of conditions and the following disclaimer in the documentation |
||||
and/or other materials provided with the distribution. |
||||
|
||||
* Neither the name of the author nor the names of contributors may be used to |
||||
endorse or promote products derived from this software without specific prior |
||||
written permission. |
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR |
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON |
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
@ -1,57 +0,0 @@ |
||||
# D3: Data-Driven Documents |
||||
|
||||
<a href="https://d3js.org"><img src="https://d3js.org/logo.svg" align="left" hspace="10" vspace="6"></a> |
||||
|
||||
**D3** (or **D3.js**) is a JavaScript library for visualizing data using web standards. D3 helps you bring data to life using SVG, Canvas and HTML. D3 combines powerful visualization and interaction techniques with a data-driven approach to DOM manipulation, giving you the full capabilities of modern browsers and the freedom to design the right visual interface for your data. |
||||
|
||||
## Resources |
||||
|
||||
* [API Reference](https://github.com/d3/d3/blob/master/API.md) |
||||
* [Release Notes](https://github.com/d3/d3/releases) |
||||
* [Gallery](https://github.com/d3/d3/wiki/Gallery) |
||||
* [Examples](http://bl.ocks.org/mbostock) |
||||
* [Wiki](https://github.com/d3/d3/wiki) |
||||
|
||||
## Installing |
||||
|
||||
If you use npm, `npm install d3`. Otherwise, download the [latest release](https://github.com/d3/d3/releases/latest). The released bundle supports anonymous AMD, CommonJS, and vanilla environments. You can load directly from [d3js.org](https://d3js.org), [CDNJS](https://cdnjs.com/libraries/d3), or [unpkg](https://unpkg.com/d3/). For example: |
||||
|
||||
```html |
||||
<script src="https://d3js.org/d3.v4.js"></script> |
||||
``` |
||||
|
||||
For the minified version: |
||||
|
||||
```html |
||||
<script src="https://d3js.org/d3.v4.min.js"></script> |
||||
``` |
||||
|
||||
You can also use the standalone D3 microlibraries. For example, [d3-selection](https://github.com/d3/d3-selection): |
||||
|
||||
```html |
||||
<script src="https://d3js.org/d3-selection.v1.js"></script> |
||||
``` |
||||
|
||||
D3 is written using [ES2015 modules](http://www.2ality.com/2014/09/es6-modules-final.html). Create a [custom bundle using Rollup](http://bl.ocks.org/mbostock/bb09af4c39c79cffcde4), Webpack, or your preferred bundler. To import D3 into an ES2015 application, either import specific symbols from specific D3 modules: |
||||
|
||||
```js |
||||
import {scaleLinear} from "d3-scale"; |
||||
``` |
||||
|
||||
Or import everything into a namespace (here, `d3`): |
||||
|
||||
```js |
||||
import * as d3 from "d3"; |
||||
``` |
||||
|
||||
In Node: |
||||
|
||||
```js |
||||
var d3 = require("d3"); |
||||
``` |
||||
|
||||
You can also require individual modules and combine them into a `d3` object using [Object.assign](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign): |
||||
|
||||
```js |
||||
var d3 = Object.assign({}, require("d3-format"), require("d3-geo"), require("d3-geo-projection")); |
||||
``` |
File diff suppressed because one or more lines are too long
@ -1,3 +0,0 @@ |
||||
// Import main D3.js module and combine it with another
|
||||
var d3 = Object.assign({}, require('./d3.v4.min.js'), require('./d3-scale-chromatic.min.js')); |
||||
module.exports = d3; |
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue