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.
Files changed (48) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/components/Copy.d.ts +2 -1
  3. package/dist/components/Copy.d.ts.map +1 -1
  4. package/dist/components/Copy.js +8 -11
  5. package/dist/components/Copy.js.map +1 -1
  6. package/dist/components/ErrorPopup.js +2 -6
  7. package/dist/components/ErrorPopup.js.map +1 -1
  8. package/dist/components/Explain.d.ts +5 -0
  9. package/dist/components/Explain.d.ts.map +1 -1
  10. package/dist/components/Explain.js +46 -46
  11. package/dist/components/Explain.js.map +1 -1
  12. package/dist/components/Footer.js +2 -6
  13. package/dist/components/Footer.js.map +1 -1
  14. package/dist/components/FormatSQL.js +13 -17
  15. package/dist/components/FormatSQL.js.map +1 -1
  16. package/dist/components/Mermaid.d.ts +2 -1
  17. package/dist/components/Mermaid.d.ts.map +1 -1
  18. package/dist/components/Mermaid.js +24 -17
  19. package/dist/components/Mermaid.js.map +1 -1
  20. package/dist/defaultQuery.js +1 -4
  21. package/dist/defaultQuery.js.map +1 -1
  22. package/dist/hooks/useExplain.d.ts +1 -1
  23. package/dist/hooks/useExplain.js +9 -13
  24. package/dist/hooks/useExplain.js.map +1 -1
  25. package/dist/hooks/useFetcher.d.ts +5 -4
  26. package/dist/hooks/useFetcher.d.ts.map +1 -1
  27. package/dist/hooks/useFetcher.js +18 -22
  28. package/dist/hooks/useFetcher.js.map +1 -1
  29. package/dist/hooks/useGraphQLChangeStream.js +6 -10
  30. package/dist/hooks/useGraphQLChangeStream.js.map +1 -1
  31. package/dist/hooks/usePrettify.js +6 -10
  32. package/dist/hooks/usePrettify.js.map +1 -1
  33. package/dist/hooks/useSchema.js +14 -18
  34. package/dist/hooks/useSchema.js.map +1 -1
  35. package/dist/hooks/useStorage.d.ts +0 -2
  36. package/dist/hooks/useStorage.d.ts.map +1 -1
  37. package/dist/hooks/useStorage.js +5 -11
  38. package/dist/hooks/useStorage.js.map +1 -1
  39. package/dist/index.js +1 -5
  40. package/dist/index.js.map +1 -1
  41. package/dist/interfaces.js +1 -2
  42. package/dist/plugins/explain.js +9 -12
  43. package/dist/plugins/explain.js.map +1 -1
  44. package/dist/ruru.d.ts +1 -1
  45. package/dist/ruru.d.ts.map +1 -1
  46. package/dist/ruru.js +41 -44
  47. package/dist/ruru.js.map +1 -1
  48. 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,6 +1,7 @@
1
1
  import type { FC } from "react";
2
2
  export declare const Copy: FC<{
3
- text: string;
3
+ text?: string;
4
+ json?: any;
4
5
  children: string | JSX.Element | JSX.Element[];
5
6
  }>;
6
7
  //# sourceMappingURL=Copy.d.ts.map
@@ -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;IACb,QAAQ,EAAE,MAAM,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;CAChD,CA0BA,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"}
@@ -1,11 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Copy = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const Copy = ({ text, children }) => {
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 ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("textarea", { ref: (el) => {
16
+ return (_jsxs(_Fragment, { children: [_jsx("textarea", { ref: (el) => {
19
17
  ref.current = el;
20
- }, value: text, readOnly: true, style: { display: "none" } }), (0, jsx_runtime_1.jsx)("button", { onClick: copy, children: children })] }));
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":";;;;AACA,iCAA4C;AAErC,MAAM,IAAI,GAGZ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC1B,MAAM,GAAG,GAAG,IAAA,cAAM,EAA6B,IAAI,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,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,6DACE,qCACE,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,mCAAQ,OAAO,EAAE,IAAI,YAAG,QAAQ,GAAU,IACzC,CACJ,CAAC;AACJ,CAAC,CAAC;AA7BW,QAAA,IAAI,QA6Bf"}
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
- "use strict";
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, }) => ((0, jsx_runtime_1.jsxs)("div", { className: "errorPopup", children: [(0, jsx_runtime_1.jsx)("button", { className: "errorPopupClose", onClick: onClose, children: "\uD83D\uDDD9" }), (0, jsx_runtime_1.jsx)("div", { className: "errorPopupError", children: String(error) })] }));
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":";;;;AAEA,kEAAkE;AAE3D,MAAM,UAAU,GAA8C,CAAC,EACpE,KAAK,EACL,OAAO,GACR,EAAE,EAAE,CAAC,CACJ,iCAAK,SAAS,EAAC,YAAY,aACzB,mCAAQ,SAAS,EAAC,iBAAiB,EAAC,OAAO,EAAE,OAAO,6BAE3C,EACT,gCAAK,SAAS,EAAC,iBAAiB,YAAE,MAAM,CAAC,KAAK,CAAC,GAAO,IAClD,CACP,CAAC;AAVW,QAAA,UAAU,cAUrB"}
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,CAwIA,CAAC"}
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
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExplainMain = exports.Explain = void 0;
4
- const tslib_1 = require("tslib");
5
- const jsx_runtime_1 = require("react/jsx-runtime");
6
- const mermaid_1 = tslib_1.__importDefault(require("mermaid"));
7
- const react_1 = require("react");
8
- const react_dom_1 = require("react-dom");
9
- const Copy_js_1 = require("./Copy.js");
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
- exports.Explain = Explain;
16
- const ExplainMain = ({ results }) => {
17
- const [selectedIndex, setSelectedIndex] = (0, react_1.useState)(0);
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] = (0, react_1.useState)(false);
23
- const expand = (0, react_1.useCallback)(() => {
17
+ const [expanded, setExpanded] = useState(false);
18
+ const expand = useCallback(() => {
24
19
  setExpanded(true);
25
20
  }, []);
26
- const nodeRef = (0, react_1.useRef)();
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
- (0, react_1.useEffect)(() => {
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] = (0, react_1.useState)(false);
38
- const saveSVG = (0, react_1.useCallback)(() => {
39
- if (!selectedResult || selectedResult.type !== "mermaid-js")
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
- mermaid_1.default.mermaidAPI.render("id1", selectedResult.diagram, (svg) => {
44
- const file = new File([svg], "grafast-plan.svg");
45
- const a = document.createElement("a");
46
- a.href = URL.createObjectURL(file);
47
- a.download = file.name;
48
- a.style.display = "none";
49
- document.body.appendChild(a);
50
- a.click();
51
- setSaving(false);
52
- setTimeout(() => {
53
- URL.revokeObjectURL(a.href);
54
- a.parentNode.removeChild(a);
55
- }, 0);
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 ((0, jsx_runtime_1.jsxs)("div", { children: [selectedResult.explain ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("h4", { children: ["Result from SQL", " ", (0, jsx_runtime_1.jsx)("a", { href: "https://www.postgresql.org/docs/current/sql-explain.html", children: "EXPLAIN" }), " ", "on executed query:"] }), (0, jsx_runtime_1.jsx)("pre", { className: "explain-plan", children: (0, jsx_runtime_1.jsx)("code", { children: selectedResult.explain }) }), (0, jsx_runtime_1.jsx)(Copy_js_1.Copy, { text: selectedResult.explain, children: "Copy plan" })] })) : null, (0, jsx_runtime_1.jsx)("h4", { children: "Executed SQL query:" }), (0, jsx_runtime_1.jsx)(FormatSQL_js_1.FormatSQL, { sql: selectedResult.query }), (0, jsx_runtime_1.jsx)(Copy_js_1.Copy, { text: selectedResult.query, children: "Copy SQL" })] }));
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 "mermaid-js": {
65
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Copy_js_1.Copy, { text: selectedResult.diagram, children: "Copy Mermaid.js Definition" }), (0, jsx_runtime_1.jsx)("button", { onClick: saveSVG, disabled: saving, children: "Save Mermaid Diagram" }), (0, jsx_runtime_1.jsx)("div", { onClick: expand, children: (0, jsx_runtime_1.jsx)(Mermaid_js_1.Mermaid, { diagram: selectedResult.diagram }) }), expanded
66
- ? (0, react_dom_1.createPortal)((0, jsx_runtime_1.jsxs)("div", { className: "explainExpandedContainer", children: [(0, jsx_runtime_1.jsx)("div", { className: "explainExpandedTitle", children: "Operation Plan" }), (0, jsx_runtime_1.jsx)("div", { className: "explainExpandedCloseContainer", children: (0, jsx_runtime_1.jsx)("button", { className: "explainExpandedCloseButton", onClick: () => setExpanded(false), children: "\u00D7" }) }), (0, jsx_runtime_1.jsx)("div", { className: "explainExpandedMain", children: (0, jsx_runtime_1.jsx)(Mermaid_js_1.Mermaid, { diagram: selectedResult.diagram }) })] }), node)
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 ((0, jsx_runtime_1.jsxs)("div", { children: ["Explain result type '$", selectedResult.type, "' not yet supported."] }));
71
+ return (_jsxs("div", { children: ["Explain result type '$", selectedResult.type, "' not yet supported."] }));
71
72
  }
72
73
  default: {
73
- return (0, jsx_runtime_1.jsx)("div", {});
74
+ return _jsx("div", {});
74
75
  }
75
76
  }
76
77
  })();
77
- return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("select", { value: String(selectedIndex), onChange: (e) => setSelectedIndex(parseInt(e.target.value, 10)), children: results.operations.map((o, i) => ((0, jsx_runtime_1.jsx)("option", { value: String(i), children: o.title }, i))) }), component] }));
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":"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"}
1
+ {"version":3,"file":"Explain.js","sourceRoot":"","sources":["../../src/components/Explain.tsx"],"names":[],"mappings":"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"}
@@ -1,7 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
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":";;;;AAEO,MAAM,UAAU,GAAO,GAAG,EAAE,CAAC,CAClC,iCAAK,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,kDACA,GAAG,EAC3B,8BACE,KAAK,EAAC,qFAAqF,EAC3F,IAAI,EAAC,+BAA+B,EACpC,MAAM,EAAC,KAAK,+BAGV,EAAC,GAAG,oBAEJ,CACP,CAAC;AAZW,QAAA,UAAU,cAYrB"}
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
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FormatSQL = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
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((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: line.substring(idx, start) }));
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 = ((0, jsx_runtime_1.jsx)(Highlight, { n: index, highlit: index === highlitIndex, setHighlitIndex: setHighlitIndex, children: full }));
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((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: line.substring(idx) }));
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((0, jsx_runtime_1.jsx)("code", { style: {
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 (0, jsx_runtime_1.jsx)("pre", { className: "explain-sql", children: formattedSQL });
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 = (0, react_1.useCallback)(() => {
75
+ const onMouseEnter = useCallback(() => {
80
76
  setHighlitIndex(n);
81
77
  }, [setHighlitIndex, n]);
82
- const onMouseLeave = (0, react_1.useCallback)(() => {
78
+ const onMouseLeave = useCallback(() => {
83
79
  setHighlitIndex(null);
84
80
  }, [setHighlitIndex]);
85
- return ((0, jsx_runtime_1.jsx)("strong", { style: style, onMouseEnter: onMouseEnter, onMouseLeave: onMouseLeave, children: children }));
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":"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"}
1
+ {"version":3,"file":"FormatSQL.js","sourceRoot":"","sources":["../../src/components/FormatSQL.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEvD,MAAM,CAAC,MAAM,SAAS,GAAwB,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE;IACxD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;QAChC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;QACxD,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE;YACjC,MAAM,KAAK,GAAkB,EAAE,CAAC;YAChC,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,MAAM,EAAE,GAAG,8DAA8D,CAAC;YAC1E,IAAI,OAAO,CAAC;YACZ,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;gBAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;gBAC5B,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;gBACzB,IAAI,KAAK,GAAG,GAAG,EAAE;oBACf,KAAK,CAAC,IAAI,CAAC,4BAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,GAAI,CAAC,CAAC;iBAC/C;gBACD,GAAG,GAAG,GAAG,CAAC;gBACV,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;gBACvB,MAAM,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,CAAC,EAAE;oBACL,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACf;qBAAM;oBACL,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;oBAChC,MAAM,GAAG,GAAG,CACV,KAAC,SAAS,IACR,CAAC,EAAE,KAAK,EACR,OAAO,EAAE,KAAK,KAAK,YAAY,EAC/B,eAAe,EAAE,eAAe,YAE/B,IAAI,GACK,CACb,CAAC;oBACF,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBAChC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACjB;aACF;YACD,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE;gBACrB,KAAK,CAAC,IAAI,CAAC,4BAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAI,CAAC,CAAC;aACxC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QACF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC5C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YAE9B,QAAQ,CAAC,IAAI,CACX,eACE,KAAK,EAAE;oBACL,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,QAAQ;oBACpB,UAAU,EAAE,SAAS;iBACtB,YAGA,KAAK,IAFD,CAAC,CAGD,CACR,CAAC;SACH;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IACxB,OAAO,cAAK,SAAS,EAAC,aAAa,YAAE,YAAY,GAAO,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC;AAEF,MAAM,SAAS,GAKV,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,EAAE;IACjD,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO;QACnB,CAAC,CAAC;YACE,KAAK;YACL,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,KAAK;YACjB,eAAe,EACb,2DAA2D;SAC9D;QACH,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;IACd,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,eAAe,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,eAAe,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,OAAO,CACL,iBACE,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,YAEzB,QAAQ,GACF,CACV,CAAC;AACJ,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
+ import type { GrafastPlanJSON } from "grafast/mermaid";
1
2
  import type { FC } from "react";
2
3
  export declare const Mermaid: FC<{
3
- diagram: string;
4
+ plan: GrafastPlanJSON;
4
5
  }>;
5
6
  //# sourceMappingURL=Mermaid.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Mermaid.d.ts","sourceRoot":"","sources":["../../src/components/Mermaid.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAQhC,eAAO,MAAM,OAAO,EAAE,EAAE,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAW3C,CAAC"}
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
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Mermaid = void 0;
4
- const tslib_1 = require("tslib");
5
- const jsx_runtime_1 = require("react/jsx-runtime");
6
- const mermaid_1 = tslib_1.__importDefault(require("mermaid"));
7
- const react_1 = require("react");
8
- mermaid_1.default.initialize({
9
- startOnLoad: true,
10
- maxTextSize: 1000000,
11
- });
12
- const Mermaid = ({ diagram }) => {
13
- (0, react_1.useEffect)(() => {
14
- if (diagram) {
15
- mermaid_1.default.contentLoaded();
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
- return ((0, jsx_runtime_1.jsx)("div", { className: "mermaid", children: diagram }, diagram));
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":";;;;;AAAA,8DAA8B;AAE9B,iCAAkC;AAElC,iBAAO,CAAC,UAAU,CAAC;IACjB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,OAAO;CACrB,CAAC,CAAC;AAEI,MAAM,OAAO,GAA4B,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;IAC9D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE;YACX,iBAAO,CAAC,aAAa,EAAE,CAAC;SACzB;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,OAAO,CACL,gCAAK,SAAS,EAAC,SAAS,YACrB,OAAO,IADoB,OAAO,CAE/B,CACP,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,OAAO,WAWlB"}
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"}
@@ -1,7 +1,4 @@
1
- "use strict";
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
  #
@@ -1 +1 @@
1
- {"version":3,"file":"defaultQuery.js","sourceRoot":"","sources":["../src/defaultQuery.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC3B,CAAC"}
1
+ {"version":3,"file":"defaultQuery.js","sourceRoot":"","sources":["../src/defaultQuery.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC3B,CAAC"}
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ /// <reference types="react" resolution-mode="require"/>
2
2
  import type { ExplainResults } from "./useFetcher.js";
3
3
  import type { RuruStorage } from "./useStorage.js";
4
4
  export interface ExplainHelpers {
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
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] = (0, react_1.useState)(storage.get("explainIsOpen") === "true");
20
- const [explainSize, _setExplainSize] = (0, react_1.useState)(parseInt(storage.get("explainSize") ?? "", 10) || 300);
21
- const [explainAtBottom, _setExplainAtBottom] = (0, react_1.useState)([null, "true"].includes(storage.get("explainAtBottom")));
22
- const setShowExplain = (0, react_1.useCallback)((nextShowExplain) => {
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 = (0, react_1.useCallback)((nextAtBottom) => {
26
+ const setExplainAtBottom = useCallback((nextAtBottom) => {
30
27
  _setExplainAtBottom(nextAtBottom);
31
28
  storage.set("explainAtBottom", nextAtBottom ? "true" : "");
32
29
  }, [storage]);
33
- const setExplainSize = (0, react_1.useCallback)((nextSize) => {
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":";;;AAAA,iCAA6D;AAchD,QAAA,cAAc,GAAG,IAAA,qBAAa,EAKxC;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;AAEI,MAAM,UAAU,GAAG,CAAC,OAAoB,EAAkB,EAAE;IACjE,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAC7C,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,MAAM,CACxC,CAAC;IACF,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAC7C,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,IAAA,gBAAQ,EACrD,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CACxD,CAAC;IACF,MAAM,cAAc,GAAG,IAAA,mBAAW,EAChC,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,IAAA,mBAAW,EACpC,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,IAAA,mBAAW,EAChC,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;AA1CW,QAAA,UAAU,cA0CrB"}
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 ExplainedMermaidJsOperation extends IExplainedOperation {
13
- type: "mermaid-js";
14
- diagram: string;
13
+ export interface ExplainedPlanOperation extends IExplainedOperation {
14
+ type: "plan";
15
+ plan: GrafastPlanJSON;
15
16
  }
16
- export type ExplainedOperation = ExplainedSQLOperation | ExplainedMermaidJsOperation;
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;AAW3B,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,2BAA4B,SAAQ,mBAAmB;IACtE,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,kBAAkB,GAC1B,qBAAqB,GACrB,2BAA2B,CAAC;AAEhC,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"}
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"}