@nanahoshi/mona-ui 0.15.0 → 0.15.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.
@@ -1,6 +1,6 @@
1
1
  import { NgTemplateOutlet } from '@angular/common';
2
2
  import * as i0 from '@angular/core';
3
- import { inject, TemplateRef, Directive, InjectionToken, ElementRef, input, isDevMode, Injectable, signal, computed, viewChild, contentChild, DestroyRef, output, effect, untracked, afterNextRender, Component, model } from '@angular/core';
3
+ import { inject, TemplateRef, Directive, InjectionToken, ElementRef, input, isDevMode, Injectable, signal, computed, DestroyRef, viewChild, contentChild, output, effect, untracked, afterNextRender, Component, model } from '@angular/core';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import { interpolate, parse, formatRgb, wcagContrast } from 'culori';
6
6
  import { scaleLinear, scaleLog, scaleSymlog, scalePow, scaleSqrt, scaleTime, scaleUtc, scaleBand } from 'd3-scale';
@@ -69,7 +69,7 @@ class BrowserAnimationClock {
69
69
  }
70
70
  requestFrame(callback) {
71
71
  if (typeof requestAnimationFrame !== "undefined") {
72
- return requestAnimationFrame(callback);
72
+ return requestAnimationFrame(() => callback(this.now()));
73
73
  }
74
74
  return setTimeout(() => callback(this.now()), 16);
75
75
  }
@@ -146,8 +146,8 @@ function getEasingFunction(easing) {
146
146
  }
147
147
 
148
148
  class CartesianPointSpatialIndex {
149
- #cells = new Map();
150
149
  #cellSize;
150
+ #cells = new Map();
151
151
  constructor(cellSize = 32) {
152
152
  this.#cellSize = Math.max(8, cellSize);
153
153
  }
@@ -662,13 +662,13 @@ class GaugeHitIndex {
662
662
  }
663
663
 
664
664
  class TreemapHitIndex {
665
- #plotRect;
666
- #cols;
667
- #rows;
668
- #cellWidth;
665
+ #allTargets;
669
666
  #cellHeight;
667
+ #cellWidth;
668
+ #cols;
670
669
  #grid;
671
- #allTargets;
670
+ #plotRect;
671
+ #rows;
672
672
  constructor(plotRect, hitTargets) {
673
673
  this.#plotRect = plotRect;
674
674
  this.#allTargets = hitTargets;
@@ -9779,11 +9779,11 @@ function composeMarkKey(seriesPrefix, part, occurrenceRank) {
9779
9779
  return JSON.stringify([seriesPrefix, part.type, part.value, occurrenceRank]);
9780
9780
  }
9781
9781
  class ChartMarkKeyResolver {
9782
+ #keyField;
9782
9783
  #occurrenceTracker = new Map();
9783
- #warnedDuplicateKeys = new Set();
9784
9784
  #seriesId;
9785
9785
  #seriesPrefix;
9786
- #keyField;
9786
+ #warnedDuplicateKeys = new Set();
9787
9787
  constructor(seriesId, keyField, seriesKey) {
9788
9788
  this.#seriesId = seriesId;
9789
9789
  const normKey = normalizeSeriesKey(seriesKey);
@@ -13495,8 +13495,8 @@ const noResult = { firstValidIndex: -1, lastValidIndex: -1, maxIndex: -1, minInd
13495
13495
  * blocks directly and scan summaries for whole interior blocks.
13496
13496
  */
13497
13497
  class CartesianMinMaxBlockIndex {
13498
- #blocks = [];
13499
13498
  #blockSize;
13499
+ #blocks = [];
13500
13500
  #y;
13501
13501
  constructor(y, blockSize = 256) {
13502
13502
  this.#y = y;
@@ -27623,12 +27623,12 @@ function computeTightBounds(indices, u, v) {
27623
27623
  class ChartSeriesMarkIdentityAuthority {
27624
27624
  #extractNaturalKey;
27625
27625
  #keyField;
27626
- #occurrenceRanks;
27627
27626
  #seriesId;
27628
27627
  #seriesPrefix;
27629
- #sourceData;
27630
- #reverseMap = null;
27628
+ #occurrenceRanks;
27631
27629
  #released = false;
27630
+ #reverseMap = null;
27631
+ #sourceData;
27632
27632
  constructor(seriesId, sourceData, options) {
27633
27633
  this.#seriesId = seriesId;
27634
27634
  this.#sourceData = sourceData;
@@ -39199,13 +39199,13 @@ class CanvasChartRenderBackend {
39199
39199
  #context;
39200
39200
  #viewport;
39201
39201
  constructor(canvas) {
39202
- this.kind = "canvas";
39203
39202
  this.#context = null;
39204
39203
  this.#viewport = {
39205
39204
  devicePixelRatio: 1,
39206
39205
  height: 0,
39207
39206
  width: 0
39208
39207
  };
39208
+ this.kind = "canvas";
39209
39209
  this.#canvas = canvas;
39210
39210
  this.#context = canvas.getContext("2d");
39211
39211
  }
@@ -43946,7 +43946,6 @@ class SvgChartRenderBackend {
43946
43946
  #toTreemapRenderer;
43947
43947
  #toWaterfallRenderer;
43948
43948
  constructor(root, instanceId) {
43949
- this.kind = "svg";
43950
43949
  this.#fromCartesianRenderer = null;
43951
43950
  this.#fromFunnelRenderer = null;
43952
43951
  this.#fromHeatmapRenderer = null;
@@ -43962,6 +43961,7 @@ class SvgChartRenderBackend {
43962
43961
  this.#toPolarRenderer = null;
43963
43962
  this.#toTreemapRenderer = null;
43964
43963
  this.#toWaterfallRenderer = null;
43964
+ this.kind = "svg";
43965
43965
  this.#root = root;
43966
43966
  this.#namespace = new SvgIdNamespace(instanceId);
43967
43967
  this.#layers = new SvgRootLayers(root);
@@ -46836,8 +46836,8 @@ async function readResponseBytesBounded(response, maxBytes) {
46836
46836
  * media validation, and aggregate byte budget tracking (R5-02 / R5-03 / R5-12 / R6-01 / R6-03 / R6-06).
46837
46837
  */
46838
46838
  class ChartExportResourceTransaction {
46839
- #totalBytes = 0;
46840
46839
  #cache = new Map();
46840
+ #totalBytes = 0;
46841
46841
  constructor(signal, decodeEnvironment) {
46842
46842
  this.signal = signal;
46843
46843
  this.decodeEnvironment = decodeEnvironment;
@@ -52684,6 +52684,8 @@ class ChartComponent {
52684
52684
  #hasWarnedMultiBrush;
52685
52685
  #hasWarnedMultiSelection;
52686
52686
  #hasWarnedSelectionNonCartesian;
52687
+ #initialMeasurementFrameId;
52688
+ #initialMeasurementPending;
52687
52689
  #interactionOwner;
52688
52690
  #interactionRevision;
52689
52691
  #interactionState;
@@ -52705,10 +52707,142 @@ class ChartComponent {
52705
52707
  #renderBackend;
52706
52708
  #renderScene;
52707
52709
  #resizeObserver;
52710
+ #resizeObserverTarget;
52708
52711
  #suppressNextCanvasClick;
52709
52712
  #synchronizationController;
52710
52713
  #themeObserver;
52711
52714
  constructor() {
52715
+ this.#activeBrushBounds = signal(null, /* @ts-ignore */
52716
+ ...(ngDevMode ? [{ debugName: "#activeBrushBounds" }] : /* istanbul ignore next */ []));
52717
+ this.#activeExportControllers = new Set();
52718
+ this.#angularAxis = signal(null, /* @ts-ignore */
52719
+ ...(ngDevMode ? [{ debugName: "#angularAxis" }] : /* istanbul ignore next */ []));
52720
+ this.#animationMode = signal(null, /* @ts-ignore */
52721
+ ...(ngDevMode ? [{ debugName: "#animationMode" }] : /* istanbul ignore next */ []));
52722
+ this.#annotationById = computed(() => {
52723
+ const map = new Map();
52724
+ for (const r of this.#annotations()) {
52725
+ map.set(r.id, r);
52726
+ }
52727
+ return map;
52728
+ }, /* @ts-ignore */
52729
+ ...(ngDevMode ? [{ debugName: "#annotationById" }] : /* istanbul ignore next */ []));
52730
+ this.#annotations = signal([], /* @ts-ignore */
52731
+ ...(ngDevMode ? [{ debugName: "#annotations" }] : /* istanbul ignore next */ []));
52732
+ this.#brush = signal(null, /* @ts-ignore */
52733
+ ...(ngDevMode ? [{ debugName: "#brush" }] : /* istanbul ignore next */ []));
52734
+ this.#brushGestureController = new ChartBrushGestureController();
52735
+ this.#crosshair = signal(null, /* @ts-ignore */
52736
+ ...(ngDevMode ? [{ debugName: "#crosshair" }] : /* istanbul ignore next */ []));
52737
+ this.#dataLabelMeasurementRevision = signal(0, /* @ts-ignore */
52738
+ ...(ngDevMode ? [{ debugName: "#dataLabelMeasurementRevision" }] : /* istanbul ignore next */ []));
52739
+ this.#dataLabelMeasurements = new Map();
52740
+ this.#destroyRef = inject(DestroyRef);
52741
+ this.#elementRef = inject(ElementRef);
52742
+ this.#hasInitializedDefaultSelection = signal(false, /* @ts-ignore */
52743
+ ...(ngDevMode ? [{ debugName: "#hasInitializedDefaultSelection" }] : /* istanbul ignore next */ []));
52744
+ this.#hasInitializedDefaultViewport = signal(false, /* @ts-ignore */
52745
+ ...(ngDevMode ? [{ debugName: "#hasInitializedDefaultViewport" }] : /* istanbul ignore next */ []));
52746
+ this.#internalSelectedMarkIds = signal([], /* @ts-ignore */
52747
+ ...(ngDevMode ? [{ debugName: "#internalSelectedMarkIds" }] : /* istanbul ignore next */ []));
52748
+ this.#isAnimating = signal(false, /* @ts-ignore */
52749
+ ...(ngDevMode ? [{ debugName: "#isAnimating" }] : /* istanbul ignore next */ []));
52750
+ this.#isExitingData = signal(false, /* @ts-ignore */
52751
+ ...(ngDevMode ? [{ debugName: "#isExitingData" }] : /* istanbul ignore next */ []));
52752
+ this.#isStructuralAnimation = signal(false, /* @ts-ignore */
52753
+ ...(ngDevMode ? [{ debugName: "#isStructuralAnimation" }] : /* istanbul ignore next */ []));
52754
+ this.#labelMeasurements = new Map();
52755
+ this.#legend = signal(null, /* @ts-ignore */
52756
+ ...(ngDevMode ? [{ debugName: "#legend" }] : /* istanbul ignore next */ []));
52757
+ this.#observedDataLabelElements = new Map();
52758
+ this.#observedLabelElements = new Map();
52759
+ this.#observedOverlayLabelElements = new Map();
52760
+ this.#overlayLabelMeasurementRevision = signal(0, /* @ts-ignore */
52761
+ ...(ngDevMode ? [{ debugName: "#overlayLabelMeasurementRevision" }] : /* istanbul ignore next */ []));
52762
+ this.#overlayLabelMeasurements = new Map();
52763
+ this.#radialAxis = signal(null, /* @ts-ignore */
52764
+ ...(ngDevMode ? [{ debugName: "#radialAxis" }] : /* istanbul ignore next */ []));
52765
+ this.#referenceBandById = computed(() => {
52766
+ const map = new Map();
52767
+ for (const r of this.#referenceBands()) {
52768
+ map.set(r.id, r);
52769
+ }
52770
+ return map;
52771
+ }, /* @ts-ignore */
52772
+ ...(ngDevMode ? [{ debugName: "#referenceBandById" }] : /* istanbul ignore next */ []));
52773
+ this.#referenceBands = signal([], /* @ts-ignore */
52774
+ ...(ngDevMode ? [{ debugName: "#referenceBands" }] : /* istanbul ignore next */ []));
52775
+ this.#referenceLineById = computed(() => {
52776
+ const map = new Map();
52777
+ for (const r of this.#referenceLines()) {
52778
+ map.set(r.id, r);
52779
+ }
52780
+ return map;
52781
+ }, /* @ts-ignore */
52782
+ ...(ngDevMode ? [{ debugName: "#referenceLineById" }] : /* istanbul ignore next */ []));
52783
+ this.#referenceLines = signal([], /* @ts-ignore */
52784
+ ...(ngDevMode ? [{ debugName: "#referenceLines" }] : /* istanbul ignore next */ []));
52785
+ this.#registeredSeries = signal([], /* @ts-ignore */
52786
+ ...(ngDevMode ? [{ debugName: "#registeredSeries" }] : /* istanbul ignore next */ []));
52787
+ this.#selection = signal(null, /* @ts-ignore */
52788
+ ...(ngDevMode ? [{ debugName: "#selection" }] : /* istanbul ignore next */ []));
52789
+ this.#synchronizationCoordinator = inject(ChartSynchronizationCoordinator);
52790
+ this.#tooltip = signal(null, /* @ts-ignore */
52791
+ ...(ngDevMode ? [{ debugName: "#tooltip" }] : /* istanbul ignore next */ []));
52792
+ this.#uncontrolledViewportState = signal({ x: new Map(), y: new Map() }, /* @ts-ignore */
52793
+ ...(ngDevMode ? [{ debugName: "#uncontrolledViewportState" }] : /* istanbul ignore next */ []));
52794
+ this.#warnedDiagnosticSignatures = new Set();
52795
+ this.#xAxes = signal([], /* @ts-ignore */
52796
+ ...(ngDevMode ? [{ debugName: "#xAxes" }] : /* istanbul ignore next */ []));
52797
+ this.#yAxes = signal([], /* @ts-ignore */
52798
+ ...(ngDevMode ? [{ debugName: "#yAxes" }] : /* istanbul ignore next */ []));
52799
+ this.#activeKeyboardBucketIndex = -1;
52800
+ this.#activeKeyboardHitKey = null;
52801
+ this.#activeKeyboardNamespace = null;
52802
+ this.#activeKeyboardSeriesId = null;
52803
+ this.#brushMarkIndex = null;
52804
+ this.#brushMarkIndexScene = null;
52805
+ this.#canvasContext = null;
52806
+ this.#canvasReady = false;
52807
+ this.#cartesianLayoutRuntime = null;
52808
+ this.#currentHeight = 300;
52809
+ this.#currentWidth = 500;
52810
+ this.#dataLabelResizeObserver = null;
52811
+ this.#gestureController = null;
52812
+ this.#hasCommittedVisualScene = false;
52813
+ this.#hasEmittedBrushStart = false;
52814
+ this.#hasPendingSizeReflow = false;
52815
+ this.#hasWarnedBrushWithoutSelection = false;
52816
+ this.#hasWarnedMultiBrush = false;
52817
+ this.#hasWarnedMultiSelection = false;
52818
+ this.#hasWarnedSelectionNonCartesian = false;
52819
+ this.#initialMeasurementFrameId = null;
52820
+ this.#initialMeasurementPending = true;
52821
+ this.#interactionOwner = null;
52822
+ this.#interactionRevision = 0;
52823
+ this.#interactionState = null;
52824
+ this.#isDestroyed = false;
52825
+ this.#labelResizeObserver = null;
52826
+ this.#lastControlledSelection = undefined;
52827
+ this.#lastInteractionSource = null;
52828
+ this.#lastNormalizedControlledViewport = null;
52829
+ this.#lastPointerResolution = null;
52830
+ this.#lastSelectionMode = undefined;
52831
+ this.#mediaQueryList = null;
52832
+ this.#mediaQueryListener = null;
52833
+ this.#overlayLabelResizeObserver = null;
52834
+ this.#pendingBrushFrame = null;
52835
+ this.#pendingBrushRafId = null;
52836
+ this.#pendingLabelMeasurementReason = 0;
52837
+ this.#pendingPointerEvent = null;
52838
+ this.#pointerFrameId = null;
52839
+ this.#renderBackend = null;
52840
+ this.#renderScene = null;
52841
+ this.#resizeObserver = null;
52842
+ this.#resizeObserverTarget = null;
52843
+ this.#suppressNextCanvasClick = false;
52844
+ this.#synchronizationController = null;
52845
+ this.#themeObserver = null;
52712
52846
  this.activeAccessibilityText = signal("", /* @ts-ignore */
52713
52847
  ...(ngDevMode ? [{ debugName: "activeAccessibilityText" }] : /* istanbul ignore next */ []));
52714
52848
  this.animationDurationCss = computed(() => `${this.normalizedAnimationOptions().duration}ms`, /* @ts-ignore */
@@ -53069,90 +53203,6 @@ class ChartComponent {
53069
53203
  return list.find(s => s.type === "waterfall") ?? null;
53070
53204
  }, /* @ts-ignore */
53071
53205
  ...(ngDevMode ? [{ debugName: "waterfallSeriesRegistration" }] : /* istanbul ignore next */ []));
53072
- this.#activeBrushBounds = signal(null, /* @ts-ignore */
53073
- ...(ngDevMode ? [{ debugName: "#activeBrushBounds" }] : /* istanbul ignore next */ []));
53074
- this.#activeExportControllers = new Set();
53075
- this.#angularAxis = signal(null, /* @ts-ignore */
53076
- ...(ngDevMode ? [{ debugName: "#angularAxis" }] : /* istanbul ignore next */ []));
53077
- this.#animationMode = signal(null, /* @ts-ignore */
53078
- ...(ngDevMode ? [{ debugName: "#animationMode" }] : /* istanbul ignore next */ []));
53079
- this.#annotationById = computed(() => {
53080
- const map = new Map();
53081
- for (const r of this.#annotations()) {
53082
- map.set(r.id, r);
53083
- }
53084
- return map;
53085
- }, /* @ts-ignore */
53086
- ...(ngDevMode ? [{ debugName: "#annotationById" }] : /* istanbul ignore next */ []));
53087
- this.#annotations = signal([], /* @ts-ignore */
53088
- ...(ngDevMode ? [{ debugName: "#annotations" }] : /* istanbul ignore next */ []));
53089
- this.#brush = signal(null, /* @ts-ignore */
53090
- ...(ngDevMode ? [{ debugName: "#brush" }] : /* istanbul ignore next */ []));
53091
- this.#brushGestureController = new ChartBrushGestureController();
53092
- this.#crosshair = signal(null, /* @ts-ignore */
53093
- ...(ngDevMode ? [{ debugName: "#crosshair" }] : /* istanbul ignore next */ []));
53094
- this.#dataLabelMeasurementRevision = signal(0, /* @ts-ignore */
53095
- ...(ngDevMode ? [{ debugName: "#dataLabelMeasurementRevision" }] : /* istanbul ignore next */ []));
53096
- this.#dataLabelMeasurements = new Map();
53097
- this.#destroyRef = inject(DestroyRef);
53098
- this.#elementRef = inject(ElementRef);
53099
- this.#hasInitializedDefaultSelection = signal(false, /* @ts-ignore */
53100
- ...(ngDevMode ? [{ debugName: "#hasInitializedDefaultSelection" }] : /* istanbul ignore next */ []));
53101
- this.#hasInitializedDefaultViewport = signal(false, /* @ts-ignore */
53102
- ...(ngDevMode ? [{ debugName: "#hasInitializedDefaultViewport" }] : /* istanbul ignore next */ []));
53103
- this.#internalSelectedMarkIds = signal([], /* @ts-ignore */
53104
- ...(ngDevMode ? [{ debugName: "#internalSelectedMarkIds" }] : /* istanbul ignore next */ []));
53105
- this.#isAnimating = signal(false, /* @ts-ignore */
53106
- ...(ngDevMode ? [{ debugName: "#isAnimating" }] : /* istanbul ignore next */ []));
53107
- this.#isExitingData = signal(false, /* @ts-ignore */
53108
- ...(ngDevMode ? [{ debugName: "#isExitingData" }] : /* istanbul ignore next */ []));
53109
- this.#isStructuralAnimation = signal(false, /* @ts-ignore */
53110
- ...(ngDevMode ? [{ debugName: "#isStructuralAnimation" }] : /* istanbul ignore next */ []));
53111
- this.#labelMeasurements = new Map();
53112
- this.#legend = signal(null, /* @ts-ignore */
53113
- ...(ngDevMode ? [{ debugName: "#legend" }] : /* istanbul ignore next */ []));
53114
- this.#observedDataLabelElements = new Map();
53115
- this.#observedLabelElements = new Map();
53116
- this.#observedOverlayLabelElements = new Map();
53117
- this.#overlayLabelMeasurementRevision = signal(0, /* @ts-ignore */
53118
- ...(ngDevMode ? [{ debugName: "#overlayLabelMeasurementRevision" }] : /* istanbul ignore next */ []));
53119
- this.#overlayLabelMeasurements = new Map();
53120
- this.#radialAxis = signal(null, /* @ts-ignore */
53121
- ...(ngDevMode ? [{ debugName: "#radialAxis" }] : /* istanbul ignore next */ []));
53122
- this.#referenceBandById = computed(() => {
53123
- const map = new Map();
53124
- for (const r of this.#referenceBands()) {
53125
- map.set(r.id, r);
53126
- }
53127
- return map;
53128
- }, /* @ts-ignore */
53129
- ...(ngDevMode ? [{ debugName: "#referenceBandById" }] : /* istanbul ignore next */ []));
53130
- this.#referenceBands = signal([], /* @ts-ignore */
53131
- ...(ngDevMode ? [{ debugName: "#referenceBands" }] : /* istanbul ignore next */ []));
53132
- this.#referenceLineById = computed(() => {
53133
- const map = new Map();
53134
- for (const r of this.#referenceLines()) {
53135
- map.set(r.id, r);
53136
- }
53137
- return map;
53138
- }, /* @ts-ignore */
53139
- ...(ngDevMode ? [{ debugName: "#referenceLineById" }] : /* istanbul ignore next */ []));
53140
- this.#referenceLines = signal([], /* @ts-ignore */
53141
- ...(ngDevMode ? [{ debugName: "#referenceLines" }] : /* istanbul ignore next */ []));
53142
- this.#registeredSeries = signal([], /* @ts-ignore */
53143
- ...(ngDevMode ? [{ debugName: "#registeredSeries" }] : /* istanbul ignore next */ []));
53144
- this.#selection = signal(null, /* @ts-ignore */
53145
- ...(ngDevMode ? [{ debugName: "#selection" }] : /* istanbul ignore next */ []));
53146
- this.#synchronizationCoordinator = inject(ChartSynchronizationCoordinator);
53147
- this.#tooltip = signal(null, /* @ts-ignore */
53148
- ...(ngDevMode ? [{ debugName: "#tooltip" }] : /* istanbul ignore next */ []));
53149
- this.#uncontrolledViewportState = signal({ x: new Map(), y: new Map() }, /* @ts-ignore */
53150
- ...(ngDevMode ? [{ debugName: "#uncontrolledViewportState" }] : /* istanbul ignore next */ []));
53151
- this.#warnedDiagnosticSignatures = new Set();
53152
- this.#xAxes = signal([], /* @ts-ignore */
53153
- ...(ngDevMode ? [{ debugName: "#xAxes" }] : /* istanbul ignore next */ []));
53154
- this.#yAxes = signal([], /* @ts-ignore */
53155
- ...(ngDevMode ? [{ debugName: "#yAxes" }] : /* istanbul ignore next */ []));
53156
53206
  this.angularAxisRegistration = this.#angularAxis.asReadonly();
53157
53207
  /**
53158
53208
  * @description Animation settings for initial render and subsequent data or visibility transitions.
@@ -53291,50 +53341,6 @@ class ChartComponent {
53291
53341
  this.yAxesRegistration = this.#yAxes.asReadonly();
53292
53342
  this.yAxisRegistration = computed(() => this.#yAxes()[0] ?? null, /* @ts-ignore */
53293
53343
  ...(ngDevMode ? [{ debugName: "yAxisRegistration" }] : /* istanbul ignore next */ []));
53294
- this.#activeKeyboardBucketIndex = -1;
53295
- this.#activeKeyboardHitKey = null;
53296
- this.#activeKeyboardNamespace = null;
53297
- this.#activeKeyboardSeriesId = null;
53298
- this.#brushMarkIndex = null;
53299
- this.#brushMarkIndexScene = null;
53300
- this.#canvasContext = null;
53301
- this.#canvasReady = false;
53302
- this.#cartesianLayoutRuntime = null;
53303
- this.#currentHeight = 300;
53304
- this.#currentWidth = 500;
53305
- this.#dataLabelResizeObserver = null;
53306
- this.#gestureController = null;
53307
- this.#hasCommittedVisualScene = false;
53308
- this.#hasEmittedBrushStart = false;
53309
- this.#hasPendingSizeReflow = false;
53310
- this.#hasWarnedBrushWithoutSelection = false;
53311
- this.#hasWarnedMultiBrush = false;
53312
- this.#hasWarnedMultiSelection = false;
53313
- this.#hasWarnedSelectionNonCartesian = false;
53314
- this.#interactionOwner = null;
53315
- this.#interactionRevision = 0;
53316
- this.#interactionState = null;
53317
- this.#isDestroyed = false;
53318
- this.#labelResizeObserver = null;
53319
- this.#lastControlledSelection = undefined;
53320
- this.#lastInteractionSource = null;
53321
- this.#lastNormalizedControlledViewport = null;
53322
- this.#lastPointerResolution = null;
53323
- this.#lastSelectionMode = undefined;
53324
- this.#mediaQueryList = null;
53325
- this.#mediaQueryListener = null;
53326
- this.#overlayLabelResizeObserver = null;
53327
- this.#pendingBrushFrame = null;
53328
- this.#pendingBrushRafId = null;
53329
- this.#pendingLabelMeasurementReason = 0;
53330
- this.#pendingPointerEvent = null;
53331
- this.#pointerFrameId = null;
53332
- this.#renderBackend = null;
53333
- this.#renderScene = null;
53334
- this.#resizeObserver = null;
53335
- this.#suppressNextCanvasClick = false;
53336
- this.#synchronizationController = null;
53337
- this.#themeObserver = null;
53338
53344
  this.#styleResolver = new ChartStyleResolver(this.#elementRef.nativeElement);
53339
53345
  this.#animationController = new ChartAnimationController(new BrowserAnimationClock());
53340
53346
  this.#renderScheduler = new ChartRenderScheduler(reason => this.#recomputeAndPaint(reason));
@@ -53435,10 +53441,15 @@ class ChartComponent {
53435
53441
  cancelAnimationFrame(this.#pointerFrameId);
53436
53442
  this.#pointerFrameId = null;
53437
53443
  }
53444
+ if (this.#initialMeasurementFrameId !== null) {
53445
+ cancelAnimationFrame(this.#initialMeasurementFrameId);
53446
+ this.#initialMeasurementFrameId = null;
53447
+ }
53438
53448
  if (this.#resizeObserver) {
53439
53449
  this.#resizeObserver.disconnect();
53440
53450
  this.#resizeObserver = null;
53441
53451
  }
53452
+ this.#resizeObserverTarget = null;
53442
53453
  if (this.#labelResizeObserver) {
53443
53454
  this.#labelResizeObserver.disconnect();
53444
53455
  this.#labelResizeObserver = null;
@@ -54165,28 +54176,86 @@ class ChartComponent {
54165
54176
  #getSurfaceElement() {
54166
54177
  return this.plotSurfaceElement()?.nativeElement ?? this.canvasElement()?.nativeElement ?? null;
54167
54178
  }
54179
+ #getPlotElement() {
54180
+ return (this.plotSurfaceElement()?.nativeElement ||
54181
+ this.canvasElement()?.nativeElement.parentElement ||
54182
+ this.#elementRef.nativeElement);
54183
+ }
54184
+ #measurePlotElement(plotEl) {
54185
+ const rect = plotEl.getBoundingClientRect();
54186
+ const width = rect.width > 0 ? rect.width : plotEl.offsetWidth;
54187
+ const height = rect.height > 0 ? rect.height : plotEl.offsetHeight;
54188
+ if (!Number.isFinite(width) || !Number.isFinite(height) || width <= 0 || height <= 0) {
54189
+ return null;
54190
+ }
54191
+ return { height, width };
54192
+ }
54193
+ #applyMeasuredSize(width, height) {
54194
+ if (!Number.isFinite(width) || !Number.isFinite(height) || width <= 0 || height <= 0) {
54195
+ return false;
54196
+ }
54197
+ const wasPending = this.#initialMeasurementPending;
54198
+ const changed = Math.abs(width - this.#currentWidth) >= 0.5 || Math.abs(height - this.#currentHeight) >= 0.5;
54199
+ this.#currentWidth = width;
54200
+ this.#currentHeight = height;
54201
+ this.#initialMeasurementPending = false;
54202
+ const requiresRepaint = changed || wasPending;
54203
+ if (requiresRepaint) {
54204
+ this.#updateCanvasBackingStore(width, height);
54205
+ }
54206
+ return requiresRepaint;
54207
+ }
54208
+ #syncResizeObserverTarget() {
54209
+ const plotEl = this.#getPlotElement();
54210
+ if (this.#resizeObserver && this.#resizeObserverTarget !== plotEl) {
54211
+ if (this.#resizeObserverTarget) {
54212
+ this.#resizeObserver.unobserve(this.#resizeObserverTarget);
54213
+ }
54214
+ this.#resizeObserverTarget = plotEl;
54215
+ this.#resizeObserver.observe(plotEl);
54216
+ }
54217
+ return plotEl;
54218
+ }
54219
+ #scheduleInitialMeasurement(attempt = 0) {
54220
+ if (!this.#initialMeasurementPending ||
54221
+ this.#initialMeasurementFrameId !== null ||
54222
+ typeof requestAnimationFrame === "undefined" ||
54223
+ attempt >= 3) {
54224
+ return;
54225
+ }
54226
+ this.#initialMeasurementFrameId = requestAnimationFrame(() => {
54227
+ this.#initialMeasurementFrameId = null;
54228
+ if (this.#isDestroyed) {
54229
+ return;
54230
+ }
54231
+ const plotEl = this.#syncResizeObserverTarget();
54232
+ const measurement = this.#measurePlotElement(plotEl);
54233
+ if (measurement) {
54234
+ if (this.#applyMeasuredSize(measurement.width, measurement.height)) {
54235
+ this.invalidate(16 /* ChartInvalidationReason.Size */);
54236
+ }
54237
+ return;
54238
+ }
54239
+ this.#scheduleInitialMeasurement(attempt + 1);
54240
+ });
54241
+ }
54168
54242
  #initCanvasAndObserver() {
54169
- const plotSurfaceRef = this.plotSurfaceElement();
54170
54243
  const canvasRef = this.canvasElement();
54171
54244
  if (canvasRef?.nativeElement) {
54172
54245
  this.#canvasContext = canvasRef.nativeElement.getContext("2d");
54173
54246
  }
54174
- const plotEl = plotSurfaceRef?.nativeElement || canvasRef?.nativeElement.parentElement || this.#elementRef.nativeElement;
54247
+ const plotEl = this.#getPlotElement();
54175
54248
  if (typeof ResizeObserver !== "undefined") {
54176
54249
  this.#resizeObserver = new ResizeObserver(entries => {
54250
+ this.#syncResizeObserverTarget();
54177
54251
  for (const entry of entries) {
54178
54252
  const { height, width } = entry.contentRect;
54179
- if (width > 0 &&
54180
- height > 0 &&
54181
- (Math.abs(width - this.#currentWidth) >= 0.5 || Math.abs(height - this.#currentHeight) >= 0.5)) {
54182
- this.#currentWidth = width;
54183
- this.#currentHeight = height;
54184
- this.#updateCanvasBackingStore(width, height);
54253
+ if (width > 0 && height > 0 && this.#applyMeasuredSize(width, height)) {
54185
54254
  this.invalidate(16 /* ChartInvalidationReason.Size */);
54186
54255
  }
54187
54256
  }
54188
54257
  });
54189
- this.#resizeObserver.observe(plotEl);
54258
+ this.#syncResizeObserverTarget();
54190
54259
  }
54191
54260
  if (typeof MutationObserver !== "undefined") {
54192
54261
  this.#themeObserver = new MutationObserver(() => {
@@ -54207,12 +54276,14 @@ class ChartComponent {
54207
54276
  }
54208
54277
  }
54209
54278
  // Initial layout pass
54210
- const rect = plotEl.getBoundingClientRect();
54211
- const initialWidth = rect.width > 0 ? rect.width : plotEl.offsetWidth || 500;
54212
- const initialHeight = rect.height > 0 ? rect.height : plotEl.offsetHeight || 300;
54213
- this.#currentWidth = initialWidth;
54214
- this.#currentHeight = initialHeight;
54215
- this.#updateCanvasBackingStore(initialWidth, initialHeight);
54279
+ const initialMeasurement = this.#measurePlotElement(plotEl);
54280
+ if (initialMeasurement) {
54281
+ this.#applyMeasuredSize(initialMeasurement.width, initialMeasurement.height);
54282
+ }
54283
+ else {
54284
+ this.#initialMeasurementPending = true;
54285
+ this.#scheduleInitialMeasurement();
54286
+ }
54216
54287
  }
54217
54288
  #normalizePointer(event) {
54218
54289
  const element = this.#getSurfaceElement();
@@ -54309,15 +54380,10 @@ class ChartComponent {
54309
54380
  this.#paint();
54310
54381
  return;
54311
54382
  }
54312
- if (this.#currentWidth <= 0 || this.#currentHeight <= 0) {
54313
- const plotEl = this.plotSurfaceElement()?.nativeElement ||
54314
- this.canvasElement()?.nativeElement.parentElement ||
54315
- this.#elementRef.nativeElement;
54316
- const rect = plotEl.getBoundingClientRect();
54317
- if (rect.width > 0 && rect.height > 0) {
54318
- this.#currentWidth = rect.width;
54319
- this.#currentHeight = rect.height;
54320
- this.#updateCanvasBackingStore(rect.width, rect.height);
54383
+ if (this.#initialMeasurementPending || this.#currentWidth <= 0 || this.#currentHeight <= 0) {
54384
+ const measurement = this.#measurePlotElement(this.#getPlotElement());
54385
+ if (measurement) {
54386
+ this.#applyMeasuredSize(measurement.width, measurement.height);
54321
54387
  }
54322
54388
  }
54323
54389
  const sizeChanged = !this.scene() ||
@@ -54336,8 +54402,12 @@ class ChartComponent {
54336
54402
  !isChromeOnly &&
54337
54403
  !hasInvalidationReason(reason, 4 /* ChartInvalidationReason.Style */) &&
54338
54404
  this.#cartesianLayoutRuntime !== null;
54405
+ const isNonCartesianSizeChange = hasInvalidationReason(reason, 16 /* ChartInvalidationReason.Size */) &&
54406
+ sizeChanged &&
54407
+ this.#cartesianLayoutRuntime === null;
54339
54408
  const requiresSceneRefresh = isStructural ||
54340
54409
  isChromeOnly ||
54410
+ isNonCartesianSizeChange ||
54341
54411
  hasInvalidationReason(reason, 4 /* ChartInvalidationReason.Style */) ||
54342
54412
  hasInvalidationReason(reason, 64 /* ChartInvalidationReason.Viewport */) ||
54343
54413
  !this.scene();
@@ -54418,6 +54488,19 @@ class ChartComponent {
54418
54488
  // Commit semantic target scene immediately
54419
54489
  this.scene.set(newScene);
54420
54490
  this.#updateGestureController();
54491
+ const isWaitingForInitialPolarSvgMeasurement = this.#initialMeasurementPending &&
54492
+ this.renderer() === "svg" &&
54493
+ newScene.coordinateSystem === "polar" &&
54494
+ newScene.polarKind === "arc";
54495
+ if (isWaitingForInitialPolarSvgMeasurement) {
54496
+ this.#renderScene = null;
54497
+ this.#hasCommittedVisualScene = false;
54498
+ this.#isAnimating.set(false);
54499
+ this.#isStructuralAnimation.set(false);
54500
+ this.#animationMode.set(null);
54501
+ this.#isExitingData.set(false);
54502
+ return;
54503
+ }
54421
54504
  const isInitial = !this.#hasCommittedVisualScene;
54422
54505
  const isVisibility = hasInvalidationReason(reason, 32 /* ChartInvalidationReason.Visibility */);
54423
54506
  const isData = hasInvalidationReason(reason, 1 /* ChartInvalidationReason.Data */);
@@ -55070,7 +55153,7 @@ class ChartComponent {
55070
55153
  }
55071
55154
  try {
55072
55155
  this.#renderBackend = createChartRenderBackend(mode, canvas, svg);
55073
- if (this.#currentWidth > 0 && this.#currentHeight > 0) {
55156
+ if (!this.#initialMeasurementPending && this.#currentWidth > 0 && this.#currentHeight > 0) {
55074
55157
  const dpr = typeof window !== "undefined" ? window.devicePixelRatio || 1 : 1;
55075
55158
  this.#renderBackend.resize({
55076
55159
  devicePixelRatio: dpr,
@@ -55358,15 +55441,17 @@ class ChartComponent {
55358
55441
  this.#renderScheduler.schedule(reason);
55359
55442
  }
55360
55443
  ngAfterContentChecked() {
55361
- if (!this.#canvasReady) {
55362
- const plotEl = this.plotSurfaceElement()?.nativeElement ||
55363
- this.canvasElement()?.nativeElement.parentElement ||
55364
- this.#elementRef.nativeElement;
55365
- const rect = plotEl.getBoundingClientRect();
55366
- if (rect.width > 0 && rect.height > 0) {
55367
- this.#currentWidth = rect.width;
55368
- this.#currentHeight = rect.height;
55369
- this.#updateCanvasBackingStore(rect.width, rect.height);
55444
+ this.#syncResizeObserverTarget();
55445
+ if (!this.#canvasReady ||
55446
+ this.#initialMeasurementPending ||
55447
+ this.#currentWidth <= 0 ||
55448
+ this.#currentHeight <= 0) {
55449
+ const measurement = this.#measurePlotElement(this.#getPlotElement());
55450
+ if (measurement) {
55451
+ const changed = this.#applyMeasuredSize(measurement.width, measurement.height);
55452
+ if (this.#canvasReady && changed) {
55453
+ this.invalidate(16 /* ChartInvalidationReason.Size */);
55454
+ }
55370
55455
  }
55371
55456
  }
55372
55457
  this.#renderScheduler.flushStructural();
@@ -56807,14 +56892,15 @@ class ChartXAxisComponent {
56807
56892
  #chartContext;
56808
56893
  #destroyRef;
56809
56894
  #registrationId;
56895
+ #registered;
56810
56896
  get registrationId() {
56811
56897
  return this.#registrationId;
56812
56898
  }
56813
- #registered;
56814
56899
  constructor() {
56815
56900
  this.#chartContext = inject(CHART_CONTEXT, { optional: true });
56816
56901
  this.#destroyRef = inject(DestroyRef);
56817
56902
  this.#registrationId = `mona-x-axis-${++nextXAxisId}`;
56903
+ this.#registered = false;
56818
56904
  this.labelTemplate = contentChild(ChartAxisLabelTemplateDirective, /* @ts-ignore */
56819
56905
  ...(ngDevMode ? [{ debugName: "labelTemplate" }] : /* istanbul ignore next */ []));
56820
56906
  /**
@@ -56955,7 +57041,6 @@ class ChartXAxisComponent {
56955
57041
  */
56956
57042
  this.visible = input(true, /* @ts-ignore */
56957
57043
  ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
56958
- this.#registered = false;
56959
57044
  effect(() => {
56960
57045
  this.axisId();
56961
57046
  this.axisLine();
@@ -57040,14 +57125,15 @@ class ChartYAxisComponent {
57040
57125
  #chartContext;
57041
57126
  #destroyRef;
57042
57127
  #registrationId;
57128
+ #registered;
57043
57129
  get registrationId() {
57044
57130
  return this.#registrationId;
57045
57131
  }
57046
- #registered;
57047
57132
  constructor() {
57048
57133
  this.#chartContext = inject(CHART_CONTEXT, { optional: true });
57049
57134
  this.#destroyRef = inject(DestroyRef);
57050
57135
  this.#registrationId = `mona-y-axis-${++nextYAxisId}`;
57136
+ this.#registered = false;
57051
57137
  this.labelTemplate = contentChild(ChartAxisLabelTemplateDirective, /* @ts-ignore */
57052
57138
  ...(ngDevMode ? [{ debugName: "labelTemplate" }] : /* istanbul ignore next */ []));
57053
57139
  /**
@@ -57182,7 +57268,6 @@ class ChartYAxisComponent {
57182
57268
  */
57183
57269
  this.visible = input(true, /* @ts-ignore */
57184
57270
  ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
57185
- this.#registered = false;
57186
57271
  effect(() => {
57187
57272
  this.axisId();
57188
57273
  this.axisLine();
@@ -57267,6 +57352,7 @@ class ChartAngularAxisComponent {
57267
57352
  constructor() {
57268
57353
  this.#chartContext = inject(CHART_CONTEXT, { optional: true });
57269
57354
  this.#destroyRef = inject(DestroyRef);
57355
+ this.#registered = false;
57270
57356
  this.labelTemplate = contentChild(ChartAxisLabelTemplateDirective, /* @ts-ignore */
57271
57357
  ...(ngDevMode ? [{ debugName: "labelTemplate" }] : /* istanbul ignore next */ []));
57272
57358
  /**
@@ -57322,7 +57408,6 @@ class ChartAngularAxisComponent {
57322
57408
  */
57323
57409
  this.visible = input(true, /* @ts-ignore */
57324
57410
  ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
57325
- this.#registered = false;
57326
57411
  effect(() => {
57327
57412
  this.axisLine();
57328
57413
  this.formatter();
@@ -57380,6 +57465,7 @@ class ChartRadialAxisComponent {
57380
57465
  constructor() {
57381
57466
  this.#chartContext = inject(CHART_CONTEXT, { optional: true });
57382
57467
  this.#destroyRef = inject(DestroyRef);
57468
+ this.#registered = false;
57383
57469
  this.labelTemplate = contentChild(ChartAxisLabelTemplateDirective, /* @ts-ignore */
57384
57470
  ...(ngDevMode ? [{ debugName: "labelTemplate" }] : /* istanbul ignore next */ []));
57385
57471
  /**
@@ -57459,7 +57545,6 @@ class ChartRadialAxisComponent {
57459
57545
  */
57460
57546
  this.visible = input(true, /* @ts-ignore */
57461
57547
  ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
57462
- this.#registered = false;
57463
57548
  effect(() => {
57464
57549
  this.axisLine();
57465
57550
  this.formatter();
@@ -57544,6 +57629,7 @@ class LineSeriesComponent {
57544
57629
  this.#destroyRef = inject(DestroyRef);
57545
57630
  this.#elementRef = inject(ElementRef);
57546
57631
  this.#id = `mona-line-series-${++nextSeriesId$9}`;
57632
+ this.#registered = false;
57547
57633
  /**
57548
57634
  * @description Explicit stroke color override for the series line.
57549
57635
  * @default ""
@@ -57653,7 +57739,6 @@ class LineSeriesComponent {
57653
57739
  */
57654
57740
  this.yAxisId = input(undefined, /* @ts-ignore */
57655
57741
  ...(ngDevMode ? [{ debugName: "yAxisId" }] : /* istanbul ignore next */ []));
57656
- this.#registered = false;
57657
57742
  effect(() => {
57658
57743
  this.visible();
57659
57744
  if (this.#registered) {
@@ -57763,6 +57848,7 @@ class AreaSeriesComponent {
57763
57848
  this.#destroyRef = inject(DestroyRef);
57764
57849
  this.#elementRef = inject(ElementRef);
57765
57850
  this.#id = `mona-area-series-${++nextSeriesId$8}`;
57851
+ this.#registered = false;
57766
57852
  /**
57767
57853
  * @description Explicit stroke and fill color override for the area series.
57768
57854
  * @default ""
@@ -57902,7 +57988,6 @@ class AreaSeriesComponent {
57902
57988
  */
57903
57989
  this.yAxisId = input(undefined, /* @ts-ignore */
57904
57990
  ...(ngDevMode ? [{ debugName: "yAxisId" }] : /* istanbul ignore next */ []));
57905
- this.#registered = false;
57906
57991
  effect(() => {
57907
57992
  this.visible();
57908
57993
  if (this.#registered) {
@@ -58022,6 +58107,7 @@ class BarSeriesComponent {
58022
58107
  this.#destroyRef = inject(DestroyRef);
58023
58108
  this.#elementRef = inject(ElementRef);
58024
58109
  this.#id = `mona-bar-series-${++nextSeriesId$7}`;
58110
+ this.#registered = false;
58025
58111
  /**
58026
58112
  * @description Corner radius in pixels for the bar caps.
58027
58113
  * @default undefined
@@ -58137,7 +58223,6 @@ class BarSeriesComponent {
58137
58223
  */
58138
58224
  this.yAxisId = input(undefined, /* @ts-ignore */
58139
58225
  ...(ngDevMode ? [{ debugName: "yAxisId" }] : /* istanbul ignore next */ []));
58140
- this.#registered = false;
58141
58226
  let initialVisible = true;
58142
58227
  effect(() => {
58143
58228
  this.visible();
@@ -58284,6 +58369,7 @@ class PieSeriesComponent {
58284
58369
  this.#seriesId = `mona-pie-series-${++nextPieSeriesId}`;
58285
58370
  this.#visibilityRevision = signal(0, /* @ts-ignore */
58286
58371
  ...(ngDevMode ? [{ debugName: "#visibilityRevision" }] : /* istanbul ignore next */ []));
58372
+ this.#registered = false;
58287
58373
  this.sliceLabelTemplate = contentChild(ChartSliceLabelTemplateDirective, /* @ts-ignore */
58288
58374
  ...(ngDevMode ? [{ debugName: "sliceLabelTemplate" }] : /* istanbul ignore next */ []));
58289
58375
  /**
@@ -58433,7 +58519,6 @@ class PieSeriesComponent {
58433
58519
  */
58434
58520
  this.visible = model(true, /* @ts-ignore */
58435
58521
  ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
58436
- this.#registered = false;
58437
58522
  effect(() => {
58438
58523
  this.visible();
58439
58524
  if (this.#registered) {
@@ -58600,6 +58685,7 @@ class DonutSeriesComponent {
58600
58685
  this.#seriesId = `mona-donut-series-${++nextDonutSeriesId}`;
58601
58686
  this.#visibilityRevision = signal(0, /* @ts-ignore */
58602
58687
  ...(ngDevMode ? [{ debugName: "#visibilityRevision" }] : /* istanbul ignore next */ []));
58688
+ this.#registered = false;
58603
58689
  this.centerTemplate = contentChild(ChartCenterTemplateDirective, /* @ts-ignore */
58604
58690
  ...(ngDevMode ? [{ debugName: "centerTemplate" }] : /* istanbul ignore next */ []));
58605
58691
  this.sliceLabelTemplate = contentChild(ChartSliceLabelTemplateDirective, /* @ts-ignore */
@@ -58757,7 +58843,6 @@ class DonutSeriesComponent {
58757
58843
  */
58758
58844
  this.visible = model(true, /* @ts-ignore */
58759
58845
  ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
58760
- this.#registered = false;
58761
58846
  effect(() => {
58762
58847
  this.visible();
58763
58848
  if (this.#registered) {
@@ -58907,6 +58992,7 @@ class RadarSeriesComponent {
58907
58992
  this.#destroyRef = inject(DestroyRef);
58908
58993
  this.#elementRef = inject(ElementRef);
58909
58994
  this.#id = `mona-radar-series-${++nextRadarSeriesId}`;
58995
+ this.#registered = false;
58910
58996
  /**
58911
58997
  * @description Property key or accessor function extracting the angular spoke category for each data item.
58912
58998
  * @default "category"
@@ -59002,7 +59088,6 @@ class RadarSeriesComponent {
59002
59088
  */
59003
59089
  this.visible = model(true, /* @ts-ignore */
59004
59090
  ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
59005
- this.#registered = false;
59006
59091
  effect(() => {
59007
59092
  this.visible();
59008
59093
  if (this.#registered) {
@@ -59101,6 +59186,7 @@ class PolarSeriesComponent {
59101
59186
  this.#destroyRef = inject(DestroyRef);
59102
59187
  this.#elementRef = inject(ElementRef);
59103
59188
  this.#id = `mona-polar-series-${++nextPolarSeriesId}`;
59189
+ this.#registered = false;
59104
59190
  /**
59105
59191
  * @description Property key or accessor function extracting the degree angle (0° to 360°) for each data item.
59106
59192
  * @default "angle"
@@ -59196,7 +59282,6 @@ class PolarSeriesComponent {
59196
59282
  */
59197
59283
  this.visible = model(true, /* @ts-ignore */
59198
59284
  ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
59199
- this.#registered = false;
59200
59285
  effect(() => {
59201
59286
  this.visible();
59202
59287
  if (this.#registered) {
@@ -59301,6 +59386,8 @@ class ChartLegendComponent {
59301
59386
  #chartContext;
59302
59387
  #destroyRef;
59303
59388
  constructor() {
59389
+ this.#chartContext = inject(CHART_CONTEXT, { optional: true });
59390
+ this.#destroyRef = inject(DestroyRef);
59304
59391
  this.containerClasses = computed(() => twMerge(chartLegendBaseThemeVariants({ position: this.position() }), this.userClass()), /* @ts-ignore */
59305
59392
  ...(ngDevMode ? [{ debugName: "containerClasses" }] : /* istanbul ignore next */ []));
59306
59393
  this.gradientCss = computed(() => {
@@ -59353,8 +59440,6 @@ class ChartLegendComponent {
59353
59440
  ...(ngDevMode ? [{ debugName: "legendItems" }] : /* istanbul ignore next */ []));
59354
59441
  this.legendScale = computed(() => this.#chartContext?.legendScale?.() ?? null, /* @ts-ignore */
59355
59442
  ...(ngDevMode ? [{ debugName: "legendScale" }] : /* istanbul ignore next */ []));
59356
- this.#chartContext = inject(CHART_CONTEXT, { optional: true });
59357
- this.#destroyRef = inject(DestroyRef);
59358
59443
  /**
59359
59444
  * @description Whether clicking or pressing Enter/Space on legend items toggles series visibility.
59360
59445
  * @default true
@@ -59592,6 +59677,7 @@ class ScatterSeriesComponent {
59592
59677
  this.#destroyRef = inject(DestroyRef);
59593
59678
  this.#elementRef = inject(ElementRef);
59594
59679
  this.#id = `mona-scatter-series-${++nextSeriesId$6}`;
59680
+ this.#registered = false;
59595
59681
  /**
59596
59682
  * @description Explicit fill color for the scatter points.
59597
59683
  * @default ""
@@ -59695,7 +59781,6 @@ class ScatterSeriesComponent {
59695
59781
  */
59696
59782
  this.yAxisId = input(undefined, /* @ts-ignore */
59697
59783
  ...(ngDevMode ? [{ debugName: "yAxisId" }] : /* istanbul ignore next */ []));
59698
- this.#registered = false;
59699
59784
  effect(() => {
59700
59785
  this.visible();
59701
59786
  if (this.#registered) {
@@ -59803,6 +59888,7 @@ class BubbleSeriesComponent {
59803
59888
  this.#destroyRef = inject(DestroyRef);
59804
59889
  this.#elementRef = inject(ElementRef);
59805
59890
  this.#id = `mona-bubble-series-${++nextSeriesId$5}`;
59891
+ this.#registered = false;
59806
59892
  /**
59807
59893
  * @description Explicit fill color for the bubbles.
59808
59894
  * @default ""
@@ -59924,7 +60010,6 @@ class BubbleSeriesComponent {
59924
60010
  */
59925
60011
  this.yAxisId = input(undefined, /* @ts-ignore */
59926
60012
  ...(ngDevMode ? [{ debugName: "yAxisId" }] : /* istanbul ignore next */ []));
59927
- this.#registered = false;
59928
60013
  effect(() => {
59929
60014
  this.visible();
59930
60015
  if (this.#registered) {
@@ -60038,6 +60123,7 @@ class RangeBarSeriesComponent {
60038
60123
  this.#destroyRef = inject(DestroyRef);
60039
60124
  this.#elementRef = inject(ElementRef);
60040
60125
  this.#id = `mona-range-bar-series-${++nextSeriesId$4}`;
60126
+ this.#registered = false;
60041
60127
  /**
60042
60128
  * @description Corner radius in pixels for the floating bar caps.
60043
60129
  * @default undefined
@@ -60145,7 +60231,6 @@ class RangeBarSeriesComponent {
60145
60231
  */
60146
60232
  this.yAxisId = input(undefined, /* @ts-ignore */
60147
60233
  ...(ngDevMode ? [{ debugName: "yAxisId" }] : /* istanbul ignore next */ []));
60148
- this.#registered = false;
60149
60234
  effect(() => {
60150
60235
  this.visible();
60151
60236
  if (this.#registered) {
@@ -60255,6 +60340,7 @@ class RangeAreaSeriesComponent {
60255
60340
  this.#destroyRef = inject(DestroyRef);
60256
60341
  this.#elementRef = inject(ElementRef);
60257
60342
  this.#id = `mona-range-area-series-${++nextSeriesId$3}`;
60343
+ this.#registered = false;
60258
60344
  /**
60259
60345
  * @description Explicit stroke and fill color override for the range area series.
60260
60346
  * @default ""
@@ -60380,7 +60466,6 @@ class RangeAreaSeriesComponent {
60380
60466
  */
60381
60467
  this.yAxisId = input(undefined, /* @ts-ignore */
60382
60468
  ...(ngDevMode ? [{ debugName: "yAxisId" }] : /* istanbul ignore next */ []));
60383
- this.#registered = false;
60384
60469
  effect(() => {
60385
60470
  this.visible();
60386
60471
  if (this.#registered) {
@@ -60496,6 +60581,7 @@ class HeatmapSeriesComponent {
60496
60581
  this.#destroyRef = inject(DestroyRef);
60497
60582
  this.#elementRef = inject(ElementRef);
60498
60583
  this.#id = `mona-heatmap-series-${++nextSeriesId$2}`;
60584
+ this.#registered = false;
60499
60585
  /**
60500
60586
  * @description Corner radius in pixels for each individual heat cell.
60501
60587
  * @default undefined
@@ -60631,7 +60717,6 @@ class HeatmapSeriesComponent {
60631
60717
  */
60632
60718
  this.yField = input.required(/* @ts-ignore */
60633
60719
  ...(ngDevMode ? [{ debugName: "yField" }] : /* istanbul ignore next */ []));
60634
- this.#registered = false;
60635
60720
  effect(() => {
60636
60721
  this.visible();
60637
60722
  if (this.#registered) {
@@ -60739,6 +60824,7 @@ class CandlestickSeriesComponent {
60739
60824
  this.#destroyRef = inject(DestroyRef);
60740
60825
  this.#elementRef = inject(ElementRef);
60741
60826
  this.#id = `mona-candlestick-series-${++nextSeriesId$1}`;
60827
+ this.#registered = false;
60742
60828
  /**
60743
60829
  * @description Explicit body width in pixels for candlestick candles.
60744
60830
  * @default undefined
@@ -60892,7 +60978,6 @@ class CandlestickSeriesComponent {
60892
60978
  */
60893
60979
  this.yAxisId = input(undefined, /* @ts-ignore */
60894
60980
  ...(ngDevMode ? [{ debugName: "yAxisId" }] : /* istanbul ignore next */ []));
60895
- this.#registered = false;
60896
60981
  effect(() => {
60897
60982
  this.closeField();
60898
60983
  this.data();
@@ -61009,12 +61094,13 @@ class OhlcSeriesComponent {
61009
61094
  #id;
61010
61095
  #registered;
61011
61096
  constructor() {
61012
- this.effectiveTickLength = computed(() => this.tickLength() ?? this.tickWidth(), /* @ts-ignore */
61013
- ...(ngDevMode ? [{ debugName: "effectiveTickLength" }] : /* istanbul ignore next */ []));
61014
61097
  this.#chartContext = inject(CHART_CONTEXT, { optional: true });
61015
61098
  this.#destroyRef = inject(DestroyRef);
61016
61099
  this.#elementRef = inject(ElementRef);
61017
61100
  this.#id = `mona-ohlc-series-${++nextSeriesId}`;
61101
+ this.#registered = false;
61102
+ this.effectiveTickLength = computed(() => this.tickLength() ?? this.tickWidth(), /* @ts-ignore */
61103
+ ...(ngDevMode ? [{ debugName: "effectiveTickLength" }] : /* istanbul ignore next */ []));
61018
61104
  /**
61019
61105
  * @description Explicit total width in pixels for open/close tick arms.
61020
61106
  * @default undefined
@@ -61174,7 +61260,6 @@ class OhlcSeriesComponent {
61174
61260
  */
61175
61261
  this.yAxisId = input(undefined, /* @ts-ignore */
61176
61262
  ...(ngDevMode ? [{ debugName: "yAxisId" }] : /* istanbul ignore next */ []));
61177
- this.#registered = false;
61178
61263
  effect(() => {
61179
61264
  this.closeField();
61180
61265
  this.data();
@@ -61304,6 +61389,7 @@ class RadialBarSeriesComponent {
61304
61389
  this.#seriesId = `mona-radial-bar-series-${++nextRadialBarSeriesId}`;
61305
61390
  this.#visibilityRevision = signal(0, /* @ts-ignore */
61306
61391
  ...(ngDevMode ? [{ debugName: "#visibilityRevision" }] : /* istanbul ignore next */ []));
61392
+ this.#registered = false;
61307
61393
  /**
61308
61394
  * @description Spacing in pixels between concentric radial rings.
61309
61395
  * @default 4
@@ -61469,7 +61555,6 @@ class RadialBarSeriesComponent {
61469
61555
  */
61470
61556
  this.visible = model(true, /* @ts-ignore */
61471
61557
  ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
61472
- this.#registered = false;
61473
61558
  effect(() => {
61474
61559
  this.visible();
61475
61560
  if (this.#registered) {
@@ -61638,6 +61723,7 @@ class RoseSeriesComponent {
61638
61723
  this.#seriesId = `mona-rose-series-${++nextRoseSeriesId}`;
61639
61724
  this.#visibilityRevision = signal(0, /* @ts-ignore */
61640
61725
  ...(ngDevMode ? [{ debugName: "#visibilityRevision" }] : /* istanbul ignore next */ []));
61726
+ this.#registered = false;
61641
61727
  /**
61642
61728
  * @description Property key or accessor extracting the category label for each rose petal.
61643
61729
  * @default "category"
@@ -61773,7 +61859,6 @@ class RoseSeriesComponent {
61773
61859
  */
61774
61860
  this.visible = model(true, /* @ts-ignore */
61775
61861
  ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
61776
- this.#registered = false;
61777
61862
  effect(() => {
61778
61863
  this.visible();
61779
61864
  if (this.#registered) {
@@ -61937,12 +62022,13 @@ class GaugeSeriesComponent {
61937
62022
  #seriesId;
61938
62023
  #registered;
61939
62024
  constructor() {
61940
- this.centerTemplate = contentChild(ChartGaugeCenterTemplateDirective, /* @ts-ignore */
61941
- ...(ngDevMode ? [{ debugName: "centerTemplate" }] : /* istanbul ignore next */ []));
61942
62025
  this.#chartContext = inject(CHART_CONTEXT, { optional: true });
61943
62026
  this.#destroyRef = inject(DestroyRef);
61944
62027
  this.#elementRef = inject(ElementRef);
61945
62028
  this.#seriesId = `mona-gauge-series-${++nextGaugeSeriesId}`;
62029
+ this.#registered = false;
62030
+ this.centerTemplate = contentChild(ChartGaugeCenterTemplateDirective, /* @ts-ignore */
62031
+ ...(ngDevMode ? [{ debugName: "centerTemplate" }] : /* istanbul ignore next */ []));
61946
62032
  /**
61947
62033
  * @description Primary color of the gauge value arc.
61948
62034
  * @default ""
@@ -62098,7 +62184,6 @@ class GaugeSeriesComponent {
62098
62184
  */
62099
62185
  this.visible = model(true, /* @ts-ignore */
62100
62186
  ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
62101
- this.#registered = false;
62102
62187
  effect(() => {
62103
62188
  this.visible();
62104
62189
  if (this.#registered) {
@@ -62236,6 +62321,7 @@ class TreemapSeriesComponent {
62236
62321
  this.#seriesId = `mona-treemap-series-${++nextTreemapSeriesId}`;
62237
62322
  this.#visibilityRevision = signal(0, /* @ts-ignore */
62238
62323
  ...(ngDevMode ? [{ debugName: "#visibilityRevision" }] : /* istanbul ignore next */ []));
62324
+ this.#registered = false;
62239
62325
  /**
62240
62326
  * @description Corner radius in pixels applied to leaf node rectangles.
62241
62327
  * @default undefined
@@ -62424,7 +62510,6 @@ class TreemapSeriesComponent {
62424
62510
  */
62425
62511
  this.visible = model(true, /* @ts-ignore */
62426
62512
  ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
62427
- this.#registered = false;
62428
62513
  effect(() => {
62429
62514
  this.visible();
62430
62515
  if (this.#registered) {
@@ -62626,6 +62711,7 @@ class FunnelSeriesComponent {
62626
62711
  this.#stageIdentityMap = new Map();
62627
62712
  this.#visibilityRevision = signal(0, /* @ts-ignore */
62628
62713
  ...(ngDevMode ? [{ debugName: "#visibilityRevision" }] : /* istanbul ignore next */ []));
62714
+ this.#registered = false;
62629
62715
  /**
62630
62716
  * @description Property key or accessor extracting stage names.
62631
62717
  * @default "category"
@@ -62773,7 +62859,6 @@ class FunnelSeriesComponent {
62773
62859
  */
62774
62860
  this.widthRatio = input(0.9, /* @ts-ignore */
62775
62861
  ...(ngDevMode ? [{ debugName: "widthRatio" }] : /* istanbul ignore next */ []));
62776
- this.#registered = false;
62777
62862
  effect(() => {
62778
62863
  const rawData = this.data() ?? this.#chartContext?.rootData() ?? [];
62779
62864
  const keyF = this.keyField();
@@ -62985,6 +63070,7 @@ class WaterfallSeriesComponent {
62985
63070
  this.#destroyRef = inject(DestroyRef);
62986
63071
  this.#elementRef = inject(ElementRef);
62987
63072
  this.#seriesId = `mona-waterfall-series-${++nextWaterfallSeriesId}`;
63073
+ this.#registered = false;
62988
63074
  /**
62989
63075
  * @description Corner radius in pixels applied to the four corners of waterfall bars.
62990
63076
  * @default undefined
@@ -63146,7 +63232,6 @@ class WaterfallSeriesComponent {
63146
63232
  */
63147
63233
  this.xField = input(undefined, /* @ts-ignore */
63148
63234
  ...(ngDevMode ? [{ debugName: "xField" }] : /* istanbul ignore next */ []));
63149
- this.#registered = false;
63150
63235
  effect(() => {
63151
63236
  this.visible();
63152
63237
  if (this.#registered) {
@@ -63921,6 +64006,7 @@ class ChartSelectionComponent {
63921
64006
  constructor() {
63922
64007
  this.#chartContext = inject(CHART_CONTEXT, { optional: true });
63923
64008
  this.#destroyRef = inject(DestroyRef);
64009
+ this.#registered = false;
63924
64010
  /**
63925
64011
  * @description Whether clicking plot background clears active selection.
63926
64012
  * @default true
@@ -63991,7 +64077,6 @@ class ChartSelectionComponent {
63991
64077
  */
63992
64078
  this.strokeWidth = input(undefined, /* @ts-ignore */
63993
64079
  ...(ngDevMode ? [{ debugName: "strokeWidth" }] : /* istanbul ignore next */ []));
63994
- this.#registered = false;
63995
64080
  effect(() => {
63996
64081
  this.enabled();
63997
64082
  this.mode();
@@ -64065,6 +64150,7 @@ class ChartBrushComponent {
64065
64150
  constructor() {
64066
64151
  this.#chartContext = inject(CHART_CONTEXT, { optional: true });
64067
64152
  this.#destroyRef = inject(DestroyRef);
64153
+ this.#registered = false;
64068
64154
  /**
64069
64155
  * @description Activation trigger gesture ('drag' or 'shift-drag').
64070
64156
  * @default "shift-drag"
@@ -64147,7 +64233,6 @@ class ChartBrushComponent {
64147
64233
  */
64148
64234
  this.yAxisId = input(undefined, /* @ts-ignore */
64149
64235
  ...(ngDevMode ? [{ debugName: "yAxisId" }] : /* istanbul ignore next */ []));
64150
- this.#registered = false;
64151
64236
  effect(() => {
64152
64237
  this.enabled();
64153
64238
  this.mode();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nanahoshi/mona-ui",
3
- "version": "0.15.0",
3
+ "version": "0.15.1",
4
4
  "description": "A very light Angular UI framework",
5
5
  "author": "Nanahoshi",
6
6
  "repository": {
@@ -4488,8 +4488,8 @@ declare class ChartComponent implements ChartRegistrationContext, AfterContentCh
4488
4488
 
4489
4489
  declare class ChartXAxisComponent implements OnInit {
4490
4490
  #private;
4491
- protected readonly labelTemplate: _angular_core.Signal<ChartAxisLabelTemplateDirective | undefined>;
4492
4491
  get registrationId(): string;
4492
+ protected readonly labelTemplate: _angular_core.Signal<ChartAxisLabelTemplateDirective | undefined>;
4493
4493
  /**
4494
4494
  * @description Optional semantic identifier for the X axis, referenced by series `xAxisId`.
4495
4495
  * @default undefined
@@ -4613,8 +4613,8 @@ declare class ChartXAxisComponent implements OnInit {
4613
4613
 
4614
4614
  declare class ChartYAxisComponent implements OnInit {
4615
4615
  #private;
4616
- protected readonly labelTemplate: _angular_core.Signal<ChartAxisLabelTemplateDirective | undefined>;
4617
4616
  get registrationId(): string;
4617
+ protected readonly labelTemplate: _angular_core.Signal<ChartAxisLabelTemplateDirective | undefined>;
4618
4618
  /**
4619
4619
  * @description Optional semantic identifier for the Y axis, referenced by series `yAxisId`.
4620
4620
  * @default undefined