@sigmacomputing/react-embed-sdk 0.2.5 → 0.2.7
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/index.d.mts +25 -1
- package/dist/index.d.ts +25 -1
- package/dist/index.js +53 -2
- package/dist/index.mjs +55 -1
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -54,6 +54,30 @@ declare function useSigmaIframe(): {
|
|
|
54
54
|
*/
|
|
55
55
|
declare function usePageHeight(iframeRef: React.RefObject<HTMLIFrameElement>): number | undefined;
|
|
56
56
|
|
|
57
|
+
/**
|
|
58
|
+
* A hook that returns functions to get and set the variables in a workbook.
|
|
59
|
+
* @example
|
|
60
|
+
* ```
|
|
61
|
+
* function MyEmbed() {
|
|
62
|
+
* const { getVariables, setVariables } = useWorkbookVariables(iframeRef);
|
|
63
|
+
* return (
|
|
64
|
+
* <>
|
|
65
|
+
* <button onClick={() => setVariables({ foo: "bar" })}>Set Variables</button>
|
|
66
|
+
* <button onClick={() => const variable = await getVariables()}>Get Variables</button>
|
|
67
|
+
* <iframe
|
|
68
|
+
* ref={iframeRef}
|
|
69
|
+
* src="https://app.sigmacomputing.com/embed"
|
|
70
|
+
* />
|
|
71
|
+
* <>
|
|
72
|
+
* );
|
|
73
|
+
* }
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
declare const useWorkbookVariables: (iframeRef: React.RefObject<HTMLIFrameElement>) => {
|
|
77
|
+
getVariables: () => Promise<unknown>;
|
|
78
|
+
setVariables: (variables: Record<string, string>) => void;
|
|
79
|
+
};
|
|
80
|
+
|
|
57
81
|
/**
|
|
58
82
|
* Listen for a workbook loaded event, and execute the given callback when it occurs.
|
|
59
83
|
*
|
|
@@ -134,4 +158,4 @@ declare function useWorkbookBookmarkOnChange(iframeRef: React.RefObject<HTMLIFra
|
|
|
134
158
|
declare function useUrlOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onUrlChange: (event: UrlOnChangeEvent) => void): void;
|
|
135
159
|
declare function useWorkbookIdOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onIdChange: (event: WorkbookIdOnChangeEvent) => void): void;
|
|
136
160
|
|
|
137
|
-
export { usePageHeight, useSigmaIframe, useTableCellSelect, useUrlOnChange, useVariableChange, useWorkbookBookmarkOnChange, useWorkbookBookmarkOnCreate, useWorkbookChartError, useWorkbookChartValueSelect, useWorkbookCurrentVariables, useWorkbookDataLoaded, useWorkbookError, useWorkbookExploreKeyOnChange, useWorkbookFullScreen, useWorkbookIdOnChange, useWorkbookLoaded, useWorkbookPageHeight, useWorkbookPageSelectedNode, useWorkbookPivotTableCellSelect, useWorkbookPublished };
|
|
161
|
+
export { usePageHeight, useSigmaIframe, useTableCellSelect, useUrlOnChange, useVariableChange, useWorkbookBookmarkOnChange, useWorkbookBookmarkOnCreate, useWorkbookChartError, useWorkbookChartValueSelect, useWorkbookCurrentVariables, useWorkbookDataLoaded, useWorkbookError, useWorkbookExploreKeyOnChange, useWorkbookFullScreen, useWorkbookIdOnChange, useWorkbookLoaded, useWorkbookPageHeight, useWorkbookPageSelectedNode, useWorkbookPivotTableCellSelect, useWorkbookPublished, useWorkbookVariables };
|
package/dist/index.d.ts
CHANGED
|
@@ -54,6 +54,30 @@ declare function useSigmaIframe(): {
|
|
|
54
54
|
*/
|
|
55
55
|
declare function usePageHeight(iframeRef: React.RefObject<HTMLIFrameElement>): number | undefined;
|
|
56
56
|
|
|
57
|
+
/**
|
|
58
|
+
* A hook that returns functions to get and set the variables in a workbook.
|
|
59
|
+
* @example
|
|
60
|
+
* ```
|
|
61
|
+
* function MyEmbed() {
|
|
62
|
+
* const { getVariables, setVariables } = useWorkbookVariables(iframeRef);
|
|
63
|
+
* return (
|
|
64
|
+
* <>
|
|
65
|
+
* <button onClick={() => setVariables({ foo: "bar" })}>Set Variables</button>
|
|
66
|
+
* <button onClick={() => const variable = await getVariables()}>Get Variables</button>
|
|
67
|
+
* <iframe
|
|
68
|
+
* ref={iframeRef}
|
|
69
|
+
* src="https://app.sigmacomputing.com/embed"
|
|
70
|
+
* />
|
|
71
|
+
* <>
|
|
72
|
+
* );
|
|
73
|
+
* }
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
declare const useWorkbookVariables: (iframeRef: React.RefObject<HTMLIFrameElement>) => {
|
|
77
|
+
getVariables: () => Promise<unknown>;
|
|
78
|
+
setVariables: (variables: Record<string, string>) => void;
|
|
79
|
+
};
|
|
80
|
+
|
|
57
81
|
/**
|
|
58
82
|
* Listen for a workbook loaded event, and execute the given callback when it occurs.
|
|
59
83
|
*
|
|
@@ -134,4 +158,4 @@ declare function useWorkbookBookmarkOnChange(iframeRef: React.RefObject<HTMLIFra
|
|
|
134
158
|
declare function useUrlOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onUrlChange: (event: UrlOnChangeEvent) => void): void;
|
|
135
159
|
declare function useWorkbookIdOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onIdChange: (event: WorkbookIdOnChangeEvent) => void): void;
|
|
136
160
|
|
|
137
|
-
export { usePageHeight, useSigmaIframe, useTableCellSelect, useUrlOnChange, useVariableChange, useWorkbookBookmarkOnChange, useWorkbookBookmarkOnCreate, useWorkbookChartError, useWorkbookChartValueSelect, useWorkbookCurrentVariables, useWorkbookDataLoaded, useWorkbookError, useWorkbookExploreKeyOnChange, useWorkbookFullScreen, useWorkbookIdOnChange, useWorkbookLoaded, useWorkbookPageHeight, useWorkbookPageSelectedNode, useWorkbookPivotTableCellSelect, useWorkbookPublished };
|
|
161
|
+
export { usePageHeight, useSigmaIframe, useTableCellSelect, useUrlOnChange, useVariableChange, useWorkbookBookmarkOnChange, useWorkbookBookmarkOnCreate, useWorkbookChartError, useWorkbookChartValueSelect, useWorkbookCurrentVariables, useWorkbookDataLoaded, useWorkbookError, useWorkbookExploreKeyOnChange, useWorkbookFullScreen, useWorkbookIdOnChange, useWorkbookLoaded, useWorkbookPageHeight, useWorkbookPageSelectedNode, useWorkbookPivotTableCellSelect, useWorkbookPublished, useWorkbookVariables };
|
package/dist/index.js
CHANGED
|
@@ -39,7 +39,8 @@ __export(src_exports, {
|
|
|
39
39
|
useWorkbookPageHeight: () => useWorkbookPageHeight,
|
|
40
40
|
useWorkbookPageSelectedNode: () => useWorkbookPageSelectedNode,
|
|
41
41
|
useWorkbookPivotTableCellSelect: () => useWorkbookPivotTableCellSelect,
|
|
42
|
-
useWorkbookPublished: () => useWorkbookPublished
|
|
42
|
+
useWorkbookPublished: () => useWorkbookPublished,
|
|
43
|
+
useWorkbookVariables: () => useWorkbookVariables
|
|
43
44
|
});
|
|
44
45
|
module.exports = __toCommonJS(src_exports);
|
|
45
46
|
|
|
@@ -332,6 +333,55 @@ function usePageHeight(iframeRef) {
|
|
|
332
333
|
});
|
|
333
334
|
return height;
|
|
334
335
|
}
|
|
336
|
+
|
|
337
|
+
// src/mutations.ts
|
|
338
|
+
var import_react4 = require("react");
|
|
339
|
+
var import_embed_sdk2 = require("@sigmacomputing/embed-sdk");
|
|
340
|
+
var useWorkbookVariables = (iframeRef) => {
|
|
341
|
+
const [state, setState] = (0, import_react4.useState)();
|
|
342
|
+
const getVariables = (0, import_react4.useCallback)(() => {
|
|
343
|
+
if (!iframeRef.current) {
|
|
344
|
+
throw new Error("iframe is not available");
|
|
345
|
+
}
|
|
346
|
+
(0, import_embed_sdk2.workbookVariablesList)(iframeRef.current);
|
|
347
|
+
const promise = new Promise((resolve) => {
|
|
348
|
+
setState({ state: "pending", callback: resolve });
|
|
349
|
+
});
|
|
350
|
+
return promise;
|
|
351
|
+
}, [iframeRef]);
|
|
352
|
+
const setVariables = (0, import_react4.useCallback)(
|
|
353
|
+
(variables) => {
|
|
354
|
+
if (!iframeRef.current) {
|
|
355
|
+
throw new Error("iframe is not available");
|
|
356
|
+
}
|
|
357
|
+
(0, import_embed_sdk2.workbookVariablesUpdate)(iframeRef.current, variables);
|
|
358
|
+
},
|
|
359
|
+
[iframeRef]
|
|
360
|
+
);
|
|
361
|
+
(0, import_react4.useEffect)(() => {
|
|
362
|
+
if (!iframeRef.current)
|
|
363
|
+
return;
|
|
364
|
+
const listener = (event) => {
|
|
365
|
+
if (!iframeRef.current) {
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
(0, import_embed_sdk2.workbookCurrentVariablesListener)(event, iframeRef.current, (event2) => {
|
|
369
|
+
if ((state == null ? void 0 : state.state) === "pending") {
|
|
370
|
+
setState({ state: "success", variables: event2.variables });
|
|
371
|
+
state.callback(event2.variables);
|
|
372
|
+
}
|
|
373
|
+
});
|
|
374
|
+
};
|
|
375
|
+
window.addEventListener("message", listener);
|
|
376
|
+
return () => {
|
|
377
|
+
window.removeEventListener("message", listener);
|
|
378
|
+
};
|
|
379
|
+
}, [iframeRef]);
|
|
380
|
+
return {
|
|
381
|
+
getVariables,
|
|
382
|
+
setVariables
|
|
383
|
+
};
|
|
384
|
+
};
|
|
335
385
|
// Annotate the CommonJS export names for ESM import in node:
|
|
336
386
|
0 && (module.exports = {
|
|
337
387
|
usePageHeight,
|
|
@@ -353,5 +403,6 @@ function usePageHeight(iframeRef) {
|
|
|
353
403
|
useWorkbookPageHeight,
|
|
354
404
|
useWorkbookPageSelectedNode,
|
|
355
405
|
useWorkbookPivotTableCellSelect,
|
|
356
|
-
useWorkbookPublished
|
|
406
|
+
useWorkbookPublished,
|
|
407
|
+
useWorkbookVariables
|
|
357
408
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -306,6 +306,59 @@ function usePageHeight(iframeRef) {
|
|
|
306
306
|
});
|
|
307
307
|
return height;
|
|
308
308
|
}
|
|
309
|
+
|
|
310
|
+
// src/mutations.ts
|
|
311
|
+
import { useCallback as useCallback2, useEffect as useEffect2, useState as useState3 } from "react";
|
|
312
|
+
import {
|
|
313
|
+
workbookVariablesList,
|
|
314
|
+
workbookCurrentVariablesListener as workbookCurrentVariablesListener2,
|
|
315
|
+
workbookVariablesUpdate
|
|
316
|
+
} from "@sigmacomputing/embed-sdk";
|
|
317
|
+
var useWorkbookVariables = (iframeRef) => {
|
|
318
|
+
const [state, setState] = useState3();
|
|
319
|
+
const getVariables = useCallback2(() => {
|
|
320
|
+
if (!iframeRef.current) {
|
|
321
|
+
throw new Error("iframe is not available");
|
|
322
|
+
}
|
|
323
|
+
workbookVariablesList(iframeRef.current);
|
|
324
|
+
const promise = new Promise((resolve) => {
|
|
325
|
+
setState({ state: "pending", callback: resolve });
|
|
326
|
+
});
|
|
327
|
+
return promise;
|
|
328
|
+
}, [iframeRef]);
|
|
329
|
+
const setVariables = useCallback2(
|
|
330
|
+
(variables) => {
|
|
331
|
+
if (!iframeRef.current) {
|
|
332
|
+
throw new Error("iframe is not available");
|
|
333
|
+
}
|
|
334
|
+
workbookVariablesUpdate(iframeRef.current, variables);
|
|
335
|
+
},
|
|
336
|
+
[iframeRef]
|
|
337
|
+
);
|
|
338
|
+
useEffect2(() => {
|
|
339
|
+
if (!iframeRef.current)
|
|
340
|
+
return;
|
|
341
|
+
const listener = (event) => {
|
|
342
|
+
if (!iframeRef.current) {
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
workbookCurrentVariablesListener2(event, iframeRef.current, (event2) => {
|
|
346
|
+
if ((state == null ? void 0 : state.state) === "pending") {
|
|
347
|
+
setState({ state: "success", variables: event2.variables });
|
|
348
|
+
state.callback(event2.variables);
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
};
|
|
352
|
+
window.addEventListener("message", listener);
|
|
353
|
+
return () => {
|
|
354
|
+
window.removeEventListener("message", listener);
|
|
355
|
+
};
|
|
356
|
+
}, [iframeRef]);
|
|
357
|
+
return {
|
|
358
|
+
getVariables,
|
|
359
|
+
setVariables
|
|
360
|
+
};
|
|
361
|
+
};
|
|
309
362
|
export {
|
|
310
363
|
usePageHeight,
|
|
311
364
|
useSigmaIframe,
|
|
@@ -326,5 +379,6 @@ export {
|
|
|
326
379
|
useWorkbookPageHeight,
|
|
327
380
|
useWorkbookPageSelectedNode,
|
|
328
381
|
useWorkbookPivotTableCellSelect,
|
|
329
|
-
useWorkbookPublished
|
|
382
|
+
useWorkbookPublished,
|
|
383
|
+
useWorkbookVariables
|
|
330
384
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sigmacomputing/react-embed-sdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.7",
|
|
4
4
|
"description": "React JavaScript SDK to interact with Sigma Computing's Embed API",
|
|
5
5
|
"author": "sigmacomputing",
|
|
6
6
|
"license": "ISC",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"@sigmacomputing/typescript-config": "0.0.0"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@sigmacomputing/embed-sdk": "0.2.
|
|
26
|
+
"@sigmacomputing/embed-sdk": "0.2.7"
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
29
29
|
"prepublish": "pnpm build",
|