@pie-lib/plot 3.2.0-next.9 → 4.0.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 CHANGED
@@ -3,6 +3,135 @@
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
+ ## [4.0.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@4.0.0...@pie-lib/plot@4.0.1) (2026-04-28)
7
+
8
+ **Note:** Version bump only for package @pie-lib/plot
9
+
10
+ # [3.2.0-next.38](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.37...@pie-lib/plot@3.2.0-next.38) (2026-04-24)
11
+
12
+ ### Bug Fixes
13
+
14
+ - enhance drag handling and prevent click interference in draggable components. fix auto input label PIE-428 ([cc06766](https://github.com/pie-framework/pie-lib/commit/cc06766fab6960356f3e7f8975da1f12f3358a9e))
15
+ - refactor drag event handling to use reusable mockStartEvent for consistency ([5afea30](https://github.com/pie-framework/pie-lib/commit/5afea30ead6caa387fa1822c7d498069b704d9c8))
16
+
17
+ # [3.2.0-next.37](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.36...@pie-lib/plot@3.2.0-next.37) (2026-04-24)
18
+
19
+ ### Bug Fixes
20
+
21
+ - add stopPropagation to onStop calls in gridDraggable tests ([6049268](https://github.com/pie-framework/pie-lib/commit/6049268d91b0498285df1ac3ad628f45f328be93))
22
+ - ensure onClick is called for existing mark points/lines and does not interfere with drag PIE-426 PIE-427 ([1cb4f00](https://github.com/pie-framework/pie-lib/commit/1cb4f00118ff24ddffe4c1ee2a091daccafa4d15))
23
+
24
+ # [3.2.0-next.36](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.35...@pie-lib/plot@3.2.0-next.36) (2026-04-23)
25
+
26
+ ### Bug Fixes
27
+
28
+ - **plot:** center placeholder PIE-171 ([dd61600](https://github.com/pie-framework/pie-lib/commit/dd61600afa15b20b309624514b5b2945dfd090e0))
29
+
30
+ # [3.2.0-next.35](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.34...@pie-lib/plot@3.2.0-next.35) (2026-04-17)
31
+
32
+ **Note:** Version bump only for package @pie-lib/plot
33
+
34
+ # [3.2.0-next.34](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.33...@pie-lib/plot@3.2.0-next.34) (2026-04-16)
35
+
36
+ **Note:** Version bump only for package @pie-lib/plot
37
+
38
+ # [3.2.0-next.33](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.32...@pie-lib/plot@3.2.0-next.33) (2026-04-16)
39
+
40
+ **Note:** Version bump only for package @pie-lib/plot
41
+
42
+ # [3.2.0-next.32](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.31...@pie-lib/plot@3.2.0-next.32) (2026-04-16)
43
+
44
+ **Note:** Version bump only for package @pie-lib/plot
45
+
46
+ # [3.2.0-next.31](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.30...@pie-lib/plot@3.2.0-next.31) (2026-04-15)
47
+
48
+ **Note:** Version bump only for package @pie-lib/plot
49
+
50
+ # [3.2.0-next.30](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.29...@pie-lib/plot@3.2.0-next.30) (2026-04-15)
51
+
52
+ **Note:** Version bump only for package @pie-lib/plot
53
+
54
+ # [3.2.0-next.29](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.28...@pie-lib/plot@3.2.0-next.29) (2026-04-14)
55
+
56
+ **Note:** Version bump only for package @pie-lib/plot
57
+
58
+ # [3.2.0-next.28](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.27...@pie-lib/plot@3.2.0-next.28) (2026-04-13)
59
+
60
+ **Note:** Version bump only for package @pie-lib/plot
61
+
62
+ # [3.2.0-next.27](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.26...@pie-lib/plot@3.2.0-next.27) (2026-04-09)
63
+
64
+ **Note:** Version bump only for package @pie-lib/plot
65
+
66
+ # [3.2.0-next.26](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.25...@pie-lib/plot@3.2.0-next.26) (2026-04-09)
67
+
68
+ **Note:** Version bump only for package @pie-lib/plot
69
+
70
+ # [3.2.0-next.25](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.24...@pie-lib/plot@3.2.0-next.25) (2026-04-08)
71
+
72
+ **Note:** Version bump only for package @pie-lib/plot
73
+
74
+ # [3.2.0-next.24](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.23...@pie-lib/plot@3.2.0-next.24) (2026-04-07)
75
+
76
+ ### Bug Fixes
77
+
78
+ - **plot:** set boxSizing for svg to avoid dif env overwrite the default PIE-74 ([17d4e83](https://github.com/pie-framework/pie-lib/commit/17d4e83f8300dbe7e5dc797b76660f685f1f1dc6))
79
+
80
+ # [3.2.0-next.23](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.22...@pie-lib/plot@3.2.0-next.23) (2026-04-06)
81
+
82
+ **Note:** Version bump only for package @pie-lib/plot
83
+
84
+ # [3.2.0-next.22](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.21...@pie-lib/plot@3.2.0-next.22) (2026-04-03)
85
+
86
+ ### Bug Fixes
87
+
88
+ - **graphing/plot:** improve drag handling to prevent misidentifying clicks as drags PD-5598 ([40a65a3](https://github.com/pie-framework/pie-lib/commit/40a65a312ec06227309fceac848bb8c7a266b1bb))
89
+ - **plot:** remove unnecessary space, prevent new lines, center placeholder PD-5674 ([9840d80](https://github.com/pie-framework/pie-lib/commit/9840d80a1351f19adbe3396d3abae5fb4e310494))
90
+
91
+ # [3.2.0-next.21](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.20...@pie-lib/plot@3.2.0-next.21) (2026-03-31)
92
+
93
+ **Note:** Version bump only for package @pie-lib/plot
94
+
95
+ # [3.2.0-next.20](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.19...@pie-lib/plot@3.2.0-next.20) (2026-03-25)
96
+
97
+ **Note:** Version bump only for package @pie-lib/plot
98
+
99
+ # [3.2.0-next.19](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.18...@pie-lib/plot@3.2.0-next.19) (2026-03-18)
100
+
101
+ **Note:** Version bump only for package @pie-lib/plot
102
+
103
+ # [3.2.0-next.18](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.17...@pie-lib/plot@3.2.0-next.18) (2026-03-18)
104
+
105
+ **Note:** Version bump only for package @pie-lib/plot
106
+
107
+ # [3.2.0-next.17](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.16...@pie-lib/plot@3.2.0-next.17) (2026-03-18)
108
+
109
+ **Note:** Version bump only for package @pie-lib/plot
110
+
111
+ # [3.2.0-next.16](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.15...@pie-lib/plot@3.2.0-next.16) (2026-03-11)
112
+
113
+ **Note:** Version bump only for package @pie-lib/plot
114
+
115
+ # [3.2.0-next.15](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.14...@pie-lib/plot@3.2.0-next.15) (2026-03-11)
116
+
117
+ **Note:** Version bump only for package @pie-lib/plot
118
+
119
+ # [3.2.0-next.14](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.13...@pie-lib/plot@3.2.0-next.14) (2026-03-09)
120
+
121
+ **Note:** Version bump only for package @pie-lib/plot
122
+
123
+ # [3.2.0-next.13](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.12...@pie-lib/plot@3.2.0-next.13) (2026-03-06)
124
+
125
+ **Note:** Version bump only for package @pie-lib/plot
126
+
127
+ # [3.2.0-next.12](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.11...@pie-lib/plot@3.2.0-next.12) (2026-03-04)
128
+
129
+ **Note:** Version bump only for package @pie-lib/plot
130
+
131
+ # [3.2.0-next.11](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.9...@pie-lib/plot@3.2.0-next.11) (2026-02-26)
132
+
133
+ **Note:** Version bump only for package @pie-lib/plot
134
+
6
135
  # [3.2.0-next.9](https://github.com/pie-framework/pie-lib/compare/@pie-lib/plot@3.2.0-next.8...@pie-lib/plot@3.2.0-next.9) (2026-02-25)
7
136
 
8
137
  **Note:** Version bump only for package @pie-lib/plot
@@ -24,7 +24,7 @@ var utils = _interopRequireWildcard(require("./utils"));
24
24
  var _lodashEs = require("lodash-es");
25
25
  var _invariant = _interopRequireDefault(require("invariant"));
26
26
  var _d3Selection = require("d3-selection");
27
- var _excluded = ["disabled"];
27
+ var _excluded = ["disabled", "onClick"];
28
28
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
29
29
  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; }
30
30
  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; }
@@ -68,10 +68,24 @@ var gridDraggable = exports.gridDraggable = function gridDraggable(opts) {
68
68
  if (document.activeElement) {
69
69
  document.activeElement.blur();
70
70
  }
71
+ _this._didDrag = false;
71
72
  _this.setState({
72
73
  startX: e.clientX,
73
74
  startY: e.clientY
74
75
  });
76
+
77
+ // Intercept the native 'click' event that the browser fires after mouseup.
78
+ // We use a one-time capture-phase listener so we can suppress it when a
79
+ // real drag occurred, preventing Bg's d3 click listener from creating a new mark.
80
+ var target = e.target;
81
+ var _onNativeClick = function onNativeClick(clickEvent) {
82
+ target.removeEventListener('click', _onNativeClick, true);
83
+ if (_this._didDrag) {
84
+ clickEvent.stopPropagation();
85
+ clickEvent.preventDefault();
86
+ }
87
+ };
88
+ target.addEventListener('click', _onNativeClick, true);
75
89
  if (onDragStart) {
76
90
  onDragStart();
77
91
  }
@@ -186,8 +200,15 @@ var gridDraggable = exports.gridDraggable = function gridDraggable(opts) {
186
200
  (0, _defineProperty2["default"])(_this, "onDrag", function (e, dd) {
187
201
  var _this$props = _this.props,
188
202
  onDrag = _this$props.onDrag,
189
- graphProps = _this$props.graphProps;
190
- if (!onDrag) {
203
+ graphProps = _this$props.graphProps,
204
+ disabled = _this$props.disabled;
205
+
206
+ // Track drag movement BEFORE any early returns so that onStop always
207
+ // knows a real drag occurred, even when onDrag prop is absent or disabled.
208
+ if (Math.abs(dd.deltaX) > 1 || Math.abs(dd.deltaY) > 1) {
209
+ _this._didDrag = true;
210
+ }
211
+ if (!onDrag || disabled) {
191
212
  return;
192
213
  }
193
214
  var bounds = _this.getScaledBounds();
@@ -231,35 +252,49 @@ var gridDraggable = exports.gridDraggable = function gridDraggable(opts) {
231
252
  log('[onStop] dd:', dd);
232
253
  var _this$props2 = _this.props,
233
254
  onDragStop = _this$props2.onDragStop,
234
- onClick = _this$props2.onClick;
235
- if (onDragStop) {
255
+ onClick = _this$props2.onClick,
256
+ disabled = _this$props2.disabled;
257
+ if (onDragStop && !disabled) {
236
258
  onDragStop();
237
259
  }
238
260
  log('[onStop] lastX/Y: ', dd.lastX, dd.lastY);
239
- var isClick = _this.tiny('x', e) && _this.tiny('y', e);
261
+ var isClick = !_this._didDrag;
240
262
  if (isClick) {
263
+ // For non-disabled marks, stop propagation so the Bg d3 listener
264
+ // doesn't also create a new mark on top of this one.
265
+ // Disabled/background marks allow propagation so Bg can handle the click.
266
+ if (!disabled && typeof (e === null || e === void 0 ? void 0 : e.stopPropagation) === 'function') {
267
+ e.stopPropagation();
268
+ }
241
269
  if (onClick) {
242
270
  log('call onClick');
243
271
  _this.setState({
244
- startX: null
272
+ startX: null,
273
+ startY: null
245
274
  });
246
275
  var graphProps = _this.props.graphProps;
247
276
  var scale = graphProps.scale,
248
277
  snap = graphProps.snap;
249
- var _pointer = (0, _d3Selection.pointer)(e, e.target),
250
- _pointer2 = (0, _slicedToArray2["default"])(_pointer, 2),
251
- rawX = _pointer2[0],
252
- rawY = _pointer2[1];
253
- var x = scale.x.invert(rawX);
254
- var y = scale.y.invert(rawY);
255
- x = snap.x(x);
256
- y = snap.y(y);
257
- onClick({
258
- x: x,
259
- y: y
260
- });
261
- return false;
278
+ try {
279
+ var _pointer = (0, _d3Selection.pointer)(e, e.target),
280
+ _pointer2 = (0, _slicedToArray2["default"])(_pointer, 2),
281
+ rawX = _pointer2[0],
282
+ rawY = _pointer2[1];
283
+ var x = scale.x.invert(rawX);
284
+ var y = scale.y.invert(rawY);
285
+ x = snap.x(x);
286
+ y = snap.y(y);
287
+ onClick({
288
+ x: x,
289
+ y: y
290
+ });
291
+ } catch (_) {
292
+ // pointer() can fail on SVG elements (e.g. <circle>) that lack a valid
293
+ // coordinate transform. Label-mode callbacks use props data, not coords.
294
+ onClick({});
295
+ }
262
296
  }
297
+ return false;
263
298
  }
264
299
  _this.setState({
265
300
  startX: null,
@@ -278,8 +313,13 @@ var gridDraggable = exports.gridDraggable = function gridDraggable(opts) {
278
313
  return (0, _createClass2["default"])(GridDraggable, [{
279
314
  key: "render",
280
315
  value: function render() {
316
+ // we extract onClick here to prevent it from being passed to the DraggableCore
317
+ // and to prevent it from being included in the ...rest that gets passed to the Comp
318
+ // because otherwise it is called on every drag event
319
+ // eslint-disable-next-line no-unused-vars
281
320
  var _this$props3 = this.props,
282
321
  disabled = _this$props3.disabled,
322
+ onClick = _this$props3.onClick,
283
323
  rest = (0, _objectWithoutProperties2["default"])(_this$props3, _excluded);
284
324
  var grid = this.grid();
285
325
 
@@ -294,7 +334,6 @@ var gridDraggable = exports.gridDraggable = function gridDraggable(opts) {
294
334
  */
295
335
  var isDragging = this.state ? !!this.state.startX : false;
296
336
  return /*#__PURE__*/_react["default"].createElement(_draggable.DraggableCore, {
297
- disabled: disabled,
298
337
  onMouseDown: onMouseDown,
299
338
  onStart: this.onStart,
300
339
  onDrag: this.onDrag,
@@ -303,7 +342,8 @@ var gridDraggable = exports.gridDraggable = function gridDraggable(opts) {
303
342
  grid: [grid.x, grid.y]
304
343
  }, /*#__PURE__*/_react["default"].createElement(Comp, (0, _extends2["default"])({}, rest, {
305
344
  disabled: disabled,
306
- isDragging: isDragging
345
+ isDragging: isDragging,
346
+ onClick: isDragging ? undefined : onClick
307
347
  })));
308
348
  }
309
349
  }]);
@@ -1 +1 @@
1
- {"version":3,"file":"grid-draggable.js","names":["_react","_interopRequireDefault","require","_propTypes","_types","_draggable","_debug","utils","_interopRequireWildcard","_lodashEs","_invariant","_d3Selection","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","log","debug","deltaFn","exports","scale","snap","val","delta","normalized","inverted","invert","fixDecimalsArithmetic","toFixed","gridDraggable","opts","Comp","_GridDraggable","invariant","isFunction","fromDelta","bounds","anchorPoint","_React$Component","GridDraggable","props","_this","_classCallCheck2","graphProps","domain","range","x","step","y","onDragStart","document","activeElement","blur","setState","startX","clientX","startY","clientY","_opts$anchorPoint","key","event","K","toUpperCase","end","concat","start","state","Math","abs","out","grid","scaled","left","right","top","bottom","buffer","min","node","svg","ownerSVGElement","createSVGPoint","point","touches","touch","getScreenCTM","matrixTransform","inverse","rect","getBoundingClientRect","clientLeft","clientTop","dd","rootNode","getRootNode","clientPoint","getClientPoint","_clientPoint","_slicedToArray2","rawX","rawY","xOutside","deltaX","max","yOutside","deltaY","_this$props","onDrag","getScaledBounds","skipDragOutsideOfBounds","dragArg","applyDelta","undefined","pos","position","p","getDelta","_this$props2","onDragStop","onClick","lastX","lastY","isClick","tiny","_pointer","pointer","target","_pointer2","_inherits2","_createClass2","value","render","_this$props3","disabled","rest","_objectWithoutProperties2","onMouseDown","nativeEvent","preventDefault","isDragging","createElement","DraggableCore","onStart","onStop","axis","_extends2","React","Component","PropTypes","bool","func","onMove","GraphPropsType","isRequired"],"sources":["../src/grid-draggable.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphPropsType } from './types';\nimport { DraggableCore } from './draggable';\nimport debug from 'debug';\nimport * as utils from './utils';\nimport { isFunction } from 'lodash-es';\nimport invariant from 'invariant';\nimport { pointer } from 'd3-selection';\n\nconst log = debug('pie-lib:plot:grid-draggable');\n\nexport const deltaFn = (scale, snap, val) => (delta) => {\n const normalized = delta + scale(0);\n const inverted = scale.invert(normalized);\n\n const fixDecimalsArithmetic = (snap(val + inverted).toFixed(4) * 1000) / 1000;\n\n return fixDecimalsArithmetic;\n};\n\n/**\n * Creates a Component that is draggable, within a bounded grid.\n * @param {*} opts\n */\nexport const gridDraggable = (opts) => (Comp) => {\n invariant(\n !!opts && isFunction(opts.fromDelta) && isFunction(opts.bounds) && isFunction(opts.anchorPoint),\n 'You must supply an object with: { anchorPoint: Function, fromDelta: Function, bounds: Function }',\n );\n return class GridDraggable extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n onDragStart: PropTypes.func,\n onDrag: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n onMove: PropTypes.func,\n graphProps: GraphPropsType.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n startX: null,\n startY: null,\n };\n }\n\n grid = () => {\n const { graphProps } = this.props;\n const { scale, domain, range } = graphProps;\n return {\n x: scale.x(domain.step) - scale.x(0),\n y: scale.y(range.step) - scale.y(0),\n };\n };\n onStart = (e) => {\n const { onDragStart } = this.props;\n if (document.activeElement) {\n document.activeElement.blur();\n }\n this.setState({ startX: e.clientX, startY: e.clientY });\n if (onDragStart) {\n onDragStart();\n }\n };\n position = () => {\n const { x, y } = opts.anchorPoint(this.props);\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n\n return {\n anchorPoint: {\n x,\n y,\n },\n x: deltaFn(scale.x, snap.x, x),\n y: deltaFn(scale.y, snap.y, y),\n };\n };\n\n tiny = (key, event) => {\n const K = key.toUpperCase();\n const end = event[`client${K}`];\n const start = this.state[`start${K}`];\n const delta = Math.abs(end - start);\n const out = delta < Math.abs(this.grid()[key]) / 10;\n log('[tiny] key: ', key, 'delta: ', delta, 'out: ', out);\n return out;\n };\n\n getScaledBounds = () => {\n const bounds = opts.bounds(this.props, this.props.graphProps);\n log('bounds: ', bounds);\n const grid = this.grid();\n\n let scaled = {\n left: bounds.left * grid.x,\n right: bounds.right * grid.x,\n top: bounds.top * grid.y,\n bottom: bounds.bottom * grid.y,\n };\n\n // Normalize Y bounds so that:\n // - top is <= 0 (negative or zero, allowing upward movement)\n // - bottom is >= 0 (positive or zero, allowing downward movement)\n // This compensates for the inverted Y scale (range.max -> 0, range.min -> size.height)\n // Add a small buffer (1 grid unit) to ensure we can reach exact boundaries\n const buffer = Math.abs(grid.y);\n scaled = {\n ...scaled,\n top: Math.min(0, scaled.top) - buffer, // More negative to allow reaching max\n bottom: Math.abs(scaled.bottom) + buffer, // More positive to allow reaching min\n };\n\n log('[getScaledBounds]: ', scaled);\n return scaled;\n };\n\n /**\n * Retrieves the coordinates of a mouse or touch event relative to an SVG element.\n * This method has been overwritten from the d3-selection library's clientPoint to handle touch events and improve clarity.\n * @param {Element} node - The SVG element.\n * @param {Event} event - The mouse or touch event.\n * @returns {Array} - An array containing the coordinates [x, y] relative to the SVG element.\n */\n getClientPoint = (node, event) => {\n if (!node || !event) {\n return null;\n }\n const svg = node.ownerSVGElement || node;\n\n if (svg && svg.createSVGPoint) {\n let point = svg.createSVGPoint();\n // Check if it's a touch event and use the first touch point\n if (event.touches && event.touches.length > 0) {\n const touch = event.touches[0];\n point.x = touch.clientX;\n point.y = touch.clientY;\n } else {\n // Fall back to mouse event properties\n point.x = event.clientX;\n point.y = event.clientY;\n }\n if (node.getScreenCTM) {\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n } else {\n return null;\n }\n }\n\n const rect = node.getBoundingClientRect();\n if (rect) {\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n } else {\n return null;\n }\n };\n\n skipDragOutsideOfBounds = (dd, e, graphProps) => {\n // Ignore drag movement outside of the domain and range.\n const rootNode = graphProps.getRootNode();\n const clientPoint = this.getClientPoint(rootNode, e);\n\n if (clientPoint === null) {\n return true; // Indicate that the drag is outside of bounds\n }\n\n const [rawX, rawY] = clientPoint;\n const { scale, domain, range } = graphProps;\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n\n const xOutside = (dd.deltaX > 0 && x < domain.min) || (dd.deltaX < 0 && x > domain.max);\n const yOutside = (dd.deltaY > 0 && y > range.max) || (dd.deltaY < 0 && y < range.min);\n return xOutside || yOutside;\n };\n\n onDrag = (e, dd) => {\n const { onDrag, graphProps } = this.props;\n\n if (!onDrag) {\n return;\n }\n\n const bounds = this.getScaledBounds();\n\n if (dd.deltaX < 0 && dd.deltaX < bounds.left) {\n return;\n }\n\n if (dd.deltaX > 0 && dd.deltaX > bounds.right) {\n return;\n }\n\n if (dd.deltaY < 0 && dd.deltaY < bounds.top) {\n return;\n }\n\n if (dd.deltaY > 0 && dd.deltaY > bounds.bottom) {\n return;\n }\n\n if (this.skipDragOutsideOfBounds(dd, e, graphProps)) {\n return;\n }\n\n const dragArg = this.applyDelta({ x: dd.deltaX, y: dd.deltaY });\n\n if (dragArg !== undefined || dragArg !== null) {\n onDrag(dragArg);\n }\n };\n\n getDelta = (point) => {\n const pos = this.position();\n\n const p = {\n x: pos.x(point.x),\n y: pos.y(point.y),\n };\n\n return utils.getDelta(pos.anchorPoint, p);\n };\n\n applyDelta = (point) => {\n const delta = this.getDelta(point);\n log('[applyDelta] delta:', delta);\n return opts.fromDelta(this.props, delta);\n };\n\n onStop = (e, dd) => {\n log('[onStop] dd:', dd);\n const { onDragStop, onClick } = this.props;\n\n if (onDragStop) {\n onDragStop();\n }\n\n log('[onStop] lastX/Y: ', dd.lastX, dd.lastY);\n const isClick = this.tiny('x', e) && this.tiny('y', e);\n\n if (isClick) {\n if (onClick) {\n log('call onClick');\n this.setState({ startX: null });\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n const [rawX, rawY] = pointer(e, e.target);\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n x = snap.x(x);\n y = snap.y(y);\n onClick({ x, y });\n return false;\n }\n }\n\n this.setState({ startX: null, startY: null });\n // return false to prevent state updates in the underlying draggable - a move will have triggered an update already.\n return false;\n };\n\n render() {\n const { disabled, ...rest } = this.props;\n const grid = this.grid();\n\n // prevent the text select icon from rendering.\n const onMouseDown = (e) => e.nativeEvent.preventDefault();\n\n /**\n * TODO: This shouldnt be necessary, we should be able to use the r-d classnames.\n * But they aren't being unset. If we continue with this lib, we'll have to fix this.\n */\n const isDragging = this.state ? !!this.state.startX : false;\n\n return (\n <DraggableCore\n disabled={disabled}\n onMouseDown={onMouseDown}\n onStart={this.onStart}\n onDrag={this.onDrag}\n onStop={this.onStop}\n axis={opts.axis || 'both'}\n grid={[grid.x, grid.y]}\n >\n <Comp {...rest} disabled={disabled} isDragging={isDragging} />\n </DraggableCore>\n );\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"grid-draggable.js","names":["_react","_interopRequireDefault","require","_propTypes","_types","_draggable","_debug","utils","_interopRequireWildcard","_lodashEs","_invariant","_d3Selection","_excluded","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","log","debug","deltaFn","exports","scale","snap","val","delta","normalized","inverted","invert","fixDecimalsArithmetic","toFixed","gridDraggable","opts","Comp","_GridDraggable","invariant","isFunction","fromDelta","bounds","anchorPoint","_React$Component","GridDraggable","props","_this","_classCallCheck2","graphProps","domain","range","x","step","y","onDragStart","document","activeElement","blur","_didDrag","setState","startX","clientX","startY","clientY","target","onNativeClick","clickEvent","removeEventListener","stopPropagation","preventDefault","addEventListener","_opts$anchorPoint","key","event","K","toUpperCase","end","concat","start","state","Math","abs","out","grid","scaled","left","right","top","bottom","buffer","min","node","svg","ownerSVGElement","createSVGPoint","point","touches","touch","getScreenCTM","matrixTransform","inverse","rect","getBoundingClientRect","clientLeft","clientTop","dd","rootNode","getRootNode","clientPoint","getClientPoint","_clientPoint","_slicedToArray2","rawX","rawY","xOutside","deltaX","max","yOutside","deltaY","_this$props","onDrag","disabled","getScaledBounds","skipDragOutsideOfBounds","dragArg","applyDelta","undefined","pos","position","p","getDelta","_this$props2","onDragStop","onClick","lastX","lastY","isClick","_pointer","pointer","_pointer2","_","_inherits2","_createClass2","value","render","_this$props3","rest","_objectWithoutProperties2","onMouseDown","nativeEvent","isDragging","createElement","DraggableCore","onStart","onStop","axis","_extends2","React","Component","PropTypes","bool","func","onMove","GraphPropsType","isRequired"],"sources":["../src/grid-draggable.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphPropsType } from './types';\nimport { DraggableCore } from './draggable';\nimport debug from 'debug';\nimport * as utils from './utils';\nimport { isFunction } from 'lodash-es';\nimport invariant from 'invariant';\nimport { pointer } from 'd3-selection';\n\nconst log = debug('pie-lib:plot:grid-draggable');\n\nexport const deltaFn = (scale, snap, val) => (delta) => {\n const normalized = delta + scale(0);\n const inverted = scale.invert(normalized);\n\n const fixDecimalsArithmetic = (snap(val + inverted).toFixed(4) * 1000) / 1000;\n\n return fixDecimalsArithmetic;\n};\n\n/**\n * Creates a Component that is draggable, within a bounded grid.\n * @param {*} opts\n */\nexport const gridDraggable = (opts) => (Comp) => {\n invariant(\n !!opts && isFunction(opts.fromDelta) && isFunction(opts.bounds) && isFunction(opts.anchorPoint),\n 'You must supply an object with: { anchorPoint: Function, fromDelta: Function, bounds: Function }',\n );\n return class GridDraggable extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n onDragStart: PropTypes.func,\n onDrag: PropTypes.func,\n onDragStop: PropTypes.func,\n onClick: PropTypes.func,\n onMove: PropTypes.func,\n graphProps: GraphPropsType.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n startX: null,\n startY: null,\n };\n }\n\n grid = () => {\n const { graphProps } = this.props;\n const { scale, domain, range } = graphProps;\n return {\n x: scale.x(domain.step) - scale.x(0),\n y: scale.y(range.step) - scale.y(0),\n };\n };\n onStart = (e) => {\n const { onDragStart } = this.props;\n if (document.activeElement) {\n document.activeElement.blur();\n }\n this._didDrag = false;\n this.setState({ startX: e.clientX, startY: e.clientY });\n\n // Intercept the native 'click' event that the browser fires after mouseup.\n // We use a one-time capture-phase listener so we can suppress it when a\n // real drag occurred, preventing Bg's d3 click listener from creating a new mark.\n const target = e.target;\n const onNativeClick = (clickEvent) => {\n target.removeEventListener('click', onNativeClick, true);\n if (this._didDrag) {\n clickEvent.stopPropagation();\n clickEvent.preventDefault();\n }\n };\n target.addEventListener('click', onNativeClick, true);\n\n if (onDragStart) {\n onDragStart();\n }\n };\n position = () => {\n const { x, y } = opts.anchorPoint(this.props);\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n\n return {\n anchorPoint: {\n x,\n y,\n },\n x: deltaFn(scale.x, snap.x, x),\n y: deltaFn(scale.y, snap.y, y),\n };\n };\n\n tiny = (key, event) => {\n const K = key.toUpperCase();\n const end = event[`client${K}`];\n const start = this.state[`start${K}`];\n const delta = Math.abs(end - start);\n const out = delta < Math.abs(this.grid()[key]) / 10;\n log('[tiny] key: ', key, 'delta: ', delta, 'out: ', out);\n return out;\n };\n\n getScaledBounds = () => {\n const bounds = opts.bounds(this.props, this.props.graphProps);\n log('bounds: ', bounds);\n const grid = this.grid();\n\n let scaled = {\n left: bounds.left * grid.x,\n right: bounds.right * grid.x,\n top: bounds.top * grid.y,\n bottom: bounds.bottom * grid.y,\n };\n\n // Normalize Y bounds so that:\n // - top is <= 0 (negative or zero, allowing upward movement)\n // - bottom is >= 0 (positive or zero, allowing downward movement)\n // This compensates for the inverted Y scale (range.max -> 0, range.min -> size.height)\n // Add a small buffer (1 grid unit) to ensure we can reach exact boundaries\n const buffer = Math.abs(grid.y);\n scaled = {\n ...scaled,\n top: Math.min(0, scaled.top) - buffer, // More negative to allow reaching max\n bottom: Math.abs(scaled.bottom) + buffer, // More positive to allow reaching min\n };\n\n log('[getScaledBounds]: ', scaled);\n return scaled;\n };\n\n /**\n * Retrieves the coordinates of a mouse or touch event relative to an SVG element.\n * This method has been overwritten from the d3-selection library's clientPoint to handle touch events and improve clarity.\n * @param {Element} node - The SVG element.\n * @param {Event} event - The mouse or touch event.\n * @returns {Array} - An array containing the coordinates [x, y] relative to the SVG element.\n */\n getClientPoint = (node, event) => {\n if (!node || !event) {\n return null;\n }\n const svg = node.ownerSVGElement || node;\n\n if (svg && svg.createSVGPoint) {\n let point = svg.createSVGPoint();\n // Check if it's a touch event and use the first touch point\n if (event.touches && event.touches.length > 0) {\n const touch = event.touches[0];\n point.x = touch.clientX;\n point.y = touch.clientY;\n } else {\n // Fall back to mouse event properties\n point.x = event.clientX;\n point.y = event.clientY;\n }\n if (node.getScreenCTM) {\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n } else {\n return null;\n }\n }\n\n const rect = node.getBoundingClientRect();\n if (rect) {\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n } else {\n return null;\n }\n };\n\n skipDragOutsideOfBounds = (dd, e, graphProps) => {\n // Ignore drag movement outside of the domain and range.\n const rootNode = graphProps.getRootNode();\n const clientPoint = this.getClientPoint(rootNode, e);\n\n if (clientPoint === null) {\n return true; // Indicate that the drag is outside of bounds\n }\n\n const [rawX, rawY] = clientPoint;\n const { scale, domain, range } = graphProps;\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n\n const xOutside = (dd.deltaX > 0 && x < domain.min) || (dd.deltaX < 0 && x > domain.max);\n const yOutside = (dd.deltaY > 0 && y > range.max) || (dd.deltaY < 0 && y < range.min);\n return xOutside || yOutside;\n };\n\n onDrag = (e, dd) => {\n const { onDrag, graphProps, disabled } = this.props;\n\n // Track drag movement BEFORE any early returns so that onStop always\n // knows a real drag occurred, even when onDrag prop is absent or disabled.\n if (Math.abs(dd.deltaX) > 1 || Math.abs(dd.deltaY) > 1) {\n this._didDrag = true;\n }\n\n if (!onDrag || disabled) {\n return;\n }\n\n const bounds = this.getScaledBounds();\n\n if (dd.deltaX < 0 && dd.deltaX < bounds.left) {\n return;\n }\n\n if (dd.deltaX > 0 && dd.deltaX > bounds.right) {\n return;\n }\n\n if (dd.deltaY < 0 && dd.deltaY < bounds.top) {\n return;\n }\n\n if (dd.deltaY > 0 && dd.deltaY > bounds.bottom) {\n return;\n }\n\n if (this.skipDragOutsideOfBounds(dd, e, graphProps)) {\n return;\n }\n\n const dragArg = this.applyDelta({ x: dd.deltaX, y: dd.deltaY });\n\n if (dragArg !== undefined || dragArg !== null) {\n onDrag(dragArg);\n }\n };\n\n getDelta = (point) => {\n const pos = this.position();\n\n const p = {\n x: pos.x(point.x),\n y: pos.y(point.y),\n };\n\n return utils.getDelta(pos.anchorPoint, p);\n };\n\n applyDelta = (point) => {\n const delta = this.getDelta(point);\n log('[applyDelta] delta:', delta);\n return opts.fromDelta(this.props, delta);\n };\n\n onStop = (e, dd) => {\n log('[onStop] dd:', dd);\n const { onDragStop, onClick, disabled } = this.props;\n\n if (onDragStop && !disabled) {\n onDragStop();\n }\n\n log('[onStop] lastX/Y: ', dd.lastX, dd.lastY);\n const isClick = !this._didDrag;\n\n if (isClick) {\n // For non-disabled marks, stop propagation so the Bg d3 listener\n // doesn't also create a new mark on top of this one.\n // Disabled/background marks allow propagation so Bg can handle the click.\n if (!disabled && typeof e?.stopPropagation === 'function') {\n e.stopPropagation();\n }\n\n if (onClick) {\n log('call onClick');\n this.setState({ startX: null, startY: null });\n const { graphProps } = this.props;\n const { scale, snap } = graphProps;\n try {\n const [rawX, rawY] = pointer(e, e.target);\n let x = scale.x.invert(rawX);\n let y = scale.y.invert(rawY);\n x = snap.x(x);\n y = snap.y(y);\n onClick({ x, y });\n } catch (_) {\n // pointer() can fail on SVG elements (e.g. <circle>) that lack a valid\n // coordinate transform. Label-mode callbacks use props data, not coords.\n onClick({});\n }\n }\n\n return false;\n }\n\n this.setState({ startX: null, startY: null });\n // return false to prevent state updates in the underlying draggable - a move will have triggered an update already.\n return false;\n };\n\n render() {\n // we extract onClick here to prevent it from being passed to the DraggableCore\n // and to prevent it from being included in the ...rest that gets passed to the Comp\n // because otherwise it is called on every drag event\n // eslint-disable-next-line no-unused-vars\n const { disabled, onClick, ...rest } = this.props;\n const grid = this.grid();\n\n // prevent the text select icon from rendering.\n const onMouseDown = (e) => e.nativeEvent.preventDefault();\n\n /**\n * TODO: This shouldnt be necessary, we should be able to use the r-d classnames.\n * But they aren't being unset. If we continue with this lib, we'll have to fix this.\n */\n const isDragging = this.state ? !!this.state.startX : false;\n\n return (\n <DraggableCore\n onMouseDown={onMouseDown}\n onStart={this.onStart}\n onDrag={this.onDrag}\n onStop={this.onStop}\n axis={opts.axis || 'both'}\n grid={[grid.x, grid.y]}\n >\n <Comp {...rest} disabled={disabled} isDragging={isDragging} onClick={isDragging ? undefined : onClick} />\n </DraggableCore>\n );\n }\n };\n};\n"],"mappings":"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","ignoreList":[]}
package/lib/label.js CHANGED
@@ -6,9 +6,10 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = void 0;
9
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
+ var _styles = require("@mui/material/styles");
12
13
  var _renderUi = require("@pie-lib/render-ui");
13
14
  var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
14
15
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -55,8 +56,22 @@ var styles = {
55
56
  },
56
57
  displayNone: {
57
58
  display: 'none'
59
+ },
60
+ centerPlaceholder: {
61
+ '& .ProseMirror p.is-editor-empty::before, & .ProseMirror div.is-editor-empty::before': {
62
+ left: 0,
63
+ right: 0,
64
+ width: '100%',
65
+ textAlign: 'center'
66
+ }
58
67
  }
59
68
  };
69
+ var LabelWrapper = (0, _styles.styled)('div')(_objectSpread({}, styles.centerPlaceholder));
70
+ var LabelContent = (0, _styles.styled)('div')(_objectSpread(_objectSpread({}, styles.disabledLabel), {}, {
71
+ '& p': {
72
+ margin: 0
73
+ }
74
+ }));
60
75
  var LabelComponent = function LabelComponent(props) {
61
76
  var disabledLabel = props.disabledLabel,
62
77
  graphHeight = props.graphHeight,
@@ -72,7 +87,8 @@ var LabelComponent = function LabelComponent(props) {
72
87
  _props$mathMlOptions = props.mathMlOptions,
73
88
  mathMlOptions = _props$mathMlOptions === void 0 ? {} : _props$mathMlOptions,
74
89
  charactersLimit = props.charactersLimit,
75
- titleHeight = props.titleHeight;
90
+ titleHeight = props.titleHeight,
91
+ preventNewLines = props.preventNewLines;
76
92
  var _useState = (0, _react.useState)(false),
77
93
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
78
94
  rotatedToHorizontal = _useState2[0],
@@ -104,13 +120,19 @@ var LabelComponent = function LabelComponent(props) {
104
120
  (_document$activeEleme = document.activeElement) === null || _document$activeEleme === void 0 || (_document$activeEleme2 = _document$activeEleme.blur) === null || _document$activeEleme2 === void 0 || _document$activeEleme2.call(_document$activeEleme);
105
121
  });
106
122
  };
123
+ var onKeyDown = function onKeyDown(event) {
124
+ if (preventNewLines && event.key === 'Enter') {
125
+ // prevent adding new lines - cancelling event
126
+ return true;
127
+ }
128
+ return false;
129
+ };
107
130
  return /*#__PURE__*/_react["default"].createElement(_renderUi.Readable, {
108
131
  "false": true
109
- }, /*#__PURE__*/_react["default"].createElement("div", {
132
+ }, /*#__PURE__*/_react["default"].createElement(LabelWrapper, {
110
133
  onClick: rotateLabel,
111
134
  style: _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rotatedToHorizontal ? rotatedStyle : defaultStyle), isChart ? styles.chartLabel : styles.axisLabel), side === 'left' && !rotatedToHorizontal ? styles.rotateLeftLabel : {}), side === 'right' && !rotatedToHorizontal ? styles.rotateRightLabel : {}), rotatedToHorizontal ? styles.editLabel : {}), isChartBottomLabel || isDefineChartBottomLabel ? styles.customBottom : {}), disabledLabel && !isChart && (0, _utils.isEmptyString)((0, _utils.extractTextFromHTML)(text)) && styles.displayNone)
112
- }, disabledLabel ? /*#__PURE__*/_react["default"].createElement("div", {
113
- style: styles.disabledLabel,
135
+ }, disabledLabel ? /*#__PURE__*/_react["default"].createElement(LabelContent, {
114
136
  dangerouslySetInnerHTML: {
115
137
  __html: text || ''
116
138
  }
@@ -126,6 +148,7 @@ var LabelComponent = function LabelComponent(props) {
126
148
  disableScrollbar: true,
127
149
  activePlugins: activePlugins,
128
150
  onDone: exitEditMode,
151
+ onKeyDown: onKeyDown,
129
152
  mathMlOptions: mathMlOptions,
130
153
  charactersLimit: charactersLimit
131
154
  })));
package/lib/label.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","names":["_react","_interopRequireWildcard","require","_renderUi","_editableHtmlTipTap","_interopRequireDefault","_propTypes","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","styles","axisLabel","fontSize","textAlign","margin","padding","chartLabel","disabledLabel","pointerEvents","width","editLabel","position","backgroundColor","borderRadius","boxShadow","zIndex","rotateLeftLabel","transform","transformOrigin","rotateRightLabel","customBottom","displayNone","display","LabelComponent","props","graphHeight","graphWidth","isChartBottomLabel","isDefineChartBottomLabel","isChartLeftLabel","isDefineChartLeftLabel","placeholder","text","side","onChange","_props$mathMlOptions","mathMlOptions","charactersLimit","titleHeight","_useState","useState","_useState2","_slicedToArray2","rotatedToHorizontal","setRotatedToHorizontal","activePlugins","isChart","chartValue","defaultStyle","top","concat","left","rotatedStyle","rotateLabel","exitEditMode","requestAnimationFrame","_document$activeEleme","_document$activeEleme2","document","activeElement","blur","createElement","Readable","onClick","style","isEmptyString","extractTextFromHTML","dangerouslySetInnerHTML","__html","markup","toolbarOpts","noPadding","noBorder","disableScrollbar","onDone","propTypes","PropTypes","bool","number","string","func","object","_default","exports"],"sources":["../src/label.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { Readable } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport PropTypes from 'prop-types';\nimport { extractTextFromHTML, isEmptyString } from './utils';\n\nconst styles = {\n axisLabel: {\n fontSize: 12,\n textAlign: 'center',\n margin: 4,\n padding: '4px 0',\n },\n chartLabel: {\n fontSize: 16,\n textAlign: 'center',\n margin: 4,\n padding: '4px 0',\n },\n disabledLabel: {\n pointerEvents: 'none',\n width: '100%',\n },\n editLabel: {\n position: 'absolute',\n backgroundColor: 'white',\n borderRadius: 4,\n boxShadow: '0px 5px 8px rgba(0,0,0,0.15)',\n zIndex: 10,\n },\n rotateLeftLabel: {\n transform: 'rotate(-90deg)',\n transformOrigin: '0 0',\n position: 'absolute',\n },\n rotateRightLabel: {\n transform: 'rotate(90deg)',\n transformOrigin: '0 0',\n position: 'absolute',\n },\n customBottom: {\n position: 'absolute',\n },\n displayNone: {\n display: 'none',\n },\n};\n\nconst LabelComponent = (props) => {\n const {\n disabledLabel,\n graphHeight,\n graphWidth,\n isChartBottomLabel,\n isDefineChartBottomLabel,\n isChartLeftLabel,\n isDefineChartLeftLabel,\n placeholder,\n text,\n side,\n onChange,\n mathMlOptions = {},\n charactersLimit,\n titleHeight,\n } = props;\n\n const [rotatedToHorizontal, setRotatedToHorizontal] = useState(false);\n\n const activePlugins = ['bold', 'italic', 'underline', 'strikethrough', 'math'];\n\n const isChart = isChartBottomLabel || isChartLeftLabel || isDefineChartBottomLabel || isDefineChartLeftLabel;\n\n const chartValue = side === 'left' && isDefineChartLeftLabel && graphHeight - 220;\n\n const defaultStyle = {\n width: chartValue || (side === 'left' || side === 'right' ? graphHeight - 8 : graphWidth - 8),\n top:\n chartValue ||\n (isChartLeftLabel && `${graphHeight - 70}px`) ||\n (side === 'left' && `${graphHeight - 8}px`) ||\n (isChartBottomLabel && `${graphHeight - 60 + titleHeight}px`) ||\n (side === 'bottom' && `${graphHeight - 120 + titleHeight}px`) ||\n 0,\n left:\n (side === 'right' && `${graphWidth - 8}px`) ||\n ((isDefineChartLeftLabel || isDefineChartBottomLabel) && '40px') ||\n (isChartBottomLabel && '-10px') ||\n 0,\n };\n\n const rotatedStyle = {\n width: graphWidth - 8,\n top: side === 'right' ? `${graphHeight - 22}px` : 0,\n left: 0,\n };\n\n const rotateLabel = () => {\n if (!disabledLabel && (side === 'left' || side === 'right')) {\n setRotatedToHorizontal(true);\n }\n };\n\n const exitEditMode = () => {\n setRotatedToHorizontal(false);\n\n // blur active element because rotation is causing editing issues on exit\n requestAnimationFrame(() => {\n document.activeElement?.blur?.();\n });\n };\n\n return (\n <Readable false>\n <div\n onClick={rotateLabel}\n style={{\n ...(rotatedToHorizontal ? rotatedStyle : defaultStyle),\n ...(isChart ? styles.chartLabel : styles.axisLabel),\n ...(side === 'left' && !rotatedToHorizontal ? styles.rotateLeftLabel : {}),\n ...(side === 'right' && !rotatedToHorizontal ? styles.rotateRightLabel : {}),\n ...(rotatedToHorizontal ? styles.editLabel : {}),\n ...(isChartBottomLabel || isDefineChartBottomLabel ? styles.customBottom : {}),\n ...(disabledLabel && !isChart && isEmptyString(extractTextFromHTML(text)) && styles.displayNone),\n }}\n >\n {disabledLabel ? (\n <div style={styles.disabledLabel} dangerouslySetInnerHTML={{ __html: text || '' }} />\n ) : (\n <EditableHtml\n markup={text || ''}\n onChange={onChange}\n placeholder={!disabledLabel && placeholder}\n toolbarOpts={{\n position: side === 'bottom' ? 'top' : 'bottom',\n noPadding: true,\n noBorder: true,\n }}\n disableScrollbar\n activePlugins={activePlugins}\n onDone={exitEditMode}\n mathMlOptions={mathMlOptions}\n charactersLimit={charactersLimit}\n />\n )}\n </div>\n </Readable>\n );\n};\n\nLabelComponent.propTypes = {\n disabledLabel: PropTypes.bool,\n graphHeight: PropTypes.number,\n graphWidth: PropTypes.number,\n isChartBottomLabel: PropTypes.bool,\n isDefineChartBottomLabel: PropTypes.bool,\n isChartLeftLabel: PropTypes.bool,\n isDefineChartLeftLabel: PropTypes.bool,\n placeholder: PropTypes.string,\n text: PropTypes.string,\n side: PropTypes.string,\n onChange: PropTypes.func,\n mathMlOptions: PropTypes.object,\n charactersLimit: PropTypes.number,\n titleHeight: PropTypes.number,\n};\n\nexport default LabelComponent;\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,UAAA,GAAAD,sBAAA,CAAAH,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAA6D,SAAAD,wBAAAO,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAT,uBAAA,YAAAA,wBAAAO,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,mBAAAT,CAAA,iBAAAA,CAAA,gBAAAU,OAAA,CAAAV,CAAA,0BAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,cAAAM,EAAA,IAAAd,CAAA,gBAAAc,EAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,EAAA,OAAAP,CAAA,IAAAD,CAAA,GAAAW,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAc,EAAA,OAAAP,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAM,EAAA,EAAAP,CAAA,IAAAC,CAAA,CAAAM,EAAA,IAAAd,CAAA,CAAAc,EAAA,WAAAN,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAAA,SAAAmB,QAAApB,CAAA,EAAAG,CAAA,QAAAF,CAAA,GAAAgB,MAAA,CAAAI,IAAA,CAAArB,CAAA,OAAAiB,MAAA,CAAAK,qBAAA,QAAAhB,CAAA,GAAAW,MAAA,CAAAK,qBAAA,CAAAtB,CAAA,GAAAG,CAAA,KAAAG,CAAA,GAAAA,CAAA,CAAAiB,MAAA,WAAApB,CAAA,WAAAc,MAAA,CAAAE,wBAAA,CAAAnB,CAAA,EAAAG,CAAA,EAAAqB,UAAA,OAAAvB,CAAA,CAAAwB,IAAA,CAAAC,KAAA,CAAAzB,CAAA,EAAAK,CAAA,YAAAL,CAAA;AAAA,SAAA0B,cAAA3B,CAAA,aAAAG,CAAA,MAAAA,CAAA,GAAAyB,SAAA,CAAAC,MAAA,EAAA1B,CAAA,UAAAF,CAAA,WAAA2B,SAAA,CAAAzB,CAAA,IAAAyB,SAAA,CAAAzB,CAAA,QAAAA,CAAA,OAAAiB,OAAA,CAAAH,MAAA,CAAAhB,CAAA,OAAA6B,OAAA,WAAA3B,CAAA,QAAA4B,gBAAA,aAAA/B,CAAA,EAAAG,CAAA,EAAAF,CAAA,CAAAE,CAAA,SAAAc,MAAA,CAAAe,yBAAA,GAAAf,MAAA,CAAAgB,gBAAA,CAAAjC,CAAA,EAAAiB,MAAA,CAAAe,yBAAA,CAAA/B,CAAA,KAAAmB,OAAA,CAAAH,MAAA,CAAAhB,CAAA,GAAA6B,OAAA,WAAA3B,CAAA,IAAAc,MAAA,CAAAC,cAAA,CAAAlB,CAAA,EAAAG,CAAA,EAAAc,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAE,CAAA,iBAAAH,CAAA;AAE7D,IAAMkC,MAAM,GAAG;EACbC,SAAS,EAAE;IACTC,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE,QAAQ;IACnBC,MAAM,EAAE,CAAC;IACTC,OAAO,EAAE;EACX,CAAC;EACDC,UAAU,EAAE;IACVJ,QAAQ,EAAE,EAAE;IACZC,SAAS,EAAE,QAAQ;IACnBC,MAAM,EAAE,CAAC;IACTC,OAAO,EAAE;EACX,CAAC;EACDE,aAAa,EAAE;IACbC,aAAa,EAAE,MAAM;IACrBC,KAAK,EAAE;EACT,CAAC;EACDC,SAAS,EAAE;IACTC,QAAQ,EAAE,UAAU;IACpBC,eAAe,EAAE,OAAO;IACxBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE,8BAA8B;IACzCC,MAAM,EAAE;EACV,CAAC;EACDC,eAAe,EAAE;IACfC,SAAS,EAAE,gBAAgB;IAC3BC,eAAe,EAAE,KAAK;IACtBP,QAAQ,EAAE;EACZ,CAAC;EACDQ,gBAAgB,EAAE;IAChBF,SAAS,EAAE,eAAe;IAC1BC,eAAe,EAAE,KAAK;IACtBP,QAAQ,EAAE;EACZ,CAAC;EACDS,YAAY,EAAE;IACZT,QAAQ,EAAE;EACZ,CAAC;EACDU,WAAW,EAAE;IACXC,OAAO,EAAE;EACX;AACF,CAAC;AAED,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,KAAK,EAAK;EAChC,IACEjB,aAAa,GAcXiB,KAAK,CAdPjB,aAAa;IACbkB,WAAW,GAaTD,KAAK,CAbPC,WAAW;IACXC,UAAU,GAYRF,KAAK,CAZPE,UAAU;IACVC,kBAAkB,GAWhBH,KAAK,CAXPG,kBAAkB;IAClBC,wBAAwB,GAUtBJ,KAAK,CAVPI,wBAAwB;IACxBC,gBAAgB,GASdL,KAAK,CATPK,gBAAgB;IAChBC,sBAAsB,GAQpBN,KAAK,CARPM,sBAAsB;IACtBC,WAAW,GAOTP,KAAK,CAPPO,WAAW;IACXC,IAAI,GAMFR,KAAK,CANPQ,IAAI;IACJC,IAAI,GAKFT,KAAK,CALPS,IAAI;IACJC,QAAQ,GAINV,KAAK,CAJPU,QAAQ;IAAAC,oBAAA,GAINX,KAAK,CAHPY,aAAa;IAAbA,aAAa,GAAAD,oBAAA,cAAG,CAAC,CAAC,GAAAA,oBAAA;IAClBE,eAAe,GAEbb,KAAK,CAFPa,eAAe;IACfC,WAAW,GACTd,KAAK,CADPc,WAAW;EAGb,IAAAC,SAAA,GAAsD,IAAAC,eAAQ,EAAC,KAAK,CAAC;IAAAC,UAAA,OAAAC,eAAA,aAAAH,SAAA;IAA9DI,mBAAmB,GAAAF,UAAA;IAAEG,sBAAsB,GAAAH,UAAA;EAElD,IAAMI,aAAa,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,CAAC;EAE9E,IAAMC,OAAO,GAAGnB,kBAAkB,IAAIE,gBAAgB,IAAID,wBAAwB,IAAIE,sBAAsB;EAE5G,IAAMiB,UAAU,GAAGd,IAAI,KAAK,MAAM,IAAIH,sBAAsB,IAAIL,WAAW,GAAG,GAAG;EAEjF,IAAMuB,YAAY,GAAG;IACnBvC,KAAK,EAAEsC,UAAU,KAAKd,IAAI,KAAK,MAAM,IAAIA,IAAI,KAAK,OAAO,GAAGR,WAAW,GAAG,CAAC,GAAGC,UAAU,GAAG,CAAC,CAAC;IAC7FuB,GAAG,EACDF,UAAU,IACTlB,gBAAgB,OAAAqB,MAAA,CAAOzB,WAAW,GAAG,EAAE,OAAK,IAC5CQ,IAAI,KAAK,MAAM,OAAAiB,MAAA,CAAOzB,WAAW,GAAG,CAAC,OAAK,IAC1CE,kBAAkB,OAAAuB,MAAA,CAAOzB,WAAW,GAAG,EAAE,GAAGa,WAAW,OAAK,IAC5DL,IAAI,KAAK,QAAQ,OAAAiB,MAAA,CAAOzB,WAAW,GAAG,GAAG,GAAGa,WAAW,OAAK,IAC7D,CAAC;IACHa,IAAI,EACDlB,IAAI,KAAK,OAAO,OAAAiB,MAAA,CAAOxB,UAAU,GAAG,CAAC,OAAI,IACzC,CAACI,sBAAsB,IAAIF,wBAAwB,KAAK,MAAO,IAC/DD,kBAAkB,IAAI,OAAQ,IAC/B;EACJ,CAAC;EAED,IAAMyB,YAAY,GAAG;IACnB3C,KAAK,EAAEiB,UAAU,GAAG,CAAC;IACrBuB,GAAG,EAAEhB,IAAI,KAAK,OAAO,MAAAiB,MAAA,CAAMzB,WAAW,GAAG,EAAE,UAAO,CAAC;IACnD0B,IAAI,EAAE;EACR,CAAC;EAED,IAAME,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACxB,IAAI,CAAC9C,aAAa,KAAK0B,IAAI,KAAK,MAAM,IAAIA,IAAI,KAAK,OAAO,CAAC,EAAE;MAC3DW,sBAAsB,CAAC,IAAI,CAAC;IAC9B;EACF,CAAC;EAED,IAAMU,YAAY,GAAG,SAAfA,YAAYA,CAAA,EAAS;IACzBV,sBAAsB,CAAC,KAAK,CAAC;;IAE7B;IACAW,qBAAqB,CAAC,YAAM;MAAA,IAAAC,qBAAA,EAAAC,sBAAA;MAC1B,CAAAD,qBAAA,GAAAE,QAAQ,CAACC,aAAa,cAAAH,qBAAA,gBAAAC,sBAAA,GAAtBD,qBAAA,CAAwBI,IAAI,cAAAH,sBAAA,eAA5BA,sBAAA,CAAA3E,IAAA,CAAA0E,qBAA+B,CAAC;IAClC,CAAC,CAAC;EACJ,CAAC;EAED,oBACElG,MAAA,YAAAuG,aAAA,CAACpG,SAAA,CAAAqG,QAAQ;IAAC;EAAK,gBACbxG,MAAA,YAAAuG,aAAA;IACEE,OAAO,EAAEV,WAAY;IACrBW,KAAK,EAAAvE,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACCkD,mBAAmB,GAAGS,YAAY,GAAGJ,YAAY,GACjDF,OAAO,GAAG9C,MAAM,CAACM,UAAU,GAAGN,MAAM,CAACC,SAAS,GAC9CgC,IAAI,KAAK,MAAM,IAAI,CAACU,mBAAmB,GAAG3C,MAAM,CAACgB,eAAe,GAAG,CAAC,CAAC,GACrEiB,IAAI,KAAK,OAAO,IAAI,CAACU,mBAAmB,GAAG3C,MAAM,CAACmB,gBAAgB,GAAG,CAAC,CAAC,GACvEwB,mBAAmB,GAAG3C,MAAM,CAACU,SAAS,GAAG,CAAC,CAAC,GAC3CiB,kBAAkB,IAAIC,wBAAwB,GAAG5B,MAAM,CAACoB,YAAY,GAAG,CAAC,CAAC,GACzEb,aAAa,IAAI,CAACuC,OAAO,IAAI,IAAAmB,oBAAa,EAAC,IAAAC,0BAAmB,EAAClC,IAAI,CAAC,CAAC,IAAIhC,MAAM,CAACqB,WAAW;EAC/F,GAEDd,aAAa,gBACZjD,MAAA,YAAAuG,aAAA;IAAKG,KAAK,EAAEhE,MAAM,CAACO,aAAc;IAAC4D,uBAAuB,EAAE;MAAEC,MAAM,EAAEpC,IAAI,IAAI;IAAG;EAAE,CAAE,CAAC,gBAErF1E,MAAA,YAAAuG,aAAA,CAACnG,mBAAA,WAAY;IACX2G,MAAM,EAAErC,IAAI,IAAI,EAAG;IACnBE,QAAQ,EAAEA,QAAS;IACnBH,WAAW,EAAE,CAACxB,aAAa,IAAIwB,WAAY;IAC3CuC,WAAW,EAAE;MACX3D,QAAQ,EAAEsB,IAAI,KAAK,QAAQ,GAAG,KAAK,GAAG,QAAQ;MAC9CsC,SAAS,EAAE,IAAI;MACfC,QAAQ,EAAE;IACZ,CAAE;IACFC,gBAAgB;IAChB5B,aAAa,EAAEA,aAAc;IAC7B6B,MAAM,EAAEpB,YAAa;IACrBlB,aAAa,EAAEA,aAAc;IAC7BC,eAAe,EAAEA;EAAgB,CAClC,CAEA,CACG,CAAC;AAEf,CAAC;AAEDd,cAAc,CAACoD,SAAS,GAAG;EACzBpE,aAAa,EAAEqE,qBAAS,CAACC,IAAI;EAC7BpD,WAAW,EAAEmD,qBAAS,CAACE,MAAM;EAC7BpD,UAAU,EAAEkD,qBAAS,CAACE,MAAM;EAC5BnD,kBAAkB,EAAEiD,qBAAS,CAACC,IAAI;EAClCjD,wBAAwB,EAAEgD,qBAAS,CAACC,IAAI;EACxChD,gBAAgB,EAAE+C,qBAAS,CAACC,IAAI;EAChC/C,sBAAsB,EAAE8C,qBAAS,CAACC,IAAI;EACtC9C,WAAW,EAAE6C,qBAAS,CAACG,MAAM;EAC7B/C,IAAI,EAAE4C,qBAAS,CAACG,MAAM;EACtB9C,IAAI,EAAE2C,qBAAS,CAACG,MAAM;EACtB7C,QAAQ,EAAE0C,qBAAS,CAACI,IAAI;EACxB5C,aAAa,EAAEwC,qBAAS,CAACK,MAAM;EAC/B5C,eAAe,EAAEuC,qBAAS,CAACE,MAAM;EACjCxC,WAAW,EAAEsC,qBAAS,CAACE;AACzB,CAAC;AAAC,IAAAI,QAAA,GAAAC,OAAA,cAEa5D,cAAc","ignoreList":[]}
1
+ {"version":3,"file":"label.js","names":["_react","_interopRequireWildcard","require","_styles","_renderUi","_editableHtmlTipTap","_interopRequireDefault","_propTypes","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ownKeys","keys","getOwnPropertySymbols","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","styles","axisLabel","fontSize","textAlign","margin","padding","chartLabel","disabledLabel","pointerEvents","width","editLabel","position","backgroundColor","borderRadius","boxShadow","zIndex","rotateLeftLabel","transform","transformOrigin","rotateRightLabel","customBottom","displayNone","display","centerPlaceholder","left","right","LabelWrapper","styled","LabelContent","LabelComponent","props","graphHeight","graphWidth","isChartBottomLabel","isDefineChartBottomLabel","isChartLeftLabel","isDefineChartLeftLabel","placeholder","text","side","onChange","_props$mathMlOptions","mathMlOptions","charactersLimit","titleHeight","preventNewLines","_useState","useState","_useState2","_slicedToArray2","rotatedToHorizontal","setRotatedToHorizontal","activePlugins","isChart","chartValue","defaultStyle","top","concat","rotatedStyle","rotateLabel","exitEditMode","requestAnimationFrame","_document$activeEleme","_document$activeEleme2","document","activeElement","blur","onKeyDown","event","key","createElement","Readable","onClick","style","isEmptyString","extractTextFromHTML","dangerouslySetInnerHTML","__html","markup","toolbarOpts","noPadding","noBorder","disableScrollbar","onDone","propTypes","PropTypes","bool","number","string","func","object","_default","exports"],"sources":["../src/label.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { styled } from '@mui/material/styles';\nimport { Readable } from '@pie-lib/render-ui';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport PropTypes from 'prop-types';\nimport { extractTextFromHTML, isEmptyString } from './utils';\n\nconst styles = {\n axisLabel: {\n fontSize: 12,\n textAlign: 'center',\n margin: 4,\n padding: '4px 0',\n },\n chartLabel: {\n fontSize: 16,\n textAlign: 'center',\n margin: 4,\n padding: '4px 0',\n },\n disabledLabel: {\n pointerEvents: 'none',\n width: '100%',\n },\n editLabel: {\n position: 'absolute',\n backgroundColor: 'white',\n borderRadius: 4,\n boxShadow: '0px 5px 8px rgba(0,0,0,0.15)',\n zIndex: 10,\n },\n rotateLeftLabel: {\n transform: 'rotate(-90deg)',\n transformOrigin: '0 0',\n position: 'absolute',\n },\n rotateRightLabel: {\n transform: 'rotate(90deg)',\n transformOrigin: '0 0',\n position: 'absolute',\n },\n customBottom: {\n position: 'absolute',\n },\n displayNone: {\n display: 'none',\n },\n centerPlaceholder: {\n '& .ProseMirror p.is-editor-empty::before, & .ProseMirror div.is-editor-empty::before': {\n left: 0,\n right: 0,\n width: '100%',\n textAlign: 'center',\n },\n },\n};\n\n\nconst LabelWrapper = styled('div')({\n ...styles.centerPlaceholder,\n});\n\nconst LabelContent = styled('div')({\n ...styles.disabledLabel,\n '& p': {\n margin: 0,\n },\n});\n\nconst LabelComponent = (props) => {\n const {\n disabledLabel,\n graphHeight,\n graphWidth,\n isChartBottomLabel,\n isDefineChartBottomLabel,\n isChartLeftLabel,\n isDefineChartLeftLabel,\n placeholder,\n text,\n side,\n onChange,\n mathMlOptions = {},\n charactersLimit,\n titleHeight,\n preventNewLines,\n } = props;\n\n const [rotatedToHorizontal, setRotatedToHorizontal] = useState(false);\n\n const activePlugins = ['bold', 'italic', 'underline', 'strikethrough', 'math'];\n\n const isChart = isChartBottomLabel || isChartLeftLabel || isDefineChartBottomLabel || isDefineChartLeftLabel;\n\n const chartValue = side === 'left' && isDefineChartLeftLabel && graphHeight - 220;\n\n const defaultStyle = {\n width: chartValue || (side === 'left' || side === 'right' ? graphHeight - 8 : graphWidth - 8),\n top:\n chartValue ||\n (isChartLeftLabel && `${graphHeight - 70}px`) ||\n (side === 'left' && `${graphHeight - 8}px`) ||\n (isChartBottomLabel && `${graphHeight - 60 + titleHeight}px`) ||\n (side === 'bottom' && `${graphHeight - 120 + titleHeight}px`) ||\n 0,\n left:\n (side === 'right' && `${graphWidth - 8}px`) ||\n ((isDefineChartLeftLabel || isDefineChartBottomLabel) && '40px') ||\n (isChartBottomLabel && '-10px') ||\n 0,\n };\n\n const rotatedStyle = {\n width: graphWidth - 8,\n top: side === 'right' ? `${graphHeight - 22}px` : 0,\n left: 0,\n };\n\n const rotateLabel = () => {\n if (!disabledLabel && (side === 'left' || side === 'right')) {\n setRotatedToHorizontal(true);\n }\n };\n\n const exitEditMode = () => {\n setRotatedToHorizontal(false);\n\n // blur active element because rotation is causing editing issues on exit\n requestAnimationFrame(() => {\n document.activeElement?.blur?.();\n });\n };\n\n const onKeyDown = (event) => {\n if (preventNewLines && event.key === 'Enter') {\n // prevent adding new lines - cancelling event\n return true;\n }\n\n return false;\n };\n\n return (\n <Readable false>\n <LabelWrapper\n onClick={rotateLabel}\n style={{\n ...(rotatedToHorizontal ? rotatedStyle : defaultStyle),\n ...(isChart ? styles.chartLabel : styles.axisLabel),\n ...(side === 'left' && !rotatedToHorizontal ? styles.rotateLeftLabel : {}),\n ...(side === 'right' && !rotatedToHorizontal ? styles.rotateRightLabel : {}),\n ...(rotatedToHorizontal ? styles.editLabel : {}),\n ...(isChartBottomLabel || isDefineChartBottomLabel ? styles.customBottom : {}),\n ...(disabledLabel && !isChart && isEmptyString(extractTextFromHTML(text)) && styles.displayNone),\n }}\n >\n {disabledLabel ? (\n <LabelContent dangerouslySetInnerHTML={{ __html: text || '' }} />\n ) : (\n <EditableHtml\n markup={text || ''}\n onChange={onChange}\n placeholder={!disabledLabel && placeholder}\n toolbarOpts={{\n position: side === 'bottom' ? 'top' : 'bottom',\n noPadding: true,\n noBorder: true,\n }}\n disableScrollbar\n activePlugins={activePlugins}\n onDone={exitEditMode}\n onKeyDown={onKeyDown}\n mathMlOptions={mathMlOptions}\n charactersLimit={charactersLimit}\n />\n )}\n </LabelWrapper>\n </Readable>\n );\n};\n\nLabelComponent.propTypes = {\n disabledLabel: PropTypes.bool,\n graphHeight: PropTypes.number,\n graphWidth: PropTypes.number,\n isChartBottomLabel: PropTypes.bool,\n isDefineChartBottomLabel: PropTypes.bool,\n isChartLeftLabel: PropTypes.bool,\n isDefineChartLeftLabel: PropTypes.bool,\n placeholder: PropTypes.string,\n text: PropTypes.string,\n side: PropTypes.string,\n onChange: PropTypes.func,\n mathMlOptions: PropTypes.object,\n charactersLimit: PropTypes.number,\n titleHeight: PropTypes.number,\n};\n\nexport default LabelComponent;\n"],"mappings":"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","ignoreList":[]}