@pie-lib/charting 6.2.0-next.18 → 6.2.0-next.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,12 @@
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
+ # [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)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **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))
11
+
6
12
  # [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)
7
13
 
8
14
  **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
- var boundingClientRect = this.hiddenLabelRef.getBoundingClientRect();
425
- var hiddenEl = this.hiddenLabelRef;
426
-
427
- // same logic used in dropdown.jsx for hidden labels width calculation
428
- if (hiddenEl) {
429
- var containsLatex = hiddenEl.querySelector('[data-latex], [data-raw]');
430
- var hasMathJax = hiddenEl.querySelector('mjx-container');
431
- var mathHandled = hiddenEl.querySelector('[data-math-handled="true"]');
432
- if (containsLatex && (!mathHandled || !hasMathJax)) {
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
- if (this.hiddenLabelRef) {
446
- var width = Math.floor(this.hiddenLabelRef.getBoundingClientRect().width);
447
- if (width !== this.state.width) {
448
- this.setState({
449
- width: width
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 _this4 = this;
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: function hiddenLabelRef(ref) {
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/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "6.2.0-next.18",
6
+ "version": "6.2.0-next.19",
7
7
  "description": "charting",
8
8
  "keywords": [
9
9
  "react",
@@ -49,5 +49,5 @@
49
49
  "devDependencies": {
50
50
  "@pie-lib/test-utils": "^1.2.0-next.3"
51
51
  },
52
- "gitHead": "48c079ea6b6b93ca69bd800906e1d8f258c05335"
52
+ "gitHead": "2e7c21df28271371a399166536978fafaf90ff49"
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
- componentDidMount() {
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
- // same logic used in dropdown.jsx for hidden labels width calculation
412
- if (hiddenEl) {
413
- const containsLatex = hiddenEl.querySelector('[data-latex], [data-raw]');
414
- const hasMathJax = hiddenEl.querySelector('mjx-container');
415
- const mathHandled = hiddenEl.querySelector('[data-math-handled="true"]');
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
- if (containsLatex && (!mathHandled || !hasMathJax)) {
418
- renderMath(this.hiddenLabelRef);
419
- }
441
+ if (height !== this.state.height || width !== this.state.width) {
442
+ this.setState({ height, width });
443
+ }
444
+ };
420
445
 
421
- this.setState({
422
- height: Math.floor(boundingClientRect.height),
423
- width: Math.floor(boundingClientRect.width),
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
- componentDidUpdate() {
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
- const width = Math.floor(this.hiddenLabelRef.getBoundingClientRect().width);
481
+ this.observeHiddenLabel(this.hiddenLabelRef);
482
+ }
483
+ }
432
484
 
433
- if (width !== this.state.width) {
434
- this.setState({ width });
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: (ref) => {
483
- this.hiddenLabelRef = ref;
484
- },
542
+ hiddenLabelRef: this.setHiddenLabelRef,
485
543
  categories,
486
544
  xBand,
487
545
  bandWidth,