@pie-lib/graphing 2.14.22-next.0 → 2.15.0-beta.1
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 +16 -75
- package/NEXT.CHANGELOG.json +1 -0
- package/lib/axis/axes.js +5 -5
- package/lib/axis/axes.js.map +1 -1
- package/lib/container/index.js +1 -4
- package/lib/container/index.js.map +1 -1
- package/lib/coordinates-label.js +5 -3
- package/lib/coordinates-label.js.map +1 -1
- package/lib/graph-with-controls.js +8 -15
- package/lib/graph-with-controls.js.map +1 -1
- package/lib/graph.js +29 -12
- package/lib/graph.js.map +1 -1
- package/lib/grid.js +6 -14
- package/lib/grid.js.map +1 -1
- package/lib/index.js +8 -0
- package/lib/index.js.map +1 -1
- package/lib/key-legend.js +246 -0
- package/lib/key-legend.js.map +1 -0
- package/lib/label-svg-icon.js +56 -0
- package/lib/label-svg-icon.js.map +1 -0
- package/lib/labels.js +2 -1
- package/lib/labels.js.map +1 -1
- package/lib/mark-label.js +167 -56
- package/lib/mark-label.js.map +1 -1
- package/lib/toggle-bar.js +3 -4
- package/lib/toggle-bar.js.map +1 -1
- package/lib/tool-menu.js +2 -22
- package/lib/tool-menu.js.map +1 -1
- package/lib/tools/absolute/component.js +35 -0
- package/lib/tools/absolute/component.js.map +1 -0
- package/lib/tools/absolute/index.js +63 -0
- package/lib/tools/absolute/index.js.map +1 -0
- package/lib/tools/circle/bg-circle.js +4 -3
- package/lib/tools/circle/bg-circle.js.map +1 -1
- package/lib/tools/circle/component.js +34 -15
- package/lib/tools/circle/component.js.map +1 -1
- package/lib/tools/exponential/component.js +34 -0
- package/lib/tools/exponential/component.js.map +1 -0
- package/lib/tools/exponential/index.js +71 -0
- package/lib/tools/exponential/index.js.map +1 -0
- package/lib/tools/index.js +26 -6
- package/lib/tools/index.js.map +1 -1
- package/lib/tools/line/component.js +2 -1
- package/lib/tools/line/component.js.map +1 -1
- package/lib/tools/parabola/component.js +6 -5
- package/lib/tools/parabola/component.js.map +1 -1
- package/lib/tools/point/component.js +14 -9
- package/lib/tools/point/component.js.map +1 -1
- package/lib/tools/polygon/component.js +25 -12
- package/lib/tools/polygon/component.js.map +1 -1
- package/lib/tools/polygon/line.js +12 -6
- package/lib/tools/polygon/line.js.map +1 -1
- package/lib/tools/polygon/polygon.js +6 -3
- package/lib/tools/polygon/polygon.js.map +1 -1
- package/lib/tools/ray/component.js +2 -1
- package/lib/tools/ray/component.js.map +1 -1
- package/lib/tools/segment/component.js +2 -1
- package/lib/tools/segment/component.js.map +1 -1
- package/lib/tools/shared/icons/CorrectSVG.js +36 -0
- package/lib/tools/shared/icons/CorrectSVG.js.map +1 -0
- package/lib/tools/shared/icons/IncorrectSVG.js +36 -0
- package/lib/tools/shared/icons/IncorrectSVG.js.map +1 -0
- package/lib/tools/shared/icons/MissingSVG.js +35 -0
- package/lib/tools/shared/icons/MissingSVG.js.map +1 -0
- package/lib/tools/shared/line/index.js +51 -19
- package/lib/tools/shared/line/index.js.map +1 -1
- package/lib/tools/shared/line/line-path.js +13 -7
- package/lib/tools/shared/line/line-path.js.map +1 -1
- package/lib/tools/shared/line/with-root-edge.js +19 -8
- package/lib/tools/shared/line/with-root-edge.js.map +1 -1
- package/lib/tools/shared/point/arrow-point.js +1 -1
- package/lib/tools/shared/point/arrow-point.js.map +1 -1
- package/lib/tools/shared/point/arrow.js +1 -1
- package/lib/tools/shared/point/arrow.js.map +1 -1
- package/lib/tools/shared/point/base-point.js +43 -7
- package/lib/tools/shared/point/base-point.js.map +1 -1
- package/lib/tools/shared/point/index.js +4 -1
- package/lib/tools/shared/point/index.js.map +1 -1
- package/lib/tools/shared/styles.js +16 -7
- package/lib/tools/shared/styles.js.map +1 -1
- package/lib/tools/sine/component.js +13 -4
- package/lib/tools/sine/component.js.map +1 -1
- package/lib/tools/vector/component.js +2 -1
- package/lib/tools/vector/component.js.map +1 -1
- package/lib/undo-redo.js +0 -1
- package/lib/undo-redo.js.map +1 -1
- package/lib/utils.js +1 -1
- package/lib/utils.js.map +1 -1
- package/package.json +15 -9
- package/src/__tests__/__snapshots__/graph-with-controls.test.jsx.snap +237 -0
- package/src/__tests__/__snapshots__/graph.test.jsx.snap +211 -0
- package/src/__tests__/__snapshots__/grid.test.jsx.snap +54 -0
- package/src/__tests__/__snapshots__/labels.test.jsx.snap +30 -0
- package/src/__tests__/__snapshots__/mark-label.test.jsx.snap +45 -0
- package/src/__tests__/__snapshots__/toggle-bar.test.jsx.snap +7 -0
- package/src/__tests__/__snapshots__/tool-menu.test.jsx.snap +13 -0
- package/src/__tests__/__snapshots__/undo-redo.test.jsx.snap +14 -0
- package/src/__tests__/graph-with-controls.test.jsx +147 -0
- package/src/__tests__/graph.test.jsx +230 -0
- package/src/__tests__/grid.test.jsx +20 -0
- package/src/__tests__/labels.test.jsx +38 -0
- package/src/__tests__/mark-label.test.jsx +68 -0
- package/src/__tests__/toggle-bar.test.jsx +36 -0
- package/src/__tests__/tool-menu.test.jsx +29 -0
- package/src/__tests__/undo-redo.test.jsx +25 -0
- package/src/__tests__/use-debounce.test.js +21 -0
- package/src/__tests__/utils.js +38 -0
- package/src/__tests__/utils.test.js +151 -0
- package/src/axis/__tests__/__snapshots__/arrow.test.jsx.snap +33 -0
- package/src/axis/__tests__/__snapshots__/axes.test.jsx.snap +122 -0
- package/src/axis/__tests__/arrow.test.jsx +39 -0
- package/src/axis/__tests__/axes.test.jsx +220 -0
- package/src/axis/axes.jsx +5 -5
- package/src/container/index.jsx +2 -4
- package/src/coordinates-label.jsx +4 -3
- package/src/graph-with-controls.jsx +8 -10
- package/src/graph.jsx +22 -10
- package/src/grid.jsx +8 -10
- package/src/index.js +2 -2
- package/src/key-legend.jsx +145 -0
- package/src/label-svg-icon.jsx +39 -0
- package/src/labels.jsx +2 -1
- package/src/mark-label.jsx +149 -52
- package/src/toggle-bar.jsx +1 -2
- package/src/tool-menu.jsx +3 -26
- package/src/tools/absolute/__tests__/component.test.jsx +54 -0
- package/src/tools/absolute/component.jsx +23 -0
- package/src/tools/absolute/index.js +31 -0
- package/src/tools/circle/__tests__/__snapshots__/bg-circle.test.jsx.snap +46 -0
- package/src/tools/circle/__tests__/__snapshots__/component.test.jsx.snap +293 -0
- package/src/tools/circle/__tests__/bg-circle.test.jsx +28 -0
- package/src/tools/circle/__tests__/component.test.jsx +228 -0
- package/src/tools/circle/bg-circle.jsx +5 -4
- package/src/tools/circle/component.jsx +22 -8
- package/src/tools/exponential/__tests__/component.test.jsx +54 -0
- package/src/tools/exponential/component.jsx +23 -0
- package/src/tools/exponential/index.js +39 -0
- package/src/tools/index.js +38 -5
- package/src/tools/line/__tests__/__snapshots__/component.test.jsx.snap +20 -0
- package/src/tools/line/__tests__/component.test.jsx +36 -0
- package/src/tools/line/component.jsx +2 -1
- package/src/tools/parabola/__tests__/component.test.jsx +49 -0
- package/src/tools/parabola/component.jsx +7 -6
- package/src/tools/point/__tests__/__snapshots__/component.test.jsx.snap +40 -0
- package/src/tools/point/__tests__/component.test.jsx +66 -0
- package/src/tools/point/component.jsx +12 -6
- package/src/tools/polygon/__tests__/__snapshots__/component.test.jsx.snap +415 -0
- package/src/tools/polygon/__tests__/__snapshots__/line.test.jsx.snap +45 -0
- package/src/tools/polygon/__tests__/__snapshots__/polygon.test.jsx.snap +52 -0
- package/src/tools/polygon/__tests__/component.test.jsx +226 -0
- package/src/tools/polygon/__tests__/index.test.js +65 -0
- package/src/tools/polygon/__tests__/line.test.jsx +25 -0
- package/src/tools/polygon/__tests__/polygon.test.jsx +44 -0
- package/src/tools/polygon/component.jsx +39 -11
- package/src/tools/polygon/line.jsx +15 -7
- package/src/tools/polygon/polygon.jsx +7 -3
- package/src/tools/ray/__tests__/__snapshots__/component.test.jsx.snap +23 -0
- package/src/tools/ray/__tests__/component.test.jsx +29 -0
- package/src/tools/ray/component.jsx +2 -1
- package/src/tools/segment/__tests__/__snapshots__/component.test.jsx.snap +14 -0
- package/src/tools/segment/__tests__/component.test.jsx +28 -0
- package/src/tools/segment/component.jsx +2 -1
- package/src/tools/shared/__tests__/__snapshots__/arrow-head.test.jsx.snap +27 -0
- package/src/tools/shared/__tests__/arrow-head.test.jsx +34 -0
- package/src/tools/shared/icons/CorrectSVG.jsx +22 -0
- package/src/tools/shared/icons/IncorrectSVG.jsx +20 -0
- package/src/tools/shared/icons/MissingSVG.jsx +21 -0
- package/src/tools/shared/line/__tests__/__snapshots__/index.test.jsx.snap +360 -0
- package/src/tools/shared/line/__tests__/__snapshots__/line-path.test.jsx.snap +58 -0
- package/src/tools/shared/line/__tests__/__snapshots__/with-root-edge.test.jsx.snap +63 -0
- package/src/tools/shared/line/__tests__/index.test.jsx +255 -0
- package/src/tools/shared/line/__tests__/line-path.test.jsx +53 -0
- package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +73 -0
- package/src/tools/shared/line/index.jsx +39 -13
- package/src/tools/shared/line/line-path.jsx +18 -7
- package/src/tools/shared/line/with-root-edge.jsx +10 -3
- package/src/tools/shared/point/__tests__/__snapshots__/arrow-point.test.jsx.snap +56 -0
- package/src/tools/shared/point/__tests__/__snapshots__/base-point.test.jsx.snap +44 -0
- package/src/tools/shared/point/__tests__/arrow-point.test.jsx +87 -0
- package/src/tools/shared/point/__tests__/base-point.test.jsx +84 -0
- package/src/tools/shared/point/arrow-point.jsx +4 -1
- package/src/tools/shared/point/arrow.jsx +4 -1
- package/src/tools/shared/point/base-point.jsx +28 -3
- package/src/tools/shared/point/index.jsx +7 -2
- package/src/tools/shared/styles.js +8 -3
- package/src/tools/sine/__tests__/component.test.jsx +51 -0
- package/src/tools/sine/component.jsx +7 -7
- package/src/tools/vector/__tests__/__snapshots__/component.test.jsx.snap +12 -0
- package/src/tools/vector/__tests__/component.test.jsx +26 -0
- package/src/tools/vector/component.jsx +2 -1
- package/src/undo-redo.jsx +0 -1
- package/src/utils.js +1 -1
- package/legacy.png +0 -0
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
|
-
|
|
6
|
+
# [2.15.0-beta.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.21...@pie-lib/graphing@2.15.0-beta.1) (2025-07-20)
|
|
7
7
|
|
|
8
8
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
9
9
|
|
|
@@ -11,7 +11,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
# [2.15.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.21...@pie-lib/graphing@2.15.0-beta.0) (2025-07-20)
|
|
15
15
|
|
|
16
16
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
17
17
|
|
|
@@ -19,159 +19,100 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
# [2.16.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.21...@pie-lib/graphing@2.16.0-beta.0) (2025-07-15)
|
|
23
23
|
|
|
24
24
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
25
25
|
|
|
26
|
+
# [2.15.0-beta.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.21...@pie-lib/graphing@2.15.0-beta.0) (2025-07-15)
|
|
26
27
|
|
|
28
|
+
**Note:** Version bump only for package @pie-lib/graphing
|
|
27
29
|
|
|
30
|
+
## [2.14.21](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.20...@pie-lib/graphing@2.14.21) (2023-10-16)
|
|
28
31
|
|
|
32
|
+
**Note:** Version bump only for package @pie-lib/graphing
|
|
29
33
|
|
|
30
|
-
## [2.14.
|
|
31
|
-
|
|
34
|
+
## [2.14.20](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.19...@pie-lib/graphing@2.14.20) (2023-10-03)
|
|
32
35
|
|
|
33
|
-
|
|
36
|
+
**Note:** Version bump only for package @pie-lib/graphing
|
|
34
37
|
|
|
35
|
-
|
|
38
|
+
## [2.14.19](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.18...@pie-lib/graphing@2.14.19) (2023-10-01)
|
|
36
39
|
|
|
40
|
+
**Note:** Version bump only for package @pie-lib/graphing
|
|
37
41
|
|
|
42
|
+
## [2.14.18](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.17...@pie-lib/graphing@2.14.18) (2023-09-28)
|
|
38
43
|
|
|
44
|
+
### Bug Fixes
|
|
39
45
|
|
|
46
|
+
- **graphing:** use red color to indicate a missing graph object PD-3209 ([250b350](https://github.com/pie-framework/pie-lib/commit/250b3509e7f10889fbbf39fd5d0dae4d0a5cf507))
|
|
40
47
|
|
|
41
48
|
## [2.14.17](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.16...@pie-lib/graphing@2.14.17) (2023-09-27)
|
|
42
49
|
|
|
43
50
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
44
51
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
52
|
## [2.14.16](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.15...@pie-lib/graphing@2.14.16) (2023-09-27)
|
|
50
53
|
|
|
51
54
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
52
55
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
56
|
## [2.14.15](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.14...@pie-lib/graphing@2.14.15) (2023-09-27)
|
|
58
57
|
|
|
59
58
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
60
59
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
60
|
## [2.14.14](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.13...@pie-lib/graphing@2.14.14) (2023-09-25)
|
|
66
61
|
|
|
67
62
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
68
63
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
64
|
## [2.14.13](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.12...@pie-lib/graphing@2.14.13) (2023-09-20)
|
|
74
65
|
|
|
75
66
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
76
67
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
68
|
## [2.14.12](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.11...@pie-lib/graphing@2.14.12) (2023-09-20)
|
|
82
69
|
|
|
83
70
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
84
71
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
72
|
## [2.14.11](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.10...@pie-lib/graphing@2.14.11) (2023-09-18)
|
|
90
73
|
|
|
91
74
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
92
75
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
76
|
## [2.14.10](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.9...@pie-lib/graphing@2.14.10) (2023-09-14)
|
|
98
77
|
|
|
99
78
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
100
79
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
80
|
## [2.14.9](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.8...@pie-lib/graphing@2.14.9) (2023-08-29)
|
|
106
81
|
|
|
107
|
-
|
|
108
82
|
### Bug Fixes
|
|
109
83
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
84
|
+
- **graphing:** adjust ploting position to match with the gridlines PD-3005 ([23c5727](https://github.com/pie-framework/pie-lib/commit/23c5727124309b6723517bbacbecd1c938858e6a))
|
|
115
85
|
|
|
116
86
|
## [2.14.8](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.7...@pie-lib/graphing@2.14.8) (2023-08-21)
|
|
117
87
|
|
|
118
88
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
119
89
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
90
|
## [2.14.7](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.6...@pie-lib/graphing@2.14.7) (2023-08-15)
|
|
125
91
|
|
|
126
92
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
127
93
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
94
|
## [2.14.6](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.5...@pie-lib/graphing@2.14.6) (2023-08-07)
|
|
133
95
|
|
|
134
96
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
135
97
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
98
|
## [2.14.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.4...@pie-lib/graphing@2.14.5) (2023-07-31)
|
|
141
99
|
|
|
142
|
-
|
|
143
100
|
### Bug Fixes
|
|
144
101
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
102
|
+
- **graphing:** remove custom hover styling for action buttons PD-2059 ([4aa1e86](https://github.com/pie-framework/pie-lib/commit/4aa1e8607a8156228a11c0d30158cd50dacee294))
|
|
150
103
|
|
|
151
104
|
## [2.14.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.3...@pie-lib/graphing@2.14.4) (2023-07-24)
|
|
152
105
|
|
|
153
106
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
154
107
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
108
|
## [2.14.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.2...@pie-lib/graphing@2.14.3) (2023-06-24)
|
|
160
109
|
|
|
161
110
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
162
111
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
112
|
## [2.14.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.1...@pie-lib/graphing@2.14.2) (2023-06-13)
|
|
168
113
|
|
|
169
114
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
170
115
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
116
|
## [2.14.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.14.0...@pie-lib/graphing@2.14.1) (2023-06-12)
|
|
176
117
|
|
|
177
118
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
[]
|
package/lib/axis/axes.js
CHANGED
|
@@ -66,16 +66,16 @@ var AxisDefaultProps = {
|
|
|
66
66
|
var axisStyles = function axisStyles(theme) {
|
|
67
67
|
return {
|
|
68
68
|
line: {
|
|
69
|
-
stroke: _renderUi.color.
|
|
70
|
-
strokeWidth:
|
|
69
|
+
stroke: _renderUi.color.defaults.PRIMARY,
|
|
70
|
+
strokeWidth: 3
|
|
71
71
|
},
|
|
72
72
|
arrow: {
|
|
73
|
-
fill: _renderUi.color.
|
|
73
|
+
fill: _renderUi.color.defaults.PRIMARY
|
|
74
74
|
},
|
|
75
75
|
tick: {
|
|
76
|
-
fill: _renderUi.color.
|
|
76
|
+
fill: _renderUi.color.defaults.PRIMARY,
|
|
77
77
|
'& > line': {
|
|
78
|
-
stroke: _renderUi.color.
|
|
78
|
+
stroke: _renderUi.color.defaults.PRIMARY
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
81
|
labelFontSize: {
|
package/lib/axis/axes.js.map
CHANGED
|
@@ -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","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","replace","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 ? ['0', ...columnTicksValues] : 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) + 2;\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 x={size.width + 17} y={scale.y(0) - 9} width={necessaryWidth} height={20 * necessaryRows}>\n <div dangerouslySetInnerHTML={{ __html: domain.axisLabel }} className={classes.labelFontSize} />\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 let digits = value.toLocaleString().replace(/[.-]/g, '').length || 1;\n\n return {\n ...tickLabelStyles,\n dy: 4,\n dx: -10 - digits * 9,\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 x={scale.x(0) - necessaryWidth / 2} y={-33} width={necessaryWidth} height=\"20\">\n <Readable false>\n <div dangerouslySetInnerHTML={{ __html: range.axisLabel }} className={classes.axisLabelHolder} />\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 { columnTicksValues, firstNegativeX, distanceFromOriginToFirstNegativeX } = 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"}
|
|
1
|
+
{"version":3,"sources":["../../src/axis/axes.jsx"],"names":["AxisPropTypes","includeArrows","PropTypes","object","graphProps","AxisDefaultProps","left","right","up","down","axisStyles","theme","line","stroke","color","defaults","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","replace","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.defaults.PRIMARY,\n strokeWidth: 3,\n },\n arrow: {\n fill: color.defaults.PRIMARY,\n },\n tick: {\n fill: color.defaults.PRIMARY,\n '& > line': {\n stroke: color.defaults.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 ? ['0', ...columnTicksValues] : 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) + 2;\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 x={size.width + 17} y={scale.y(0) - 9} width={necessaryWidth} height={20 * necessaryRows}>\n <div dangerouslySetInnerHTML={{ __html: domain.axisLabel }} className={classes.labelFontSize} />\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 let digits = value.toLocaleString().replace(/[.-]/g, '').length || 1;\n\n return {\n ...tickLabelStyles,\n dy: 4,\n dx: -10 - digits * 9,\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 x={scale.x(0) - necessaryWidth / 2} y={-33} width={necessaryWidth} height=\"20\">\n <Readable false>\n <div dangerouslySetInnerHTML={{ __html: range.axisLabel }} className={classes.axisLabelHolder} />\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 { columnTicksValues, firstNegativeX, distanceFromOriginToFirstNegativeX } = 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/container/index.js
CHANGED
|
@@ -99,11 +99,8 @@ var Root = /*#__PURE__*/function (_React$Component) {
|
|
|
99
99
|
|
|
100
100
|
var storeState = _this.store.getState();
|
|
101
101
|
|
|
102
|
-
var lastAction = (0, _middleware.getLastAction)();
|
|
103
|
-
var isUndoOperation = lastAction.type.includes('UNDO') || lastAction.type.includes('REDO');
|
|
104
|
-
|
|
105
102
|
if (!(0, _isEqual["default"])(storeState.marks.present, marks)) {
|
|
106
|
-
onChangeMarks(storeState.marks.present
|
|
103
|
+
onChangeMarks(storeState.marks.present);
|
|
107
104
|
}
|
|
108
105
|
});
|
|
109
106
|
var r = (0, _reducer["default"])();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/container/index.jsx"],"names":["mapStateToProps","s","marks","present","mapDispatchToProps","dispatch","onChangeMarks","m","onUndo","ActionCreators","undo","onRedo","redo","onReset","GraphContainer","GraphWithControls","Root","props","storeState","store","getState","
|
|
1
|
+
{"version":3,"sources":["../../src/container/index.jsx"],"names":["mapStateToProps","s","marks","present","mapDispatchToProps","dispatch","onChangeMarks","m","onUndo","ActionCreators","undo","onRedo","redo","onReset","GraphContainer","GraphWithControls","Root","props","storeState","store","getState","r","lastActionMiddleware","subscribe","onStoreChange","prevProps","rest","correctnessSet","find","correctness","React","Component","PropTypes","func","array"],"mappings":"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","sourcesContent":["import { connect } from 'react-redux';\nimport React from 'react';\nimport { Provider } from 'react-redux';\nimport { applyMiddleware, createStore } from 'redux';\nimport reducer from './reducer';\nimport { changeMarks } from './actions';\nimport PropTypes from 'prop-types';\nimport isEqual from 'lodash/isEqual';\nimport { ActionCreators } from 'redux-undo';\nimport GraphWithControls from '../graph-with-controls';\nimport { lastActionMiddleware } from './middleware';\n\nconst mapStateToProps = (s) => ({\n marks: s.marks.present,\n});\n\nconst mapDispatchToProps = (dispatch) => ({\n onChangeMarks: (m) => dispatch(changeMarks(m)),\n onUndo: () => dispatch(ActionCreators.undo()),\n onRedo: () => dispatch(ActionCreators.redo()),\n onReset: () => dispatch(changeMarks([])),\n});\n\nexport const GraphContainer = connect(mapStateToProps, mapDispatchToProps)(GraphWithControls);\n\n/**\n * The graph component entry point with undo/redo\n * Redux is an implementation detail, hide it in the react component.\n */\nclass Root extends React.Component {\n static propTypes = {\n onChangeMarks: PropTypes.func,\n marks: PropTypes.array,\n };\n\n constructor(props) {\n super(props);\n\n const r = reducer();\n this.store = createStore(r, { marks: props.marks }, applyMiddleware(lastActionMiddleware));\n\n this.store.subscribe(this.onStoreChange);\n }\n\n componentDidUpdate(prevProps) {\n const { marks } = this.props;\n const storeState = this.store.getState();\n\n if (isEqual(storeState.marks.present, marks)) {\n return;\n }\n\n if (!isEqual(prevProps.marks, marks)) {\n this.store.dispatch(changeMarks(marks));\n }\n }\n\n onStoreChange = () => {\n const { marks, onChangeMarks } = this.props;\n const storeState = this.store.getState();\n\n if (!isEqual(storeState.marks.present, marks)) {\n onChangeMarks(storeState.marks.present);\n }\n };\n\n render() {\n // eslint-disable-next-line no-unused-vars\n const { onChangeMarks, marks, ...rest } = this.props;\n const correctnessSet = marks && marks.find((m) => m.correctness);\n\n if (correctnessSet) {\n return <GraphWithControls {...rest} marks={marks} disabled={correctnessSet} />;\n }\n\n return (\n <Provider store={this.store}>\n <GraphContainer {...rest} />\n </Provider>\n );\n }\n}\n\nexport default Root;\n"],"file":"index.js"}
|
package/lib/coordinates-label.js
CHANGED
|
@@ -34,7 +34,7 @@ var styles = function styles(theme) {
|
|
|
34
34
|
fontSize: theme.typography.fontSize,
|
|
35
35
|
borderRadius: '8px',
|
|
36
36
|
background: theme.palette.common.white,
|
|
37
|
-
color: _renderUi.color.
|
|
37
|
+
color: _renderUi.color.defaults.PRIMARY_DARK
|
|
38
38
|
},
|
|
39
39
|
inputLabel: {
|
|
40
40
|
padding: 0
|
|
@@ -44,8 +44,10 @@ var styles = function styles(theme) {
|
|
|
44
44
|
|
|
45
45
|
var getLabelPosition = function getLabelPosition(graphProps, x, y, labelLength) {
|
|
46
46
|
var scale = graphProps.scale,
|
|
47
|
-
domain = graphProps.domain
|
|
48
|
-
|
|
47
|
+
domain = graphProps.domain,
|
|
48
|
+
range = graphProps.range; // treat corner cases for maximum and minimum
|
|
49
|
+
|
|
50
|
+
var topShift = y === range.min ? 16 : y === range.max ? 0 : 8;
|
|
49
51
|
var leftShift = 10;
|
|
50
52
|
var rightEdge = scale.x(x) + labelLength + leftShift;
|
|
51
53
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/coordinates-label.jsx"],"names":["styles","theme","input","fontFamily","typography","fontSize","borderRadius","background","palette","common","white","color","
|
|
1
|
+
{"version":3,"sources":["../src/coordinates-label.jsx"],"names":["styles","theme","input","fontFamily","typography","fontSize","borderRadius","background","palette","common","white","color","defaults","PRIMARY_DARK","inputLabel","padding","getLabelPosition","graphProps","x","y","labelLength","scale","domain","range","topShift","min","max","leftShift","rightEdge","left","top","CoordinatesLabel","classes","label","length","labelPosition","style","position","pointerEvents","width","ariaLabel","propTypes","types","GraphPropsType","PropTypes","object","number"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport InputBase from '@material-ui/core/InputBase';\nimport { roundNumber } from './utils';\n\nconst styles = (theme) => ({\n input: {\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n borderRadius: '8px',\n background: theme.palette.common.white,\n color: color.defaults.PRIMARY_DARK,\n },\n inputLabel: {\n padding: 0,\n },\n});\n\nexport const getLabelPosition = (graphProps, x, y, labelLength) => {\n const { scale, domain, range } = graphProps;\n // treat corner cases for maximum and minimum\n const topShift = y === range.min ? 16 : y === range.max ? 0 : 8;\n const leftShift = 10;\n const rightEdge = scale.x(x) + labelLength + leftShift;\n\n if (rightEdge >= scale.x(domain.max)) {\n return {\n left: scale.x(x) - leftShift - labelLength,\n top: scale.y(y) - topShift,\n };\n }\n\n return {\n left: scale.x(x) + leftShift,\n top: scale.y(y) - topShift,\n };\n};\n\nexport const CoordinatesLabel = ({ x, y, graphProps, classes }) => {\n const label = `(${roundNumber(x)}, ${roundNumber(y)})`;\n const labelLength = (label.length || 0) * 6;\n const labelPosition = getLabelPosition(graphProps, x, y, labelLength);\n\n const style = {\n position: 'absolute',\n pointerEvents: 'auto',\n width: labelLength,\n padding: 0,\n ...labelPosition,\n };\n\n return (\n <InputBase\n style={style}\n classes={{ input: classes.inputLabel }}\n className={classes.input}\n value={label}\n inputProps={{ ariaLabel: 'naked' }}\n />\n );\n};\n\nCoordinatesLabel.propTypes = {\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n x: PropTypes.number,\n y: PropTypes.number,\n};\n\nexport default withStyles(styles)(CoordinatesLabel);\n"],"file":"coordinates-label.js"}
|
|
@@ -157,14 +157,8 @@ var GraphWithControls = /*#__PURE__*/function (_React$Component) {
|
|
|
157
157
|
return _this.setState({
|
|
158
158
|
currentTool: tools.find(function (t) {
|
|
159
159
|
return t.type === tool;
|
|
160
|
-
})
|
|
161
|
-
|
|
162
|
-
});
|
|
163
|
-
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "toggleLabelMode", function () {
|
|
164
|
-
return _this.setState(function (state) {
|
|
165
|
-
return {
|
|
166
|
-
labelModeEnabled: !state.labelModeEnabled
|
|
167
|
-
};
|
|
160
|
+
}),
|
|
161
|
+
labelModeEnabled: tool === 'label'
|
|
168
162
|
});
|
|
169
163
|
});
|
|
170
164
|
_this.state = {
|
|
@@ -222,7 +216,9 @@ var GraphWithControls = /*#__PURE__*/function (_React$Component) {
|
|
|
222
216
|
showTitle = _this$props.showTitle,
|
|
223
217
|
title = _this$props.title,
|
|
224
218
|
titlePlaceholder = _this$props.titlePlaceholder,
|
|
225
|
-
language = _this$props.language
|
|
219
|
+
language = _this$props.language,
|
|
220
|
+
removeIncompleteTool = _this$props.removeIncompleteTool,
|
|
221
|
+
limitLabeling = _this$props.limitLabeling;
|
|
226
222
|
var _this$props2 = this.props,
|
|
227
223
|
backgroundMarks = _this$props2.backgroundMarks,
|
|
228
224
|
marks = _this$props2.marks,
|
|
@@ -249,7 +245,6 @@ var GraphWithControls = /*#__PURE__*/function (_React$Component) {
|
|
|
249
245
|
onChange: function onChange(tool) {
|
|
250
246
|
return _this2.changeCurrentTool(tool, tools);
|
|
251
247
|
},
|
|
252
|
-
onToggleLabelMode: this.toggleLabelMode,
|
|
253
248
|
toolbarTools: toolbarTools,
|
|
254
249
|
onChangeTools: onChangeTools,
|
|
255
250
|
language: language
|
|
@@ -293,7 +288,9 @@ var GraphWithControls = /*#__PURE__*/function (_React$Component) {
|
|
|
293
288
|
showTitle: showTitle,
|
|
294
289
|
title: title,
|
|
295
290
|
titlePlaceholder: titlePlaceholder,
|
|
296
|
-
tools: tools
|
|
291
|
+
tools: tools,
|
|
292
|
+
removeIncompleteTool: removeIncompleteTool,
|
|
293
|
+
limitLabeling: limitLabeling
|
|
297
294
|
}));
|
|
298
295
|
}
|
|
299
296
|
}]);
|
|
@@ -332,10 +329,6 @@ var styles = function styles(theme) {
|
|
|
332
329
|
padding: theme.spacing.unit,
|
|
333
330
|
color: _renderUi.color.text(),
|
|
334
331
|
backgroundColor: _renderUi.color.primaryLight(),
|
|
335
|
-
borderTop: "solid 1px ".concat(_renderUi.color.primaryDark()),
|
|
336
|
-
borderBottom: "solid 0px ".concat(_renderUi.color.primaryDark()),
|
|
337
|
-
borderLeft: "solid 1px ".concat(_renderUi.color.primaryDark()),
|
|
338
|
-
borderRight: "solid 1px ".concat(_renderUi.color.primaryDark()),
|
|
339
332
|
'& button': {
|
|
340
333
|
fontSize: theme.typography.fontSize
|
|
341
334
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/graph-with-controls.jsx"],"names":["setToolbarAvailability","toolbarTools","toolsArr","map","tA","toolbar","find","t","type","toolIsAvailable","tools","currentTool","tool","getAvailableTool","filterByValidToolTypes","backgroundMarks","filter","bM","allTools","filterByVisibleToolTypes","marks","getDefaultCurrentTool","toolType","Collapsible","classes","children","title","expansionPanel","root","summaryRoot","content","summaryContent","details","propTypes","PropTypes","object","array","string","GraphWithControls","props","setState","state","labelModeEnabled","defaultTool","prevProps","axesSettings","className","coordinatesOnHover","collapsibleToolbar","collapsibleToolbarTitle","disabled","disabledLabels","disabledTitle","domain","draggableTools","labels","labelsPlaceholders","onChangeLabels","onChangeMarks","onChangeTitle","onChangeTools","onUndo","onRedo","onReset","range","size","showLabels","showPixelGuides","showTitle","titlePlaceholder","language","tT","graphActions","changeCurrentTool","toggleLabelMode","graphWithControls","controls","r","labelNode","undefined","React","Component","graphPropTypes","func","arrayOf","styles","theme","display","flexDirection","width","justifyContent","padding","spacing","unit","color","text","backgroundColor","primaryLight","borderTop","primaryDark","borderBottom","borderLeft","borderRight","fontSize","typography","minHeight","margin","marginTop"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport uniq from 'lodash/uniq';\nimport isString from 'lodash/isString';\nimport { color } from '@pie-lib/render-ui';\n\nimport ToolMenu from './tool-menu';\nimport Graph, { graphPropTypes } from './graph';\nimport UndoRedo from './undo-redo';\nimport { allTools, toolsArr } from './tools';\nimport { ExpansionPanel, ExpansionPanelDetails, ExpansionPanelSummary, Typography } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nexport const setToolbarAvailability = (toolbarTools) =>\n toolsArr.map((tA) => ({ ...tA, toolbar: !!toolbarTools.find((t) => t === tA.type) })) || [];\n\nexport const toolIsAvailable = (tools, currentTool) =>\n currentTool && tools && (tools.find((tool) => tool.type === currentTool.type) || {}).toolbar;\n\nexport const getAvailableTool = (tools) => tools.find((tool) => tool.toolbar);\n\nexport const filterByValidToolTypes = (backgroundMarks) =>\n backgroundMarks.filter((bM) => !!allTools.find((tool) => tool === bM.type));\n\nexport const filterByVisibleToolTypes = (toolbarTools, marks) =>\n marks.filter((bM) => !!toolbarTools.find((tool) => tool === bM.type));\n\nconst getDefaultCurrentTool = (toolType) => toolsArr.find((tool) => tool.type === toolType) || null;\n\nconst Collapsible = ({ classes, children, title }) => (\n <ExpansionPanel elevation={0} className={classes.expansionPanel} disabledGutters={true} square={true}>\n <ExpansionPanelSummary\n classes={{\n root: classes.summaryRoot,\n content: classes.summaryContent,\n }}\n expandIcon={<ExpandMoreIcon />}\n >\n <Typography variant=\"subheading\">{title}</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails className={classes.details}>{children}</ExpansionPanelDetails>\n </ExpansionPanel>\n);\n\nCollapsible.propTypes = {\n classes: PropTypes.object,\n children: PropTypes.array,\n title: PropTypes.string,\n};\n\nexport class GraphWithControls extends React.Component {\n static propTypes = {\n ...graphPropTypes,\n onUndo: PropTypes.func,\n onRedo: PropTypes.func,\n onReset: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string), // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'\n language: PropTypes.string,\n };\n\n static defaultProps = {\n collapsibleToolbar: false,\n collapsibleToolbarTitle: '',\n disabledLabels: false,\n disabledTitle: false,\n showLabels: true,\n showTitle: true,\n toolbarTools: [],\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentTool: getDefaultCurrentTool(props.defaultTool),\n labelModeEnabled: false,\n };\n }\n\n componentDidUpdate(prevProps) {\n const { defaultTool } = this.props;\n\n if (prevProps.defaultTool !== defaultTool) {\n const currentTool = getDefaultCurrentTool(defaultTool);\n\n this.setState({ currentTool });\n }\n }\n\n changeCurrentTool = (tool, tools) => this.setState({ currentTool: tools.find((t) => t.type === tool) });\n\n toggleLabelMode = () => this.setState((state) => ({ labelModeEnabled: !state.labelModeEnabled }));\n\n render() {\n let { currentTool, labelModeEnabled } = this.state;\n const {\n axesSettings,\n classes,\n className,\n coordinatesOnHover,\n collapsibleToolbar,\n collapsibleToolbarTitle,\n disabled,\n disabledLabels,\n disabledTitle,\n domain,\n draggableTools,\n labels,\n labelsPlaceholders,\n onChangeLabels,\n onChangeMarks,\n onChangeTitle,\n onChangeTools,\n onUndo,\n onRedo,\n onReset,\n range,\n size,\n showLabels,\n showPixelGuides,\n showTitle,\n title,\n titlePlaceholder,\n language\n } = this.props;\n let { backgroundMarks, marks, toolbarTools } = this.props;\n\n // make sure only valid tool types are kept (string) and without duplicates\n toolbarTools = uniq(toolbarTools || []).filter((tT) => !!isString(tT)) || [];\n\n // keep only the backgroundMarks that have valid types\n backgroundMarks = filterByValidToolTypes(backgroundMarks || []);\n\n // keep only the marks that have types which appear in toolbar\n marks = filterByVisibleToolTypes(toolbarTools, marks || []);\n\n const tools = setToolbarAvailability(toolbarTools);\n\n // set current tool if there's no current tool or if the existing one is no longer available\n if (!currentTool || !toolIsAvailable(tools, currentTool)) {\n currentTool = getAvailableTool(tools);\n }\n\n const graphActions = (\n <React.Fragment>\n <ToolMenu\n currentToolType={currentTool && currentTool.type}\n disabled={!!disabled}\n draggableTools={draggableTools}\n labelModeEnabled={labelModeEnabled}\n onChange={(tool) => this.changeCurrentTool(tool, tools)}\n onToggleLabelMode={this.toggleLabelMode}\n toolbarTools={toolbarTools}\n onChangeTools={onChangeTools}\n language={language}\n />\n\n {!disabled && <UndoRedo onUndo={onUndo} onRedo={onRedo} onReset={onReset} language={language}/>}\n </React.Fragment>\n );\n\n return (\n <div className={classNames(classes.graphWithControls, className)}>\n <div className={classes.controls}>\n {collapsibleToolbar ? (\n <Collapsible classes={classes} title={collapsibleToolbarTitle}>\n {graphActions}\n </Collapsible>\n ) : (\n graphActions\n )}\n </div>\n\n <div ref={(r) => (this.labelNode = r)} />\n\n <Graph\n axesSettings={axesSettings}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n currentTool={currentTool}\n disabledLabels={disabledLabels}\n disabledTitle={disabledTitle}\n domain={domain}\n labels={labels}\n labelModeEnabled={labelModeEnabled}\n labelsPlaceholders={labelsPlaceholders}\n marks={marks}\n onChangeMarks={!disabled ? onChangeMarks : undefined}\n onChangeLabels={onChangeLabels}\n onChangeTitle={onChangeTitle}\n range={range}\n size={size}\n showLabels={showLabels}\n showPixelGuides={showPixelGuides}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n tools={tools}\n />\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n graphWithControls: {\n display: 'flex',\n flexDirection: 'column',\n width: 'min-content',\n },\n controls: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.primaryLight(),\n borderTop: `solid 1px ${color.primaryDark()}`,\n borderBottom: `solid 0px ${color.primaryDark()}`,\n borderLeft: `solid 1px ${color.primaryDark()}`,\n borderRight: `solid 1px ${color.primaryDark()}`,\n '& button': {\n fontSize: theme.typography.fontSize,\n },\n },\n expansionPanel: {\n backgroundColor: color.primaryLight(),\n width: '100%',\n },\n summaryRoot: {\n padding: `0 ${theme.spacing.unit}px`,\n minHeight: '32px !important',\n },\n summaryContent: {\n margin: '4px 0 !important',\n },\n details: {\n padding: 0,\n marginTop: theme.spacing.unit,\n display: 'flex',\n justifyContent: 'space-between',\n },\n});\n\nexport default withStyles(styles)(GraphWithControls);\n"],"file":"graph-with-controls.js"}
|
|
1
|
+
{"version":3,"sources":["../src/graph-with-controls.jsx"],"names":["setToolbarAvailability","toolbarTools","toolsArr","map","tA","toolbar","find","t","type","toolIsAvailable","tools","currentTool","tool","getAvailableTool","filterByValidToolTypes","backgroundMarks","filter","bM","allTools","filterByVisibleToolTypes","marks","getDefaultCurrentTool","toolType","Collapsible","classes","children","title","expansionPanel","root","summaryRoot","content","summaryContent","details","propTypes","PropTypes","object","array","string","GraphWithControls","props","setState","labelModeEnabled","state","defaultTool","prevProps","axesSettings","className","coordinatesOnHover","collapsibleToolbar","collapsibleToolbarTitle","disabled","disabledLabels","disabledTitle","domain","draggableTools","labels","labelsPlaceholders","onChangeLabels","onChangeMarks","onChangeTitle","onChangeTools","onUndo","onRedo","onReset","range","size","showLabels","showPixelGuides","showTitle","titlePlaceholder","language","removeIncompleteTool","limitLabeling","tT","graphActions","changeCurrentTool","graphWithControls","controls","r","labelNode","undefined","React","Component","graphPropTypes","func","arrayOf","styles","theme","display","flexDirection","width","justifyContent","padding","spacing","unit","color","text","backgroundColor","primaryLight","fontSize","typography","minHeight","margin","marginTop"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport uniq from 'lodash/uniq';\nimport isString from 'lodash/isString';\nimport { color } from '@pie-lib/render-ui';\n\nimport ToolMenu from './tool-menu';\nimport Graph, { graphPropTypes } from './graph';\nimport UndoRedo from './undo-redo';\nimport { allTools, toolsArr } from './tools';\nimport { ExpansionPanel, ExpansionPanelDetails, ExpansionPanelSummary, Typography } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\n\nexport const setToolbarAvailability = (toolbarTools) =>\n toolsArr.map((tA) => ({ ...tA, toolbar: !!toolbarTools.find((t) => t === tA.type) })) || [];\n\nexport const toolIsAvailable = (tools, currentTool) =>\n currentTool && tools && (tools.find((tool) => tool.type === currentTool.type) || {}).toolbar;\n\nexport const getAvailableTool = (tools) => tools.find((tool) => tool.toolbar);\n\nexport const filterByValidToolTypes = (backgroundMarks) =>\n backgroundMarks.filter((bM) => !!allTools.find((tool) => tool === bM.type));\n\nexport const filterByVisibleToolTypes = (toolbarTools, marks) =>\n marks.filter((bM) => !!toolbarTools.find((tool) => tool === bM.type));\n\nconst getDefaultCurrentTool = (toolType) => toolsArr.find((tool) => tool.type === toolType) || null;\n\nconst Collapsible = ({ classes, children, title }) => (\n <ExpansionPanel elevation={0} className={classes.expansionPanel} disabledGutters={true} square={true}>\n <ExpansionPanelSummary\n classes={{\n root: classes.summaryRoot,\n content: classes.summaryContent,\n }}\n expandIcon={<ExpandMoreIcon />}\n >\n <Typography variant=\"subheading\">{title}</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails className={classes.details}>{children}</ExpansionPanelDetails>\n </ExpansionPanel>\n);\n\nCollapsible.propTypes = {\n classes: PropTypes.object,\n children: PropTypes.array,\n title: PropTypes.string,\n};\n\nexport class GraphWithControls extends React.Component {\n static propTypes = {\n ...graphPropTypes,\n onUndo: PropTypes.func,\n onRedo: PropTypes.func,\n onReset: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string), // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'\n language: PropTypes.string,\n };\n\n static defaultProps = {\n collapsibleToolbar: false,\n collapsibleToolbarTitle: '',\n disabledLabels: false,\n disabledTitle: false,\n showLabels: true,\n showTitle: true,\n toolbarTools: [],\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentTool: getDefaultCurrentTool(props.defaultTool),\n labelModeEnabled: false,\n };\n }\n\n componentDidUpdate(prevProps) {\n const { defaultTool } = this.props;\n\n if (prevProps.defaultTool !== defaultTool) {\n const currentTool = getDefaultCurrentTool(defaultTool);\n\n this.setState({ currentTool });\n }\n }\n\n changeCurrentTool = (tool, tools) =>\n this.setState({ currentTool: tools.find((t) => t.type === tool), labelModeEnabled: tool === 'label' });\n\n render() {\n let { currentTool, labelModeEnabled } = this.state;\n const {\n axesSettings,\n classes,\n className,\n coordinatesOnHover,\n collapsibleToolbar,\n collapsibleToolbarTitle,\n disabled,\n disabledLabels,\n disabledTitle,\n domain,\n draggableTools,\n labels,\n labelsPlaceholders,\n onChangeLabels,\n onChangeMarks,\n onChangeTitle,\n onChangeTools,\n onUndo,\n onRedo,\n onReset,\n range,\n size,\n showLabels,\n showPixelGuides,\n showTitle,\n title,\n titlePlaceholder,\n language,\n removeIncompleteTool,\n limitLabeling,\n } = this.props;\n let { backgroundMarks, marks, toolbarTools } = this.props;\n\n // make sure only valid tool types are kept (string) and without duplicates\n toolbarTools = uniq(toolbarTools || []).filter((tT) => !!isString(tT)) || [];\n\n // keep only the backgroundMarks that have valid types\n backgroundMarks = filterByValidToolTypes(backgroundMarks || []);\n\n // keep only the marks that have types which appear in toolbar\n marks = filterByVisibleToolTypes(toolbarTools, marks || []);\n\n const tools = setToolbarAvailability(toolbarTools);\n\n // set current tool if there's no current tool or if the existing one is no longer available\n if (!currentTool || !toolIsAvailable(tools, currentTool)) {\n currentTool = getAvailableTool(tools);\n }\n\n const graphActions = (\n <React.Fragment>\n <ToolMenu\n currentToolType={currentTool && currentTool.type}\n disabled={!!disabled}\n draggableTools={draggableTools}\n labelModeEnabled={labelModeEnabled}\n onChange={(tool) => this.changeCurrentTool(tool, tools)}\n toolbarTools={toolbarTools}\n onChangeTools={onChangeTools}\n language={language}\n />\n\n {!disabled && <UndoRedo onUndo={onUndo} onRedo={onRedo} onReset={onReset} language={language} />}\n </React.Fragment>\n );\n\n return (\n <div className={classNames(classes.graphWithControls, className)}>\n <div className={classes.controls}>\n {collapsibleToolbar ? (\n <Collapsible classes={classes} title={collapsibleToolbarTitle}>\n {graphActions}\n </Collapsible>\n ) : (\n graphActions\n )}\n </div>\n\n <div ref={(r) => (this.labelNode = r)} />\n\n <Graph\n axesSettings={axesSettings}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n currentTool={currentTool}\n disabledLabels={disabledLabels}\n disabledTitle={disabledTitle}\n domain={domain}\n labels={labels}\n labelModeEnabled={labelModeEnabled}\n labelsPlaceholders={labelsPlaceholders}\n marks={marks}\n onChangeMarks={!disabled ? onChangeMarks : undefined}\n onChangeLabels={onChangeLabels}\n onChangeTitle={onChangeTitle}\n range={range}\n size={size}\n showLabels={showLabels}\n showPixelGuides={showPixelGuides}\n showTitle={showTitle}\n title={title}\n titlePlaceholder={titlePlaceholder}\n tools={tools}\n removeIncompleteTool={removeIncompleteTool}\n limitLabeling={limitLabeling}\n />\n </div>\n );\n }\n}\n\nconst styles = (theme) => ({\n graphWithControls: {\n display: 'flex',\n flexDirection: 'column',\n width: 'min-content',\n },\n controls: {\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.primaryLight(),\n '& button': {\n fontSize: theme.typography.fontSize,\n },\n },\n expansionPanel: {\n backgroundColor: color.primaryLight(),\n width: '100%',\n },\n summaryRoot: {\n padding: `0 ${theme.spacing.unit}px`,\n minHeight: '32px !important',\n },\n summaryContent: {\n margin: '4px 0 !important',\n },\n details: {\n padding: 0,\n marginTop: theme.spacing.unit,\n display: 'flex',\n justifyContent: 'space-between',\n },\n});\n\nexport default withStyles(styles)(GraphWithControls);\n"],"file":"graph-with-controls.js"}
|