@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 +129 -0
- package/lib/grid-draggable.js +62 -22
- package/lib/grid-draggable.js.map +1 -1
- package/lib/label.js +28 -5
- package/lib/label.js.map +1 -1
- package/lib/root.js +28 -8
- package/lib/root.js.map +1 -1
- package/package.json +4 -4
- package/src/__tests__/grid-draggable.test.jsx +29 -21
- package/src/grid-draggable.jsx +54 -16
- package/src/label.jsx +35 -3
- package/src/root.jsx +23 -0
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
|
package/lib/grid-draggable.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
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(
|
|
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(
|
|
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":"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","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":[]}
|