@pie-lib/charting 6.2.0-next.9 → 7.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 +124 -0
- package/lib/axes.js +85 -28
- package/lib/axes.js.map +1 -1
- package/lib/mark-label.js +8 -7
- package/lib/mark-label.js.map +1 -1
- package/package.json +7 -7
- package/src/axes.jsx +84 -26
- package/src/mark-label.jsx +9 -5
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,130 @@
|
|
|
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
|
+
## [7.0.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@7.0.0...@pie-lib/charting@7.0.1) (2026-04-28)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
9
|
+
|
|
10
|
+
# [6.2.0-next.39](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.38...@pie-lib/charting@6.2.0-next.39) (2026-04-24)
|
|
11
|
+
|
|
12
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
13
|
+
|
|
14
|
+
# [6.2.0-next.38](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.37...@pie-lib/charting@6.2.0-next.38) (2026-04-24)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
17
|
+
|
|
18
|
+
# [6.2.0-next.37](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.36...@pie-lib/charting@6.2.0-next.37) (2026-04-23)
|
|
19
|
+
|
|
20
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
21
|
+
|
|
22
|
+
# [6.2.0-next.36](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.35...@pie-lib/charting@6.2.0-next.36) (2026-04-17)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
25
|
+
|
|
26
|
+
# [6.2.0-next.35](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.34...@pie-lib/charting@6.2.0-next.35) (2026-04-16)
|
|
27
|
+
|
|
28
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
29
|
+
|
|
30
|
+
# [6.2.0-next.34](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.33...@pie-lib/charting@6.2.0-next.34) (2026-04-16)
|
|
31
|
+
|
|
32
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
33
|
+
|
|
34
|
+
# [6.2.0-next.33](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.32...@pie-lib/charting@6.2.0-next.33) (2026-04-16)
|
|
35
|
+
|
|
36
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
37
|
+
|
|
38
|
+
# [6.2.0-next.32](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.31...@pie-lib/charting@6.2.0-next.32) (2026-04-15)
|
|
39
|
+
|
|
40
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
41
|
+
|
|
42
|
+
# [6.2.0-next.31](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.30...@pie-lib/charting@6.2.0-next.31) (2026-04-15)
|
|
43
|
+
|
|
44
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
45
|
+
|
|
46
|
+
# [6.2.0-next.30](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.29...@pie-lib/charting@6.2.0-next.30) (2026-04-14)
|
|
47
|
+
|
|
48
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
49
|
+
|
|
50
|
+
# [6.2.0-next.29](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.28...@pie-lib/charting@6.2.0-next.29) (2026-04-13)
|
|
51
|
+
|
|
52
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
53
|
+
|
|
54
|
+
# [6.2.0-next.28](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.27...@pie-lib/charting@6.2.0-next.28) (2026-04-09)
|
|
55
|
+
|
|
56
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
57
|
+
|
|
58
|
+
# [6.2.0-next.27](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.26...@pie-lib/charting@6.2.0-next.27) (2026-04-09)
|
|
59
|
+
|
|
60
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
61
|
+
|
|
62
|
+
# [6.2.0-next.26](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.25...@pie-lib/charting@6.2.0-next.26) (2026-04-08)
|
|
63
|
+
|
|
64
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
65
|
+
|
|
66
|
+
# [6.2.0-next.25](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.24...@pie-lib/charting@6.2.0-next.25) (2026-04-07)
|
|
67
|
+
|
|
68
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
69
|
+
|
|
70
|
+
# [6.2.0-next.24](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.23...@pie-lib/charting@6.2.0-next.24) (2026-04-06)
|
|
71
|
+
|
|
72
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
73
|
+
|
|
74
|
+
# [6.2.0-next.23](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.22...@pie-lib/charting@6.2.0-next.23) (2026-04-03)
|
|
75
|
+
|
|
76
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
77
|
+
|
|
78
|
+
# [6.2.0-next.22](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.21...@pie-lib/charting@6.2.0-next.22) (2026-03-31)
|
|
79
|
+
|
|
80
|
+
### Bug Fixes
|
|
81
|
+
|
|
82
|
+
- **charting:** fix math rendering race condition in fractional chart labels PD-5496 ([03d9d81](https://github.com/pie-framework/pie-lib/commit/03d9d8131872aff762866abb5c910312a7151864))
|
|
83
|
+
|
|
84
|
+
# [6.2.0-next.21](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.20...@pie-lib/charting@6.2.0-next.21) (2026-03-25)
|
|
85
|
+
|
|
86
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
87
|
+
|
|
88
|
+
# [6.2.0-next.20](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.19...@pie-lib/charting@6.2.0-next.20) (2026-03-18)
|
|
89
|
+
|
|
90
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
91
|
+
|
|
92
|
+
# [6.2.0-next.19](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.18...@pie-lib/charting@6.2.0-next.19) (2026-03-18)
|
|
93
|
+
|
|
94
|
+
### Bug Fixes
|
|
95
|
+
|
|
96
|
+
- **charting:** enhance RawChartAxes with MathJax rendering support and improve hidden label measurement PD-5496 PD-5497 ([4644a62](https://github.com/pie-framework/pie-lib/commit/4644a62365cc22b5558ae99cfa64c78bdc21815a))
|
|
97
|
+
|
|
98
|
+
# [6.2.0-next.18](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.17...@pie-lib/charting@6.2.0-next.18) (2026-03-18)
|
|
99
|
+
|
|
100
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
101
|
+
|
|
102
|
+
# [6.2.0-next.17](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.16...@pie-lib/charting@6.2.0-next.17) (2026-03-18)
|
|
103
|
+
|
|
104
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
105
|
+
|
|
106
|
+
# [6.2.0-next.16](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.15...@pie-lib/charting@6.2.0-next.16) (2026-03-11)
|
|
107
|
+
|
|
108
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
109
|
+
|
|
110
|
+
# [6.2.0-next.15](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.14...@pie-lib/charting@6.2.0-next.15) (2026-03-11)
|
|
111
|
+
|
|
112
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
113
|
+
|
|
114
|
+
# [6.2.0-next.14](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.13...@pie-lib/charting@6.2.0-next.14) (2026-03-09)
|
|
115
|
+
|
|
116
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
117
|
+
|
|
118
|
+
# [6.2.0-next.13](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.12...@pie-lib/charting@6.2.0-next.13) (2026-03-06)
|
|
119
|
+
|
|
120
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
121
|
+
|
|
122
|
+
# [6.2.0-next.12](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.11...@pie-lib/charting@6.2.0-next.12) (2026-03-04)
|
|
123
|
+
|
|
124
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
125
|
+
|
|
126
|
+
# [6.2.0-next.11](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.9...@pie-lib/charting@6.2.0-next.11) (2026-02-26)
|
|
127
|
+
|
|
128
|
+
**Note:** Version bump only for package @pie-lib/charting
|
|
129
|
+
|
|
6
130
|
# [6.2.0-next.9](https://github.com/pie-framework/pie-lib/compare/@pie-lib/charting@6.2.0-next.8...@pie-lib/charting@6.2.0-next.9) (2026-02-25)
|
|
7
131
|
|
|
8
132
|
**Note:** Version bump only for package @pie-lib/charting
|
package/lib/axes.js
CHANGED
|
@@ -28,6 +28,31 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
28
28
|
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; }
|
|
29
29
|
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
30
30
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
31
|
+
// one document-level MutationObserver shared across all
|
|
32
|
+
// RawChartAxes instances so that no chart misses a MathJax render batch
|
|
33
|
+
var _mathCallbacks = new Set();
|
|
34
|
+
var _docObserver = null;
|
|
35
|
+
function registerMathCallback(cb) {
|
|
36
|
+
_mathCallbacks.add(cb);
|
|
37
|
+
if (!_docObserver && typeof document !== 'undefined') {
|
|
38
|
+
_docObserver = new MutationObserver(function () {
|
|
39
|
+
_mathCallbacks.forEach(function (fn) {
|
|
40
|
+
return fn();
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
_docObserver.observe(document.body, {
|
|
44
|
+
childList: true,
|
|
45
|
+
subtree: true
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
function unregisterMathCallback(cb) {
|
|
50
|
+
_mathCallbacks["delete"](cb);
|
|
51
|
+
if (_mathCallbacks.size === 0 && _docObserver) {
|
|
52
|
+
_docObserver.disconnect();
|
|
53
|
+
_docObserver = null;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
31
56
|
var StyledErrorText = (0, _styles.styled)('text')(function (_ref) {
|
|
32
57
|
var theme = _ref.theme;
|
|
33
58
|
return {
|
|
@@ -414,6 +439,48 @@ var RawChartAxes = exports.RawChartAxes = /*#__PURE__*/function (_React$Componen
|
|
|
414
439
|
height: 0,
|
|
415
440
|
width: 0
|
|
416
441
|
});
|
|
442
|
+
(0, _defineProperty2["default"])(_this3, "measureHiddenLabel", function () {
|
|
443
|
+
if (!_this3.hiddenLabelRef) return;
|
|
444
|
+
var mjx = _this3.hiddenLabelRef.querySelector('mjx-container');
|
|
445
|
+
var input = _this3.hiddenLabelRef.querySelector('input');
|
|
446
|
+
var target = mjx || input || _this3.hiddenLabelRef;
|
|
447
|
+
var rect = target.getBoundingClientRect();
|
|
448
|
+
var height = Math.floor(rect.height);
|
|
449
|
+
var width = Math.floor(rect.width);
|
|
450
|
+
if (height !== _this3.state.height || width !== _this3.state.width) {
|
|
451
|
+
_this3.setState({
|
|
452
|
+
height: height,
|
|
453
|
+
width: width
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
});
|
|
457
|
+
// called by the document-level observer on every DOM mutation.
|
|
458
|
+
// only re-measures once mjx-container is present in our hidden label.
|
|
459
|
+
(0, _defineProperty2["default"])(_this3, "_onDocMutation", function () {
|
|
460
|
+
if (!_this3.hiddenLabelRef) return;
|
|
461
|
+
if (_this3.hiddenLabelRef.querySelector('mjx-container')) {
|
|
462
|
+
_this3.measureHiddenLabel();
|
|
463
|
+
}
|
|
464
|
+
});
|
|
465
|
+
(0, _defineProperty2["default"])(_this3, "observeHiddenLabel", function (el) {
|
|
466
|
+
if (!el) return;
|
|
467
|
+
var containsLatex = el.querySelector('[data-latex], [data-raw]');
|
|
468
|
+
if (containsLatex) {
|
|
469
|
+
(0, _mathRendering.renderMath)(el);
|
|
470
|
+
}
|
|
471
|
+
if (el.querySelector('mjx-container') || !containsLatex) {
|
|
472
|
+
_this3.measureHiddenLabel();
|
|
473
|
+
}
|
|
474
|
+
// always register: if mjx-container isn't there yet, the doc observer will
|
|
475
|
+
// call _onDocMutation when MathJax finishes rendering any element on the page.
|
|
476
|
+
registerMathCallback(_this3._onDocMutation);
|
|
477
|
+
});
|
|
478
|
+
(0, _defineProperty2["default"])(_this3, "setHiddenLabelRef", function (ref) {
|
|
479
|
+
if (ref && ref !== _this3.hiddenLabelRef) {
|
|
480
|
+
_this3.hiddenLabelRef = ref;
|
|
481
|
+
_this3.observeHiddenLabel(ref);
|
|
482
|
+
}
|
|
483
|
+
});
|
|
417
484
|
return _this3;
|
|
418
485
|
}
|
|
419
486
|
(0, _inherits2["default"])(RawChartAxes, _React$Component2);
|
|
@@ -421,40 +488,32 @@ var RawChartAxes = exports.RawChartAxes = /*#__PURE__*/function (_React$Componen
|
|
|
421
488
|
key: "componentDidMount",
|
|
422
489
|
value: function componentDidMount() {
|
|
423
490
|
if (this.hiddenLabelRef) {
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
(0, _mathRendering.renderMath)(this.hiddenLabelRef);
|
|
434
|
-
}
|
|
435
|
-
this.setState({
|
|
436
|
-
height: Math.floor(boundingClientRect.height),
|
|
437
|
-
width: Math.floor(boundingClientRect.width)
|
|
438
|
-
});
|
|
439
|
-
}
|
|
491
|
+
this.observeHiddenLabel(this.hiddenLabelRef);
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
}, {
|
|
495
|
+
key: "componentWillUnmount",
|
|
496
|
+
value: function componentWillUnmount() {
|
|
497
|
+
unregisterMathCallback(this._onDocMutation);
|
|
498
|
+
if (this._updateTimer) {
|
|
499
|
+
clearTimeout(this._updateTimer);
|
|
440
500
|
}
|
|
441
501
|
}
|
|
442
502
|
}, {
|
|
443
503
|
key: "componentDidUpdate",
|
|
444
|
-
value: function componentDidUpdate() {
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
if (
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
}
|
|
504
|
+
value: function componentDidUpdate(prevProps) {
|
|
505
|
+
var _this4 = this;
|
|
506
|
+
if (prevProps.categories !== this.props.categories) {
|
|
507
|
+
if (this._updateTimer) clearTimeout(this._updateTimer);
|
|
508
|
+
this._updateTimer = setTimeout(function () {
|
|
509
|
+
return _this4.measureHiddenLabel();
|
|
510
|
+
}, 50);
|
|
452
511
|
}
|
|
453
512
|
}
|
|
454
513
|
}, {
|
|
455
514
|
key: "render",
|
|
456
515
|
value: function render() {
|
|
457
|
-
var
|
|
516
|
+
var _this5 = this;
|
|
458
517
|
var _this$props5 = this.props,
|
|
459
518
|
graphProps = _this$props5.graphProps,
|
|
460
519
|
xBand = _this$props5.xBand,
|
|
@@ -505,9 +564,7 @@ var RawChartAxes = exports.RawChartAxes = /*#__PURE__*/function (_React$Componen
|
|
|
505
564
|
};
|
|
506
565
|
var getTickComponent = function getTickComponent(props) {
|
|
507
566
|
var properties = {
|
|
508
|
-
hiddenLabelRef:
|
|
509
|
-
_this4.hiddenLabelRef = ref;
|
|
510
|
-
},
|
|
567
|
+
hiddenLabelRef: _this5.setHiddenLabelRef,
|
|
511
568
|
categories: categories,
|
|
512
569
|
xBand: xBand,
|
|
513
570
|
bandWidth: bandWidth,
|
package/lib/axes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axes.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_axis","_Checkbox","_plot","_renderUi","_configUi","_mathRendering","_correctnessIndicators","_utils","_markLabel","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","StyledErrorText","styled","_ref","theme","fontSize","typography","fill","palette","error","main","StyledCheckbox","Checkbox","color","concat","tertiary","StyledAxesGroup","_ref2","_theme$typography$bod","stroke","visualElementsColors","AXIS_LINE_COLOR","strokeWidth","AXIS_TICK_COLOR","fontFamily","body1","textAnchor","correctnessIconStyles","borderRadius","spacing","defaults","WHITE","width","height","padding","border","boxSizing","incorrectIconStyles","backgroundColor","incorrectWithIcon","correctIconStyles","correct","TickComponent","exports","_React$Component","props","_this","_classCallCheck2","open","callback","setState","dialog","index","newLabel","_this$props","categories","onChangeCategory","category","label","value","_this$props2","title","text","onConfirm","handleAlertDialog","interactive","onClose","_this$props3","editable","maxChar","chunks","indexToSplit","lastIndexOf","substring","trim","state","_inherits2","_createClass2","key","componentDidUpdate","prevProps","autoFocus","onAutoFocusUsed","render","_this2","_this$props4","xBand","bandWidth","barWidth","rotate","top","graphProps","defineChart","chartingOptions","x","y","formattedValue","changeInteractiveEnabled","changeEditableEnabled","hiddenLabelRef","showCorrectness","classes","correctnessIcon","incorrectIcon","correctIcon","_ref3","changeEditable","changeInteractive","parseInt","split","_ref4","correctness","barX","bandKey","longestCategory","reduce","a","b","lengthA","lengthB","distinctMessages","_toConsumableArray2","Set","values","join","createElement","style","pointerEvents","overflow","isHiddenLabel","inputRef","disabled","mark","input","onChange","changeCategory","limitCharacters","correctnessIndicator","TickCorrectnessIndicator","position","wordBreak","maxWidth","display","splitText","authoringLabel","map","word","dy","checked","target","AlertDialog","React","Component","PropTypes","bool","any","propTypes","array","func","number","object","string","oneOfType","shape","current","instanceOf","Element","RawChartAxes","_React$Component2","_this3","_len","args","Array","_key","componentDidMount","boundingClientRect","getBoundingClientRect","hiddenEl","containsLatex","querySelector","hasMathJax","mathHandled","renderMath","Math","floor","_this4","_this$props5","leftAxis","_this$props5$categori","_ref5","_ref5$scale","scale","_ref5$range","range","_ref5$domain","domain","_ref5$size","size","_this$state","bottomScale","rangeRound","bandwidth","max","rowTickValues","getTickValues","step","labelStep","rotateBecauseOfHeight","getRotateAngle","rotateBecauseOfWidth","getTickLabelProps","dx","toLocaleString","getTickComponent","properties","ref","AxisLeft","tickLength","tickFormat","tickValues","tickLabelProps","AxisBottom","labelProps","min","textLabelProps","count","tickComponent","types","GraphPropsType","isRequired","_default"],"sources":["../src/axes.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { AxisBottom, AxisLeft } from '@visx/axis';\nimport Checkbox from '@mui/material/Checkbox';\n\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nimport { TickCorrectnessIndicator } from './common/correctness-indicators';\nimport { bandKey, getRotateAngle, getTickValues } from './utils';\nimport MarkLabel from './mark-label';\n\nconst StyledErrorText = styled('text')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n fill: theme.palette.error.main,\n}));\n\nconst StyledCheckbox = styled(Checkbox)(() => ({\n color: `${color.tertiary()} !important`,\n}));\n\nconst StyledAxesGroup = styled('g')(({ theme }) => ({\n '& .vx-axis-line': {\n stroke: color.visualElementsColors.AXIS_LINE_COLOR,\n strokeWidth: 2,\n },\n '& .vx-axis-tick': {\n fill: color.visualElementsColors.AXIS_TICK_COLOR,\n '& line': {\n stroke: color.visualElementsColors.AXIS_TICK_COLOR,\n strokeWidth: 2,\n },\n fontFamily: theme.typography.body1?.fontFamily,\n fontSize: theme.typography.fontSize,\n textAnchor: 'middle',\n },\n}));\n\nconst correctnessIconStyles = (theme) => ({\n borderRadius: theme.spacing(2),\n color: color.defaults.WHITE,\n fontSize: '16px',\n width: '16px',\n height: '16px',\n padding: '2px',\n border: `1px solid ${color.defaults.WHITE}`,\n boxSizing: 'unset', // to override the default border-box in IBX\n});\n\nconst incorrectIconStyles = {\n backgroundColor: color.incorrectWithIcon(),\n};\n\nconst correctIconStyles = {\n backgroundColor: color.correct(),\n};\n\nexport class TickComponent extends React.Component {\n static propTypes = {\n defineChart: PropTypes.bool,\n error: PropTypes.any,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n dialog: {\n open: false,\n },\n };\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.autoFocus && !prevProps.autoFocus) {\n this.props.onAutoFocusUsed();\n }\n }\n\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open },\n },\n callback,\n );\n\n changeCategory = (index, newLabel) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n onChangeCategory(index, { ...category, label: newLabel });\n };\n\n changeInteractive = (index, value) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n if (!value) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'This will remove the correct answer value that has been defined for this category.',\n onConfirm: () =>\n this.handleAlertDialog(false, onChangeCategory(index, { ...category, interactive: !category.interactive })),\n onClose: () => this.handleAlertDialog(false),\n },\n });\n } else {\n onChangeCategory(index, { ...category, interactive: !category.interactive });\n }\n };\n\n changeEditable = (index, value) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n if (!value) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'This will remove the correct answer category name that has been defined for this category.',\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n onChangeCategory(index, { ...category, editable: !category.editable || false }),\n ),\n onClose: () => this.handleAlertDialog(false),\n },\n });\n } else {\n onChangeCategory(index, { ...category, editable: !category.editable || false });\n }\n };\n\n splitText = (text, maxChar) => {\n let chunks = [];\n while ((text || '').length > 0) {\n let indexToSplit;\n if (text.length > maxChar) {\n indexToSplit = text.lastIndexOf(' ', maxChar);\n if (indexToSplit === -1) {\n indexToSplit = maxChar;\n }\n } else {\n indexToSplit = text.length;\n }\n chunks.push(text.substring(0, indexToSplit));\n text = text.substring(indexToSplit).trim();\n }\n return chunks;\n };\n\n render() {\n const {\n categories,\n xBand,\n bandWidth,\n barWidth,\n rotate,\n top,\n graphProps,\n defineChart,\n chartingOptions,\n x,\n y,\n formattedValue,\n changeInteractiveEnabled,\n changeEditableEnabled,\n error,\n autoFocus,\n hiddenLabelRef,\n showCorrectness,\n } = this.props;\n\n if (!formattedValue) {\n return null;\n }\n\n // Create classes object for TickCorrectnessIndicator compatibility\n const classes = {\n correctnessIcon: correctnessIconStyles,\n incorrectIcon: incorrectIconStyles,\n correctIcon: correctIconStyles,\n };\n\n const { dialog } = this.state;\n const { changeEditable, changeInteractive } = chartingOptions || {};\n const index = parseInt(formattedValue.split('-')[0], 10);\n const category = categories[index];\n const { editable, interactive, label, correctness } = category || {};\n const barX = xBand(bandKey({ label }, index));\n const longestCategory = (categories || []).reduce(\n (a, b) => {\n const lengthA = a && a.label ? a.label.length : 0;\n const lengthB = b && b.label ? b.label.length : 0;\n\n return lengthA > lengthB ? a : b;\n },\n { label: '' },\n );\n const distinctMessages = error ? [...new Set(Object.values(error))].join(' ') : '';\n\n return (\n <g>\n <foreignObject\n x={bandWidth ? barX : x - barWidth / 2}\n y={18}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'none', overflow: 'visible' }}\n >\n {index === 0 && (\n <MarkLabel\n isHiddenLabel={true}\n inputRef={hiddenLabelRef}\n disabled={true}\n mark={longestCategory}\n graphProps={graphProps}\n barWidth={barWidth}\n />\n )}\n\n <MarkLabel\n autoFocus={defineChart && autoFocus}\n inputRef={(r) => (this.input = r)}\n disabled={!defineChart && !editable}\n mark={category}\n graphProps={graphProps}\n onChange={(newLabel) => this.changeCategory(index, newLabel)}\n barWidth={barWidth}\n rotate={rotate}\n correctness={correctness}\n error={error && error[index]}\n limitCharacters\n correctnessIndicator={\n showCorrectness &&\n correctness && (\n <TickCorrectnessIndicator correctness={correctness} interactive={interactive} classes={classes} />\n )\n }\n />\n </foreignObject>\n\n {error && index === 0 && (\n <StyledErrorText y={y + 23} height={6} textAnchor=\"start\">\n {distinctMessages}\n </StyledErrorText>\n )}\n\n {defineChart && index === 0 && (\n <svg\n x={-55}\n style={{\n overflow: 'visible',\n }}\n >\n {changeInteractiveEnabled && (\n <text\n y={y + 90 + top}\n width={barWidth}\n height={4}\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n wordBreak: 'break-word',\n maxWidth: barWidth,\n display: 'inline-block',\n }}\n >\n {this.splitText(changeInteractive?.authoringLabel, 20).map((word, index) => (\n <tspan key={index} x=\"0\" dy={`${index > 0 ? '1.2em' : '.6em'}`}>\n {word}\n </tspan>\n ))}\n </text>\n )}\n\n {changeEditableEnabled && (\n <text\n y={y + 145 + top}\n width={barWidth}\n height={4}\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n wordBreak: 'break-word',\n maxWidth: barWidth,\n display: 'inline-block',\n }}\n >\n {this.splitText(changeEditable?.authoringLabel, 20).map((word, index) => (\n <tspan key={index} x=\"0\" dy={`${index > 0 ? '1.2em' : '.6em'}`}>\n {word}\n </tspan>\n ))}\n </text>\n )}\n </svg>\n )}\n\n {defineChart && changeInteractiveEnabled && (\n <foreignObject\n x={x - 24}\n y={y + 80 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <StyledCheckbox\n style={{ position: 'fixed' }}\n checked={interactive}\n onChange={(e) => this.changeInteractive(index, e.target.checked)}\n />\n </foreignObject>\n )}\n\n {defineChart && changeEditableEnabled && (\n <foreignObject\n x={x - 24}\n y={y + 130 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <StyledCheckbox\n style={{ position: 'fixed' }}\n checked={editable}\n onChange={(e) => this.changeEditable(index, e.target.checked)}\n />\n </foreignObject>\n )}\n\n <foreignObject\n x={x - 24}\n y={y + 100 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </foreignObject>\n </g>\n );\n }\n}\n\nTickComponent.propTypes = {\n categories: PropTypes.array,\n xBand: PropTypes.func,\n bandWidth: PropTypes.number,\n barWidth: PropTypes.number,\n rotate: PropTypes.number,\n top: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number,\n graphProps: PropTypes.object,\n formattedValue: PropTypes.string,\n onChangeCategory: PropTypes.func,\n onChange: PropTypes.func,\n error: PropTypes.object,\n defineChart: PropTypes.bool,\n chartingOptions: PropTypes.object,\n changeInteractiveEnabled: PropTypes.bool,\n changeEditableEnabled: PropTypes.bool,\n autoFocus: PropTypes.bool,\n onAutoFocusUsed: PropTypes.func,\n showCorrectness: PropTypes.bool,\n hiddenLabelRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.instanceOf(Element) })]),\n};\n\nexport class RawChartAxes extends React.Component {\n static propTypes = {\n bottomScale: PropTypes.func,\n categories: PropTypes.array,\n defineChart: PropTypes.bool,\n error: PropTypes.any,\n graphProps: types.GraphPropsType.isRequired,\n xBand: PropTypes.func,\n leftAxis: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeCategory: PropTypes.func,\n top: PropTypes.number,\n theme: PropTypes.object,\n chartingOptions: PropTypes.object,\n changeInteractiveEnabled: PropTypes.bool,\n changeEditableEnabled: PropTypes.bool,\n autoFocus: PropTypes.bool,\n onAutoFocusUsed: PropTypes.func,\n showCorrectness: PropTypes.bool,\n hiddenLabelRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.instanceOf(Element) })]),\n };\n\n state = { height: 0, width: 0 };\n\n componentDidMount() {\n if (this.hiddenLabelRef) {\n const boundingClientRect = this.hiddenLabelRef.getBoundingClientRect();\n const hiddenEl = this.hiddenLabelRef;\n\n // same logic used in dropdown.jsx for hidden labels width calculation\n if (hiddenEl) {\n const containsLatex = hiddenEl.querySelector('[data-latex], [data-raw]');\n const hasMathJax = hiddenEl.querySelector('mjx-container');\n const mathHandled = hiddenEl.querySelector('[data-math-handled=\"true\"]');\n\n if (containsLatex && (!mathHandled || !hasMathJax)) {\n renderMath(this.hiddenLabelRef);\n }\n\n this.setState({\n height: Math.floor(boundingClientRect.height),\n width: Math.floor(boundingClientRect.width),\n });\n }\n }\n }\n\n componentDidUpdate() {\n if (this.hiddenLabelRef) {\n const width = Math.floor(this.hiddenLabelRef.getBoundingClientRect().width);\n\n if (width !== this.state.width) {\n this.setState({ width });\n }\n }\n }\n\n render() {\n const {\n graphProps,\n xBand,\n leftAxis,\n onChange,\n onChangeCategory,\n categories = [],\n top,\n defineChart,\n chartingOptions,\n changeInteractiveEnabled,\n changeEditableEnabled,\n theme,\n autoFocus,\n onAutoFocusUsed,\n error,\n showCorrectness,\n } = this.props;\n\n const { scale = {}, range = {}, domain = {}, size = {} } = graphProps || {};\n const { height, width } = this.state;\n\n const bottomScale = xBand && typeof xBand.rangeRound === 'function' && xBand.rangeRound([0, size.width]);\n\n const bandWidth = xBand && typeof xBand.bandwidth === 'function' && xBand.bandwidth();\n // for chartType \"line\", bandWidth will be 0, so we have to calculate it\n const barWidth = bandWidth || (scale.x && scale.x(domain.max) / categories.length);\n\n const rowTickValues = getTickValues({ ...range, step: range.labelStep });\n const fontSize = theme && theme.typography ? theme.typography.fontSize : 14;\n // this mostly applies for labels that are not editable\n const rotateBecauseOfHeight = getRotateAngle(fontSize, height);\n // this applies for labels that are editable\n const rotateBecauseOfWidth = width > barWidth ? 25 : 0;\n\n const getTickLabelProps = (value) => ({\n dy: 4,\n dx: -10 - (value.toLocaleString().length || 1) * 5,\n });\n\n const getTickComponent = (props) => {\n const properties = {\n hiddenLabelRef: (ref) => {\n this.hiddenLabelRef = ref;\n },\n categories,\n xBand,\n bandWidth,\n barWidth,\n rotate: rotateBecauseOfHeight || rotateBecauseOfWidth,\n top,\n defineChart,\n chartingOptions,\n autoFocus,\n onAutoFocusUsed,\n error,\n onChangeCategory,\n changeInteractiveEnabled,\n changeEditableEnabled,\n onChange,\n graphProps,\n x: props.x,\n y: props.y,\n formattedValue: props.formattedValue,\n showCorrectness,\n };\n\n return <TickComponent {...properties} />;\n };\n\n return (\n <StyledAxesGroup>\n {leftAxis && (\n <AxisLeft\n scale={scale.y}\n tickLength={10}\n tickFormat={(value) => value}\n tickValues={rowTickValues}\n tickLabelProps={getTickLabelProps}\n />\n )}\n <AxisBottom\n scale={bottomScale}\n labelProps={{ y: 60 + top }}\n top={scale.y && scale.y(range.min)}\n textLabelProps={() => ({ textAnchor: 'middle' })}\n tickFormat={(count) => count}\n tickComponent={getTickComponent}\n autoFocus={autoFocus}\n onAutoFocusUsed={onAutoFocusUsed}\n />\n </StyledAxesGroup>\n );\n }\n}\n\nexport default RawChartAxes;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"axes.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_axis","_Checkbox","_plot","_renderUi","_configUi","_mathRendering","_correctnessIndicators","_utils","_markLabel","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_callSuper","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","Boolean","prototype","valueOf","call","_mathCallbacks","Set","_docObserver","registerMathCallback","cb","add","document","MutationObserver","fn","observe","body","childList","subtree","unregisterMathCallback","size","disconnect","StyledErrorText","styled","_ref","theme","fontSize","typography","fill","palette","error","main","StyledCheckbox","Checkbox","color","concat","tertiary","StyledAxesGroup","_ref2","_theme$typography$bod","stroke","visualElementsColors","AXIS_LINE_COLOR","strokeWidth","AXIS_TICK_COLOR","fontFamily","body1","textAnchor","correctnessIconStyles","borderRadius","spacing","defaults","WHITE","width","height","padding","border","boxSizing","incorrectIconStyles","backgroundColor","incorrectWithIcon","correctIconStyles","correct","TickComponent","exports","_React$Component","props","_this","_classCallCheck2","open","callback","setState","dialog","index","newLabel","_this$props","categories","onChangeCategory","category","label","value","_this$props2","title","text","onConfirm","handleAlertDialog","interactive","onClose","_this$props3","editable","maxChar","chunks","indexToSplit","lastIndexOf","substring","trim","state","_inherits2","_createClass2","key","componentDidUpdate","prevProps","autoFocus","onAutoFocusUsed","render","_this2","_this$props4","xBand","bandWidth","barWidth","rotate","top","graphProps","defineChart","chartingOptions","x","y","formattedValue","changeInteractiveEnabled","changeEditableEnabled","hiddenLabelRef","showCorrectness","classes","correctnessIcon","incorrectIcon","correctIcon","_ref3","changeEditable","changeInteractive","parseInt","split","_ref4","correctness","barX","bandKey","longestCategory","reduce","a","b","lengthA","lengthB","distinctMessages","_toConsumableArray2","values","join","createElement","style","pointerEvents","overflow","isHiddenLabel","inputRef","disabled","mark","input","onChange","changeCategory","limitCharacters","correctnessIndicator","TickCorrectnessIndicator","position","wordBreak","maxWidth","display","splitText","authoringLabel","map","word","dy","checked","target","AlertDialog","React","Component","PropTypes","bool","any","propTypes","array","func","number","object","string","oneOfType","shape","current","instanceOf","Element","RawChartAxes","_React$Component2","_this3","_len","args","Array","_key","mjx","querySelector","rect","getBoundingClientRect","Math","floor","measureHiddenLabel","el","containsLatex","renderMath","_onDocMutation","ref","observeHiddenLabel","componentDidMount","componentWillUnmount","_updateTimer","clearTimeout","_this4","setTimeout","_this5","_this$props5","leftAxis","_this$props5$categori","_ref5","_ref5$scale","scale","_ref5$range","range","_ref5$domain","domain","_ref5$size","_this$state","bottomScale","rangeRound","bandwidth","max","rowTickValues","getTickValues","step","labelStep","rotateBecauseOfHeight","getRotateAngle","rotateBecauseOfWidth","getTickLabelProps","dx","toLocaleString","getTickComponent","properties","setHiddenLabelRef","AxisLeft","tickLength","tickFormat","tickValues","tickLabelProps","AxisBottom","labelProps","min","textLabelProps","count","tickComponent","types","GraphPropsType","isRequired","_default"],"sources":["../src/axes.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { AxisBottom, AxisLeft } from '@visx/axis';\nimport Checkbox from '@mui/material/Checkbox';\n\nimport { types } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nimport { TickCorrectnessIndicator } from './common/correctness-indicators';\nimport { bandKey, getRotateAngle, getTickValues } from './utils';\nimport MarkLabel from './mark-label';\n\n// one document-level MutationObserver shared across all\n// RawChartAxes instances so that no chart misses a MathJax render batch\nconst _mathCallbacks = new Set();\nlet _docObserver = null;\n\nfunction registerMathCallback(cb) {\n _mathCallbacks.add(cb);\n\n if (!_docObserver && typeof document !== 'undefined') {\n _docObserver = new MutationObserver(() => {\n _mathCallbacks.forEach((fn) => fn());\n });\n _docObserver.observe(document.body, { childList: true, subtree: true });\n }\n}\n\nfunction unregisterMathCallback(cb) {\n _mathCallbacks.delete(cb);\n\n if (_mathCallbacks.size === 0 && _docObserver) {\n _docObserver.disconnect();\n _docObserver = null;\n }\n}\n\nconst StyledErrorText = styled('text')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n fill: theme.palette.error.main,\n}));\n\nconst StyledCheckbox = styled(Checkbox)(() => ({\n color: `${color.tertiary()} !important`,\n}));\n\nconst StyledAxesGroup = styled('g')(({ theme }) => ({\n '& .vx-axis-line': {\n stroke: color.visualElementsColors.AXIS_LINE_COLOR,\n strokeWidth: 2,\n },\n '& .vx-axis-tick': {\n fill: color.visualElementsColors.AXIS_TICK_COLOR,\n '& line': {\n stroke: color.visualElementsColors.AXIS_TICK_COLOR,\n strokeWidth: 2,\n },\n fontFamily: theme.typography.body1?.fontFamily,\n fontSize: theme.typography.fontSize,\n textAnchor: 'middle',\n },\n}));\n\nconst correctnessIconStyles = (theme) => ({\n borderRadius: theme.spacing(2),\n color: color.defaults.WHITE,\n fontSize: '16px',\n width: '16px',\n height: '16px',\n padding: '2px',\n border: `1px solid ${color.defaults.WHITE}`,\n boxSizing: 'unset', // to override the default border-box in IBX\n});\n\nconst incorrectIconStyles = {\n backgroundColor: color.incorrectWithIcon(),\n};\n\nconst correctIconStyles = {\n backgroundColor: color.correct(),\n};\n\nexport class TickComponent extends React.Component {\n static propTypes = {\n defineChart: PropTypes.bool,\n error: PropTypes.any,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n dialog: {\n open: false,\n },\n };\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.autoFocus && !prevProps.autoFocus) {\n this.props.onAutoFocusUsed();\n }\n }\n\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open },\n },\n callback,\n );\n\n changeCategory = (index, newLabel) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n onChangeCategory(index, { ...category, label: newLabel });\n };\n\n changeInteractive = (index, value) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n if (!value) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'This will remove the correct answer value that has been defined for this category.',\n onConfirm: () =>\n this.handleAlertDialog(false, onChangeCategory(index, { ...category, interactive: !category.interactive })),\n onClose: () => this.handleAlertDialog(false),\n },\n });\n } else {\n onChangeCategory(index, { ...category, interactive: !category.interactive });\n }\n };\n\n changeEditable = (index, value) => {\n const { categories, onChangeCategory } = this.props;\n const category = categories[index];\n\n if (!value) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: 'This will remove the correct answer category name that has been defined for this category.',\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n onChangeCategory(index, { ...category, editable: !category.editable || false }),\n ),\n onClose: () => this.handleAlertDialog(false),\n },\n });\n } else {\n onChangeCategory(index, { ...category, editable: !category.editable || false });\n }\n };\n\n splitText = (text, maxChar) => {\n let chunks = [];\n while ((text || '').length > 0) {\n let indexToSplit;\n if (text.length > maxChar) {\n indexToSplit = text.lastIndexOf(' ', maxChar);\n if (indexToSplit === -1) {\n indexToSplit = maxChar;\n }\n } else {\n indexToSplit = text.length;\n }\n chunks.push(text.substring(0, indexToSplit));\n text = text.substring(indexToSplit).trim();\n }\n return chunks;\n };\n\n render() {\n const {\n categories,\n xBand,\n bandWidth,\n barWidth,\n rotate,\n top,\n graphProps,\n defineChart,\n chartingOptions,\n x,\n y,\n formattedValue,\n changeInteractiveEnabled,\n changeEditableEnabled,\n error,\n autoFocus,\n hiddenLabelRef,\n showCorrectness,\n } = this.props;\n\n if (!formattedValue) {\n return null;\n }\n\n // Create classes object for TickCorrectnessIndicator compatibility\n const classes = {\n correctnessIcon: correctnessIconStyles,\n incorrectIcon: incorrectIconStyles,\n correctIcon: correctIconStyles,\n };\n\n const { dialog } = this.state;\n const { changeEditable, changeInteractive } = chartingOptions || {};\n const index = parseInt(formattedValue.split('-')[0], 10);\n const category = categories[index];\n const { editable, interactive, label, correctness } = category || {};\n const barX = xBand(bandKey({ label }, index));\n const longestCategory = (categories || []).reduce(\n (a, b) => {\n const lengthA = a && a.label ? a.label.length : 0;\n const lengthB = b && b.label ? b.label.length : 0;\n\n return lengthA > lengthB ? a : b;\n },\n { label: '' },\n );\n const distinctMessages = error ? [...new Set(Object.values(error))].join(' ') : '';\n\n return (\n <g>\n <foreignObject\n x={bandWidth ? barX : x - barWidth / 2}\n y={18}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'none', overflow: 'visible' }}\n >\n {index === 0 && (\n <MarkLabel\n isHiddenLabel={true}\n inputRef={hiddenLabelRef}\n disabled={true}\n mark={longestCategory}\n graphProps={graphProps}\n barWidth={barWidth}\n />\n )}\n\n <MarkLabel\n autoFocus={defineChart && autoFocus}\n inputRef={(r) => (this.input = r)}\n disabled={!defineChart && !editable}\n mark={category}\n graphProps={graphProps}\n onChange={(newLabel) => this.changeCategory(index, newLabel)}\n barWidth={barWidth}\n rotate={rotate}\n correctness={correctness}\n error={error && error[index]}\n limitCharacters\n correctnessIndicator={\n showCorrectness &&\n correctness && (\n <TickCorrectnessIndicator correctness={correctness} interactive={interactive} classes={classes} />\n )\n }\n />\n </foreignObject>\n\n {error && index === 0 && (\n <StyledErrorText y={y + 23} height={6} textAnchor=\"start\">\n {distinctMessages}\n </StyledErrorText>\n )}\n\n {defineChart && index === 0 && (\n <svg\n x={-55}\n style={{\n overflow: 'visible',\n }}\n >\n {changeInteractiveEnabled && (\n <text\n y={y + 90 + top}\n width={barWidth}\n height={4}\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n wordBreak: 'break-word',\n maxWidth: barWidth,\n display: 'inline-block',\n }}\n >\n {this.splitText(changeInteractive?.authoringLabel, 20).map((word, index) => (\n <tspan key={index} x=\"0\" dy={`${index > 0 ? '1.2em' : '.6em'}`}>\n {word}\n </tspan>\n ))}\n </text>\n )}\n\n {changeEditableEnabled && (\n <text\n y={y + 145 + top}\n width={barWidth}\n height={4}\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n wordBreak: 'break-word',\n maxWidth: barWidth,\n display: 'inline-block',\n }}\n >\n {this.splitText(changeEditable?.authoringLabel, 20).map((word, index) => (\n <tspan key={index} x=\"0\" dy={`${index > 0 ? '1.2em' : '.6em'}`}>\n {word}\n </tspan>\n ))}\n </text>\n )}\n </svg>\n )}\n\n {defineChart && changeInteractiveEnabled && (\n <foreignObject\n x={x - 24}\n y={y + 80 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <StyledCheckbox\n style={{ position: 'fixed' }}\n checked={interactive}\n onChange={(e) => this.changeInteractive(index, e.target.checked)}\n />\n </foreignObject>\n )}\n\n {defineChart && changeEditableEnabled && (\n <foreignObject\n x={x - 24}\n y={y + 130 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <StyledCheckbox\n style={{ position: 'fixed' }}\n checked={editable}\n onChange={(e) => this.changeEditable(index, e.target.checked)}\n />\n </foreignObject>\n )}\n\n <foreignObject\n x={x - 24}\n y={y + 100 + top}\n width={barWidth}\n height={4}\n style={{ pointerEvents: 'visible', overflow: 'visible' }}\n >\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </foreignObject>\n </g>\n );\n }\n}\n\nTickComponent.propTypes = {\n categories: PropTypes.array,\n xBand: PropTypes.func,\n bandWidth: PropTypes.number,\n barWidth: PropTypes.number,\n rotate: PropTypes.number,\n top: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number,\n graphProps: PropTypes.object,\n formattedValue: PropTypes.string,\n onChangeCategory: PropTypes.func,\n onChange: PropTypes.func,\n error: PropTypes.object,\n defineChart: PropTypes.bool,\n chartingOptions: PropTypes.object,\n changeInteractiveEnabled: PropTypes.bool,\n changeEditableEnabled: PropTypes.bool,\n autoFocus: PropTypes.bool,\n onAutoFocusUsed: PropTypes.func,\n showCorrectness: PropTypes.bool,\n hiddenLabelRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.instanceOf(Element) })]),\n};\n\nexport class RawChartAxes extends React.Component {\n static propTypes = {\n bottomScale: PropTypes.func,\n categories: PropTypes.array,\n defineChart: PropTypes.bool,\n error: PropTypes.any,\n graphProps: types.GraphPropsType.isRequired,\n xBand: PropTypes.func,\n leftAxis: PropTypes.bool,\n onChange: PropTypes.func,\n onChangeCategory: PropTypes.func,\n top: PropTypes.number,\n theme: PropTypes.object,\n chartingOptions: PropTypes.object,\n changeInteractiveEnabled: PropTypes.bool,\n changeEditableEnabled: PropTypes.bool,\n autoFocus: PropTypes.bool,\n onAutoFocusUsed: PropTypes.func,\n showCorrectness: PropTypes.bool,\n hiddenLabelRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({ current: PropTypes.instanceOf(Element) })]),\n };\n\n state = { height: 0, width: 0 };\n\n measureHiddenLabel = () => {\n if (!this.hiddenLabelRef) return;\n\n const mjx = this.hiddenLabelRef.querySelector('mjx-container');\n const input = this.hiddenLabelRef.querySelector('input');\n const target = mjx || input || this.hiddenLabelRef;\n const rect = target.getBoundingClientRect();\n const height = Math.floor(rect.height);\n const width = Math.floor(rect.width);\n\n if (height !== this.state.height || width !== this.state.width) {\n this.setState({ height, width });\n }\n };\n\n // called by the document-level observer on every DOM mutation.\n // only re-measures once mjx-container is present in our hidden label.\n _onDocMutation = () => {\n if (!this.hiddenLabelRef) return;\n if (this.hiddenLabelRef.querySelector('mjx-container')) {\n this.measureHiddenLabel();\n }\n };\n\n observeHiddenLabel = (el) => {\n if (!el) return;\n\n const containsLatex = el.querySelector('[data-latex], [data-raw]');\n\n if (containsLatex) {\n renderMath(el);\n }\n\n if (el.querySelector('mjx-container') || !containsLatex) {\n this.measureHiddenLabel();\n }\n // always register: if mjx-container isn't there yet, the doc observer will\n // call _onDocMutation when MathJax finishes rendering any element on the page.\n registerMathCallback(this._onDocMutation);\n };\n\n setHiddenLabelRef = (ref) => {\n if (ref && ref !== this.hiddenLabelRef) {\n this.hiddenLabelRef = ref;\n this.observeHiddenLabel(ref);\n }\n };\n\n componentDidMount() {\n if (this.hiddenLabelRef) {\n this.observeHiddenLabel(this.hiddenLabelRef);\n }\n }\n\n componentWillUnmount() {\n unregisterMathCallback(this._onDocMutation);\n if (this._updateTimer) {\n clearTimeout(this._updateTimer);\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps.categories !== this.props.categories) {\n if (this._updateTimer) clearTimeout(this._updateTimer);\n this._updateTimer = setTimeout(() => this.measureHiddenLabel(), 50);\n }\n }\n\n render() {\n const {\n graphProps,\n xBand,\n leftAxis,\n onChange,\n onChangeCategory,\n categories = [],\n top,\n defineChart,\n chartingOptions,\n changeInteractiveEnabled,\n changeEditableEnabled,\n theme,\n autoFocus,\n onAutoFocusUsed,\n error,\n showCorrectness,\n } = this.props;\n\n const { scale = {}, range = {}, domain = {}, size = {} } = graphProps || {};\n const { height, width } = this.state;\n\n const bottomScale = xBand && typeof xBand.rangeRound === 'function' && xBand.rangeRound([0, size.width]);\n\n const bandWidth = xBand && typeof xBand.bandwidth === 'function' && xBand.bandwidth();\n // for chartType \"line\", bandWidth will be 0, so we have to calculate it\n const barWidth = bandWidth || (scale.x && scale.x(domain.max) / categories.length);\n\n const rowTickValues = getTickValues({ ...range, step: range.labelStep });\n const fontSize = theme && theme.typography ? theme.typography.fontSize : 14;\n // this mostly applies for labels that are not editable\n const rotateBecauseOfHeight = getRotateAngle(fontSize, height);\n // this applies for labels that are editable\n const rotateBecauseOfWidth = width > barWidth ? 25 : 0;\n\n const getTickLabelProps = (value) => ({\n dy: 4,\n dx: -10 - (value.toLocaleString().length || 1) * 5,\n });\n\n const getTickComponent = (props) => {\n const properties = {\n hiddenLabelRef: this.setHiddenLabelRef,\n categories,\n xBand,\n bandWidth,\n barWidth,\n rotate: rotateBecauseOfHeight || rotateBecauseOfWidth,\n top,\n defineChart,\n chartingOptions,\n autoFocus,\n onAutoFocusUsed,\n error,\n onChangeCategory,\n changeInteractiveEnabled,\n changeEditableEnabled,\n onChange,\n graphProps,\n x: props.x,\n y: props.y,\n formattedValue: props.formattedValue,\n showCorrectness,\n };\n\n return <TickComponent {...properties} />;\n };\n\n return (\n <StyledAxesGroup>\n {leftAxis && (\n <AxisLeft\n scale={scale.y}\n tickLength={10}\n tickFormat={(value) => value}\n tickValues={rowTickValues}\n tickLabelProps={getTickLabelProps}\n />\n )}\n <AxisBottom\n scale={bottomScale}\n labelProps={{ y: 60 + top }}\n top={scale.y && scale.y(range.min)}\n textLabelProps={() => ({ textAnchor: 'middle' })}\n tickFormat={(count) => count}\n tickComponent={getTickComponent}\n autoFocus={autoFocus}\n onAutoFocusUsed={onAutoFocusUsed}\n />\n </StyledAxesGroup>\n );\n }\n}\n\nexport default RawChartAxes;\n"],"mappings":"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","ignoreList":[]}
|
package/lib/mark-label.js
CHANGED
|
@@ -121,7 +121,7 @@ var MarkLabel = exports.MarkLabel = function MarkLabel(props) {
|
|
|
121
121
|
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
|
122
122
|
isEditing = _useState8[0],
|
|
123
123
|
setIsEditing = _useState8[1];
|
|
124
|
-
var
|
|
124
|
+
var rootRef = (0, _react.useRef)(null);
|
|
125
125
|
var onChange = function onChange(e) {
|
|
126
126
|
if (limitCharacters && e.target.value && e.target.value.length > 20) {
|
|
127
127
|
return;
|
|
@@ -149,18 +149,19 @@ var MarkLabel = exports.MarkLabel = function MarkLabel(props) {
|
|
|
149
149
|
setLabel(mark.label);
|
|
150
150
|
}, [mark.label]);
|
|
151
151
|
(0, _react.useEffect)(function () {
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
var el = rootRef.current;
|
|
153
|
+
if (el && mathLabel) {
|
|
154
|
+
el.innerHTML = mathLabel;
|
|
155
|
+
(0, _mathRendering.renderMath)(el);
|
|
156
|
+
}
|
|
157
|
+
}, [label, mathLabel]);
|
|
154
158
|
return /*#__PURE__*/_react["default"].createElement(StyledContainer, null, correctnessIndicator, isMathRendering() ? /*#__PURE__*/_react["default"].createElement(StyledMathInput, {
|
|
155
159
|
ref: function ref(r) {
|
|
156
|
-
|
|
160
|
+
rootRef.current = r;
|
|
157
161
|
if (typeof externalInputRef === 'function') {
|
|
158
162
|
externalInputRef(r);
|
|
159
163
|
}
|
|
160
164
|
},
|
|
161
|
-
dangerouslySetInnerHTML: {
|
|
162
|
-
__html: getLabelMathFormat(label)
|
|
163
|
-
},
|
|
164
165
|
className: (0, _classnames["default"])({
|
|
165
166
|
disabled: disabled,
|
|
166
167
|
error: error,
|
package/lib/mark-label.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mark-label.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_styles","_reactInputAutosize","_propTypes","_plot","_styles2","_renderUi","_mathRendering","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","StyledContainer","styled","display","flexDirection","alignItems","StyledInput","_ref2","theme","fontFamily","typography","fontSize","border","correct","incorrect","backgroundColor","concat","palette","error","main","StyledMathInput","_ref3","pointerEvents","textAlign","color","primaryDark","paddingTop","disabled","isFractionFormat","label","trimmedLabel","trim","fracRegex","RegExp","test","getLabelMathFormat","fraction","mixedNr","improperFraction","split","includes","formattedLLabel","undefined","MarkLabel","exports","props","_useState","useState","_useState2","_slicedToArray2","input","setInput","_ref","useCallback","node","_props$mark","mark","externalInputRef","inputRef","barWidth","rotate","correctness","autoFocus","isHiddenLabel","limitCharacters","correctnessIndicator","_useState3","_useState4","setLabel","_useState5","_useState6","mathLabel","setMathLabel","_useState7","_useState8","isEditing","setIsEditing","root","useRef","onChange","target","value","isMathRendering","onChangeProp","extraStyle","width","useEffect","renderMath","createElement","ref","dangerouslySetInnerHTML","__html","className","classNames","editable","onClick","style","minWidth","position","transformOrigin","transform","visibility","marginTop","name","inputClassName","inputStyle","background","boxSizing","paddingLeft","paddingRight","top","left","onBlur","propTypes","PropTypes","bool","any","func","graphProps","types","GraphPropsType","object","number","shape","string","_default"],"sources":["../src/mark-label.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { styled } from '@mui/material/styles';\nimport AutosizeInput from 'react-input-autosize';\nimport PropTypes from 'prop-types';\n\nimport { types } from '@pie-lib/plot';\nimport { correct, disabled, incorrect } from './common/styles';\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nconst StyledContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n});\n\n// eslint-disable-next-line no-unused-vars\nconst StyledInput = styled('input')(({ theme }) => ({\n float: 'right',\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n border: 'none',\n '&.correct': correct('color'),\n '&.incorrect': incorrect('color'),\n '&.disabled': {\n backgroundColor: 'transparent !important',\n },\n '&.error': { border: `2px solid ${theme.palette.error.main}` },\n}));\n\nconst StyledMathInput = styled('div')(({ theme }) => ({\n pointerEvents: 'auto',\n textAlign: 'center',\n fontSize: theme.typography.fontSize + 2,\n fontFamily: theme.typography.fontFamily,\n color: color.primaryDark(),\n paddingTop: theme.typography.fontSize / 2,\n '&.disabled': {\n ...disabled('color'),\n backgroundColor: 'transparent !important',\n },\n '&.error': {\n border: `2px solid ${theme.palette.error.main}`,\n },\n '&.correct': {\n ...correct('color'),\n },\n '&.incorrect': {\n ...incorrect('color'),\n },\n}));\n\nfunction isFractionFormat(label) {\n const trimmedLabel = label?.trim() || '';\n const fracRegex = new RegExp(/^[1-9]*[0-9]*\\s?[1-9][0-9]*\\/[1-9][0-9]*$/);\n return fracRegex.test(trimmedLabel);\n}\n\nfunction getLabelMathFormat(label) {\n const trimmedLabel = label?.trim() || '';\n let fraction;\n let mixedNr = '';\n let improperFraction = trimmedLabel.split(' ');\n if (improperFraction[1] && improperFraction[1].includes('/')) {\n fraction = improperFraction[1].split('/') || '';\n } else {\n fraction = trimmedLabel?.split('/') || '';\n }\n\n let formattedLLabel;\n if (isFractionFormat(label)) {\n if (improperFraction[0] && improperFraction[1]) {\n mixedNr = improperFraction[0];\n }\n formattedLLabel = `\\\\(${mixedNr}\\\\frac{${fraction[0]}}{${fraction[1]}}\\\\)`;\n return formattedLLabel;\n }\n return undefined;\n}\n\nexport const MarkLabel = (props) => {\n // eslint-disable-next-line no-unused-vars\n const [input, setInput] = useState(null);\n const _ref = useCallback((node) => setInput(node), null);\n\n const {\n mark = {},\n disabled,\n inputRef: externalInputRef,\n barWidth,\n rotate,\n correctness,\n autoFocus,\n error,\n isHiddenLabel,\n limitCharacters,\n correctnessIndicator,\n } = props;\n\n const [label, setLabel] = useState(mark.label);\n const [mathLabel, setMathLabel] = useState(getLabelMathFormat(mark.label));\n const [isEditing, setIsEditing] = useState(false);\n let root = useRef(null);\n\n const onChange = (e) => {\n if (limitCharacters && e.target.value && e.target.value.length > 20) {\n return;\n }\n\n setLabel(e.target.value);\n };\n\n const isMathRendering = () => {\n return isEditing === false && mathLabel !== undefined;\n };\n\n const onChangeProp = (e) => {\n setMathLabel(getLabelMathFormat(mark.label));\n setIsEditing(false);\n props.onChange(e.target.value);\n };\n let extraStyle = {};\n\n if (rotate) {\n extraStyle = {\n width: 'unset',\n textAlign: 'left',\n };\n }\n\n // useState only sets the value once, to synch props to state need useEffect\n useEffect(() => {\n setLabel(mark.label);\n }, [mark.label]);\n\n useEffect(() => {\n renderMath(root);\n }, []);\n\n return (\n <StyledContainer>\n {correctnessIndicator}\n {isMathRendering() ? (\n <StyledMathInput\n ref={(r) => {\n root = r;\n if (typeof externalInputRef === 'function') {\n externalInputRef(r);\n }\n }}\n dangerouslySetInnerHTML={{ __html: getLabelMathFormat(label) }}\n className={classNames({\n disabled: disabled,\n error: error,\n correct: mark.editable && correctness?.label === 'correct',\n incorrect: mark.editable && correctness?.label === 'incorrect',\n })}\n onClick={() => setIsEditing(true)}\n style={{\n minWidth: barWidth,\n position: 'fixed',\n transformOrigin: 'left',\n transform: `rotate(${rotate}deg)`,\n visibility: isHiddenLabel ? 'hidden' : 'unset',\n marginTop: correctnessIndicator ? '24px' : '0',\n }}\n ></StyledMathInput>\n ) : (\n <AutosizeInput\n inputRef={(r) => {\n _ref(r);\n if (typeof externalInputRef === 'function') {\n externalInputRef(r);\n }\n }}\n name=\"mark-label-input\"\n autoFocus={isEditing || autoFocus}\n disabled={disabled}\n inputClassName={classNames(\n correctness && mark.editable ? correctness.label : null,\n disabled && 'disabled',\n error && 'error',\n )}\n inputStyle={{\n minWidth: barWidth,\n textAlign: 'center',\n background: 'transparent',\n boxSizing: 'border-box',\n paddingLeft: 0,\n paddingRight: 0,\n border: 'none',\n ...extraStyle,\n }}\n value={label}\n style={{\n position: 'fixed',\n pointerEvents: 'auto',\n top: 0,\n left: 0,\n minWidth: barWidth,\n transformOrigin: 'left',\n transform: `rotate(${rotate}deg)`,\n visibility: isHiddenLabel ? 'hidden' : 'unset',\n marginTop: correctnessIndicator ? '24px' : '0',\n }}\n onChange={onChange}\n onBlur={onChangeProp}\n />\n )}\n </StyledContainer>\n );\n};\n\nMarkLabel.propTypes = {\n autoFocus: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.any,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType,\n inputRef: PropTypes.func,\n mark: PropTypes.object,\n barWidth: PropTypes.number,\n rotate: PropTypes.number,\n correctness: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n }),\n isHiddenLabel: PropTypes.bool,\n limitCharacters: PropTypes.bool,\n correctnessIndicator: PropTypes.node,\n};\n\nexport default MarkLabel;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"mark-label.js","names":["_react","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_styles","_reactInputAutosize","_propTypes","_plot","_styles2","_renderUi","_mathRendering","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","StyledContainer","styled","display","flexDirection","alignItems","StyledInput","_ref2","theme","fontFamily","typography","fontSize","border","correct","incorrect","backgroundColor","concat","palette","error","main","StyledMathInput","_ref3","pointerEvents","textAlign","color","primaryDark","paddingTop","disabled","isFractionFormat","label","trimmedLabel","trim","fracRegex","RegExp","test","getLabelMathFormat","fraction","mixedNr","improperFraction","split","includes","formattedLLabel","undefined","MarkLabel","exports","props","_useState","useState","_useState2","_slicedToArray2","input","setInput","_ref","useCallback","node","_props$mark","mark","externalInputRef","inputRef","barWidth","rotate","correctness","autoFocus","isHiddenLabel","limitCharacters","correctnessIndicator","_useState3","_useState4","setLabel","_useState5","_useState6","mathLabel","setMathLabel","_useState7","_useState8","isEditing","setIsEditing","rootRef","useRef","onChange","target","value","isMathRendering","onChangeProp","extraStyle","width","useEffect","el","current","innerHTML","renderMath","createElement","ref","className","classNames","editable","onClick","style","minWidth","position","transformOrigin","transform","visibility","marginTop","name","inputClassName","inputStyle","background","boxSizing","paddingLeft","paddingRight","top","left","onBlur","propTypes","PropTypes","bool","any","func","graphProps","types","GraphPropsType","object","number","shape","string","_default"],"sources":["../src/mark-label.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { styled } from '@mui/material/styles';\nimport AutosizeInput from 'react-input-autosize';\nimport PropTypes from 'prop-types';\n\nimport { types } from '@pie-lib/plot';\nimport { correct, disabled, incorrect } from './common/styles';\nimport { color } from '@pie-lib/render-ui';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nconst StyledContainer = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n});\n\n// eslint-disable-next-line no-unused-vars\nconst StyledInput = styled('input')(({ theme }) => ({\n float: 'right',\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n border: 'none',\n '&.correct': correct('color'),\n '&.incorrect': incorrect('color'),\n '&.disabled': {\n backgroundColor: 'transparent !important',\n },\n '&.error': { border: `2px solid ${theme.palette.error.main}` },\n}));\n\nconst StyledMathInput = styled('div')(({ theme }) => ({\n pointerEvents: 'auto',\n textAlign: 'center',\n fontSize: theme.typography.fontSize + 2,\n fontFamily: theme.typography.fontFamily,\n color: color.primaryDark(),\n paddingTop: theme.typography.fontSize / 2,\n '&.disabled': {\n ...disabled('color'),\n backgroundColor: 'transparent !important',\n },\n '&.error': {\n border: `2px solid ${theme.palette.error.main}`,\n },\n '&.correct': {\n ...correct('color'),\n },\n '&.incorrect': {\n ...incorrect('color'),\n },\n}));\n\nfunction isFractionFormat(label) {\n const trimmedLabel = label?.trim() || '';\n const fracRegex = new RegExp(/^[1-9]*[0-9]*\\s?[1-9][0-9]*\\/[1-9][0-9]*$/);\n return fracRegex.test(trimmedLabel);\n}\n\nfunction getLabelMathFormat(label) {\n const trimmedLabel = label?.trim() || '';\n let fraction;\n let mixedNr = '';\n let improperFraction = trimmedLabel.split(' ');\n if (improperFraction[1] && improperFraction[1].includes('/')) {\n fraction = improperFraction[1].split('/') || '';\n } else {\n fraction = trimmedLabel?.split('/') || '';\n }\n\n let formattedLLabel;\n if (isFractionFormat(label)) {\n if (improperFraction[0] && improperFraction[1]) {\n mixedNr = improperFraction[0];\n }\n formattedLLabel = `\\\\(${mixedNr}\\\\frac{${fraction[0]}}{${fraction[1]}}\\\\)`;\n return formattedLLabel;\n }\n return undefined;\n}\n\nexport const MarkLabel = (props) => {\n // eslint-disable-next-line no-unused-vars\n const [input, setInput] = useState(null);\n const _ref = useCallback((node) => setInput(node), null);\n\n const {\n mark = {},\n disabled,\n inputRef: externalInputRef,\n barWidth,\n rotate,\n correctness,\n autoFocus,\n error,\n isHiddenLabel,\n limitCharacters,\n correctnessIndicator,\n } = props;\n\n const [label, setLabel] = useState(mark.label);\n const [mathLabel, setMathLabel] = useState(getLabelMathFormat(mark.label));\n const [isEditing, setIsEditing] = useState(false);\n const rootRef = useRef(null);\n\n const onChange = (e) => {\n if (limitCharacters && e.target.value && e.target.value.length > 20) {\n return;\n }\n\n setLabel(e.target.value);\n };\n\n const isMathRendering = () => {\n return isEditing === false && mathLabel !== undefined;\n };\n\n const onChangeProp = (e) => {\n setMathLabel(getLabelMathFormat(mark.label));\n setIsEditing(false);\n props.onChange(e.target.value);\n };\n let extraStyle = {};\n\n if (rotate) {\n extraStyle = {\n width: 'unset',\n textAlign: 'left',\n };\n }\n\n // useState only sets the value once, to synch props to state need useEffect\n useEffect(() => {\n setLabel(mark.label);\n }, [mark.label]);\n\n useEffect(() => {\n const el = rootRef.current;\n\n if (el && mathLabel) {\n el.innerHTML = mathLabel;\n renderMath(el);\n }\n }, [label, mathLabel]);\n\n return (\n <StyledContainer>\n {correctnessIndicator}\n {isMathRendering() ? (\n <StyledMathInput\n ref={(r) => {\n rootRef.current = r;\n if (typeof externalInputRef === 'function') {\n externalInputRef(r);\n }\n }}\n className={classNames({\n disabled: disabled,\n error: error,\n correct: mark.editable && correctness?.label === 'correct',\n incorrect: mark.editable && correctness?.label === 'incorrect',\n })}\n onClick={() => setIsEditing(true)}\n style={{\n minWidth: barWidth,\n position: 'fixed',\n transformOrigin: 'left',\n transform: `rotate(${rotate}deg)`,\n visibility: isHiddenLabel ? 'hidden' : 'unset',\n marginTop: correctnessIndicator ? '24px' : '0',\n }}\n ></StyledMathInput>\n ) : (\n <AutosizeInput\n inputRef={(r) => {\n _ref(r);\n if (typeof externalInputRef === 'function') {\n externalInputRef(r);\n }\n }}\n name=\"mark-label-input\"\n autoFocus={isEditing || autoFocus}\n disabled={disabled}\n inputClassName={classNames(\n correctness && mark.editable ? correctness.label : null,\n disabled && 'disabled',\n error && 'error',\n )}\n inputStyle={{\n minWidth: barWidth,\n textAlign: 'center',\n background: 'transparent',\n boxSizing: 'border-box',\n paddingLeft: 0,\n paddingRight: 0,\n border: 'none',\n ...extraStyle,\n }}\n value={label}\n style={{\n position: 'fixed',\n pointerEvents: 'auto',\n top: 0,\n left: 0,\n minWidth: barWidth,\n transformOrigin: 'left',\n transform: `rotate(${rotate}deg)`,\n visibility: isHiddenLabel ? 'hidden' : 'unset',\n marginTop: correctnessIndicator ? '24px' : '0',\n }}\n onChange={onChange}\n onBlur={onChangeProp}\n />\n )}\n </StyledContainer>\n );\n};\n\nMarkLabel.propTypes = {\n autoFocus: PropTypes.bool,\n disabled: PropTypes.bool,\n error: PropTypes.any,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType,\n inputRef: PropTypes.func,\n mark: PropTypes.object,\n barWidth: PropTypes.number,\n rotate: PropTypes.number,\n correctness: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n }),\n isHiddenLabel: PropTypes.bool,\n limitCharacters: PropTypes.bool,\n correctnessIndicator: PropTypes.node,\n};\n\nexport default MarkLabel;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "
|
|
6
|
+
"version": "7.0.1",
|
|
7
7
|
"description": "charting",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -22,10 +22,10 @@
|
|
|
22
22
|
"@mapbox/point-geometry": "^1.1.0",
|
|
23
23
|
"@mui/icons-material": "^7.3.4",
|
|
24
24
|
"@mui/material": "^7.3.4",
|
|
25
|
-
"@pie-lib/math-rendering": "^
|
|
26
|
-
"@pie-lib/plot": "^
|
|
27
|
-
"@pie-lib/render-ui": "^
|
|
28
|
-
"@pie-lib/translator": "^
|
|
25
|
+
"@pie-lib/math-rendering": "^5.0.1",
|
|
26
|
+
"@pie-lib/plot": "^4.0.1",
|
|
27
|
+
"@pie-lib/render-ui": "^6.0.1",
|
|
28
|
+
"@pie-lib/translator": "^4.0.1",
|
|
29
29
|
"@visx/axis": "^3.0.0",
|
|
30
30
|
"@visx/event": "^3.0.0",
|
|
31
31
|
"@visx/grid": "^3.0.0",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"react": "^18.2.0"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
|
-
"@pie-lib/test-utils": "^
|
|
50
|
+
"@pie-lib/test-utils": "^2.0.1"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "1ba46aa3e68b7d108e609220db271d518ab20f11"
|
|
53
53
|
}
|
package/src/axes.jsx
CHANGED
|
@@ -13,6 +13,31 @@ import { TickCorrectnessIndicator } from './common/correctness-indicators';
|
|
|
13
13
|
import { bandKey, getRotateAngle, getTickValues } from './utils';
|
|
14
14
|
import MarkLabel from './mark-label';
|
|
15
15
|
|
|
16
|
+
// one document-level MutationObserver shared across all
|
|
17
|
+
// RawChartAxes instances so that no chart misses a MathJax render batch
|
|
18
|
+
const _mathCallbacks = new Set();
|
|
19
|
+
let _docObserver = null;
|
|
20
|
+
|
|
21
|
+
function registerMathCallback(cb) {
|
|
22
|
+
_mathCallbacks.add(cb);
|
|
23
|
+
|
|
24
|
+
if (!_docObserver && typeof document !== 'undefined') {
|
|
25
|
+
_docObserver = new MutationObserver(() => {
|
|
26
|
+
_mathCallbacks.forEach((fn) => fn());
|
|
27
|
+
});
|
|
28
|
+
_docObserver.observe(document.body, { childList: true, subtree: true });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function unregisterMathCallback(cb) {
|
|
33
|
+
_mathCallbacks.delete(cb);
|
|
34
|
+
|
|
35
|
+
if (_mathCallbacks.size === 0 && _docObserver) {
|
|
36
|
+
_docObserver.disconnect();
|
|
37
|
+
_docObserver = null;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
16
41
|
const StyledErrorText = styled('text')(({ theme }) => ({
|
|
17
42
|
fontSize: theme.typography.fontSize - 2,
|
|
18
43
|
fill: theme.palette.error.main,
|
|
@@ -403,36 +428,71 @@ export class RawChartAxes extends React.Component {
|
|
|
403
428
|
|
|
404
429
|
state = { height: 0, width: 0 };
|
|
405
430
|
|
|
406
|
-
|
|
407
|
-
if (this.hiddenLabelRef)
|
|
408
|
-
const boundingClientRect = this.hiddenLabelRef.getBoundingClientRect();
|
|
409
|
-
const hiddenEl = this.hiddenLabelRef;
|
|
431
|
+
measureHiddenLabel = () => {
|
|
432
|
+
if (!this.hiddenLabelRef) return;
|
|
410
433
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
434
|
+
const mjx = this.hiddenLabelRef.querySelector('mjx-container');
|
|
435
|
+
const input = this.hiddenLabelRef.querySelector('input');
|
|
436
|
+
const target = mjx || input || this.hiddenLabelRef;
|
|
437
|
+
const rect = target.getBoundingClientRect();
|
|
438
|
+
const height = Math.floor(rect.height);
|
|
439
|
+
const width = Math.floor(rect.width);
|
|
416
440
|
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
441
|
+
if (height !== this.state.height || width !== this.state.width) {
|
|
442
|
+
this.setState({ height, width });
|
|
443
|
+
}
|
|
444
|
+
};
|
|
420
445
|
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
446
|
+
// called by the document-level observer on every DOM mutation.
|
|
447
|
+
// only re-measures once mjx-container is present in our hidden label.
|
|
448
|
+
_onDocMutation = () => {
|
|
449
|
+
if (!this.hiddenLabelRef) return;
|
|
450
|
+
if (this.hiddenLabelRef.querySelector('mjx-container')) {
|
|
451
|
+
this.measureHiddenLabel();
|
|
426
452
|
}
|
|
427
|
-
}
|
|
453
|
+
};
|
|
454
|
+
|
|
455
|
+
observeHiddenLabel = (el) => {
|
|
456
|
+
if (!el) return;
|
|
428
457
|
|
|
429
|
-
|
|
458
|
+
const containsLatex = el.querySelector('[data-latex], [data-raw]');
|
|
459
|
+
|
|
460
|
+
if (containsLatex) {
|
|
461
|
+
renderMath(el);
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
if (el.querySelector('mjx-container') || !containsLatex) {
|
|
465
|
+
this.measureHiddenLabel();
|
|
466
|
+
}
|
|
467
|
+
// always register: if mjx-container isn't there yet, the doc observer will
|
|
468
|
+
// call _onDocMutation when MathJax finishes rendering any element on the page.
|
|
469
|
+
registerMathCallback(this._onDocMutation);
|
|
470
|
+
};
|
|
471
|
+
|
|
472
|
+
setHiddenLabelRef = (ref) => {
|
|
473
|
+
if (ref && ref !== this.hiddenLabelRef) {
|
|
474
|
+
this.hiddenLabelRef = ref;
|
|
475
|
+
this.observeHiddenLabel(ref);
|
|
476
|
+
}
|
|
477
|
+
};
|
|
478
|
+
|
|
479
|
+
componentDidMount() {
|
|
430
480
|
if (this.hiddenLabelRef) {
|
|
431
|
-
|
|
481
|
+
this.observeHiddenLabel(this.hiddenLabelRef);
|
|
482
|
+
}
|
|
483
|
+
}
|
|
432
484
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
485
|
+
componentWillUnmount() {
|
|
486
|
+
unregisterMathCallback(this._onDocMutation);
|
|
487
|
+
if (this._updateTimer) {
|
|
488
|
+
clearTimeout(this._updateTimer);
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
componentDidUpdate(prevProps) {
|
|
493
|
+
if (prevProps.categories !== this.props.categories) {
|
|
494
|
+
if (this._updateTimer) clearTimeout(this._updateTimer);
|
|
495
|
+
this._updateTimer = setTimeout(() => this.measureHiddenLabel(), 50);
|
|
436
496
|
}
|
|
437
497
|
}
|
|
438
498
|
|
|
@@ -479,9 +539,7 @@ export class RawChartAxes extends React.Component {
|
|
|
479
539
|
|
|
480
540
|
const getTickComponent = (props) => {
|
|
481
541
|
const properties = {
|
|
482
|
-
hiddenLabelRef:
|
|
483
|
-
this.hiddenLabelRef = ref;
|
|
484
|
-
},
|
|
542
|
+
hiddenLabelRef: this.setHiddenLabelRef,
|
|
485
543
|
categories,
|
|
486
544
|
xBand,
|
|
487
545
|
bandWidth,
|
package/src/mark-label.jsx
CHANGED
|
@@ -101,7 +101,7 @@ export const MarkLabel = (props) => {
|
|
|
101
101
|
const [label, setLabel] = useState(mark.label);
|
|
102
102
|
const [mathLabel, setMathLabel] = useState(getLabelMathFormat(mark.label));
|
|
103
103
|
const [isEditing, setIsEditing] = useState(false);
|
|
104
|
-
|
|
104
|
+
const rootRef = useRef(null);
|
|
105
105
|
|
|
106
106
|
const onChange = (e) => {
|
|
107
107
|
if (limitCharacters && e.target.value && e.target.value.length > 20) {
|
|
@@ -135,8 +135,13 @@ export const MarkLabel = (props) => {
|
|
|
135
135
|
}, [mark.label]);
|
|
136
136
|
|
|
137
137
|
useEffect(() => {
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
const el = rootRef.current;
|
|
139
|
+
|
|
140
|
+
if (el && mathLabel) {
|
|
141
|
+
el.innerHTML = mathLabel;
|
|
142
|
+
renderMath(el);
|
|
143
|
+
}
|
|
144
|
+
}, [label, mathLabel]);
|
|
140
145
|
|
|
141
146
|
return (
|
|
142
147
|
<StyledContainer>
|
|
@@ -144,12 +149,11 @@ export const MarkLabel = (props) => {
|
|
|
144
149
|
{isMathRendering() ? (
|
|
145
150
|
<StyledMathInput
|
|
146
151
|
ref={(r) => {
|
|
147
|
-
|
|
152
|
+
rootRef.current = r;
|
|
148
153
|
if (typeof externalInputRef === 'function') {
|
|
149
154
|
externalInputRef(r);
|
|
150
155
|
}
|
|
151
156
|
}}
|
|
152
|
-
dangerouslySetInnerHTML={{ __html: getLabelMathFormat(label) }}
|
|
153
157
|
className={classNames({
|
|
154
158
|
disabled: disabled,
|
|
155
159
|
error: error,
|