@nanahoshi/mona-ui 0.18.4 → 0.18.5

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.
@@ -52777,7 +52777,6 @@ class ChartComponent {
52777
52777
  #gestureController;
52778
52778
  #hasCommittedVisualScene;
52779
52779
  #hasEmittedBrushStart;
52780
- #hasPendingSizeReflow;
52781
52780
  #hasWarnedBrushWithoutSelection;
52782
52781
  #hasWarnedMultiBrush;
52783
52782
  #hasWarnedMultiSelection;
@@ -52909,7 +52908,6 @@ class ChartComponent {
52909
52908
  this.#gestureController = null;
52910
52909
  this.#hasCommittedVisualScene = false;
52911
52910
  this.#hasEmittedBrushStart = false;
52912
- this.#hasPendingSizeReflow = false;
52913
52911
  this.#hasWarnedBrushWithoutSelection = false;
52914
52912
  this.#hasWarnedMultiBrush = false;
52915
52913
  this.#hasWarnedMultiSelection = false;
@@ -54483,10 +54481,22 @@ class ChartComponent {
54483
54481
  if (measurement) {
54484
54482
  this.#applyMeasuredSize(measurement.width, measurement.height);
54485
54483
  }
54484
+ else if (
54485
+ // SVG sector paths embed their measured center and radii. Painting the
54486
+ // fallback scene would leave those coordinates clipped if lazy layout
54487
+ // settles after the first render.
54488
+ this.renderer() === "svg" &&
54489
+ typeof ResizeObserver !== "undefined" &&
54490
+ this.#registeredSeries().some(series => series.type === "donut" || series.type === "pie")) {
54491
+ this.#initialMeasurementPending = true;
54492
+ this.#scheduleInitialMeasurement();
54493
+ return;
54494
+ }
54486
54495
  }
54487
- const sizeChanged = !this.scene() ||
54488
- Math.abs(this.scene().width - this.#currentWidth) >= 0.5 ||
54489
- Math.abs(this.scene().height - this.#currentHeight) >= 0.5;
54496
+ const previousScene = this.scene();
54497
+ const sizeChanged = !previousScene ||
54498
+ Math.abs(previousScene.width - this.#currentWidth) >= 0.5 ||
54499
+ Math.abs(previousScene.height - this.#currentHeight) >= 0.5;
54490
54500
  const isStructural = hasInvalidationReason(reason, 1 /* ChartInvalidationReason.Data */) ||
54491
54501
  hasInvalidationReason(reason, 2 /* ChartInvalidationReason.Layout */) ||
54492
54502
  hasInvalidationReason(reason, 32 /* ChartInvalidationReason.Visibility */);
@@ -54653,12 +54663,10 @@ class ChartComponent {
54653
54663
  if (!this.#canvasReady) {
54654
54664
  return;
54655
54665
  }
54656
- const isPassiveSizeReflow = trigger === "layout" && hasInvalidationReason(reason, 16 /* ChartInvalidationReason.Size */);
54657
- if (isPassiveSizeReflow && this.#animationController.isRunning()) {
54658
- this.#hasPendingSizeReflow = true;
54659
- return;
54660
- }
54661
- if (isAnimationDisabled) {
54666
+ // The render surface has already adopted the new viewport. Reusing or morphing
54667
+ // from geometry computed for the previous viewport would paint off-center marks.
54668
+ const mustCommitSizeImmediately = sizeChanged && hasInvalidationReason(reason, 16 /* ChartInvalidationReason.Size */) && previousScene !== null;
54669
+ if (isAnimationDisabled || mustCommitSizeImmediately) {
54662
54670
  this.#animationController.cancel("keep-current");
54663
54671
  this.#renderScene = newScene;
54664
54672
  this.#hasCommittedVisualScene = true;
@@ -54666,12 +54674,9 @@ class ChartComponent {
54666
54674
  this.#isStructuralAnimation.set(false);
54667
54675
  this.#animationMode.set(null);
54668
54676
  this.#isExitingData.set(false);
54669
- if (this.#pendingLabelMeasurementReason !== 0 || this.#hasPendingSizeReflow) {
54670
- const reasonToInvalidate = this.#pendingLabelMeasurementReason !== 0
54671
- ? this.#pendingLabelMeasurementReason
54672
- : 2 /* ChartInvalidationReason.Layout */;
54677
+ if (this.#pendingLabelMeasurementReason !== 0) {
54678
+ const reasonToInvalidate = this.#pendingLabelMeasurementReason;
54673
54679
  this.#pendingLabelMeasurementReason = 0;
54674
- this.#hasPendingSizeReflow = false;
54675
54680
  this.invalidate(reasonToInvalidate);
54676
54681
  }
54677
54682
  this.#paint();
@@ -54687,12 +54692,9 @@ class ChartComponent {
54687
54692
  this.#isStructuralAnimation.set(false);
54688
54693
  this.#animationMode.set(null);
54689
54694
  this.#isExitingData.set(false);
54690
- if (this.#pendingLabelMeasurementReason !== 0 || this.#hasPendingSizeReflow) {
54691
- const reasonToInvalidate = this.#pendingLabelMeasurementReason !== 0
54692
- ? this.#pendingLabelMeasurementReason
54693
- : 2 /* ChartInvalidationReason.Layout */;
54695
+ if (this.#pendingLabelMeasurementReason !== 0) {
54696
+ const reasonToInvalidate = this.#pendingLabelMeasurementReason;
54694
54697
  this.#pendingLabelMeasurementReason = 0;
54695
- this.#hasPendingSizeReflow = false;
54696
54698
  this.invalidate(reasonToInvalidate);
54697
54699
  }
54698
54700
  this.#paint();
@@ -54717,12 +54719,9 @@ class ChartComponent {
54717
54719
  this.#isStructuralAnimation.set(false);
54718
54720
  this.#animationMode.set(null);
54719
54721
  this.#isExitingData.set(false);
54720
- if (this.#pendingLabelMeasurementReason !== 0 || this.#hasPendingSizeReflow) {
54721
- const reasonToInvalidate = this.#pendingLabelMeasurementReason !== 0
54722
- ? this.#pendingLabelMeasurementReason
54723
- : 2 /* ChartInvalidationReason.Layout */;
54722
+ if (this.#pendingLabelMeasurementReason !== 0) {
54723
+ const reasonToInvalidate = this.#pendingLabelMeasurementReason;
54724
54724
  this.#pendingLabelMeasurementReason = 0;
54725
- this.#hasPendingSizeReflow = false;
54726
54725
  this.invalidate(reasonToInvalidate);
54727
54726
  }
54728
54727
  this.#paint();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nanahoshi/mona-ui",
3
- "version": "0.18.4",
3
+ "version": "0.18.5",
4
4
  "description": "A very light Angular UI framework",
5
5
  "author": "Nanahoshi",
6
6
  "repository": {