@pie-lib/graphing 2.4.3-next.350 → 2.4.3-next.406
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/lib/axis/arrow.js +15 -25
- package/lib/axis/arrow.js.map +1 -1
- package/lib/axis/axes.js +41 -73
- package/lib/axis/axes.js.map +1 -1
- package/lib/axis/index.js +1 -1
- package/lib/bg.js +20 -31
- package/lib/bg.js.map +1 -1
- package/lib/container/index.js +27 -41
- package/lib/container/index.js.map +1 -1
- package/lib/container/reducer.js +2 -2
- package/lib/container/reducer.js.map +1 -1
- package/lib/coordinates-label.js +5 -5
- package/lib/coordinates-label.js.map +1 -1
- package/lib/graph-with-controls.js +81 -43
- package/lib/graph-with-controls.js.map +1 -1
- package/lib/graph.js +45 -69
- package/lib/graph.js.map +1 -1
- package/lib/grid-setup.js +72 -27
- package/lib/grid-setup.js.map +1 -1
- package/lib/grid.js +28 -46
- package/lib/grid.js.map +1 -1
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/labels.js +22 -38
- package/lib/labels.js.map +1 -1
- package/lib/mark-label.js +10 -20
- package/lib/mark-label.js.map +1 -1
- package/lib/toggle-bar.js +22 -33
- package/lib/toggle-bar.js.map +1 -1
- package/lib/tool-menu.js +21 -32
- package/lib/tool-menu.js.map +1 -1
- package/lib/tools/circle/bg-circle.js +27 -38
- package/lib/tools/circle/bg-circle.js.map +1 -1
- package/lib/tools/circle/component.js +36 -54
- package/lib/tools/circle/component.js.map +1 -1
- package/lib/tools/circle/index.js +5 -5
- package/lib/tools/circle/index.js.map +1 -1
- package/lib/tools/line/component.js +11 -25
- package/lib/tools/line/component.js.map +1 -1
- package/lib/tools/line/index.js +2 -2
- package/lib/tools/line/index.js.map +1 -1
- package/lib/tools/parabola/component.js +2 -2
- package/lib/tools/parabola/component.js.map +1 -1
- package/lib/tools/parabola/index.js +5 -5
- package/lib/tools/parabola/index.js.map +1 -1
- package/lib/tools/point/component.js +30 -47
- package/lib/tools/point/component.js.map +1 -1
- package/lib/tools/point/index.js +5 -5
- package/lib/tools/point/index.js.map +1 -1
- package/lib/tools/polygon/component.js +59 -107
- package/lib/tools/polygon/component.js.map +1 -1
- package/lib/tools/polygon/index.js +9 -19
- package/lib/tools/polygon/index.js.map +1 -1
- package/lib/tools/polygon/line.js +28 -41
- package/lib/tools/polygon/line.js.map +1 -1
- package/lib/tools/polygon/polygon.js +28 -42
- package/lib/tools/polygon/polygon.js.map +1 -1
- package/lib/tools/ray/component.js +11 -25
- package/lib/tools/ray/component.js.map +1 -1
- package/lib/tools/ray/index.js +2 -2
- package/lib/tools/ray/index.js.map +1 -1
- package/lib/tools/segment/component.js +8 -11
- package/lib/tools/segment/component.js.map +1 -1
- package/lib/tools/segment/index.js +2 -2
- package/lib/tools/segment/index.js.map +1 -1
- package/lib/tools/shared/arrow-head.js +2 -2
- package/lib/tools/shared/arrow-head.js.map +1 -1
- package/lib/tools/shared/line/index.js +43 -66
- package/lib/tools/shared/line/index.js.map +1 -1
- package/lib/tools/shared/line/line-path.js +29 -42
- package/lib/tools/shared/line/line-path.js.map +1 -1
- package/lib/tools/shared/line/with-root-edge.js +12 -14
- package/lib/tools/shared/line/with-root-edge.js.map +1 -1
- package/lib/tools/shared/point/arrow-point.js +24 -39
- package/lib/tools/shared/point/arrow-point.js.map +1 -1
- package/lib/tools/shared/point/arrow.js +23 -37
- package/lib/tools/shared/point/arrow.js.map +1 -1
- package/lib/tools/shared/point/base-point.js +24 -38
- package/lib/tools/shared/point/base-point.js.map +1 -1
- package/lib/tools/shared/point/index.js +6 -6
- package/lib/tools/shared/point/index.js.map +1 -1
- package/lib/tools/shared/styles.js +7 -5
- package/lib/tools/shared/styles.js.map +1 -1
- package/lib/tools/shared/types.js +2 -2
- package/lib/tools/shared/types.js.map +1 -1
- package/lib/tools/sine/component.js +2 -2
- package/lib/tools/sine/component.js.map +1 -1
- package/lib/tools/sine/index.js +5 -5
- package/lib/tools/sine/index.js.map +1 -1
- package/lib/tools/vector/component.js +8 -11
- package/lib/tools/vector/component.js.map +1 -1
- package/lib/tools/vector/index.js +2 -2
- package/lib/tools/vector/index.js.map +1 -1
- package/lib/undo-redo.js +19 -31
- package/lib/undo-redo.js.map +1 -1
- package/lib/use-debounce.js +5 -13
- package/lib/use-debounce.js.map +1 -1
- package/lib/utils.js +2 -2
- package/lib/utils.js.map +1 -1
- package/package.json +3 -3
- package/src/graph-with-controls.jsx +70 -13
- package/src/graph.jsx +2 -0
- package/src/grid-setup.jsx +155 -88
package/lib/graph.js
CHANGED
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
6
|
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
6
8
|
value: true
|
|
7
9
|
});
|
|
8
10
|
exports.removeBuildingToolIfCurrentToolDiffers = exports.graphPropTypes = exports["default"] = exports.Graph = void 0;
|
|
9
11
|
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
15
|
+
|
|
16
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
17
|
+
|
|
18
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
19
|
+
|
|
20
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
21
|
+
|
|
22
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
23
|
+
|
|
24
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
25
|
+
|
|
26
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
27
|
+
|
|
28
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
29
|
+
|
|
10
30
|
var _react = _interopRequireDefault(require("react"));
|
|
11
31
|
|
|
12
32
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -33,53 +53,21 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
33
53
|
|
|
34
54
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
55
|
|
|
36
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
37
|
-
|
|
38
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
39
|
-
|
|
40
56
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
41
57
|
|
|
42
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
|
|
43
|
-
|
|
44
|
-
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
45
|
-
|
|
46
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
47
|
-
|
|
48
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
49
|
-
|
|
50
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
51
|
-
|
|
52
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
53
|
-
|
|
54
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
55
|
-
|
|
56
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
57
|
-
|
|
58
|
-
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
58
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
59
59
|
|
|
60
|
-
function
|
|
61
|
-
|
|
62
|
-
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
63
|
-
|
|
64
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
65
|
-
|
|
66
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
67
|
-
|
|
68
|
-
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
69
|
-
|
|
70
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
60
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
|
|
71
61
|
|
|
72
62
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
73
63
|
|
|
74
|
-
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
75
|
-
|
|
76
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
77
|
-
|
|
78
64
|
var log = (0, _debug["default"])('pie-lib:graphing:graph');
|
|
79
65
|
var graphPropTypes = {
|
|
80
66
|
axesSettings: _propTypes["default"].shape(_axis.AxisPropTypes),
|
|
81
67
|
backgroundMarks: _propTypes["default"].array,
|
|
82
68
|
className: _propTypes["default"].string,
|
|
69
|
+
collapsibleToolbar: _propTypes["default"].bool,
|
|
70
|
+
collapsibleToolbarTitle: _propTypes["default"].string,
|
|
83
71
|
domain: _plot.types.DomainType,
|
|
84
72
|
labels: _propTypes["default"].shape(_labels.LabelType),
|
|
85
73
|
labelModeEnabled: _propTypes["default"].bool,
|
|
@@ -129,30 +117,27 @@ var removeBuildingToolIfCurrentToolDiffers = function removeBuildingToolIfCurren
|
|
|
129
117
|
exports.removeBuildingToolIfCurrentToolDiffers = removeBuildingToolIfCurrentToolDiffers;
|
|
130
118
|
|
|
131
119
|
var Graph = /*#__PURE__*/function (_React$Component) {
|
|
132
|
-
|
|
120
|
+
(0, _inherits2["default"])(Graph, _React$Component);
|
|
133
121
|
|
|
134
122
|
var _super = _createSuper(Graph);
|
|
135
123
|
|
|
136
124
|
function Graph() {
|
|
137
125
|
var _this;
|
|
138
126
|
|
|
139
|
-
|
|
127
|
+
(0, _classCallCheck2["default"])(this, Graph);
|
|
140
128
|
|
|
141
129
|
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
142
130
|
args[_key] = arguments[_key];
|
|
143
131
|
}
|
|
144
132
|
|
|
145
133
|
_this = _super.call.apply(_super, [this].concat(args));
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
_defineProperty(_assertThisInitialized(_this), "componentDidMount", function () {
|
|
134
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {});
|
|
135
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "componentDidMount", function () {
|
|
150
136
|
return _this.setState({
|
|
151
137
|
labelNode: _this.labelNode
|
|
152
138
|
});
|
|
153
139
|
});
|
|
154
|
-
|
|
155
|
-
_defineProperty(_assertThisInitialized(_this), "changeMark", function (oldMark, newMark) {
|
|
140
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMark", function (oldMark, newMark) {
|
|
156
141
|
var _this$props = _this.props,
|
|
157
142
|
onChangeMarks = _this$props.onChangeMarks,
|
|
158
143
|
marks = _this$props.marks;
|
|
@@ -166,8 +151,7 @@ var Graph = /*#__PURE__*/function (_React$Component) {
|
|
|
166
151
|
onChangeMarks(newMarks);
|
|
167
152
|
}
|
|
168
153
|
});
|
|
169
|
-
|
|
170
|
-
_defineProperty(_assertThisInitialized(_this), "completeMark", function (markData) {
|
|
154
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "completeMark", function (markData) {
|
|
171
155
|
var _this$props2 = _this.props,
|
|
172
156
|
currentTool = _this$props2.currentTool,
|
|
173
157
|
marks = _this$props2.marks;
|
|
@@ -179,8 +163,7 @@ var Graph = /*#__PURE__*/function (_React$Component) {
|
|
|
179
163
|
|
|
180
164
|
_this.updateMarks(buildingMark, updatedMark);
|
|
181
165
|
});
|
|
182
|
-
|
|
183
|
-
_defineProperty(_assertThisInitialized(_this), "updateMarks", function (existing, update) {
|
|
166
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateMarks", function (existing, update) {
|
|
184
167
|
var addIfMissing = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
185
168
|
var _this$props3 = _this.props,
|
|
186
169
|
onChangeMarks = _this$props3.onChangeMarks,
|
|
@@ -199,19 +182,17 @@ var Graph = /*#__PURE__*/function (_React$Component) {
|
|
|
199
182
|
newMarks.splice(index, 1, update);
|
|
200
183
|
onChangeMarks(newMarks);
|
|
201
184
|
} else if (addIfMissing) {
|
|
202
|
-
onChangeMarks([].concat(
|
|
185
|
+
onChangeMarks([].concat((0, _toConsumableArray2["default"])(newMarks), [update]));
|
|
203
186
|
}
|
|
204
187
|
});
|
|
205
|
-
|
|
206
|
-
_defineProperty(_assertThisInitialized(_this), "getComponent", function (mark) {
|
|
188
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "getComponent", function (mark) {
|
|
207
189
|
if (!mark) return null;
|
|
208
190
|
var tool = (_this.props.tools || []).find(function (t) {
|
|
209
191
|
return t.type === mark.type;
|
|
210
192
|
});
|
|
211
193
|
return tool && tool.Component || null;
|
|
212
194
|
});
|
|
213
|
-
|
|
214
|
-
_defineProperty(_assertThisInitialized(_this), "onBgClick", function (point) {
|
|
195
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onBgClick", function (point) {
|
|
215
196
|
var x = point.x,
|
|
216
197
|
y = point.y;
|
|
217
198
|
var _this$props4 = _this.props,
|
|
@@ -243,11 +224,10 @@ var Graph = /*#__PURE__*/function (_React$Component) {
|
|
|
243
224
|
|
|
244
225
|
_this.updateMarks(buildingMark, updatedMark, true);
|
|
245
226
|
});
|
|
246
|
-
|
|
247
227
|
return _this;
|
|
248
228
|
}
|
|
249
229
|
|
|
250
|
-
|
|
230
|
+
(0, _createClass2["default"])(Graph, [{
|
|
251
231
|
key: "render",
|
|
252
232
|
value: function render() {
|
|
253
233
|
var _this2 = this;
|
|
@@ -276,20 +256,20 @@ var Graph = /*#__PURE__*/function (_React$Component) {
|
|
|
276
256
|
marks: marks || [],
|
|
277
257
|
currentTool: currentTool
|
|
278
258
|
});
|
|
279
|
-
return /*#__PURE__*/_react["default"].createElement(_plot.Root,
|
|
259
|
+
return /*#__PURE__*/_react["default"].createElement(_plot.Root, (0, _extends2["default"])({
|
|
280
260
|
rootRef: function rootRef(r) {
|
|
281
261
|
return _this2.rootNode = r;
|
|
282
262
|
},
|
|
283
263
|
title: title
|
|
284
|
-
}, common), /*#__PURE__*/_react["default"].createElement(_labels["default"],
|
|
264
|
+
}, common), /*#__PURE__*/_react["default"].createElement(_labels["default"], (0, _extends2["default"])({
|
|
285
265
|
value: labels
|
|
286
266
|
}, common)), /*#__PURE__*/_react["default"].createElement("g", {
|
|
287
267
|
transform: "translate(".concat(domain.padding, ", ").concat(range.padding, ")")
|
|
288
|
-
}, /*#__PURE__*/_react["default"].createElement(_grid["default"], common), /*#__PURE__*/_react["default"].createElement(_axis.Axes,
|
|
268
|
+
}, /*#__PURE__*/_react["default"].createElement(_grid["default"], common), /*#__PURE__*/_react["default"].createElement(_axis.Axes, (0, _extends2["default"])({}, axesSettings, common)), /*#__PURE__*/_react["default"].createElement(_bg["default"], (0, _extends2["default"])({}, size, {
|
|
289
269
|
onClick: this.onBgClick
|
|
290
270
|
}, common)), /*#__PURE__*/_react["default"].createElement("mask", {
|
|
291
271
|
id: "myMask"
|
|
292
|
-
}, /*#__PURE__*/_react["default"].createElement("rect",
|
|
272
|
+
}, /*#__PURE__*/_react["default"].createElement("rect", (0, _extends2["default"])({}, maskSize, {
|
|
293
273
|
fill: "white"
|
|
294
274
|
})), " "), /*#__PURE__*/_react["default"].createElement("g", {
|
|
295
275
|
id: "marks",
|
|
@@ -298,7 +278,7 @@ var Graph = /*#__PURE__*/function (_React$Component) {
|
|
|
298
278
|
var Component = _this2.getComponent(m);
|
|
299
279
|
|
|
300
280
|
var markType = m.type;
|
|
301
|
-
return /*#__PURE__*/_react["default"].createElement(Component,
|
|
281
|
+
return /*#__PURE__*/_react["default"].createElement(Component, (0, _extends2["default"])({
|
|
302
282
|
key: "".concat(markType, "-").concat(index, "-bg"),
|
|
303
283
|
mark: _objectSpread(_objectSpread({}, m), {}, {
|
|
304
284
|
disabled: true,
|
|
@@ -310,7 +290,7 @@ var Graph = /*#__PURE__*/function (_React$Component) {
|
|
|
310
290
|
var Component = _this2.getComponent(m);
|
|
311
291
|
|
|
312
292
|
var markType = m.type;
|
|
313
|
-
return /*#__PURE__*/_react["default"].createElement(Component,
|
|
293
|
+
return /*#__PURE__*/_react["default"].createElement(Component, (0, _extends2["default"])({
|
|
314
294
|
key: "".concat(markType, "-").concat(index),
|
|
315
295
|
mark: m,
|
|
316
296
|
coordinatesOnHover: coordinatesOnHover,
|
|
@@ -322,7 +302,7 @@ var Graph = /*#__PURE__*/function (_React$Component) {
|
|
|
322
302
|
labelNode: _this2.state.labelNode,
|
|
323
303
|
isToolActive: currentTool && markType === currentTool.type
|
|
324
304
|
}, common));
|
|
325
|
-
}), /*#__PURE__*/_react["default"].createElement("foreignObject",
|
|
305
|
+
}), /*#__PURE__*/_react["default"].createElement("foreignObject", (0, _extends2["default"])({
|
|
326
306
|
ref: function ref(labelNode) {
|
|
327
307
|
return _this2.labelNode = labelNode;
|
|
328
308
|
},
|
|
@@ -335,20 +315,16 @@ var Graph = /*#__PURE__*/function (_React$Component) {
|
|
|
335
315
|
})))));
|
|
336
316
|
}
|
|
337
317
|
}]);
|
|
338
|
-
|
|
339
318
|
return Graph;
|
|
340
319
|
}(_react["default"].Component);
|
|
341
320
|
|
|
342
321
|
exports.Graph = Graph;
|
|
343
|
-
|
|
344
|
-
_defineProperty(Graph, "propTypes", _objectSpread(_objectSpread({}, graphPropTypes), {}, {
|
|
322
|
+
(0, _defineProperty2["default"])(Graph, "propTypes", _objectSpread(_objectSpread({}, graphPropTypes), {}, {
|
|
345
323
|
currentTool: _propTypes["default"].object
|
|
346
324
|
}));
|
|
347
|
-
|
|
348
|
-
_defineProperty(Graph, "defaultProps", {
|
|
325
|
+
(0, _defineProperty2["default"])(Graph, "defaultProps", {
|
|
349
326
|
onChangeMarks: function onChangeMarks() {}
|
|
350
327
|
});
|
|
351
|
-
|
|
352
328
|
var _default = Graph;
|
|
353
329
|
exports["default"] = _default;
|
|
354
330
|
//# sourceMappingURL=graph.js.map
|
package/lib/graph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","names":["log","debug","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","cloneDeep","type","index","findIndex","isEqual","splice","Graph","setState","labelNode","oldMark","newMark","props","isDuplicatedMark","markData","updatedMark","complete","updateMarks","existing","update","addIfMissing","mark","tool","find","t","Component","point","addPoint","undefined","graphProps","createGraphProps","rootNode","maskSize","common","r","padding","onBgClick","map","getComponent","markType","disabled","isBackground","state","changeMark","completeMark","startDrag","stopDrag","pointerEvents","React","object"],"sources":["../src/graph.jsx"],"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';\nimport { isDuplicatedMark } from './utils';\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 && !isDuplicatedMark(newMark, marks, oldMark)) {\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 if (!update.building && isDuplicatedMark(update, marks)) {\n return;\n }\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 = point => {\n const { x, y } = point;\n const { labelModeEnabled, currentTool, marks } = this.props;\n\n log('[onBgClick] x,y: ', x, y);\n\n if (labelModeEnabled || !currentTool) {\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 rootRef={r => (this.rootNode = r)} title={title} {...common}>\n <Labels value={labels} {...common} />\n <g transform={`translate(${domain.padding}, ${range.padding})`}>\n <Grid {...common} />\n <Axes {...axesSettings} {...common} />\n <Bg {...size} onClick={this.onBgClick} {...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, isBackground: true }}\n labelNode={this.state.labelNode}\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={this.onBgClick}\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 </g>\n </Root>\n );\n }\n}\n\nexport default Graph;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"graph.js","names":["log","debug","graphPropTypes","axesSettings","PropTypes","shape","AxisPropTypes","backgroundMarks","array","className","string","collapsibleToolbar","bool","collapsibleToolbarTitle","domain","types","DomainType","labels","LabelType","labelModeEnabled","coordinatesOnHover","marks","onChangeMarks","func","range","size","width","number","isRequired","height","title","tools","getMaskSize","x","y","removeBuildingToolIfCurrentToolDiffers","currentTool","buildingMark","filter","m","building","newMarks","cloneDeep","type","index","findIndex","isEqual","splice","Graph","setState","labelNode","oldMark","newMark","props","isDuplicatedMark","markData","updatedMark","complete","updateMarks","existing","update","addIfMissing","mark","tool","find","t","Component","point","addPoint","undefined","graphProps","createGraphProps","rootNode","maskSize","common","r","padding","onBgClick","map","getComponent","markType","disabled","isBackground","state","changeMark","completeMark","startDrag","stopDrag","pointerEvents","React","object"],"sources":["../src/graph.jsx"],"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';\nimport { isDuplicatedMark } from './utils';\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 collapsibleToolbar: PropTypes.bool,\n collapsibleToolbarTitle: 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 && !isDuplicatedMark(newMark, marks, oldMark)) {\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 if (!update.building && isDuplicatedMark(update, marks)) {\n return;\n }\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 = point => {\n const { x, y } = point;\n const { labelModeEnabled, currentTool, marks } = this.props;\n\n log('[onBgClick] x,y: ', x, y);\n\n if (labelModeEnabled || !currentTool) {\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 rootRef={r => (this.rootNode = r)} title={title} {...common}>\n <Labels value={labels} {...common} />\n <g transform={`translate(${domain.padding}, ${range.padding})`}>\n <Grid {...common} />\n <Axes {...axesSettings} {...common} />\n <Bg {...size} onClick={this.onBgClick} {...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, isBackground: true }}\n labelNode={this.state.labelNode}\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={this.onBgClick}\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 </g>\n </Root>\n );\n }\n}\n\nexport default Graph;\n"],"mappings":"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"}
|
package/lib/grid-setup.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports["default"] = void 0;
|
|
7
9
|
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
8
12
|
var _react = _interopRequireDefault(require("react"));
|
|
9
13
|
|
|
10
14
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -27,27 +31,28 @@ var _configUi = require("@pie-lib/config-ui");
|
|
|
27
31
|
|
|
28
32
|
var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
|
|
29
33
|
|
|
30
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
31
|
-
|
|
32
34
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
33
35
|
|
|
34
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
|
|
35
|
-
|
|
36
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
36
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
37
37
|
|
|
38
38
|
var GridConfig = function GridConfig(props) {
|
|
39
39
|
var classes = props.classes,
|
|
40
40
|
disabled = props.disabled,
|
|
41
|
+
displayedFields = props.displayedFields,
|
|
41
42
|
labelValue = props.labelValue,
|
|
42
43
|
labelValues = props.labelValues,
|
|
43
44
|
gridValue = props.gridValue,
|
|
44
45
|
gridValues = props.gridValues,
|
|
45
46
|
_onChange = props.onChange;
|
|
47
|
+
var _displayedFields$labe = displayedFields.labelStep,
|
|
48
|
+
labelStep = _displayedFields$labe === void 0 ? {} : _displayedFields$labe,
|
|
49
|
+
_displayedFields$step = displayedFields.step,
|
|
50
|
+
step = _displayedFields$step === void 0 ? {} : _displayedFields$step;
|
|
46
51
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
47
52
|
className: classes.columnView
|
|
48
|
-
}, /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
53
|
+
}, step && step.enabled && /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
49
54
|
className: classes.mediumTextField,
|
|
50
|
-
label:
|
|
55
|
+
label: step.label || '',
|
|
51
56
|
value: gridValue,
|
|
52
57
|
customValues: gridValues,
|
|
53
58
|
variant: "outlined",
|
|
@@ -55,9 +60,9 @@ var GridConfig = function GridConfig(props) {
|
|
|
55
60
|
onChange: function onChange(e, v) {
|
|
56
61
|
return _onChange('step', v);
|
|
57
62
|
}
|
|
58
|
-
}), /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
63
|
+
}), labelStep && labelStep.enabled && /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
59
64
|
className: classes.mediumTextField,
|
|
60
|
-
label:
|
|
65
|
+
label: labelStep.label || '',
|
|
61
66
|
value: labelValue,
|
|
62
67
|
customValues: labelValues,
|
|
63
68
|
variant: "outlined",
|
|
@@ -71,20 +76,28 @@ var GridConfig = function GridConfig(props) {
|
|
|
71
76
|
var AxisConfig = function AxisConfig(props) {
|
|
72
77
|
var classes = props.classes,
|
|
73
78
|
disabled = props.disabled,
|
|
79
|
+
displayedFields = props.displayedFields,
|
|
80
|
+
displayHeader = props.displayHeader,
|
|
74
81
|
label = props.label,
|
|
75
82
|
maxValue = props.maxValue,
|
|
76
83
|
minValue = props.minValue,
|
|
77
84
|
_onChange2 = props.onChange,
|
|
78
85
|
type = props.type;
|
|
86
|
+
var _displayedFields$axis = displayedFields.axisLabel,
|
|
87
|
+
axisLabel = _displayedFields$axis === void 0 ? {} : _displayedFields$axis,
|
|
88
|
+
_displayedFields$min = displayedFields.min,
|
|
89
|
+
min = _displayedFields$min === void 0 ? {} : _displayedFields$min,
|
|
90
|
+
_displayedFields$max = displayedFields.max,
|
|
91
|
+
max = _displayedFields$max === void 0 ? {} : _displayedFields$max;
|
|
79
92
|
var activePlugins = ['bold', 'italic', 'underline', 'strikethrough' // 'languageCharacters'
|
|
80
93
|
];
|
|
81
94
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
82
95
|
className: classes.columnView
|
|
83
|
-
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
96
|
+
}, displayHeader && /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
84
97
|
variant: "subtitle2"
|
|
85
|
-
}, /*#__PURE__*/_react["default"].createElement("i", null, type === 'domain' ? 'x' : 'y'), "-axis"), /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
98
|
+
}, /*#__PURE__*/_react["default"].createElement("i", null, type === 'domain' ? 'x' : 'y'), "-axis"), min && min.enabled && /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
86
99
|
className: classes.mediumTextField,
|
|
87
|
-
label:
|
|
100
|
+
label: min.label || '',
|
|
88
101
|
value: minValue,
|
|
89
102
|
min: -10000,
|
|
90
103
|
max: maxValue - 0.01,
|
|
@@ -93,9 +106,9 @@ var AxisConfig = function AxisConfig(props) {
|
|
|
93
106
|
onChange: function onChange(e, v) {
|
|
94
107
|
return _onChange2('min', v);
|
|
95
108
|
}
|
|
96
|
-
}), /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
109
|
+
}), max && max.enabled && /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
97
110
|
className: classes.mediumTextField,
|
|
98
|
-
label:
|
|
111
|
+
label: max.label || '',
|
|
99
112
|
value: maxValue,
|
|
100
113
|
min: minValue + 0.01,
|
|
101
114
|
max: 10000,
|
|
@@ -104,8 +117,8 @@ var AxisConfig = function AxisConfig(props) {
|
|
|
104
117
|
onChange: function onChange(e, v) {
|
|
105
118
|
return _onChange2('max', v);
|
|
106
119
|
}
|
|
107
|
-
}), /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
|
|
108
|
-
label:
|
|
120
|
+
}), axisLabel && axisLabel.enabled && /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
|
|
121
|
+
label: axisLabel.label || '',
|
|
109
122
|
className: classes.mediumTextField
|
|
110
123
|
}, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
|
|
111
124
|
className: classes.axisLabel,
|
|
@@ -121,7 +134,8 @@ var AxisConfig = function AxisConfig(props) {
|
|
|
121
134
|
var GridSetup = function GridSetup(props) {
|
|
122
135
|
var classes = props.classes,
|
|
123
136
|
domain = props.domain,
|
|
124
|
-
|
|
137
|
+
_props$displayedField = props.displayedFields,
|
|
138
|
+
displayedFields = _props$displayedField === void 0 ? {} : _props$displayedField,
|
|
125
139
|
_props$gridValues = props.gridValues,
|
|
126
140
|
gridValues = _props$gridValues === void 0 ? {} : _props$gridValues,
|
|
127
141
|
includeAxes = props.includeAxes,
|
|
@@ -137,6 +151,32 @@ var GridSetup = function GridSetup(props) {
|
|
|
137
151
|
max: 41
|
|
138
152
|
};
|
|
139
153
|
|
|
154
|
+
var _ref = displayedFields || {},
|
|
155
|
+
_ref$axisLabel = _ref.axisLabel,
|
|
156
|
+
axisLabel = _ref$axisLabel === void 0 ? {} : _ref$axisLabel,
|
|
157
|
+
dimensionsEnabled = _ref.dimensionsEnabled,
|
|
158
|
+
includeAxesEnabled = _ref.includeAxesEnabled,
|
|
159
|
+
_ref$labelStep = _ref.labelStep,
|
|
160
|
+
labelStep = _ref$labelStep === void 0 ? {} : _ref$labelStep,
|
|
161
|
+
_ref$min = _ref.min,
|
|
162
|
+
min = _ref$min === void 0 ? {} : _ref$min,
|
|
163
|
+
_ref$max = _ref.max,
|
|
164
|
+
max = _ref$max === void 0 ? {} : _ref$max,
|
|
165
|
+
standardGridEnabled = _ref.standardGridEnabled,
|
|
166
|
+
_ref$step = _ref.step,
|
|
167
|
+
step = _ref$step === void 0 ? {} : _ref$step;
|
|
168
|
+
|
|
169
|
+
var displayAxisType = min.enabled || max.enabled || axisLabel.enabled || step.enabled || labelStep.enabled;
|
|
170
|
+
var gridConfigFields = {
|
|
171
|
+
step: step,
|
|
172
|
+
labelStep: labelStep
|
|
173
|
+
};
|
|
174
|
+
var axisConfigFields = {
|
|
175
|
+
min: min,
|
|
176
|
+
max: max,
|
|
177
|
+
axisLabel: axisLabel
|
|
178
|
+
};
|
|
179
|
+
|
|
140
180
|
var onIncludeAxes = function onIncludeAxes(includeAxes) {
|
|
141
181
|
var noAxesConfig = function noAxesConfig(type) {
|
|
142
182
|
var axis = type === 'domain' ? domain : range;
|
|
@@ -176,7 +216,7 @@ var GridSetup = function GridSetup(props) {
|
|
|
176
216
|
};
|
|
177
217
|
|
|
178
218
|
var onSizeChanged = function onSizeChanged(key, value) {
|
|
179
|
-
var graph = _objectSpread(_objectSpread({}, size), {},
|
|
219
|
+
var graph = _objectSpread(_objectSpread({}, size), {}, (0, _defineProperty2["default"])({}, key, value));
|
|
180
220
|
|
|
181
221
|
if (standardGrid) {
|
|
182
222
|
graph.height = value;
|
|
@@ -211,6 +251,8 @@ var GridSetup = function GridSetup(props) {
|
|
|
211
251
|
className: classes.rowView
|
|
212
252
|
}, /*#__PURE__*/_react["default"].createElement(AxisConfig, {
|
|
213
253
|
classes: classes,
|
|
254
|
+
displayedFields: axisConfigFields,
|
|
255
|
+
displayHeader: displayAxisType,
|
|
214
256
|
type: "domain",
|
|
215
257
|
minValue: domain.min,
|
|
216
258
|
maxValue: domain.max,
|
|
@@ -219,6 +261,8 @@ var GridSetup = function GridSetup(props) {
|
|
|
219
261
|
onChange: onDomainChanged
|
|
220
262
|
}), /*#__PURE__*/_react["default"].createElement(AxisConfig, {
|
|
221
263
|
classes: classes,
|
|
264
|
+
displayedFields: axisConfigFields,
|
|
265
|
+
displayHeader: displayAxisType,
|
|
222
266
|
type: "range",
|
|
223
267
|
minValue: range.min,
|
|
224
268
|
maxValue: range.max,
|
|
@@ -226,12 +270,13 @@ var GridSetup = function GridSetup(props) {
|
|
|
226
270
|
disabled: standardGrid,
|
|
227
271
|
includeAxes: includeAxes,
|
|
228
272
|
onChange: onRangeChanged
|
|
229
|
-
})), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
273
|
+
})), (min.enabled || max.enabled) && /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
230
274
|
className: classes.text
|
|
231
|
-
}, "If you want the axis to be visible, use a zero or negative Min Value, and a positive Max Value"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
275
|
+
}, "If you want the axis to be visible, use a zero or negative Min Value, and a positive Max Value"), (step.enabled || labelStep.enabled) && /*#__PURE__*/_react["default"].createElement("div", {
|
|
232
276
|
className: classes.rowView
|
|
233
277
|
}, /*#__PURE__*/_react["default"].createElement(GridConfig, {
|
|
234
278
|
classes: classes,
|
|
279
|
+
displayedFields: gridConfigFields,
|
|
235
280
|
gridValue: domain.step,
|
|
236
281
|
labelValue: domain.labelStep,
|
|
237
282
|
gridValues: gridValues.domain || [],
|
|
@@ -240,16 +285,17 @@ var GridSetup = function GridSetup(props) {
|
|
|
240
285
|
}), /*#__PURE__*/_react["default"].createElement(GridConfig, {
|
|
241
286
|
classes: classes,
|
|
242
287
|
disabled: standardGrid,
|
|
288
|
+
displayedFields: gridConfigFields,
|
|
243
289
|
gridValue: range.step,
|
|
244
290
|
labelValue: range.labelStep,
|
|
245
291
|
gridValues: gridValues.range || [],
|
|
246
292
|
labelValues: labelValues.range || [],
|
|
247
293
|
onChange: onRangeChanged
|
|
248
|
-
})), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
294
|
+
})), labelStep.enabled && /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
249
295
|
className: classes.text
|
|
250
296
|
}, "For unnumbered gridlines, enter a label interval of 0"));
|
|
251
297
|
|
|
252
|
-
var gridlinesConfig = /*#__PURE__*/_react["default"].createElement("div", {
|
|
298
|
+
var gridlinesConfig = max.enabled ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
253
299
|
className: classes.columnView
|
|
254
300
|
}, /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
255
301
|
className: classes.largeTextField,
|
|
@@ -272,8 +318,7 @@ var GridSetup = function GridSetup(props) {
|
|
|
272
318
|
onChange: function onChange(e, v) {
|
|
273
319
|
return onRangeChanged('max', v);
|
|
274
320
|
}
|
|
275
|
-
}));
|
|
276
|
-
|
|
321
|
+
})) : null;
|
|
277
322
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
278
323
|
className: classes.wrapper
|
|
279
324
|
}, /*#__PURE__*/_react["default"].createElement(_ExpansionPanel["default"], null, /*#__PURE__*/_react["default"].createElement(_ExpansionPanelSummary["default"], {
|
|
@@ -282,11 +327,11 @@ var GridSetup = function GridSetup(props) {
|
|
|
282
327
|
variant: "subtitle1"
|
|
283
328
|
}, "Customize Grid Setup")), /*#__PURE__*/_react["default"].createElement(_ExpansionPanelDetails["default"], null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
284
329
|
className: classes.content
|
|
285
|
-
}, /*#__PURE__*/_react["default"].createElement(_configUi.Toggle, {
|
|
330
|
+
}, includeAxesEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.Toggle, {
|
|
286
331
|
label: "Include axes and labels?",
|
|
287
332
|
toggle: onIncludeAxes,
|
|
288
333
|
checked: includeAxes
|
|
289
|
-
}), /*#__PURE__*/_react["default"].createElement(_configUi.Toggle, {
|
|
334
|
+
}), standardGridEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.Toggle, {
|
|
290
335
|
label: "Constrain to standard coordinate grid?",
|
|
291
336
|
toggle: onStandardGridChanged,
|
|
292
337
|
checked: standardGrid
|
|
@@ -323,7 +368,7 @@ var GridSetup = function GridSetup(props) {
|
|
|
323
368
|
GridSetup.propTypes = {
|
|
324
369
|
classes: _propTypes["default"].object,
|
|
325
370
|
domain: _propTypes["default"].object,
|
|
326
|
-
|
|
371
|
+
displayedFields: _propTypes["default"].object,
|
|
327
372
|
gridValues: _propTypes["default"].object,
|
|
328
373
|
includeAxes: _propTypes["default"].bool,
|
|
329
374
|
labelValues: _propTypes["default"].object,
|