@synnaxlabs/pluto 0.21.8 → 0.21.9
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/{Center-hbwH7rg9.js → Center-BK9Rcaa0.js} +2 -2
- package/dist/{Center-hbwH7rg9.js.map → Center-BK9Rcaa0.js.map} +1 -1
- package/dist/{Center-5NJ61qfA.cjs → Center-Cc_rR5pQ.cjs} +2 -2
- package/dist/{Center-5NJ61qfA.cjs.map → Center-Cc_rR5pQ.cjs.map} +1 -1
- package/dist/{Keyboard-DaFraUsQ.cjs → Keyboard-Byx8rGZt.cjs} +3 -3
- package/dist/{Keyboard-DaFraUsQ.cjs.map → Keyboard-Byx8rGZt.cjs.map} +1 -1
- package/dist/{Keyboard-nDIAR7Rj.js → Keyboard-D31SwhYT.js} +3 -3
- package/dist/{Keyboard-nDIAR7Rj.js.map → Keyboard-D31SwhYT.js.map} +1 -1
- package/dist/{LinePlot-BZDm4uxJ.cjs → LinePlot-Bnb8Ufob.cjs} +96 -65
- package/dist/LinePlot-Bnb8Ufob.cjs.map +1 -0
- package/dist/{LinePlot-tOiSUMjC.js → LinePlot-KYwy1D7H.js} +281 -250
- package/dist/LinePlot-KYwy1D7H.js.map +1 -0
- package/dist/{Link-BdWFvK8v.cjs → Link-Bq38h1dw.cjs} +2 -2
- package/dist/{Link-BdWFvK8v.cjs.map → Link-Bq38h1dw.cjs.map} +1 -1
- package/dist/{Link-d3CXVSaO.js → Link-DQKdkwWL.js} +2 -2
- package/dist/{Link-d3CXVSaO.js.map → Link-DQKdkwWL.js.map} +1 -1
- package/dist/{List-DcsWFiLT.js → List-BmP_se57.js} +3 -3
- package/dist/{List-DcsWFiLT.js.map → List-BmP_se57.js.map} +1 -1
- package/dist/{List-PlMTfEHi.cjs → List-BnB-C5vQ.cjs} +3 -3
- package/dist/{List-PlMTfEHi.cjs.map → List-BnB-C5vQ.cjs.map} +1 -1
- package/dist/{Toggle-C6Z8WPT3.cjs → Toggle-D3iCEbO1.cjs} +46 -46
- package/dist/{Toggle-C6Z8WPT3.cjs.map → Toggle-D3iCEbO1.cjs.map} +1 -1
- package/dist/{Toggle-DGLgYCOX.js → Toggle-bT5RpwfA.js} +399 -399
- package/dist/{Toggle-DGLgYCOX.js.map → Toggle-bT5RpwfA.js.map} +1 -1
- package/dist/{Video-DFtnAOYY.cjs → Video-B4sma9fk.cjs} +2 -2
- package/dist/{Video-DFtnAOYY.cjs.map → Video-B4sma9fk.cjs.map} +1 -1
- package/dist/{Video-SGhKphYR.js → Video-Cp6XjjOK.js} +2 -2
- package/dist/{Video-SGhKphYR.js.map → Video-Cp6XjjOK.js.map} +1 -1
- package/dist/{aggregator-BgImZc4o.js → aggregator-B8fg7W2s.js} +106 -106
- package/dist/aggregator-B8fg7W2s.js.map +1 -0
- package/dist/{aggregator-BpfMBUD1.cjs → aggregator-Bh2Kyzkg.cjs} +100 -100
- package/dist/aggregator-Bh2Kyzkg.cjs.map +1 -0
- package/dist/align.cjs +1 -1
- package/dist/align.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/{color-DV-YGUvp.js → color-CjdRh-aN.js} +2 -2
- package/dist/{color-DV-YGUvp.js.map → color-CjdRh-aN.js.map} +1 -1
- package/dist/{color-BVVyrgRF.cjs → color-DBNbbjJy.cjs} +2 -2
- package/dist/{color-BVVyrgRF.cjs.map → color-DBNbbjJy.cjs.map} +1 -1
- package/dist/color.cjs +1 -1
- package/dist/color.js +1 -1
- package/dist/{css-Pf9qxhQ4.cjs → css-Ci8WUD5E.cjs} +112 -108
- package/dist/css-Ci8WUD5E.cjs.map +1 -0
- package/dist/{css-DoalWJF6.js → css-DKKmdhSr.js} +114 -110
- package/dist/css-DKKmdhSr.js.map +1 -0
- package/dist/css.cjs +2 -2
- package/dist/css.js +2 -2
- package/dist/dropdown.cjs +1 -1
- package/dist/dropdown.js +1 -1
- package/dist/ether.cjs +3 -3
- package/dist/ether.js +5 -5
- package/dist/{external-Cu6T11fi.cjs → external-9_cqFQy3.cjs} +6 -6
- package/dist/{external-Cu6T11fi.cjs.map → external-9_cqFQy3.cjs.map} +1 -1
- package/dist/{external-Blx0rtt2.cjs → external-B-zN2e5z.cjs} +6 -6
- package/dist/{external-Blx0rtt2.cjs.map → external-B-zN2e5z.cjs.map} +1 -1
- package/dist/{external-DeheWVb-.js → external-BM82B8W2.js} +6 -6
- package/dist/{external-DeheWVb-.js.map → external-BM82B8W2.js.map} +1 -1
- package/dist/{external-96EinZfY.js → external-BYqTC99W.js} +3 -3
- package/dist/external-BYqTC99W.js.map +1 -0
- package/dist/{external-5przQjJD.js → external-BfZYUV3z.js} +11 -11
- package/dist/{external-5przQjJD.js.map → external-BfZYUV3z.js.map} +1 -1
- package/dist/{external-SxB9IH0p.js → external-BpqCp_M1.js} +2 -2
- package/dist/external-BpqCp_M1.js.map +1 -0
- package/dist/{external-C6GmnG49.js → external-BrW40HJx.js} +6 -6
- package/dist/{external-C6GmnG49.js.map → external-BrW40HJx.js.map} +1 -1
- package/dist/{external-1osPryUV.js → external-CAOQcoqL.js} +5 -5
- package/dist/{external-1osPryUV.js.map → external-CAOQcoqL.js.map} +1 -1
- package/dist/{external-D8dWmF4U.cjs → external-CIVsFXOp.cjs} +2 -2
- package/dist/external-CIVsFXOp.cjs.map +1 -0
- package/dist/{external-BAdU6u03.js → external-CnNdgPsB.js} +5 -5
- package/dist/{external-BAdU6u03.js.map → external-CnNdgPsB.js.map} +1 -1
- package/dist/{external-DiFhWWS-.js → external-CwjCCHPi.js} +7 -7
- package/dist/{external-DiFhWWS-.js.map → external-CwjCCHPi.js.map} +1 -1
- package/dist/{external-DarqsFzT.js → external-DNHMAfGi.js} +5 -5
- package/dist/{external-DarqsFzT.js.map → external-DNHMAfGi.js.map} +1 -1
- package/dist/{external-0PM7JrzG.cjs → external-DVQ2SRoH.cjs} +5 -5
- package/dist/{external-0PM7JrzG.cjs.map → external-DVQ2SRoH.cjs.map} +1 -1
- package/dist/{external-16K8slq8.cjs → external-D_yXh8rn.cjs} +11 -11
- package/dist/{external-16K8slq8.cjs.map → external-D_yXh8rn.cjs.map} +1 -1
- package/dist/{external-CPx8XA9-.cjs → external-Df0D1YYb.cjs} +7 -7
- package/dist/{external-CPx8XA9-.cjs.map → external-Df0D1YYb.cjs.map} +1 -1
- package/dist/{external-DvGqQHd8.cjs → external-DhPBdJpR.cjs} +3 -3
- package/dist/external-DhPBdJpR.cjs.map +1 -0
- package/dist/{external-D7XrxOVE.cjs → external-DhiN6pEk.cjs} +4 -4
- package/dist/{external-D7XrxOVE.cjs.map → external-DhiN6pEk.cjs.map} +1 -1
- package/dist/{external-CsO29OsF.cjs → external-DjYXzP7v.cjs} +7 -7
- package/dist/{external-CsO29OsF.cjs.map → external-DjYXzP7v.cjs.map} +1 -1
- package/dist/{external-B3ly2-jy.js → external-FWIwgLzc.js} +7 -7
- package/dist/{external-B3ly2-jy.js.map → external-FWIwgLzc.js.map} +1 -1
- package/dist/{external-B0z7uXZV.cjs → external-Iv2mRce8.cjs} +5 -5
- package/dist/{external-B0z7uXZV.cjs.map → external-Iv2mRce8.cjs.map} +1 -1
- package/dist/{external-CzJYG1hX.cjs → external-P6zP6dBA.cjs} +3 -3
- package/dist/external-P6zP6dBA.cjs.map +1 -0
- package/dist/{external-D4ur_D1S.cjs → external-d-vI8EHK.cjs} +5 -5
- package/dist/{external-D4ur_D1S.cjs.map → external-d-vI8EHK.cjs.map} +1 -1
- package/dist/{external-DQkw1ko0.js → external-giUMrk8w.js} +4 -4
- package/dist/{external-DQkw1ko0.js.map → external-giUMrk8w.js.map} +1 -1
- package/dist/{external-CgMwmBnF.js → external-zG96smqq.js} +3 -3
- package/dist/external-zG96smqq.js.map +1 -0
- package/dist/header.cjs +1 -1
- package/dist/header.js +1 -1
- package/dist/index.cjs +30 -30
- package/dist/index.js +55 -55
- package/dist/index.js.map +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/src/telem/client/cache/cache.d.ts +3 -8
- package/dist/src/telem/client/cache/cache.d.ts.map +1 -1
- package/dist/src/telem/client/cache/dynamic.d.ts +13 -3
- package/dist/src/telem/client/cache/dynamic.d.ts.map +1 -1
- package/dist/src/telem/client/client.d.ts +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/text.cjs +2 -2
- package/dist/text.js +2 -2
- package/dist/theming.cjs +2 -2
- package/dist/theming.js +2 -2
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/triggers.cjs +1 -1
- package/dist/triggers.js +1 -1
- package/dist/video.cjs +1 -1
- package/dist/video.js +1 -1
- package/package.json +2 -2
- package/dist/LinePlot-BZDm4uxJ.cjs.map +0 -1
- package/dist/LinePlot-tOiSUMjC.js.map +0 -1
- package/dist/aggregator-BgImZc4o.js.map +0 -1
- package/dist/aggregator-BpfMBUD1.cjs.map +0 -1
- package/dist/css-DoalWJF6.js.map +0 -1
- package/dist/css-Pf9qxhQ4.cjs.map +0 -1
- package/dist/external-96EinZfY.js.map +0 -1
- package/dist/external-CgMwmBnF.js.map +0 -1
- package/dist/external-CzJYG1hX.cjs.map +0 -1
- package/dist/external-D8dWmF4U.cjs.map +0 -1
- package/dist/external-DvGqQHd8.cjs.map +0 -1
- package/dist/external-SxB9IH0p.js.map +0 -1
|
@@ -6,9 +6,9 @@ var __publicField = (obj, key, value2) => {
|
|
|
6
6
|
return value2;
|
|
7
7
|
};
|
|
8
8
|
var _a, _b, _c, _d, _e;
|
|
9
|
-
const aggregator = require("./aggregator-
|
|
9
|
+
const aggregator = require("./aggregator-Bh2Kyzkg.cjs");
|
|
10
10
|
const zod = require("zod");
|
|
11
|
-
const css = require("./css-
|
|
11
|
+
const css = require("./css-Ci8WUD5E.cjs");
|
|
12
12
|
const React = require("react");
|
|
13
13
|
require("react-dom");
|
|
14
14
|
const a = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
@@ -355,7 +355,7 @@ class StatusSource extends Noop {
|
|
|
355
355
|
key: "noop",
|
|
356
356
|
variant: "disabled",
|
|
357
357
|
message: "unknown",
|
|
358
|
-
time: aggregator.
|
|
358
|
+
time: aggregator.m.now()
|
|
359
359
|
};
|
|
360
360
|
}
|
|
361
361
|
}
|
|
@@ -625,11 +625,11 @@ class ChannelData extends AbstractSource {
|
|
|
625
625
|
async value() {
|
|
626
626
|
const { timeRange, channel, useIndexOfChannel: indexOfChannel } = this.props;
|
|
627
627
|
if (timeRange.isZero || channel === 0)
|
|
628
|
-
return [css.
|
|
628
|
+
return [css.C.ZERO, []];
|
|
629
629
|
const chan = await fetchChannelProperties(this.client, channel, indexOfChannel);
|
|
630
630
|
if (!this.valid)
|
|
631
631
|
await this.readFixed(chan.key);
|
|
632
|
-
let b = css.
|
|
632
|
+
let b = css.C.max(this.data.map((d2) => d2.bounds));
|
|
633
633
|
if (chan.dataType.equals(aggregator.g.TIMESTAMP))
|
|
634
634
|
b = {
|
|
635
635
|
upper: Math.min(b.upper, Number(this.props.timeRange.end.valueOf())),
|
|
@@ -649,8 +649,8 @@ __publicField(ChannelData, "TYPE", "series-source");
|
|
|
649
649
|
const streamChannelDataPropsZ = zod.z.object({
|
|
650
650
|
channel: zod.z.number().or(zod.z.string()),
|
|
651
651
|
useIndexOfChannel: zod.z.boolean().optional().default(false),
|
|
652
|
-
timeSpan: aggregator.
|
|
653
|
-
keepFor: aggregator.
|
|
652
|
+
timeSpan: aggregator.w.z,
|
|
653
|
+
keepFor: aggregator.w.z.optional()
|
|
654
654
|
});
|
|
655
655
|
class StreamChannelData extends AbstractSource {
|
|
656
656
|
constructor(client, props) {
|
|
@@ -665,12 +665,12 @@ class StreamChannelData extends AbstractSource {
|
|
|
665
665
|
async value() {
|
|
666
666
|
const { channel, useIndexOfChannel, timeSpan } = this.props;
|
|
667
667
|
if (channel === 0)
|
|
668
|
-
return [css.
|
|
669
|
-
const now2 = aggregator.
|
|
668
|
+
return [css.C.ZERO, []];
|
|
669
|
+
const now2 = aggregator.m.now();
|
|
670
670
|
const ch = await fetchChannelProperties(this.client, channel, useIndexOfChannel);
|
|
671
671
|
if (!this.valid)
|
|
672
672
|
await this.read(ch.key);
|
|
673
|
-
let b = css.
|
|
673
|
+
let b = css.C.max(
|
|
674
674
|
this.data.filter((d2) => d2.timeRange.end.after(now2.sub(timeSpan))).map((d2) => d2.bounds)
|
|
675
675
|
);
|
|
676
676
|
if (ch.dataType.equals(aggregator.g.TIMESTAMP))
|
|
@@ -681,7 +681,7 @@ class StreamChannelData extends AbstractSource {
|
|
|
681
681
|
return [b, this.data];
|
|
682
682
|
}
|
|
683
683
|
async read(key) {
|
|
684
|
-
const tr = aggregator.
|
|
684
|
+
const tr = aggregator.m.now().spanRange(-this.props.timeSpan);
|
|
685
685
|
const res = await this.client.read(tr, [key]);
|
|
686
686
|
const newData = res[key].data;
|
|
687
687
|
newData.forEach((d2) => d2.acquire());
|
|
@@ -702,7 +702,7 @@ class StreamChannelData extends AbstractSource {
|
|
|
702
702
|
this.stopStreaming = await this.client.stream(handler, [key]);
|
|
703
703
|
}
|
|
704
704
|
gcOutOfRangeData() {
|
|
705
|
-
const threshold = aggregator.
|
|
705
|
+
const threshold = aggregator.m.now().sub(this.props.keepFor ?? this.props.timeSpan);
|
|
706
706
|
const toGC = this.data.findIndex((d2) => d2.timeRange.end.before(threshold));
|
|
707
707
|
if (toGC === -1)
|
|
708
708
|
return;
|
|
@@ -791,7 +791,7 @@ class FixedSeries extends AbstractSource {
|
|
|
791
791
|
);
|
|
792
792
|
}
|
|
793
793
|
async value() {
|
|
794
|
-
const b = css.
|
|
794
|
+
const b = css.C.max(this.data.map((x) => x.bounds));
|
|
795
795
|
return [b, this.data];
|
|
796
796
|
}
|
|
797
797
|
}
|
|
@@ -832,7 +832,7 @@ class IterativeSeries extends AbstractSource {
|
|
|
832
832
|
};
|
|
833
833
|
return [b2, d2];
|
|
834
834
|
}
|
|
835
|
-
const b = css.
|
|
835
|
+
const b = css.C.max(d2.map((x) => x.bounds));
|
|
836
836
|
return [b, d2];
|
|
837
837
|
}
|
|
838
838
|
start(rate) {
|
|
@@ -940,7 +940,7 @@ const _SetPoint = class _SetPoint extends UnarySinkTransformer {
|
|
|
940
940
|
__publicField(_SetPoint, "TYPE", "boolean-numeric-converter-sink");
|
|
941
941
|
__publicField(_SetPoint, "propsZ", setpointProps);
|
|
942
942
|
let SetPoint = _SetPoint;
|
|
943
|
-
const withinBoundsProps = zod.z.object({ trueBound: css.
|
|
943
|
+
const withinBoundsProps = zod.z.object({ trueBound: css.C.bounds });
|
|
944
944
|
const withinBounds = (props) => ({
|
|
945
945
|
props,
|
|
946
946
|
type: WithinBounds.TYPE,
|
|
@@ -954,12 +954,12 @@ const _WithinBounds = class _WithinBounds extends UnarySourceTransformer {
|
|
|
954
954
|
__publicField(this, "curr", null);
|
|
955
955
|
}
|
|
956
956
|
shouldNotify(value2) {
|
|
957
|
-
const shouldNotify = css.
|
|
958
|
-
this.curr = css.
|
|
957
|
+
const shouldNotify = css.C.contains(this.props.trueBound, value2) !== this.curr;
|
|
958
|
+
this.curr = css.C.contains(this.props.trueBound, value2);
|
|
959
959
|
return shouldNotify;
|
|
960
960
|
}
|
|
961
961
|
transform(value2) {
|
|
962
|
-
this.curr = css.
|
|
962
|
+
this.curr = css.C.contains(this.props.trueBound, value2);
|
|
963
963
|
return this.curr;
|
|
964
964
|
}
|
|
965
965
|
};
|
|
@@ -1212,7 +1212,7 @@ const zeroCacheGCMetrics = () => ({
|
|
|
1212
1212
|
});
|
|
1213
1213
|
const DEFAULT_STATIC_PROPS = {
|
|
1214
1214
|
instrumentation: aggregator.g$1.NOOP,
|
|
1215
|
-
staleEntryThreshold: aggregator.
|
|
1215
|
+
staleEntryThreshold: aggregator.w.seconds(20)
|
|
1216
1216
|
};
|
|
1217
1217
|
class Static {
|
|
1218
1218
|
constructor(props) {
|
|
@@ -1265,7 +1265,7 @@ class Static {
|
|
|
1265
1265
|
gc() {
|
|
1266
1266
|
const res = zeroCacheGCMetrics();
|
|
1267
1267
|
const newData = this.data.filter((s) => {
|
|
1268
|
-
const shouldKeep = s.data.refCount === 0 && aggregator.
|
|
1268
|
+
const shouldKeep = s.data.refCount === 0 && aggregator.m.since(s.addedAt).lessThan(this.props.staleEntryThreshold);
|
|
1269
1269
|
if (!shouldKeep)
|
|
1270
1270
|
res.purgedBytes = res.purgedBytes.add(s.data.byteCapacity);
|
|
1271
1271
|
return shouldKeep;
|
|
@@ -1286,7 +1286,7 @@ class Static {
|
|
|
1286
1286
|
} = this.props;
|
|
1287
1287
|
if (series.length === 0)
|
|
1288
1288
|
return;
|
|
1289
|
-
const insertionPlan = css.
|
|
1289
|
+
const insertionPlan = css.C.buildInsertionPlan(
|
|
1290
1290
|
this.data.map((s) => s.data.alignmentBounds),
|
|
1291
1291
|
series.alignmentBounds
|
|
1292
1292
|
);
|
|
@@ -1301,7 +1301,7 @@ class Static {
|
|
|
1301
1301
|
return;
|
|
1302
1302
|
this.data.splice(insertInto, deleteInBetween, {
|
|
1303
1303
|
data: series,
|
|
1304
|
-
addedAt: aggregator.
|
|
1304
|
+
addedAt: aggregator.m.now()
|
|
1305
1305
|
});
|
|
1306
1306
|
}
|
|
1307
1307
|
checkIntegrity(write) {
|
|
@@ -1313,7 +1313,7 @@ class Static {
|
|
|
1313
1313
|
return allBounds.some((b2, j) => {
|
|
1314
1314
|
if (i2 === j)
|
|
1315
1315
|
return false;
|
|
1316
|
-
const ok = css.
|
|
1316
|
+
const ok = css.C.overlapsWith(b, b2);
|
|
1317
1317
|
return ok;
|
|
1318
1318
|
});
|
|
1319
1319
|
});
|
|
@@ -1326,6 +1326,10 @@ class Static {
|
|
|
1326
1326
|
}
|
|
1327
1327
|
}
|
|
1328
1328
|
}
|
|
1329
|
+
const MIN_SIZE = 100;
|
|
1330
|
+
const MAX_SIZE = 1e6;
|
|
1331
|
+
const DEF_SIZE = 1e4;
|
|
1332
|
+
const MAX_DEF_WRITES = 100;
|
|
1329
1333
|
class Dynamic {
|
|
1330
1334
|
/**
|
|
1331
1335
|
* @constructor
|
|
@@ -1338,10 +1342,17 @@ class Dynamic {
|
|
|
1338
1342
|
__publicField(this, "counter", 0);
|
|
1339
1343
|
/** Current buffer */
|
|
1340
1344
|
__publicField(this, "buffer");
|
|
1345
|
+
__publicField(this, "avgRate", 0);
|
|
1346
|
+
__publicField(this, "timeOfLastWrite");
|
|
1347
|
+
__publicField(this, "totalWrites", 0);
|
|
1348
|
+
__publicField(this, "now", () => aggregator.m.now());
|
|
1341
1349
|
this.props = props;
|
|
1342
1350
|
this.buffer = null;
|
|
1351
|
+
if (props.testingNow != null)
|
|
1352
|
+
this.now = props.testingNow;
|
|
1353
|
+
this.timeOfLastWrite = this.now();
|
|
1343
1354
|
}
|
|
1344
|
-
/** @returns the number of samples
|
|
1355
|
+
/** @returns the number of samples currently held in the cache. */
|
|
1345
1356
|
get length() {
|
|
1346
1357
|
var _a2;
|
|
1347
1358
|
return ((_a2 = this.buffer) == null ? void 0 : _a2.length) ?? 0;
|
|
@@ -1371,7 +1382,7 @@ class Dynamic {
|
|
|
1371
1382
|
return aggregator.N.alloc({
|
|
1372
1383
|
capacity,
|
|
1373
1384
|
dataType: aggregator.g.FLOAT32,
|
|
1374
|
-
timeRange: start2.range(aggregator.
|
|
1385
|
+
timeRange: start2.range(aggregator.m.MAX),
|
|
1375
1386
|
sampleOffset: this.props.dataType.equals(aggregator.g.TIMESTAMP) ? BigInt(start2.valueOf()) : 0,
|
|
1376
1387
|
glBufferUsage: "dynamic",
|
|
1377
1388
|
alignment,
|
|
@@ -1379,15 +1390,15 @@ class Dynamic {
|
|
|
1379
1390
|
});
|
|
1380
1391
|
}
|
|
1381
1392
|
_write(series) {
|
|
1382
|
-
const
|
|
1393
|
+
const cap = this.nextBufferSize();
|
|
1383
1394
|
const res = { flushed: [], allocated: [] };
|
|
1384
1395
|
if (this.buffer == null) {
|
|
1385
|
-
this.buffer = this.allocate(cap, series.alignment,
|
|
1396
|
+
this.buffer = this.allocate(cap, series.alignment, this.now());
|
|
1386
1397
|
res.allocated.push(this.buffer);
|
|
1387
1398
|
} else if (Math.abs(
|
|
1388
1399
|
Number(this.buffer.alignment + BigInt(this.buffer.length) - series.alignment)
|
|
1389
1400
|
) > 1) {
|
|
1390
|
-
const now22 =
|
|
1401
|
+
const now22 = this.now();
|
|
1391
1402
|
this.buffer.timeRange.end = now22;
|
|
1392
1403
|
res.flushed.push(this.buffer);
|
|
1393
1404
|
this.buffer = this.allocate(cap, series.alignment, now22);
|
|
@@ -1395,9 +1406,11 @@ class Dynamic {
|
|
|
1395
1406
|
}
|
|
1396
1407
|
const converted = convertSeriesFloat32(series, this.buffer.sampleOffset);
|
|
1397
1408
|
const amountWritten = this.buffer.write(converted);
|
|
1398
|
-
if (amountWritten === series.length)
|
|
1409
|
+
if (amountWritten === series.length) {
|
|
1410
|
+
this.updateAvgRate(series);
|
|
1399
1411
|
return res;
|
|
1400
|
-
|
|
1412
|
+
}
|
|
1413
|
+
const now2 = this.now();
|
|
1401
1414
|
this.buffer.timeRange.end = now2;
|
|
1402
1415
|
res.flushed.push(this.buffer);
|
|
1403
1416
|
this.buffer = this.allocate(cap, series.alignment + BigInt(amountWritten), now2);
|
|
@@ -1407,6 +1420,24 @@ class Dynamic {
|
|
|
1407
1420
|
res.allocated.push(...nextRes.allocated);
|
|
1408
1421
|
return res;
|
|
1409
1422
|
}
|
|
1423
|
+
updateAvgRate(series) {
|
|
1424
|
+
if (typeof this.props.dynamicBufferSize === "number")
|
|
1425
|
+
return;
|
|
1426
|
+
const newRate = series.length / this.now().span(this.timeOfLastWrite).seconds;
|
|
1427
|
+
if (this.totalWrites > 0 && isFinite(newRate) && newRate > 0)
|
|
1428
|
+
this.avgRate = (this.avgRate * (this.totalWrites - 1) + newRate) / this.totalWrites;
|
|
1429
|
+
this.totalWrites++;
|
|
1430
|
+
this.timeOfLastWrite = this.now();
|
|
1431
|
+
}
|
|
1432
|
+
nextBufferSize() {
|
|
1433
|
+
const { dynamicBufferSize } = this.props;
|
|
1434
|
+
if (typeof dynamicBufferSize === "number")
|
|
1435
|
+
return dynamicBufferSize;
|
|
1436
|
+
if (this.totalWrites < MAX_DEF_WRITES)
|
|
1437
|
+
return DEF_SIZE;
|
|
1438
|
+
const size = css.L.roundToNearestMagnitude(this.avgRate * dynamicBufferSize.seconds);
|
|
1439
|
+
return Math.round(Math.max(Math.min(size, MAX_SIZE), MIN_SIZE));
|
|
1440
|
+
}
|
|
1410
1441
|
/**
|
|
1411
1442
|
* Closes the cache and releases all resources associated with it. After close()
|
|
1412
1443
|
* is called, the cache should not be used again.
|
|
@@ -1476,7 +1507,7 @@ class Unary {
|
|
|
1476
1507
|
this.static.close();
|
|
1477
1508
|
}
|
|
1478
1509
|
}
|
|
1479
|
-
const CACHE_BUFFER_SIZE =
|
|
1510
|
+
const CACHE_BUFFER_SIZE = aggregator.X.seconds(60);
|
|
1480
1511
|
class Cache {
|
|
1481
1512
|
constructor(props) {
|
|
1482
1513
|
__publicField(this, "props");
|
|
@@ -1564,7 +1595,7 @@ class Reader {
|
|
|
1564
1595
|
});
|
|
1565
1596
|
this.props = {
|
|
1566
1597
|
instrumentation: aggregator.g$1.NOOP,
|
|
1567
|
-
batchDebounce: aggregator.
|
|
1598
|
+
batchDebounce: aggregator.w.milliseconds(50),
|
|
1568
1599
|
...props
|
|
1569
1600
|
};
|
|
1570
1601
|
this.debouncedRead = aggregator.o$1(() => {
|
|
@@ -1601,7 +1632,7 @@ class Reader {
|
|
|
1601
1632
|
tr: tr.toPrettyString(),
|
|
1602
1633
|
channels,
|
|
1603
1634
|
responses: responseDigests(Object.values(responses)),
|
|
1604
|
-
time: aggregator.
|
|
1635
|
+
time: aggregator.w.milliseconds(performance.now() - start2).toString()
|
|
1605
1636
|
}));
|
|
1606
1637
|
return responses;
|
|
1607
1638
|
}
|
|
@@ -1635,7 +1666,7 @@ class Reader {
|
|
|
1635
1666
|
tr: tr.toPrettyString(),
|
|
1636
1667
|
channels,
|
|
1637
1668
|
responses: responseDigests(Object.values(responses)),
|
|
1638
|
-
time: aggregator.
|
|
1669
|
+
time: aggregator.w.milliseconds(performance.now() - start2).toString()
|
|
1639
1670
|
}));
|
|
1640
1671
|
return responses;
|
|
1641
1672
|
}
|
|
@@ -1652,7 +1683,7 @@ class Reader {
|
|
|
1652
1683
|
requests.forEach((_, k) => {
|
|
1653
1684
|
const [tr, keys] = k;
|
|
1654
1685
|
const groupWith = compressedToFetch.find(
|
|
1655
|
-
([r]) => r.start.span(tr.start).lessThan(aggregator.
|
|
1686
|
+
([r]) => r.start.span(tr.start).lessThan(aggregator.w.milliseconds(5)) && r.end.span(tr.end).lessThan(aggregator.w.milliseconds(5))
|
|
1656
1687
|
);
|
|
1657
1688
|
if (groupWith == null)
|
|
1658
1689
|
compressedToFetch.push([tr, keys]);
|
|
@@ -2601,8 +2632,8 @@ class Loop {
|
|
|
2601
2632
|
}
|
|
2602
2633
|
}
|
|
2603
2634
|
const end = performance.now();
|
|
2604
|
-
const span = aggregator.
|
|
2605
|
-
if (span.greaterThan(aggregator.
|
|
2635
|
+
const span = aggregator.w.milliseconds(end - start2);
|
|
2636
|
+
if (span.greaterThan(aggregator.w.milliseconds(25))) {
|
|
2606
2637
|
console.warn(
|
|
2607
2638
|
`Render loop for ${this.requests.size} took longer than 16ms to execute: ${span.milliseconds}`
|
|
2608
2639
|
);
|
|
@@ -2831,7 +2862,7 @@ const safelyGetDataValue = (series, index, data) => {
|
|
|
2831
2862
|
return NaN;
|
|
2832
2863
|
return Number(data[series].at(index));
|
|
2833
2864
|
};
|
|
2834
|
-
const DEFAULT_OVERLAP_THRESHOLD = aggregator.
|
|
2865
|
+
const DEFAULT_OVERLAP_THRESHOLD = aggregator.w.milliseconds(2);
|
|
2835
2866
|
({
|
|
2836
2867
|
key: "",
|
|
2837
2868
|
position: css.q.NAN,
|
|
@@ -2983,7 +3014,7 @@ class Line extends aggregator.Leaf {
|
|
|
2983
3014
|
result.value.x = safelyGetDataValue(series, index, xData);
|
|
2984
3015
|
const [, yData] = await yTelem.value();
|
|
2985
3016
|
const ySeries = yData.find(
|
|
2986
|
-
(ys) => css.
|
|
3017
|
+
(ys) => css.C.contains(ys.alignmentBounds, xSeries.alignment + BigInt(index))
|
|
2987
3018
|
);
|
|
2988
3019
|
if (ySeries == null)
|
|
2989
3020
|
return result;
|
|
@@ -3093,7 +3124,7 @@ const findSeriesThatOverlapWith = (x, y, overlapThreshold) => y.filter((ys) => {
|
|
|
3093
3124
|
`Encountered series without time range in buildDrawOperations. X series present: ${x._timeRange != null}, Y series present: ${ys._timeRange != null}`
|
|
3094
3125
|
);
|
|
3095
3126
|
const timeRangesOverlap = x.timeRange.overlapsWith(ys.timeRange, overlapThreshold);
|
|
3096
|
-
const alignmentsOverlap = css.
|
|
3127
|
+
const alignmentsOverlap = css.C.overlapsWith(
|
|
3097
3128
|
x.alignmentBounds,
|
|
3098
3129
|
ys.alignmentBounds
|
|
3099
3130
|
);
|
|
@@ -5342,8 +5373,8 @@ class TimeTickFactory {
|
|
|
5342
5373
|
generate({ decimalToDataScale: scale, size }) {
|
|
5343
5374
|
const range = [0, size];
|
|
5344
5375
|
const domain = [
|
|
5345
|
-
new aggregator.
|
|
5346
|
-
new aggregator.
|
|
5376
|
+
new aggregator.m(scale.pos(0)).date(),
|
|
5377
|
+
new aggregator.m(scale.pos(1)).date()
|
|
5347
5378
|
];
|
|
5348
5379
|
const d3Scale = time().domain(domain).range(range);
|
|
5349
5380
|
const ticks2 = d3Scale.ticks(calcTickCount(size, this.props.tickSpacing));
|
|
@@ -5353,7 +5384,7 @@ class TimeTickFactory {
|
|
|
5353
5384
|
}));
|
|
5354
5385
|
}
|
|
5355
5386
|
tickLabel(date2) {
|
|
5356
|
-
const value2 = new aggregator.
|
|
5387
|
+
const value2 = new aggregator.m(date2).date();
|
|
5357
5388
|
let formatted = `:${value2.getSeconds()}`;
|
|
5358
5389
|
const ms = value2.getMilliseconds();
|
|
5359
5390
|
if (ms !== 0) {
|
|
@@ -5550,46 +5581,46 @@ class Canvas {
|
|
|
5550
5581
|
maybeDrawGrid(size, ticks2, f) {
|
|
5551
5582
|
const { showGrid, gridColor } = this.state;
|
|
5552
5583
|
if (showGrid) {
|
|
5553
|
-
const startBound = css.
|
|
5554
|
-
const endBound = css.
|
|
5584
|
+
const startBound = css.C.construct(-1, 1);
|
|
5585
|
+
const endBound = css.C.construct(size - 1, size + 1);
|
|
5555
5586
|
this.ctx.lower2d.strokeStyle = gridColor.hex;
|
|
5556
5587
|
ticks2.filter(
|
|
5557
|
-
({ position }) => !css.
|
|
5588
|
+
({ position }) => !css.C.contains(startBound, position) && !css.C.contains(endBound, position)
|
|
5558
5589
|
).forEach((tick) => this.drawLine(...f(tick)));
|
|
5559
5590
|
}
|
|
5560
5591
|
}
|
|
5561
5592
|
}
|
|
5562
5593
|
const coreAxisStateZ = axisStateZ.extend({
|
|
5563
|
-
bounds: css.
|
|
5594
|
+
bounds: css.C.bounds.optional(),
|
|
5564
5595
|
autoBounds: zod.z.object({
|
|
5565
5596
|
lower: zod.z.boolean().optional().default(true),
|
|
5566
5597
|
upper: zod.z.boolean().optional().default(true)
|
|
5567
5598
|
}).or(zod.z.boolean().optional().default(true)),
|
|
5568
5599
|
autoBoundPadding: zod.z.number().optional(),
|
|
5569
|
-
autoBoundUpdateInterval: aggregator.
|
|
5600
|
+
autoBoundUpdateInterval: aggregator.w.z.optional().default(aggregator.w.seconds(2)),
|
|
5570
5601
|
size: zod.z.number().optional().default(0),
|
|
5571
5602
|
label: zod.z.string().optional().default(""),
|
|
5572
5603
|
labelSize: zod.z.number().optional().default(0)
|
|
5573
5604
|
}).partial({ color: true, font: true, gridColor: true });
|
|
5574
5605
|
const AXIS_SIZE_UPADTE_UPPER_THRESHOLD = 2;
|
|
5575
5606
|
const AXIS_SIZE_UPDATE_LOWER_THRESHOLD = 7;
|
|
5576
|
-
const withinSizeThreshold = (prev, next) => css.
|
|
5607
|
+
const withinSizeThreshold = (prev, next) => css.C.contains(
|
|
5577
5608
|
{
|
|
5578
5609
|
lower: prev - AXIS_SIZE_UPDATE_LOWER_THRESHOLD,
|
|
5579
5610
|
upper: prev + AXIS_SIZE_UPADTE_UPPER_THRESHOLD
|
|
5580
5611
|
},
|
|
5581
5612
|
next
|
|
5582
5613
|
);
|
|
5583
|
-
const EMPTY_LINEAR_BOUNDS = css.
|
|
5584
|
-
const now$1 = aggregator.
|
|
5614
|
+
const EMPTY_LINEAR_BOUNDS = css.C.DECIMAL;
|
|
5615
|
+
const now$1 = aggregator.m.now();
|
|
5585
5616
|
const EMPTY_TIME_BOUNDS = {
|
|
5586
5617
|
lower: Number(now$1.valueOf()),
|
|
5587
|
-
upper: Number(now$1.add(aggregator.
|
|
5618
|
+
upper: Number(now$1.add(aggregator.w.HOUR).valueOf())
|
|
5588
5619
|
};
|
|
5589
5620
|
const emptyBounds = (type) => type === "linear" ? EMPTY_LINEAR_BOUNDS : EMPTY_TIME_BOUNDS;
|
|
5590
5621
|
const autoBounds = (b, padding = 0.1, type) => {
|
|
5591
|
-
const m = css.
|
|
5592
|
-
if (!css.
|
|
5622
|
+
const m = css.C.max(b.filter(css.C.isFinite));
|
|
5623
|
+
if (!css.C.isFinite(m))
|
|
5593
5624
|
return emptyBounds(type);
|
|
5594
5625
|
const { lower: lower2, upper } = m;
|
|
5595
5626
|
if (upper === lower2)
|
|
@@ -5952,7 +5983,7 @@ class YAxis extends CoreAxis {
|
|
|
5952
5983
|
__publicField(this, "schema", coreAxisStateZ);
|
|
5953
5984
|
}
|
|
5954
5985
|
async xBounds() {
|
|
5955
|
-
return css.
|
|
5986
|
+
return css.C.max(
|
|
5956
5987
|
await Promise.all(this.lines.map(async (el) => await el.xBounds()))
|
|
5957
5988
|
);
|
|
5958
5989
|
}
|
|
@@ -6022,8 +6053,8 @@ class YAxis extends CoreAxis {
|
|
|
6022
6053
|
}
|
|
6023
6054
|
__publicField(YAxis, "TYPE", "YAxis");
|
|
6024
6055
|
const annotationStateZ = zod.z.object({
|
|
6025
|
-
start: aggregator.
|
|
6026
|
-
end: aggregator.
|
|
6056
|
+
start: aggregator.m.z,
|
|
6057
|
+
end: aggregator.m.z
|
|
6027
6058
|
});
|
|
6028
6059
|
class Annotation extends aggregator.Leaf {
|
|
6029
6060
|
constructor() {
|
|
@@ -13453,11 +13484,11 @@ class Tooltip extends aggregator.Leaf {
|
|
|
13453
13484
|
const validValues = values.filter((c) => css.q.isFinite(c.value));
|
|
13454
13485
|
const { draw } = this.internal;
|
|
13455
13486
|
const avgXPosition = validValues.reduce((p, c) => p + c.position.x, 0) / validValues.length;
|
|
13456
|
-
const avgXValue = new aggregator.
|
|
13487
|
+
const avgXValue = new aggregator.m(
|
|
13457
13488
|
validValues.reduce((p, c) => p + c.value.x, 0) / validValues.length
|
|
13458
13489
|
);
|
|
13459
13490
|
const rulePosition = scale_.x.pos(avgXPosition);
|
|
13460
|
-
if (!css.
|
|
13491
|
+
if (!css.C.contains(css.To.xBounds(region), rulePosition))
|
|
13461
13492
|
return;
|
|
13462
13493
|
draw.rule({
|
|
13463
13494
|
stroke: this.state.ruleColor,
|
|
@@ -13643,7 +13674,7 @@ class Measure extends aggregator.Leaf {
|
|
|
13643
13674
|
const s = css.k.XY.scale(css.To.DECIMAL).scale(props.region);
|
|
13644
13675
|
const onePos = s.pos(oneValue.position);
|
|
13645
13676
|
const twoPos = s.pos(twoValue.position);
|
|
13646
|
-
const xDist = new aggregator.
|
|
13677
|
+
const xDist = new aggregator.w(Math.abs(oneValue.value.x - twoValue.value.x));
|
|
13647
13678
|
const yDist = Math.abs(oneValue.value.y - twoValue.value.y);
|
|
13648
13679
|
const slope = yDist / xDist.seconds;
|
|
13649
13680
|
draw.line({
|
|
@@ -13667,7 +13698,7 @@ class Measure extends aggregator.Leaf {
|
|
|
13667
13698
|
lineWidth: strokeWidth
|
|
13668
13699
|
});
|
|
13669
13700
|
draw.textContainer({
|
|
13670
|
-
text: [xDist.truncate(aggregator.
|
|
13701
|
+
text: [xDist.truncate(aggregator.w.MILLISECOND).toString()],
|
|
13671
13702
|
direction: "x",
|
|
13672
13703
|
position: css.q.construct((onePos.x + twoPos.x) / 2, twoPos.y),
|
|
13673
13704
|
level: "small"
|
|
@@ -13852,7 +13883,7 @@ const value = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePropert
|
|
|
13852
13883
|
Value
|
|
13853
13884
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
13854
13885
|
const selectedStateZ = aggregator.nk.payloadZ.extend({
|
|
13855
|
-
viewport: css.
|
|
13886
|
+
viewport: css.C.bounds
|
|
13856
13887
|
});
|
|
13857
13888
|
const providerStateZ = zod.z.object({
|
|
13858
13889
|
cursor: css.q.xy.or(zod.z.null()),
|
|
@@ -13891,7 +13922,7 @@ class Provider extends aggregator.Leaf {
|
|
|
13891
13922
|
}
|
|
13892
13923
|
async fetchInitial(timeRange) {
|
|
13893
13924
|
const { internal: i2 } = this;
|
|
13894
|
-
if (i2.client == null || this.fetchedInitial.roughlyEquals(timeRange, aggregator.
|
|
13925
|
+
if (i2.client == null || this.fetchedInitial.roughlyEquals(timeRange, aggregator.w.minutes(1)))
|
|
13895
13926
|
return;
|
|
13896
13927
|
this.fetchedInitial = timeRange;
|
|
13897
13928
|
const ranges = await i2.client.ranges.retrieve(timeRange);
|
|
@@ -13923,7 +13954,7 @@ class Provider extends aggregator.Leaf {
|
|
|
13923
13954
|
startPos = css.Y(startPos, css.To.left(region) - 2, css.To.right(region) - 1);
|
|
13924
13955
|
let hovered = false;
|
|
13925
13956
|
if (cursor != null)
|
|
13926
|
-
hovered = css.
|
|
13957
|
+
hovered = css.C.contains({ lower: startPos, upper: endPos }, cursor);
|
|
13927
13958
|
if (hovered)
|
|
13928
13959
|
hoveredState = {
|
|
13929
13960
|
key: r.key,
|
|
@@ -14303,4 +14334,4 @@ exports.withinBounds = withinBounds;
|
|
|
14303
14334
|
exports.withinSizeThreshold = withinSizeThreshold;
|
|
14304
14335
|
exports.xAxisStateZ = xAxisStateZ;
|
|
14305
14336
|
exports.yAxisStateZ = yAxisStateZ;
|
|
14306
|
-
//# sourceMappingURL=LinePlot-
|
|
14337
|
+
//# sourceMappingURL=LinePlot-Bnb8Ufob.cjs.map
|