@design.estate/dees-catalog 12.5.0 → 13.0.0
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/dist_bundle/bundle.js +149 -69
- package/dist_bundle/bundle.js.map +1 -1
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/00group-chart/dees-chart-area/component.d.ts +26 -16
- package/dist_ts_web/elements/00group-chart/dees-chart-area/component.js +161 -72
- package/dist_ts_web/elements/00group-chart/dees-chart-area/realtime-updates.d.ts +2 -1
- package/dist_ts_web/elements/00group-chart/dees-chart-area/realtime-updates.js +3 -2
- package/dist_ts_web/elements/00group-chart/dees-chart-area/template.js +4 -3
- package/package.json +1 -1
- package/readme.md +11 -1
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/00group-chart/dees-chart-area/component.ts +195 -79
- package/ts_web/elements/00group-chart/dees-chart-area/realtime-updates.ts +4 -2
- package/ts_web/elements/00group-chart/dees-chart-area/template.ts +3 -2
package/dist_bundle/bundle.js
CHANGED
|
@@ -140107,7 +140107,7 @@ var renderChartArea = /* @__PURE__ */ __name((component) => {
|
|
|
140107
140107
|
<div class="chartContainer">
|
|
140108
140108
|
<div class="rangeSelectionOverlay" aria-hidden="true"></div>
|
|
140109
140109
|
</div>
|
|
140110
|
-
${!component.chartSeries.some((series) => series.data.
|
|
140110
|
+
${!component.chartSeries.some((series) => series.data.some((point4) => point4.y !== null)) ? b2`<div class="chartState" role="status">No data for this period</div>` : ""}
|
|
140111
140111
|
${component.seriesStats.length > 0 && !component.hideLegend ? b2`
|
|
140112
140112
|
<div slot="footer" class="statsBar">
|
|
140113
140113
|
${component.seriesStats.map((s9) => b2`
|
|
@@ -140115,7 +140115,7 @@ var renderChartArea = /* @__PURE__ */ __name((component) => {
|
|
|
140115
140115
|
<span class="statsColor" style="background:${s9.color}"></span>
|
|
140116
140116
|
<span class="statsName">${s9.name}</span>
|
|
140117
140117
|
${component.legendStats.filter((key2) => key2 === "latest" || key2 === "min" || key2 === "max" || key2 === "avg").map((key2) => b2`
|
|
140118
|
-
<span class="statsItem">${key2} <strong>${component.yAxisFormatter(s9[key2])}</strong></span>
|
|
140118
|
+
<span class="statsItem">${key2} <strong>${s9[key2] === null ? "\u2014" : component.yAxisFormatter(s9[key2])}</strong></span>
|
|
140119
140119
|
`)}
|
|
140120
140120
|
</div>
|
|
140121
140121
|
`)}
|
|
@@ -140173,7 +140173,7 @@ var planRealtimeChartUpdates = /* @__PURE__ */ __name((renderedData, canonicalDa
|
|
|
140173
140173
|
updates.push({ point: canonicalPoint, historicalUpdate: false });
|
|
140174
140174
|
continue;
|
|
140175
140175
|
}
|
|
140176
|
-
if (renderedPoint.value !== canonicalPoint.value) {
|
|
140176
|
+
if (renderedPoint.value !== canonicalPoint.value || "value" in renderedPoint !== "value" in canonicalPoint) {
|
|
140177
140177
|
updates.push({
|
|
140178
140178
|
point: canonicalPoint,
|
|
140179
140179
|
historicalUpdate: canonicalPoint.time < renderedLastTime
|
|
@@ -140302,6 +140302,9 @@ var _DeesChartArea = class _DeesChartArea extends (_a35 = DeesElement, _chart_de
|
|
|
140302
140302
|
__publicField(this, "autoScrollTimer", null);
|
|
140303
140303
|
__publicField(this, "lcBundle", null);
|
|
140304
140304
|
__publicField(this, "seriesApis", /* @__PURE__ */ new Map());
|
|
140305
|
+
/** LC's data() omits whitespace; this mirrors the exact points sent to each series API. */
|
|
140306
|
+
__publicField(this, "renderedSeriesData", /* @__PURE__ */ new Map());
|
|
140307
|
+
__publicField(this, "renderedSegments", []);
|
|
140305
140308
|
__publicField(this, "priceLines", /* @__PURE__ */ new Map());
|
|
140306
140309
|
__publicField(this, "tooltipEl", null);
|
|
140307
140310
|
__publicField(this, "crosshairActive", false);
|
|
@@ -140404,6 +140407,8 @@ var _DeesChartArea = class _DeesChartArea extends (_a35 = DeesElement, _chart_de
|
|
|
140404
140407
|
console.error("Error destroying chart:", error);
|
|
140405
140408
|
} finally {
|
|
140406
140409
|
this.seriesApis.clear();
|
|
140410
|
+
this.renderedSeriesData.clear();
|
|
140411
|
+
this.renderedSegments = [];
|
|
140407
140412
|
this.priceLines.clear();
|
|
140408
140413
|
}
|
|
140409
140414
|
});
|
|
@@ -140498,8 +140503,8 @@ var _DeesChartArea = class _DeesChartArea extends (_a35 = DeesElement, _chart_de
|
|
|
140498
140503
|
for (const point4 of data) {
|
|
140499
140504
|
const ms = typeof point4.x === "number" ? point4.x : new Date(point4.x).getTime();
|
|
140500
140505
|
const time = Math.floor(ms / 1e3);
|
|
140501
|
-
if (!Number.isFinite(time) || !Number.isFinite(point4.y)) continue;
|
|
140502
|
-
pointsByTime.set(time, { time, value: point4.y });
|
|
140506
|
+
if (!Number.isFinite(time) || point4.y !== null && !Number.isFinite(point4.y)) continue;
|
|
140507
|
+
pointsByTime.set(time, point4.y === null ? { time } : { time, value: point4.y });
|
|
140503
140508
|
}
|
|
140504
140509
|
return [...pointsByTime.values()].sort((a4, b4) => a4.time - b4.time);
|
|
140505
140510
|
}
|
|
@@ -140509,6 +140514,41 @@ var _DeesChartArea = class _DeesChartArea extends (_a35 = DeesElement, _chart_de
|
|
|
140509
140514
|
getSeriesKey(series, index3) {
|
|
140510
140515
|
return `${index3}:${this.getSeriesName(series, index3)}`;
|
|
140511
140516
|
}
|
|
140517
|
+
/**
|
|
140518
|
+
* Lightweight Charts joins Area points across whitespace. Render each
|
|
140519
|
+
* uninterrupted numeric run as its own Area series instead. All missing
|
|
140520
|
+
* timestamps stay on the first real series so the time scale keeps them;
|
|
140521
|
+
* there is no synthetic numeric value or extra public legend series.
|
|
140522
|
+
*/
|
|
140523
|
+
getRenderedSegments(chartSeries) {
|
|
140524
|
+
const renderedSegments = [];
|
|
140525
|
+
chartSeries.forEach((series, logicalIndex) => {
|
|
140526
|
+
const points = this.convertDataToLC(series.data);
|
|
140527
|
+
const missingPoints = points.filter((point4) => !("value" in point4));
|
|
140528
|
+
const numericRuns = [];
|
|
140529
|
+
let currentRun = [];
|
|
140530
|
+
for (const point4 of points) {
|
|
140531
|
+
if ("value" in point4) {
|
|
140532
|
+
currentRun.push(point4);
|
|
140533
|
+
} else if (currentRun.length > 0) {
|
|
140534
|
+
numericRuns.push(currentRun);
|
|
140535
|
+
currentRun = [];
|
|
140536
|
+
}
|
|
140537
|
+
}
|
|
140538
|
+
if (currentRun.length > 0) numericRuns.push(currentRun);
|
|
140539
|
+
if (numericRuns.length === 0) numericRuns.push([]);
|
|
140540
|
+
const baseKey = this.getSeriesKey(series, logicalIndex);
|
|
140541
|
+
numericRuns.forEach((run3, segmentIndex) => {
|
|
140542
|
+
const data = segmentIndex === 0 ? [...run3, ...missingPoints].sort((left, right) => left.time - right.time) : run3;
|
|
140543
|
+
renderedSegments.push({
|
|
140544
|
+
key: segmentIndex === 0 ? baseKey : `${baseKey}#${segmentIndex}`,
|
|
140545
|
+
logicalIndex,
|
|
140546
|
+
data
|
|
140547
|
+
});
|
|
140548
|
+
});
|
|
140549
|
+
});
|
|
140550
|
+
return renderedSegments;
|
|
140551
|
+
}
|
|
140512
140552
|
getCanonicalChartSeries(chartSeries) {
|
|
140513
140553
|
const cutoffTime = Date.now() - this.rollingWindow;
|
|
140514
140554
|
return chartSeries.map((series) => ({
|
|
@@ -140519,12 +140559,27 @@ var _DeesChartArea = class _DeesChartArea extends (_a35 = DeesElement, _chart_de
|
|
|
140519
140559
|
return ms > cutoffTime;
|
|
140520
140560
|
})).map((point4) => ({
|
|
140521
140561
|
x: point4.time * 1e3,
|
|
140522
|
-
y: point4.value
|
|
140562
|
+
y: "value" in point4 ? point4.value : null
|
|
140523
140563
|
}))
|
|
140524
140564
|
}));
|
|
140525
140565
|
}
|
|
140526
|
-
getRenderedSeriesData(
|
|
140527
|
-
|
|
140566
|
+
getRenderedSeriesData(segmentKey) {
|
|
140567
|
+
const renderedData = this.renderedSeriesData.get(segmentKey);
|
|
140568
|
+
if (!renderedData) throw new Error(`Missing rendered chart data for ${segmentKey}`);
|
|
140569
|
+
return renderedData;
|
|
140570
|
+
}
|
|
140571
|
+
rememberRenderedSeriesData(segmentKey, data) {
|
|
140572
|
+
this.renderedSeriesData.set(segmentKey, data.map((point4) => "value" in point4 ? { time: point4.time, value: point4.value } : { time: point4.time }));
|
|
140573
|
+
}
|
|
140574
|
+
rememberIncrementalUpdate(segmentKey, point4) {
|
|
140575
|
+
const renderedData = this.getRenderedSeriesData(segmentKey);
|
|
140576
|
+
const existingIndex = renderedData.findIndex((entry) => entry.time === point4.time);
|
|
140577
|
+
if (existingIndex >= 0) renderedData[existingIndex] = point4;
|
|
140578
|
+
else renderedData.push(point4);
|
|
140579
|
+
}
|
|
140580
|
+
toLcPoint(point4) {
|
|
140581
|
+
const time = point4.time;
|
|
140582
|
+
return point4.value === void 0 ? { time } : { time, value: point4.value };
|
|
140528
140583
|
}
|
|
140529
140584
|
colorToRgba(color2, alpha2) {
|
|
140530
140585
|
if (/^#[0-9a-fA-F]{6}$/.test(color2)) {
|
|
@@ -140583,27 +140638,34 @@ var _DeesChartArea = class _DeesChartArea extends (_a35 = DeesElement, _chart_de
|
|
|
140583
140638
|
horzLines: { color: getThemeColors(this.goBright).borderSubtle }
|
|
140584
140639
|
}
|
|
140585
140640
|
});
|
|
140586
|
-
|
|
140587
|
-
|
|
140588
|
-
|
|
140641
|
+
for (const segment of this.renderedSegments) {
|
|
140642
|
+
const api = this.seriesApis.get(segment.key);
|
|
140643
|
+
if (!api) continue;
|
|
140644
|
+
const color2 = this.resolveSeriesColor(
|
|
140645
|
+
this.chartSeries[segment.logicalIndex],
|
|
140646
|
+
segment.logicalIndex,
|
|
140647
|
+
isDark
|
|
140648
|
+
);
|
|
140589
140649
|
api.applyOptions({
|
|
140590
140650
|
topColor: this.colorToRgba(color2, isDark ? 0.4 : 0.5),
|
|
140591
140651
|
bottomColor: this.colorToRgba(color2, 0),
|
|
140592
140652
|
lineColor: color2
|
|
140593
140653
|
});
|
|
140594
|
-
idx++;
|
|
140595
140654
|
}
|
|
140596
140655
|
}
|
|
140597
|
-
recreateSeries(chartSeries) {
|
|
140656
|
+
recreateSeries(chartSeries, renderedSegments = this.getRenderedSegments(chartSeries)) {
|
|
140598
140657
|
if (!this.chart || !this.lcBundle) return;
|
|
140599
140658
|
const isDark = !this.goBright;
|
|
140600
140659
|
for (const [, api] of this.seriesApis) {
|
|
140601
140660
|
this.chart.removeSeries(api);
|
|
140602
140661
|
}
|
|
140603
140662
|
this.seriesApis.clear();
|
|
140663
|
+
this.renderedSeriesData.clear();
|
|
140604
140664
|
this.priceLines.clear();
|
|
140605
|
-
|
|
140606
|
-
|
|
140665
|
+
this.renderedSegments = renderedSegments;
|
|
140666
|
+
renderedSegments.forEach((segment) => {
|
|
140667
|
+
const series = chartSeries[segment.logicalIndex];
|
|
140668
|
+
const color2 = this.resolveSeriesColor(series, segment.logicalIndex, isDark);
|
|
140607
140669
|
const api = this.chart.addSeries(this.lcBundle.AreaSeries, {
|
|
140608
140670
|
topColor: this.colorToRgba(color2, isDark ? 0.4 : 0.5),
|
|
140609
140671
|
bottomColor: this.colorToRgba(color2, 0),
|
|
@@ -140615,9 +140677,12 @@ var _DeesChartArea = class _DeesChartArea extends (_a35 = DeesElement, _chart_de
|
|
|
140615
140677
|
crosshairMarkerVisible: true,
|
|
140616
140678
|
crosshairMarkerRadius: 4
|
|
140617
140679
|
});
|
|
140618
|
-
api.setData(
|
|
140619
|
-
this.
|
|
140620
|
-
this.
|
|
140680
|
+
api.setData(segment.data);
|
|
140681
|
+
this.seriesApis.set(segment.key, api);
|
|
140682
|
+
this.rememberRenderedSeriesData(segment.key, segment.data);
|
|
140683
|
+
if (segment.key === this.getSeriesKey(series, segment.logicalIndex)) {
|
|
140684
|
+
this.updatePriceLines(segment.key, api, series.data, color2);
|
|
140685
|
+
}
|
|
140621
140686
|
});
|
|
140622
140687
|
this.applyYAxisScale(chartSeries);
|
|
140623
140688
|
this.computeStats(chartSeries);
|
|
@@ -140630,17 +140695,19 @@ var _DeesChartArea = class _DeesChartArea extends (_a35 = DeesElement, _chart_de
|
|
|
140630
140695
|
}
|
|
140631
140696
|
updateSeriesPresentation(chartSeries) {
|
|
140632
140697
|
const isDark = !this.goBright;
|
|
140633
|
-
|
|
140634
|
-
const
|
|
140635
|
-
const api = this.seriesApis.get(
|
|
140698
|
+
this.renderedSegments.forEach((segment) => {
|
|
140699
|
+
const series = chartSeries[segment.logicalIndex];
|
|
140700
|
+
const api = this.seriesApis.get(segment.key);
|
|
140636
140701
|
if (!api) return;
|
|
140637
|
-
const color2 = this.resolveSeriesColor(series,
|
|
140702
|
+
const color2 = this.resolveSeriesColor(series, segment.logicalIndex, isDark);
|
|
140638
140703
|
api.applyOptions({
|
|
140639
140704
|
topColor: this.colorToRgba(color2, isDark ? 0.4 : 0.5),
|
|
140640
140705
|
bottomColor: this.colorToRgba(color2, 0),
|
|
140641
140706
|
lineColor: color2
|
|
140642
140707
|
});
|
|
140643
|
-
this.
|
|
140708
|
+
if (segment.key === this.getSeriesKey(series, segment.logicalIndex)) {
|
|
140709
|
+
this.updatePriceLines(segment.key, api, series.data, color2);
|
|
140710
|
+
}
|
|
140644
140711
|
});
|
|
140645
140712
|
this.computeStats(chartSeries);
|
|
140646
140713
|
this.applyYAxisScale(chartSeries);
|
|
@@ -140651,7 +140718,7 @@ var _DeesChartArea = class _DeesChartArea extends (_a35 = DeesElement, _chart_de
|
|
|
140651
140718
|
if (this.yAxisScaling === "dynamic") {
|
|
140652
140719
|
maxValue = 1;
|
|
140653
140720
|
for (const entry of series) for (const point4 of entry.data) {
|
|
140654
|
-
if (!Number.isFinite(point4.y)) continue;
|
|
140721
|
+
if (point4.y === null || !Number.isFinite(point4.y)) continue;
|
|
140655
140722
|
minValue = Math.min(minValue, Math.floor(point4.y * 1.1));
|
|
140656
140723
|
maxValue = Math.max(maxValue, Math.ceil(point4.y * 1.1));
|
|
140657
140724
|
}
|
|
@@ -140674,21 +140741,37 @@ var _DeesChartArea = class _DeesChartArea extends (_a35 = DeesElement, _chart_de
|
|
|
140674
140741
|
flushPendingRealtimePrune() {
|
|
140675
140742
|
if (!this.pendingRealtimePrune || this.crosshairActive || !this.chart || !this.realtimeMode || this.rollingWindow <= 0) return;
|
|
140676
140743
|
const canonicalSeries = this.getCanonicalChartSeries(this.internalChartData);
|
|
140677
|
-
|
|
140678
|
-
|
|
140679
|
-
|
|
140744
|
+
const canonicalSegments = this.getRenderedSegments(canonicalSeries);
|
|
140745
|
+
if (!haveSameSeriesLayout(
|
|
140746
|
+
[...this.seriesApis.keys()],
|
|
140747
|
+
canonicalSegments.map((segment) => segment.key)
|
|
140748
|
+
)) {
|
|
140749
|
+
this.clearCrosshairForDataReplacement();
|
|
140750
|
+
this.internalChartData = canonicalSeries;
|
|
140751
|
+
this.recreateSeries(canonicalSeries, canonicalSegments);
|
|
140752
|
+
return;
|
|
140753
|
+
}
|
|
140754
|
+
canonicalSegments.forEach((segment) => {
|
|
140755
|
+
const api = this.seriesApis.get(segment.key);
|
|
140756
|
+
if (api) {
|
|
140757
|
+
api.setData(segment.data);
|
|
140758
|
+
this.rememberRenderedSeriesData(segment.key, segment.data);
|
|
140759
|
+
}
|
|
140680
140760
|
});
|
|
140761
|
+
this.internalChartData = canonicalSeries;
|
|
140762
|
+
this.renderedSegments = canonicalSegments;
|
|
140681
140763
|
this.pendingRealtimePrune = false;
|
|
140764
|
+
this.updateSeriesPresentation(canonicalSeries);
|
|
140682
140765
|
}
|
|
140683
140766
|
computeStats(chartSeries) {
|
|
140684
140767
|
const isDark = !this.goBright;
|
|
140685
140768
|
this.seriesStats = chartSeries.map((s9, index3) => {
|
|
140686
140769
|
const color2 = this.resolveSeriesColor(s9, index3, isDark);
|
|
140687
|
-
const values = s9.data.map((
|
|
140770
|
+
const values = s9.data.map((point4) => point4.y).filter((value2) => value2 !== null && Number.isFinite(value2));
|
|
140771
|
+
const latest = s9.data.length > 0 ? s9.data[s9.data.length - 1].y : null;
|
|
140688
140772
|
if (values.length === 0) {
|
|
140689
|
-
return { name: s9.name || `series-${index3}`, latest:
|
|
140773
|
+
return { name: s9.name || `series-${index3}`, latest: null, min: null, max: null, avg: null, color: color2 };
|
|
140690
140774
|
}
|
|
140691
|
-
const latest = values[values.length - 1];
|
|
140692
140775
|
const min3 = Math.min(...values);
|
|
140693
140776
|
const max3 = Math.max(...values);
|
|
140694
140777
|
const avg = Math.round(values.reduce((sum, v4) => sum + v4, 0) / values.length * 100) / 100;
|
|
@@ -140702,11 +140785,11 @@ var _DeesChartArea = class _DeesChartArea extends (_a35 = DeesElement, _chart_de
|
|
|
140702
140785
|
api.removePriceLine(line);
|
|
140703
140786
|
}
|
|
140704
140787
|
}
|
|
140705
|
-
|
|
140788
|
+
const values = data.map((point4) => point4.y).filter((value2) => value2 !== null && Number.isFinite(value2));
|
|
140789
|
+
if (values.length === 0) {
|
|
140706
140790
|
this.priceLines.set(name, []);
|
|
140707
140791
|
return;
|
|
140708
140792
|
}
|
|
140709
|
-
const values = data.map((d5) => d5.y);
|
|
140710
140793
|
const avg = values.reduce((sum, v4) => sum + v4, 0) / values.length;
|
|
140711
140794
|
const max3 = Math.max(...values);
|
|
140712
140795
|
const lines = [];
|
|
@@ -140754,23 +140837,24 @@ var _DeesChartArea = class _DeesChartArea extends (_a35 = DeesElement, _chart_de
|
|
|
140754
140837
|
const textColor = isDark ? "hsl(0 0% 95%)" : "hsl(0 0% 9%)";
|
|
140755
140838
|
const borderColor = isDark ? "hsl(0 0% 14.9%)" : "hsl(0 0% 89.8%)";
|
|
140756
140839
|
let html8 = "";
|
|
140757
|
-
let idx = 0;
|
|
140758
140840
|
let hasData = false;
|
|
140759
|
-
for (const
|
|
140841
|
+
for (const segment of this.renderedSegments) {
|
|
140842
|
+
const api = this.seriesApis.get(segment.key);
|
|
140843
|
+
if (!api) continue;
|
|
140760
140844
|
const data = param.seriesData.get(api);
|
|
140761
|
-
if (data && "value" in data && data.value
|
|
140845
|
+
if (data && "value" in data && typeof data.value === "number") {
|
|
140846
|
+
const marginTop = hasData ? "6px" : "0";
|
|
140762
140847
|
hasData = true;
|
|
140763
|
-
const series = this.internalChartData[
|
|
140764
|
-
const name =
|
|
140765
|
-
const color2 = this.resolveSeriesColor(series,
|
|
140848
|
+
const series = this.internalChartData[segment.logicalIndex];
|
|
140849
|
+
const name = this.getSeriesName(series, segment.logicalIndex);
|
|
140850
|
+
const color2 = this.resolveSeriesColor(series, segment.logicalIndex, isDark);
|
|
140766
140851
|
const formatted = this.yAxisFormatter(data.value);
|
|
140767
|
-
html8 += `<div style="display:flex;align-items:center;gap:8px;margin:${
|
|
140852
|
+
html8 += `<div style="display:flex;align-items:center;gap:8px;margin:${marginTop} 0;">
|
|
140768
140853
|
<span style="display:inline-block;width:10px;height:10px;background:${color2};border-radius:2px;"></span>
|
|
140769
140854
|
<span style="font-weight:500;">${name}:</span>
|
|
140770
140855
|
<span style="margin-left:auto;font-weight:600;">${formatted}</span>
|
|
140771
140856
|
</div>`;
|
|
140772
140857
|
}
|
|
140773
|
-
idx++;
|
|
140774
140858
|
}
|
|
140775
140859
|
if (!hasData) {
|
|
140776
140860
|
this.tooltipEl.style.display = "none";
|
|
@@ -140887,69 +140971,65 @@ var _DeesChartArea = class _DeesChartArea extends (_a35 = DeesElement, _chart_de
|
|
|
140887
140971
|
try {
|
|
140888
140972
|
void animate;
|
|
140889
140973
|
const canonicalSeries = this.getCanonicalChartSeries(newSeries);
|
|
140974
|
+
const renderedSegments = this.getRenderedSegments(canonicalSeries);
|
|
140890
140975
|
this.internalChartData = canonicalSeries;
|
|
140891
140976
|
const renderedKeys = [...this.seriesApis.keys()];
|
|
140892
|
-
const canonicalKeys =
|
|
140977
|
+
const canonicalKeys = renderedSegments.map((segment) => segment.key);
|
|
140893
140978
|
if (!haveSameSeriesLayout(renderedKeys, canonicalKeys)) {
|
|
140894
140979
|
this.clearCrosshairForDataReplacement();
|
|
140895
|
-
this.recreateSeries(canonicalSeries);
|
|
140980
|
+
this.recreateSeries(canonicalSeries, renderedSegments);
|
|
140896
140981
|
this.updateSeriesPresentation(canonicalSeries);
|
|
140897
140982
|
return;
|
|
140898
140983
|
}
|
|
140984
|
+
this.renderedSegments = renderedSegments;
|
|
140899
140985
|
if (!this.realtimeMode || this.rollingWindow <= 0) {
|
|
140900
140986
|
this.clearCrosshairForDataReplacement();
|
|
140901
|
-
|
|
140902
|
-
this.seriesApis.get(
|
|
140987
|
+
renderedSegments.forEach((segment) => {
|
|
140988
|
+
this.seriesApis.get(segment.key).setData(segment.data);
|
|
140989
|
+
this.rememberRenderedSeriesData(segment.key, segment.data);
|
|
140903
140990
|
});
|
|
140904
140991
|
this.pendingRealtimePrune = false;
|
|
140905
140992
|
this.updateSeriesPresentation(canonicalSeries);
|
|
140906
140993
|
return;
|
|
140907
140994
|
}
|
|
140908
|
-
const plannedUpdates =
|
|
140909
|
-
const api = this.seriesApis.get(
|
|
140910
|
-
const canonicalData =
|
|
140995
|
+
const plannedUpdates = renderedSegments.map((segment) => {
|
|
140996
|
+
const api = this.seriesApis.get(segment.key);
|
|
140997
|
+
const canonicalData = segment.data.map((point4) => "value" in point4 ? { time: point4.time, value: point4.value } : { time: point4.time });
|
|
140911
140998
|
return {
|
|
140999
|
+
key: segment.key,
|
|
140912
141000
|
api,
|
|
140913
141001
|
canonicalData,
|
|
140914
|
-
plan: planRealtimeChartUpdates(this.getRenderedSeriesData(
|
|
141002
|
+
plan: planRealtimeChartUpdates(this.getRenderedSeriesData(segment.key), canonicalData)
|
|
140915
141003
|
};
|
|
140916
141004
|
});
|
|
140917
141005
|
if (plannedUpdates.some(({ plan }) => plan.replacementRequired)) {
|
|
140918
141006
|
this.clearCrosshairForDataReplacement();
|
|
140919
|
-
for (const { api, canonicalData } of plannedUpdates) {
|
|
140920
|
-
api.setData(canonicalData.map((point4) => (
|
|
140921
|
-
|
|
140922
|
-
value: point4.value
|
|
140923
|
-
})));
|
|
141007
|
+
for (const { key: key2, api, canonicalData } of plannedUpdates) {
|
|
141008
|
+
api.setData(canonicalData.map((point4) => this.toLcPoint(point4)));
|
|
141009
|
+
this.renderedSeriesData.set(key2, [...canonicalData]);
|
|
140924
141010
|
}
|
|
140925
141011
|
this.pendingRealtimePrune = false;
|
|
140926
141012
|
} else {
|
|
140927
|
-
for (const { api, plan } of plannedUpdates) {
|
|
141013
|
+
for (const { key: key2, api, plan } of plannedUpdates) {
|
|
140928
141014
|
for (const update of plan.updates) {
|
|
140929
|
-
api.update(
|
|
140930
|
-
|
|
140931
|
-
value: update.point.value
|
|
140932
|
-
}, update.historicalUpdate);
|
|
141015
|
+
api.update(this.toLcPoint(update.point), update.historicalUpdate);
|
|
141016
|
+
this.rememberIncrementalUpdate(key2, update.point);
|
|
140933
141017
|
}
|
|
140934
141018
|
}
|
|
140935
141019
|
const pruneRequired = plannedUpdates.some(({ plan }) => plan.pruneRequired);
|
|
140936
141020
|
const pruneRecommended = plannedUpdates.some(({ plan }) => plan.pruneRecommended);
|
|
140937
141021
|
if (pruneRequired) {
|
|
140938
141022
|
this.clearCrosshairForDataReplacement();
|
|
140939
|
-
for (const { api, canonicalData } of plannedUpdates) {
|
|
140940
|
-
api.setData(canonicalData.map((point4) => (
|
|
140941
|
-
|
|
140942
|
-
value: point4.value
|
|
140943
|
-
})));
|
|
141023
|
+
for (const { key: key2, api, canonicalData } of plannedUpdates) {
|
|
141024
|
+
api.setData(canonicalData.map((point4) => this.toLcPoint(point4)));
|
|
141025
|
+
this.renderedSeriesData.set(key2, [...canonicalData]);
|
|
140944
141026
|
}
|
|
140945
141027
|
} else if (pruneRecommended && this.crosshairActive) {
|
|
140946
141028
|
this.pendingRealtimePrune = true;
|
|
140947
141029
|
} else if (pruneRecommended) {
|
|
140948
|
-
for (const { api, canonicalData } of plannedUpdates) {
|
|
140949
|
-
api.setData(canonicalData.map((point4) => (
|
|
140950
|
-
|
|
140951
|
-
value: point4.value
|
|
140952
|
-
})));
|
|
141030
|
+
for (const { key: key2, api, canonicalData } of plannedUpdates) {
|
|
141031
|
+
api.setData(canonicalData.map((point4) => this.toLcPoint(point4)));
|
|
141032
|
+
this.renderedSeriesData.set(key2, [...canonicalData]);
|
|
140953
141033
|
}
|
|
140954
141034
|
this.pendingRealtimePrune = false;
|
|
140955
141035
|
}
|
|
@@ -226370,7 +226450,7 @@ init_group_runtime();
|
|
|
226370
226450
|
// ts_web/00_commitinfo_data.ts
|
|
226371
226451
|
var commitinfo = {
|
|
226372
226452
|
name: "@design.estate/dees-catalog",
|
|
226373
|
-
version: "
|
|
226453
|
+
version: "13.0.0",
|
|
226374
226454
|
description: "A comprehensive library that provides dynamic web components for building sophisticated and modern web applications using JavaScript and TypeScript."
|
|
226375
226455
|
};
|
|
226376
226456
|
|