gridviz 3.0.14 → 3.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/README.md +127 -128
  2. package/dist/gridviz.js +7959 -7860
  3. package/dist/gridviz.min.js +1 -1
  4. package/package.json +74 -74
  5. package/src/button/ZoomButtons.js +101 -96
  6. package/src/core/Dataset.js +154 -157
  7. package/src/core/Drawable.js +60 -61
  8. package/src/core/GeoCanvas.js +409 -370
  9. package/src/core/Layer.js +23 -25
  10. package/src/core/Legend.js +108 -110
  11. package/src/core/Map.js +495 -495
  12. package/src/core/MultiResolutionDataset.js +93 -97
  13. package/src/core/Style.js +98 -99
  14. package/src/dataset/CSVGrid.js +112 -112
  15. package/src/dataset/GeoTIFF.js +122 -123
  16. package/src/dataset/JSGrid.js +55 -54
  17. package/src/dataset/TiledGrid.js +289 -288
  18. package/src/dataset/worker.js +18 -0
  19. package/src/index.js +77 -71
  20. package/src/layer/BackgroundLayer.js +162 -158
  21. package/src/layer/BackgroundLayerImage.js +81 -84
  22. package/src/layer/BackgroundLayerWMS.js +104 -108
  23. package/src/layer/GeoJSONLayer.js +214 -220
  24. package/src/layer/GridLayer.js +148 -157
  25. package/src/layer/LabelLayer.js +194 -193
  26. package/src/legend/ColorCategoryLegend.js +109 -110
  27. package/src/legend/ColorDiscreteLegend.js +100 -102
  28. package/src/legend/ColorLegend.js +115 -118
  29. package/src/legend/OrientationLegend.js +89 -91
  30. package/src/legend/SizeLegend.js +224 -224
  31. package/src/legend/TernaryLegend.js +302 -210
  32. package/src/style/CompositionStyle.js +291 -288
  33. package/src/style/DotDensityStyle.js +133 -134
  34. package/src/style/ImageStyle.js +100 -102
  35. package/src/style/IsoFenceStyle.js +217 -203
  36. package/src/style/JoyPlotStyle.js +127 -128
  37. package/src/style/LegoStyle.js +110 -110
  38. package/src/style/MosaicStyle.js +99 -99
  39. package/src/style/NinjaStarStyle.js +102 -102
  40. package/src/style/PillarStyle.js +207 -208
  41. package/src/style/SegmentStyle.js +105 -105
  42. package/src/style/ShapeColorSizeStyle.js +147 -132
  43. package/src/style/SideCategoryStyle.js +112 -114
  44. package/src/style/SideStyle.js +212 -205
  45. package/src/style/SquareColorCategoryWebGLStyle.js +107 -108
  46. package/src/style/SquareColorWebGLStyle.js +126 -126
  47. package/src/style/StrokeStyle.js +135 -136
  48. package/src/style/TanakaStyle.js +69 -68
  49. package/src/style/TextStyle.js +110 -111
  50. package/src/style/TimeSeriesStyle.js +222 -229
  51. package/src/utils/scale.js +218 -228
  52. package/src/utils/stretching.js +120 -133
  53. package/src/utils/ternary.js +203 -203
  54. package/src/utils/utils.js +58 -63
  55. package/src/utils/webGLUtils.js +72 -70
package/src/core/Layer.js CHANGED
@@ -1,25 +1,23 @@
1
- //@ts-check
2
- 'use strict'
3
-
4
- import { Drawable } from "./Drawable.js"
5
-
6
- /**
7
- * @module core
8
- * @abstract
9
- * @author Joseph Davies, Julien Gaffuri
10
- */
11
- export class Layer extends Drawable {
12
-
13
- /**
14
- * Draw layer.
15
- *
16
- * @param {import("./GeoCanvas").GeoCanvas} geoCanvas The canvas where to draw the layer.
17
- * @param {object} legend
18
- * @returns {void}
19
- * @abstract
20
- */
21
- draw(geoCanvas, legend = undefined) {
22
- throw new Error('Method draw not implemented.')
23
- }
24
-
25
- }
1
+ //@ts-check
2
+ 'use strict'
3
+
4
+ import { Drawable } from './Drawable.js'
5
+
6
+ /**
7
+ * @module core
8
+ * @abstract
9
+ * @author Joseph Davies, Julien Gaffuri
10
+ */
11
+ export class Layer extends Drawable {
12
+ /**
13
+ * Draw layer.
14
+ *
15
+ * @param {import("./GeoCanvas").GeoCanvas} geoCanvas The canvas where to draw the layer.
16
+ * @param {object} legend
17
+ * @returns {void}
18
+ * @abstract
19
+ */
20
+ draw(geoCanvas, legend = undefined) {
21
+ throw new Error('Method draw not implemented.')
22
+ }
23
+ }
@@ -1,110 +1,108 @@
1
- //@ts-check
2
- 'use strict'
3
-
4
- import { select } from 'd3-selection'
5
-
6
- /**
7
- * A legend container.
8
- *
9
- * @module core
10
- * @author Joseph Davies, Julien Gaffuri
11
- */
12
- export class Legend {
13
- /**
14
- * @param {Object} opts
15
- */
16
- constructor(opts) {
17
- opts = opts || {}
18
-
19
- /** @type {string} */
20
- this.id = opts.id
21
-
22
- //TODO stop using it. Use style method below instead.
23
-
24
- /** @type {number} @deprecated */
25
- this.top = opts.top
26
- /** @type {number} @deprecated */
27
- this.bottom = opts.bottom
28
- /** @type {number} @deprecated */
29
- this.left = opts.left
30
- /** @type {number} @deprecated */
31
- this.right = opts.right
32
- /** @type {string} @deprecated */
33
- this.background = opts.background || 'none'
34
- /** @type {string} @deprecated */
35
- this.padding = opts.padding || '5px'
36
- /** @type {string} @deprecated */
37
- this.border = opts.border || '0px'
38
- /** @type {string} @deprecated */
39
- this['border-radius'] = opts['border-radius'] || 'none'
40
- /** @type {string} @deprecated */
41
- this['box-shadow'] = opts['box-shadow'] || 'none'
42
- /** @type {string} @deprecated */
43
- this['font-family'] = opts['font-family'] || 'Helvetica, Arial, sans-serif'
44
- /** @type {string} @deprecated */
45
- //this.width = opts.width
46
- /** @type {string} @deprecated */
47
- //this.height = opts.height
48
-
49
- //the div element
50
- if (this.id) this.div = select('#' + this.id)
51
-
52
- if (!this.div || this.div.empty()) {
53
- this.div = select(document.createElement('div'))
54
- if (this.id) this.div.attr('id', this.id)
55
- }
56
-
57
- //set style
58
- this.div.style('background', this.background)
59
- this.div.style('padding', this.padding)
60
- this.div.style('border', this.border)
61
- this.div.style('border-radius', this['border-radius'])
62
- this.div.style('box-shadow', this['box-shadow'])
63
- this.div.style('font-family', this['font-family'])
64
-
65
- //if (this.width) this.div.style('width', this.width)
66
- //if (this.height) this.div.style('height', this.height)
67
-
68
- //title
69
- this.title = opts.title
70
- this.titleFontSize = opts.titleFontSize || '0.8em'
71
- this.titleFontWeight = opts.titleFontWeight || 'bold'
72
-
73
- //label
74
- this.labelFontSize = opts.labelFontSize || '0.8em'
75
- this.labelUnitText = opts.labelUnitText || ''
76
- this.labelFormat = opts.labelFormat
77
- }
78
-
79
-
80
- makeTitle() {
81
- if (!this.title) return
82
- this.div
83
- .append('div')
84
- .style('font-size', this.titleFontSize)
85
- .style('font-weight', this.titleFontWeight)
86
- .style('margin-bottom', '7px')
87
- .text(this.title)
88
- }
89
-
90
-
91
- /**
92
- * Apply a style to the legend div.
93
- * @param {string} k
94
- * @param {string} v
95
- * @returns {this|string}
96
- */
97
- style(k, v) {
98
- if (arguments.length == 1) return this.div.style(k)
99
- this.div.style(k, v)
100
- return this
101
- }
102
-
103
- /**
104
- * @param {Object} opts
105
- * @abstract
106
- */
107
- update(opts = {}) {
108
- console.error('Legend update not implemented yet.')
109
- }
110
- }
1
+ //@ts-check
2
+ 'use strict'
3
+
4
+ import { select } from 'd3-selection'
5
+
6
+ /**
7
+ * A legend container.
8
+ *
9
+ * @module core
10
+ * @author Joseph Davies, Julien Gaffuri
11
+ */
12
+ export class Legend {
13
+ /**
14
+ * @param {Object} opts
15
+ */
16
+ constructor(opts) {
17
+ opts = opts || {}
18
+
19
+ /** @type {string} */
20
+ this.id = opts.id
21
+
22
+ //TODO stop using it. Use style method below instead.
23
+
24
+ /** @type {number} @deprecated */
25
+ this.top = opts.top
26
+ /** @type {number} @deprecated */
27
+ this.bottom = opts.bottom
28
+ /** @type {number} @deprecated */
29
+ this.left = opts.left
30
+ /** @type {number} @deprecated */
31
+ this.right = opts.right
32
+ /** @type {string} @deprecated */
33
+ this.background = opts.background || 'none'
34
+ /** @type {string} @deprecated */
35
+ this.padding = opts.padding || '5px'
36
+ /** @type {string} @deprecated */
37
+ this.border = opts.border || '0px'
38
+ /** @type {string} @deprecated */
39
+ this['border-radius'] = opts['border-radius'] || 'none'
40
+ /** @type {string} @deprecated */
41
+ this['box-shadow'] = opts['box-shadow'] || 'none'
42
+ /** @type {string} @deprecated */
43
+ this['font-family'] = opts['font-family'] || 'Helvetica, Arial, sans-serif'
44
+ /** @type {string} @deprecated */
45
+ //this.width = opts.width
46
+ /** @type {string} @deprecated */
47
+ //this.height = opts.height
48
+
49
+ //the div element
50
+ if (this.id) this.div = select('#' + this.id)
51
+
52
+ if (!this.div || this.div.empty()) {
53
+ this.div = select(document.createElement('div'))
54
+ if (this.id) this.div.attr('id', this.id)
55
+ }
56
+
57
+ //set style
58
+ this.div.style('background', this.background)
59
+ this.div.style('padding', this.padding)
60
+ this.div.style('border', this.border)
61
+ this.div.style('border-radius', this['border-radius'])
62
+ this.div.style('box-shadow', this['box-shadow'])
63
+ this.div.style('font-family', this['font-family'])
64
+
65
+ //if (this.width) this.div.style('width', this.width)
66
+ //if (this.height) this.div.style('height', this.height)
67
+
68
+ //title
69
+ this.title = opts.title
70
+ this.titleFontSize = opts.titleFontSize || '0.8em'
71
+ this.titleFontWeight = opts.titleFontWeight || 'bold'
72
+
73
+ //label
74
+ this.labelFontSize = opts.labelFontSize || '0.8em'
75
+ this.labelUnitText = opts.labelUnitText || ''
76
+ this.labelFormat = opts.labelFormat
77
+ }
78
+
79
+ makeTitle() {
80
+ if (!this.title) return
81
+ this.div
82
+ .append('div')
83
+ .style('font-size', this.titleFontSize)
84
+ .style('font-weight', this.titleFontWeight)
85
+ .style('margin-bottom', '7px')
86
+ .text(this.title)
87
+ }
88
+
89
+ /**
90
+ * Apply a style to the legend div.
91
+ * @param {string} k
92
+ * @param {string} v
93
+ * @returns {this|string}
94
+ */
95
+ style(k, v) {
96
+ if (arguments.length == 1) return this.div.style(k)
97
+ this.div.style(k, v)
98
+ return this
99
+ }
100
+
101
+ /**
102
+ * @param {Object} opts
103
+ * @abstract
104
+ */
105
+ update(opts = {}) {
106
+ console.error('Legend update not implemented yet.')
107
+ }
108
+ }