ruru-components 2.0.0-beta.2 → 2.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/dist/components/Copy.d.ts +2 -1
- package/dist/components/Copy.d.ts.map +1 -1
- package/dist/components/Copy.js +8 -11
- package/dist/components/Copy.js.map +1 -1
- package/dist/components/ErrorPopup.js +2 -6
- package/dist/components/ErrorPopup.js.map +1 -1
- package/dist/components/Explain.d.ts +5 -0
- package/dist/components/Explain.d.ts.map +1 -1
- package/dist/components/Explain.js +46 -46
- package/dist/components/Explain.js.map +1 -1
- package/dist/components/Footer.js +2 -6
- package/dist/components/Footer.js.map +1 -1
- package/dist/components/FormatSQL.js +13 -17
- package/dist/components/FormatSQL.js.map +1 -1
- package/dist/components/Mermaid.d.ts +2 -1
- package/dist/components/Mermaid.d.ts.map +1 -1
- package/dist/components/Mermaid.js +24 -17
- package/dist/components/Mermaid.js.map +1 -1
- package/dist/defaultQuery.js +1 -4
- package/dist/defaultQuery.js.map +1 -1
- package/dist/hooks/useExplain.d.ts +1 -1
- package/dist/hooks/useExplain.js +9 -13
- package/dist/hooks/useExplain.js.map +1 -1
- package/dist/hooks/useFetcher.d.ts +5 -4
- package/dist/hooks/useFetcher.d.ts.map +1 -1
- package/dist/hooks/useFetcher.js +18 -22
- package/dist/hooks/useFetcher.js.map +1 -1
- package/dist/hooks/useGraphQLChangeStream.js +6 -10
- package/dist/hooks/useGraphQLChangeStream.js.map +1 -1
- package/dist/hooks/usePrettify.js +6 -10
- package/dist/hooks/usePrettify.js.map +1 -1
- package/dist/hooks/useSchema.js +14 -18
- package/dist/hooks/useSchema.js.map +1 -1
- package/dist/hooks/useStorage.d.ts +0 -2
- package/dist/hooks/useStorage.d.ts.map +1 -1
- package/dist/hooks/useStorage.js +5 -11
- package/dist/hooks/useStorage.js.map +1 -1
- package/dist/index.js +1 -5
- package/dist/index.js.map +1 -1
- package/dist/interfaces.js +1 -2
- package/dist/plugins/explain.js +9 -12
- package/dist/plugins/explain.js.map +1 -1
- package/dist/ruru.d.ts +1 -1
- package/dist/ruru.d.ts.map +1 -1
- package/dist/ruru.js +41 -44
- package/dist/ruru.js.map +1 -1
- package/package.json +28 -21
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# ruru-components
|
|
2
2
|
|
|
3
|
+
## 2.0.0-beta.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies
|
|
8
|
+
[[`3700e204f`](https://github.com/benjie/crystal/commit/3700e204f430db182c92ca7abc82017c81fa1f9b)]:
|
|
9
|
+
- grafast@0.0.1-beta.7
|
|
10
|
+
|
|
11
|
+
## 2.0.0-beta.3
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [#496](https://github.com/benjie/crystal/pull/496)
|
|
16
|
+
[`c9bfd9892`](https://github.com/benjie/crystal/commit/c9bfd989247f9433fb5b18c5175c9d8d64cd21a1)
|
|
17
|
+
Thanks [@benjie](https://github.com/benjie)! - Update dependencies (sometimes
|
|
18
|
+
through major versions).
|
|
19
|
+
|
|
20
|
+
- [#496](https://github.com/benjie/crystal/pull/496)
|
|
21
|
+
[`1867d365f`](https://github.com/benjie/crystal/commit/1867d365f360ac8411f622b0813ca76a19ab4013)
|
|
22
|
+
Thanks [@benjie](https://github.com/benjie)! - Ruru now runs on React 18
|
|
23
|
+
|
|
24
|
+
- [#496](https://github.com/benjie/crystal/pull/496)
|
|
25
|
+
[`c747d91e9`](https://github.com/benjie/crystal/commit/c747d91e9646409c66e73c12195dbf6cbd97b211)
|
|
26
|
+
Thanks [@benjie](https://github.com/benjie)! - Modules converted to ESM to fix
|
|
27
|
+
compatibility with GraphiQL.
|
|
28
|
+
|
|
29
|
+
- Updated dependencies
|
|
30
|
+
[[`c9bfd9892`](https://github.com/benjie/crystal/commit/c9bfd989247f9433fb5b18c5175c9d8d64cd21a1),
|
|
31
|
+
[`e613b476d`](https://github.com/benjie/crystal/commit/e613b476d6ee867d1f7509c895dabee40e7f9a31)]:
|
|
32
|
+
- grafast@0.0.1-beta.6
|
|
33
|
+
- tamedevil@0.0.0-beta.2
|
|
34
|
+
|
|
3
35
|
## 2.0.0-beta.2
|
|
4
36
|
|
|
5
37
|
### Patch Changes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Copy.d.ts","sourceRoot":"","sources":["../../src/components/Copy.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Copy.d.ts","sourceRoot":"","sources":["../../src/components/Copy.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAGhC,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;CAChD,CA8BA,CAAC"}
|
package/dist/components/Copy.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const ref = (0, react_1.useRef)(null);
|
|
8
|
-
const copy = (0, react_1.useCallback)(() => {
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useMemo, useRef } from "react";
|
|
3
|
+
export const Copy = ({ text: rawText, json, children }) => {
|
|
4
|
+
const text = useMemo(() => rawText ?? (json !== undefined ? JSON.stringify(json) : undefined), [rawText, json]);
|
|
5
|
+
const ref = useRef(null);
|
|
6
|
+
const copy = useCallback(() => {
|
|
9
7
|
const el = ref.current;
|
|
10
8
|
if (el) {
|
|
11
9
|
/* Select the text field */
|
|
@@ -15,9 +13,8 @@ const Copy = ({ text, children }) => {
|
|
|
15
13
|
navigator.clipboard.writeText(el.value);
|
|
16
14
|
}
|
|
17
15
|
}, []);
|
|
18
|
-
return ((
|
|
16
|
+
return (_jsxs(_Fragment, { children: [_jsx("textarea", { ref: (el) => {
|
|
19
17
|
ref.current = el;
|
|
20
|
-
}, value: text, readOnly: true, style: { display: "none" } }), (
|
|
18
|
+
}, value: text, readOnly: true, style: { display: "none" } }), _jsx("button", { onClick: copy, children: children })] }));
|
|
21
19
|
};
|
|
22
|
-
exports.Copy = Copy;
|
|
23
20
|
//# sourceMappingURL=Copy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Copy.js","sourceRoot":"","sources":["../../src/components/Copy.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Copy.js","sourceRoot":"","sources":["../../src/components/Copy.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAErD,MAAM,CAAC,MAAM,IAAI,GAIZ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IACzC,MAAM,IAAI,GAAG,OAAO,CAClB,GAAG,EAAE,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EACxE,CAAC,OAAO,EAAE,IAAI,CAAC,CAChB,CAAC;IACF,MAAM,GAAG,GAAG,MAAM,CAA6B,IAAI,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC5B,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QACvB,IAAI,EAAE,EAAE;YACN,2BAA2B;YAC3B,EAAE,CAAC,MAAM,EAAE,CAAC;YACZ,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,wBAAwB;YAExD,yCAAyC;YACzC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;SACzC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,CACL,8BACE,mBACE,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE;oBACV,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;gBACnB,CAAC,EACD,KAAK,EAAE,IAAI,EACX,QAAQ,QACR,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAC1B,EACF,iBAAQ,OAAO,EAAE,IAAI,YAAG,QAAQ,GAAU,IACzC,CACJ,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ErrorPopup = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
2
|
// TODO: this needs proper design and accessibility considerations
|
|
6
|
-
const ErrorPopup = ({ error, onClose, }) => ((
|
|
7
|
-
exports.ErrorPopup = ErrorPopup;
|
|
3
|
+
export const ErrorPopup = ({ error, onClose, }) => (_jsxs("div", { className: "errorPopup", children: [_jsx("button", { className: "errorPopupClose", onClick: onClose, children: "\uD83D\uDDD9" }), _jsx("div", { className: "errorPopupError", children: String(error) })] }));
|
|
8
4
|
//# sourceMappingURL=ErrorPopup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorPopup.js","sourceRoot":"","sources":["../../src/components/ErrorPopup.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ErrorPopup.js","sourceRoot":"","sources":["../../src/components/ErrorPopup.tsx"],"names":[],"mappings":";AAEA,kEAAkE;AAElE,MAAM,CAAC,MAAM,UAAU,GAA8C,CAAC,EACpE,KAAK,EACL,OAAO,GACR,EAAE,EAAE,CAAC,CACJ,eAAK,SAAS,EAAC,YAAY,aACzB,iBAAQ,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAE,OAAO,6BAE3C,EACT,cAAK,SAAS,EAAC,iBAAiB,YAAE,MAAM,CAAC,KAAK,CAAC,GAAO,IAClD,CACP,CAAC"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import type { FC } from "react";
|
|
2
2
|
import type { ExplainHelpers } from "../hooks/useExplain.js";
|
|
3
3
|
import type { ExplainResults } from "../hooks/useFetcher.js";
|
|
4
|
+
declare global {
|
|
5
|
+
interface Window {
|
|
6
|
+
mermaid?: any;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
4
9
|
export declare const Explain: FC<{
|
|
5
10
|
explain: boolean;
|
|
6
11
|
setExplain: (newExplain: boolean) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Explain.d.ts","sourceRoot":"","sources":["../../src/components/Explain.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAK7D,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;CAChC,CA6BA,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;CACzB,
|
|
1
|
+
{"version":3,"file":"Explain.d.ts","sourceRoot":"","sources":["../../src/components/Explain.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAIhC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAK7D,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,OAAO,CAAC,EAAE,GAAG,CAAC;KACf;CACF;AAED,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAC1C,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;CAChC,CA6BA,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;CACzB,CA8IA,CAAC"}
|
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
const FormatSQL_js_1 = require("./FormatSQL.js");
|
|
11
|
-
const Mermaid_js_1 = require("./Mermaid.js");
|
|
12
|
-
const Explain = ({ explain, setExplain, helpers, results }) => {
|
|
13
|
-
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: !results ? (!explain ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("p", { children: "WARNING: you've not enabled the 'explain' functionality" }), (0, jsx_runtime_1.jsx)("p", { children: (0, jsx_runtime_1.jsx)("button", { onClick: () => setExplain(true), children: "Enable explain" }) })] })) : ((0, jsx_runtime_1.jsx)("p", { children: "There are no explain results to display - perhaps you have not yet ran an operation against a server that supports this feature?" }))) : results.operations.length === 0 ? ((0, jsx_runtime_1.jsx)("p", { children: "Empty explain results" })) : ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(exports.ExplainMain, { helpers: helpers, results: results }) })) }));
|
|
1
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { planToMermaid } from "grafast/mermaid";
|
|
3
|
+
import { useCallback, useEffect, useRef, useState } from "react";
|
|
4
|
+
import { createPortal } from "react-dom";
|
|
5
|
+
import { Copy } from "./Copy.js";
|
|
6
|
+
import { FormatSQL } from "./FormatSQL.js";
|
|
7
|
+
import { Mermaid } from "./Mermaid.js";
|
|
8
|
+
export const Explain = ({ explain, setExplain, helpers, results }) => {
|
|
9
|
+
return (_jsx(_Fragment, { children: !results ? (!explain ? (_jsxs(_Fragment, { children: [_jsx("p", { children: "WARNING: you've not enabled the 'explain' functionality" }), _jsx("p", { children: _jsx("button", { onClick: () => setExplain(true), children: "Enable explain" }) })] })) : (_jsx("p", { children: "There are no explain results to display - perhaps you have not yet ran an operation against a server that supports this feature?" }))) : results.operations.length === 0 ? (_jsx("p", { children: "Empty explain results" })) : (_jsx("div", { children: _jsx(ExplainMain, { helpers: helpers, results: results }) })) }));
|
|
14
10
|
};
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
(0, react_1.useEffect)(() => {
|
|
11
|
+
export const ExplainMain = ({ results }) => {
|
|
12
|
+
const [selectedIndex, setSelectedIndex] = useState(0);
|
|
13
|
+
useEffect(() => {
|
|
19
14
|
setSelectedIndex(0);
|
|
20
15
|
}, [results]);
|
|
21
16
|
const selectedResult = results.operations[selectedIndex];
|
|
22
|
-
const [expanded, setExpanded] =
|
|
23
|
-
const expand =
|
|
17
|
+
const [expanded, setExpanded] = useState(false);
|
|
18
|
+
const expand = useCallback(() => {
|
|
24
19
|
setExpanded(true);
|
|
25
20
|
}, []);
|
|
26
|
-
const nodeRef =
|
|
21
|
+
const nodeRef = useRef();
|
|
27
22
|
if (!nodeRef.current) {
|
|
28
23
|
nodeRef.current = document.createElement("div");
|
|
29
24
|
}
|
|
30
25
|
const node = nodeRef.current;
|
|
31
|
-
|
|
26
|
+
useEffect(() => {
|
|
32
27
|
document.body.appendChild(node);
|
|
33
28
|
return () => {
|
|
34
29
|
document.body.removeChild(node);
|
|
35
30
|
};
|
|
36
31
|
}, [node]);
|
|
37
|
-
const [saving, setSaving] =
|
|
38
|
-
const saveSVG =
|
|
39
|
-
if (!selectedResult || selectedResult.type !== "
|
|
32
|
+
const [saving, setSaving] = useState(false);
|
|
33
|
+
const saveSVG = useCallback(() => {
|
|
34
|
+
if (!selectedResult || selectedResult.type !== "plan")
|
|
40
35
|
return;
|
|
41
36
|
setSaving(true);
|
|
42
37
|
setTimeout(() => {
|
|
43
|
-
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
38
|
+
if (window.mermaid) {
|
|
39
|
+
const diagram = planToMermaid(selectedResult.plan);
|
|
40
|
+
window.mermaid.mermaidAPI.render("id1", diagram, (svg) => {
|
|
41
|
+
const file = new File([svg.replace(/<br>/g, "<br/>")], "grafast-plan.svg");
|
|
42
|
+
const a = document.createElement("a");
|
|
43
|
+
a.href = URL.createObjectURL(file);
|
|
44
|
+
a.download = file.name;
|
|
45
|
+
a.style.display = "none";
|
|
46
|
+
document.body.appendChild(a);
|
|
47
|
+
a.click();
|
|
48
|
+
setSaving(false);
|
|
49
|
+
setTimeout(() => {
|
|
50
|
+
URL.revokeObjectURL(a.href);
|
|
51
|
+
a.parentNode.removeChild(a);
|
|
52
|
+
}, 0);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
alert("Mermaid hasn't loaded (yet)");
|
|
57
|
+
}
|
|
57
58
|
}, 0);
|
|
58
59
|
}, [selectedResult]);
|
|
59
60
|
const component = (() => {
|
|
60
61
|
switch (selectedResult?.type) {
|
|
61
62
|
case "sql": {
|
|
62
|
-
return ((
|
|
63
|
+
return (_jsxs("div", { children: [selectedResult.explain ? (_jsxs(_Fragment, { children: [_jsxs("h4", { children: ["Result from SQL", " ", _jsx("a", { href: "https://www.postgresql.org/docs/current/sql-explain.html", children: "EXPLAIN" }), " ", "on executed query:"] }), _jsx("pre", { className: "explain-plan", children: _jsx("code", { children: selectedResult.explain }) }), _jsx(Copy, { text: selectedResult.explain, children: "Copy plan" })] })) : null, _jsx("h4", { children: "Executed SQL query:" }), _jsx(FormatSQL, { sql: selectedResult.query }), _jsx(Copy, { text: selectedResult.query, children: "Copy SQL" })] }));
|
|
63
64
|
}
|
|
64
|
-
case "
|
|
65
|
-
return ((
|
|
66
|
-
?
|
|
65
|
+
case "plan": {
|
|
66
|
+
return (_jsxs(_Fragment, { children: [_jsx(Copy, { json: selectedResult.plan, children: "Copy plan JSON" }), _jsx("button", { onClick: saveSVG, disabled: saving, children: "Save Mermaid Diagram" }), _jsx("div", { onClick: expand, children: _jsx(Mermaid, { plan: selectedResult.plan }) }), expanded
|
|
67
|
+
? createPortal(_jsxs("div", { className: "explainExpandedContainer", children: [_jsx("div", { className: "explainExpandedTitle", children: "Operation Plan" }), _jsx("div", { className: "explainExpandedCloseContainer", children: _jsx("button", { className: "explainExpandedCloseButton", onClick: () => setExpanded(false), children: "\u00D7" }) }), _jsx("div", { className: "explainExpandedMain", children: _jsx(Mermaid, { plan: selectedResult.plan }) })] }), node)
|
|
67
68
|
: null] }));
|
|
68
69
|
}
|
|
69
70
|
case undefined: {
|
|
70
|
-
return ((
|
|
71
|
+
return (_jsxs("div", { children: ["Explain result type '$", selectedResult.type, "' not yet supported."] }));
|
|
71
72
|
}
|
|
72
73
|
default: {
|
|
73
|
-
return (
|
|
74
|
+
return _jsx("div", {});
|
|
74
75
|
}
|
|
75
76
|
}
|
|
76
77
|
})();
|
|
77
|
-
return ((
|
|
78
|
+
return (_jsxs("div", { children: [_jsx("select", { value: String(selectedIndex), onChange: (e) => setSelectedIndex(parseInt(e.target.value, 10)), children: results.operations.map((o, i) => (_jsx("option", { value: String(i), children: o.title }, i))) }), component] }));
|
|
78
79
|
};
|
|
79
|
-
exports.ExplainMain = ExplainMain;
|
|
80
80
|
//# sourceMappingURL=Explain.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Explain.js","sourceRoot":"","sources":["../../src/components/Explain.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Explain.js","sourceRoot":"","sources":["../../src/components/Explain.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.RuruFooter = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const RuruFooter = () => ((0, jsx_runtime_1.jsxs)("div", { style: { padding: 7 }, children: ["Community-funded OSS \uD83D\uDE4F", " ", (0, jsx_runtime_1.jsx)("a", { title: "All our projects are supported by the community, please sponsor ongoing development", href: "https://graphile.org/sponsor/", target: "new", children: "please sponsor" }), " ", "\uD83D\uDC96"] }));
|
|
6
|
-
exports.RuruFooter = RuruFooter;
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export const RuruFooter = () => (_jsxs("div", { style: { padding: 7 }, children: ["Community-funded OSS \uD83D\uDE4F", " ", _jsx("a", { title: "All our projects are supported by the community, please sponsor ongoing development", href: "https://graphile.org/sponsor/", target: "new", children: "please sponsor" }), " ", "\uD83D\uDC96"] }));
|
|
7
3
|
//# sourceMappingURL=Footer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../src/components/Footer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../src/components/Footer.tsx"],"names":[],"mappings":";AAEA,MAAM,CAAC,MAAM,UAAU,GAAO,GAAG,EAAE,CAAC,CAClC,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,kDACA,GAAG,EAC3B,YACE,KAAK,EAAC,qFAAqF,EAC3F,IAAI,EAAC,+BAA+B,EACpC,MAAM,EAAC,KAAK,+BAGV,EAAC,GAAG,oBAEJ,CACP,CAAC"}
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const FormatSQL = ({ sql }) => {
|
|
7
|
-
const [highlitIndex, setHighlitIndex] = (0, react_1.useState)(null);
|
|
8
|
-
const formattedSQL = (0, react_1.useMemo)(() => {
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useMemo, useState } from "react";
|
|
3
|
+
export const FormatSQL = ({ sql }) => {
|
|
4
|
+
const [highlitIndex, setHighlitIndex] = useState(null);
|
|
5
|
+
const formattedSQL = useMemo(() => {
|
|
9
6
|
const lines = sql.split("\n");
|
|
10
7
|
const elements = [];
|
|
11
8
|
const knownIdentifiers = new Map();
|
|
@@ -19,7 +16,7 @@ const FormatSQL = ({ sql }) => {
|
|
|
19
16
|
const start = matches.index;
|
|
20
17
|
const fin = re.lastIndex;
|
|
21
18
|
if (start > idx) {
|
|
22
|
-
parts.push((
|
|
19
|
+
parts.push(_jsx(_Fragment, { children: line.substring(idx, start) }));
|
|
23
20
|
}
|
|
24
21
|
idx = fin;
|
|
25
22
|
const [full] = matches;
|
|
@@ -29,20 +26,20 @@ const FormatSQL = ({ sql }) => {
|
|
|
29
26
|
}
|
|
30
27
|
else {
|
|
31
28
|
const index = identifierCount++;
|
|
32
|
-
const sub = ((
|
|
29
|
+
const sub = (_jsx(Highlight, { n: index, highlit: index === highlitIndex, setHighlitIndex: setHighlitIndex, children: full }));
|
|
33
30
|
knownIdentifiers.set(full, sub);
|
|
34
31
|
parts.push(sub);
|
|
35
32
|
}
|
|
36
33
|
}
|
|
37
34
|
if (idx < line.length) {
|
|
38
|
-
parts.push((
|
|
35
|
+
parts.push(_jsx(_Fragment, { children: line.substring(idx) }));
|
|
39
36
|
}
|
|
40
37
|
return parts;
|
|
41
38
|
};
|
|
42
39
|
for (let i = 0, l = lines.length; i < l; i++) {
|
|
43
40
|
const line = lines[i];
|
|
44
41
|
const parts = makeParts(line);
|
|
45
|
-
elements.push((
|
|
42
|
+
elements.push(_jsx("code", { style: {
|
|
46
43
|
display: "block",
|
|
47
44
|
marginLeft: "1.8rem",
|
|
48
45
|
textIndent: "-1.8rem",
|
|
@@ -50,9 +47,8 @@ const FormatSQL = ({ sql }) => {
|
|
|
50
47
|
}
|
|
51
48
|
return elements;
|
|
52
49
|
}, [sql, highlitIndex]);
|
|
53
|
-
return (
|
|
50
|
+
return _jsx("pre", { className: "explain-sql", children: formattedSQL });
|
|
54
51
|
};
|
|
55
|
-
exports.FormatSQL = FormatSQL;
|
|
56
52
|
const COLORS = [
|
|
57
53
|
"#00bfff",
|
|
58
54
|
"#ffa500",
|
|
@@ -76,12 +72,12 @@ const Highlight = ({ n, highlit, setHighlitIndex, children }) => {
|
|
|
76
72
|
backgroundColor: "hsla(var(--color-primary),var(--alpha-background-medium))",
|
|
77
73
|
}
|
|
78
74
|
: { color };
|
|
79
|
-
const onMouseEnter =
|
|
75
|
+
const onMouseEnter = useCallback(() => {
|
|
80
76
|
setHighlitIndex(n);
|
|
81
77
|
}, [setHighlitIndex, n]);
|
|
82
|
-
const onMouseLeave =
|
|
78
|
+
const onMouseLeave = useCallback(() => {
|
|
83
79
|
setHighlitIndex(null);
|
|
84
80
|
}, [setHighlitIndex]);
|
|
85
|
-
return ((
|
|
81
|
+
return (_jsx("strong", { style: style, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, children: children }));
|
|
86
82
|
};
|
|
87
83
|
//# sourceMappingURL=FormatSQL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormatSQL.js","sourceRoot":"","sources":["../../src/components/FormatSQL.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FormatSQL.js","sourceRoot":"","sources":["../../src/components/FormatSQL.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mermaid.d.ts","sourceRoot":"","sources":["../../src/components/Mermaid.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Mermaid.d.ts","sourceRoot":"","sources":["../../src/components/Mermaid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAKhC,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,CA2BjD,CAAC"}
|
|
@@ -1,21 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { planToMermaid } from "grafast/mermaid";
|
|
3
|
+
import { useEffect, useMemo } from "react";
|
|
4
|
+
let initialized = false;
|
|
5
|
+
export const Mermaid = ({ plan }) => {
|
|
6
|
+
const diagram = useMemo(() => planToMermaid(plan), [plan]);
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
if (window.mermaid) {
|
|
9
|
+
if (!initialized) {
|
|
10
|
+
initialized = true;
|
|
11
|
+
window.mermaid.initialize({
|
|
12
|
+
startOnLoad: true,
|
|
13
|
+
maxTextSize: 1000000,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
if (diagram) {
|
|
17
|
+
window.mermaid.contentLoaded();
|
|
18
|
+
}
|
|
16
19
|
}
|
|
17
20
|
}, [diagram]);
|
|
18
|
-
|
|
21
|
+
if (window.mermaid) {
|
|
22
|
+
return (_jsx("div", { className: "mermaid", children: diagram }, diagram));
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
return (_jsx("div", { children: "Mermaid hasn't (yet) loaded, so we cannot render plan diagrams" }));
|
|
26
|
+
}
|
|
19
27
|
};
|
|
20
|
-
exports.Mermaid = Mermaid;
|
|
21
28
|
//# sourceMappingURL=Mermaid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mermaid.js","sourceRoot":"","sources":["../../src/components/Mermaid.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Mermaid.js","sourceRoot":"","sources":["../../src/components/Mermaid.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE3C,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,OAAO,GAAkC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;IACjE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,IAAI,CAAC,WAAW,EAAE;gBAChB,WAAW,GAAG,IAAI,CAAC;gBACnB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;oBACxB,WAAW,EAAE,IAAI;oBACjB,WAAW,EAAE,OAAO;iBACrB,CAAC,CAAC;aACJ;YACD,IAAI,OAAO,EAAE;gBACX,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;aAChC;SACF;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,IAAI,MAAM,CAAC,OAAO,EAAE;QAClB,OAAO,CACL,cAAK,SAAS,EAAC,SAAS,YACrB,OAAO,IADoB,OAAO,CAE/B,CACP,CAAC;KACH;SAAM;QACL,OAAO,CACL,2FAAyE,CAC1E,CAAC;KACH;AACH,CAAC,CAAC"}
|
package/dist/defaultQuery.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.defaultQuery = void 0;
|
|
4
|
-
exports.defaultQuery = `\
|
|
1
|
+
export const defaultQuery = `\
|
|
5
2
|
# Welcome to Ruru, our distribution of GraphiQL and related tooling to
|
|
6
3
|
# inspect your GraphQL API.
|
|
7
4
|
#
|
package/dist/defaultQuery.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultQuery.js","sourceRoot":"","sources":["../src/defaultQuery.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"defaultQuery.js","sourceRoot":"","sources":["../src/defaultQuery.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC3B,CAAC"}
|
package/dist/hooks/useExplain.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.useExplain = exports.ExplainContext = void 0;
|
|
4
|
-
const react_1 = require("react");
|
|
5
|
-
exports.ExplainContext = (0, react_1.createContext)({
|
|
1
|
+
import { createContext, useCallback, useState } from "react";
|
|
2
|
+
export const ExplainContext = createContext({
|
|
6
3
|
explainHelpers: {
|
|
7
4
|
showExplain: false,
|
|
8
5
|
explainSize: 0,
|
|
@@ -15,22 +12,22 @@ exports.ExplainContext = (0, react_1.createContext)({
|
|
|
15
12
|
setExplain: () => { },
|
|
16
13
|
explainResults: null,
|
|
17
14
|
});
|
|
18
|
-
const useExplain = (storage) => {
|
|
19
|
-
const [showExplain, _setShowExplain] =
|
|
20
|
-
const [explainSize, _setExplainSize] =
|
|
21
|
-
const [explainAtBottom, _setExplainAtBottom] =
|
|
22
|
-
const setShowExplain =
|
|
15
|
+
export const useExplain = (storage) => {
|
|
16
|
+
const [showExplain, _setShowExplain] = useState(storage.get("explainIsOpen") === "true");
|
|
17
|
+
const [explainSize, _setExplainSize] = useState(parseInt(storage.get("explainSize") ?? "", 10) || 300);
|
|
18
|
+
const [explainAtBottom, _setExplainAtBottom] = useState([null, "true"].includes(storage.get("explainAtBottom")));
|
|
19
|
+
const setShowExplain = useCallback((nextShowExplain) => {
|
|
23
20
|
_setShowExplain(nextShowExplain);
|
|
24
21
|
if (nextShowExplain) {
|
|
25
22
|
storage.set("explain", "true");
|
|
26
23
|
}
|
|
27
24
|
storage.set("explainIsOpen", nextShowExplain ? "true" : "");
|
|
28
25
|
}, [storage]);
|
|
29
|
-
const setExplainAtBottom =
|
|
26
|
+
const setExplainAtBottom = useCallback((nextAtBottom) => {
|
|
30
27
|
_setExplainAtBottom(nextAtBottom);
|
|
31
28
|
storage.set("explainAtBottom", nextAtBottom ? "true" : "");
|
|
32
29
|
}, [storage]);
|
|
33
|
-
const setExplainSize =
|
|
30
|
+
const setExplainSize = useCallback((nextSize) => {
|
|
34
31
|
_setExplainSize(nextSize);
|
|
35
32
|
storage.set("explainSize", String(nextSize));
|
|
36
33
|
}, [storage]);
|
|
@@ -43,5 +40,4 @@ const useExplain = (storage) => {
|
|
|
43
40
|
setShowExplain,
|
|
44
41
|
};
|
|
45
42
|
};
|
|
46
|
-
exports.useExplain = useExplain;
|
|
47
43
|
//# sourceMappingURL=useExplain.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useExplain.js","sourceRoot":"","sources":["../../src/hooks/useExplain.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useExplain.js","sourceRoot":"","sources":["../../src/hooks/useExplain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAc7D,MAAM,CAAC,MAAM,cAAc,GAAG,aAAa,CAKxC;IACD,cAAc,EAAE;QACd,WAAW,EAAE,KAAK;QAClB,WAAW,EAAE,CAAC;QACd,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;QACxB,kBAAkB,EAAE,GAAG,EAAE,GAAE,CAAC;QAC5B,cAAc,EAAE,GAAG,EAAE,GAAE,CAAC;KACzB;IACD,OAAO,EAAE,IAAI;IACb,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC;IACpB,cAAc,EAAE,IAAI;CACrB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAoB,EAAkB,EAAE;IACjE,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,QAAQ,CAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,MAAM,CACxC,CAAC;IACF,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,QAAQ,CAC7C,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CACtD,CAAC;IACF,MAAM,CAAC,eAAe,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CACrD,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CACxD,CAAC;IACF,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,eAAwB,EAAE,EAAE;QAC3B,eAAe,CAAC,eAAe,CAAC,CAAC;QACjC,IAAI,eAAe,EAAE;YACnB,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;SAChC;QACD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IACF,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,YAAqB,EAAE,EAAE;QACxB,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IACF,MAAM,cAAc,GAAG,WAAW,CAChC,CAAC,QAAgB,EAAE,EAAE;QACnB,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IACF,OAAO;QACL,WAAW;QACX,WAAW;QACX,eAAe;QACf,cAAc;QACd,kBAAkB;QAClB,cAAc;KACf,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { FetcherParams, FetcherReturnType } from "@graphiql/toolkit";
|
|
2
|
+
import type { GrafastPlanJSON } from "grafast";
|
|
2
3
|
import type { RuruProps } from "../interfaces.js";
|
|
3
4
|
export interface IExplainedOperation {
|
|
4
5
|
type: string;
|
|
@@ -9,11 +10,11 @@ export interface ExplainedSQLOperation extends IExplainedOperation {
|
|
|
9
10
|
query: string;
|
|
10
11
|
explain?: string;
|
|
11
12
|
}
|
|
12
|
-
export interface
|
|
13
|
-
type: "
|
|
14
|
-
|
|
13
|
+
export interface ExplainedPlanOperation extends IExplainedOperation {
|
|
14
|
+
type: "plan";
|
|
15
|
+
plan: GrafastPlanJSON;
|
|
15
16
|
}
|
|
16
|
-
export type ExplainedOperation = ExplainedSQLOperation |
|
|
17
|
+
export type ExplainedOperation = ExplainedSQLOperation | ExplainedPlanOperation;
|
|
17
18
|
export interface ExplainResults {
|
|
18
19
|
operations: Array<ExplainedOperation>;
|
|
19
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFetcher.d.ts","sourceRoot":"","sources":["../../src/hooks/useFetcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,aAAa,EACb,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"useFetcher.d.ts","sourceRoot":"","sources":["../../src/hooks/useFetcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,aAAa,EACb,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAM3B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAM/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAChE,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,sBAAuB,SAAQ,mBAAmB;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,MAAM,MAAM,kBAAkB,GAAG,qBAAqB,GAAG,sBAAsB,CAAC;AAEhF,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;CACvC;AAwDD,eAAO,MAAM,UAAU,UACd,SAAS,YACP;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;2GA6I5C,QAAQ,QAAQ,iBAAiB,CAAC,CAAC;;;CA0CzC,CAAC"}
|