@pie-lib/graphing 2.4.2-next.26 → 2.4.3-next.118

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.
package/CHANGELOG.md CHANGED
@@ -3,7 +3,7 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [2.4.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.0...@pie-lib/graphing@2.4.1) (2021-08-04)
6
+ ## [2.4.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.1...@pie-lib/graphing@2.4.2) (2021-08-30)
7
7
 
8
8
  **Note:** Version bump only for package @pie-lib/graphing
9
9
 
@@ -11,216 +11,129 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
11
11
 
12
12
 
13
13
 
14
- # [2.4.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.3.2...@pie-lib/graphing@2.4.0) (2021-07-23)
14
+ ## [2.4.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.0...@pie-lib/graphing@2.4.1) (2021-08-04)
15
15
 
16
+ **Note:** Version bump only for package @pie-lib/graphing
16
17
 
17
- ### Features
18
18
 
19
- * **graphing:** control over whether arrows are displayed PD-483 ([dc9c8f8](https://github.com/pie-framework/pie-lib/commit/dc9c8f8))
20
- * **graphing:** Display point coordinates on hover PD-188 ([ed38fef](https://github.com/pie-framework/pie-lib/commit/ed38fef))
21
19
 
22
20
 
23
21
 
22
+ # [2.4.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.3.2...@pie-lib/graphing@2.4.0) (2021-07-23)
24
23
 
24
+ ### Features
25
+
26
+ - **graphing:** control over whether arrows are displayed PD-483 ([dc9c8f8](https://github.com/pie-framework/pie-lib/commit/dc9c8f8))
27
+ - **graphing:** Display point coordinates on hover PD-188 ([ed38fef](https://github.com/pie-framework/pie-lib/commit/ed38fef))
25
28
 
26
29
  ## [2.3.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.3.0...@pie-lib/graphing@2.3.2) (2021-06-25)
27
30
 
28
31
  **Note:** Version bump only for package @pie-lib/graphing
29
32
 
30
-
31
-
32
-
33
-
34
33
  # [2.3.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.21...@pie-lib/graphing@2.3.0) (2021-06-25)
35
34
 
36
-
37
35
  ### Bug Fixes
38
36
 
39
- * **graphing:** correctly calculate tick values for when step has 3 decimals. Add sanity check for graph label PD-991 ([5b1d85b](https://github.com/pie-framework/pie-lib/commit/5b1d85b))
40
- * **graphing:** Removed non-functional buttons PD-545 ([1884b9d](https://github.com/pie-framework/pie-lib/commit/1884b9d))
41
-
37
+ - **graphing:** correctly calculate tick values for when step has 3 decimals. Add sanity check for graph label PD-991 ([5b1d85b](https://github.com/pie-framework/pie-lib/commit/5b1d85b))
38
+ - **graphing:** Removed non-functional buttons PD-545 ([1884b9d](https://github.com/pie-framework/pie-lib/commit/1884b9d))
42
39
 
43
40
  ### Features
44
41
 
45
- * **graphing:** Added the ability to label shapes other than point - PD-486 ([ad1ea5a](https://github.com/pie-framework/pie-lib/commit/ad1ea5a))
46
- * **graphing:** Disallowed invalid point movements and placements PD-484 ([88ad2c4](https://github.com/pie-framework/pie-lib/commit/88ad2c4))
47
-
48
-
49
-
50
-
42
+ - **graphing:** Added the ability to label shapes other than point - PD-486 ([ad1ea5a](https://github.com/pie-framework/pie-lib/commit/ad1ea5a))
43
+ - **graphing:** Disallowed invalid point movements and placements PD-484 ([88ad2c4](https://github.com/pie-framework/pie-lib/commit/88ad2c4))
51
44
 
52
45
  ## [2.2.21](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.20...@pie-lib/graphing@2.2.21) (2021-04-06)
53
46
 
54
47
  **Note:** Version bump only for package @pie-lib/graphing
55
48
 
56
-
57
-
58
-
59
-
60
49
  ## [2.2.20](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.19...@pie-lib/graphing@2.2.20) (2021-04-02)
61
50
 
62
-
63
51
  ### Bug Fixes
64
52
 
65
- * **graphing:** denote labels as non-readable ([a59a9ba](https://github.com/pie-framework/pie-lib/commit/a59a9ba))
66
- * **graphing:** Modified labels size and bug fixes ([e6dd79a](https://github.com/pie-framework/pie-lib/commit/e6dd79a))
67
-
68
-
69
-
70
-
53
+ - **graphing:** denote labels as non-readable ([a59a9ba](https://github.com/pie-framework/pie-lib/commit/a59a9ba))
54
+ - **graphing:** Modified labels size and bug fixes ([e6dd79a](https://github.com/pie-framework/pie-lib/commit/e6dd79a))
71
55
 
72
56
  ## [2.2.19](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.18...@pie-lib/graphing@2.2.19) (2021-03-22)
73
57
 
74
-
75
58
  ### Bug Fixes
76
59
 
77
- * **graphing:** fix arrow positioning for any angle PD-495 ([33cc936](https://github.com/pie-framework/pie-lib/commit/33cc936))
78
-
79
-
80
-
81
-
60
+ - **graphing:** fix arrow positioning for any angle PD-495 ([33cc936](https://github.com/pie-framework/pie-lib/commit/33cc936))
82
61
 
83
62
  ## [2.2.18](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.17...@pie-lib/graphing@2.2.18) (2021-03-17)
84
63
 
85
-
86
64
  ### Bug Fixes
87
65
 
88
- * **graphing:** ROLLBACK - fix arrow positioning PD-495 ([8af59e7](https://github.com/pie-framework/pie-lib/commit/8af59e7))
89
-
90
-
91
-
92
-
66
+ - **graphing:** ROLLBACK - fix arrow positioning PD-495 ([8af59e7](https://github.com/pie-framework/pie-lib/commit/8af59e7))
93
67
 
94
68
  ## [2.2.17](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.16...@pie-lib/graphing@2.2.17) (2021-03-16)
95
69
 
96
-
97
70
  ### Bug Fixes
98
71
 
99
- * **graphing:** fix arrow positioning PD-495 ([36a87cf](https://github.com/pie-framework/pie-lib/commit/36a87cf))
100
-
101
-
102
-
103
-
72
+ - **graphing:** fix arrow positioning PD-495 ([36a87cf](https://github.com/pie-framework/pie-lib/commit/36a87cf))
104
73
 
105
74
  ## [2.2.16](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.15...@pie-lib/graphing@2.2.16) (2021-03-15)
106
75
 
107
-
108
76
  ### Bug Fixes
109
77
 
110
- * **graphing:** increase width and height for labels, depending on labels length PD-988 ([5f64c47](https://github.com/pie-framework/pie-lib/commit/5f64c47))
111
- * **graphing:** increase width for range axisLabel PD-988 ([e4e5b8f](https://github.com/pie-framework/pie-lib/commit/e4e5b8f))
112
- * **graphing:** set height depending on number of words of axisLabel PD-988 ([210b3af](https://github.com/pie-framework/pie-lib/commit/210b3af))
113
-
114
-
115
-
116
-
78
+ - **graphing:** increase width and height for labels, depending on labels length PD-988 ([5f64c47](https://github.com/pie-framework/pie-lib/commit/5f64c47))
79
+ - **graphing:** increase width for range axisLabel PD-988 ([e4e5b8f](https://github.com/pie-framework/pie-lib/commit/e4e5b8f))
80
+ - **graphing:** set height depending on number of words of axisLabel PD-988 ([210b3af](https://github.com/pie-framework/pie-lib/commit/210b3af))
117
81
 
118
82
  ## [2.2.15](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.14...@pie-lib/graphing@2.2.15) (2021-03-01)
119
83
 
120
-
121
84
  ### Bug Fixes
122
85
 
123
- * **graphing:** positioning of the numeric labels on the x- and y- axes for 0 and -1 PD-529 ([c33c82b](https://github.com/pie-framework/pie-lib/commit/c33c82b))
124
- * **graphing:** where '-n' [x] and '-n' [y] would overlap if positioned normally, only one '-n' label should be displayed and centered PD-529 ([946657f](https://github.com/pie-framework/pie-lib/commit/946657f))
125
-
126
-
127
-
128
-
86
+ - **graphing:** positioning of the numeric labels on the x- and y- axes for 0 and -1 PD-529 ([c33c82b](https://github.com/pie-framework/pie-lib/commit/c33c82b))
87
+ - **graphing:** where '-n' [x] and '-n' [y] would overlap if positioned normally, only one '-n' label should be displayed and centered PD-529 ([946657f](https://github.com/pie-framework/pie-lib/commit/946657f))
129
88
 
130
89
  ## [2.2.14](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.13...@pie-lib/graphing@2.2.14) (2021-03-01)
131
90
 
132
-
133
91
  ### Bug Fixes
134
92
 
135
- * **graphing:** in OT buttons and tool labels are too small, override fontSize of 0.8125rem and fontSize of 0.8125rem PD-24 ([4f58952](https://github.com/pie-framework/pie-lib/commit/4f58952))
136
-
137
-
138
-
139
-
93
+ - **graphing:** in OT buttons and tool labels are too small, override fontSize of 0.8125rem and fontSize of 0.8125rem PD-24 ([4f58952](https://github.com/pie-framework/pie-lib/commit/4f58952))
140
94
 
141
95
  ## [2.2.13](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.12...@pie-lib/graphing@2.2.13) (2021-02-15)
142
96
 
143
-
144
97
  ### Bug Fixes
145
98
 
146
- * **graphing:** reset markups on pushing reset ([3a10924](https://github.com/pie-framework/pie-lib/commit/3a10924))
147
-
148
-
149
-
150
-
99
+ - **graphing:** reset markups on pushing reset ([3a10924](https://github.com/pie-framework/pie-lib/commit/3a10924))
151
100
 
152
101
  ## [2.2.12](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.10...@pie-lib/graphing@2.2.12) (2021-02-15)
153
102
 
154
103
  **Note:** Version bump only for package @pie-lib/graphing
155
104
 
156
-
157
-
158
-
159
-
160
105
  ## [2.2.10](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.9...@pie-lib/graphing@2.2.10) (2021-02-15)
161
106
 
162
107
  **Note:** Version bump only for package @pie-lib/graphing
163
108
 
164
-
165
-
166
-
167
-
168
109
  ## [2.2.9](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.8...@pie-lib/graphing@2.2.9) (2021-02-01)
169
110
 
170
111
  **Note:** Version bump only for package @pie-lib/graphing
171
112
 
172
-
173
-
174
-
175
-
176
113
  ## [2.2.8](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.7...@pie-lib/graphing@2.2.8) (2021-01-28)
177
114
 
178
115
  **Note:** Version bump only for package @pie-lib/graphing
179
116
 
180
-
181
-
182
-
183
-
184
117
  ## [2.2.7](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.6...@pie-lib/graphing@2.2.7) (2021-01-28)
185
118
 
186
119
  **Note:** Version bump only for package @pie-lib/graphing
187
120
 
188
-
189
-
190
-
191
-
192
121
  ## [2.2.6](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.5...@pie-lib/graphing@2.2.6) (2021-01-25)
193
122
 
194
123
  **Note:** Version bump only for package @pie-lib/graphing
195
124
 
196
-
197
-
198
-
199
-
200
125
  ## [2.2.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.4...@pie-lib/graphing@2.2.5) (2021-01-11)
201
126
 
202
127
  **Note:** Version bump only for package @pie-lib/graphing
203
128
 
204
-
205
-
206
-
207
-
208
129
  ## [2.2.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.3...@pie-lib/graphing@2.2.4) (2020-10-29)
209
130
 
210
131
  **Note:** Version bump only for package @pie-lib/graphing
211
132
 
212
-
213
-
214
-
215
-
216
133
  ## [2.2.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.2...@pie-lib/graphing@2.2.3) (2020-10-26)
217
134
 
218
135
  **Note:** Version bump only for package @pie-lib/graphing
219
136
 
220
-
221
-
222
-
223
-
224
137
  ## [2.2.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.2.1...@pie-lib/graphing@2.2.2) (2020-10-26)
225
138
 
226
139
  **Note:** Version bump only for package @pie-lib/graphing
package/lib/axis/arrow.js CHANGED
@@ -61,6 +61,7 @@ function (_React$Component) {
61
61
  classes = _this$props.classes,
62
62
  className = _this$props.className,
63
63
  scale = _this$props.scale;
64
+ var names = (0, _classnames["default"])(classes.root, className);
64
65
  var direction = this.props.direction || 'left';
65
66
  var xv = scale.x(x);
66
67
  var yv = scale.y(y);
@@ -71,22 +72,21 @@ function (_React$Component) {
71
72
  };
72
73
 
73
74
  if (direction === 'left') {
74
- transform = getTransform(xv - 7, yv, 0);
75
+ transform = getTransform(xv - 15, yv, 0);
75
76
  }
76
77
 
77
78
  if (direction === 'right') {
78
- transform = getTransform(xv + 7, yv, 180);
79
+ transform = getTransform(xv + 15, yv, 180);
79
80
  }
80
81
 
81
82
  if (direction === 'up') {
82
- transform = getTransform(xv, yv - 7, 90);
83
+ transform = getTransform(xv, yv - 15, 90);
83
84
  }
84
85
 
85
86
  if (direction === 'down') {
86
- transform = getTransform(xv, yv + 7, 270);
87
+ transform = getTransform(xv, yv + 15, 270);
87
88
  }
88
89
 
89
- var names = (0, _classnames["default"])(classes.root, className);
90
90
  return _react["default"].createElement("path", {
91
91
  d: "m 0,0 8,-5 0,10 -8,-5",
92
92
  transform: transform,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/axis/arrow.jsx"],"names":["style","root","fill","Arrow","props","x","y","classes","className","scale","direction","xv","yv","transform","getTransform","rotate","names","React","Component","propTypes","PropTypes","number","oneOf","object","isRequired","string","types","ScaleType","defaultProps"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,KAAK,GAAG;AACZC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE;AADF;AADM,CAAd;;IAMaC,K;;;;;;;;;;;;;6BACF;AAAA,wBACqC,KAAKC,KAD1C;AAAA,UACCC,CADD,eACCA,CADD;AAAA,UACIC,CADJ,eACIA,CADJ;AAAA,UACOC,OADP,eACOA,OADP;AAAA,UACgBC,SADhB,eACgBA,SADhB;AAAA,UAC2BC,KAD3B,eAC2BA,KAD3B;AAEP,UAAIC,SAAS,GAAG,KAAKN,KAAL,CAAWM,SAAX,IAAwB,MAAxC;AAEA,UAAMC,EAAE,GAAGF,KAAK,CAACJ,CAAN,CAAQA,CAAR,CAAX;AACA,UAAMO,EAAE,GAAGH,KAAK,CAACH,CAAN,CAAQA,CAAR,CAAX;AAEA,UAAIO,SAAS,GAAG,EAAhB;;AAEA,UAAMC,YAAY,GAAG,SAAfA,YAAe,CAACT,CAAD,EAAIC,CAAJ,EAAOS,MAAP;AAAA,mCAA+BV,CAA/B,eAAqCC,CAArC,sBAAkDS,MAAlD;AAAA,OAArB;;AAEA,UAAIL,SAAS,KAAK,MAAlB,EAA0B;AACxBG,QAAAA,SAAS,GAAGC,YAAY,CAACH,EAAE,GAAG,CAAN,EAASC,EAAT,EAAa,CAAb,CAAxB;AACD;;AAED,UAAIF,SAAS,KAAK,OAAlB,EAA2B;AACzBG,QAAAA,SAAS,GAAGC,YAAY,CAACH,EAAE,GAAG,CAAN,EAASC,EAAT,EAAa,GAAb,CAAxB;AACD;;AAED,UAAIF,SAAS,KAAK,IAAlB,EAAwB;AACtBG,QAAAA,SAAS,GAAGC,YAAY,CAACH,EAAD,EAAKC,EAAE,GAAG,CAAV,EAAa,EAAb,CAAxB;AACD;;AAED,UAAIF,SAAS,KAAK,MAAlB,EAA0B;AACxBG,QAAAA,SAAS,GAAGC,YAAY,CAACH,EAAD,EAAKC,EAAE,GAAG,CAAV,EAAa,GAAb,CAAxB;AACD;;AAED,UAAMI,KAAK,GAAG,4BAAWT,OAAO,CAACN,IAAnB,EAAyBO,SAAzB,CAAd;AACA,aAAO;AAAM,QAAA,CAAC,EAAC,uBAAR;AAAgC,QAAA,SAAS,EAAEK,SAA3C;AAAsD,QAAA,SAAS,EAAEG;AAAjE,QAAP;AACD;;;;EA9BwBC,kBAAMC,S;;;AAiCjCf,KAAK,CAACgB,SAAN,GAAkB;AAChBb,EAAAA,CAAC,EAAEc,sBAAUC,MADG;AAEhBhB,EAAAA,CAAC,EAAEe,sBAAUC,MAFG;AAGhBX,EAAAA,SAAS,EAAEU,sBAAUE,KAAV,CAAgB,CAAC,MAAD,EAAS,OAAT,EAAkB,IAAlB,EAAwB,MAAxB,CAAhB,CAHK;AAIhBf,EAAAA,OAAO,EAAEa,sBAAUG,MAAV,CAAiBC,UAJV;AAKhBhB,EAAAA,SAAS,EAAEY,sBAAUK,MALL;AAMhBhB,EAAAA,KAAK,EAAEiB,YAAMC,SAAN,CAAgBH;AANP,CAAlB;AASArB,KAAK,CAACyB,YAAN,GAAqB;AACnBtB,EAAAA,CAAC,EAAE,CADgB;AAEnBD,EAAAA,CAAC,EAAE,CAFgB;AAGnBK,EAAAA,SAAS,EAAE;AAHQ,CAArB;;eAMe,wBAAWV,KAAX,EAAkBG,KAAlB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\n\nconst style = {\n root: {\n fill: 'var(--arrow-color, black)'\n }\n};\n\nexport class Arrow extends React.Component {\n render() {\n const { x, y, classes, className, scale } = this.props;\n let direction = this.props.direction || 'left';\n\n const xv = scale.x(x);\n const yv = scale.y(y);\n\n let transform = '';\n\n const getTransform = (x, y, rotate) => `translate(${x}, ${y}) rotate(${rotate})`;\n\n if (direction === 'left') {\n transform = getTransform(xv - 7, yv, 0);\n }\n\n if (direction === 'right') {\n transform = getTransform(xv + 7, yv, 180);\n }\n\n if (direction === 'up') {\n transform = getTransform(xv, yv - 7, 90);\n }\n\n if (direction === 'down') {\n transform = getTransform(xv, yv + 7, 270);\n }\n\n const names = classNames(classes.root, className);\n return <path d=\"m 0,0 8,-5 0,10 -8,-5\" transform={transform} className={names} />;\n }\n}\n\nArrow.propTypes = {\n y: PropTypes.number,\n x: PropTypes.number,\n direction: PropTypes.oneOf(['left', 'right', 'up', 'down']),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n scale: types.ScaleType.isRequired\n};\n\nArrow.defaultProps = {\n y: 0,\n x: 0,\n direction: 'left'\n};\n\nexport default withStyles(style)(Arrow);\n"],"file":"arrow.js"}
1
+ {"version":3,"sources":["../../src/axis/arrow.jsx"],"names":["style","root","fill","Arrow","props","x","y","classes","className","scale","names","direction","xv","yv","transform","getTransform","rotate","React","Component","propTypes","PropTypes","number","oneOf","object","isRequired","string","types","ScaleType","defaultProps"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAMA,KAAK,GAAG;AACZC,EAAAA,IAAI,EAAE;AACJC,IAAAA,IAAI,EAAE;AADF;AADM,CAAd;;IAMaC,K;;;;;;;;;;;;;6BACF;AAAA,wBACqC,KAAKC,KAD1C;AAAA,UACCC,CADD,eACCA,CADD;AAAA,UACIC,CADJ,eACIA,CADJ;AAAA,UACOC,OADP,eACOA,OADP;AAAA,UACgBC,SADhB,eACgBA,SADhB;AAAA,UAC2BC,KAD3B,eAC2BA,KAD3B;AAEP,UAAMC,KAAK,GAAG,4BAAWH,OAAO,CAACN,IAAnB,EAAyBO,SAAzB,CAAd;AACA,UAAIG,SAAS,GAAG,KAAKP,KAAL,CAAWO,SAAX,IAAwB,MAAxC;AAEA,UAAMC,EAAE,GAAGH,KAAK,CAACJ,CAAN,CAAQA,CAAR,CAAX;AACA,UAAMQ,EAAE,GAAGJ,KAAK,CAACH,CAAN,CAAQA,CAAR,CAAX;AAEA,UAAIQ,SAAS,GAAG,EAAhB;;AAEA,UAAMC,YAAY,GAAG,SAAfA,YAAe,CAACV,CAAD,EAAIC,CAAJ,EAAOU,MAAP;AAAA,mCAA+BX,CAA/B,eAAqCC,CAArC,sBAAkDU,MAAlD;AAAA,OAArB;;AAEA,UAAIL,SAAS,KAAK,MAAlB,EAA0B;AACxBG,QAAAA,SAAS,GAAGC,YAAY,CAACH,EAAE,GAAG,EAAN,EAAUC,EAAV,EAAc,CAAd,CAAxB;AACD;;AAED,UAAIF,SAAS,KAAK,OAAlB,EAA2B;AACzBG,QAAAA,SAAS,GAAGC,YAAY,CAACH,EAAE,GAAG,EAAN,EAAUC,EAAV,EAAc,GAAd,CAAxB;AACD;;AAED,UAAIF,SAAS,KAAK,IAAlB,EAAwB;AACtBG,QAAAA,SAAS,GAAGC,YAAY,CAACH,EAAD,EAAKC,EAAE,GAAG,EAAV,EAAc,EAAd,CAAxB;AACD;;AAED,UAAIF,SAAS,KAAK,MAAlB,EAA0B;AACxBG,QAAAA,SAAS,GAAGC,YAAY,CAACH,EAAD,EAAKC,EAAE,GAAG,EAAV,EAAc,GAAd,CAAxB;AACD;;AAED,aAAO;AAAM,QAAA,CAAC,EAAC,uBAAR;AAAgC,QAAA,SAAS,EAAEC,SAA3C;AAAsD,QAAA,SAAS,EAAEJ;AAAjE,QAAP;AACD;;;;EA9BwBO,kBAAMC,S;;;AAiCjCf,KAAK,CAACgB,SAAN,GAAkB;AAChBb,EAAAA,CAAC,EAAEc,sBAAUC,MADG;AAEhBhB,EAAAA,CAAC,EAAEe,sBAAUC,MAFG;AAGhBV,EAAAA,SAAS,EAAES,sBAAUE,KAAV,CAAgB,CAAC,MAAD,EAAS,OAAT,EAAkB,IAAlB,EAAwB,MAAxB,CAAhB,CAHK;AAIhBf,EAAAA,OAAO,EAAEa,sBAAUG,MAAV,CAAiBC,UAJV;AAKhBhB,EAAAA,SAAS,EAAEY,sBAAUK,MALL;AAMhBhB,EAAAA,KAAK,EAAEiB,YAAMC,SAAN,CAAgBH;AANP,CAAlB;AASArB,KAAK,CAACyB,YAAN,GAAqB;AACnBtB,EAAAA,CAAC,EAAE,CADgB;AAEnBD,EAAAA,CAAC,EAAE,CAFgB;AAGnBM,EAAAA,SAAS,EAAE;AAHQ,CAArB;;eAMe,wBAAWX,KAAX,EAAkBG,KAAlB,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport classNames from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\n\nconst style = {\n root: {\n fill: 'var(--arrow-color, black)'\n }\n};\n\nexport class Arrow extends React.Component {\n render() {\n const { x, y, classes, className, scale } = this.props;\n const names = classNames(classes.root, className);\n let direction = this.props.direction || 'left';\n\n const xv = scale.x(x);\n const yv = scale.y(y);\n\n let transform = '';\n\n const getTransform = (x, y, rotate) => `translate(${x}, ${y}) rotate(${rotate})`;\n\n if (direction === 'left') {\n transform = getTransform(xv - 15, yv, 0);\n }\n\n if (direction === 'right') {\n transform = getTransform(xv + 15, yv, 180);\n }\n\n if (direction === 'up') {\n transform = getTransform(xv, yv - 15, 90);\n }\n\n if (direction === 'down') {\n transform = getTransform(xv, yv + 15, 270);\n }\n\n return <path d=\"m 0,0 8,-5 0,10 -8,-5\" transform={transform} className={names} />;\n }\n}\n\nArrow.propTypes = {\n y: PropTypes.number,\n x: PropTypes.number,\n direction: PropTypes.oneOf(['left', 'right', 'up', 'down']),\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n scale: types.ScaleType.isRequired\n};\n\nArrow.defaultProps = {\n y: 0,\n x: 0,\n direction: 'left'\n};\n\nexport default withStyles(style)(Arrow);\n"],"file":"arrow.js"}
package/lib/axis/axes.js CHANGED
@@ -108,10 +108,10 @@ var tickLabelStyles = {
108
108
  cursor: 'inherit'
109
109
  };
110
110
 
111
- var sharedValues = function sharedValues(firstNegativeX, firstNegativeY, distantceFromOriginToFirstNegativeX, distantceFromOriginToFirstNegativeY, deltaAllowance, dy) {
111
+ var sharedValues = function sharedValues(firstNegativeX, firstNegativeY, distanceFromOriginToFirstNegativeX, distanceFromOriginToFirstNegativeY, deltaAllowance, dy) {
112
112
  var result = [];
113
113
 
114
- if (firstNegativeX === firstNegativeY && distantceFromOriginToFirstNegativeX - deltaAllowance < distantceFromOriginToFirstNegativeY && distantceFromOriginToFirstNegativeY < distantceFromOriginToFirstNegativeX + deltaAllowance && distantceFromOriginToFirstNegativeX - deltaAllowance < dy && dy < distantceFromOriginToFirstNegativeX + deltaAllowance) {
114
+ if (firstNegativeX === firstNegativeY && distanceFromOriginToFirstNegativeX - deltaAllowance < distanceFromOriginToFirstNegativeY && distanceFromOriginToFirstNegativeY < distanceFromOriginToFirstNegativeX + deltaAllowance && distanceFromOriginToFirstNegativeX - deltaAllowance < dy && dy < distanceFromOriginToFirstNegativeX + deltaAllowance) {
115
115
  result.push(firstNegativeX);
116
116
  }
117
117
 
@@ -148,7 +148,7 @@ function (_React$Component) {
148
148
  graphProps = _this$props.graphProps,
149
149
  columnTicksValues = _this$props.columnTicksValues,
150
150
  skipValues = _this$props.skipValues,
151
- distantceFromOriginToFirstNegativeY = _this$props.distantceFromOriginToFirstNegativeY,
151
+ distanceFromOriginToFirstNegativeY = _this$props.distanceFromOriginToFirstNegativeY,
152
152
  dy = _this$props.dy;
153
153
 
154
154
  var _ref = graphProps || {},
@@ -162,12 +162,7 @@ function (_React$Component) {
162
162
  var tickValues = (domain.labelStep || range.labelStep) && domain.min <= 0 ? ['0'].concat(_toConsumableArray(columnTicksValues)) : columnTicksValues; // However, the '0' has to be displayed only if other tick labels (y-axis or x-axis) are displayed
163
163
 
164
164
  var labelProps = function labelProps(label) {
165
- var y = dy;
166
-
167
- if (skipValues && skipValues[0] === label) {
168
- y = distantceFromOriginToFirstNegativeY + 4;
169
- }
170
-
165
+ var y = skipValues && skipValues[0] === label ? distanceFromOriginToFirstNegativeY + 4 : dy;
171
166
  return _objectSpread({}, tickLabelStyles, {
172
167
  textAnchor: 'middle',
173
168
  y: y,
@@ -185,6 +180,7 @@ function (_React$Component) {
185
180
  top: scale.y(0),
186
181
  left: 0,
187
182
  label: domain.label,
183
+ rangePadding: 8,
188
184
  tickClassName: classes.tick,
189
185
  tickFormat: function tickFormat(value) {
190
186
  return value;
@@ -204,7 +200,7 @@ function (_React$Component) {
204
200
  className: classes.arrow,
205
201
  scale: scale
206
202
  }), domain.axisLabel && _react["default"].createElement("foreignObject", {
207
- x: size.width + 10,
203
+ x: size.width + 15,
208
204
  y: scale.y(0) - 10,
209
205
  width: necessaryWidth,
210
206
  height: 20 * necessaryRows
@@ -260,11 +256,7 @@ function (_React$Component2) {
260
256
  var necessaryWidth = range.axisLabel ? (0, _utils.amountToIncreaseWidth)(range.axisLabel.length) : 0;
261
257
 
262
258
  var customTickFormat = function customTickFormat(value) {
263
- if (skipValues && skipValues.indexOf(value) >= 0) {
264
- return '';
265
- }
266
-
267
- return value;
259
+ return skipValues && skipValues.indexOf(value) >= 0 ? '' : value;
268
260
  };
269
261
 
270
262
  return _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_axis.Axis, {
@@ -278,6 +270,7 @@ function (_React$Component2) {
278
270
  labelProps: {
279
271
  'data-pie-readable': false
280
272
  },
273
+ rangePadding: 8,
281
274
  tickLength: 10,
282
275
  tickClassName: classes.tick,
283
276
  tickFormat: customTickFormat,
@@ -306,7 +299,7 @@ function (_React$Component2) {
306
299
  scale: scale
307
300
  }), range.axisLabel && _react["default"].createElement("foreignObject", {
308
301
  x: scale.x(0) - necessaryWidth / 2,
309
- y: -25,
302
+ y: -30,
310
303
  width: necessaryWidth,
311
304
  height: "20"
312
305
  }, _react["default"].createElement(_renderUi.Readable, {
@@ -369,7 +362,7 @@ function (_React$Component3) {
369
362
  return {
370
363
  columnTicksValues: ticks,
371
364
  firstNegativeX: negative,
372
- distantceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative))
365
+ distanceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative))
373
366
  };
374
367
  });
375
368
 
@@ -391,7 +384,7 @@ function (_React$Component3) {
391
384
  return {
392
385
  rowTickValues: ticks,
393
386
  firstNegativeY: negative,
394
- distantceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative))
387
+ distanceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative))
395
388
  };
396
389
  });
397
390
 
@@ -405,34 +398,31 @@ function (_React$Component3) {
405
398
 
406
399
  var _ref5 = graphProps || {},
407
400
  domain = _ref5.domain,
408
- range = _ref5.range; // x
409
-
401
+ range = _ref5.range;
410
402
 
411
403
  var _this$xValues = this.xValues(),
412
404
  columnTicksValues = _this$xValues.columnTicksValues,
413
405
  firstNegativeX = _this$xValues.firstNegativeX,
414
- distantceFromOriginToFirstNegativeX = _this$xValues.distantceFromOriginToFirstNegativeX;
415
-
416
- var result = this.xValues(); // y
406
+ distanceFromOriginToFirstNegativeX = _this$xValues.distanceFromOriginToFirstNegativeX;
417
407
 
418
408
  var _this$yValues = this.yValues(),
419
409
  rowTickValues = _this$yValues.rowTickValues,
420
410
  firstNegativeY = _this$yValues.firstNegativeY,
421
- distantceFromOriginToFirstNegativeY = _this$yValues.distantceFromOriginToFirstNegativeY;
411
+ distanceFromOriginToFirstNegativeY = _this$yValues.distanceFromOriginToFirstNegativeY;
422
412
 
423
413
  var deltaAllowance = 6;
424
414
  var dy = 25;
425
- var skipValues = sharedValues(firstNegativeX, firstNegativeY, distantceFromOriginToFirstNegativeX, distantceFromOriginToFirstNegativeY, deltaAllowance, dy); // each axis has to be displayed only if the domain & range include it
415
+ var skipValues = sharedValues(firstNegativeX, firstNegativeY, distanceFromOriginToFirstNegativeX, distanceFromOriginToFirstNegativeY, deltaAllowance, dy); // each axis has to be displayed only if the domain & range include it
426
416
 
427
417
  return _react["default"].createElement(_react["default"].Fragment, null, range.min <= 0 ? _react["default"].createElement(XAxis, _extends({}, this.props, {
428
418
  skipValues: skipValues,
429
419
  columnTicksValues: columnTicksValues,
430
- distantceFromOriginToFirstNegativeY: distantceFromOriginToFirstNegativeY,
420
+ distanceFromOriginToFirstNegativeY: distanceFromOriginToFirstNegativeY,
431
421
  dy: dy
432
422
  })) : null, domain.min <= 0 ? _react["default"].createElement(YAxis, _extends({}, this.props, {
433
423
  skipValues: skipValues,
434
424
  rowTickValues: rowTickValues,
435
- distantceFromOriginToFirstNegativeX: distantceFromOriginToFirstNegativeX
425
+ distanceFromOriginToFirstNegativeX: distanceFromOriginToFirstNegativeX
436
426
  })) : null);
437
427
  }
438
428
  }]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/axis/axes.jsx"],"names":["AxisPropTypes","includeArrows","PropTypes","object","graphProps","AxisDefaultProps","left","right","up","down","axisStyles","theme","line","stroke","color","primary","strokeWidth","arrow","fill","tick","labelFontSize","fontSize","typography","axisLabelHolder","padding","margin","textAlign","tickLabelStyles","fontFamily","cursor","sharedValues","firstNegativeX","firstNegativeY","distantceFromOriginToFirstNegativeX","distantceFromOriginToFirstNegativeY","deltaAllowance","dy","result","push","firstNegativeValue","interval","find","element","RawXAxis","props","classes","columnTicksValues","skipValues","scale","domain","size","range","tickValues","labelStep","min","labelProps","label","y","textAnchor","dx","necessaryRows","axisLabel","longestWord","necessaryWidth","x","value","max","width","__html","React","Component","types","GraphPropsType","isRequired","XAxis","RawYAxis","rowTickValues","length","customTickFormat","indexOf","height","digits","toLocaleString","YAxis","Axes","ticks","step","negative","Math","abs","xValues","yValues"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Axis } from '@vx/axis';\nimport { types } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport Arrow from './arrow';\nimport { withStyles } from '@material-ui/core';\nimport { countWords, findLongestWord, amountToIncreaseWidth, getTickValues } from '../utils';\nimport { color, Readable } from '@pie-lib/render-ui';\n\nexport const AxisPropTypes = {\n includeArrows: PropTypes.object,\n graphProps: PropTypes.object\n};\n\nconst AxisDefaultProps = {\n includeArrows: {\n left: true,\n right: true,\n up: true,\n down: true\n }\n};\n\nconst axisStyles = theme => ({\n line: {\n stroke: color.primary(),\n strokeWidth: 5\n },\n arrow: {\n fill: color.primary()\n },\n tick: {\n fill: color.primary(),\n '& > line': {\n stroke: color.primary()\n }\n },\n labelFontSize: {\n fontSize: theme.typography.fontSize\n },\n axisLabelHolder: {\n padding: 0,\n margin: 0,\n textAlign: 'center',\n '* > *': {\n margin: 0,\n padding: 0\n },\n fontSize: theme.typography.fontSize\n }\n});\n\nconst tickLabelStyles = {\n fontFamily: 'Roboto',\n fontSize: '14px',\n cursor: 'inherit'\n};\n\nexport const sharedValues = (\n firstNegativeX,\n firstNegativeY,\n distantceFromOriginToFirstNegativeX,\n distantceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy\n) => {\n let result = [];\n\n if (\n firstNegativeX === firstNegativeY &&\n distantceFromOriginToFirstNegativeX - deltaAllowance < distantceFromOriginToFirstNegativeY &&\n distantceFromOriginToFirstNegativeY < distantceFromOriginToFirstNegativeX + deltaAllowance &&\n distantceFromOriginToFirstNegativeX - deltaAllowance < dy &&\n dy < distantceFromOriginToFirstNegativeX + deltaAllowance\n ) {\n result.push(firstNegativeX);\n }\n\n return result;\n};\n\nexport const firstNegativeValue = interval => (interval || []).find(element => element < 0);\n\nexport class RawXAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const {\n includeArrows,\n classes,\n graphProps,\n columnTicksValues,\n skipValues,\n distantceFromOriginToFirstNegativeY,\n dy\n } = this.props;\n const { scale, domain, size, range } = graphProps || {};\n\n // Having 0 as a number in columnTicksValues does not make 0 to show up\n // so we use this trick, by defining it as a string:\n const tickValues =\n (domain.labelStep || range.labelStep) && domain.min <= 0\n ? ['0', ...columnTicksValues]\n : columnTicksValues;\n // However, the '0' has to be displayed only if other tick labels (y-axis or x-axis) are displayed\n\n const labelProps = label => {\n let y = dy;\n\n if (skipValues && skipValues[0] === label) {\n y = distantceFromOriginToFirstNegativeY + 4;\n }\n\n return {\n ...tickLabelStyles,\n textAnchor: 'middle',\n y: y,\n dx: label === '0' ? -10 : 0,\n dy: label === '0' ? -7 : 0\n };\n };\n\n const necessaryRows = countWords(domain.axisLabel);\n const longestWord = findLongestWord(domain.axisLabel);\n const necessaryWidth = amountToIncreaseWidth(longestWord);\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n scale={scale.x}\n top={scale.y(0)}\n left={0}\n label={domain.label}\n tickClassName={classes.tick}\n tickFormat={value => value}\n tickLabelProps={labelProps}\n tickValues={tickValues}\n />\n {includeArrows && includeArrows.left && (\n <Arrow direction=\"left\" x={domain.min} y={0} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.right && (\n <Arrow direction=\"right\" x={domain.max} y={0} className={classes.arrow} scale={scale} />\n )}\n {domain.axisLabel && (\n <foreignObject\n x={size.width + 10}\n y={scale.y(0) - 10}\n width={necessaryWidth}\n height={20 * necessaryRows}\n >\n <div\n dangerouslySetInnerHTML={{ __html: domain.axisLabel }}\n className={classes.labelFontSize}\n />\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst XAxis = withStyles(axisStyles)(RawXAxis);\n\nexport class RawYAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n graphProps: types.GraphPropsType.isRequired\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const { classes, includeArrows, graphProps, skipValues, rowTickValues } = this.props;\n const { scale, range, size } = graphProps || {};\n\n const necessaryWidth = range.axisLabel ? amountToIncreaseWidth(range.axisLabel.length) : 0;\n\n const customTickFormat = value => {\n if (skipValues && skipValues.indexOf(value) >= 0) {\n return '';\n }\n\n return value;\n };\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n orientation={'left'}\n scale={scale.y}\n top={0}\n height={size.height}\n left={scale.x(0)}\n label={range.label}\n labelProps={{ 'data-pie-readable': false }}\n tickLength={10}\n tickClassName={classes.tick}\n tickFormat={customTickFormat}\n tickLabelProps={value => {\n const digits = value.toLocaleString().length || 1;\n return {\n ...tickLabelStyles,\n dy: 4,\n dx: -8 - digits * 5,\n 'data-pie-readable': false\n };\n }}\n hideZero={true}\n tickTextAnchor={'bottom'}\n tickValues={rowTickValues}\n />\n\n {includeArrows && includeArrows.down && (\n <Arrow direction=\"down\" x={0} y={range.min} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.up && (\n <Arrow direction=\"up\" x={0} y={range.max} className={classes.arrow} scale={scale} />\n )}\n {range.axisLabel && (\n <foreignObject\n x={scale.x(0) - necessaryWidth / 2}\n y={-25}\n width={necessaryWidth}\n height=\"20\"\n >\n <Readable false>\n <div\n dangerouslySetInnerHTML={{ __html: range.axisLabel }}\n className={classes.axisLabelHolder}\n />\n </Readable>\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\nconst YAxis = withStyles(axisStyles)(RawYAxis);\n\nexport default class Axes extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired\n };\n static defaultProps = AxisDefaultProps;\n\n xValues = () => {\n const { graphProps } = this.props;\n const { scale, domain } = graphProps || {};\n if (!domain || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...domain, step: domain.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n columnTicksValues: ticks,\n firstNegativeX: negative,\n distantceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative))\n };\n };\n\n yValues = () => {\n const { graphProps } = this.props;\n const { scale, range } = graphProps || {};\n if (!range || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...range, step: range.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n rowTickValues: ticks,\n firstNegativeY: negative,\n distantceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative))\n };\n };\n\n render() {\n const { graphProps } = this.props;\n const { domain, range } = graphProps || {};\n\n // x\n const {\n columnTicksValues,\n firstNegativeX,\n distantceFromOriginToFirstNegativeX\n } = this.xValues();\n const result = this.xValues();\n\n // y\n const { rowTickValues, firstNegativeY, distantceFromOriginToFirstNegativeY } = this.yValues();\n\n const deltaAllowance = 6;\n const dy = 25;\n\n const skipValues = sharedValues(\n firstNegativeX,\n firstNegativeY,\n distantceFromOriginToFirstNegativeX,\n distantceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy\n );\n\n // each axis has to be displayed only if the domain & range include it\n return (\n <React.Fragment>\n {range.min <= 0 ? (\n <XAxis\n {...this.props}\n skipValues={skipValues}\n columnTicksValues={columnTicksValues}\n distantceFromOriginToFirstNegativeY={distantceFromOriginToFirstNegativeY}\n dy={dy}\n />\n ) : null}\n {domain.min <= 0 ? (\n <YAxis\n {...this.props}\n skipValues={skipValues}\n rowTickValues={rowTickValues}\n distantceFromOriginToFirstNegativeX={distantceFromOriginToFirstNegativeX}\n />\n ) : null}\n </React.Fragment>\n );\n }\n}\n"],"file":"axes.js"}
1
+ {"version":3,"sources":["../../src/axis/axes.jsx"],"names":["AxisPropTypes","includeArrows","PropTypes","object","graphProps","AxisDefaultProps","left","right","up","down","axisStyles","theme","line","stroke","color","primary","strokeWidth","arrow","fill","tick","labelFontSize","fontSize","typography","axisLabelHolder","padding","margin","textAlign","tickLabelStyles","fontFamily","cursor","sharedValues","firstNegativeX","firstNegativeY","distanceFromOriginToFirstNegativeX","distanceFromOriginToFirstNegativeY","deltaAllowance","dy","result","push","firstNegativeValue","interval","find","element","RawXAxis","props","classes","columnTicksValues","skipValues","scale","domain","size","range","tickValues","labelStep","min","labelProps","label","y","textAnchor","dx","necessaryRows","axisLabel","longestWord","necessaryWidth","x","value","max","width","__html","React","Component","types","GraphPropsType","isRequired","XAxis","RawYAxis","rowTickValues","length","customTickFormat","indexOf","height","digits","toLocaleString","YAxis","Axes","ticks","step","negative","Math","abs","xValues","yValues"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Axis } from '@vx/axis';\nimport { types } from '@pie-lib/plot';\nimport PropTypes from 'prop-types';\nimport Arrow from './arrow';\nimport { withStyles } from '@material-ui/core';\nimport { countWords, findLongestWord, amountToIncreaseWidth, getTickValues } from '../utils';\nimport { color, Readable } from '@pie-lib/render-ui';\n\nexport const AxisPropTypes = {\n includeArrows: PropTypes.object,\n graphProps: PropTypes.object\n};\n\nconst AxisDefaultProps = {\n includeArrows: {\n left: true,\n right: true,\n up: true,\n down: true\n }\n};\n\nconst axisStyles = theme => ({\n line: {\n stroke: color.primary(),\n strokeWidth: 5\n },\n arrow: {\n fill: color.primary()\n },\n tick: {\n fill: color.primary(),\n '& > line': {\n stroke: color.primary()\n }\n },\n labelFontSize: {\n fontSize: theme.typography.fontSize\n },\n axisLabelHolder: {\n padding: 0,\n margin: 0,\n textAlign: 'center',\n '* > *': {\n margin: 0,\n padding: 0\n },\n fontSize: theme.typography.fontSize\n }\n});\n\nconst tickLabelStyles = {\n fontFamily: 'Roboto',\n fontSize: '14px',\n cursor: 'inherit'\n};\n\nexport const sharedValues = (\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy\n) => {\n let result = [];\n\n if (\n firstNegativeX === firstNegativeY &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < distanceFromOriginToFirstNegativeY &&\n distanceFromOriginToFirstNegativeY < distanceFromOriginToFirstNegativeX + deltaAllowance &&\n distanceFromOriginToFirstNegativeX - deltaAllowance < dy &&\n dy < distanceFromOriginToFirstNegativeX + deltaAllowance\n ) {\n result.push(firstNegativeX);\n }\n\n return result;\n};\n\nexport const firstNegativeValue = interval => (interval || []).find(element => element < 0);\n\nexport class RawXAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const {\n includeArrows,\n classes,\n graphProps,\n columnTicksValues,\n skipValues,\n distanceFromOriginToFirstNegativeY,\n dy\n } = this.props;\n const { scale, domain, size, range } = graphProps || {};\n\n // Having 0 as a number in columnTicksValues does not make 0 to show up\n // so we use this trick, by defining it as a string:\n const tickValues =\n (domain.labelStep || range.labelStep) && domain.min <= 0\n ? ['0', ...columnTicksValues]\n : columnTicksValues;\n // However, the '0' has to be displayed only if other tick labels (y-axis or x-axis) are displayed\n\n const labelProps = label => {\n const y = skipValues && skipValues[0] === label ? distanceFromOriginToFirstNegativeY + 4 : dy;\n\n return {\n ...tickLabelStyles,\n textAnchor: 'middle',\n y: y,\n dx: label === '0' ? -10 : 0,\n dy: label === '0' ? -7 : 0\n };\n };\n\n const necessaryRows = countWords(domain.axisLabel);\n const longestWord = findLongestWord(domain.axisLabel);\n const necessaryWidth = amountToIncreaseWidth(longestWord);\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n scale={scale.x}\n top={scale.y(0)}\n left={0}\n label={domain.label}\n rangePadding={8}\n tickClassName={classes.tick}\n tickFormat={value => value}\n tickLabelProps={labelProps}\n tickValues={tickValues}\n />\n {includeArrows && includeArrows.left && (\n <Arrow direction=\"left\" x={domain.min} y={0} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.right && (\n <Arrow direction=\"right\" x={domain.max} y={0} className={classes.arrow} scale={scale} />\n )}\n {domain.axisLabel && (\n <foreignObject\n x={size.width + 15}\n y={scale.y(0) - 10}\n width={necessaryWidth}\n height={20 * necessaryRows}\n >\n <div\n dangerouslySetInnerHTML={{ __html: domain.axisLabel }}\n className={classes.labelFontSize}\n />\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst XAxis = withStyles(axisStyles)(RawXAxis);\n\nexport class RawYAxis extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n graphProps: types.GraphPropsType.isRequired\n };\n static defaultProps = AxisDefaultProps;\n\n render() {\n const { classes, includeArrows, graphProps, skipValues, rowTickValues } = this.props;\n const { scale, range, size } = graphProps || {};\n\n const necessaryWidth = range.axisLabel ? amountToIncreaseWidth(range.axisLabel.length) : 0;\n\n const customTickFormat = value => (skipValues && skipValues.indexOf(value) >= 0 ? '' : value);\n\n return (\n <React.Fragment>\n <Axis\n axisLineClassName={classes.line}\n orientation={'left'}\n scale={scale.y}\n top={0}\n height={size.height}\n left={scale.x(0)}\n label={range.label}\n labelProps={{ 'data-pie-readable': false }}\n rangePadding={8}\n tickLength={10}\n tickClassName={classes.tick}\n tickFormat={customTickFormat}\n tickLabelProps={value => {\n const digits = value.toLocaleString().length || 1;\n return {\n ...tickLabelStyles,\n dy: 4,\n dx: -8 - digits * 5,\n 'data-pie-readable': false\n };\n }}\n hideZero={true}\n tickTextAnchor={'bottom'}\n tickValues={rowTickValues}\n />\n\n {includeArrows && includeArrows.down && (\n <Arrow direction=\"down\" x={0} y={range.min} className={classes.arrow} scale={scale} />\n )}\n {includeArrows && includeArrows.up && (\n <Arrow direction=\"up\" x={0} y={range.max} className={classes.arrow} scale={scale} />\n )}\n {range.axisLabel && (\n <foreignObject\n x={scale.x(0) - necessaryWidth / 2}\n y={-30}\n width={necessaryWidth}\n height=\"20\"\n >\n <Readable false>\n <div\n dangerouslySetInnerHTML={{ __html: range.axisLabel }}\n className={classes.axisLabelHolder}\n />\n </Readable>\n </foreignObject>\n )}\n </React.Fragment>\n );\n }\n}\n\nconst YAxis = withStyles(axisStyles)(RawYAxis);\n\nexport default class Axes extends React.Component {\n static propTypes = {\n ...AxisPropTypes,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired\n };\n static defaultProps = AxisDefaultProps;\n\n xValues = () => {\n const { graphProps } = this.props;\n const { scale, domain } = graphProps || {};\n\n if (!domain || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...domain, step: domain.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n columnTicksValues: ticks,\n firstNegativeX: negative,\n distanceFromOriginToFirstNegativeX: Math.abs(scale.y(0) - scale.y(negative))\n };\n };\n\n yValues = () => {\n const { graphProps } = this.props;\n const { scale, range } = graphProps || {};\n\n if (!range || !scale) {\n return;\n }\n\n const ticks = getTickValues({ ...range, step: range.labelStep });\n const negative = firstNegativeValue(ticks);\n\n return {\n rowTickValues: ticks,\n firstNegativeY: negative,\n distanceFromOriginToFirstNegativeY: Math.abs(scale.x(0) - scale.x(negative))\n };\n };\n\n render() {\n const { graphProps } = this.props;\n const { domain, range } = graphProps || {};\n const {\n columnTicksValues,\n firstNegativeX,\n distanceFromOriginToFirstNegativeX\n } = this.xValues();\n const { rowTickValues, firstNegativeY, distanceFromOriginToFirstNegativeY } = this.yValues();\n const deltaAllowance = 6;\n const dy = 25;\n\n const skipValues = sharedValues(\n firstNegativeX,\n firstNegativeY,\n distanceFromOriginToFirstNegativeX,\n distanceFromOriginToFirstNegativeY,\n deltaAllowance,\n dy\n );\n\n // each axis has to be displayed only if the domain & range include it\n return (\n <React.Fragment>\n {range.min <= 0 ? (\n <XAxis\n {...this.props}\n skipValues={skipValues}\n columnTicksValues={columnTicksValues}\n distanceFromOriginToFirstNegativeY={distanceFromOriginToFirstNegativeY}\n dy={dy}\n />\n ) : null}\n {domain.min <= 0 ? (\n <YAxis\n {...this.props}\n skipValues={skipValues}\n rowTickValues={rowTickValues}\n distanceFromOriginToFirstNegativeX={distanceFromOriginToFirstNegativeX}\n />\n ) : null}\n </React.Fragment>\n );\n }\n}\n"],"file":"axes.js"}
package/lib/graph.js CHANGED
@@ -86,10 +86,10 @@ exports.graphPropTypes = graphPropTypes;
86
86
 
87
87
  var getMaskSize = function getMaskSize(size) {
88
88
  return {
89
- x: -10,
90
- y: -10,
91
- width: size.width + 20,
92
- height: size.height + 20
89
+ x: -23,
90
+ y: -23,
91
+ width: size.width + 46,
92
+ height: size.height + 46
93
93
  };
94
94
  };
95
95
 
package/lib/graph.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graph.jsx"],"names":["log","graphPropTypes","axesSettings","PropTypes","shape","AxisPropTypes","backgroundMarks","array","className","string","domain","types","DomainType","labels","LabelType","labelModeEnabled","bool","coordinatesOnHover","marks","onChangeMarks","func","range","size","width","number","isRequired","height","title","tools","getMaskSize","x","y","removeBuildingToolIfCurrentToolDiffers","currentTool","buildingMark","filter","m","building","newMarks","type","index","findIndex","splice","Graph","setState","labelNode","oldMark","newMark","props","markData","updatedMark","complete","updateMarks","existing","update","addIfMissing","mark","tool","find","t","Component","addPoint","undefined","graphProps","rootNode","maskSize","common","r","onBgClick","map","getComponent","markType","disabled","changeMark","completeMark","point","startDrag","stopDrag","state","pointerEvents","React","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { Root, types, createGraphProps } from '@pie-lib/plot';\nimport debug from 'debug';\n\nimport Labels from './labels';\nimport { Axes, AxisPropTypes } from './axis';\nimport Grid from './grid';\nimport { LabelType } from './labels';\nimport Bg from './bg';\n\nconst log = debug('pie-lib:graphing:graph');\n\nexport const graphPropTypes = {\n axesSettings: PropTypes.shape(AxisPropTypes),\n backgroundMarks: PropTypes.array,\n className: PropTypes.string,\n domain: types.DomainType,\n labels: PropTypes.shape(LabelType),\n labelModeEnabled: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n marks: PropTypes.array,\n onChangeMarks: PropTypes.func,\n range: types.DomainType,\n size: PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired\n }),\n title: PropTypes.string,\n tools: PropTypes.array\n};\n\nconst getMaskSize = size => ({\n x: -10,\n y: -10,\n width: size.width + 20,\n height: size.height + 20\n});\n\nexport const removeBuildingToolIfCurrentToolDiffers = ({ marks, currentTool }) => {\n const buildingMark = marks.filter(m => m.building)[0];\n let newMarks = cloneDeep(marks);\n\n if (buildingMark && currentTool && buildingMark.type !== currentTool.type) {\n const index = newMarks.findIndex(m => isEqual(m, buildingMark));\n\n if (index >= 0) {\n newMarks.splice(index, 1);\n }\n }\n\n return newMarks;\n};\n\nexport class Graph extends React.Component {\n static propTypes = {\n ...graphPropTypes,\n currentTool: PropTypes.object\n };\n\n static defaultProps = {\n onChangeMarks: () => {}\n };\n\n state = {};\n\n componentDidMount = () => this.setState({ labelNode: this.labelNode });\n\n changeMark = (oldMark, newMark) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n const index = newMarks.findIndex(m => isEqual(m, oldMark));\n\n if (index >= 0) {\n newMarks.splice(index, 1, newMark);\n\n onChangeMarks(newMarks);\n }\n };\n\n completeMark = markData => {\n const { currentTool, marks } = this.props;\n const buildingMark = marks.filter(m => m.building)[0];\n\n if (!buildingMark || !currentTool) return;\n\n const updatedMark = currentTool.complete(buildingMark, markData);\n\n this.updateMarks(buildingMark, updatedMark);\n };\n\n updateMarks = (existing, update, addIfMissing = false) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n const index = newMarks.findIndex(m => isEqual(m, existing));\n\n if (index >= 0) {\n newMarks.splice(index, 1, update);\n\n onChangeMarks(newMarks);\n } else if (addIfMissing) {\n onChangeMarks([...newMarks, update]);\n }\n };\n\n getComponent = mark => {\n if (!mark) return null;\n\n const tool = (this.props.tools || []).find(t => t.type === mark.type);\n\n return (tool && tool.Component) || null;\n };\n\n onBgClick = ({ x, y }, mark) => {\n log('[onBgClick] x,y: ', x, y);\n\n const { labelModeEnabled, currentTool, marks } = this.props;\n\n if (labelModeEnabled || !currentTool || mark) {\n return;\n }\n\n const buildingMark = marks.filter(m => m.building)[0];\n let updatedMark;\n\n // if the building mark has a different type, we just replace it\n if (buildingMark && currentTool && buildingMark.type === currentTool.type) {\n updatedMark = currentTool.addPoint({ x, y }, { ...buildingMark });\n } else {\n updatedMark = currentTool.addPoint({ x, y }, undefined);\n }\n\n this.updateMarks(buildingMark, updatedMark, true);\n };\n\n render() {\n const {\n axesSettings,\n currentTool,\n coordinatesOnHover,\n size,\n domain,\n backgroundMarks,\n range,\n title,\n labels,\n labelModeEnabled\n } = this.props;\n let { marks } = this.props;\n\n const graphProps = createGraphProps(domain, range, size, () => this.rootNode);\n const maskSize = getMaskSize(size);\n const common = { graphProps, labelModeEnabled };\n\n marks = removeBuildingToolIfCurrentToolDiffers({ marks: marks || [], currentTool });\n\n return (\n <Root\n // left side requires an extra padding of 10, in order to fit next to tick labels like 1.5, 1.55...\n paddingLeft={60}\n rootRef={r => (this.rootNode = r)}\n title={title}\n {...common}\n >\n <Grid {...common} />\n <Axes {...axesSettings} {...common} />\n <Bg {...size} onClick={this.onBgClick} {...common} />\n <Labels value={labels} {...common} />\n <mask id=\"myMask\">\n <rect {...maskSize} fill=\"white\" /> {/* TODO hardcoded color */}\n </mask>\n\n <g id=\"marks\" mask=\"url('#myMask')\">\n {(backgroundMarks || []).map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}-bg`}\n mark={{ ...m, disabled: true }}\n {...common}\n />\n );\n })}\n\n {marks.map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}`}\n mark={m}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.changeMark}\n onComplete={this.completeMark}\n onClick={point => this.onBgClick(point, m)}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={this.state.labelNode}\n isToolActive={currentTool && markType === currentTool.type}\n {...common}\n />\n );\n })}\n\n <foreignObject\n ref={labelNode => (this.labelNode = labelNode)}\n x=\"0\"\n y=\"0\"\n {...size}\n style={{ pointerEvents: 'none' }}\n />\n </g>\n </Root>\n );\n }\n}\n\nexport default Graph;\n"],"file":"graph.js"}
1
+ {"version":3,"sources":["../src/graph.jsx"],"names":["log","graphPropTypes","axesSettings","PropTypes","shape","AxisPropTypes","backgroundMarks","array","className","string","domain","types","DomainType","labels","LabelType","labelModeEnabled","bool","coordinatesOnHover","marks","onChangeMarks","func","range","size","width","number","isRequired","height","title","tools","getMaskSize","x","y","removeBuildingToolIfCurrentToolDiffers","currentTool","buildingMark","filter","m","building","newMarks","type","index","findIndex","splice","Graph","setState","labelNode","oldMark","newMark","props","markData","updatedMark","complete","updateMarks","existing","update","addIfMissing","mark","tool","find","t","Component","addPoint","undefined","graphProps","rootNode","maskSize","common","r","onBgClick","map","getComponent","markType","disabled","changeMark","completeMark","point","startDrag","stopDrag","state","pointerEvents","React","object"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport cloneDeep from 'lodash/cloneDeep';\nimport { Root, types, createGraphProps } from '@pie-lib/plot';\nimport debug from 'debug';\n\nimport Labels from './labels';\nimport { Axes, AxisPropTypes } from './axis';\nimport Grid from './grid';\nimport { LabelType } from './labels';\nimport Bg from './bg';\n\nconst log = debug('pie-lib:graphing:graph');\n\nexport const graphPropTypes = {\n axesSettings: PropTypes.shape(AxisPropTypes),\n backgroundMarks: PropTypes.array,\n className: PropTypes.string,\n domain: types.DomainType,\n labels: PropTypes.shape(LabelType),\n labelModeEnabled: PropTypes.bool,\n coordinatesOnHover: PropTypes.bool,\n marks: PropTypes.array,\n onChangeMarks: PropTypes.func,\n range: types.DomainType,\n size: PropTypes.shape({\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired\n }),\n title: PropTypes.string,\n tools: PropTypes.array\n};\n\nconst getMaskSize = size => ({\n x: -23,\n y: -23,\n width: size.width + 46,\n height: size.height + 46\n});\n\nexport const removeBuildingToolIfCurrentToolDiffers = ({ marks, currentTool }) => {\n const buildingMark = marks.filter(m => m.building)[0];\n let newMarks = cloneDeep(marks);\n\n if (buildingMark && currentTool && buildingMark.type !== currentTool.type) {\n const index = newMarks.findIndex(m => isEqual(m, buildingMark));\n\n if (index >= 0) {\n newMarks.splice(index, 1);\n }\n }\n\n return newMarks;\n};\n\nexport class Graph extends React.Component {\n static propTypes = {\n ...graphPropTypes,\n currentTool: PropTypes.object\n };\n\n static defaultProps = {\n onChangeMarks: () => {}\n };\n\n state = {};\n\n componentDidMount = () => this.setState({ labelNode: this.labelNode });\n\n changeMark = (oldMark, newMark) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n const index = newMarks.findIndex(m => isEqual(m, oldMark));\n\n if (index >= 0) {\n newMarks.splice(index, 1, newMark);\n\n onChangeMarks(newMarks);\n }\n };\n\n completeMark = markData => {\n const { currentTool, marks } = this.props;\n const buildingMark = marks.filter(m => m.building)[0];\n\n if (!buildingMark || !currentTool) return;\n\n const updatedMark = currentTool.complete(buildingMark, markData);\n\n this.updateMarks(buildingMark, updatedMark);\n };\n\n updateMarks = (existing, update, addIfMissing = false) => {\n const { onChangeMarks, marks } = this.props;\n let newMarks = cloneDeep(marks);\n\n const index = newMarks.findIndex(m => isEqual(m, existing));\n\n if (index >= 0) {\n newMarks.splice(index, 1, update);\n\n onChangeMarks(newMarks);\n } else if (addIfMissing) {\n onChangeMarks([...newMarks, update]);\n }\n };\n\n getComponent = mark => {\n if (!mark) return null;\n\n const tool = (this.props.tools || []).find(t => t.type === mark.type);\n\n return (tool && tool.Component) || null;\n };\n\n onBgClick = ({ x, y }, mark) => {\n log('[onBgClick] x,y: ', x, y);\n\n const { labelModeEnabled, currentTool, marks } = this.props;\n\n if (labelModeEnabled || !currentTool || mark) {\n return;\n }\n\n const buildingMark = marks.filter(m => m.building)[0];\n let updatedMark;\n\n // if the building mark has a different type, we just replace it\n if (buildingMark && currentTool && buildingMark.type === currentTool.type) {\n updatedMark = currentTool.addPoint({ x, y }, { ...buildingMark });\n } else {\n updatedMark = currentTool.addPoint({ x, y }, undefined);\n }\n\n this.updateMarks(buildingMark, updatedMark, true);\n };\n\n render() {\n const {\n axesSettings,\n currentTool,\n coordinatesOnHover,\n size,\n domain,\n backgroundMarks,\n range,\n title,\n labels,\n labelModeEnabled\n } = this.props;\n let { marks } = this.props;\n\n const graphProps = createGraphProps(domain, range, size, () => this.rootNode);\n const maskSize = getMaskSize(size);\n const common = { graphProps, labelModeEnabled };\n\n marks = removeBuildingToolIfCurrentToolDiffers({ marks: marks || [], currentTool });\n\n return (\n <Root\n // left side requires an extra padding of 10, in order to fit next to tick labels like 1.5, 1.55...\n paddingLeft={60}\n rootRef={r => (this.rootNode = r)}\n title={title}\n {...common}\n >\n <Grid {...common} />\n <Axes {...axesSettings} {...common} />\n <Bg {...size} onClick={this.onBgClick} {...common} />\n <Labels value={labels} {...common} />\n <mask id=\"myMask\">\n <rect {...maskSize} fill=\"white\" /> {/* TODO hardcoded color */}\n </mask>\n\n <g id=\"marks\" mask=\"url('#myMask')\">\n {(backgroundMarks || []).map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}-bg`}\n mark={{ ...m, disabled: true }}\n {...common}\n />\n );\n })}\n\n {marks.map((m, index) => {\n const Component = this.getComponent(m);\n const markType = m.type;\n\n return (\n <Component\n key={`${markType}-${index}`}\n mark={m}\n coordinatesOnHover={coordinatesOnHover}\n onChange={this.changeMark}\n onComplete={this.completeMark}\n onClick={point => this.onBgClick(point, m)}\n onDragStart={this.startDrag}\n onDragStop={this.stopDrag}\n labelNode={this.state.labelNode}\n isToolActive={currentTool && markType === currentTool.type}\n {...common}\n />\n );\n })}\n\n <foreignObject\n ref={labelNode => (this.labelNode = labelNode)}\n x=\"0\"\n y=\"0\"\n {...size}\n style={{ pointerEvents: 'none' }}\n />\n </g>\n </Root>\n );\n }\n}\n\nexport default Graph;\n"],"file":"graph.js"}