pi-mega-compact 0.21.2 → 0.21.4
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/extensions/dashboard-server/routes-rag-settings-helpers.js +1 -0
- package/dist/extensions/mega-compact-child.js +126 -0
- package/dist/extensions/mega-config.js +5 -0
- package/dist/extensions/mega-events/agent-handlers/turnEndHandler/recordTurnRow.js +12 -2
- package/dist/extensions/mega-events/context-handler/afterCompact.js +11 -0
- package/dist/extensions/mega-events/context-handler/dbMirrorAppend.js +8 -0
- package/dist/extensions/mega-events/health-handler.js +12 -2
- package/dist/extensions/mega-events/session-handlers.js +1 -0
- package/dist/extensions/mega-pipeline/compact/run.js +11 -0
- package/dist/extensions/mega-runtime/helpers.js +45 -0
- package/dist/extensions/mega-runtime/internal-errors.js +14 -0
- package/dist/extensions/mega-runtime/runtime-instrumentation.js +166 -0
- package/dist/extensions/mega-runtime/runtime.js +27 -193
- package/dist/extensions/mega-runtime/state.js +1 -1
- package/dist/extensions/mega-runtime/widget.js +1 -1
- package/dist/extensions/mega-turn-store.js +5 -0
- package/dist/src/bridge/factory.js +195 -0
- package/dist/src/bridge/types.js +10 -0
- package/dist/src/bridge.js +1 -0
- package/dist/src/contextHealth.js +13 -5
- package/dist/src/metrics/turns.js +6 -1
- package/dist/src/store/sqlite/context-health-cache-poison.js +60 -0
- package/dist/src/store/sqlite/context-health.js +6 -48
- package/dist/src/store/sqlite/embedding-cache.js +4 -0
- package/dist/src/store/sqlite/schema.js +4 -0
- package/dist/src/store/turns/memory-store/admin.js +119 -0
- package/dist/src/store/turns/memory-store/ctx.js +28 -0
- package/dist/src/store/turns/memory-store/read.js +110 -0
- package/dist/src/store/turns/memory-store/write.js +88 -0
- package/dist/src/store/turns/memory-store.js +44 -273
- package/dist/src/store/turns/migrations.js +4 -0
- package/dist/src/store/turns/schema.js +1 -0
- package/dist/src/store/turns/sqlite-store/read.js +13 -0
- package/dist/src/store/turns/sqlite-store/rows.js +4 -0
- package/dist/src/store/turns/sqlite-store/write.js +3 -3
- package/dist/src/store/turns/sqlite-store.js +4 -0
- package/extensions/dashboard-client/dist/assets/{AdminTab-BsA8-_bX.js → AdminTab-C4Y0_UVx.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{AdminTab-BsA8-_bX.js.map → AdminTab-C4Y0_UVx.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{AreaChart-BRHEfWhc.js → AreaChart-MCWK9rn6.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{AreaChart-BRHEfWhc.js.map → AreaChart-MCWK9rn6.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{BarChart-C-M0LaFc.js → BarChart-CvSGAiWV.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{BarChart-C-M0LaFc.js.map → BarChart-CvSGAiWV.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{CacheTab-Cj3n59U3.js → CacheTab-DnMEVRro.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{CacheTab-Cj3n59U3.js.map → CacheTab-DnMEVRro.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{ConfigTab-C016XTNC.js → ConfigTab-BExuZYy2.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{ConfigTab-C016XTNC.js.map → ConfigTab-BExuZYy2.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{EventsTab-DE29fuqe.js → EventsTab-CspsEslY.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{EventsTab-DE29fuqe.js.map → EventsTab-CspsEslY.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/HealthTab-DiWzo2ML.js +2 -0
- package/extensions/dashboard-client/dist/assets/HealthTab-DiWzo2ML.js.map +1 -0
- package/extensions/dashboard-client/dist/assets/{MaintenanceTab-4fJ7M4S4.js → MaintenanceTab-9NJuv3dB.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{MaintenanceTab-4fJ7M4S4.js.map → MaintenanceTab-9NJuv3dB.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{MemoryMapTab-CDbcK9e4.js → MemoryMapTab-YpJK1h17.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{MemoryMapTab-CDbcK9e4.js.map → MemoryMapTab-YpJK1h17.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{MetricsCards-VUEcgGzo.js → MetricsCards-D2Mom1M7.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{MetricsCards-VUEcgGzo.js.map → MetricsCards-D2Mom1M7.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/MetricsTab-DqWF7wud.js +2 -0
- package/extensions/dashboard-client/dist/assets/{MetricsTab-CKqJ0Zl-.js.map → MetricsTab-DqWF7wud.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{OverviewTab-9Kxo79mi.js → OverviewTab-YuRxjV9U.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{OverviewTab-9Kxo79mi.js.map → OverviewTab-YuRxjV9U.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{ReposTab-C4iveqrP.js → ReposTab-sXMrR7je.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{ReposTab-C4iveqrP.js.map → ReposTab-sXMrR7je.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{SessionsTab-DSEwkMQm.js → SessionsTab-4YCXeGNR.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{SessionsTab-DSEwkMQm.js.map → SessionsTab-4YCXeGNR.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{SetupTab-CCyWgy4O.js → SetupTab-67pZcM_W.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{SetupTab-CCyWgy4O.js.map → SetupTab-67pZcM_W.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{TimeSavedCard-CyD8e_e_.js → TimeSavedCard-DInjNETP.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{TimeSavedCard-CyD8e_e_.js.map → TimeSavedCard-DInjNETP.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{TurnMemoryView-5tLbWkRv.js → TurnMemoryView-C3Bif8ix.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{TurnMemoryView-5tLbWkRv.js.map → TurnMemoryView-C3Bif8ix.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/TurnsTab-BUGfiANp.js +2 -0
- package/extensions/dashboard-client/dist/assets/{TurnsTab-C7pm92Hg.js.map → TurnsTab-BUGfiANp.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{VcStatusBadge-ObhcIyfN.js → VcStatusBadge-DKU7qz9f.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{VcStatusBadge-ObhcIyfN.js.map → VcStatusBadge-DKU7qz9f.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{VectorCortexTab-BtHZb7o7.js → VectorCortexTab-BsVSf4xm.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{VectorCortexTab-BtHZb7o7.js.map → VectorCortexTab-BsVSf4xm.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{WikiTab-lQ4l3QIK.js → WikiTab-DZw9_Fwd.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{WikiTab-lQ4l3QIK.js.map → WikiTab-DZw9_Fwd.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{button-DhQQAJGm.js → button-BLRPN489.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{button-DhQQAJGm.js.map → button-BLRPN489.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{card-Cfhz9X31.js → card-BGkkcM4Q.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{card-Cfhz9X31.js.map → card-BGkkcM4Q.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{client-extra-CKNOGEz_.js → client-extra-0OJClxHD.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{client-extra-CKNOGEz_.js.map → client-extra-0OJClxHD.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{generateCategoricalChart-JKjK9_cB.js → generateCategoricalChart-Dl5lmrHF.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{generateCategoricalChart-JKjK9_cB.js.map → generateCategoricalChart-Dl5lmrHF.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/health-lSeDFTz7.js.map +1 -1
- package/extensions/dashboard-client/dist/assets/{index-iuxgtzEW.js → index-CH_AD-S_.js} +3 -3
- package/extensions/dashboard-client/dist/assets/{index-iuxgtzEW.js.map → index-CH_AD-S_.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{switch-7EHEQMSP.js → switch-BPP2-d12.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{switch-7EHEQMSP.js.map → switch-BPP2-d12.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{toggle-z1lWY4UM.js → toggle-Dez0JaMV.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{toggle-z1lWY4UM.js.map → toggle-Dez0JaMV.js.map} +1 -1
- package/extensions/dashboard-client/dist/assets/{useSSE-sctOZuRM.js → useSSE-Cx2W7BTo.js} +2 -2
- package/extensions/dashboard-client/dist/assets/{useSSE-sctOZuRM.js.map → useSSE-Cx2W7BTo.js.map} +1 -1
- package/extensions/dashboard-client/dist/index.html +1 -1
- package/extensions/dashboard-client/src/api/health.ts +1 -0
- package/extensions/dashboard-client/src/tabs/HealthTab.tsx +1 -0
- package/extensions/dashboard-server/routes-rag-settings-helpers.ts +6 -0
- package/extensions/mega-compact-child.ts +129 -0
- package/extensions/mega-config-types.ts +5 -0
- package/extensions/mega-config.ts +5 -0
- package/extensions/mega-events/agent-handlers/turnEndHandler/recordTurnRow.ts +12 -2
- package/extensions/mega-events/context-handler/afterCompact.ts +11 -0
- package/extensions/mega-events/context-handler/dbMirrorAppend.ts +8 -0
- package/extensions/mega-events/health-handler.ts +13 -3
- package/extensions/mega-events/session-handlers.ts +1 -0
- package/extensions/mega-pipeline/compact/run.ts +11 -0
- package/extensions/mega-runtime/helpers.ts +46 -0
- package/extensions/mega-runtime/internal-errors.ts +30 -0
- package/extensions/mega-runtime/runtime-instrumentation.ts +195 -0
- package/extensions/mega-runtime/runtime.ts +29 -209
- package/extensions/mega-runtime/state.ts +1 -1
- package/extensions/mega-runtime/widget.ts +1 -1
- package/extensions/mega-turn-store.ts +9 -0
- package/package.json +2 -2
- package/src/bridge/factory.ts +245 -0
- package/src/bridge/types.ts +140 -0
- package/src/bridge.ts +24 -0
- package/src/contextHealth.ts +26 -6
- package/src/metrics/turns.ts +6 -1
- package/src/store/sqlite/context-health-cache-poison.ts +97 -0
- package/src/store/sqlite/context-health.ts +12 -84
- package/src/store/sqlite/embedding-cache.ts +4 -0
- package/src/store/sqlite/schema.ts +4 -0
- package/src/store/turns/memory-store/admin.ts +171 -0
- package/src/store/turns/memory-store/ctx.ts +62 -0
- package/src/store/turns/memory-store/read.ts +172 -0
- package/src/store/turns/memory-store/write.ts +126 -0
- package/src/store/turns/memory-store.ts +51 -330
- package/src/store/turns/migrations.ts +4 -0
- package/src/store/turns/schema.ts +1 -0
- package/src/store/turns/sqlite-store/read.ts +19 -0
- package/src/store/turns/sqlite-store/rows.ts +5 -0
- package/src/store/turns/sqlite-store/write.ts +3 -2
- package/src/store/turns/sqlite-store.ts +5 -0
- package/src/store/turns/types.ts +15 -0
- package/extensions/dashboard-client/dist/assets/HealthTab-D4eVI8ar.js +0 -2
- package/extensions/dashboard-client/dist/assets/HealthTab-D4eVI8ar.js.map +0 -1
- package/extensions/dashboard-client/dist/assets/MetricsTab-CKqJ0Zl-.js +0 -2
- package/extensions/dashboard-client/dist/assets/TurnsTab-C7pm92Hg.js +0 -2
|
@@ -1,27 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* memory-store.ts — InMemoryTurnStore: test harness + embeddable backend.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Thin delegate shell: each method body lives as a free function in
|
|
5
|
+
* ./memory-store/* (read.ts / write.ts / admin.ts) operating on an internal
|
|
6
|
+
* ctx ({turns, recall, forks, convIndex, sessionConv}); this class wires those
|
|
7
|
+
* to the contract. The public API surface — InMemoryTurnStore implements
|
|
8
|
+
* TurnStore, all methods, asReader/asWriter/asAdmin, close — is unchanged
|
|
9
|
+
* for existing callers.
|
|
10
|
+
*
|
|
11
|
+
* Same contract as SqliteTurnStore, backed by Maps. No file I/O. Used for
|
|
12
|
+
* tests and for hosts that don't want SQLite. Mirrors sqlite-store.ts.
|
|
6
13
|
*
|
|
7
14
|
* PREVENT-PI-004: no network. PREVENT-002: no SQL here.
|
|
8
15
|
*/
|
|
9
|
-
import {
|
|
10
|
-
import
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
function normalizeSessionId(sid) {
|
|
15
|
-
return sid.replace(/-.*$/, "");
|
|
16
|
-
}
|
|
17
|
-
// Auto-increment counter
|
|
18
|
-
let nextId = 1;
|
|
19
|
-
function allocId() {
|
|
20
|
-
return nextId++;
|
|
21
|
-
}
|
|
22
|
-
function resetIdCounter() {
|
|
23
|
-
nextId = 1;
|
|
24
|
-
}
|
|
16
|
+
import { resetIdCounter, } from "./memory-store/ctx.js";
|
|
17
|
+
import * as read from "./memory-store/read.js";
|
|
18
|
+
import * as write from "./memory-store/write.js";
|
|
19
|
+
import * as admin from "./memory-store/admin.js";
|
|
25
20
|
export class InMemoryTurnStore {
|
|
26
21
|
turns = new Map();
|
|
27
22
|
recall = [];
|
|
@@ -33,299 +28,74 @@ export class InMemoryTurnStore {
|
|
|
33
28
|
constructor(_options) {
|
|
34
29
|
resetIdCounter();
|
|
35
30
|
}
|
|
31
|
+
ctx() {
|
|
32
|
+
return {
|
|
33
|
+
turns: this.turns,
|
|
34
|
+
recall: this.recall,
|
|
35
|
+
forks: this.forks,
|
|
36
|
+
convIndex: this.convIndex,
|
|
37
|
+
sessionConv: this.sessionConv,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
36
40
|
// ── TurnReader ──────────────────────────────────────────────
|
|
37
41
|
query(filter) {
|
|
38
|
-
|
|
39
|
-
if (filter.conversationId !== undefined) {
|
|
40
|
-
results = results.filter((t) => t.conversationId === filter.conversationId);
|
|
41
|
-
}
|
|
42
|
-
if (filter.sessionId !== undefined) {
|
|
43
|
-
results = results.filter((t) => normalizeSessionId(t.sessionId) ===
|
|
44
|
-
normalizeSessionId(filter.sessionId));
|
|
45
|
-
}
|
|
46
|
-
if (filter.sinceMs !== undefined) {
|
|
47
|
-
results = results.filter((t) => t.endedAt >= filter.sinceMs);
|
|
48
|
-
}
|
|
49
|
-
if (filter.untilMs !== undefined) {
|
|
50
|
-
results = results.filter((t) => t.endedAt <= filter.untilMs);
|
|
51
|
-
}
|
|
52
|
-
if (filter.pressureBand !== undefined) {
|
|
53
|
-
results = results.filter((t) => t.pressureBand === filter.pressureBand);
|
|
54
|
-
}
|
|
55
|
-
results.sort((a, b) => a.endedAt - b.endedAt);
|
|
56
|
-
const offset = filter.offset ?? 0;
|
|
57
|
-
const limit = filter.limit ?? 1000;
|
|
58
|
-
return results.slice(offset, offset + limit);
|
|
42
|
+
return read.query(this.ctx(), filter);
|
|
59
43
|
}
|
|
60
44
|
getTurn(turnId) {
|
|
61
|
-
|
|
62
|
-
return row ? { ...row.entry, epochId: row.epochId } : undefined;
|
|
45
|
+
return read.getTurn(this.ctx(), turnId);
|
|
63
46
|
}
|
|
64
47
|
getTurnByIndex(conversationId, turnIndex) {
|
|
65
|
-
|
|
66
|
-
for (const id of ids) {
|
|
67
|
-
const row = this.turns.get(id);
|
|
68
|
-
if (row && row.entry.turnIndex === turnIndex) {
|
|
69
|
-
return { ...row.entry, epochId: row.epochId };
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return undefined;
|
|
48
|
+
return read.getTurnByIndex(this.ctx(), conversationId, turnIndex);
|
|
73
49
|
}
|
|
74
50
|
listRecall(turnId) {
|
|
75
|
-
return this.
|
|
76
|
-
.filter((r) => r.turnId === Number(turnId))
|
|
77
|
-
.map((r) => r.entry)
|
|
78
|
-
.sort((a, b) => b.score - a.score);
|
|
51
|
+
return read.listRecall(this.ctx(), turnId);
|
|
79
52
|
}
|
|
80
53
|
listRecallByIndex(conversationId, turnIndex) {
|
|
81
|
-
|
|
82
|
-
if (!turn)
|
|
83
|
-
return [];
|
|
84
|
-
// Resolve the numeric row id for this turn via the convIndex.
|
|
85
|
-
const ids = this.convIndex.get(conversationId) ?? [];
|
|
86
|
-
for (const id of ids) {
|
|
87
|
-
const row = this.turns.get(id);
|
|
88
|
-
if (row && row.entry.turnIndex === turnIndex) {
|
|
89
|
-
return this.listRecall(String(id));
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return [];
|
|
54
|
+
return read.listRecallByIndex(this.ctx(), conversationId, turnIndex);
|
|
93
55
|
}
|
|
94
56
|
listForks(conversationId) {
|
|
95
|
-
return this.
|
|
96
|
-
.filter((f) => f.parentConversationId === conversationId)
|
|
97
|
-
.sort((a, b) => a.createdAt - b.createdAt);
|
|
57
|
+
return read.listForks(this.ctx(), conversationId);
|
|
98
58
|
}
|
|
99
59
|
countTurns(conversationId) {
|
|
100
|
-
|
|
101
|
-
return ids?.length ?? 0;
|
|
60
|
+
return read.countTurns(this.ctx(), conversationId);
|
|
102
61
|
}
|
|
103
62
|
conversationStats(conversationId) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
if (entries.length === 0) {
|
|
109
|
-
return {
|
|
110
|
-
turnCount: 0,
|
|
111
|
-
firstTurnAt: 0,
|
|
112
|
-
lastTurnAt: 0,
|
|
113
|
-
avgCtxPercent: 0,
|
|
114
|
-
pressureBands: {},
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
let ctxSum = 0;
|
|
118
|
-
let ctxCount = 0;
|
|
119
|
-
const bands = {};
|
|
120
|
-
for (const e of entries) {
|
|
121
|
-
if (e.ctxPercent !== undefined) {
|
|
122
|
-
ctxSum += e.ctxPercent;
|
|
123
|
-
ctxCount++;
|
|
124
|
-
}
|
|
125
|
-
if (e.pressureBand)
|
|
126
|
-
bands[e.pressureBand] = (bands[e.pressureBand] ?? 0) + 1;
|
|
127
|
-
}
|
|
128
|
-
return {
|
|
129
|
-
turnCount: entries.length,
|
|
130
|
-
firstTurnAt: entries[0].endedAt,
|
|
131
|
-
lastTurnAt: entries[entries.length - 1].endedAt,
|
|
132
|
-
avgCtxPercent: ctxCount > 0 ? ctxSum / ctxCount : 0,
|
|
133
|
-
pressureBands: bands,
|
|
134
|
-
};
|
|
63
|
+
return read.conversationStats(this.ctx(), conversationId);
|
|
64
|
+
}
|
|
65
|
+
nextTurnIndexFor(conversationId) {
|
|
66
|
+
return read.nextTurnIndexFor(this.ctx(), conversationId);
|
|
135
67
|
}
|
|
136
68
|
// ── TurnWriter ──────────────────────────────────────────────
|
|
137
69
|
appendTurn(entry) {
|
|
138
|
-
|
|
139
|
-
for (const [, row] of this.turns) {
|
|
140
|
-
if (row.entry.conversationId === entry.conversationId &&
|
|
141
|
-
row.entry.turnIndex === entry.turnIndex) {
|
|
142
|
-
throw new DuplicateTurnError(entry.conversationId, entry.turnIndex);
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
const id = allocId();
|
|
146
|
-
const sid = normalizeSessionId(entry.sessionId);
|
|
147
|
-
const normalized = { ...entry, sessionId: sid };
|
|
148
|
-
this.turns.set(id, { id, entry: normalized });
|
|
149
|
-
// Update indices
|
|
150
|
-
const convIds = this.convIndex.get(entry.conversationId) ?? [];
|
|
151
|
-
convIds.push(id);
|
|
152
|
-
this.convIndex.set(entry.conversationId, convIds);
|
|
153
|
-
this.sessionConv.set(sid, entry.conversationId);
|
|
154
|
-
return String(id);
|
|
70
|
+
return write.appendTurn(this.ctx(), entry);
|
|
155
71
|
}
|
|
156
72
|
appendRecall(entry) {
|
|
157
|
-
|
|
158
|
-
const exists = this.recall.some((r) => r.turnId === Number(entry.turnId) &&
|
|
159
|
-
r.entry.checkpointId === entry.checkpointId);
|
|
160
|
-
if (!exists) {
|
|
161
|
-
this.recall.push({ turnId: Number(entry.turnId), entry });
|
|
162
|
-
}
|
|
73
|
+
write.appendRecall(this.ctx(), entry);
|
|
163
74
|
}
|
|
164
75
|
ensureConversationId(sessionId) {
|
|
165
|
-
|
|
166
|
-
const existing = this.sessionConv.get(sid);
|
|
167
|
-
if (existing)
|
|
168
|
-
return existing;
|
|
169
|
-
// Generate and store a new conversation ID for this session
|
|
170
|
-
const convId = newConversationId();
|
|
171
|
-
this.sessionConv.set(sid, convId);
|
|
172
|
-
return convId;
|
|
76
|
+
return write.ensureConversationId(this.ctx(), sessionId);
|
|
173
77
|
}
|
|
174
78
|
forkConversation(parentId, forkTurnIndex) {
|
|
175
|
-
|
|
176
|
-
const now = Date.now();
|
|
177
|
-
// 1. Record the fork lineage
|
|
178
|
-
this.forks.push({
|
|
179
|
-
parentConversationId: parentId,
|
|
180
|
-
childConversationId: childId,
|
|
181
|
-
forkTurnIndex,
|
|
182
|
-
createdAt: now,
|
|
183
|
-
});
|
|
184
|
-
// 2. Find the parent's turn at forkTurnIndex
|
|
185
|
-
const parentTurnIds = this.convIndex.get(parentId) ?? [];
|
|
186
|
-
const parentTurnRow = parentTurnIds
|
|
187
|
-
.map((id) => this.turns.get(id))
|
|
188
|
-
.find((r) => r?.entry.turnIndex === forkTurnIndex);
|
|
189
|
-
if (!parentTurnRow)
|
|
190
|
-
return childId; // no parent turn — nothing to seed
|
|
191
|
-
// 3. Create a seed turn in the child conversation
|
|
192
|
-
const seedId = allocId();
|
|
193
|
-
const seedEntry = {
|
|
194
|
-
conversationId: childId,
|
|
195
|
-
sessionId: `fork_${childId}`,
|
|
196
|
-
turnIndex: 0,
|
|
197
|
-
role: "system",
|
|
198
|
-
endedAt: now,
|
|
199
|
-
};
|
|
200
|
-
this.turns.set(seedId, { id: seedId, entry: seedEntry });
|
|
201
|
-
this.convIndex.set(childId, [seedId]);
|
|
202
|
-
// 4. Copy the parent's recall entries into the child's seed turn
|
|
203
|
-
const parentRecall = this.recall.filter((r) => r.turnId === parentTurnRow.id);
|
|
204
|
-
for (const r of parentRecall) {
|
|
205
|
-
this.recall.push({
|
|
206
|
-
turnId: seedId,
|
|
207
|
-
entry: {
|
|
208
|
-
turnId: String(seedId),
|
|
209
|
-
checkpointId: r.entry.checkpointId,
|
|
210
|
-
score: r.entry.score,
|
|
211
|
-
source: r.entry.source,
|
|
212
|
-
raptorLevel: r.entry.raptorLevel,
|
|
213
|
-
},
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
return childId;
|
|
79
|
+
return write.forkConversation(this.ctx(), parentId, forkTurnIndex);
|
|
217
80
|
}
|
|
218
81
|
// ── TurnAdmin ───────────────────────────────────────────────
|
|
219
82
|
prune(policy) {
|
|
220
|
-
|
|
221
|
-
let turnsRemoved = 0;
|
|
222
|
-
let recallRemoved = 0;
|
|
223
|
-
for (const [convId, turnIds] of this.convIndex.entries()) {
|
|
224
|
-
const total = turnIds.length;
|
|
225
|
-
const canDelete = Math.max(0, total - policy.keepMinPerConversation);
|
|
226
|
-
if (canDelete === 0)
|
|
227
|
-
continue;
|
|
228
|
-
// Find old turns to delete
|
|
229
|
-
const oldIds = turnIds
|
|
230
|
-
.filter((id) => {
|
|
231
|
-
const row = this.turns.get(id);
|
|
232
|
-
return row && row.entry.endedAt < cutoff;
|
|
233
|
-
})
|
|
234
|
-
.slice(0, canDelete);
|
|
235
|
-
for (const id of oldIds) {
|
|
236
|
-
// Remove recall
|
|
237
|
-
const before = this.recall.length;
|
|
238
|
-
this.recall = this.recall.filter((r) => r.turnId !== id);
|
|
239
|
-
recallRemoved += before - this.recall.length;
|
|
240
|
-
this.turns.delete(id);
|
|
241
|
-
turnsRemoved++;
|
|
242
|
-
}
|
|
243
|
-
// Update convIndex
|
|
244
|
-
this.convIndex.set(convId, turnIds.filter((id) => this.turns.has(id)));
|
|
245
|
-
}
|
|
246
|
-
const branchesPreserved = this.forks.length;
|
|
247
|
-
return {
|
|
248
|
-
turnsRemoved,
|
|
249
|
-
recallRemoved,
|
|
250
|
-
branchesPreserved,
|
|
251
|
-
freedBytes: 0, // in-memory — no file size to measure
|
|
252
|
-
};
|
|
83
|
+
return admin.prune(this.ctx(), policy);
|
|
253
84
|
}
|
|
254
85
|
vacuum() {
|
|
255
|
-
|
|
86
|
+
admin.vacuum(this.ctx());
|
|
256
87
|
}
|
|
257
88
|
checkpoint() {
|
|
258
|
-
|
|
259
|
-
const sorted = [...this.turns.values()].sort((a, b) => a.id - b.id);
|
|
260
|
-
const turns = sorted.map((r) => r.entry);
|
|
261
|
-
// Build mapping: internal ID → 1-based position
|
|
262
|
-
const idToPos = new Map();
|
|
263
|
-
for (let i = 0; i < sorted.length; i++) {
|
|
264
|
-
idToPos.set(sorted[i].id, i + 1);
|
|
265
|
-
}
|
|
266
|
-
// Replace recall's turnId with the stable 1-based position
|
|
267
|
-
const recall = this.recall.map((r) => ({
|
|
268
|
-
turnId: String(idToPos.get(r.turnId) ?? r.turnId),
|
|
269
|
-
checkpointId: r.entry.checkpointId,
|
|
270
|
-
score: r.entry.score,
|
|
271
|
-
source: r.entry.source,
|
|
272
|
-
raptorLevel: r.entry.raptorLevel,
|
|
273
|
-
}));
|
|
274
|
-
return {
|
|
275
|
-
version: 1,
|
|
276
|
-
exportedAt: Date.now(),
|
|
277
|
-
turns,
|
|
278
|
-
recall,
|
|
279
|
-
forks: [...this.forks],
|
|
280
|
-
};
|
|
89
|
+
return admin.checkpoint(this.ctx());
|
|
281
90
|
}
|
|
282
91
|
restore(from) {
|
|
283
|
-
this.
|
|
284
|
-
// Map: 1-based position → new internal ID
|
|
285
|
-
const posToNewId = new Map();
|
|
286
|
-
for (let i = 0; i < from.turns.length; i++) {
|
|
287
|
-
const t = from.turns[i];
|
|
288
|
-
const newId = allocId();
|
|
289
|
-
const sid = normalizeSessionId(t.sessionId);
|
|
290
|
-
const normalized = { ...t, sessionId: sid };
|
|
291
|
-
this.turns.set(newId, { id: newId, entry: normalized });
|
|
292
|
-
// Update indices
|
|
293
|
-
const convIds = this.convIndex.get(t.conversationId) ?? [];
|
|
294
|
-
convIds.push(newId);
|
|
295
|
-
this.convIndex.set(t.conversationId, convIds);
|
|
296
|
-
this.sessionConv.set(sid, t.conversationId);
|
|
297
|
-
posToNewId.set(i + 1, newId);
|
|
298
|
-
}
|
|
299
|
-
// Re-attach recall with position-based TurnId → new internal ID mapping
|
|
300
|
-
for (const r of from.recall) {
|
|
301
|
-
const targetInternalId = posToNewId.get(Number(r.turnId));
|
|
302
|
-
if (targetInternalId !== undefined) {
|
|
303
|
-
this.recall.push({
|
|
304
|
-
turnId: targetInternalId,
|
|
305
|
-
entry: r,
|
|
306
|
-
});
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
this.forks = [...from.forks];
|
|
92
|
+
admin.restore(this.ctx(), from);
|
|
310
93
|
}
|
|
311
94
|
clear() {
|
|
312
|
-
|
|
313
|
-
this.recall = [];
|
|
314
|
-
this.forks = [];
|
|
315
|
-
this.convIndex.clear();
|
|
316
|
-
this.sessionConv.clear();
|
|
317
|
-
resetIdCounter();
|
|
95
|
+
admin.clear(this.ctx());
|
|
318
96
|
}
|
|
319
97
|
stampTurnsEpoch(sessionId, epochId) {
|
|
320
|
-
|
|
321
|
-
let stamped = 0;
|
|
322
|
-
for (const row of this.turns.values()) {
|
|
323
|
-
if (row.epochId === undefined && row.entry.sessionId === sid) {
|
|
324
|
-
row.epochId = epochId;
|
|
325
|
-
stamped++;
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
return stamped;
|
|
98
|
+
return admin.stampTurnsEpoch(this.ctx(), sessionId, epochId);
|
|
329
99
|
}
|
|
330
100
|
// ── Capability gating ───────────────────────────────────────
|
|
331
101
|
asReader() {
|
|
@@ -338,6 +108,7 @@ export class InMemoryTurnStore {
|
|
|
338
108
|
listForks: (id) => this.listForks(id),
|
|
339
109
|
countTurns: (id) => this.countTurns(id),
|
|
340
110
|
conversationStats: (id) => this.conversationStats(id),
|
|
111
|
+
nextTurnIndexFor: (id) => this.nextTurnIndexFor(id),
|
|
341
112
|
};
|
|
342
113
|
}
|
|
343
114
|
asWriter() {
|
|
@@ -172,6 +172,10 @@ export function migrateTurnTablesIfNeeded(turnDb, stateDir, log = (m) => console
|
|
|
172
172
|
catch (e) {
|
|
173
173
|
// Non-fatal: leave legacy tables intact so nothing is lost; retry next open.
|
|
174
174
|
log(`migration failed (will retry on next open): ${e instanceof Error ? e.message : String(e)}`);
|
|
175
|
+
// Sprint H (Option A): this src/ turn-table migration has no runtime handle
|
|
176
|
+
// (it runs at store-open via `log`). The migration_failure category is
|
|
177
|
+
// recorded by the store-open caller that owns a runtime, not here.
|
|
178
|
+
// guardrails-allow INTERNAL-ERR: src/ turn-table migration, no runtime handle — store-open caller records migration failures
|
|
175
179
|
}
|
|
176
180
|
}
|
|
177
181
|
// Exported for tests that need to inspect the source mapping.
|
|
@@ -143,6 +143,7 @@ export function initTurnSchema(db) {
|
|
|
143
143
|
ensureCol("recall_coverage", "recall_coverage REAL DEFAULT 0");
|
|
144
144
|
ensureCol("recall_diversity", "recall_diversity REAL DEFAULT 0");
|
|
145
145
|
ensureCol("recall_specificity", "recall_specificity REAL DEFAULT 0");
|
|
146
|
+
ensureCol("session_turn_index", "session_turn_index INTEGER");
|
|
146
147
|
// ── Wiki Revival (Spec 3): user curation + topic evolution ────────
|
|
147
148
|
const sessionCol = db.prepare("PRAGMA table_info(memory_topics)").all().some((c) => c.name === "session_id");
|
|
148
149
|
if (!sessionCol) {
|
|
@@ -109,3 +109,16 @@ export function conversationStats(ctx, conversationId) {
|
|
|
109
109
|
pressureBands: bands,
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* S49R: next conversation-monotonic turn index for a conversation.
|
|
114
|
+
* `MAX(turn_index) + 1`, or 0 when the conversation has no turns yet. A
|
|
115
|
+
* resumed session (pi's per-session `turnIndex` resets to 0) uses this instead
|
|
116
|
+
* of `event.turnIndex` so it never collides with UNIQUE(conversation_id, turn_index).
|
|
117
|
+
*/
|
|
118
|
+
export function nextTurnIndexFor(ctx, conversationId) {
|
|
119
|
+
const { db } = ctx;
|
|
120
|
+
const row = db
|
|
121
|
+
.prepare("SELECT COALESCE(MAX(turn_index), -1) AS m FROM turns WHERE conversation_id = ?")
|
|
122
|
+
.get(conversationId);
|
|
123
|
+
return row.m + 1;
|
|
124
|
+
}
|
|
@@ -44,6 +44,10 @@ export function rowToEntry(r) {
|
|
|
44
44
|
diversity: r.recall_diversity ?? 0,
|
|
45
45
|
specificity: r.recall_specificity ?? 0,
|
|
46
46
|
},
|
|
47
|
+
// S49R: carried per-session counter (null on pre-migration rows).
|
|
48
|
+
sessionTurnIndex: r.session_turn_index == null
|
|
49
|
+
? undefined
|
|
50
|
+
: r.session_turn_index,
|
|
47
51
|
};
|
|
48
52
|
}
|
|
49
53
|
export function rowToRecall(r) {
|
|
@@ -11,9 +11,9 @@ export function appendTurn(ctx, entry) {
|
|
|
11
11
|
hyde_ran, hyde_doc, hyde_raw_count, hyde_hyde_count,
|
|
12
12
|
hyde_fused_count, hyde_lift, hyde_generation_ms, hyde_reason,
|
|
13
13
|
recall_score, recall_pass, recall_relevance, recall_coverage,
|
|
14
|
-
recall_diversity, recall_specificity)
|
|
15
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
16
|
-
.run(entry.conversationId, sid, entry.turnIndex, entry.role, entry.endedAt, entry.ctxTokens ?? null, entry.ctxPercent ?? null, entry.pressureBand ?? null, entry.model ?? null, entry.epochId ?? null, entry.hyde?.ran == null ? null : entry.hyde.ran ? 1 : 0, entry.hyde?.hypotheticalDoc ?? null, entry.hyde?.rawHitCount ?? null, entry.hyde?.hydeHitCount ?? null, entry.hyde?.fusedHitCount ?? null, entry.hyde?.lift ?? null, entry.hyde?.generationMs ?? null, entry.hyde?.reason ?? null, entry.recallMetrics?.score ?? null, entry.recallMetrics?.pass == null ? null : entry.recallMetrics.pass ? 1 : 0, entry.recallMetrics?.relevance ?? null, entry.recallMetrics?.coverage ?? null, entry.recallMetrics?.diversity ?? null, entry.recallMetrics?.specificity ?? null);
|
|
14
|
+
recall_diversity, recall_specificity, session_turn_index)
|
|
15
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
|
|
16
|
+
.run(entry.conversationId, sid, entry.turnIndex, entry.role, entry.endedAt, entry.ctxTokens ?? null, entry.ctxPercent ?? null, entry.pressureBand ?? null, entry.model ?? null, entry.epochId ?? null, entry.hyde?.ran == null ? null : entry.hyde.ran ? 1 : 0, entry.hyde?.hypotheticalDoc ?? null, entry.hyde?.rawHitCount ?? null, entry.hyde?.hydeHitCount ?? null, entry.hyde?.fusedHitCount ?? null, entry.hyde?.lift ?? null, entry.hyde?.generationMs ?? null, entry.hyde?.reason ?? null, entry.recallMetrics?.score ?? null, entry.recallMetrics?.pass == null ? null : entry.recallMetrics.pass ? 1 : 0, entry.recallMetrics?.relevance ?? null, entry.recallMetrics?.coverage ?? null, entry.recallMetrics?.diversity ?? null, entry.recallMetrics?.specificity ?? null, entry.sessionTurnIndex ?? null);
|
|
17
17
|
}
|
|
18
18
|
catch (e) {
|
|
19
19
|
if (e instanceof Error &&
|
|
@@ -58,6 +58,9 @@ export class SqliteTurnStore {
|
|
|
58
58
|
conversationStats(conversationId) {
|
|
59
59
|
return read.conversationStats(this.ctx(), conversationId);
|
|
60
60
|
}
|
|
61
|
+
nextTurnIndexFor(conversationId) {
|
|
62
|
+
return read.nextTurnIndexFor(this.ctx(), conversationId);
|
|
63
|
+
}
|
|
61
64
|
// ── TurnWriter ──────────────────────────────────────────────
|
|
62
65
|
appendTurn(entry) {
|
|
63
66
|
return write.appendTurn(this.ctx(), entry);
|
|
@@ -101,6 +104,7 @@ export class SqliteTurnStore {
|
|
|
101
104
|
listForks: (id) => this.listForks(id),
|
|
102
105
|
countTurns: (id) => this.countTurns(id),
|
|
103
106
|
conversationStats: (id) => this.conversationStats(id),
|
|
107
|
+
nextTurnIndexFor: (id) => this.nextTurnIndexFor(id),
|
|
104
108
|
};
|
|
105
109
|
}
|
|
106
110
|
asWriter() {
|
package/extensions/dashboard-client/dist/assets/{AdminTab-BsA8-_bX.js → AdminTab-C4Y0_UVx.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as s,u as o,e as c,j as e}from"./index-
|
|
2
|
-
//# sourceMappingURL=AdminTab-
|
|
1
|
+
import{r as s,u as o,e as c,j as e}from"./index-CH_AD-S_.js";import{T as i}from"./toggle-Dez0JaMV.js";import r from"./MaintenanceTab-9NJuv3dB.js";import{C as l}from"./ConfigTab-BExuZYy2.js";import"./card-BGkkcM4Q.js";import"./button-BLRPN489.js";import"./switch-BPP2-d12.js";const f="MEGACOMPACT_DASH_0C";function m(n){if(!n)return!1;for(const t of n.categories)for(const a of t.settings)if(a.key===f&&a.type==="boolean")return a.value===!0;return!1}function h(){const[n,t]=s.useState("maintenance"),{data:a}=o(s.useCallback(()=>c(),[]),{pollInterval:0,maxRetries:0});return m(a)?e.jsxs("div",{className:"flex flex-col gap-4",children:[e.jsxs("div",{className:"flex items-center gap-2",role:"tablist","aria-label":"Admin views",children:[e.jsx(i,{pressed:n==="maintenance",onClick:()=>t("maintenance"),children:"Maintenance"}),e.jsx(i,{pressed:n==="config",onClick:()=>t("config"),children:"Config"})]}),n==="maintenance"?e.jsx(r,{}):e.jsx(l,{})]}):e.jsx(r,{})}export{h as default};
|
|
2
|
+
//# sourceMappingURL=AdminTab-C4Y0_UVx.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdminTab-
|
|
1
|
+
{"version":3,"file":"AdminTab-C4Y0_UVx.js","sources":["../../src/tabs/AdminTab.tsx"],"sourcesContent":["/**\n * dashboard-client/src/tabs/AdminTab.tsx — Admin tab (DASH-0c delegate-shell).\n *\n * DASH-0c: the Admin surface combines the maintenance actions with the config\n * editor. A `AdminViews` toggle (\"maintenance\" / \"config\") switches between\n * `MaintenanceTab` (the maintenance shell over MaintenanceTab/*) and `ConfigTab`\n * (the config editor). Both bodies are UNCHANGED — only their hosting changes to\n * this new delegate-shell. `MaintenanceTab.tsx` and `ConfigTab.tsx` stay importable\n * from their original hosts (`ConfigTab` also stays wired into SetupTab per the\n * dual-host note). Flag-ON renders the toggle + both views; flag-OFF renders only\n * the maintenance view (the predecessor's `admin → MaintenanceTab` mapping),\n * and App.tsx keeps its current TabId routing this sprint (DASH-0d rewires).\n *\n * Flag: `MEGACOMPACT_DASH_0C` default ON. The dashboard client is a browser\n * bundle with NO `process` global, so the positive sprint flag cannot be read\n * server-side-style (`process.env`) inside the client. Instead the flag is read\n * from the server-authoritative `/api/rag-settings` state: the server resolves\n * `process.env[\"MEGACOMPACT_DASH_0C\"] ?? default` into the `SettingState.value`\n * boolean.\n */\n\nimport type React from \"react\";\nimport { useCallback, useState } from \"react\";\nimport type { SettingsResponse } from \"@contracts\";\nimport { useApi } from \"../hooks/useApi\";\nimport { fetchSettings } from \"../api/client\";\nimport { Toggle } from \"../components/ui/toggle\";\nimport MaintenanceTab from \"./MaintenanceTab\";\nimport ConfigTab from \"./ConfigTab\";\n\nconst DASH_0C_KEY = \"MEGACOMPACT_DASH_0C\";\n\n/** Resolve the DASH-0c consolidation flag from the server settings state.\n * Absent/not-yet-loaded => false (flag-off posture), so flag-off users never\n * see the toggle flash; the toggle appears only once settings confirm it is ON. */\nfunction dash0cEnabled(settings: SettingsResponse | null): boolean {\n\tif (!settings) return false;\n\tfor (const cat of settings.categories) {\n\t\tfor (const s of cat.settings) {\n\t\t\tif (s.key === DASH_0C_KEY && s.type === \"boolean\") return s.value === true;\n\t\t}\n\t}\n\treturn false;\n}\n\ntype AdminViews = \"maintenance\" | \"config\";\n\nexport default function AdminTab(): React.ReactElement {\n\tconst [view, setView] = useState<AdminViews>(\"maintenance\");\n\n\tconst { data: settingsData } = useApi<SettingsResponse>(\n\t\tuseCallback(() => fetchSettings(), []),\n\t\t{ pollInterval: 0, maxRetries: 0 },\n\t);\n\tconst dash0cOn = dash0cEnabled(settingsData);\n\n\tif (!dash0cOn) {\n\t\treturn <MaintenanceTab />;\n\t}\n\n\treturn (\n\t\t<div className=\"flex flex-col gap-4\">\n\t\t\t<div\n\t\t\t\tclassName=\"flex items-center gap-2\"\n\t\t\t\trole=\"tablist\"\n\t\t\t\taria-label=\"Admin views\"\n\t\t\t>\n\t\t\t\t<Toggle\n\t\t\t\t\tpressed={view === \"maintenance\"}\n\t\t\t\t\tonClick={() => setView(\"maintenance\")}\n\t\t\t\t>\n\t\t\t\t\tMaintenance\n\t\t\t\t</Toggle>\n\t\t\t\t<Toggle pressed={view === \"config\"} onClick={() => setView(\"config\")}>\n\t\t\t\t\tConfig\n\t\t\t\t</Toggle>\n\t\t\t</div>\n\t\t\t{view === \"maintenance\" ? <MaintenanceTab /> : <ConfigTab />}\n\t\t</div>\n\t);\n}\n"],"names":["DASH_0C_KEY","dash0cEnabled","settings","cat","s","AdminTab","view","setView","useState","settingsData","useApi","useCallback","fetchSettings","jsxs","jsx","Toggle","MaintenanceTab","ConfigTab"],"mappings":"mRA8BA,MAAMA,EAAc,sBAKpB,SAASC,EAAcC,EAA4C,CAClE,GAAI,CAACA,EAAU,MAAO,GACtB,UAAWC,KAAOD,EAAS,WAC1B,UAAWE,KAAKD,EAAI,SACnB,GAAIC,EAAE,MAAQJ,GAAeI,EAAE,OAAS,UAAW,OAAOA,EAAE,QAAU,GAGxE,MAAO,EACR,CAIA,SAAwBC,GAA+B,CACtD,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAAA,SAAqB,aAAa,EAEpD,CAAE,KAAMC,CAAA,EAAiBC,EAC9BC,cAAY,IAAMC,EAAA,EAAiB,EAAE,EACrC,CAAE,aAAc,EAAG,WAAY,CAAA,CAAE,EAIlC,OAFiBX,EAAcQ,CAAY,EAO1CI,EAAAA,KAAC,MAAA,CAAI,UAAU,sBACd,SAAA,CAAAA,EAAAA,KAAC,MAAA,CACA,UAAU,0BACV,KAAK,UACL,aAAW,cAEX,SAAA,CAAAC,EAAAA,IAACC,EAAA,CACA,QAAST,IAAS,cAClB,QAAS,IAAMC,EAAQ,aAAa,EACpC,SAAA,aAAA,CAAA,EAGDO,EAAAA,IAACC,EAAA,CAAO,QAAST,IAAS,SAAU,QAAS,IAAMC,EAAQ,QAAQ,EAAG,SAAA,QAAA,CAEtE,CAAA,CAAA,CAAA,EAEAD,IAAS,cAAgBQ,MAACE,EAAA,CAAA,CAAe,QAAMC,EAAA,CAAA,CAAU,CAAA,EAC3D,QArBQD,EAAA,EAAe,CAuBzB"}
|
package/extensions/dashboard-client/dist/assets/{AreaChart-BRHEfWhc.js → AreaChart-MCWK9rn6.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as R,c as W,m as T,i as C,d as F,A as ie,e as B,h as q,j as oe,k as G,l as se,n as le,u as ue,o as K,G as ce,p as J,q as Q,D as fe,g as pe,X as he,Y as de,f as me}from"./generateCategoricalChart-JKjK9_cB.js";import{R as p,J as ee,r as ve}from"./index-iuxgtzEW.js";var ye=["layout","type","stroke","connectNulls","isRange","ref"],be=["key"],te;function M(e){"@babel/helpers - typeof";return M=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},M(e)}function ae(e,t){if(e==null)return{};var r=Ae(e,t),a,n;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}function Ae(e,t){if(e==null)return{};var r={};for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){if(t.indexOf(a)>=0)continue;r[a]=e[a]}return r}function D(){return D=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},D.apply(this,arguments)}function U(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,a)}return r}function S(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?U(Object(r),!0).forEach(function(a){E(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):U(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function ge(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Z(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,ne(a.key),a)}}function xe(e,t,r){return t&&Z(e.prototype,t),r&&Z(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Pe(e,t,r){return t=$(t),Oe(e,re()?Reflect.construct(t,r||[],$(e).constructor):t.apply(e,r))}function Oe(e,t){if(t&&(M(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ee(e)}function Ee(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function re(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(re=function(){return!!e})()}function $(e){return $=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},$(e)}function we(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&X(e,t)}function X(e,t){return X=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,n){return a.__proto__=n,a},X(e,t)}function E(e,t,r){return t=ne(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ne(e){var t=_e(e,"string");return M(t)=="symbol"?t:t+""}function _e(e,t){if(M(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(M(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var L=function(e){function t(){var r;ge(this,t);for(var a=arguments.length,n=new Array(a),i=0;i<a;i++)n[i]=arguments[i];return r=Pe(this,t,[].concat(n)),E(r,"state",{isAnimationFinished:!0}),E(r,"id",ue("recharts-area-")),E(r,"handleAnimationEnd",function(){var o=r.props.onAnimationEnd;r.setState({isAnimationFinished:!0}),K(o)&&o()}),E(r,"handleAnimationStart",function(){var o=r.props.onAnimationStart;r.setState({isAnimationFinished:!1}),K(o)&&o()}),r}return we(t,e),xe(t,[{key:"renderDots",value:function(a,n,i){var o=this.props.isAnimationActive,s=this.state.isAnimationFinished;if(o&&!s)return null;var u=this.props,l=u.dot,f=u.points,c=u.dataKey,h=R(this.props,!1),A=R(l,!0),g=f.map(function(v,O){var y=S(S(S({key:"dot-".concat(O),r:3},h),A),{},{index:O,cx:v.x,cy:v.y,dataKey:c,value:v.value,payload:v.payload,points:f});return t.renderDotItem(l,y)}),x={clipPath:a?"url(#clipPath-".concat(n?"":"dots-").concat(i,")"):null};return p.createElement(W,D({className:"recharts-area-dots"},x),g)}},{key:"renderHorizontalRect",value:function(a){var n=this.props,i=n.baseLine,o=n.points,s=n.strokeWidth,u=o[0].x,l=o[o.length-1].x,f=a*Math.abs(u-l),c=T(o.map(function(h){return h.y||0}));return C(i)&&typeof i=="number"?c=Math.max(i,c):i&&Array.isArray(i)&&i.length&&(c=Math.max(T(i.map(function(h){return h.y||0})),c)),C(c)?p.createElement("rect",{x:u<l?u:u-f,y:0,width:f,height:Math.floor(c+(s?parseInt("".concat(s),10):1))}):null}},{key:"renderVerticalRect",value:function(a){var n=this.props,i=n.baseLine,o=n.points,s=n.strokeWidth,u=o[0].y,l=o[o.length-1].y,f=a*Math.abs(u-l),c=T(o.map(function(h){return h.x||0}));return C(i)&&typeof i=="number"?c=Math.max(i,c):i&&Array.isArray(i)&&i.length&&(c=Math.max(T(i.map(function(h){return h.x||0})),c)),C(c)?p.createElement("rect",{x:0,y:u<l?u:u-f,width:c+(s?parseInt("".concat(s),10):1),height:Math.floor(f)}):null}},{key:"renderClipRect",value:function(a){var n=this.props.layout;return n==="vertical"?this.renderVerticalRect(a):this.renderHorizontalRect(a)}},{key:"renderAreaStatically",value:function(a,n,i,o){var s=this.props,u=s.layout,l=s.type,f=s.stroke,c=s.connectNulls,h=s.isRange;s.ref;var A=ae(s,ye);return p.createElement(W,{clipPath:i?"url(#clipPath-".concat(o,")"):null},p.createElement(F,D({},R(A,!0),{points:a,connectNulls:c,type:l,baseLine:n,layout:u,stroke:"none",className:"recharts-area-area"})),f!=="none"&&p.createElement(F,D({},R(this.props,!1),{className:"recharts-area-curve",layout:u,type:l,connectNulls:c,fill:"none",points:a})),f!=="none"&&h&&p.createElement(F,D({},R(this.props,!1),{className:"recharts-area-curve",layout:u,type:l,connectNulls:c,fill:"none",points:n})))}},{key:"renderAreaWithAnimation",value:function(a,n){var i=this,o=this.props,s=o.points,u=o.baseLine,l=o.isAnimationActive,f=o.animationBegin,c=o.animationDuration,h=o.animationEasing,A=o.animationId,g=this.state,x=g.prevPoints,v=g.prevBaseLine;return p.createElement(ie,{begin:f,duration:c,isActive:l,easing:h,from:{t:0},to:{t:1},key:"area-".concat(A),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(O){var y=O.t;if(x){var _=x.length/s.length,d=s.map(function(P,N){var k=Math.floor(N*_);if(x[k]){var j=x[k],I=B(j.x,P.x),V=B(j.y,P.y);return S(S({},P),{},{x:I(y),y:V(y)})}return P}),m;if(C(u)&&typeof u=="number"){var b=B(v,u);m=b(y)}else if(q(u)||oe(u)){var w=B(v,0);m=w(y)}else m=u.map(function(P,N){var k=Math.floor(N*_);if(v[k]){var j=v[k],I=B(j.x,P.x),V=B(j.y,P.y);return S(S({},P),{},{x:I(y),y:V(y)})}return P});return i.renderAreaStatically(d,m,a,n)}return p.createElement(W,null,p.createElement("defs",null,p.createElement("clipPath",{id:"animationClipPath-".concat(n)},i.renderClipRect(y))),p.createElement(W,{clipPath:"url(#animationClipPath-".concat(n,")")},i.renderAreaStatically(s,u,a,n)))})}},{key:"renderArea",value:function(a,n){var i=this.props,o=i.points,s=i.baseLine,u=i.isAnimationActive,l=this.state,f=l.prevPoints,c=l.prevBaseLine,h=l.totalLength;return u&&o&&o.length&&(!f&&h>0||!G(f,o)||!G(c,s))?this.renderAreaWithAnimation(a,n):this.renderAreaStatically(o,s,a,n)}},{key:"render",value:function(){var a,n=this.props,i=n.hide,o=n.dot,s=n.points,u=n.className,l=n.top,f=n.left,c=n.xAxis,h=n.yAxis,A=n.width,g=n.height,x=n.isAnimationActive,v=n.id;if(i||!s||!s.length)return null;var O=this.state.isAnimationFinished,y=s.length===1,_=ee("recharts-area",u),d=c&&c.allowDataOverflow,m=h&&h.allowDataOverflow,b=d||m,w=q(v)?this.id:v,P=(a=R(o,!1))!==null&&a!==void 0?a:{r:3,strokeWidth:2},N=P.r,k=N===void 0?3:N,j=P.strokeWidth,I=j===void 0?2:j,V=se(o)?o:{},Y=V.clipDot,H=Y===void 0?!0:Y,z=k*2+I;return p.createElement(W,{className:_},d||m?p.createElement("defs",null,p.createElement("clipPath",{id:"clipPath-".concat(w)},p.createElement("rect",{x:d?f:f-A/2,y:m?l:l-g/2,width:d?A:A*2,height:m?g:g*2})),!H&&p.createElement("clipPath",{id:"clipPath-dots-".concat(w)},p.createElement("rect",{x:f-z/2,y:l-z/2,width:A+z,height:g+z}))):null,y?null:this.renderArea(b,w),(o||y)&&this.renderDots(b,H,w),(!x||O)&&le.renderCallByParent(this.props,s))}}],[{key:"getDerivedStateFromProps",value:function(a,n){return a.animationId!==n.prevAnimationId?{prevAnimationId:a.animationId,curPoints:a.points,curBaseLine:a.baseLine,prevPoints:n.curPoints,prevBaseLine:n.curBaseLine}:a.points!==n.curPoints||a.baseLine!==n.curBaseLine?{curPoints:a.points,curBaseLine:a.baseLine}:null}}])}(ve.PureComponent);te=L;E(L,"displayName","Area");E(L,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!ce.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});E(L,"getBaseValue",function(e,t,r,a){var n=e.layout,i=e.baseValue,o=t.props.baseValue,s=o??i;if(C(s)&&typeof s=="number")return s;var u=n==="horizontal"?a:r,l=u.scale.domain();if(u.type==="number"){var f=Math.max(l[0],l[1]),c=Math.min(l[0],l[1]);return s==="dataMin"?c:s==="dataMax"||f<0?f:Math.max(Math.min(l[0],l[1]),0)}return s==="dataMin"?l[0]:s==="dataMax"?l[1]:l[0]});E(L,"getComposedData",function(e){var t=e.props,r=e.item,a=e.xAxis,n=e.yAxis,i=e.xAxisTicks,o=e.yAxisTicks,s=e.bandSize,u=e.dataKey,l=e.stackedData,f=e.dataStartIndex,c=e.displayedData,h=e.offset,A=t.layout,g=l&&l.length,x=te.getBaseValue(t,r,a,n),v=A==="horizontal",O=!1,y=c.map(function(d,m){var b;g?b=l[f+m]:(b=J(d,u),Array.isArray(b)?O=!0:b=[x,b]);var w=b[1]==null||g&&J(d,u)==null;return v?{x:Q({axis:a,ticks:i,bandSize:s,entry:d,index:m}),y:w?null:n.scale(b[1]),value:b,payload:d}:{x:w?null:a.scale(b[1]),y:Q({axis:n,ticks:o,bandSize:s,entry:d,index:m}),value:b,payload:d}}),_;return g||O?_=y.map(function(d){var m=Array.isArray(d.value)?d.value[0]:null;return v?{x:d.x,y:m!=null&&d.y!=null?n.scale(m):null}:{x:m!=null?a.scale(m):null,y:d.y}}):_=v?n.scale(x):a.scale(x),S({points:y,baseLine:_,layout:A,isRange:O},h)});E(L,"renderDotItem",function(e,t){var r;if(p.isValidElement(e))r=p.cloneElement(e,t);else if(K(e))r=e(t);else{var a=ee("recharts-area-dot",typeof e!="boolean"?e.className:""),n=t.key,i=ae(t,be);r=p.createElement(fe,D({},i,{key:n,className:a}))}return r});var ke=pe({chartName:"AreaChart",GraphicalChild:L,axisComponents:[{axisType:"xAxis",AxisComp:he},{axisType:"yAxis",AxisComp:de}],formatAxisMap:me});export{ke as A,L as a};
|
|
2
|
-
//# sourceMappingURL=AreaChart-
|
|
1
|
+
import{b as R,c as W,m as T,i as C,d as F,A as ie,e as B,h as q,j as oe,k as G,l as se,n as le,u as ue,o as K,G as ce,p as J,q as Q,D as fe,g as pe,X as he,Y as de,f as me}from"./generateCategoricalChart-Dl5lmrHF.js";import{R as p,J as ee,r as ve}from"./index-CH_AD-S_.js";var ye=["layout","type","stroke","connectNulls","isRange","ref"],be=["key"],te;function M(e){"@babel/helpers - typeof";return M=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},M(e)}function ae(e,t){if(e==null)return{};var r=Ae(e,t),a,n;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n<i.length;n++)a=i[n],!(t.indexOf(a)>=0)&&Object.prototype.propertyIsEnumerable.call(e,a)&&(r[a]=e[a])}return r}function Ae(e,t){if(e==null)return{};var r={};for(var a in e)if(Object.prototype.hasOwnProperty.call(e,a)){if(t.indexOf(a)>=0)continue;r[a]=e[a]}return r}function D(){return D=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var a in r)Object.prototype.hasOwnProperty.call(r,a)&&(e[a]=r[a])}return e},D.apply(this,arguments)}function U(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,a)}return r}function S(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?U(Object(r),!0).forEach(function(a){E(e,a,r[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):U(Object(r)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(r,a))})}return e}function ge(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Z(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,ne(a.key),a)}}function xe(e,t,r){return t&&Z(e.prototype,t),r&&Z(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function Pe(e,t,r){return t=$(t),Oe(e,re()?Reflect.construct(t,r||[],$(e).constructor):t.apply(e,r))}function Oe(e,t){if(t&&(M(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ee(e)}function Ee(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function re(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(re=function(){return!!e})()}function $(e){return $=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},$(e)}function we(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&X(e,t)}function X(e,t){return X=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(a,n){return a.__proto__=n,a},X(e,t)}function E(e,t,r){return t=ne(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ne(e){var t=_e(e,"string");return M(t)=="symbol"?t:t+""}function _e(e,t){if(M(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var a=r.call(e,t);if(M(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}var L=function(e){function t(){var r;ge(this,t);for(var a=arguments.length,n=new Array(a),i=0;i<a;i++)n[i]=arguments[i];return r=Pe(this,t,[].concat(n)),E(r,"state",{isAnimationFinished:!0}),E(r,"id",ue("recharts-area-")),E(r,"handleAnimationEnd",function(){var o=r.props.onAnimationEnd;r.setState({isAnimationFinished:!0}),K(o)&&o()}),E(r,"handleAnimationStart",function(){var o=r.props.onAnimationStart;r.setState({isAnimationFinished:!1}),K(o)&&o()}),r}return we(t,e),xe(t,[{key:"renderDots",value:function(a,n,i){var o=this.props.isAnimationActive,s=this.state.isAnimationFinished;if(o&&!s)return null;var u=this.props,l=u.dot,f=u.points,c=u.dataKey,h=R(this.props,!1),A=R(l,!0),g=f.map(function(v,O){var y=S(S(S({key:"dot-".concat(O),r:3},h),A),{},{index:O,cx:v.x,cy:v.y,dataKey:c,value:v.value,payload:v.payload,points:f});return t.renderDotItem(l,y)}),x={clipPath:a?"url(#clipPath-".concat(n?"":"dots-").concat(i,")"):null};return p.createElement(W,D({className:"recharts-area-dots"},x),g)}},{key:"renderHorizontalRect",value:function(a){var n=this.props,i=n.baseLine,o=n.points,s=n.strokeWidth,u=o[0].x,l=o[o.length-1].x,f=a*Math.abs(u-l),c=T(o.map(function(h){return h.y||0}));return C(i)&&typeof i=="number"?c=Math.max(i,c):i&&Array.isArray(i)&&i.length&&(c=Math.max(T(i.map(function(h){return h.y||0})),c)),C(c)?p.createElement("rect",{x:u<l?u:u-f,y:0,width:f,height:Math.floor(c+(s?parseInt("".concat(s),10):1))}):null}},{key:"renderVerticalRect",value:function(a){var n=this.props,i=n.baseLine,o=n.points,s=n.strokeWidth,u=o[0].y,l=o[o.length-1].y,f=a*Math.abs(u-l),c=T(o.map(function(h){return h.x||0}));return C(i)&&typeof i=="number"?c=Math.max(i,c):i&&Array.isArray(i)&&i.length&&(c=Math.max(T(i.map(function(h){return h.x||0})),c)),C(c)?p.createElement("rect",{x:0,y:u<l?u:u-f,width:c+(s?parseInt("".concat(s),10):1),height:Math.floor(f)}):null}},{key:"renderClipRect",value:function(a){var n=this.props.layout;return n==="vertical"?this.renderVerticalRect(a):this.renderHorizontalRect(a)}},{key:"renderAreaStatically",value:function(a,n,i,o){var s=this.props,u=s.layout,l=s.type,f=s.stroke,c=s.connectNulls,h=s.isRange;s.ref;var A=ae(s,ye);return p.createElement(W,{clipPath:i?"url(#clipPath-".concat(o,")"):null},p.createElement(F,D({},R(A,!0),{points:a,connectNulls:c,type:l,baseLine:n,layout:u,stroke:"none",className:"recharts-area-area"})),f!=="none"&&p.createElement(F,D({},R(this.props,!1),{className:"recharts-area-curve",layout:u,type:l,connectNulls:c,fill:"none",points:a})),f!=="none"&&h&&p.createElement(F,D({},R(this.props,!1),{className:"recharts-area-curve",layout:u,type:l,connectNulls:c,fill:"none",points:n})))}},{key:"renderAreaWithAnimation",value:function(a,n){var i=this,o=this.props,s=o.points,u=o.baseLine,l=o.isAnimationActive,f=o.animationBegin,c=o.animationDuration,h=o.animationEasing,A=o.animationId,g=this.state,x=g.prevPoints,v=g.prevBaseLine;return p.createElement(ie,{begin:f,duration:c,isActive:l,easing:h,from:{t:0},to:{t:1},key:"area-".concat(A),onAnimationEnd:this.handleAnimationEnd,onAnimationStart:this.handleAnimationStart},function(O){var y=O.t;if(x){var _=x.length/s.length,d=s.map(function(P,N){var k=Math.floor(N*_);if(x[k]){var j=x[k],I=B(j.x,P.x),V=B(j.y,P.y);return S(S({},P),{},{x:I(y),y:V(y)})}return P}),m;if(C(u)&&typeof u=="number"){var b=B(v,u);m=b(y)}else if(q(u)||oe(u)){var w=B(v,0);m=w(y)}else m=u.map(function(P,N){var k=Math.floor(N*_);if(v[k]){var j=v[k],I=B(j.x,P.x),V=B(j.y,P.y);return S(S({},P),{},{x:I(y),y:V(y)})}return P});return i.renderAreaStatically(d,m,a,n)}return p.createElement(W,null,p.createElement("defs",null,p.createElement("clipPath",{id:"animationClipPath-".concat(n)},i.renderClipRect(y))),p.createElement(W,{clipPath:"url(#animationClipPath-".concat(n,")")},i.renderAreaStatically(s,u,a,n)))})}},{key:"renderArea",value:function(a,n){var i=this.props,o=i.points,s=i.baseLine,u=i.isAnimationActive,l=this.state,f=l.prevPoints,c=l.prevBaseLine,h=l.totalLength;return u&&o&&o.length&&(!f&&h>0||!G(f,o)||!G(c,s))?this.renderAreaWithAnimation(a,n):this.renderAreaStatically(o,s,a,n)}},{key:"render",value:function(){var a,n=this.props,i=n.hide,o=n.dot,s=n.points,u=n.className,l=n.top,f=n.left,c=n.xAxis,h=n.yAxis,A=n.width,g=n.height,x=n.isAnimationActive,v=n.id;if(i||!s||!s.length)return null;var O=this.state.isAnimationFinished,y=s.length===1,_=ee("recharts-area",u),d=c&&c.allowDataOverflow,m=h&&h.allowDataOverflow,b=d||m,w=q(v)?this.id:v,P=(a=R(o,!1))!==null&&a!==void 0?a:{r:3,strokeWidth:2},N=P.r,k=N===void 0?3:N,j=P.strokeWidth,I=j===void 0?2:j,V=se(o)?o:{},Y=V.clipDot,H=Y===void 0?!0:Y,z=k*2+I;return p.createElement(W,{className:_},d||m?p.createElement("defs",null,p.createElement("clipPath",{id:"clipPath-".concat(w)},p.createElement("rect",{x:d?f:f-A/2,y:m?l:l-g/2,width:d?A:A*2,height:m?g:g*2})),!H&&p.createElement("clipPath",{id:"clipPath-dots-".concat(w)},p.createElement("rect",{x:f-z/2,y:l-z/2,width:A+z,height:g+z}))):null,y?null:this.renderArea(b,w),(o||y)&&this.renderDots(b,H,w),(!x||O)&&le.renderCallByParent(this.props,s))}}],[{key:"getDerivedStateFromProps",value:function(a,n){return a.animationId!==n.prevAnimationId?{prevAnimationId:a.animationId,curPoints:a.points,curBaseLine:a.baseLine,prevPoints:n.curPoints,prevBaseLine:n.curBaseLine}:a.points!==n.curPoints||a.baseLine!==n.curBaseLine?{curPoints:a.points,curBaseLine:a.baseLine}:null}}])}(ve.PureComponent);te=L;E(L,"displayName","Area");E(L,"defaultProps",{stroke:"#3182bd",fill:"#3182bd",fillOpacity:.6,xAxisId:0,yAxisId:0,legendType:"line",connectNulls:!1,points:[],dot:!1,activeDot:!0,hide:!1,isAnimationActive:!ce.isSsr,animationBegin:0,animationDuration:1500,animationEasing:"ease"});E(L,"getBaseValue",function(e,t,r,a){var n=e.layout,i=e.baseValue,o=t.props.baseValue,s=o??i;if(C(s)&&typeof s=="number")return s;var u=n==="horizontal"?a:r,l=u.scale.domain();if(u.type==="number"){var f=Math.max(l[0],l[1]),c=Math.min(l[0],l[1]);return s==="dataMin"?c:s==="dataMax"||f<0?f:Math.max(Math.min(l[0],l[1]),0)}return s==="dataMin"?l[0]:s==="dataMax"?l[1]:l[0]});E(L,"getComposedData",function(e){var t=e.props,r=e.item,a=e.xAxis,n=e.yAxis,i=e.xAxisTicks,o=e.yAxisTicks,s=e.bandSize,u=e.dataKey,l=e.stackedData,f=e.dataStartIndex,c=e.displayedData,h=e.offset,A=t.layout,g=l&&l.length,x=te.getBaseValue(t,r,a,n),v=A==="horizontal",O=!1,y=c.map(function(d,m){var b;g?b=l[f+m]:(b=J(d,u),Array.isArray(b)?O=!0:b=[x,b]);var w=b[1]==null||g&&J(d,u)==null;return v?{x:Q({axis:a,ticks:i,bandSize:s,entry:d,index:m}),y:w?null:n.scale(b[1]),value:b,payload:d}:{x:w?null:a.scale(b[1]),y:Q({axis:n,ticks:o,bandSize:s,entry:d,index:m}),value:b,payload:d}}),_;return g||O?_=y.map(function(d){var m=Array.isArray(d.value)?d.value[0]:null;return v?{x:d.x,y:m!=null&&d.y!=null?n.scale(m):null}:{x:m!=null?a.scale(m):null,y:d.y}}):_=v?n.scale(x):a.scale(x),S({points:y,baseLine:_,layout:A,isRange:O},h)});E(L,"renderDotItem",function(e,t){var r;if(p.isValidElement(e))r=p.cloneElement(e,t);else if(K(e))r=e(t);else{var a=ee("recharts-area-dot",typeof e!="boolean"?e.className:""),n=t.key,i=ae(t,be);r=p.createElement(fe,D({},i,{key:n,className:a}))}return r});var ke=pe({chartName:"AreaChart",GraphicalChild:L,axisComponents:[{axisType:"xAxis",AxisComp:he},{axisType:"yAxis",AxisComp:de}],formatAxisMap:me});export{ke as A,L as a};
|
|
2
|
+
//# sourceMappingURL=AreaChart-MCWK9rn6.js.map
|