@marimo-team/frontend 0.25.1-dev16 → 0.25.1-dev18
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/assets/{ConnectedDataExplorerComponent-C88h4lNt.js → ConnectedDataExplorerComponent-C2uC5lJf.js} +1 -1
- package/dist/assets/{ErrorBoundary-DiVAOuIu.js → ErrorBoundary-BVJqkhwk.js} +2 -2
- package/dist/assets/{LazyAnyLanguageCodeMirror-CkatLiPl.js → LazyAnyLanguageCodeMirror-BqNgl9tZ.js} +2 -2
- package/dist/assets/{RunButton-CUNPkj6f.js → RunButton-adYpTAaW.js} +7 -7
- package/dist/assets/{abnfDiagram-VCTEODGH-Bu_tX3p0.js → abnfDiagram-VCTEODGH-Daqziwy1.js} +1 -1
- package/dist/assets/{add-cell-with-ai-Cy3EWZ0o.js → add-cell-with-ai-CjPxSVh0.js} +10 -10
- package/dist/assets/{agent-panel-swPAoSNP.js → agent-panel-mRH4isVn.js} +4 -4
- package/dist/assets/{ai-model-dropdown-DMLd7Ok7.js → ai-model-dropdown-BZNUB6Iv.js} +1 -1
- package/dist/assets/{any-language-editor-DPDwgVWc.js → any-language-editor-DRf07PJG.js} +1 -1
- package/dist/assets/{app-config-button-BgkqErn7.js → app-config-button-Cc7EMA4I.js} +1 -1
- package/dist/assets/{architectureDiagram-5GKGNRK7-9Q5iChpn.js → architectureDiagram-5GKGNRK7-YBlh_63B.js} +1 -1
- package/dist/assets/{blockDiagram-I7D4REHJ-D47vsx_7.js → blockDiagram-I7D4REHJ-Ci6Gslkc.js} +1 -1
- package/dist/assets/{cache-panel-C9dxBcWT.js → cache-panel-BBQ7HY25.js} +1 -1
- package/dist/assets/{cells-Cu3p4E4U.js → cells-B3WiM6w3.js} +3 -3
- package/dist/assets/{chat-display-DobIxXep.js → chat-display-ChsJwSGb.js} +1 -1
- package/dist/assets/{chat-panel-Ev94a9aD.js → chat-panel-tXybKozg.js} +1 -1
- package/dist/assets/{chat-ui-DIc6DoGG.js → chat-ui-Dj4a0ZyX.js} +1 -1
- package/dist/assets/{chunk-IMKFNOWR-DRUNgD5B.js → chunk-IMKFNOWR-CVUGMMR5.js} +1 -1
- package/dist/assets/{chunk-SHT3W25Y-BKFQDWQj.js → chunk-SHT3W25Y-V-OZGYmC.js} +1 -1
- package/dist/assets/{chunk-SVP7TREG-BR7XpR63.js → chunk-SVP7TREG-NYpzvObK.js} +1 -1
- package/dist/assets/{chunk-TICWLB2K-CPOfaVwm.js → chunk-TICWLB2K-DAmEhpdA.js} +1 -1
- package/dist/assets/{classDiagram-ZZMXUADV-C0jDVe7U.js → classDiagram-ZZMXUADV-DmHJAfc5.js} +1 -1
- package/dist/assets/{classDiagram-v2-VYDZK3BY-C0jDVe7U.js → classDiagram-v2-VYDZK3BY-DmHJAfc5.js} +1 -1
- package/dist/assets/{code-visibility-D1cfOivN.js → code-visibility-DEaFLO3A.js} +1 -1
- package/dist/assets/{command-palette-CfaWFdS5.js → command-palette-CERIrl2Z.js} +1 -1
- package/dist/assets/{common-ER8tZQOB.js → common-DBH2dPfd.js} +1 -1
- package/dist/assets/{components-CQp_u_qU.js → components-Chs3VCBR.js} +1 -1
- package/dist/assets/{components-Bzlif-Xy.js → components-CuWdJDJ8.js} +1 -1
- package/dist/assets/{cynefinDiagram-5FMLGOSQ-xxaZ3oY1.js → cynefinDiagram-5FMLGOSQ-DTjbXw-r.js} +1 -1
- package/dist/assets/{dagre-BxiUqoXs.js → dagre-4szy_3ND.js} +1 -1
- package/dist/assets/{dagre-GXQ25YYZ-DjsT6A0_.js → dagre-GXQ25YYZ-BLLPL51D.js} +1 -1
- package/dist/assets/{data-grid-overlay-editor-BMDpaQHy.js → data-grid-overlay-editor-CD6nx7Jc.js} +1 -1
- package/dist/assets/{dependency-graph-panel-BN1v8eqX.js → dependency-graph-panel-Dsa9_1CE.js} +1 -1
- package/dist/assets/{diagram-S7CK7UJ4-qn3M7v_r.js → diagram-S7CK7UJ4-BEOWs3DZ.js} +1 -1
- package/dist/assets/{diagram-UQ7AKVKN-DjJKRGSt.js → diagram-UQ7AKVKN-DhcB9YNh.js} +1 -1
- package/dist/assets/{diagram-VX7I27RA-Dx0eaNGE.js → diagram-VX7I27RA-BZS6D99M.js} +1 -1
- package/dist/assets/{diagram-Z3DM3KII-BtD5Tvot.js → diagram-Z3DM3KII-Df9yG0Dr.js} +1 -1
- package/dist/assets/{documentation-panel-C1k9zWpE.js → documentation-panel-cgPFYBCG.js} +1 -1
- package/dist/assets/{ebnfDiagram-PWID7BFC-CUDaB3xm.js → ebnfDiagram-PWID7BFC-D44ZGUpd.js} +1 -1
- package/dist/assets/{edit-page-BgBPK9rm.js → edit-page-5BoxMdRg.js} +8 -8
- package/dist/assets/{erDiagram-RLTQ6QDP-D5QfyITG.js → erDiagram-RLTQ6QDP-wMbCu1k0.js} +1 -1
- package/dist/assets/{error-entries-BUsiy4Fq.js → error-entries-BpXezjVq.js} +1 -1
- package/dist/assets/{error-panel-fDWrtqWJ.js → error-panel-BQkG8Owp.js} +1 -1
- package/dist/assets/{feedback-button-DKnF4IZg.js → feedback-button-L9wRkYQK.js} +1 -1
- package/dist/assets/{file-explorer-panel-D5b5pQm0.js → file-explorer-panel-BqbyZB-C.js} +1 -1
- package/dist/assets/{file-name-input-6E-vGC4V.js → file-name-input-BIU5kyHZ.js} +1 -1
- package/dist/assets/{flowDiagram-HODETNUW-3hwuEHTh.js → flowDiagram-HODETNUW-DXu8WHYs.js} +1 -1
- package/dist/assets/{gallery-page-OvrQB8WT.js → gallery-page-CfV7ZAmL.js} +1 -1
- package/dist/assets/{glide-data-editor-DEc95Jky.js → glide-data-editor-0wu6GiLW.js} +4 -4
- package/dist/assets/{graphlib-CLd3V0ts.js → graphlib-CTJqVmKw.js} +1 -1
- package/dist/assets/has-CGywqNo7.js +1 -0
- package/dist/assets/{home-page-B7W1L-OK.js → home-page-BpvVdseG.js} +1 -1
- package/dist/assets/{index-CFkhNhbS.js → index-D0aUt523.js} +31 -31
- package/dist/assets/{infoDiagram-27XIBGKW-DN3dObkS.js → infoDiagram-27XIBGKW-Cdc1u3v9.js} +1 -1
- package/dist/assets/{ishikawaDiagram-5VMMS53U-Cax2OAWY.js → ishikawaDiagram-5VMMS53U-CBLHwkrk.js} +1 -1
- package/dist/assets/{kanban-definition-UXKFOSKX-B_oBDTKt.js → kanban-definition-UXKFOSKX-B9VLtQSr.js} +1 -1
- package/dist/assets/{logs-panel-D6BBECr0.js → logs-panel-bEm9k3zD.js} +1 -1
- package/dist/assets/{mermaid-EX7AbpFE.js → mermaid-3TiKkcPE.js} +4 -4
- package/dist/assets/{mindmap-definition-YA3MSWOX-qe19Ch3D.js → mindmap-definition-YA3MSWOX-wGOfhH41.js} +1 -1
- package/dist/assets/{number-overlay-editor-D81yKd3F.js → number-overlay-editor-K9e5ZWrL.js} +1 -1
- package/dist/assets/{outline-panel-BQBJjsUS.js → outline-panel-CffssgnN.js} +1 -1
- package/dist/assets/{packages-panel-BSVIZyMQ.js → packages-panel-CKmdUILr.js} +1 -1
- package/dist/assets/{panels-BreVgQOP.js → panels-14vO4F3h.js} +6 -6
- package/dist/assets/{pegDiagram-XKGWAZYB-Cl13AdW_.js → pegDiagram-XKGWAZYB-BCEdVP7M.js} +1 -1
- package/dist/assets/{pieDiagram-E7YTZNPT-Bnd8KxW8.js → pieDiagram-E7YTZNPT-C8l_dDam.js} +1 -1
- package/dist/assets/{process-output-B9QFfnai.js → process-output-ZDYA_DfN.js} +1 -1
- package/dist/assets/{railroadDiagram-O6MQD6OU-Bad0FlEg.js → railroadDiagram-O6MQD6OU-t5SV0Qh9.js} +1 -1
- package/dist/assets/{requirementDiagram-BXWQKSXE-34nf0NrD.js → requirementDiagram-BXWQKSXE-CQaLae__.js} +1 -1
- package/dist/assets/{reveal-component-BegUwJVp.js → reveal-component-Ce4laJYz.js} +1 -1
- package/dist/assets/run-page-BFPh-t5N.js +1 -0
- package/dist/assets/{scratchpad-panel-S1y3VnQO.js → scratchpad-panel--eaSPPbI.js} +1 -1
- package/dist/assets/{secrets-panel-G2Aj9SWg.js → secrets-panel-D5VC4iGd.js} +1 -1
- package/dist/assets/{sequenceDiagram-WJ2MYXX4-ClHJhNso.js → sequenceDiagram-WJ2MYXX4-BdUEvoNa.js} +1 -1
- package/dist/assets/session-panel-C4xjKL7P.js +1 -0
- package/dist/assets/snippets-panel-D5IV2SYF.js +1 -0
- package/dist/assets/{stateDiagram-D77RDMKH-BeZHwiLL.js → stateDiagram-D77RDMKH-BxQBCmyb.js} +1 -1
- package/dist/assets/{stateDiagram-v2-MP3YSRHH-D59SiroM.js → stateDiagram-v2-MP3YSRHH-ldBZz7Qk.js} +1 -1
- package/dist/assets/{swimlanes-42K2YHIH-CEHZ_wNP.js → swimlanes-42K2YHIH-DyeulHZ_.js} +1 -1
- package/dist/assets/{swimlanesDiagram-VR7AAH4N-CksbNI_5.js → swimlanesDiagram-VR7AAH4N-DtS183IV.js} +1 -1
- package/dist/assets/{swiper-component-BwuajfC4.js → swiper-component-IXbGG3F9.js} +1 -1
- package/dist/assets/{terminal-nQemI-ox.js → terminal-B0l9hsf7.js} +1 -1
- package/dist/assets/{timeline-definition-24CTP7MA-CO91WfCC.js → timeline-definition-24CTP7MA-Do_68DsI.js} +1 -1
- package/dist/assets/tooltip-PLkI_UfK.js +61 -0
- package/dist/assets/{tracing-DyWIgk_H.js → tracing-CKx0JpOw.js} +1 -1
- package/dist/assets/{tracing-panel-ByWvTIr8.js → tracing-panel-CSkFln9f.js} +2 -2
- package/dist/assets/{useCellActionButton-BZe-h0kJ.js → useCellActionButton-YroFjW8i.js} +1 -1
- package/dist/assets/{vega-component-Cjh3h2aI.js → vega-component-B_nXcaF8.js} +1 -1
- package/dist/assets/{vega-embed-container-DfPdbYzv.js → vega-embed-container-Bwqt153O.js} +1 -1
- package/dist/assets/{vennDiagram-4TSXK5OY-CCnDWK9v.js → vennDiagram-4TSXK5OY-DkrPIenW.js} +1 -1
- package/dist/assets/{wardleyDiagram-VM6X3IG4-DnS2_ZhP.js → wardleyDiagram-VM6X3IG4-Bx7dpVo2.js} +1 -1
- package/dist/assets/{write-secret-modal-CBUZw27N.js → write-secret-modal-BiG2tahJ.js} +1 -1
- package/dist/assets/{xychartDiagram-S5SC5T6Z-BJ7l1D92.js → xychartDiagram-S5SC5T6Z-BDpyRtk7.js} +1 -1
- package/dist/index.html +6 -6
- package/package.json +1 -1
- package/src/components/data-table/charts/__tests__/chart-panel.test.tsx +286 -0
- package/src/components/data-table/charts/charts.tsx +26 -13
- package/src/components/editor/chrome/components/contribute-snippet-button.tsx +6 -1
- package/src/components/editor/notebook-cell.tsx +2 -2
- package/src/components/editor/output/MarimoTracebackOutput.tsx +1 -1
- package/src/components/editor/output/VideoOutput.tsx +1 -1
- package/src/components/editor/output/ansi-reduce.ts +8 -4
- package/src/components/editor/output/console/text-rendering.tsx +3 -1
- package/src/components/home/components.tsx +1 -0
- package/src/components/pages/run-page.tsx +1 -0
- package/src/components/static-html/share-modal.tsx +2 -1
- package/src/components/static-html/static-banner.tsx +2 -1
- package/src/components/ui/links.tsx +6 -1
- package/src/plugins/impl/vega/__tests__/utils.test.ts +16 -1
- package/src/plugins/impl/vega/__tests__/vega.test.ts +37 -0
- package/src/plugins/impl/vega/loader.ts +23 -1
- package/src/plugins/impl/vega/utils.ts +5 -4
- package/src/plugins/layout/RoutesPlugin.tsx +4 -6
- package/dist/assets/has-Kf_VdF2W.js +0 -1
- package/dist/assets/run-page-C7WH_ujp.js +0 -1
- package/dist/assets/session-panel-Dz904qg0.js +0 -1
- package/dist/assets/snippets-panel-ClVDVtd1.js +0 -1
- package/dist/assets/tooltip-B1vGi-z4.js +0 -61
|
@@ -1,7 +1,22 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
2
|
|
|
3
3
|
import { describe, expect, it } from "vitest";
|
|
4
|
-
import { getContainerWidth } from "../utils";
|
|
4
|
+
import { getContainerWidth, getVegaFieldTypes } from "../utils";
|
|
5
|
+
|
|
6
|
+
describe("getVegaFieldTypes", () => {
|
|
7
|
+
it("preserves date strings unless the caller requests date parsing", () => {
|
|
8
|
+
expect(getVegaFieldTypes({ day: "date", timestamp: "datetime" })).toEqual({
|
|
9
|
+
day: "string",
|
|
10
|
+
timestamp: "date",
|
|
11
|
+
});
|
|
12
|
+
expect(
|
|
13
|
+
getVegaFieldTypes(
|
|
14
|
+
{ day: "date", timestamp: "datetime" },
|
|
15
|
+
{ parseDates: true },
|
|
16
|
+
),
|
|
17
|
+
).toEqual({ day: "date", timestamp: "date" });
|
|
18
|
+
});
|
|
19
|
+
});
|
|
5
20
|
|
|
6
21
|
describe("getContainerWidth", () => {
|
|
7
22
|
it('should return "container" when spec width is "container"', () => {
|
|
@@ -13,6 +13,43 @@ const { ZERO_WIDTH_SPACE, replacePeriodsInColumnNames, uniquifyColumnNames } =
|
|
|
13
13
|
exportedForTesting;
|
|
14
14
|
|
|
15
15
|
describe("vega loader", () => {
|
|
16
|
+
it("parses infinities only in explicitly numeric CSV fields", async () => {
|
|
17
|
+
vi.spyOn(vegaLoader, "load").mockResolvedValue(
|
|
18
|
+
"value,label,id\ninf,inf,1\n-inf,-inf,2\n+inf,+inf,3\n2.5,002.5,4\n,,5\nNaN,NaN,6\n",
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
const data = await vegaLoadData("chart.csv", {
|
|
22
|
+
type: "csv",
|
|
23
|
+
parse: { value: "number", label: "string", id: "integer" },
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
expect(data).toEqual([
|
|
27
|
+
{ value: Infinity, label: "inf", id: 1 },
|
|
28
|
+
{ value: -Infinity, label: "-inf", id: 2 },
|
|
29
|
+
{ value: Infinity, label: "+inf", id: 3 },
|
|
30
|
+
{ value: 2.5, label: "002.5", id: 4 },
|
|
31
|
+
{ value: null, label: null, id: 5 },
|
|
32
|
+
{ value: Number.NaN, label: "NaN", id: 6 },
|
|
33
|
+
]);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it("preserves the table's large integer and infinity handling", async () => {
|
|
37
|
+
vi.spyOn(vegaLoader, "load").mockResolvedValue(
|
|
38
|
+
"id,value\n9007199254740993,inf\n9007199254740995,-inf\n",
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
const data = await vegaLoadData(
|
|
42
|
+
"table.csv",
|
|
43
|
+
{ type: "csv", parse: { id: "integer", value: "number" } },
|
|
44
|
+
{ handleBigIntAndNumberLike: true },
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
expect(data).toEqual([
|
|
48
|
+
{ id: BigInt("9007199254740993"), value: "inf" },
|
|
49
|
+
{ id: BigInt("9007199254740995"), value: "-inf" },
|
|
50
|
+
]);
|
|
51
|
+
});
|
|
52
|
+
|
|
16
53
|
it("should parse csv data with dates", async () => {
|
|
17
54
|
const csvData = `
|
|
18
55
|
active,username,id
|
|
@@ -16,6 +16,26 @@ const previousNumberParser = typeParsers.number;
|
|
|
16
16
|
const previousDateParser = typeParsers.date;
|
|
17
17
|
const previousBooleanParser = typeParsers.boolean;
|
|
18
18
|
|
|
19
|
+
const NUMBER_MIDDLEWARE: Middleware = () => {
|
|
20
|
+
const parseNumber = (value: string) => {
|
|
21
|
+
if (value === "inf" || value === "+inf") {
|
|
22
|
+
return Number.POSITIVE_INFINITY;
|
|
23
|
+
}
|
|
24
|
+
if (value === "-inf") {
|
|
25
|
+
return Number.NEGATIVE_INFINITY;
|
|
26
|
+
}
|
|
27
|
+
return previousNumberParser(value);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
typeParsers.integer = parseNumber;
|
|
31
|
+
typeParsers.number = parseNumber;
|
|
32
|
+
|
|
33
|
+
return () => {
|
|
34
|
+
typeParsers.integer = previousIntegerParser;
|
|
35
|
+
typeParsers.number = previousNumberParser;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
|
|
19
39
|
const BIG_INT_MIDDLEWARE: Middleware = () => {
|
|
20
40
|
// Custom parser to:
|
|
21
41
|
// - handle BigInt
|
|
@@ -159,6 +179,8 @@ export async function vegaLoadData<T = object>(
|
|
|
159
179
|
const middleware: Middleware[] = [DATE_MIDDLEWARE];
|
|
160
180
|
if (handleBigIntAndNumberLike) {
|
|
161
181
|
middleware.push(BIG_INT_MIDDLEWARE);
|
|
182
|
+
} else {
|
|
183
|
+
middleware.push(NUMBER_MIDDLEWARE);
|
|
162
184
|
}
|
|
163
185
|
|
|
164
186
|
let unsubscribes: Unsubscribe[] = [];
|
|
@@ -216,7 +238,7 @@ export async function vegaLoadData<T = object>(
|
|
|
216
238
|
|
|
217
239
|
// Apply middleware
|
|
218
240
|
unsubscribes = middleware.map((m) => m());
|
|
219
|
-
//
|
|
241
|
+
// CSV defaults to inference when no explicit column types are available.
|
|
220
242
|
const results = isCsv
|
|
221
243
|
? // csv -> json
|
|
222
244
|
read(csvOrJsonData, {
|
|
@@ -45,21 +45,22 @@ function toArray<T>(value: T | T[] | undefined): T[] {
|
|
|
45
45
|
|
|
46
46
|
export function getVegaFieldTypes(
|
|
47
47
|
types: Record<string, DataType> | undefined | null,
|
|
48
|
+
{ parseDates = false }: { parseDates?: boolean } = {},
|
|
48
49
|
): FieldTypes | "auto" {
|
|
49
50
|
if (!types || Object.keys(types).length === 0) {
|
|
50
51
|
// If fieldTypes is provided, use it to parse the data
|
|
51
52
|
// Otherwise, infer the data types
|
|
52
53
|
return "auto";
|
|
53
54
|
}
|
|
54
|
-
//
|
|
55
|
-
//
|
|
56
|
-
//
|
|
55
|
+
// Preserve date-only strings for callers such as the data editor.
|
|
56
|
+
// Parsing creates Date objects that JSON serializes as full timestamps.
|
|
57
|
+
// Charts opt into date parsing for temporal axes.
|
|
57
58
|
return Objects.mapValues(types, (type): VegaDataType => {
|
|
58
59
|
if (type === "geometry") {
|
|
59
60
|
return "string";
|
|
60
61
|
}
|
|
61
62
|
if (type === "date") {
|
|
62
|
-
return "string";
|
|
63
|
+
return parseDates ? "date" : "string";
|
|
63
64
|
}
|
|
64
65
|
if (type === "time") {
|
|
65
66
|
return "string";
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/* Copyright 2026 Marimo. All rights reserved. */
|
|
2
2
|
import React, {
|
|
3
|
-
type JSX,
|
|
4
3
|
type PropsWithChildren,
|
|
5
4
|
useEffect,
|
|
6
5
|
useMemo,
|
|
@@ -28,7 +27,7 @@ export class RoutesPlugin implements IStatelessPlugin<Data> {
|
|
|
28
27
|
routes: z.array(z.string()),
|
|
29
28
|
});
|
|
30
29
|
|
|
31
|
-
render(props: IStatelessPluginProps<Data>):
|
|
30
|
+
render(props: IStatelessPluginProps<Data>): React.ReactElement {
|
|
32
31
|
return <RoutesComponent {...props.data}>{props.children}</RoutesComponent>;
|
|
33
32
|
}
|
|
34
33
|
}
|
|
@@ -36,7 +35,7 @@ export class RoutesPlugin implements IStatelessPlugin<Data> {
|
|
|
36
35
|
const RoutesComponent = ({
|
|
37
36
|
routes,
|
|
38
37
|
children,
|
|
39
|
-
}: PropsWithChildren<Data>):
|
|
38
|
+
}: PropsWithChildren<Data>): React.ReactNode => {
|
|
40
39
|
const childCount = React.Children.count(children);
|
|
41
40
|
if (childCount !== routes.length) {
|
|
42
41
|
throw new Error(
|
|
@@ -69,12 +68,11 @@ const RoutesComponent = ({
|
|
|
69
68
|
}, [handleFindMatch]);
|
|
70
69
|
|
|
71
70
|
if (!matched) {
|
|
72
|
-
|
|
73
|
-
return <></>;
|
|
71
|
+
return null;
|
|
74
72
|
}
|
|
75
73
|
|
|
76
74
|
const matchedIndex = routes.indexOf(matched);
|
|
77
75
|
const child = React.Children.toArray(children)[matchedIndex];
|
|
78
76
|
|
|
79
|
-
return
|
|
77
|
+
return child;
|
|
80
78
|
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Ga as e}from"./index-CFkhNhbS.js";var t=Object.prototype.hasOwnProperty;function n(e,n){return e!=null&&t.call(e,n)}function r(t,r){return t!=null&&e(t,r,n)}export{r as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as r}from"./useEvent-Dc9HkKI2.js";import{t as i}from"./react-CUdNIagt.js";import{D as a,La as o,g as s,oo as c,x as l}from"./cells-Cu3p4E4U.js";import{t as u}from"./compiler-runtime-BQ9S8nyo.js";import{C as d}from"./config-BxZgoFvi.js";import{r as f}from"./utils-B4K466FK.js";import{t as p}from"./session-DXKMv4Bs.js";import{T as m,_ as h,l as g,p as _}from"./config-DpGPGznL.js";import{t as v}from"./cn-ldLVeaqm.js";import{t as y}from"./jsx-runtime-B74pBk57.js";import{a as b,c as x,i as S,l as C,n as w,s as T,t as E}from"./alert-dialog-CeE3i3Qa.js";import{n as D,t as O}from"./button-BoklZTGL.js";import{n as k}from"./paths-CzfpItSz.js";import{a as A,c as j,et as ee,it as M,n as N,o as P,q as F,s as I,st as L,t as R}from"./panels-BreVgQOP.js";import{t as z}from"./copy-RyCOE8jo.js";import{Gt as te,Ut as ne,Wt as re,Xt as ie,Zt as ae,qt as B}from"./input-BDakodZ2.js";import{n as V}from"./copy-BhJktFeI.js";import{t as H}from"./use-toast-CC89xOwH.js";import{r as U}from"./requests-yTHMxhVa.js";import{Ci as W,In as G,Ln as K,Rn as q,Ti as J,ar as oe,dn as se,ei as ce,hn as le,ja as ue,mn as de,ui as fe,zn as Y,zt as pe}from"./index-CFkhNhbS.js";import{n as X}from"./code-visibility-D1cfOivN.js";import{n as me,t as he}from"./marimo-icons-B_1oPpIE.js";var ge=e(i(),1),Z=u(),Q=y(),_e=()=>{let e=(0,Z.c)(25),[n,r]=t(F);if(n===null)return null;let i;e[0]===n?i=e[1]:(i=async()=>{try{await navigator.clipboard.writeText(n),H({title:`Copied to clipboard`,description:`Error details have been copied to your clipboard.`})}catch{H({title:`Failed to copy`,description:`Could not copy to clipboard.`,variant:`danger`})}},e[0]=n,e[1]=i);let a=i,o;e[2]===r?o=e[3]:(o=()=>{r(null)},e[2]=r,e[3]=o);let s=o,l=ve,u;e[4]===s?u=e[5]:(u=e=>!e&&s(),e[4]=s,e[5]=u);let d;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Q.jsxs)(x,{children:[(0,Q.jsxs)(C,{className:`flex items-center gap-2 text-destructive`,children:[(0,Q.jsx)(c,{className:`h-5 w-5`}),`Kernel Startup Failed`]}),(0,Q.jsx)(b,{children:`The kernel failed to start. This usually happens when the package manager can't install your notebook's dependencies.`})]}),e[6]=d):d=e[6];let f;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Q.jsx)(`span`,{className:`text-sm font-medium text-muted-foreground`,children:`Error Details`}),e[7]=f):f=e[7];let p;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Q.jsx)(z,{className:`h-3 w-3`}),e[8]=p):p=e[8];let m;e[9]===a?m=e[10]:(m=(0,Q.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[f,(0,Q.jsxs)(O,{variant:`outline`,size:`xs`,onClick:a,className:`flex items-center gap-1`,children:[p,`Copy`]})]}),e[9]=a,e[10]=m);let h;e[11]===n?h=e[12]:(h=(0,Q.jsx)(`pre`,{className:`bg-muted p-4 rounded-md text-sm font-mono overflow-auto max-h-80`,children:n}),e[11]=n,e[12]=h);let g;e[13]!==m||e[14]!==h?(g=(0,Q.jsxs)(`div`,{className:`my-4 overflow-hidden`,children:[m,h]}),e[13]=m,e[14]=h,e[15]=g):g=e[15];let _;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,Q.jsxs)(O,{variant:`outline`,onClick:l,className:`flex items-center gap-2`,children:[(0,Q.jsx)(M,{className:`h-4 w-4`}),`Return to Home`]}),e[16]=_):_=e[16];let v;e[17]===s?v=e[18]:(v=(0,Q.jsxs)(T,{children:[_,(0,Q.jsx)(w,{onClick:s,children:`Dismiss`})]}),e[17]=s,e[18]=v);let y;e[19]!==v||e[20]!==g?(y=(0,Q.jsxs)(S,{className:`max-w-2xl`,children:[d,g,v]}),e[19]=v,e[20]=g,e[21]=y):y=e[21];let D;return e[22]!==y||e[23]!==u?(D=(0,Q.jsx)(E,{open:!0,onOpenChange:u,children:y}),e[22]=y,e[23]=u,e[24]=D):D=e[24],D};function ve(){let e=document.baseURI.split(`?`)[0];window.open(e,`_self`)}var ye=e=>{let t=(0,Z.c)(2),{reason:n}=e,r;return t[0]===n?r=t[1]:(r=(0,Q.jsx)(`div`,{className:`font-mono text-center text-base text-(--red-11)`,children:(0,Q.jsx)(`p`,{children:n})}),t[0]=n,t[1]=r),r},be=e=>{let t=(0,Z.c)(7),{connection:n,className:r,children:i}=e,a;t[0]!==n.reason||t[1]!==n.state?(a=n.state===m.CLOSED&&(0,Q.jsx)(ye,{reason:n.reason}),t[0]=n.reason,t[1]=n.state,t[2]=a):a=t[2];let o;return t[3]!==i||t[4]!==r||t[5]!==a?(o=(0,Q.jsxs)(`div`,{className:r,children:[i,a]}),t[3]=i,t[4]=r,t[5]=a,t[6]=o):o=t[6],o},xe=n(e=>e(s)||!_(e(h).state)),Se=e=>{let t=(0,Z.c)(22),{appConfig:n,hideHeader:i}=e,{setCells:o}=a(),{sendComponentValues:s}=U(),c;t[0]===s?c=t[1]:(c=()=>(A.INSTANCE.start(s),Ce),t[0]=s,t[1]=c);let u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],t[2]=u):u=t[2],(0,ge.useEffect)(c,u);let d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=p(),t[3]=d):d=t[3];let f;t[4]===o?f=t[5]:(f={autoInstantiate:!0,setCells:o,sessionId:d},t[4]=o,t[5]=f);let{connection:m,reconnect:h}=N(f),g=r(l),_;if(t[6]===Symbol.for(`react.memo_cache_sentinel`)){bb0:{if(typeof window>`u`){_=null;break bb0}let e=new URL(window.location.href);if(!e.searchParams.has(`file`)){_=null;break bb0}e.searchParams.delete(`file`);let t=e.searchParams.toString();_=t?`${e.pathname}?${t}`:e.pathname}t[6]=_}else _=t[6];let y=_,b;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Q.jsx)(_e,{}),t[7]=b):b=t[7];let x=i?`hidden`:`sm:pt-8`,S;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(S=y&&(0,Q.jsx)(`div`,{className:`flex items-center px-6 pt-4 sm:-mt-8`,children:(0,Q.jsxs)(`a`,{href:y,"aria-label":`Back to gallery`,className:v(D({variant:`text`,size:`sm`}),`gap-2 px-0 text-muted-foreground hover:text-foreground`),children:[(0,Q.jsx)(L,{className:`size-4`,"aria-hidden":!0}),(0,Q.jsx)(`span`,{children:`Back`})]})}),t[8]=S):S=t[8];let C;t[9]!==m||t[10]!==x?(C=(0,Q.jsx)(be,{connection:m,className:x,children:S}),t[9]=m,t[10]=x,t[11]=C):C=t[11];let w;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(ce,{className:`mx-auto`}),(0,Q.jsx)(`p`,{className:`text-center text-sm text-muted-foreground mt-2`,children:`Connecting...`})]}),t[12]=w):w=t[12];let T;t[13]===n?T=t[14]:(T=(0,Q.jsx)(j,{requires:xe,delay:2e3,fallback:w,children:(0,Q.jsx)(P,{appConfig:n,mode:`read`})}),t[13]=n,t[14]=T);let E;return t[15]!==n.width||t[16]!==m||t[17]!==g||t[18]!==h||t[19]!==T||t[20]!==C?(E=(0,Q.jsxs)(I,{connection:m,isRunning:g,width:n.width,onReconnect:h,children:[b,C,T]}),t[15]=n.width,t[16]=m,t[17]=g,t[18]=h,t[19]=T,t[20]=C,t[21]=E):E=t[21],E};function Ce(){A.INSTANCE.stop()}var we=()=>{let e=(0,Z.c)(3),t=r(o);if(!g()||!t)return null;let n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,Q.jsxs)(`span`,{children:[`Static`,` `,(0,Q.jsx)(`a`,{href:f.githubPage,target:`_blank`,className:`text-(--sky-11) font-medium underline`,children:`marimo`}),` `,`notebook - Run or edit for full interactivity`]}),e[0]=n):n=e[0];let i;return e[1]===t?i=e[2]:(i=(0,Q.jsxs)(`div`,{className:`px-4 py-2 bg-(--sky-2) border-b border-(--sky-7) text-(--sky-11) flex justify-between items-center gap-4 print:hidden text-sm`,"data-testid":`static-notebook-banner`,children:[n,(0,Q.jsx)(`span`,{className:`shrink-0`,children:(0,Q.jsx)(Te,{code:t})})]}),e[1]=t,e[2]=i),i},Te=e=>{let t=(0,Z.c)(44),{code:n}=e,r=k.basename(oe()||`notebook.py`),[i]=d(),a=i.sharing?.molab??!0,o=Ee(window.location.href,r),s=o!==r,c=ee(o),l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Q.jsx)(ae,{asChild:!0,children:(0,Q.jsx)(O,{"data-testid":`static-notebook-dialog-trigger`,variant:`outline`,size:`xs`,children:`Run or Edit`})}),t[0]=l):l=t[0];let u;t[1]===r?u=t[2]:(u=(0,Q.jsx)(ie,{children:r}),t[1]=r,t[2]=u);let p;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,Q.jsx)(`a`,{href:f.githubPage,target:`_blank`,className:`text-(--sky-11) hover:underline font-medium`,children:`marimo`}),t[3]=p):p=t[3];let m=s?`Run it`:`Download it, then run it`,h;t[4]===m?h=t[5]:(h=(0,Q.jsxs)(`p`,{children:[`This is a static`,` `,p,` `,`notebook. `,m,` `,`locally for full interactivity.`]}),t[4]=m,t[5]=h);let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Q.jsxs)(q,{"aria-label":`Package manager`,children:[(0,Q.jsx)(Y,{value:`uv`,children:`uv`}),(0,Q.jsx)(Y,{value:`pip`,children:`pip`}),(0,Q.jsx)(Y,{value:`conda`,children:`conda`})]}),t[6]=g):g=t[6];let _=`uvx marimo edit --sandbox ${c}`,v;t[7]===_?v=t[8]:(v=(0,Q.jsx)(K,{value:`uv`,children:(0,Q.jsx)($,{command:_})}),t[7]=_,t[8]=v);let y=`pip install marimo\nmarimo edit ${c}`,b;t[9]===y?b=t[10]:(b=(0,Q.jsx)(K,{value:`pip`,children:(0,Q.jsx)($,{command:y})}),t[9]=y,t[10]=b);let x=`conda install -c conda-forge marimo\nmarimo edit ${c}`,S;t[11]===x?S=t[12]:(S=(0,Q.jsx)(K,{value:`conda`,children:(0,Q.jsx)($,{command:x})}),t[11]=x,t[12]=S);let C;t[13]!==b||t[14]!==S||t[15]!==v?(C=(0,Q.jsxs)(G,{defaultValue:`uv`,children:[g,v,b,S]}),t[13]=b,t[14]=S,t[15]=v,t[16]=C):C=t[16];let w;t[17]!==n||t[18]!==a?(w=a&&(0,Q.jsx)(De,{code:n}),t[17]=n,t[18]=a,t[19]=w):w=t[19];let T;t[20]!==C||t[21]!==w||t[22]!==h?(T=(0,Q.jsx)(te,{asChild:!0,children:(0,Q.jsxs)(`div`,{className:`pt-3 text-left space-y-3`,children:[h,C,w]})}),t[20]=C,t[21]=w,t[22]=h,t[23]=T):T=t[23];let E;t[24]!==T||t[25]!==u?(E=(0,Q.jsxs)(B,{children:[u,T]}),t[24]=T,t[25]=u,t[26]=E):E=t[26];let D;t[27]===n?D=t[28]:(D=async()=>{await V(n),H({title:`Copied to clipboard`})},t[27]=n,t[28]=D);let A;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,Q.jsx)(z,{className:`w-3 h-3 mr-2`}),t[29]=A):A=t[29];let j;t[30]===D?j=t[31]:(j=(0,Q.jsxs)(O,{"data-testid":`copy-static-notebook-dialog-button`,variant:`outline`,size:`sm`,onClick:D,children:[A,`Copy code`]}),t[30]=D,t[31]=j);let M;t[32]!==n||t[33]!==r?(M=()=>{pe(new Blob([n],{type:`text/plain`}),r)},t[32]=n,t[33]=r,t[34]=M):M=t[34];let N;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,Q.jsx)(ue,{className:`w-3 h-3 mr-2`}),t[35]=N):N=t[35];let P;t[36]===M?P=t[37]:(P=(0,Q.jsxs)(O,{"data-testid":`download-static-notebook-dialog-button`,variant:`outline`,size:`sm`,onClick:M,children:[N,`Download`]}),t[36]=M,t[37]=P);let F;t[38]!==j||t[39]!==P?(F=(0,Q.jsxs)(`div`,{className:`flex gap-3 pt-2`,children:[j,P]}),t[38]=j,t[39]=P,t[40]=F):F=t[40];let I;return t[41]!==E||t[42]!==F?(I=(0,Q.jsxs)(ne,{children:[l,(0,Q.jsxs)(re,{children:[E,F]})]}),t[41]=E,t[42]=F,t[43]=I):I=t[43],I};function Ee(e,t){let n=new URL(e);if(n.protocol!==`http:`&&n.protocol!==`https:`)return t;let r=n.pathname.endsWith(`.html`)&&n.search===``,i=n.protocol===`https:`&&(n.hostname===`marimo.app`||n.hostname===`links.marimo.app`||n.hostname===`static.marimo.app`&&n.pathname.startsWith(`/static`)||n.pathname.includes(`/notebooks/nb`));return!r&&!i?t:(n.hash=``,n.href)}var $=e=>{let t=(0,Z.c)(10),{command:n}=e,r;t[0]===n?r=t[1]:(r=(0,Q.jsx)(`pre`,{className:`p-3 pr-10 font-mono text-(--sky-11) leading-relaxed whitespace-pre-wrap break-all`,children:n}),t[0]=n,t[1]=r);let i;t[2]===n?i=t[3]:(i=async()=>{await V(n),H({title:`Command copied to clipboard`})},t[2]=n,t[3]=i);let a;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsx)(z,{className:`w-3.5 h-3.5`}),t[4]=a):a=t[4];let o;t[5]===i?o=t[6]:(o=(0,Q.jsx)(O,{"aria-label":`Copy command`,className:`absolute right-2 top-2`,variant:`ghost`,size:`icon`,onClick:i,children:a}),t[5]=i,t[6]=o);let s;return t[7]!==r||t[8]!==o?(s=(0,Q.jsxs)(`div`,{className:`relative rounded-lg border bg-(--sky-2) border-(--sky-7)`,children:[r,o]}),t[7]=r,t[8]=o,t[9]=s):s=t[9],s},De=e=>{let t=(0,Z.c)(8),{code:n}=e,r;t[0]===n?r=t[1]:(r=fe({code:n,baseUrl:`${f.molab}/new`}),t[0]=n,t[1]=r);let i=r,a;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Q.jsx)(me,{size:12,strokeWidth:1.5,className:`mr-1.5 mt-px text-(--grass-11)`}),t[2]=a):a=t[2];let o;t[3]===i?o=t[4]:(o=(0,Q.jsx)(O,{asChild:!0,variant:`outline`,size:`xs`,className:`shrink-0`,children:(0,Q.jsxs)(`a`,{href:i,target:`_blank`,rel:`noopener noreferrer`,children:[a,`Open in molab`]})}),t[3]=i,t[4]=o);let s;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Q.jsxs)(`p`,{className:`text-sm text-(--sky-12)`,children:[`Run this notebook in `,(0,Q.jsx)(`span`,{className:`font-semibold`,children:`molab`}),`, marimo's cloud-hosted notebook platform.`]}),t[5]=s):s=t[5];let c;return t[6]===o?c=t[7]:(c=(0,Q.jsxs)(`div`,{className:`pt-3 border-t flex gap-2 items-center`,children:[o,s]}),t[6]=o,t[7]=c),c},Oe=e=>{let t=(0,Z.c)(17),n=r(X).kind,i=n===`static`||n===`wasm`,{selectedLayout:a}=J(),o;t[0]===a?o=t[1]:(o=W({selectedLayout:a,isReading:!0,searchParams:new URLSearchParams(window.location.search)}),t[0]=a,t[1]=o);let s=i&&o===`slides`,c;t[2]===s?c=t[3]:(c=!s&&(0,Q.jsx)(we,{}),t[2]=s,t[3]=c);let l;t[4]!==s||t[5]!==e.appConfig?(l=(0,Q.jsx)(Se,{appConfig:e.appConfig,hideHeader:s}),t[4]=s,t[5]=e.appConfig,t[6]=l):l=t[6];let u;t[7]!==i||t[8]!==s?(u=i&&!s&&(0,Q.jsx)(ke,{}),t[7]=i,t[8]=s,t[9]=u):u=t[9];let d;t[10]!==c||t[11]!==l||t[12]!==u?(d=(0,Q.jsxs)(de,{children:[c,l,u]}),t[10]=c,t[11]=l,t[12]=u,t[13]=d):d=t[13];let f;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Q.jsx)(se,{}),t[14]=f):f=t[14];let p;return t[15]===d?p=t[16]:(p=(0,Q.jsx)(R,{children:(0,Q.jsxs)(le,{direction:`horizontal`,autoSaveId:`marimo:chrome:v1:run1`,children:[d,f]})}),t[15]=d,t[16]=p),p},ke=()=>{let e=(0,Z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Q.jsx)(`div`,{className:`fixed bottom-0 right-0 z-50 print:hidden`,"data-testid":`watermark`,children:(0,Q.jsxs)(`a`,{href:f.githubPage,target:`_blank`,className:`text-sm text-(--grass-11) font-bold tracking-wide transition-colors bg-(--grass-4) hover:bg-(--grass-5) border-t border-l border-(--grass-8) px-3 py-1 rounded-tl-md flex items-center gap-2`,children:[(0,Q.jsx)(`span`,{children:`made with marimo`}),(0,Q.jsx)(he,{className:`h-4 w-auto`})]})}),e[0]=t):t=e[0],t};export{Oe as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{c as t,f as n,l as r,u as i}from"./useEvent-Dc9HkKI2.js";import{t as a}from"./react-CUdNIagt.js";import{$r as o,Ai as s,Bi as c,Bt as l,Cn as u,D as d,Gn as f,Ha as p,Hi as m,Ii as h,Ji as g,Ki as _,Kn as v,Li as y,M as b,Mi as x,P as S,Qr as C,Ri as w,Rn as T,Rt as E,Ui as D,Wa as O,Wi as k,Xi as A,Yi as j,Zi as M,_n as ee,c as N,fn as P,gn as F,i as I,jn as L,qi as R,qn as z,ro as te,ti as ne,to as re,yr as ie,yt as B,zi as V}from"./cells-Cu3p4E4U.js";import{t as H}from"./compiler-runtime-BQ9S8nyo.js";import{s as ae}from"./config-BxZgoFvi.js";import{O as U}from"./config-DpGPGznL.js";import{t as W}from"./ErrorBoundary-DiVAOuIu.js";import{t as oe}from"./cn-ldLVeaqm.js";import{t as G}from"./jsx-runtime-B74pBk57.js";import{r as se}from"./config-B4VJJibu.js";import{t as ce}from"./tooltip-DR2Z2N4w.js";import{r as le,t as ue}from"./button-BoklZTGL.js";import{t as K}from"./createLucideIcon-rHn2EdoM.js";import{i as q}from"./paths-CzfpItSz.js";import{r as J}from"./useNumberFormatter-C4-_TnkF.js";import{R as de,j as fe}from"./RunButton-CUNPkj6f.js";import{a as pe}from"./input-BDakodZ2.js";import{t as me}from"./copy-icon-DFhUGBjO.js";import{l as he}from"./arrays-BqUx5USx.js";import{i as ge}from"./strings-BHZPE0Mc.js";import{r as _e}from"./requests-yTHMxhVa.js";import{t as ve}from"./context-BFOBKCJB.js";import{n as ye}from"./useAsyncData-DucTwMkf.js";import{$t as be,An as xe,Jt as Se,Mn as Ce,Nn as we,On as Te,Qt as Ee,S as De,Sn as Oe,Xt as ke,Yt as Ae,Zt as je,_ as Me,_n as Ne,bn as Pe,da as Fe,in as Ie,jn as Le,k as Re,kn as ze,nn as Be,nr as Ve,v as He,vn as Ue,xn as We,yn as Ge}from"./index-CFkhNhbS.js";import{t as Ke}from"./empty-state-CzxjZqGW.js";import{n as qe,t as Je}from"./common-ER8tZQOB.js";import{a as Ye,i as Xe,n as Ze,o as Qe,r as $e,s as et,t as tt}from"./components-Bzlif-Xy.js";var nt=K(`square-equal`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M7 10h10`,key:`1101jm`}],[`path`,{d:`M7 14h10`,key:`1mhdw3`}]]),Y=H(),X=e(a(),1),Z=G(),rt=1;function it(e){return 1.75+e*rt}function at(e){return 3+e*rt}function ot(e){return 3.25+e*rt}var Q={engineEmpty:.75,engine:.75,database:1,tableLoading:2.75,tableSchemaless:2,columnLocal:1.25,columnPreview:2.5};function $(e){return{paddingLeft:`${e}rem`}}var st=n(e=>{let t=e(w),n=e(ne),r=e(I);return he(t,e=>{if(!e.variable_name)return-1;let t=Object.values(n).find(t=>t.name===e.variable_name);if(!t)return 0;let i=r.inOrderIds.indexOf(t.declaredBy[0]);return i===-1?0:i})}),ct=U(`marimo:datasources:hideEmpty`,!1,C,{getOnInit:!0});function lt(e){let t=!1,n=[];for(let r of e){if(!k(r)||!m(r)){n.push(r);continue}let e=r.child_schemas??[],i=lt(e);if(r.tables.length===0&&i.length===0){t=!0;continue}if(i===e){n.push(r);continue}t=!0,n.push({...r,child_schemas:i})}return t?n:e}function ut(e){let t=!1,n=[];for(let r of e){if(D(r)&&r.schemas.length===0){t=!0;continue}if(r.schemas.length===0){n.push(r);continue}let e=lt(r.schemas);if(e.length===0){t=!0;continue}if(e===r.schemas){n.push(r);continue}t=!0,n.push({...r,schemas:e})}return t?n:e}var dt=()=>{let e=(0,Y.c)(42),[n,a]=X.useState(``),[o,s]=t(ct),c=i(y),l=r(st),d=r(x),f;bb0:{if(!o){f=d;break bb0}let t,n;e[0]===d?(t=e[1],n=e[2]):(t=!1,n=d.map(e=>{let n=ut(e.databases);return n===e.databases?e:(t=!0,{...e,databases:n})}),e[0]=d,e[1]=t,e[2]=n),f=t?n:d}let p=f;if(l.length===0&&p.length===0){let t;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Z.jsx)(Ke,{title:`No tables found`,description:`Any datasets/dataframes in the global scope will be shown here.`,action:(0,Z.jsx)(Qe,{group:`database`,label:`Add database or catalog`,variant:`outline`,size:`sm`}),icon:(0,Z.jsx)(q,{})}),e[3]=t):t=e[3],t}let m;e[4]===n?m=e[5]:(m=n.trim(),e[4]=n,e[5]=m);let h=!!m,g;e[6]===c?g=e[7]:(g=e=>{c(e.length>0),a(e)},e[6]=c,e[7]=g);let _;e[8]!==n||e[9]!==g?(_=(0,Z.jsx)(F,{placeholder:`Search tables...`,className:`h-6 m-1`,value:n,onValueChange:g,rootClassName:`flex-1 border-r border-b-0`}),e[8]=n,e[9]=g,e[10]=_):_=e[10];let v;e[11]===h?v=e[12]:(v=h&&(0,Z.jsx)(`button`,{type:`button`,className:`float-right border-b px-2 m-0 h-full hover:bg-accent hover:text-accent-foreground`,onClick:()=>a(``),children:(0,Z.jsx)(J,{className:`h-4 w-4`})}),e[11]=h,e[12]=v);let b=!o,S;e[13]!==o||e[14]!==s?(S=()=>s(!o),e[13]=o,e[14]=s,e[15]=S):S=e[15];let C;e[16]!==b||e[17]!==S?(C=(0,Z.jsx)(Ie,{"data-testid":`datasources-hide-empty-button`,isVisible:b,onToggle:S,showTooltip:`Show empty schemas and databases`,hideTooltip:`Hide empty schemas and databases`,size:`sm`,className:`px-2 rounded-none focus-visible:outline-hidden`}),e[16]=b,e[17]=S,e[18]=C):C=e[18];let w;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,Z.jsx)(Qe,{group:`database`,label:`Add database or catalog`,compact:!0,variant:`ghost`,size:`sm`,className:`px-2 rounded-none focus-visible:outline-hidden`}),e[19]=w):w=e[19];let T;e[20]!==_||e[21]!==v||e[22]!==C?(T=(0,Z.jsxs)(`div`,{className:`flex items-center w-full border-b`,children:[_,v,C,w]}),e[20]=_,e[21]=v,e[22]=C,e[23]=T):T=e[23];let E;if(e[24]!==p||e[25]!==n){let t;e[27]===n?t=e[28]:(t=e=>(0,Z.jsx)(ft,{connection:e,hasChildren:e.databases.length>0,children:e.databases.map(t=>(0,Z.jsx)(gt,{connection:e,database:t,searchValue:n},t.name))},e.name),e[27]=n,e[28]=t),E=p.map(t),e[24]=p,e[25]=n,e[26]=E}else E=e[26];let D;e[29]!==p.length||e[30]!==l.length?(D=p.length>0&&l.length>0&&(0,Z.jsxs)(Ae,{className:`pr-2`,style:$(Q.engine),children:[(0,Z.jsx)(Re,{className:`h-4 w-4 text-muted-foreground`}),(0,Z.jsx)(`span`,{className:`text-xs`,children:`Python`})]}),e[29]=p.length,e[30]=l.length,e[31]=D):D=e[31];let O;e[32]!==n||e[33]!==l?(O=l.length>0&&(0,Z.jsx)(bt,{tables:l,searchValue:n}),e[32]=n,e[33]=l,e[34]=O):O=e[34];let k;e[35]!==E||e[36]!==D||e[37]!==O?(k=(0,Z.jsxs)(u,{className:`flex flex-col`,children:[E,D,O]}),e[35]=E,e[36]=D,e[37]=O,e[38]=k):k=e[38];let A;return e[39]!==k||e[40]!==T?(A=(0,Z.jsxs)(P,{className:`border-b bg-background rounded-none h-full pb-10 overflow-auto outline-hidden`,shouldFilter:!1,children:[T,k]}),e[39]=k,e[40]=T,e[41]=A):A=e[41],A},ft=e=>{let t=(0,Y.c)(26),{connection:n,children:r,hasChildren:i}=e,a=n.name===M,o=a?`In-Memory`:n.name,{previewDataSourceConnection:c}=_e(),l;t[0]!==n.name||t[1]!==c?(l=async()=>{await c({engine:n.name})},t[0]=n.name,t[1]=c,t[2]=l):l=t[2];let u=l,d;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(d=$(Q.engine),t[3]=d):d=t[3];let f;t[4]===n.dialect?f=t[5]:(f=(0,Z.jsx)(L,{className:`h-4 w-4 text-muted-foreground`,name:n.dialect}),t[4]=n.dialect,t[5]=f);let p;t[6]===n.dialect?p=t[7]:(p=s(n.dialect),t[6]=n.dialect,t[7]=p);let m;t[8]===p?m=t[9]:(m=(0,Z.jsx)(`span`,{className:`text-xs`,children:p}),t[8]=p,t[9]=m);let h=o,g;t[10]===h?g=t[11]:(g=(0,Z.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`(`,(0,Z.jsx)(et,{variableName:h}),`)`]}),t[10]=h,t[11]=g);let _;t[12]!==u||t[13]!==a?(_=!a&&(0,Z.jsx)(Be,{onClick:u,tooltip:`Refresh connection`,className:`ml-auto h-4 p-0`,iconClassName:`h-3.5 w-3.5`}),t[12]=u,t[13]=a,t[14]=_):_=t[14];let v;t[15]!==f||t[16]!==m||t[17]!==g||t[18]!==_?(v=(0,Z.jsxs)(Ae,{className:`pr-2`,style:d,children:[f,m,g,_]}),t[15]=f,t[16]=m,t[17]=g,t[18]=_,t[19]=v):v=t[19];let y;t[20]!==r||t[21]!==i?(y=i?r:(0,Z.jsx)(ke,{content:`No databases available`,style:$(Q.engineEmpty)}),t[20]=r,t[21]=i,t[22]=y):y=t[22];let b;return t[23]!==y||t[24]!==v?(b=(0,Z.jsxs)(Z.Fragment,{children:[v,y]}),t[23]=y,t[24]=v,t[25]=b):b=t[25],b},pt=X.createContext(null);function mt(){let e=X.useContext(pt);if(e==null)throw Error(`useDataSourceTree must be used within a DataSourceTreeContext.Provider`);return e}function ht(e,{schema:t,schemaPath:n}){return{engine:e.engineName,database:e.databaseName,schema:t,schemaPath:n,defaultSchema:e.defaultSchema,defaultDatabase:e.defaultDatabase,dialect:e.dialect}}var gt=e=>{let t=(0,Y.c)(21),{connection:n,database:r,searchValue:i}=e,a;t[0]!==n.default_database||t[1]!==n.default_schema||t[2]!==n.dialect||t[3]!==n.name||t[4]!==r.name||t[5]!==i?(a={engineName:n.name,databaseName:r.name,dialect:n.dialect,defaultSchema:n.default_schema,defaultDatabase:n.default_database,searchValue:i},t[0]=n.default_database,t[1]=n.default_schema,t[2]=n.dialect,t[3]=n.name,t[4]=r.name,t[5]=i,t[6]=a):a=t[6];let o=a,s=n.name,c=r.schemas,l;t[7]===r?l=t[8]:(l=D(r),t[7]=r,t[8]=l);let u;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],t[9]=u):u=t[9];let d;t[10]!==r.schemas||t[11]!==l?(d=(0,Z.jsx)(vt,{schemas:c,schemasResolved:l,schemaPath:u,depth:0}),t[10]=r.schemas,t[11]=l,t[12]=d):d=t[12];let f;t[13]!==d||t[14]!==o?(f=(0,Z.jsx)(pt.Provider,{value:o,children:d}),t[13]=d,t[14]=o,t[15]=f):f=t[15];let p;return t[16]!==n.name||t[17]!==r||t[18]!==i||t[19]!==f?(p=(0,Z.jsx)(_t,{engineName:s,database:r,searchValue:i,children:f}),t[16]=n.name,t[17]=r,t[18]=i,t[19]=f,t[20]=p):p=t[20],p},_t=e=>{let t=(0,Y.c)(29),{searchValue:n,engineName:r,database:i,children:a}=e,o;t[0]!==i||t[1]!==n?(o=g(i,n),t[0]=i,t[1]=n,t[2]=o):o=t[2];let s=o,[c,l]=X.useState(s),[u,d]=X.useState(!1),[f,p]=X.useState(n),[m,h]=X.useState(s);(f!==n||m!==s)&&(p(n),h(s),l(s));let _;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(_=$(Q.database),t[3]=_):_=t[3];let v;t[4]!==c||t[5]!==u?(v=()=>{l(!c),d(!u)},t[4]=c,t[5]=u,t[6]=v):v=t[6];let y=`${r}:${i.name}`,b;t[7]===c?b=t[8]:(b=(0,Z.jsx)(be,{isExpanded:c}),t[7]=c,t[8]=b);let x=u&&c?`text-foreground`:`text-muted-foreground`,S;t[9]===x?S=t[10]:(S=oe(`h-4 w-4`,x),t[9]=x,t[10]=S);let C;t[11]===S?C=t[12]:(C=(0,Z.jsx)(q,{className:S}),t[11]=S,t[12]=C);let w=u&&c&&`font-semibold`,T;t[13]===w?T=t[14]:(T=oe(w),t[13]=w,t[14]=T);let E;t[15]===i.name?E=t[16]:(E=i.name===``?(0,Z.jsx)(`i`,{children:`Not connected`}):i.name,t[15]=i.name,t[16]=E);let D;t[17]!==T||t[18]!==E?(D=(0,Z.jsx)(`span`,{className:T,children:E}),t[17]=T,t[18]=E,t[19]=D):D=t[19];let O;t[20]!==D||t[21]!==v||t[22]!==y||t[23]!==b||t[24]!==C?(O=(0,Z.jsxs)(ee,{className:`text-sm flex flex-row gap-1 items-center cursor-pointer rounded-none`,style:_,onSelect:v,value:y,children:[b,C,D]}),t[20]=D,t[21]=v,t[22]=y,t[23]=b,t[24]=C,t[25]=O):O=t[25];let k=c&&a,A;return t[26]!==O||t[27]!==k?(A=(0,Z.jsxs)(Z.Fragment,{children:[O,k]}),t[26]=O,t[27]=k,t[28]=A):A=t[28],A},vt=e=>{let{schemas:t,schemasResolved:n,depth:r}=e,i=mt(),{engineName:a,databaseName:o,searchValue:s}=i,{addSchemaList:c}=h(),l=Me(e.schemaPath),[u,d]=X.useState(!1),{isPending:p,error:m}=ye(async()=>{if(!n&&a){d(!0);try{let e=await f.request({engine:a,database:o,schemaPath:l});c({schemas:e.schemas??[],sqlSchemaContext:{engine:a,database:o,schemaPath:l}})}finally{d(!1)}}},[n,a,o,l]),g=$(it(r));return p||u?(0,Z.jsx)(Ee,{message:`Loading schemas...`,style:g}):m?(0,Z.jsx)(je,{error:m,style:g}):t.length===0?(0,Z.jsx)(ke,{content:`No schemas available`,style:g}):(0,Z.jsx)(Z.Fragment,{children:t.map(e=>_(e.name)?(0,Z.jsx)(bt,{tables:e.tables,tablesResolved:k(e),searchValue:s,sqlTableContext:ht(i,{schema:e.name,schemaPath:l})},e.name):(0,Z.jsx)(yt,{schema:e,schemaPath:[...l,e.name],depth:r},e.name))})},yt=e=>{let t=(0,Y.c)(41),{schema:n,schemaPath:r,depth:i}=e,a=mt(),{databaseName:o,searchValue:s}=a,c;t[0]!==n||t[1]!==s?(c=R(n,s),t[0]=n,t[1]=s,t[2]=c):c=t[2];let l=c,[u,d]=X.useState(l),[f,p]=X.useState(!1),[h,g]=X.useState(s),[_,v]=X.useState(l),y;t[3]===r?y=t[4]:(y=r.join(`.`),t[3]=r,t[4]=y);let b=`${o}:${y}`,x;t[5]===n.child_schemas?x=t[6]:(x=n.child_schemas??[],t[5]=n.child_schemas,t[6]=x);let S=x;(h!==s||_!==l)&&(g(s),v(l),d(l));let C;t[7]===i?C=t[8]:(C=$(it(i)),t[7]=i,t[8]=C);let w;t[9]!==u||t[10]!==f?(w=()=>{d(!u),p(!f)},t[9]=u,t[10]=f,t[11]=w):w=t[11];let T;t[12]===u?T=t[13]:(T=(0,Z.jsx)(be,{isExpanded:u}),t[12]=u,t[13]=T);let E=f&&u&&`text-foreground`,D;t[14]===E?D=t[15]:(D=oe(`h-4 w-4 text-muted-foreground`,E),t[14]=E,t[15]=D);let O;t[16]===D?O=t[17]:(O=(0,Z.jsx)(re,{className:D}),t[16]=D,t[17]=O);let A=f&&u&&`font-semibold`,j;t[18]===A?j=t[19]:(j=oe(A),t[18]=A,t[19]=j);let M;t[20]!==n.name||t[21]!==j?(M=(0,Z.jsx)(`span`,{className:j,children:n.name}),t[20]=n.name,t[21]=j,t[22]=M):M=t[22];let N;t[23]!==M||t[24]!==C||t[25]!==w||t[26]!==T||t[27]!==O||t[28]!==b?(N=(0,Z.jsxs)(ee,{className:`text-sm flex flex-row gap-1 items-center cursor-pointer rounded-none`,style:C,onSelect:w,value:b,children:[T,O,M]}),t[23]=M,t[24]=C,t[25]=w,t[26]=T,t[27]=O,t[28]=b,t[29]=N):N=t[29];let P;t[30]!==S||t[31]!==i||t[32]!==u||t[33]!==n||t[34]!==r||t[35]!==s||t[36]!==a?(P=u&&(0,Z.jsxs)(Z.Fragment,{children:[(S.length>0||!m(n))&&(0,Z.jsx)(vt,{schemas:S,schemasResolved:m(n),schemaPath:r,depth:i+1}),(0,Z.jsx)(bt,{tables:n.tables,tablesResolved:k(n),searchValue:s,tableIndentRem:at(i),columnIndentRem:ot(i),sqlTableContext:ht(a,{schema:n.name,schemaPath:r})})]}),t[30]=S,t[31]=i,t[32]=u,t[33]=n,t[34]=r,t[35]=s,t[36]=a,t[37]=P):P=t[37];let F;return t[38]!==N||t[39]!==P?(F=(0,Z.jsxs)(Z.Fragment,{children:[N,P]}),t[38]=N,t[39]=P,t[40]=F):F=t[40],F},bt=e=>{let t=(0,Y.c)(31),{tables:n,sqlTableContext:r,searchValue:i,tablesResolved:a,tableIndentRem:o,columnIndentRem:s}=e,c=a===void 0||a,{addTableList:l}=h(),[u,d]=X.useState(!1),f;t[0]!==l||t[1]!==r||t[2]!==c?(f=async()=>{if(!c&&r){d(!0);let{engine:e,database:t,schema:n,schemaPath:i}=r,a=await z.request({engine:e,database:t,schema:n,schemaPath:i??[]});if(!a?.tables)throw d(!1),Error(`No tables available`);l({tables:a.tables,sqlTableContext:r}),d(!1)}},t[0]=l,t[1]=r,t[2]=c,t[3]=f):f=t[3];let p;t[4]!==r||t[5]!==c?(p=[c,r],t[4]=r,t[5]=c,t[6]=p):p=t[6];let{isPending:m,error:g}=ye(f,p),_=o??Q.tableLoading,v;t[7]===_?v=t[8]:(v=$(_),t[7]=_,t[8]=v);let y=v;if(m||u){let e;return t[9]===y?e=t[10]:(e=(0,Z.jsx)(Ee,{message:`Loading tables...`,style:y}),t[9]=y,t[10]=e),e}if(g){let e;return t[11]!==g||t[12]!==y?(e=(0,Z.jsx)(je,{error:g,style:y}),t[11]=g,t[12]=y,t[13]=e):e=t[13],e}if(n.length===0){let e;return t[14]===y?e=t[15]:(e=(0,Z.jsx)(ke,{content:`No tables found`,style:y}),t[14]=y,t[15]=e),e}let b;if(t[16]!==s||t[17]!==i||t[18]!==r||t[19]!==o||t[20]!==n){let e;t[22]===i?e=t[23]:(e=e=>!i||e.name.toLowerCase().includes(i.toLowerCase()),t[22]=i,t[23]=e);let a=n.filter(e),c;t[24]!==s||t[25]!==i||t[26]!==r||t[27]!==o?(c=e=>(0,Z.jsx)(xt,{table:e,sqlTableContext:r,isSearching:!!i,tableIndentRem:o,columnIndentRem:s},e.name),t[24]=s,t[25]=i,t[26]=r,t[27]=o,t[28]=c):c=t[28],b=a.map(c),t[16]=s,t[17]=i,t[18]=r,t[19]=o,t[20]=n,t[21]=b}else b=t[21];let x;return t[29]===b?x=t[30]:(x=(0,Z.jsx)(Z.Fragment,{children:b}),t[29]=b,t[30]=x),x},xt=e=>{let t=(0,Y.c)(69),{table:n,sqlTableContext:i,isSearching:a,tableIndentRem:o,columnIndentRem:s}=e,{addTable:c}=h(),[u,f]=X.useState(!1),p=n.columns.length>0,m;t[0]!==c||t[1]!==u||t[2]!==i||t[3]!==n.name||t[4]!==p?(m=async()=>{if(u&&!p&&i){let{engine:e,database:t,schema:r,schemaPath:a}=i,o=await v.request({engine:e,database:t,schema:r,tableName:n.name,schemaPath:a??[]});if(!o?.table)throw Error(`No table details available`);c({table:o.table,sqlTableContext:i})}},t[0]=c,t[1]=u,t[2]=i,t[3]=n.name,t[4]=p,t[5]=m):m=t[5];let g;t[6]!==u||t[7]!==p?(g=[u,p],t[6]=u,t[7]=p,t[8]=g):g=t[8];let{isFetching:_,isPending:y,error:b}=ye(m,g),x=r(ae),S=E(),{createNewCell:C}=d(),w=De(),T;t[9]!==w||t[10]!==x||t[11]!==C||t[12]!==S||t[13]!==i||t[14]!==n?(T=()=>{l({autoInstantiate:x,createNewCell:C,fromCellId:S}),w((()=>{if(n.source_type===`catalog`){let e=i?.database?[i.database,...i.schemaPath??[],n.name].join(`.`):n.name;return`${n.engine}.load_table("${e}")`}if(i)return j({table:n,columnName:`*`,sqlTableContext:i});switch(n.source_type){case`local`:return`mo.ui.table(${n.name})`;case`duckdb`:case`connection`:return j({table:n,columnName:`*`,sqlTableContext:i});default:return ge(n.source_type),``}})())},t[9]=w,t[10]=x,t[11]=C,t[12]=S,t[13]=i,t[14]=n,t[15]=T):T=t[15];let D=T,k;t[16]!==n.num_columns||t[17]!==n.num_rows?(k=()=>{let e=[];return n.num_rows!=null&&e.push(`${n.num_rows} rows`),n.num_columns!=null&&e.push(`${n.num_columns} columns`),e.length===0?null:(0,Z.jsx)(`div`,{className:`flex flex-row gap-2 items-center pl-6 group-hover:hidden`,children:(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.join(`, `)})})},t[16]=n.num_columns,t[17]=n.num_rows,t[18]=k):k=t[18];let M=k,N;t[19]!==s||t[20]!==b||t[21]!==_||t[22]!==y||t[23]!==i||t[24]!==n?(N=()=>{let e=$(s??Q.tableLoading);if(y||_)return(0,Z.jsx)(Ee,{message:`Loading columns...`,style:e});if(b)return(0,Z.jsx)(je,{error:b,style:e});let t=n.columns;return t.length===0?(0,Z.jsx)(ke,{content:`No columns found`,style:e}):t.map(e=>(0,Z.jsx)(St,{table:n,column:e,sqlTableContext:i,columnIndentRem:s},e.name))},t[19]=s,t[20]=b,t[21]=_,t[22]=y,t[23]=i,t[24]=n,t[25]=N):N=t[25];let P=N,F;t[26]!==u||t[27]!==a||t[28]!==n.source_type||t[29]!==n.type?(F=()=>{if(n.source_type===`local`)return;let e=n.type===`table`?O:te;return(0,Z.jsx)(e,{className:`h-3 w-3`,strokeWidth:u||a?2.5:void 0})},t[26]=u,t[27]=a,t[28]=n.source_type,t[29]=n.type,t[30]=F):F=t[30];let I=F,L;t[31]!==i||t[32]!==n.name?(L=A(i,n.name),t[31]=i,t[32]=n.name,t[33]=L):L=t[33];let R=L,z=o??(i?Q.tableSchemaless:0),ne=(u||a)&&`font-semibold`,re;t[34]===ne?re=t[35]:(re=oe(`rounded-none group h-8 cursor-pointer`,ne),t[34]=ne,t[35]=re);let ie;t[36]===z?ie=t[37]:(ie=$(z),t[36]=z,t[37]=ie);let B;t[38]===u?B=t[39]:(B=()=>f(!u),t[38]=u,t[39]=B);let V;t[40]===I?V=t[41]:(V=I(),t[40]=I,t[41]=V);let H;t[42]===n.name?H=t[43]:(H=(0,Z.jsx)(`span`,{className:`text-sm`,children:n.name}),t[42]=n.name,t[43]=H);let U;t[44]!==V||t[45]!==H?(U=(0,Z.jsxs)(`div`,{className:`flex gap-2 items-center flex-1 pl-1`,children:[V,H]}),t[44]=V,t[45]=H,t[46]=U):U=t[46];let W;t[47]===M?W=t[48]:(W=M(),t[47]=M,t[48]=W);let G;t[49]===D?G=t[50]:(G=le.stopPropagation(()=>D()),t[49]=D,t[50]=G);let se;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(se=(0,Z.jsx)(Fe,{className:`h-3 w-3`}),t[51]=se):se=t[51];let K;t[52]===G?K=t[53]:(K=(0,Z.jsx)(ce,{content:`Add table to notebook`,delayDuration:400,children:(0,Z.jsx)(ue,{className:`group-hover:inline-flex hidden`,variant:`text`,size:`icon`,onClick:G,children:se})}),t[52]=G,t[53]=K);let q;t[54]!==u||t[55]!==ie||t[56]!==B||t[57]!==U||t[58]!==W||t[59]!==K||t[60]!==re||t[61]!==R?(q=(0,Z.jsxs)(ee,{className:re,style:ie,value:R,"aria-selected":u,forceMount:!0,onSelect:B,children:[U,W,K]}),t[54]=u,t[55]=ie,t[56]=B,t[57]=U,t[58]=W,t[59]=K,t[60]=re,t[61]=R,t[62]=q):q=t[62];let J;t[63]!==u||t[64]!==P?(J=u&&P(),t[63]=u,t[64]=P,t[65]=J):J=t[65];let de;return t[66]!==q||t[67]!==J?(de=(0,Z.jsxs)(Z.Fragment,{children:[q,J]}),t[66]=q,t[67]=J,t[68]=de):de=t[68],de},St=e=>{let t=(0,Y.c)(51),{table:n,column:a,sqlTableContext:o,columnIndentRem:s}=e,[l,u]=X.useState(!1),d=r(y),f=i(V);d&&l&&u(!1),f(l?e=>new Set([...e,`${n.name}:${a.name}`]):e=>(e.delete(`${n.name}:${a.name}`),new Set(e)));let p=De(),{columnsPreviews:m}=c(),h;t[0]!==a.name||t[1]!==n.primary_keys?(h=n.primary_keys?.includes(a.name)||!1,t[0]=a.name,t[1]=n.primary_keys,t[2]=h):h=t[2];let g=h,_;t[3]!==a.name||t[4]!==n.indexes?(_=n.indexes?.includes(a.name)||!1,t[3]=a.name,t[4]=n.indexes,t[5]=_):_=t[5];let v=_,b;t[6]===p?b=t[7]:(b=e=>{p(e)},t[6]=p,t[7]=b);let x=b,S=Ct,C=l?`font-semibold`:``,w;t[8]!==a.name||t[9]!==C?(w=(0,Z.jsx)(`span`,{className:C,children:a.name}),t[8]=a.name,t[9]=C,t[10]=w):w=t[10];let T=w,E=`${n.name}.${a.name}`,D=`${n.name}.${a.name}`,O;t[11]===l?O=t[12]:(O=()=>u(!l),t[11]=l,t[12]=O);let k;t[13]!==s||t[14]!==o?(k=s??(o?ot(0):Q.columnLocal),t[13]=s,t[14]=o,t[15]=k):k=t[15];let A;t[16]===k?A=t[17]:(A=$(k),t[16]=k,t[17]=A);let j;t[18]!==a.type||t[19]!==T?(j=(0,Z.jsx)(Se,{columnName:T,dataType:a.type}),t[18]=a.type,t[19]=T,t[20]=j):j=t[20];let M;t[21]===g?M=t[22]:(M=g&&S({tooltipContent:`Primary key`,content:`PK`}),t[21]=g,t[22]=M);let N;t[23]===v?N=t[24]:(N=v&&S({tooltipContent:`Indexed`,content:`IDX`}),t[23]=v,t[24]=N);let P;t[25]!==A||t[26]!==j||t[27]!==M||t[28]!==N?(P=(0,Z.jsxs)(`div`,{className:`flex flex-row gap-2 items-center flex-1`,style:A,children:[j,M,N]}),t[25]=A,t[26]=j,t[27]=M,t[28]=N,t[29]=P):P=t[29];let F;t[30]===a.name?F=t[31]:(F=(0,Z.jsx)(ce,{content:`Copy column name`,delayDuration:400,children:(0,Z.jsx)(ue,{variant:`text`,size:`icon`,className:`group-hover:opacity-100 opacity-0 hover:bg-muted text-muted-foreground hover:text-foreground`,children:(0,Z.jsx)(me,{tooltip:!1,value:a.name,className:`h-3 w-3`})})}),t[30]=a.name,t[31]=F);let I;t[32]===a.external_type?I=t[33]:(I=(0,Z.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:a.external_type}),t[32]=a.external_type,t[33]=I);let L;t[34]!==P||t[35]!==F||t[36]!==I||t[37]!==E||t[38]!==D||t[39]!==O?(L=(0,Z.jsxs)(ee,{className:`rounded-none py-1 group cursor-pointer`,value:D,onSelect:O,children:[P,F,I]},E),t[34]=P,t[35]=F,t[36]=I,t[37]=E,t[38]=D,t[39]=O,t[40]=L):L=t[40];let R;t[41]!==a||t[42]!==m||t[43]!==x||t[44]!==l||t[45]!==o||t[46]!==n?(R=l&&(0,Z.jsx)(`div`,{className:`pr-2 py-2 bg-(--slate-1) shadow-inner border-b`,style:$(Q.columnPreview),children:(0,Z.jsx)(W,{children:(0,Z.jsx)(He,{table:n,column:a,onAddColumnChart:x,preview:m.get(o?`${o.database}.${o.schema}.${n.name}:${a.name}`:`${n.name}:${a.name}`),sqlTableContext:o})})}),t[41]=a,t[42]=m,t[43]=x,t[44]=l,t[45]=o,t[46]=n,t[47]=R):R=t[47];let z;return t[48]!==L||t[49]!==R?(z=(0,Z.jsxs)(Z.Fragment,{children:[L,R]}),t[48]=L,t[49]=R,t[50]=z):z=t[50],z};function Ct(e){let{tooltipContent:t,content:n}=e;return(0,Z.jsx)(ce,{content:t,delayDuration:100,children:(0,Z.jsx)(`span`,{className:`text-xs text-black bg-gray-100 dark:invert rounded px-1`,children:n})})}function wt(e){return e}var Tt={name:`name`,type:`type-value`,defs:`defs-refs`},Et=[wt({id:Tt.name,accessorFn:e=>[e.name,e.declaredBy],enableSorting:!0,sortingFn:`alphanumeric`,header:({column:e})=>(0,Z.jsx)(Te,{header:`Name`,column:e}),cell:({getValue:e})=>{let[t,n]=e();return(0,Z.jsx)(Je,{name:t,declaredBy:n})}}),wt({id:Tt.type,accessorFn:e=>[e.dataType,e.value],enableSorting:!0,sortingFn:`alphanumeric`,header:({column:e})=>(0,Z.jsx)(Te,{header:(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`span`,{children:`Type`}),(0,Z.jsx)(`span`,{children:`Value`})]}),column:e}),cell:({getValue:e})=>{let[t,n]=e();return(0,Z.jsxs)(`div`,{className:`max-w-[150px]`,children:[(0,Z.jsx)(`div`,{className:`text-ellipsis overflow-hidden whitespace-nowrap text-muted-foreground font-mono text-xs`,children:t}),(0,Z.jsx)(`div`,{className:`text-ellipsis overflow-hidden whitespace-nowrap`,title:n??``,children:n})]})}}),wt({id:Tt.defs,accessorFn:e=>[e.declaredBy,e.usedBy,e.name,e.declaredByNames,e.usedByNames],enableSorting:!0,sortingFn:`basic`,header:({column:e})=>(0,Z.jsx)(Te,{header:(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`span`,{children:`Declared By`}),(0,Z.jsx)(`span`,{children:`Used By`})]}),column:e}),cell:({getValue:e})=>{let[t,n,r]=e(),i=e=>{let t=N(e);t&&ie(t,r)};return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1 py-1`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-row overflow-auto gap-2 items-center`,children:[(0,Z.jsx)(`span`,{title:`Declared by`,children:(0,Z.jsx)(nt,{className:`w-3.5 h-3.5 text-muted-foreground`})}),t.length===1?(0,Z.jsx)(Ve,{variant:`focus`,cellId:t[0],skipScroll:!0,onClick:()=>i(t[0])}):(0,Z.jsx)(`div`,{className:`text-destructive flex flex-row gap-2`,children:t.slice(0,3).map((e,n)=>(0,Z.jsxs)(`span`,{className:`flex`,children:[(0,Z.jsx)(Ve,{variant:`focus`,cellId:e,skipScroll:!0,className:`whitespace-nowrap text-destructive`,onClick:()=>i(e)},e),n<t.length-1&&`, `]},e))})]}),(0,Z.jsxs)(`div`,{className:`flex flex-row overflow-auto gap-2 items-baseline`,children:[(0,Z.jsx)(`span`,{title:`Used by`,children:(0,Z.jsx)(de,{className:`w-3.5 h-3.5 text-muted-foreground`})}),(0,Z.jsx)(qe,{maxCount:3,cellIds:n,skipScroll:!0,onClick:i})]})]})}})];function Dt({variables:e,sort:t,cellIdToIndex:n}){t||={id:Tt.defs,desc:!1};let r=[];switch(t.id){case Tt.name:r=he(e,e=>e.name);break;case Tt.type:r=he(e,e=>e.dataType);break;case Tt.defs:r=he(e,e=>n.get(e.declaredBy[0]))}return t.desc?r.toReversed():r}var Ot=(0,X.memo)(({className:e,cellIds:t,variables:n})=>{let[r,i]=X.useState([]),[a,o]=X.useState(``),s=S(),{locale:c}=ve(),l=(0,X.useMemo)(()=>{let e=e=>{let n=s[e];return T(n)?`cell-${t.indexOf(e)}`:n??`cell-${t.indexOf(e)}`};return Object.values(n).map(t=>({...t,declaredByNames:t.declaredBy.map(e),usedByNames:t.usedBy.map(e)}))},[n,s,t]),u=(0,X.useMemo)(()=>{let e=new Map;return t.forEach((t,n)=>e.set(t,n)),Dt({variables:l,sort:r[0],cellIdToIndex:e})},[l,r,t]),d=xe({data:u,columns:Et,getCoreRowModel:Le(),onGlobalFilterChange:o,getFilteredRowModel:Ce(),enableFilters:!0,enableGlobalFilter:!0,enableColumnPinning:!1,getColumnCanGlobalFilter(e){return e.columnDef.enableGlobalFilter??!0},globalFilterFn:`auto`,manualSorting:!0,locale:c,onSortingChange:i,getSortedRowModel:we(),state:{sorting:r,globalFilter:a}});return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(pe,{className:`w-full`,placeholder:`Search`,value:a,onChange:e=>o(e.target.value)}),(0,Z.jsxs)(Ne,{className:oe(`w-full text-sm flex-1 border-separate border-spacing-0`,e),children:[(0,Z.jsx)(We,{children:(0,Z.jsx)(Oe,{className:`whitespace-nowrap text-xs`,children:d.getFlatHeaders().map(e=>(0,Z.jsx)(Pe,{className:`sticky top-0 bg-background border-b`,children:ze(e.column.columnDef.header,e.getContext())},e.id))})}),(0,Z.jsx)(Ue,{children:d.getRowModel().rows.map(e=>(0,Z.jsx)(Oe,{className:`hover:bg-accent`,children:e.getVisibleCells().map(e=>(0,Z.jsx)(Ge,{className:`border-b`,children:ze(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})]})]})});Ot.displayName=`VariableTable`;var kt=()=>{let e=(0,Y.c)(30),n=o(),i=b(),a=r(w),s=r(x),c=B(`database`),[l,u]=t(fe),d=a.length+s.length,f;e[0]!==d||e[1]!==l.hasUserInteracted||e[2]!==l.openSections?(f=!l.hasUserInteracted&&d>0?[...new Set([...l.openSections,`datasources`])]:l.openSections,e[0]=d,e[1]=l.hasUserInteracted,e[2]=l.openSections,e[3]=f):f=e[3];let m=f,h;e[4]===u?h=e[5]:(h=e=>{u({openSections:e,hasUserInteracted:!0})},e[4]=u,e[5]=h);let g=h,_;e[6]===m?_=e[7]:(_=m.includes(`datasources`),e[6]=m,e[7]=_);let v=!_&&d>0,y=c.length>0,S;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,Z.jsx)(q,{className:`w-4 h-4`}),e[8]=S):S=e[8];let C;e[9]!==d||e[10]!==v?(C=v&&(0,Z.jsx)(Ye,{children:d}),e[9]=d,e[10]=v,e[11]=C):C=e[11];let T;e[12]!==c.length||e[13]!==y?(T=y&&(0,Z.jsx)(tt,{count:c.length,type:`database`}),e[12]=c.length,e[13]=y,e[14]=T):T=e[14];let E;e[15]!==C||e[16]!==T?(E=(0,Z.jsxs)(Xe,{children:[S,`Data sources`,C,T]}),e[15]=C,e[16]=T,e[17]=E):E=e[17];let D;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,Z.jsx)(Ze,{children:(0,Z.jsx)(dt,{})}),e[18]=D):D=e[18];let O;e[19]===E?O=e[20]:(O=(0,Z.jsxs)($e,{value:`datasources`,children:[E,D]}),e[19]=E,e[20]=O);let k;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,Z.jsxs)(Xe,{children:[(0,Z.jsx)(p,{className:`w-4 h-4`}),`Variables`]}),e[21]=k):k=e[21];let A;e[22]!==i||e[23]!==n?(A=(0,Z.jsxs)($e,{value:`variables`,lastItem:!0,children:[k,(0,Z.jsx)(Ze,{children:Object.keys(n).length===0?(0,Z.jsx)(`div`,{className:`px-3 py-4 text-sm text-muted-foreground`,children:`No variables defined`}):(0,Z.jsx)(Ot,{cellIds:i.inOrderIds,variables:n})})]}),e[22]=i,e[23]=n,e[24]=A):A=e[24];let j;return e[25]!==g||e[26]!==m||e[27]!==A||e[28]!==O?(j=(0,Z.jsxs)(se,{type:`multiple`,value:m,onValueChange:g,className:`flex flex-col h-full overflow-auto`,children:[O,A]}),e[25]=g,e[26]=m,e[27]=A,e[28]=O,e[29]=j):j=e[29],j};export{kt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./react-CUdNIagt.js";import{Cn as n,D as r,Rt as i,_n as a,fn as o,gn as s,mn as c}from"./cells-Cu3p4E4U.js";import{t as l}from"./compiler-runtime-BQ9S8nyo.js";import{n as u}from"./useEventListener-BdZUApHd.js";import{r as d}from"./utils-B4K466FK.js";import{t as f}from"./cn-ldLVeaqm.js";import{t as p}from"./jsx-runtime-B74pBk57.js";import{t as m}from"./tooltip-DR2Z2N4w.js";import{t as h}from"./button-BoklZTGL.js";import{m as g}from"./panels-BreVgQOP.js";import{n as _,t as v}from"./LazyAnyLanguageCodeMirror-CkatLiPl.js";import{r as y}from"./useNumberFormatter-C4-_TnkF.js";import{b}from"./write-secret-modal-CBUZw27N.js";import{t as x}from"./plus-gbN72xHe.js";import{Gt as S,Kt as C,Wt as w,Xt as T,qt as E}from"./input-BDakodZ2.js";import{st as D}from"./dist-BczecT6V.js";import{r as O}from"./requests-yTHMxhVa.js";import{r as k}from"./useTheme-DcnXlv0_.js";import{n as A}from"./useAsyncData-DucTwMkf.js";import{Hn as j,Oi as M,ei as N,gn as P,hn as F,mn as I}from"./index-CFkhNhbS.js";import{t as L}from"./empty-state-CzxjZqGW.js";import{n as R,r as z}from"./panel-context-BPaQeOuV.js";import{i as B}from"./edit-page-BgBPK9rm.js";var V=e(t(),1),H=l(),U=p(),W=u,G=e=>{let t=(0,H.c)(6),{children:n}=e,{openModal:r,closeModal:i}=b(),a;t[0]!==i||t[1]!==r?(a=()=>r((0,U.jsx)(K,{onClose:i})),t[0]=i,t[1]=r,t[2]=a):a=t[2];let o;return t[3]!==n||t[4]!==a?(o=(0,U.jsx)(W,{onClick:a,children:n}),t[3]=n,t[4]=a,t[5]=o):o=t[5],o},K=e=>{let t=(0,H.c)(4),{onClose:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,U.jsx)(T,{children:`Contribute a Snippet`}),t[0]=r):r=t[0];let i;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,U.jsxs)(E,{children:[r,(0,U.jsxs)(S,{children:[`Have a useful snippet you want to share with the community? Make a pull request`,` `,(0,U.jsx)(`a`,{href:d.githubPage,target:`_blank`,className:`underline`,children:`on GitHub`}),`.`]})]}),t[1]=i):i=t[1];let a;return t[2]===n?a=t[3]:(a=(0,U.jsxs)(w,{className:`max-w-md`,children:[i,(0,U.jsx)(C,{children:(0,U.jsx)(h,{"data-testid":`snippet-close-button`,variant:`default`,onClick:n,children:`Close`})})]}),t[2]=n,t[3]=a),a},q=[D.lineWrapping],J=()=>{let e=(0,H.c)(24),{readSnippets:t}=O(),[n,r]=V.useState(),i=R(),a=z(),l;e[0]===t?l=e[1]:(l=()=>t(),e[0]=t,e[1]=l);let u;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],e[2]=u):u=e[2];let{data:d,error:p,isPending:m}=A(l,u);if(p){let t;return e[3]===p?t=e[4]:(t=(0,U.jsx)(j,{error:p}),e[3]=p,e[4]=t),t}if(m||!d){let t;return e[5]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,U.jsx)(N,{size:`medium`,centered:!0}),e[5]=t):t=e[5],t}let h=i===`vertical`,g;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,U.jsx)(s,{placeholder:`Search snippets...`,className:`h-6 m-1`,rootClassName:`flex-1 border-r`}),e[6]=g):g=e[6];let _,v;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,U.jsxs)(`div`,{className:`flex items-center w-full border-b`,children:[g,(0,U.jsx)(G,{children:(0,U.jsx)(`button`,{className:`float-right px-2 m-0 h-full hover:bg-accent hover:text-accent-foreground`,children:(0,U.jsx)(x,{className:`h-4 w-4`})})})]}),v=(0,U.jsx)(c,{children:`No results`}),e[7]=_,e[8]=v):(_=e[7],v=e[8]);let y;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>r(e),e[9]=y):y=e[9];let b;e[10]===d.snippets?b=e[11]:(b=(0,U.jsx)(I,{defaultSize:40,minSize:20,maxSize:70,children:(0,U.jsxs)(o,{className:`h-full rounded-none`,children:[_,v,(0,U.jsx)(X,{onSelect:y,snippets:d.snippets})]})}),e[10]=d.snippets,e[11]=b);let S=h?`h-1`:`w-1`,C;e[12]===S?C=e[13]:(C=f(`bg-border hover:bg-primary/50 transition-colors`,S),e[12]=S,e[13]=C);let w;e[14]===C?w=e[15]:(w=(0,U.jsx)(P,{className:C}),e[14]=C,e[15]=w);let T;e[16]===n?T=e[17]:(T=(0,U.jsx)(I,{defaultSize:60,minSize:20,children:(0,U.jsx)(V.Suspense,{children:(0,U.jsx)(`div`,{className:`h-full snippet-viewer flex flex-col overflow-hidden`,children:n?(0,U.jsx)(Y,{snippet:n,onClose:()=>r(void 0)},n.title):(0,U.jsx)(L,{title:``,description:`Click on a snippet to view its content.`})})})}),e[16]=n,e[17]=T);let E;return e[18]!==i||e[19]!==a||e[20]!==T||e[21]!==b||e[22]!==w?(E=(0,U.jsx)(`div`,{className:`flex-1 overflow-hidden h-full`,children:(0,U.jsxs)(F,{direction:i,className:`h-full`,children:[b,w,T]},a)}),e[18]=i,e[19]=a,e[20]=T,e[21]=b,e[22]=w,e[23]=E):E=e[23],E},Y=e=>{let t=(0,H.c)(33),{snippet:n,onClose:a}=e,{theme:o}=k(),{createNewCell:s}=r(),c=i(),l;t[0]!==s||t[1]!==c||t[2]!==n.sections?(l=()=>{for(let e of n.sections.toReversed())e.code&&s({code:e.code,before:!1,cellId:c??`__end__`,skipIfCodeExists:!0})},t[0]=s,t[1]=c,t[2]=n.sections,t[3]=l):l=t[3];let u=l,d;t[4]!==s||t[5]!==c?(d=e=>{s({code:e,before:!1,cellId:c??`__end__`})},t[4]=s,t[5]=c,t[6]=d):d=t[6];let f=d,p;t[7]===n.title?p=t[8]:(p=(0,U.jsx)(`span`,{children:n.title}),t[7]=n.title,t[8]=p);let b;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,U.jsx)(y,{className:`h-4 w-4`}),t[9]=b):b=t[9];let x;t[10]===a?x=t[11]:(x=(0,U.jsx)(h,{size:`sm`,variant:`ghost`,onClick:a,className:`h-6 w-6 p-0 hover:bg-muted-foreground/10`,children:b}),t[10]=a,t[11]=x);let S;t[12]!==p||t[13]!==x?(S=(0,U.jsxs)(`div`,{className:`text-sm font-semibold bg-muted border-y px-2 py-1 flex justify-between items-center`,children:[p,x]}),t[12]=p,t[13]=x,t[14]=S):S=t[14];let C;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,U.jsx)(_,{className:`ml-2 h-4 w-4`}),t[15]=C):C=t[15];let w;t[16]===u?w=t[17]:(w=(0,U.jsx)(`div`,{className:`flex justify-end`,children:(0,U.jsx)(B,{children:(0,U.jsxs)(h,{className:`float-right`,size:`xs`,variant:`outline`,onClick:u,children:[`Insert snippet`,C]})})}),t[16]=u,t[17]=w);let T;if(t[18]!==f||t[19]!==n.sections||t[20]!==n.title||t[21]!==o){let e;t[23]!==f||t[24]!==n.title||t[25]!==o?(e=e=>{let{code:t,html:r,id:i}=e;if(r)return(0,U.jsx)(`div`,{children:M({html:r})},`${n.title}-${i}`);if(!t)return null;let{language:a,code:s}=g(t);return(0,U.jsxs)(`div`,{className:`relative hover-actions-parent pr-2`,children:[(0,U.jsx)(B,{children:(0,U.jsx)(m,{content:`Insert snippet`,children:(0,U.jsx)(h,{className:`absolute -top-2 -right-1 z-10 hover-action px-2 bg-background`,size:`sm`,variant:`outline`,onClick:()=>{f(t)},children:(0,U.jsx)(_,{className:`h-5 w-5`})})})}),(0,U.jsx)(V.Suspense,{children:(0,U.jsx)(v,{theme:o===`dark`?`dark`:`light`,language:a,className:`cm border rounded overflow-hidden`,extensions:q,value:s,readOnly:!0},`${n.title}-${i}`)})]},`${n.title}-${i}`)},t[23]=f,t[24]=n.title,t[25]=o,t[26]=e):e=t[26],T=n.sections.map(e),t[18]=f,t[19]=n.sections,t[20]=n.title,t[21]=o,t[22]=T}else T=t[22];let E;t[27]!==w||t[28]!==T?(E=(0,U.jsxs)(`div`,{className:`px-2 py-2 space-y-4 overflow-auto flex-1`,children:[w,T]}),t[27]=w,t[28]=T,t[29]=E):E=t[29];let D;return t[30]!==E||t[31]!==S?(D=(0,U.jsxs)(U.Fragment,{children:[S,E]}),t[30]=E,t[31]=S,t[32]=D):D=t[32],D},X=e=>{let t=(0,H.c)(7),{snippets:r,onSelect:i}=e,o;if(t[0]!==i||t[1]!==r){let e;t[3]===i?e=t[4]:(e=e=>(0,U.jsx)(a,{className:`rounded-none`,onSelect:()=>i(e),children:(0,U.jsx)(`div`,{className:`flex flex-row gap-2 items-center`,children:(0,U.jsx)(`span`,{className:`mt-1 text-accent-foreground`,children:e.title})})},e.title),t[3]=i,t[4]=e),o=r.map(e),t[0]=i,t[1]=r,t[2]=o}else o=t[2];let s;return t[5]===o?s=t[6]:(s=(0,U.jsx)(n,{className:`flex flex-col overflow-auto`,children:o}),t[5]=o,t[6]=s),s};export{J as default};
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
import{g as e}from"./useEventListener-BdZUApHd.js";import{t}from"./objects-snlMn4yk.js";import{a as n,c as r,et as i,o as a,tt as o,z as s}from"./vega-loader.browser-CLRkNgm7.js";var c=Uint8Array.of(65,82,82,79,87,49),l={V1:0,V2:1,V3:2,V4:3,V5:4},u={NONE:0,Schema:1,DictionaryBatch:2,RecordBatch:3,Tensor:4,SparseTensor:5},d={Dictionary:-1,NONE:0,Null:1,Int:2,Float:3,Binary:4,Utf8:5,Bool:6,Decimal:7,Date:8,Time:9,Timestamp:10,Interval:11,List:12,Struct:13,Union:14,FixedSizeBinary:15,FixedSizeList:16,Map:17,Duration:18,LargeBinary:19,LargeUtf8:20,LargeList:21,RunEndEncoded:22,BinaryView:23,Utf8View:24,ListView:25,LargeListView:26},f={HALF:0,SINGLE:1,DOUBLE:2},p={DAY:0,MILLISECOND:1},m={SECOND:0,MILLISECOND:1,MICROSECOND:2,NANOSECOND:3},h={YEAR_MONTH:0,DAY_TIME:1,MONTH_DAY_NANO:2},g={Sparse:0,Dense:1},ee=Uint8Array,te=Uint16Array,ne=Uint32Array,re=BigUint64Array,ie=Int8Array,ae=Int16Array,_=Int32Array,v=BigInt64Array,oe=Float32Array,y=Float64Array;function se(e,t){let n=Math.log2(e)-3;return(t?[ie,ae,_,v]:[ee,te,ne,re])[n]}Object.getPrototypeOf(Int8Array);function b(e,t){let n=0,r=e.length;if(r<=2147483648)do{let i=n+r>>>1;e[i]<=t?n=i+1:r=i}while(n<r);else do{let i=Math.trunc((n+r)/2);e[i]<=t?n=i+1:r=i}while(n<r);return n}function x(e,t,n){if(t(e))return e;throw Error(n(e))}function S(e,t,n){return t=Array.isArray(t)?t:Object.values(t),x(e,e=>t.includes(e),n??(()=>`${e} must be one of ${t}`))}function ce(e,t){for(let[n,r]of Object.entries(e))if(r===t)return n;return`<Unknown>`}var C=e=>`Unsupported data type: "${ce(d,e)}" (id ${e})`,le=(e,t,n=!0,r=null)=>({name:e,type:t,nullable:n,metadata:r});function ue(e){return Object.hasOwn(e,`name`)&&de(e.type)}function de(e){return typeof e?.typeId==`number`}function w(e,t=``,n=!0){return ue(e)?e:le(t,x(e,de,()=>`Data type expected.`),n)}var fe=(e,t,n=!1,r=-1)=>({typeId:d.Dictionary,id:r,dictionary:e,indices:t||me(),ordered:n}),pe=(e=32,t=!0)=>({typeId:d.Int,bitWidth:S(e,[8,16,32,64]),signed:t,values:se(e,t)}),me=()=>pe(32),he=(e=2)=>({typeId:d.Float,precision:S(e,f),values:[te,oe,y][e]}),ge=()=>({typeId:d.Binary,offsets:_}),_e=()=>({typeId:d.Utf8,offsets:_}),ve=(e,t,n=128)=>({typeId:d.Decimal,precision:e,scale:t,bitWidth:S(n,[128,256]),values:re}),ye=e=>({typeId:d.Date,unit:S(e,p),values:e===p.DAY?_:v}),be=(e=m.MILLISECOND,t=32)=>({typeId:d.Time,unit:S(e,m),bitWidth:S(t,[32,64]),values:t===32?_:v}),xe=(e=m.MILLISECOND,t=null)=>({typeId:d.Timestamp,unit:S(e,m),timezone:t,values:v}),Se=(e=h.MONTH_DAY_NANO)=>({typeId:d.Interval,unit:S(e,h),values:e===h.MONTH_DAY_NANO?void 0:_}),Ce=e=>({typeId:d.List,children:[w(e)],offsets:_}),we=e=>({typeId:d.Struct,children:Array.isArray(e)&&ue(e[0])?e:Object.entries(e).map(([e,t])=>le(e,t))}),Te=(e,t,n,r)=>(n??=t.map((e,t)=>t),{typeId:d.Union,mode:S(e,g),typeIds:n,typeMap:n.reduce((e,t,n)=>(e[t]=n,e),{}),children:t.map((e,t)=>w(e,`_${t}`)),typeIdForValue:r,offsets:_}),Ee=e=>({typeId:d.FixedSizeBinary,stride:e}),De=(e,t)=>({typeId:d.FixedSizeList,stride:t,children:[w(e)]}),Oe=(e,t)=>({typeId:d.Map,keysSorted:e,children:[t],offsets:_}),ke=(e=m.MILLISECOND)=>({typeId:d.Duration,unit:S(e,m),values:v}),Ae=()=>({typeId:d.LargeBinary,offsets:v}),je=()=>({typeId:d.LargeUtf8,offsets:v}),Me=e=>({typeId:d.LargeList,children:[w(e)],offsets:v}),Ne=(e,t)=>({typeId:d.RunEndEncoded,children:[x(w(e,`run_ends`),e=>e.type.typeId===d.Int,()=>`Run-ends must have an integer type.`),w(t,`values`)]}),Pe=e=>({typeId:d.ListView,children:[w(e,`value`)],offsets:_}),Fe=e=>({typeId:d.LargeListView,children:[w(e,`value`)],offsets:v}),T=new y(2).buffer;new v(T),new ne(T),new _(T),new ee(T);function E(e){if(e>2**53-1||e<-(2**53-1))throw Error(`BigInt exceeds integer number representation: ${e}`);return Number(e)}function D(e,t){return Number(e/t)+Number(e%t)/Number(t)}var O=e=>BigInt.asUintN(64,e);function Ie(e,t){let n=t<<1,r;return BigInt.asIntN(64,e[n+1])<0?(r=O(~e[n])|O(~e[n+1])<<64n,r=-(r+1n)):r=e[n]|e[n+1]<<64n,r}function Le(e,t){let n=t<<2,r;return BigInt.asIntN(64,e[n+3])<0?(r=O(~e[n])|O(~e[n+1])<<64n|O(~e[n+2])<<128n|O(~e[n+3])<<192n,r=-(r+1n)):r=e[n]|e[n+1]<<64n|e[n+2]<<128n|e[n+3]<<192n,r}var Re=new TextDecoder(`utf-8`);new TextEncoder;function k(e){return Re.decode(e)}function ze(e,t){return!!(e[t>>3]&1<<t%8)}function A(e,t){let n=t+F(e,t),r=n-F(e,n),i=P(e,r);return(t,a,o=null)=>{if(t<i){let i=P(e,r+t);if(i)return a(e,n+i)}return o}}function j(e,t){return t}function M(e,t){return!!Be(e,t)}function Be(e,t){return N(e,t)<<24>>24}function N(e,t){return e[t]}function P(e,t){return Ve(e,t)<<16>>16}function Ve(e,t){return e[t]|e[t+1]<<8}function F(e,t){return e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24}function He(e,t){return F(e,t)>>>0}function I(e,t){return E(BigInt.asIntN(64,BigInt(He(e,t))+(BigInt(He(e,t+4))<<32n)))}function L(e,t){let n=t+F(e,t),r=F(e,n);return n+=4,k(e.subarray(n,n+r))}function R(e,t,n,r){if(!t)return[];let i=t+F(e,t);return Array.from({length:F(e,i)},(t,a)=>r(e,i+4+a*n))}var z=Symbol(`rowIndex`);function B(e,t){class n{constructor(e){this[z]=e}toJSON(){return We(e,t,this[z])}}let r=n.prototype;for(let n=0;n<e.length;++n){if(Object.hasOwn(r,e[n]))continue;let i=t[n];Object.defineProperty(r,e[n],{get(){return i.at(this[z])},enumerable:!0})}return e=>new n(e)}function Ue(e,t){return n=>We(e,t,n)}function We(e,t,n){let r={};for(let i=0;i<e.length;++i)r[e[i]]=t[i].at(n);return r}function Ge(e){return e instanceof H}var V=class{static ArrayType=null;constructor({length:e,nullCount:t,type:n,validity:r,values:i,offsets:a,sizes:o,children:s}){this.length=e,this.nullCount=t,this.type=n,this.validity=r,this.values=i,this.offsets=a,this.sizes=o,this.children=s,(!t||!this.validity)&&(this.at=e=>this.value(e))}get[Symbol.toStringTag](){return`Batch`}at(e){return this.isValid(e)?this.value(e):null}isValid(e){return ze(this.validity,e)}value(e){return this.values[e]}slice(e,t){let n=t-e,r=Array(n);for(let t=0;t<n;++t)r[t]=this.at(e+t);return r}*[Symbol.iterator](){for(let e=0;e<this.length;++e)yield this.at(e)}},H=class extends V{constructor(e){super(e);let{length:t,values:n}=this;this.values=n.subarray(0,t)}slice(e,t){return this.nullCount?super.slice(e,t):this.values.subarray(e,t)}[Symbol.iterator](){return this.nullCount?super[Symbol.iterator]():this.values[Symbol.iterator]()}},U=class extends V{static ArrayType=y},W=class extends V{static ArrayType=Array},Ke=class extends W{value(e){return null}},G=class extends U{value(e){return E(this.values[e])}},qe=class extends U{value(e){let t=this.values[e],n=(t&31744)>>10,r=(t&1023)/1024,i=(-1)**((t&32768)>>15);switch(n){case 31:return i*(r?NaN:1/0);case 0:return i*(r?6103515625e-14*r:0)}return i*2**(n-15)*(1+r)}},Je=class extends W{value(e){return ze(this.values,e)}},Ye=class extends V{constructor(e){super(e);let{bitWidth:t,scale:n}=this.type;this.decimal=t===128?Ie:Le,this.scale=10n**BigInt(n)}},Xe=class extends Ye{static ArrayType=y;value(e){return D(this.decimal(this.values,e),this.scale)}},Ze=class extends Ye{static ArrayType=Array;value(e){return this.decimal(this.values,e)}},Qe=class extends W{constructor(e){super(e),this.source=e}value(e){return new Date(this.source.value(e))}},$e=class extends U{value(e){return 864e5*this.values[e]}},et=G,tt=class extends G{value(e){return super.value(e)*1e3}},nt=G,rt=class extends G{value(e){return D(this.values[e],1000n)}},it=class extends G{value(e){return D(this.values[e],1000000n)}},at=class extends W{value(e){return this.values.subarray(e<<1,e+1<<1)}},ot=class extends W{value(e){let t=this.values,n=e<<4;return Float64Array.of(F(t,n),F(t,n+4),I(t,n+8))}},st=({values:e,offsets:t},n)=>e.subarray(t[n],t[n+1]),ct=({values:e,offsets:t},n)=>e.subarray(E(t[n]),E(t[n+1])),lt=class extends W{value(e){return st(this,e)}},ut=class extends W{value(e){return ct(this,e)}},dt=class extends W{value(e){return k(st(this,e))}},ft=class extends W{value(e){return k(ct(this,e))}},pt=class extends W{value(e){let t=this.offsets;return this.children[0].slice(t[e],t[e+1])}},mt=class extends W{value(e){let t=this.offsets;return this.children[0].slice(E(t[e]),E(t[e+1]))}},ht=class extends W{value(e){let t=this.offsets[e],n=t+this.sizes[e];return this.children[0].slice(t,n)}},gt=class extends W{value(e){let t=this.offsets[e],n=t+this.sizes[e];return this.children[0].slice(E(t),E(n))}},_t=class extends W{constructor(e){super(e),this.stride=this.type.stride}},vt=class extends _t{value(e){let{stride:t,values:n}=this;return n.subarray(e*t,(e+1)*t)}},yt=class extends _t{value(e){let{children:t,stride:n}=this;return t[0].slice(e*n,(e+1)*n)}};function bt({children:e,offsets:t},n){let[r,i]=e[0].children,a=t[n],o=t[n+1],s=[];for(let e=a;e<o;++e)s.push([r.at(e),i.at(e)]);return s}var xt=class extends W{value(e){return bt(this,e)}},St=class extends W{value(e){return new Map(bt(this,e))}},Ct=class extends W{constructor({typeIds:e,...t}){super(t),this.typeIds=e,this.typeMap=this.type.typeMap}value(e,t=e){let{typeIds:n,children:r,typeMap:i}=this;return r[i[n[e]]].at(t)}},wt=class extends Ct{value(e){return super.value(e,this.offsets[e])}},Tt=class extends W{constructor(e,t=Ue){super(e),this.names=this.type.children.map(e=>e.name),this.factory=t(this.names,this.children)}value(e){return this.factory(e)}},Et=class extends Tt{constructor(e){super(e,B)}},Dt=class extends W{value(e){let[{values:t},n]=this.children;return n.at(b(t,e))}},Ot=class extends W{setDictionary(e){return this.dictionary=e,this.cache=e.cache(),this}value(e){return this.cache[this.key(e)]}key(e){return this.values[e]}},kt=class extends W{constructor({data:e,...t}){super(t),this.data=e}view(e){let{values:t,data:n}=this,r=e<<4,i=r+4,a=t,o=F(a,r);return o>12&&(i=F(a,r+12),a=n[F(a,r+8)]),a.subarray(i,i+o)}},At=class extends kt{value(e){return this.view(e)}},jt=class extends kt{value(e){return k(this.view(e))}};function K(e){let t=[];return{add(e){return t.push(e),this},clear:()=>t=[],done:()=>new Mt(t,e)}}var Mt=class{constructor(e,t=e[0]?.type){this.type=t,this.length=e.reduce((e,t)=>e+t.length,0),this.nullCount=e.reduce((e,t)=>e+t.nullCount,0),this.data=e;let n=e.length,r=new Int32Array(n+1);if(n===1){let[t]=e;r[1]=t.length,this.at=e=>t.at(e)}else for(let t=0,i=0;t<n;++t)r[t+1]=i+=e[t].length;this.offsets=r}get[Symbol.toStringTag](){return`Column`}[Symbol.iterator](){let e=this.data;return e.length===1?e[0][Symbol.iterator]():Nt(e)}at(e){let{data:t,offsets:n}=this,r=b(n,e)-1;return t[r]?.at(e-n[r])}get(e){return this.at(e)}toArray(){let{length:e,nullCount:t,data:n}=this,r=!t&&Ge(n[0]),i=n.length;if(r&&i===1)return n[0].values;let a=new(!i||t>0?Array:n[0].constructor.ArrayType??n[0].values.constructor)(e);return r?Pt(a,n):Ft(a,n)}cache(){return this._cache??=this.toArray()}};function*Nt(e){for(let t=0;t<e.length;++t){let n=e[t][Symbol.iterator]();for(let e=n.next();!e.done;e=n.next())yield e.value}}function Pt(e,t){for(let n=0,r=0;n<t.length;++n){let{values:i}=t[n];e.set(i,r),r+=i.length}return e}function Ft(e,t){let n=-1;for(let r=0;r<t.length;++r){let i=t[r];for(let t=0;t<i.length;++t)e[++n]=i.at(t)}return e}var It=class e{constructor(e,t,n=!1){let r=e.fields.map(e=>e.name);this.schema=e,this.names=r,this.children=t,this.factory=n?B:Ue;let i=[];this.getFactory=e=>i[e]??(i[e]=this.factory(r,t.map(t=>t.data[e])))}get[Symbol.toStringTag](){return`Table`}get numCols(){return this.names.length}get numRows(){return this.children[0]?.length??0}getChildAt(e){return this.children[e]}getChild(e){let t=this.names.findIndex(t=>t===e);return t>-1?this.children[t]:void 0}selectAt(t,n=[]){let{children:r,factory:i,schema:a}=this,{fields:o}=a;return new e({...a,fields:t.map((e,t)=>Lt(o[e],n[t]))},t.map(e=>r[e]),i===B)}select(e,t){let n=this.names,r=e.map(e=>n.indexOf(e));return this.selectAt(r,t)}toColumns(){let{children:e,names:t}=this,n={};return t.forEach((t,r)=>n[t]=e[r]?.toArray()??[]),n}toArray(){let{children:e,getFactory:t,numRows:n}=this,r=e[0]?.data??[],i=Array(n);for(let e=0,n=-1;e<r.length;++e){let a=t(e);for(let t=0;t<r[e].length;++t)i[++n]=a(t)}return i}*[Symbol.iterator](){let{children:e,getFactory:t}=this,n=e[0]?.data??[];for(let e=0;e<n.length;++e){let r=t(e);for(let t=0;t<n[e].length;++t)yield r(t)}}at(e){let{children:t,getFactory:n,numRows:r}=this;if(e<0||e>=r)return null;let[{offsets:i}]=t,a=b(i,e)-1;return n(a)(e-i[a])}get(e){return this.at(e)}};function Lt(e,t){return t!=null&&t!==e.name?{...e,name:t}:e}function Rt(e,t={}){let{typeId:n,bitWidth:r,precision:i,unit:a}=e,{useBigInt:o,useDate:s,useDecimalBigInt:c,useMap:l,useProxy:u}=t;switch(n){case d.Null:return Ke;case d.Bool:return Je;case d.Int:case d.Time:case d.Duration:return o||r<64?H:G;case d.Float:return i?H:qe;case d.Date:return zt(a===p.DAY?$e:et,s&&Qe);case d.Timestamp:return zt(a===m.SECOND?tt:a===m.MILLISECOND?nt:a===m.MICROSECOND?rt:it,s&&Qe);case d.Decimal:return c?Ze:Xe;case d.Interval:return a===h.DAY_TIME?at:a===h.YEAR_MONTH?H:ot;case d.FixedSizeBinary:return vt;case d.Utf8:return dt;case d.LargeUtf8:return ft;case d.Binary:return lt;case d.LargeBinary:return ut;case d.BinaryView:return At;case d.Utf8View:return jt;case d.List:return pt;case d.LargeList:return mt;case d.Map:return l?St:xt;case d.ListView:return ht;case d.LargeListView:return gt;case d.FixedSizeList:return yt;case d.Struct:return u?Et:Tt;case d.RunEndEncoded:return Dt;case d.Dictionary:return Ot;case d.Union:return e.mode?wt:Ct}throw Error(C(n))}function zt(e,t){return t?class extends t{constructor(t){super(new e(t))}}:e}function Bt(e,t){return{offset:I(e,t),metadataLength:F(e,t+8),bodyLength:I(e,t+16)}}function Vt(e,t){return R(e,t,24,Bt)}function Ht(e,t,n){let r=A(e,t);if(r(10,j,0))throw Error(`Record batch compression not implemented`);let i=n<l.V4?8:0;return{length:r(4,I,0),nodes:R(e,r(6,j),16,(e,t)=>({length:I(e,t),nullCount:I(e,t+8)})),regions:R(e,r(8,j),16+i,(e,t)=>({offset:I(e,t+i),length:I(e,t+i+8)})),variadic:R(e,r(12,j),8,I)}}function Ut(e,t,n){let r=A(e,t);return{id:r(4,I,0),data:r(6,(e,t)=>Ht(e,t,n)),isDelta:r(8,M,!1)}}function Wt(e,t,n,r){S(n,d,C);let i=A(e,t);switch(n){case d.Binary:return ge();case d.Utf8:return _e();case d.LargeBinary:return Ae();case d.LargeUtf8:return je();case d.List:return Ce(r[0]);case d.ListView:return Pe(r[0]);case d.LargeList:return Me(r[0]);case d.LargeListView:return Fe(r[0]);case d.Struct:return we(r);case d.RunEndEncoded:return Ne(r[0],r[1]);case d.Int:return pe(i(4,F,0),i(6,M,!1));case d.Float:return he(i(4,P,f.HALF));case d.Decimal:return ve(i(4,F,0),i(6,F,0),i(8,F,128));case d.Date:return ye(i(4,P,p.MILLISECOND));case d.Time:return be(i(4,P,m.MILLISECOND),i(6,F,32));case d.Timestamp:return xe(i(4,P,m.SECOND),i(6,L));case d.Interval:return Se(i(4,P,h.YEAR_MONTH));case d.Duration:return ke(i(4,P,m.MILLISECOND));case d.FixedSizeBinary:return Ee(i(4,F,0));case d.FixedSizeList:return De(r[0],i(4,F,0));case d.Map:return Oe(i(4,M,!1),r[0]);case d.Union:return Te(i(4,P,g.Sparse),r,R(e,i(6,j),4,F))}return{typeId:n}}function q(e,t){let n=R(e,t,4,(e,t)=>{let n=A(e,t);return[n(4,L),n(6,L)]});return n.length?new Map(n):null}function Gt(e,t,n){let r=A(e,t);return{version:n,endianness:r(4,P,0),fields:r(6,Kt,[]),metadata:r(8,q)}}function Kt(e,t){return R(e,t,4,qt)}function qt(e,t){let n=A(e,t),r=n(8,N,d.NONE),i=n(10,j,0),a=n(12,Yt),o=Wt(e,i,r,n(14,(e,t)=>Jt(e,t)));return a&&(a.dictionary=o,o=a),{name:n(4,L),type:o,nullable:n(6,M,!1),metadata:n(16,q)}}function Jt(e,t){let n=R(e,t,4,qt);return n.length?n:null}function Yt(e,t){if(!t)return null;let n=A(e,t);return fe(null,n(6,Xt,me()),n(8,M,!1),n(4,I,0))}function Xt(e,t){return Wt(e,t,d.Int)}var Zt=(e,t)=>`Expected to read ${e} metadata bytes, but only read ${t}.`,Qt=(e,t)=>`Expected to read ${e} bytes for message body, but only read ${t}.`,$t=e=>`Unsupported message type: ${e} (${ce(u,e)})`;function J(e,t){let n=F(e,t)||0;if(t+=4,n===-1&&(n=F(e,t)||0,t+=4),n===0)return null;let r=e.subarray(t,t+=n);if(r.byteLength<n)throw Error(Zt(n,r.byteLength));let i=A(r,0),a=i(4,P,l.V1),o=i(6,N,u.NONE),s=i(8,j,0),c=i(10,I,0),d;if(s){let n=o===u.Schema?Gt:o===u.DictionaryBatch?Ut:o===u.RecordBatch?Ht:null;if(!n)throw Error($t(o));if(d=n(r,s,a),c>0){let n=e.subarray(t,t+=c);if(n.byteLength<c)throw Error(Qt(c,n.byteLength));d.body=n}}return{version:a,type:o,index:t,content:d}}function en(e){let t=e instanceof ArrayBuffer?new Uint8Array(e):e;return t instanceof Uint8Array&&tn(t)?rn(t):nn(t)}function tn(e){if(!e||e.length<4)return!1;for(let t=0;t<6;++t)if(c[t]!==e[t])return!1;return!0}function nn(e){let t=[e].flat(),n,r=[],i=[];for(let e of t){if(!(e instanceof Uint8Array))throw Error(`IPC data batch was not a Uint8Array.`);let t=0;for(;;){let a=J(e,t);if(a===null)break;if(t=a.index,a.content)switch(a.type){case u.Schema:n||=a.content;break;case u.RecordBatch:r.push(a.content);break;case u.DictionaryBatch:i.push(a.content)}}}return{schema:n,dictionaries:i,records:r,metadata:null}}function rn(e){let t=e.byteLength-(c.length+4),n=A(e,t-F(e,t)),r=n(4,P,l.V1),i=n(8,Vt,[]),a=n(10,Vt,[]);return{schema:n(6,(e,t)=>Gt(e,t,r)),dictionaries:i.map(({offset:t})=>J(e,t).content),records:a.map(({offset:t})=>J(e,t).content),metadata:n(12,q)}}function Y(e,t){return an(en(e),t)}function an(e,t={}){let{schema:n={fields:[]},dictionaries:r,records:i}=e,{version:a,fields:o}=n,s=new Map,c=sn(t,a,s),l=new Map;on(n,e=>{let t=e.type;t.typeId===d.Dictionary&&l.set(t.id,t.dictionary)});let u=new Map;for(let e of r){let{id:t,data:n,isDelta:r,body:i}=e,a=l.get(t),o=X(a,c({...n,body:i}));if(u.has(t)){let e=u.get(t);r||e.clear(),e.add(o)}else{if(r)throw Error(`Delta update can not be first dictionary batch.`);u.set(t,K(a).add(o))}}u.forEach((e,t)=>s.set(t,e.done()));let f=o.map(e=>K(e.type));for(let e of i){let t=c(e);o.forEach((e,n)=>f[n].add(X(e.type,t)))}return new It(n,f.map(e=>e.done()),t.useProxy)}function on(e,t){e.fields.forEach(function e(n){t(n),n.type.dictionary?.children?.forEach(e),n.type.children?.forEach(e)})}function sn(e,t,n){let r={version:t,options:e,dictionary:e=>n.get(e)};return e=>{let{length:t,nodes:n,regions:i,variadic:a,body:o}=e,s=-1,c=-1,l=-1;return{...r,length:t,node:()=>n[++s],buffer:e=>{let{length:t,offset:n}=i[++c];return e?new e(o.buffer,o.byteOffset+n,t/e.BYTES_PER_ELEMENT):o.subarray(n,n+t)},variadic:()=>a[++l],visit(e){return e.map(e=>X(e.type,this))}}}}function X(e,t){let{typeId:n}=e,{length:r,options:i,node:a,buffer:o,variadic:s,version:c}=t,u=Rt(e,i);if(n===d.Null)return new u({length:r,nullCount:r,type:e});let f={...a(),type:e};switch(n){case d.Bool:case d.Int:case d.Time:case d.Duration:case d.Float:case d.Decimal:case d.Date:case d.Timestamp:case d.Interval:case d.FixedSizeBinary:return new u({...f,validity:o(),values:o(e.values)});case d.Utf8:case d.LargeUtf8:case d.Binary:case d.LargeBinary:return new u({...f,validity:o(),offsets:o(e.offsets),values:o()});case d.BinaryView:case d.Utf8View:return new u({...f,validity:o(),values:o(),data:Array.from({length:s()},()=>o())});case d.List:case d.LargeList:case d.Map:return new u({...f,validity:o(),offsets:o(e.offsets),children:t.visit(e.children)});case d.ListView:case d.LargeListView:return new u({...f,validity:o(),offsets:o(e.offsets),sizes:o(e.offsets),children:t.visit(e.children)});case d.FixedSizeList:case d.Struct:return new u({...f,validity:o(),children:t.visit(e.children)});case d.RunEndEncoded:return new u({...f,children:t.visit(e.children)});case d.Dictionary:{let{id:n,indices:r}=e;return new u({...f,validity:o(),values:o(r.values)}).setDictionary(t.dictionary(n))}case d.Union:return c<l.V5&&o(),new u({...f,typeIds:o(ie),offsets:e.mode===g.Sparse?null:o(e.offsets),children:t.visit(e.children)});default:throw Error(C(n))}}new Uint16Array(new Uint8Array([1,0]).buffer)[0];function Z(e,t){let n=new Map;return(...r)=>{let i=t(...r);if(n.has(i))return n.get(i);let a=e(...r).finally(()=>{n.delete(i)});return n.set(i,a),a}}function Q(e,t){return a(e,t)}function cn(){return n()}var $=r;function ln(){let e=un(cn()),t=e=>JSON.stringify(e);return{load:Z(e.load.bind(e),t),sanitize:Z(e.sanitize.bind(e),t),http:Z(e.http.bind(e),t),file:Z(e.file.bind(e),t)}}function un(e){return{...e,async load(t,n){return t.endsWith(`.arrow`)?Y(await dn(t),{useProxy:!1}).toArray():e.load(t,n)}}}var dn=Z(e=>fetch(e).then(e=>e.arrayBuffer()),e=>e),fn=$.integer,pn=$.number,mn=$.date,hn=$.boolean,gn=()=>($.integer=e=>{if(e===``)return``;if(e===`-inf`||e===`inf`)return e;function t(e){let t=fn(e);return Number.isNaN(t)?e:t}let n=Number.parseInt(e,10);if(Number.isNaN(n))return e;if(!(Math.abs(n)>2**53-1))return t(e);try{return BigInt(e)}catch{return t(e)}},$.number=e=>{if(e===`-inf`||e===`inf`)return e;let t=pn(e);return Number.isNaN(t)?e:t},()=>{$.integer=fn,$.number=pn}),_n=()=>($.date=t=>{if(t===``)return``;if(t==null)return null;if(!/^\d{4}-\d{2}-\d{2}(T[\d.:]+(Z|[+-]\d{2}:?\d{2})?)?$/.test(t))return t;try{let e=new Date(t);return Number.isNaN(e.getTime())?t:e}catch{return e.warn(`Failed to parse date: ${t}`),t}},()=>{$.date=mn});$.boolean=e=>e===`True`||e!==`False`&&hn(e);var vn=ln();async function yn(e,n,r={}){let{handleBigIntAndNumberLike:i=!1,replacePeriod:a=!1}=r;if(e.endsWith(`.arrow`)||n?.type===`arrow`)return Y(await dn(e),{useProxy:!0,useDate:!0,useBigInt:i}).toArray();let o=[_n];i&&o.push(gn);let s=[];try{let r=await vn.load(e);if(!n){if(typeof r==`string`)try{JSON.parse(r),n={type:`json`}}catch{n={type:`csv`,parse:`auto`}}typeof r==`object`&&(n={type:`json`})}let i=n?.type===`csv`;i&&typeof r==`string`&&(r=xn(r)),i&&typeof r==`string`&&a&&(r=Sn(r));let c=n?.parse||`auto`;return typeof c==`object`&&(c=t.mapValues(c,e=>e===`time`?`string`:e===`datetime`?`date`:e)),s=o.map(e=>e()),i?Q(r,{...n,parse:c}):Q(r,n)}finally{s.forEach(e=>e())}}function bn(e,t=!0){let n=[_n];t&&n.push(gn);let r=n.map(e=>e()),i=Q(e,{type:`csv`,parse:`auto`});return r.forEach(e=>e()),i}function xn(e){return e?.includes(`,`)?Cn(e,e=>{let t=new Set;return e.map(e=>{let n=Tn(e,t);return t.add(n),n})}):e}function Sn(e){return e?.includes(`.`)?Cn(e,e=>e.map(e=>e.replaceAll(`.`,`․`))):e}function Cn(e,t){let n=e.split(`
|
|
2
|
-
`);return n[0]=t(n[0].split(`,`)).join(`,`),n.join(`
|
|
3
|
-
`)}var wn=``;function Tn(e,t){let n=e,r=1;for(;t.has(n);)n=`${e}${wn.repeat(r)}`,r++;return n}var En={version:`1.1.0`};function Dn(e,t,n,r){if(o(e))return`[${e.map(e=>t(s(e)?e:kn(e,n))).join(`, `)}]`;if(i(e)){let a=``,{title:o,image:s,...c}=e;o&&(a+=`<h2>${t(o)}</h2>`),s&&(a+=`<img src="${new URL(t(s),r||location.href).href}">`);let l=Object.keys(c);if(l.length>0){a+=`<table>`;for(let e of l){let r=c[e];r!==void 0&&(i(r)&&(r=kn(r,n)),a+=`<tr><td class="key">${t(e)}</td><td class="value">${t(r)}</td></tr>`)}a+=`</table>`}return a||`{}`}return t(e)}function On(e){let t=[];return function(n,r){if(typeof r!=`object`||!r)return r;let i=t.indexOf(this)+1;return t.length=i,t.length>e?`[Object]`:t.indexOf(r)>=0?`[Circular]`:(t.push(r),r)}}function kn(e,t){return JSON.stringify(e,On(t))}var An=`#vg-tooltip-element {
|
|
4
|
-
visibility: hidden;
|
|
5
|
-
padding: 8px;
|
|
6
|
-
position: fixed;
|
|
7
|
-
z-index: 1000;
|
|
8
|
-
font-family: sans-serif;
|
|
9
|
-
font-size: 11px;
|
|
10
|
-
border-radius: 3px;
|
|
11
|
-
box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
|
|
12
|
-
white-space: pre-line;
|
|
13
|
-
}
|
|
14
|
-
#vg-tooltip-element.visible {
|
|
15
|
-
visibility: visible;
|
|
16
|
-
}
|
|
17
|
-
#vg-tooltip-element h2 {
|
|
18
|
-
margin-top: 0;
|
|
19
|
-
margin-bottom: 10px;
|
|
20
|
-
font-size: 13px;
|
|
21
|
-
}
|
|
22
|
-
#vg-tooltip-element table {
|
|
23
|
-
border-spacing: 0;
|
|
24
|
-
}
|
|
25
|
-
#vg-tooltip-element table tr {
|
|
26
|
-
border: none;
|
|
27
|
-
}
|
|
28
|
-
#vg-tooltip-element table tr td {
|
|
29
|
-
overflow: hidden;
|
|
30
|
-
text-overflow: ellipsis;
|
|
31
|
-
padding-top: 2px;
|
|
32
|
-
padding-bottom: 2px;
|
|
33
|
-
vertical-align: text-top;
|
|
34
|
-
}
|
|
35
|
-
#vg-tooltip-element table tr td.key {
|
|
36
|
-
color: #808080;
|
|
37
|
-
max-width: 150px;
|
|
38
|
-
text-align: right;
|
|
39
|
-
padding-right: 4px;
|
|
40
|
-
}
|
|
41
|
-
#vg-tooltip-element table tr td.value {
|
|
42
|
-
display: block;
|
|
43
|
-
max-width: 300px;
|
|
44
|
-
max-height: 7em;
|
|
45
|
-
text-align: left;
|
|
46
|
-
}
|
|
47
|
-
#vg-tooltip-element {
|
|
48
|
-
/* The default theme is the light theme. */
|
|
49
|
-
background-color: rgba(255, 255, 255, 0.95);
|
|
50
|
-
border: 1px solid #d9d9d9;
|
|
51
|
-
color: black;
|
|
52
|
-
}
|
|
53
|
-
#vg-tooltip-element.dark-theme {
|
|
54
|
-
background-color: rgba(32, 32, 32, 0.9);
|
|
55
|
-
border: 1px solid #f5f5f5;
|
|
56
|
-
color: white;
|
|
57
|
-
}
|
|
58
|
-
#vg-tooltip-element.dark-theme td.key {
|
|
59
|
-
color: #bfbfbf;
|
|
60
|
-
}
|
|
61
|
-
`,jn=`vg-tooltip-element`,Mn={offsetX:10,offsetY:10,id:jn,styleId:`vega-tooltip-style`,theme:`light`,disableDefaultStyle:!1,sanitize:Nn,maxDepth:2,formatTooltip:Dn,baseURL:``,anchor:`cursor`,position:[`top`,`bottom`,`left`,`right`,`top-left`,`top-right`,`bottom-left`,`bottom-right`]};function Nn(e){return String(e).replace(/&/g,`&`).replace(/</g,`<`)}function Pn(e){if(!/^[A-Za-z]+[-:.\w]*$/.test(e))throw Error(`Invalid HTML ID`);return An.toString().replaceAll(jn,e)}function Fn(e,t,{offsetX:n,offsetY:r}){let i=Rn({x1:e.clientX,x2:e.clientX,y1:e.clientY,y2:e.clientY},t,n,r);for(let e of[`bottom-right`,`bottom-left`,`top-right`,`top-left`])if(zn(i[e],t))return i[e];return i[`top-left`]}function In(e,t,n,r,i){let{position:a,offsetX:o,offsetY:s}=i,c=e._el.getBoundingClientRect(),l=e._origin,u=Rn(Ln(c,l,n),r,o,s),d=Array.isArray(a)?a:[a];for(let e of d)if(zn(u[e],r)&&!Bn(t,u[e],r))return u[e];return Fn(t,r,i)}function Ln(e,t,n){let r=n.isVoronoi?n.datum.bounds:n.bounds,i=e.left+t[0]+r.x1,a=e.top+t[1]+r.y1,o=n;for(;o.mark.group;)o=o.mark.group,i+=o.x??0,a+=o.y??0;let s=r.x2-r.x1,c=r.y2-r.y1;return{x1:i,x2:i+s,y1:a,y2:a+c}}function Rn(e,t,n,r){let i=(e.x1+e.x2)/2,a=(e.y1+e.y2)/2,o=e.x1-t.width-n,s=i-t.width/2,c=e.x2+n,l=e.y1-t.height-r,u=a-t.height/2,d=e.y2+r;return{top:{x:s,y:l},bottom:{x:s,y:d},left:{x:o,y:u},right:{x:c,y:u},"top-left":{x:o,y:l},"top-right":{x:c,y:l},"bottom-left":{x:o,y:d},"bottom-right":{x:c,y:d}}}function zn(e,t){return e.x>=0&&e.y>=0&&e.x+t.width<=window.innerWidth&&e.y+t.height<=window.innerHeight}function Bn(e,t,n){return e.clientX>=t.x&&e.clientX<=t.x+n.width&&e.clientY>=t.y&&e.clientY<=t.y+n.height}var Vn=class{call;options;el;constructor(e){this.options={...Mn,...e};let t=this.options.id;if(this.el=null,this.call=this.tooltipHandler.bind(this),!this.options.disableDefaultStyle&&!document.getElementById(this.options.styleId)){let e=document.createElement(`style`);e.setAttribute(`id`,this.options.styleId),e.innerHTML=Pn(t);let n=document.head;n.childNodes.length>0?n.insertBefore(e,n.childNodes[0]):n.appendChild(e)}}tooltipHandler(e,t,n,r){if(this.el=document.getElementById(this.options.id),this.el||(this.el=document.createElement(`div`),this.el.setAttribute(`id`,this.options.id),this.el.classList.add(`vg-tooltip`),(document.fullscreenElement??document.body).appendChild(this.el)),r==null||r===``){this.el.classList.remove(`visible`,`${this.options.theme}-theme`);return}this.el.innerHTML=this.options.formatTooltip(r,this.options.sanitize,this.options.maxDepth,this.options.baseURL),this.el.classList.add(`visible`,`${this.options.theme}-theme`);let{x:i,y:a}=this.options.anchor===`mark`?In(e,t,n,this.el.getBoundingClientRect(),this.options):Fn(t,this.el.getBoundingClientRect(),this.options);this.el.style.top=`${a}px`,this.el.style.left=`${i}px`}};En.version;var Hn=new Vn;export{ln as a,vn as i,bn as n,Y as o,yn as r,Hn as t};
|