@pie-lib/plot 2.24.6-esmbeta.0 → 2.25.0-mui-update.0

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/root.js CHANGED
@@ -1,77 +1,131 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports["default"] = exports.Root = void 0;
9
-
10
8
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
11
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
12
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
24
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
15
  var _react = _interopRequireDefault(require("react"));
27
-
28
- var _styles = require("@material-ui/core/styles");
29
-
16
+ var _styles = require("@mui/material/styles");
30
17
  var _propTypes = _interopRequireDefault(require("prop-types"));
31
-
32
18
  var _d3Selection = require("d3-selection");
33
-
34
19
  var _classnames = _interopRequireDefault(require("classnames"));
35
-
36
20
  var _renderUi = require("@pie-lib/render-ui");
37
-
38
21
  var _editableHtml = _interopRequireDefault(require("@pie-lib/editable-html"));
39
-
40
22
  var _types = require("./types");
41
-
42
23
  var _label = _interopRequireDefault(require("./label"));
43
-
44
24
  var _utils = require("./utils");
45
-
46
- 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; }
47
-
48
- 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; }
49
-
50
- 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); }; }
51
-
52
- 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; } }
53
-
54
- var Root = /*#__PURE__*/function (_React$Component) {
55
- (0, _inherits2["default"])(Root, _React$Component);
56
-
57
- var _super = _createSuper(Root);
58
-
25
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
26
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
27
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
28
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
29
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
30
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
31
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
32
+ var StyledRoot = (0, _styles.styled)('div')(function (_ref) {
33
+ var theme = _ref.theme;
34
+ return {
35
+ border: "solid 1px ".concat(_renderUi.color.primaryLight()),
36
+ color: _renderUi.color.defaults.TEXT,
37
+ backgroundColor: theme.palette.common.white,
38
+ touchAction: 'none',
39
+ position: 'relative',
40
+ boxSizing: 'unset' // to override the default border-box in IBX that breaks the component width layout
41
+ };
42
+ });
43
+ var Wrapper = (0, _styles.styled)('div')({
44
+ display: 'flex',
45
+ position: 'relative'
46
+ });
47
+ var DefineChartSvg = (0, _styles.styled)('svg')({
48
+ paddingLeft: '50px',
49
+ overflow: 'visible'
50
+ });
51
+ var ChartSvg = (0, _styles.styled)('svg')({
52
+ overflow: 'visible'
53
+ });
54
+ var GraphBox = (0, _styles.styled)('g')({
55
+ cursor: 'pointer',
56
+ userSelect: 'none'
57
+ });
58
+ var GraphTitle = (0, _styles.styled)('div')(function (_ref2) {
59
+ var theme = _ref2.theme;
60
+ return {
61
+ color: _renderUi.color.defaults.TEXT,
62
+ fontSize: theme.typography.fontSize + 2,
63
+ padding: "".concat(theme.spacing(1.5), " ").concat(theme.spacing(0.5), " 0"),
64
+ textAlign: 'center',
65
+ '&.disabled': {
66
+ pointerEvents: 'none'
67
+ },
68
+ '&.rightMargin': {
69
+ marginRight: '74px'
70
+ }
71
+ };
72
+ });
73
+ var ChartTitle = (0, _styles.styled)('div')(function (_ref3) {
74
+ var theme = _ref3.theme;
75
+ return {
76
+ color: _renderUi.color.defaults.TEXT,
77
+ fontSize: theme.typography.fontSize + 4,
78
+ padding: "".concat(theme.spacing(1.5), " ").concat(theme.spacing(0.5), " 0"),
79
+ textAlign: 'center',
80
+ '&.disabled': {
81
+ pointerEvents: 'none'
82
+ },
83
+ '&.rightMargin': {
84
+ marginRight: '74px'
85
+ }
86
+ };
87
+ });
88
+ var TopPixelGuides = (0, _styles.styled)('div')({
89
+ display: 'flex',
90
+ paddingTop: '6px'
91
+ });
92
+ var TopPixelIndicator = (0, _styles.styled)('div')({
93
+ display: 'flex',
94
+ flexDirection: 'column',
95
+ alignItems: 'center',
96
+ width: '100px',
97
+ pointerEvents: 'none',
98
+ userSelect: 'none'
99
+ });
100
+ var SidePixelGuides = (0, _styles.styled)('div')({
101
+ width: '70px',
102
+ display: 'flex',
103
+ flexDirection: 'column',
104
+ marginRight: '6px'
105
+ });
106
+ var SidePixelIndicator = (0, _styles.styled)('div')({
107
+ textAlign: 'right',
108
+ height: '20px',
109
+ pointerEvents: 'none',
110
+ userSelect: 'none',
111
+ '&:not(:last-child)': {
112
+ marginBottom: '80px'
113
+ }
114
+ });
115
+ var Root = exports.Root = /*#__PURE__*/function (_React$Component) {
59
116
  function Root(props) {
60
117
  var _this;
61
-
62
118
  (0, _classCallCheck2["default"])(this, Root);
63
- _this = _super.call(this, props);
64
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "mouseMove", function (g) {
119
+ _this = _callSuper(this, Root, [props]);
120
+ (0, _defineProperty2["default"])(_this, "mouseMove", function (g) {
65
121
  var _this$props = _this.props,
66
- graphProps = _this$props.graphProps,
67
- onMouseMove = _this$props.onMouseMove;
68
-
122
+ graphProps = _this$props.graphProps,
123
+ onMouseMove = _this$props.onMouseMove;
69
124
  if (!onMouseMove) {
70
125
  return;
71
126
  }
72
-
73
127
  var scale = graphProps.scale,
74
- snap = graphProps.snap;
128
+ snap = graphProps.snap;
75
129
  var coords = (0, _d3Selection.mouse)(g._groups[0][0]);
76
130
  var x = scale.x.invert(coords[0]);
77
131
  var y = scale.y.invert(coords[1]);
@@ -81,61 +135,98 @@ var Root = /*#__PURE__*/function (_React$Component) {
81
135
  };
82
136
  onMouseMove(snapped);
83
137
  });
84
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChangeLabel", function (newValue, side) {
138
+ (0, _defineProperty2["default"])(_this, "onChangeLabel", function (newValue, side) {
85
139
  var _this$props2 = _this.props,
86
- labels = _this$props2.labels,
87
- onChangeLabels = _this$props2.onChangeLabels,
88
- isChart = _this$props2.isChart;
89
-
140
+ labels = _this$props2.labels,
141
+ onChangeLabels = _this$props2.onChangeLabels,
142
+ isChart = _this$props2.isChart;
90
143
  if (!onChangeLabels) {
91
144
  return;
92
145
  }
93
-
94
146
  if (isChart) {
95
147
  if (side === 'left') {
96
148
  onChangeLabels('range', newValue);
97
149
  } else {
98
150
  onChangeLabels('domain', newValue);
99
151
  }
100
-
101
152
  return;
102
153
  }
103
-
104
154
  onChangeLabels(_objectSpread(_objectSpread({}, labels), {}, (0, _defineProperty2["default"])({}, side, newValue)));
105
155
  });
106
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "measureTitleHeight", function () {
156
+ (0, _defineProperty2["default"])(_this, "measureTitleHeight", function () {
107
157
  var titleElement = _this.titleRef;
108
-
109
158
  if (titleElement) {
110
159
  var titleHeight = titleElement.clientHeight;
111
-
112
160
  _this.setState({
113
161
  titleHeight: titleHeight,
114
162
  prevTitle: _this.props.title
115
163
  });
164
+ if (!_this.resizeObserver && typeof ResizeObserver !== 'undefined') {
165
+ _this.setupVisibilityObserver();
166
+ }
167
+ }
168
+ });
169
+ (0, _defineProperty2["default"])(_this, "handleKeyDown", function () {
170
+ setTimeout(function () {
171
+ _this.measureTitleHeight();
172
+ }, 0);
173
+ });
174
+ // handle edge case where chart is hidden with display:none and then shown with display:block
175
+ (0, _defineProperty2["default"])(_this, "setupVisibilityObserver", function () {
176
+ if (typeof ResizeObserver !== 'undefined' && _this.titleRef) {
177
+ _this.resizeObserver = new ResizeObserver(function (entries) {
178
+ var _iterator = _createForOfIteratorHelper(entries),
179
+ _step;
180
+ try {
181
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
182
+ var entry = _step.value;
183
+ var _entry$contentRect = entry.contentRect,
184
+ width = _entry$contentRect.width,
185
+ height = _entry$contentRect.height;
186
+ // trigger if element becomes visible and we haven't measured this height yet
187
+ if (width > 0 && height > 0) {
188
+ setTimeout(function () {
189
+ _this.measureTitleHeight();
190
+ }, 10);
191
+ break;
192
+ }
193
+ }
194
+ } catch (err) {
195
+ _iterator.e(err);
196
+ } finally {
197
+ _iterator.f();
198
+ }
199
+ });
200
+ _this.resizeObserver.observe(_this.titleRef);
116
201
  }
117
202
  });
118
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleKeyDown", function () {
119
- setTimeout(_this.measureTitleHeight, 0);
203
+ (0, _defineProperty2["default"])(_this, "cleanupVisibilityObserver", function () {
204
+ if (_this.resizeObserver) {
205
+ _this.resizeObserver.disconnect();
206
+ _this.resizeObserver = null;
207
+ }
120
208
  });
121
209
  _this.state = {
122
210
  titleHeight: 0
123
211
  };
212
+ _this.resizeObserver = null;
124
213
  return _this;
125
214
  }
126
-
127
- (0, _createClass2["default"])(Root, [{
215
+ (0, _inherits2["default"])(Root, _React$Component);
216
+ return (0, _createClass2["default"])(Root, [{
128
217
  key: "componentDidMount",
129
218
  value: function componentDidMount() {
130
219
  var g = (0, _d3Selection.select)(this.g);
131
220
  g.on('mousemove', this.mouseMove.bind(this, g));
132
221
  this.measureTitleHeight();
222
+ this.setupVisibilityObserver();
133
223
  }
134
224
  }, {
135
225
  key: "componentWillUnmount",
136
226
  value: function componentWillUnmount() {
137
227
  var g = (0, _d3Selection.select)(this.g);
138
228
  g.on('mousemove', null);
229
+ this.cleanupVisibilityObserver();
139
230
  }
140
231
  }, {
141
232
  key: "componentDidUpdate",
@@ -148,50 +239,46 @@ var Root = /*#__PURE__*/function (_React$Component) {
148
239
  key: "render",
149
240
  value: function render() {
150
241
  var _this2 = this;
151
-
152
242
  var _this$props3 = this.props,
153
- disabledTitle = _this$props3.disabledTitle,
154
- disabledLabels = _this$props3.disabledLabels,
155
- labels = _this$props3.labels,
156
- labelsPlaceholders = _this$props3.labelsPlaceholders,
157
- titlePlaceholder = _this$props3.titlePlaceholder,
158
- graphProps = _this$props3.graphProps,
159
- children = _this$props3.children,
160
- classes = _this$props3.classes,
161
- defineChart = _this$props3.defineChart,
162
- onChangeTitle = _this$props3.onChangeTitle,
163
- isChart = _this$props3.isChart,
164
- showLabels = _this$props3.showLabels,
165
- showPixelGuides = _this$props3.showPixelGuides,
166
- showTitle = _this$props3.showTitle,
167
- title = _this$props3.title,
168
- rootRef = _this$props3.rootRef,
169
- _this$props3$mathMlOp = _this$props3.mathMlOptions,
170
- mathMlOptions = _this$props3$mathMlOp === void 0 ? {} : _this$props3$mathMlOp,
171
- labelsCharactersLimit = _this$props3.labelsCharactersLimit;
243
+ disabledTitle = _this$props3.disabledTitle,
244
+ disabledLabels = _this$props3.disabledLabels,
245
+ labels = _this$props3.labels,
246
+ labelsPlaceholders = _this$props3.labelsPlaceholders,
247
+ titlePlaceholder = _this$props3.titlePlaceholder,
248
+ graphProps = _this$props3.graphProps,
249
+ children = _this$props3.children,
250
+ defineChart = _this$props3.defineChart,
251
+ onChangeTitle = _this$props3.onChangeTitle,
252
+ isChart = _this$props3.isChart,
253
+ showLabels = _this$props3.showLabels,
254
+ showPixelGuides = _this$props3.showPixelGuides,
255
+ showTitle = _this$props3.showTitle,
256
+ title = _this$props3.title,
257
+ rootRef = _this$props3.rootRef,
258
+ _this$props3$mathMlOp = _this$props3.mathMlOptions,
259
+ mathMlOptions = _this$props3$mathMlOp === void 0 ? {} : _this$props3$mathMlOp,
260
+ labelsCharactersLimit = _this$props3.labelsCharactersLimit;
172
261
  var _graphProps$size = graphProps.size,
173
- _graphProps$size$widt = _graphProps$size.width,
174
- width = _graphProps$size$widt === void 0 ? 500 : _graphProps$size$widt,
175
- _graphProps$size$heig = _graphProps$size.height,
176
- height = _graphProps$size$heig === void 0 ? 500 : _graphProps$size$heig,
177
- domain = graphProps.domain,
178
- range = graphProps.range;
262
+ _graphProps$size$widt = _graphProps$size.width,
263
+ width = _graphProps$size$widt === void 0 ? 500 : _graphProps$size$widt,
264
+ _graphProps$size$heig = _graphProps$size.height,
265
+ height = _graphProps$size$heig === void 0 ? 500 : _graphProps$size$heig,
266
+ domain = graphProps.domain,
267
+ range = graphProps.range;
179
268
  var topPadding = 40;
180
269
  var leftPadding = (0, _utils.isEmptyString)((0, _utils.extractTextFromHTML)(labels === null || labels === void 0 ? void 0 : labels.left)) && (0, _utils.isEmptyObject)(labelsPlaceholders) ? 48 : 70;
181
270
  var rightPadding = (0, _utils.isEmptyString)((0, _utils.extractTextFromHTML)(labels === null || labels === void 0 ? void 0 : labels.right)) && (0, _utils.isEmptyObject)(labelsPlaceholders) ? 48 : 70;
182
271
  var finalWidth = width + leftPadding + rightPadding + (domain.padding || 0) * 2;
183
272
  var finalHeight = height + topPadding * 2 + (range.padding || 0) * 2;
184
- var activeTitlePlugins = ['bold', 'italic', 'underline', 'superscript', 'subscript', 'strikethrough', 'math' // 'languageCharacters'
273
+ var activeTitlePlugins = ['bold', 'italic', 'underline', 'superscript', 'subscript', 'strikethrough', 'math'
274
+ // 'languageCharacters'
185
275
  ];
186
276
  var actualHeight = defineChart && showPixelGuides ? height - 160 : height;
187
277
  var nbOfVerticalLines = parseInt(width / 100);
188
278
  var nbOfHorizontalLines = parseInt(actualHeight / 100);
189
279
  var sideGridlinesPadding = parseInt(actualHeight % 100);
190
280
  var titleHeight = this.state.titleHeight;
191
- return /*#__PURE__*/_react["default"].createElement("div", {
192
- className: classes.root
193
- }, showPixelGuides && /*#__PURE__*/_react["default"].createElement("div", {
194
- className: classes.topPixelGuides,
281
+ return /*#__PURE__*/_react["default"].createElement(StyledRoot, null, showPixelGuides && /*#__PURE__*/_react["default"].createElement(TopPixelGuides, {
195
282
  style: {
196
283
  marginLeft: isChart ? 80 : showLabels ? 30 : 10
197
284
  }
@@ -199,9 +286,7 @@ var Root = /*#__PURE__*/function (_React$Component) {
199
286
  return /*#__PURE__*/_react["default"].createElement(_renderUi.Readable, {
200
287
  "false": true,
201
288
  key: "top-guide-".concat(value)
202
- }, /*#__PURE__*/_react["default"].createElement("div", {
203
- className: classes.topPixelIndicator
204
- }, /*#__PURE__*/_react["default"].createElement("div", null, value * 100, "px"), /*#__PURE__*/_react["default"].createElement("div", null, "|")));
289
+ }, /*#__PURE__*/_react["default"].createElement(TopPixelIndicator, null, /*#__PURE__*/_react["default"].createElement("div", null, value * 100, "px"), /*#__PURE__*/_react["default"].createElement("div", null, "|")));
205
290
  })), showTitle && (disabledTitle ? /*#__PURE__*/_react["default"].createElement("div", {
206
291
  ref: function ref(r) {
207
292
  return _this2.titleRef = r;
@@ -210,20 +295,29 @@ var Root = /*#__PURE__*/function (_React$Component) {
210
295
  width: finalWidth
211
296
  }), (0, _utils.isEmptyString)((0, _utils.extractTextFromHTML)(title)) && {
212
297
  display: 'none'
213
- }),
214
- className: (0, _classnames["default"])(isChart ? classes.chartTitle : classes.graphTitle, classes.disabledTitle),
298
+ })
299
+ }, isChart ? /*#__PURE__*/_react["default"].createElement(ChartTitle, {
300
+ className: "disabled",
215
301
  dangerouslySetInnerHTML: {
216
302
  __html: title || ''
217
303
  }
218
- }) : /*#__PURE__*/_react["default"].createElement("div", {
304
+ }) : /*#__PURE__*/_react["default"].createElement(GraphTitle, {
305
+ className: "disabled",
306
+ dangerouslySetInnerHTML: {
307
+ __html: title || ''
308
+ }
309
+ })) : /*#__PURE__*/_react["default"].createElement("div", {
219
310
  ref: function ref(r) {
220
311
  return _this2.titleRef = r;
221
312
  }
313
+ }, isChart ? /*#__PURE__*/_react["default"].createElement(ChartTitle, {
314
+ className: (0, _classnames["default"])({
315
+ rightMargin: showPixelGuides
316
+ })
222
317
  }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
223
318
  style: isChart && {
224
319
  width: finalWidth
225
320
  },
226
- className: (0, _classnames["default"])((0, _defineProperty2["default"])({}, classes.rightMargin, showPixelGuides), isChart ? classes.chartTitle : classes.graphTitle),
227
321
  markup: title || '',
228
322
  onChange: onChangeTitle,
229
323
  placeholder: defineChart && titlePlaceholder || !disabledTitle && 'Click here to add a title for this graph',
@@ -234,7 +328,25 @@ var Root = /*#__PURE__*/function (_React$Component) {
234
328
  activePlugins: activeTitlePlugins,
235
329
  disableScrollbar: true,
236
330
  onKeyDown: this.handleKeyDown
237
- }))), showLabels && !isChart && /*#__PURE__*/_react["default"].createElement(_label["default"], {
331
+ })) : /*#__PURE__*/_react["default"].createElement(GraphTitle, {
332
+ className: (0, _classnames["default"])({
333
+ rightMargin: showPixelGuides
334
+ })
335
+ }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
336
+ style: isChart && {
337
+ width: finalWidth
338
+ },
339
+ markup: title || '',
340
+ onChange: onChangeTitle,
341
+ placeholder: defineChart && titlePlaceholder || !disabledTitle && 'Click here to add a title for this graph',
342
+ toolbarOpts: {
343
+ noPadding: true,
344
+ noBorder: true
345
+ },
346
+ activePlugins: activeTitlePlugins,
347
+ disableScrollbar: true,
348
+ onKeyDown: this.handleKeyDown
349
+ })))), showLabels && !isChart && /*#__PURE__*/_react["default"].createElement(_label["default"], {
238
350
  side: "top",
239
351
  text: labels.top,
240
352
  disabledLabel: disabledLabels,
@@ -246,9 +358,7 @@ var Root = /*#__PURE__*/function (_React$Component) {
246
358
  },
247
359
  mathMlOptions: mathMlOptions,
248
360
  charactersLimit: labelsCharactersLimit
249
- }), /*#__PURE__*/_react["default"].createElement("div", {
250
- className: classes.wrapper
251
- }, showLabels && /*#__PURE__*/_react["default"].createElement(_label["default"], {
361
+ }), /*#__PURE__*/_react["default"].createElement(Wrapper, null, showLabels && /*#__PURE__*/_react["default"].createElement(_label["default"], {
252
362
  side: "left",
253
363
  text: labels.left,
254
364
  disabledLabel: disabledLabels,
@@ -262,19 +372,27 @@ var Root = /*#__PURE__*/function (_React$Component) {
262
372
  },
263
373
  mathMlOptions: mathMlOptions,
264
374
  charactersLimit: labelsCharactersLimit
265
- }), /*#__PURE__*/_react["default"].createElement("svg", {
375
+ }), defineChart ? /*#__PURE__*/_react["default"].createElement(DefineChartSvg, {
266
376
  width: finalWidth,
267
- height: finalHeight,
268
- className: defineChart ? classes.defineChart : classes.chart
269
- }, /*#__PURE__*/_react["default"].createElement("g", {
377
+ height: finalHeight
378
+ }, /*#__PURE__*/_react["default"].createElement(GraphBox, {
379
+ ref: function ref(r) {
380
+ _this2.g = r;
381
+ if (rootRef) {
382
+ rootRef(r);
383
+ }
384
+ },
385
+ transform: "translate(".concat(leftPadding + (domain.padding || 0), ", ").concat(topPadding + (range.padding || 0), ")")
386
+ }, children)) : /*#__PURE__*/_react["default"].createElement(ChartSvg, {
387
+ width: finalWidth,
388
+ height: finalHeight
389
+ }, /*#__PURE__*/_react["default"].createElement(GraphBox, {
270
390
  ref: function ref(r) {
271
391
  _this2.g = r;
272
-
273
392
  if (rootRef) {
274
393
  rootRef(r);
275
394
  }
276
395
  },
277
- className: classes.graphBox,
278
396
  transform: "translate(".concat(leftPadding + (domain.padding || 0), ", ").concat(topPadding + (range.padding || 0), ")")
279
397
  }, children)), showLabels && !isChart && /*#__PURE__*/_react["default"].createElement(_label["default"], {
280
398
  side: "right",
@@ -288,8 +406,7 @@ var Root = /*#__PURE__*/function (_React$Component) {
288
406
  },
289
407
  mathMlOptions: mathMlOptions,
290
408
  charactersLimit: labelsCharactersLimit
291
- }), showPixelGuides && /*#__PURE__*/_react["default"].createElement("div", {
292
- className: classes.sidePixelGuides,
409
+ }), showPixelGuides && /*#__PURE__*/_react["default"].createElement(SidePixelGuides, {
293
410
  style: {
294
411
  paddingTop: sideGridlinesPadding,
295
412
  marginTop: 31
@@ -298,9 +415,7 @@ var Root = /*#__PURE__*/function (_React$Component) {
298
415
  return /*#__PURE__*/_react["default"].createElement(_renderUi.Readable, {
299
416
  "false": true,
300
417
  key: "top-guide-".concat(value)
301
- }, /*#__PURE__*/_react["default"].createElement("div", {
302
- className: classes.sidePixelIndicator
303
- }, "\u2501 ", value * 100, "px"));
418
+ }, /*#__PURE__*/_react["default"].createElement(SidePixelIndicator, null, "\u2501 ", value * 100, "px"));
304
419
  }))), showLabels && /*#__PURE__*/_react["default"].createElement(_label["default"], {
305
420
  side: "bottom",
306
421
  text: labels.bottom,
@@ -319,11 +434,7 @@ var Root = /*#__PURE__*/function (_React$Component) {
319
434
  }));
320
435
  }
321
436
  }]);
322
- return Root;
323
- }(_react["default"].Component); // use default color theme style to avoid color contrast issues
324
-
325
-
326
- exports.Root = Root;
437
+ }(_react["default"].Component);
327
438
  (0, _defineProperty2["default"])(Root, "propTypes", {
328
439
  title: _propTypes["default"].string,
329
440
  children: _types.ChildrenType,
@@ -336,7 +447,6 @@ exports.Root = Root;
336
447
  labelsPlaceholders: _propTypes["default"].object,
337
448
  onChangeTitle: _propTypes["default"].func,
338
449
  onMouseMove: _propTypes["default"].func,
339
- classes: _propTypes["default"].object.isRequired,
340
450
  showLabels: _propTypes["default"].bool,
341
451
  showTitle: _propTypes["default"].bool,
342
452
  showPixelGuides: _propTypes["default"].bool,
@@ -346,83 +456,5 @@ exports.Root = Root;
346
456
  mathMlOptions: _propTypes["default"].object,
347
457
  labelsCharactersLimit: _propTypes["default"].number
348
458
  });
349
-
350
- var styles = function styles(theme) {
351
- return {
352
- root: {
353
- border: "solid 1px ".concat(_renderUi.color.primaryLight()),
354
- color: _renderUi.color.defaults.TEXT,
355
- backgroundColor: theme.palette.common.white,
356
- touchAction: 'none',
357
- position: 'relative',
358
- boxSizing: 'unset' // to override the default border-box in IBX that breaks the component width layout
359
-
360
- },
361
- wrapper: {
362
- display: 'flex',
363
- position: 'relative'
364
- },
365
- svg: {},
366
- defineChart: {
367
- paddingLeft: '50px',
368
- overflow: 'visible'
369
- },
370
- chart: {
371
- overflow: 'visible'
372
- },
373
- graphBox: {
374
- cursor: 'pointer',
375
- userSelect: 'none'
376
- },
377
- graphTitle: {
378
- color: _renderUi.color.defaults.TEXT,
379
- fontSize: theme.typography.fontSize + 2,
380
- padding: "".concat(theme.spacing.unit * 1.5, "px ").concat(theme.spacing.unit / 2, "px 0"),
381
- textAlign: 'center'
382
- },
383
- chartTitle: {
384
- color: _renderUi.color.defaults.TEXT,
385
- fontSize: theme.typography.fontSize + 4,
386
- padding: "".concat(theme.spacing.unit * 1.5, "px ").concat(theme.spacing.unit / 2, "px 0"),
387
- textAlign: 'center'
388
- },
389
- disabledTitle: {
390
- pointerEvents: 'none'
391
- },
392
- rightMargin: {
393
- marginRight: '74px'
394
- },
395
- topPixelGuides: {
396
- display: 'flex',
397
- paddingTop: '6px'
398
- },
399
- topPixelIndicator: {
400
- display: 'flex',
401
- flexDirection: 'column',
402
- alignItems: 'center',
403
- width: '100px',
404
- pointerEvents: 'none',
405
- userSelect: 'none'
406
- },
407
- sidePixelGuides: {
408
- width: '70px',
409
- display: 'flex',
410
- flexDirection: 'column',
411
- marginRight: '6px'
412
- },
413
- sidePixelIndicator: {
414
- textAlign: 'right',
415
- height: '20px',
416
- pointerEvents: 'none',
417
- userSelect: 'none',
418
- '&:not(:last-child)': {
419
- marginBottom: '80px'
420
- }
421
- }
422
- };
423
- };
424
-
425
- var _default = (0, _styles.withStyles)(styles)(Root);
426
-
427
- exports["default"] = _default;
459
+ var _default = exports["default"] = Root;
428
460
  //# sourceMappingURL=root.js.map