@sigmacomputing/react-embed-sdk 0.2.2 → 0.2.3
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 +61 -27
- package/dist/index.d.ts +61 -27
- package/dist/index.js +276 -9
- package/dist/index.mjs +271 -6
- package/package.json +11 -11
package/dist/index.d.mts
CHANGED
|
@@ -1,9 +1,35 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { WorkbookLoadedEvent, WorkbookErrorEvent } from '@sigmacomputing/embed-sdk';
|
|
1
|
+
import { WorkbookErrorEvent, WorkbookLoadedEvent, WorkbookDataLoadedEvent, WorkbookVariableOnChangeEvent, WorkbookTableCellSelectEvent, WorkbookPublishedEvent, WorkbookFullScreenEvent, WorkbookPageHeightEvent, WorkbookPageSelectedNodeEvent, WorkbookPivotTableCellSelectEvent, WorkbookChartValueSelectEvent, WorkbookCurrentVariablesEvent, WorkbookBookmarkCreateEvent, WorkbookChartErrorEvent, WorkbookExploreKeyOnChangeEvent, WorkbookBookmarkOnChangeEvent, UrlOnChangeEvent, WorkbookIdOnChangeEvent } from '@sigmacomputing/embed-sdk';
|
|
3
2
|
export * from '@sigmacomputing/embed-sdk';
|
|
3
|
+
import * as react from 'react';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A hook that returns a ref to be used with an iframe element, and the loading and error state of the embed.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```
|
|
10
|
+
* function MyEmbed() {
|
|
11
|
+
* const { iframeRef, loading, error } = useSigmaIframe();
|
|
12
|
+
* return (
|
|
13
|
+
* <>
|
|
14
|
+
* {loading && <p>Loading...</p>}
|
|
15
|
+
* {error && <p>Error: {error.message}</p>}
|
|
16
|
+
* <iframe
|
|
17
|
+
* className={loading || error ? "hidden" : "show"}
|
|
18
|
+
* ref={iframeRef}
|
|
19
|
+
* src="https://app.sigmacomputing.com/embed"
|
|
20
|
+
* />
|
|
21
|
+
* </>
|
|
22
|
+
* );
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
declare function useSigmaIframe(): {
|
|
27
|
+
iframeRef: react.RefObject<HTMLIFrameElement>;
|
|
28
|
+
loading: boolean;
|
|
29
|
+
error: WorkbookErrorEvent | null;
|
|
30
|
+
variables: Record<string, string> | null | undefined;
|
|
31
|
+
};
|
|
4
32
|
|
|
5
|
-
type OnLoaded = (event: WorkbookLoadedEvent) => void;
|
|
6
|
-
type OnError = (event: WorkbookErrorEvent) => void;
|
|
7
33
|
/**
|
|
8
34
|
* Listen for a workbook loaded event, and execute the given callback when it occurs.
|
|
9
35
|
*
|
|
@@ -18,14 +44,14 @@ type OnError = (event: WorkbookErrorEvent) => void;
|
|
|
18
44
|
* <iframe
|
|
19
45
|
* className{loading ? "hidden" : "show"}
|
|
20
46
|
* ref={iframeRef}
|
|
21
|
-
* src="https://sigmacomputing.
|
|
47
|
+
* src="https://app.sigmacomputing.com/embed"
|
|
22
48
|
* />
|
|
23
49
|
* );
|
|
24
50
|
* }
|
|
25
51
|
* ```
|
|
26
52
|
*
|
|
27
53
|
*/
|
|
28
|
-
declare function useWorkbookLoaded(iframeRef: React.RefObject<HTMLIFrameElement>, onLoaded:
|
|
54
|
+
declare function useWorkbookLoaded(iframeRef: React.RefObject<HTMLIFrameElement>, onLoaded: (event: WorkbookLoadedEvent) => void): void;
|
|
29
55
|
/**
|
|
30
56
|
* Listen for a workbook error event, and execute the given callback when it occurs.
|
|
31
57
|
*
|
|
@@ -41,39 +67,47 @@ declare function useWorkbookLoaded(iframeRef: React.RefObject<HTMLIFrameElement>
|
|
|
41
67
|
* return (
|
|
42
68
|
* <iframe
|
|
43
69
|
* ref={iframeRef}
|
|
44
|
-
* src="https://sigmacomputing.
|
|
70
|
+
* src="https://app.sigmacomputing.com/embed"
|
|
45
71
|
* />
|
|
46
72
|
* );
|
|
47
73
|
* }
|
|
48
74
|
* ```
|
|
49
75
|
*
|
|
50
76
|
*/
|
|
51
|
-
declare function useWorkbookError(iframeRef: React.RefObject<HTMLIFrameElement>, onError:
|
|
77
|
+
declare function useWorkbookError(iframeRef: React.RefObject<HTMLIFrameElement>, onError: (event: WorkbookErrorEvent) => void): void;
|
|
52
78
|
/**
|
|
53
|
-
*
|
|
79
|
+
* Listen for a workbook data loaded event, and execute the given callback when it occurs.
|
|
54
80
|
*
|
|
55
81
|
* @example
|
|
56
82
|
* ```
|
|
57
83
|
* function MyEmbed() {
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* />
|
|
68
|
-
* </>
|
|
69
|
-
* );
|
|
84
|
+
* const [dataLoaded, setDataLoaded] = useState(false);
|
|
85
|
+
* const onDataLoaded = useCallback(() => setDataLoaded(true), []);
|
|
86
|
+
* const iframeRef = useRef<HTMLIFrameElement>(null);
|
|
87
|
+
* return (
|
|
88
|
+
* <iframe
|
|
89
|
+
* ref={iframeRef}
|
|
90
|
+
* src="https://app.sigmacomputing.com/embed"
|
|
91
|
+
* />
|
|
92
|
+
* );
|
|
70
93
|
* }
|
|
71
94
|
* ```
|
|
72
95
|
*/
|
|
73
|
-
declare function
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
96
|
+
declare function useWorkbookDataLoaded(iframeRef: React.RefObject<HTMLIFrameElement>, onDataLoaded: (event: WorkbookDataLoadedEvent) => void): void;
|
|
97
|
+
declare function useVariableChange(iframeRef: React.RefObject<HTMLIFrameElement>, onVariableChange: (event: WorkbookVariableOnChangeEvent) => void): void;
|
|
98
|
+
declare function useTableCellSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onTableCellSelect: (event: WorkbookTableCellSelectEvent) => void): void;
|
|
99
|
+
declare function useWorkbookPublished(iframeRef: React.RefObject<HTMLIFrameElement>, onWorkbookPublished: (event: WorkbookPublishedEvent) => void): void;
|
|
100
|
+
declare function useWorkbookFullScreen(iframeRef: React.RefObject<HTMLIFrameElement>, onFullScreen: (event: WorkbookFullScreenEvent) => void): void;
|
|
101
|
+
declare function useWorkbookPageHeight(iframeRef: React.RefObject<HTMLIFrameElement>, onPageHeight: (event: WorkbookPageHeightEvent) => void): void;
|
|
102
|
+
declare function useWorkbookPageSelectedNode(iframeRef: React.RefObject<HTMLIFrameElement>, onPageSelectedNode: (event: WorkbookPageSelectedNodeEvent) => void): void;
|
|
103
|
+
declare function useWorkbookPivotTableCellSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onPivotTableCellSelect: (event: WorkbookPivotTableCellSelectEvent) => void): void;
|
|
104
|
+
declare function useWorkbookChartValueSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onChartValueSelect: (event: WorkbookChartValueSelectEvent) => void): void;
|
|
105
|
+
declare function useWorkbookCurrentVariables(iframeRef: React.RefObject<HTMLIFrameElement>, onCurrentVariables: (event: WorkbookCurrentVariablesEvent) => void): void;
|
|
106
|
+
declare function useWorkbookBookmarkOnCreate(iframeRef: React.RefObject<HTMLIFrameElement>, onBookmarkCreate: (event: WorkbookBookmarkCreateEvent) => void): void;
|
|
107
|
+
declare function useWorkbookChartError(iframeRef: React.RefObject<HTMLIFrameElement>, onChartError: (event: WorkbookChartErrorEvent) => void): void;
|
|
108
|
+
declare function useWorkbookExploreKeyOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onExploreKeyChange: (event: WorkbookExploreKeyOnChangeEvent) => void): void;
|
|
109
|
+
declare function useWorkbookBookmarkOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onBookmarkChange: (event: WorkbookBookmarkOnChangeEvent) => void): void;
|
|
110
|
+
declare function useUrlOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onUrlChange: (event: UrlOnChangeEvent) => void): void;
|
|
111
|
+
declare function useWorkbookIdOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onIdChange: (event: WorkbookIdOnChangeEvent) => void): void;
|
|
78
112
|
|
|
79
|
-
export {
|
|
113
|
+
export { useSigmaIframe, useTableCellSelect, useUrlOnChange, useVariableChange, useWorkbookBookmarkOnChange, useWorkbookBookmarkOnCreate, useWorkbookChartError, useWorkbookChartValueSelect, useWorkbookCurrentVariables, useWorkbookDataLoaded, useWorkbookError, useWorkbookExploreKeyOnChange, useWorkbookFullScreen, useWorkbookIdOnChange, useWorkbookLoaded, useWorkbookPageHeight, useWorkbookPageSelectedNode, useWorkbookPivotTableCellSelect, useWorkbookPublished };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,35 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { WorkbookLoadedEvent, WorkbookErrorEvent } from '@sigmacomputing/embed-sdk';
|
|
1
|
+
import { WorkbookErrorEvent, WorkbookLoadedEvent, WorkbookDataLoadedEvent, WorkbookVariableOnChangeEvent, WorkbookTableCellSelectEvent, WorkbookPublishedEvent, WorkbookFullScreenEvent, WorkbookPageHeightEvent, WorkbookPageSelectedNodeEvent, WorkbookPivotTableCellSelectEvent, WorkbookChartValueSelectEvent, WorkbookCurrentVariablesEvent, WorkbookBookmarkCreateEvent, WorkbookChartErrorEvent, WorkbookExploreKeyOnChangeEvent, WorkbookBookmarkOnChangeEvent, UrlOnChangeEvent, WorkbookIdOnChangeEvent } from '@sigmacomputing/embed-sdk';
|
|
3
2
|
export * from '@sigmacomputing/embed-sdk';
|
|
3
|
+
import * as react from 'react';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A hook that returns a ref to be used with an iframe element, and the loading and error state of the embed.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```
|
|
10
|
+
* function MyEmbed() {
|
|
11
|
+
* const { iframeRef, loading, error } = useSigmaIframe();
|
|
12
|
+
* return (
|
|
13
|
+
* <>
|
|
14
|
+
* {loading && <p>Loading...</p>}
|
|
15
|
+
* {error && <p>Error: {error.message}</p>}
|
|
16
|
+
* <iframe
|
|
17
|
+
* className={loading || error ? "hidden" : "show"}
|
|
18
|
+
* ref={iframeRef}
|
|
19
|
+
* src="https://app.sigmacomputing.com/embed"
|
|
20
|
+
* />
|
|
21
|
+
* </>
|
|
22
|
+
* );
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
declare function useSigmaIframe(): {
|
|
27
|
+
iframeRef: react.RefObject<HTMLIFrameElement>;
|
|
28
|
+
loading: boolean;
|
|
29
|
+
error: WorkbookErrorEvent | null;
|
|
30
|
+
variables: Record<string, string> | null | undefined;
|
|
31
|
+
};
|
|
4
32
|
|
|
5
|
-
type OnLoaded = (event: WorkbookLoadedEvent) => void;
|
|
6
|
-
type OnError = (event: WorkbookErrorEvent) => void;
|
|
7
33
|
/**
|
|
8
34
|
* Listen for a workbook loaded event, and execute the given callback when it occurs.
|
|
9
35
|
*
|
|
@@ -18,14 +44,14 @@ type OnError = (event: WorkbookErrorEvent) => void;
|
|
|
18
44
|
* <iframe
|
|
19
45
|
* className{loading ? "hidden" : "show"}
|
|
20
46
|
* ref={iframeRef}
|
|
21
|
-
* src="https://sigmacomputing.
|
|
47
|
+
* src="https://app.sigmacomputing.com/embed"
|
|
22
48
|
* />
|
|
23
49
|
* );
|
|
24
50
|
* }
|
|
25
51
|
* ```
|
|
26
52
|
*
|
|
27
53
|
*/
|
|
28
|
-
declare function useWorkbookLoaded(iframeRef: React.RefObject<HTMLIFrameElement>, onLoaded:
|
|
54
|
+
declare function useWorkbookLoaded(iframeRef: React.RefObject<HTMLIFrameElement>, onLoaded: (event: WorkbookLoadedEvent) => void): void;
|
|
29
55
|
/**
|
|
30
56
|
* Listen for a workbook error event, and execute the given callback when it occurs.
|
|
31
57
|
*
|
|
@@ -41,39 +67,47 @@ declare function useWorkbookLoaded(iframeRef: React.RefObject<HTMLIFrameElement>
|
|
|
41
67
|
* return (
|
|
42
68
|
* <iframe
|
|
43
69
|
* ref={iframeRef}
|
|
44
|
-
* src="https://sigmacomputing.
|
|
70
|
+
* src="https://app.sigmacomputing.com/embed"
|
|
45
71
|
* />
|
|
46
72
|
* );
|
|
47
73
|
* }
|
|
48
74
|
* ```
|
|
49
75
|
*
|
|
50
76
|
*/
|
|
51
|
-
declare function useWorkbookError(iframeRef: React.RefObject<HTMLIFrameElement>, onError:
|
|
77
|
+
declare function useWorkbookError(iframeRef: React.RefObject<HTMLIFrameElement>, onError: (event: WorkbookErrorEvent) => void): void;
|
|
52
78
|
/**
|
|
53
|
-
*
|
|
79
|
+
* Listen for a workbook data loaded event, and execute the given callback when it occurs.
|
|
54
80
|
*
|
|
55
81
|
* @example
|
|
56
82
|
* ```
|
|
57
83
|
* function MyEmbed() {
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
67
|
-
* />
|
|
68
|
-
* </>
|
|
69
|
-
* );
|
|
84
|
+
* const [dataLoaded, setDataLoaded] = useState(false);
|
|
85
|
+
* const onDataLoaded = useCallback(() => setDataLoaded(true), []);
|
|
86
|
+
* const iframeRef = useRef<HTMLIFrameElement>(null);
|
|
87
|
+
* return (
|
|
88
|
+
* <iframe
|
|
89
|
+
* ref={iframeRef}
|
|
90
|
+
* src="https://app.sigmacomputing.com/embed"
|
|
91
|
+
* />
|
|
92
|
+
* );
|
|
70
93
|
* }
|
|
71
94
|
* ```
|
|
72
95
|
*/
|
|
73
|
-
declare function
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
96
|
+
declare function useWorkbookDataLoaded(iframeRef: React.RefObject<HTMLIFrameElement>, onDataLoaded: (event: WorkbookDataLoadedEvent) => void): void;
|
|
97
|
+
declare function useVariableChange(iframeRef: React.RefObject<HTMLIFrameElement>, onVariableChange: (event: WorkbookVariableOnChangeEvent) => void): void;
|
|
98
|
+
declare function useTableCellSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onTableCellSelect: (event: WorkbookTableCellSelectEvent) => void): void;
|
|
99
|
+
declare function useWorkbookPublished(iframeRef: React.RefObject<HTMLIFrameElement>, onWorkbookPublished: (event: WorkbookPublishedEvent) => void): void;
|
|
100
|
+
declare function useWorkbookFullScreen(iframeRef: React.RefObject<HTMLIFrameElement>, onFullScreen: (event: WorkbookFullScreenEvent) => void): void;
|
|
101
|
+
declare function useWorkbookPageHeight(iframeRef: React.RefObject<HTMLIFrameElement>, onPageHeight: (event: WorkbookPageHeightEvent) => void): void;
|
|
102
|
+
declare function useWorkbookPageSelectedNode(iframeRef: React.RefObject<HTMLIFrameElement>, onPageSelectedNode: (event: WorkbookPageSelectedNodeEvent) => void): void;
|
|
103
|
+
declare function useWorkbookPivotTableCellSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onPivotTableCellSelect: (event: WorkbookPivotTableCellSelectEvent) => void): void;
|
|
104
|
+
declare function useWorkbookChartValueSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onChartValueSelect: (event: WorkbookChartValueSelectEvent) => void): void;
|
|
105
|
+
declare function useWorkbookCurrentVariables(iframeRef: React.RefObject<HTMLIFrameElement>, onCurrentVariables: (event: WorkbookCurrentVariablesEvent) => void): void;
|
|
106
|
+
declare function useWorkbookBookmarkOnCreate(iframeRef: React.RefObject<HTMLIFrameElement>, onBookmarkCreate: (event: WorkbookBookmarkCreateEvent) => void): void;
|
|
107
|
+
declare function useWorkbookChartError(iframeRef: React.RefObject<HTMLIFrameElement>, onChartError: (event: WorkbookChartErrorEvent) => void): void;
|
|
108
|
+
declare function useWorkbookExploreKeyOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onExploreKeyChange: (event: WorkbookExploreKeyOnChangeEvent) => void): void;
|
|
109
|
+
declare function useWorkbookBookmarkOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onBookmarkChange: (event: WorkbookBookmarkOnChangeEvent) => void): void;
|
|
110
|
+
declare function useUrlOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onUrlChange: (event: UrlOnChangeEvent) => void): void;
|
|
111
|
+
declare function useWorkbookIdOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onIdChange: (event: WorkbookIdOnChangeEvent) => void): void;
|
|
78
112
|
|
|
79
|
-
export {
|
|
113
|
+
export { useSigmaIframe, useTableCellSelect, useUrlOnChange, useVariableChange, useWorkbookBookmarkOnChange, useWorkbookBookmarkOnCreate, useWorkbookChartError, useWorkbookChartValueSelect, useWorkbookCurrentVariables, useWorkbookDataLoaded, useWorkbookError, useWorkbookExploreKeyOnChange, useWorkbookFullScreen, useWorkbookIdOnChange, useWorkbookLoaded, useWorkbookPageHeight, useWorkbookPageSelectedNode, useWorkbookPivotTableCellSelect, useWorkbookPublished };
|
package/dist/index.js
CHANGED
|
@@ -21,12 +21,33 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
21
21
|
var src_exports = {};
|
|
22
22
|
__export(src_exports, {
|
|
23
23
|
useSigmaIframe: () => useSigmaIframe,
|
|
24
|
+
useTableCellSelect: () => useTableCellSelect,
|
|
25
|
+
useUrlOnChange: () => useUrlOnChange,
|
|
26
|
+
useVariableChange: () => useVariableChange,
|
|
27
|
+
useWorkbookBookmarkOnChange: () => useWorkbookBookmarkOnChange,
|
|
28
|
+
useWorkbookBookmarkOnCreate: () => useWorkbookBookmarkOnCreate,
|
|
29
|
+
useWorkbookChartError: () => useWorkbookChartError,
|
|
30
|
+
useWorkbookChartValueSelect: () => useWorkbookChartValueSelect,
|
|
31
|
+
useWorkbookCurrentVariables: () => useWorkbookCurrentVariables,
|
|
32
|
+
useWorkbookDataLoaded: () => useWorkbookDataLoaded,
|
|
24
33
|
useWorkbookError: () => useWorkbookError,
|
|
25
|
-
|
|
34
|
+
useWorkbookExploreKeyOnChange: () => useWorkbookExploreKeyOnChange,
|
|
35
|
+
useWorkbookFullScreen: () => useWorkbookFullScreen,
|
|
36
|
+
useWorkbookIdOnChange: () => useWorkbookIdOnChange,
|
|
37
|
+
useWorkbookLoaded: () => useWorkbookLoaded,
|
|
38
|
+
useWorkbookPageHeight: () => useWorkbookPageHeight,
|
|
39
|
+
useWorkbookPageSelectedNode: () => useWorkbookPageSelectedNode,
|
|
40
|
+
useWorkbookPivotTableCellSelect: () => useWorkbookPivotTableCellSelect,
|
|
41
|
+
useWorkbookPublished: () => useWorkbookPublished
|
|
26
42
|
});
|
|
27
43
|
module.exports = __toCommonJS(src_exports);
|
|
28
|
-
|
|
44
|
+
|
|
45
|
+
// src/use-sigma-iframe.ts
|
|
46
|
+
var import_react2 = require("react");
|
|
47
|
+
|
|
48
|
+
// src/wrappers.ts
|
|
29
49
|
var import_embed_sdk = require("@sigmacomputing/embed-sdk");
|
|
50
|
+
var import_react = require("react");
|
|
30
51
|
function useWorkbookLoaded(iframeRef, onLoaded) {
|
|
31
52
|
(0, import_react.useEffect)(() => {
|
|
32
53
|
const listener = (event) => {
|
|
@@ -51,22 +72,268 @@ function useWorkbookError(iframeRef, onError) {
|
|
|
51
72
|
return () => window.removeEventListener("message", listener);
|
|
52
73
|
}, [iframeRef, onError]);
|
|
53
74
|
}
|
|
75
|
+
function useWorkbookDataLoaded(iframeRef, onDataLoaded) {
|
|
76
|
+
(0, import_react.useEffect)(() => {
|
|
77
|
+
const listener = (event) => {
|
|
78
|
+
if (!iframeRef.current) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
(0, import_embed_sdk.workbookDataLoadedListener)(event, iframeRef.current, onDataLoaded);
|
|
82
|
+
};
|
|
83
|
+
window.addEventListener("message", listener);
|
|
84
|
+
return () => window.removeEventListener("message", listener);
|
|
85
|
+
}, [iframeRef, onDataLoaded]);
|
|
86
|
+
}
|
|
87
|
+
function useVariableChange(iframeRef, onVariableChange) {
|
|
88
|
+
(0, import_react.useEffect)(() => {
|
|
89
|
+
const listener = (event) => {
|
|
90
|
+
if (!iframeRef.current) {
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
(0, import_embed_sdk.workbookVariableListener)(event, iframeRef.current, onVariableChange);
|
|
94
|
+
};
|
|
95
|
+
window.addEventListener("message", listener);
|
|
96
|
+
return () => window.removeEventListener("message", listener);
|
|
97
|
+
}, [iframeRef, onVariableChange]);
|
|
98
|
+
}
|
|
99
|
+
function useTableCellSelect(iframeRef, onTableCellSelect) {
|
|
100
|
+
(0, import_react.useEffect)(() => {
|
|
101
|
+
const listener = (event) => {
|
|
102
|
+
if (!iframeRef.current) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
(0, import_embed_sdk.workbookTableCellSelectListener)(
|
|
106
|
+
event,
|
|
107
|
+
iframeRef.current,
|
|
108
|
+
onTableCellSelect
|
|
109
|
+
);
|
|
110
|
+
};
|
|
111
|
+
window.addEventListener("message", listener);
|
|
112
|
+
return () => window.removeEventListener("message", listener);
|
|
113
|
+
}, [iframeRef, onTableCellSelect]);
|
|
114
|
+
}
|
|
115
|
+
function useWorkbookPublished(iframeRef, onWorkbookPublished) {
|
|
116
|
+
(0, import_react.useEffect)(() => {
|
|
117
|
+
const listener = (event) => {
|
|
118
|
+
if (!iframeRef.current) {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
(0, import_embed_sdk.workbookPublishedListener)(event, iframeRef.current, onWorkbookPublished);
|
|
122
|
+
};
|
|
123
|
+
window.addEventListener("message", listener);
|
|
124
|
+
return () => window.removeEventListener("message", listener);
|
|
125
|
+
}, [iframeRef, onWorkbookPublished]);
|
|
126
|
+
}
|
|
127
|
+
function useWorkbookFullScreen(iframeRef, onFullScreen) {
|
|
128
|
+
(0, import_react.useEffect)(() => {
|
|
129
|
+
const listener = (event) => {
|
|
130
|
+
if (!iframeRef.current) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
(0, import_embed_sdk.workbookFullScreenListener)(event, iframeRef.current, onFullScreen);
|
|
134
|
+
};
|
|
135
|
+
window.addEventListener("message", listener);
|
|
136
|
+
return () => window.removeEventListener("message", listener);
|
|
137
|
+
}, [iframeRef, onFullScreen]);
|
|
138
|
+
}
|
|
139
|
+
function useWorkbookPageHeight(iframeRef, onPageHeight) {
|
|
140
|
+
(0, import_react.useEffect)(() => {
|
|
141
|
+
const listener = (event) => {
|
|
142
|
+
if (!iframeRef.current) {
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
(0, import_embed_sdk.workbookPageHeightListener)(event, iframeRef.current, onPageHeight);
|
|
146
|
+
};
|
|
147
|
+
window.addEventListener("message", listener);
|
|
148
|
+
return () => window.removeEventListener("message", listener);
|
|
149
|
+
}, [iframeRef, onPageHeight]);
|
|
150
|
+
}
|
|
151
|
+
function useWorkbookPageSelectedNode(iframeRef, onPageSelectedNode) {
|
|
152
|
+
(0, import_react.useEffect)(() => {
|
|
153
|
+
const listener = (event) => {
|
|
154
|
+
if (!iframeRef.current) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
(0, import_embed_sdk.workbookPageSelectedNodeListener)(
|
|
158
|
+
event,
|
|
159
|
+
iframeRef.current,
|
|
160
|
+
onPageSelectedNode
|
|
161
|
+
);
|
|
162
|
+
};
|
|
163
|
+
window.addEventListener("message", listener);
|
|
164
|
+
return () => window.removeEventListener("message", listener);
|
|
165
|
+
}, [iframeRef, onPageSelectedNode]);
|
|
166
|
+
}
|
|
167
|
+
function useWorkbookPivotTableCellSelect(iframeRef, onPivotTableCellSelect) {
|
|
168
|
+
(0, import_react.useEffect)(() => {
|
|
169
|
+
const listener = (event) => {
|
|
170
|
+
if (!iframeRef.current) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
(0, import_embed_sdk.workbookPivotTableCellSelectListener)(
|
|
174
|
+
event,
|
|
175
|
+
iframeRef.current,
|
|
176
|
+
onPivotTableCellSelect
|
|
177
|
+
);
|
|
178
|
+
};
|
|
179
|
+
window.addEventListener("message", listener);
|
|
180
|
+
return () => window.removeEventListener("message", listener);
|
|
181
|
+
}, [iframeRef, onPivotTableCellSelect]);
|
|
182
|
+
}
|
|
183
|
+
function useWorkbookChartValueSelect(iframeRef, onChartValueSelect) {
|
|
184
|
+
(0, import_react.useEffect)(() => {
|
|
185
|
+
const listener = (event) => {
|
|
186
|
+
if (!iframeRef.current) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
(0, import_embed_sdk.workbookChartValueSelectListener)(
|
|
190
|
+
event,
|
|
191
|
+
iframeRef.current,
|
|
192
|
+
onChartValueSelect
|
|
193
|
+
);
|
|
194
|
+
};
|
|
195
|
+
window.addEventListener("message", listener);
|
|
196
|
+
return () => window.removeEventListener("message", listener);
|
|
197
|
+
}, [iframeRef, onChartValueSelect]);
|
|
198
|
+
}
|
|
199
|
+
function useWorkbookCurrentVariables(iframeRef, onCurrentVariables) {
|
|
200
|
+
(0, import_react.useEffect)(() => {
|
|
201
|
+
const listener = (event) => {
|
|
202
|
+
if (!iframeRef.current) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
205
|
+
(0, import_embed_sdk.workbookCurrentVariablesListener)(
|
|
206
|
+
event,
|
|
207
|
+
iframeRef.current,
|
|
208
|
+
onCurrentVariables
|
|
209
|
+
);
|
|
210
|
+
};
|
|
211
|
+
window.addEventListener("message", listener);
|
|
212
|
+
return () => window.removeEventListener("message", listener);
|
|
213
|
+
}, [iframeRef, onCurrentVariables]);
|
|
214
|
+
}
|
|
215
|
+
function useWorkbookBookmarkOnCreate(iframeRef, onBookmarkCreate) {
|
|
216
|
+
(0, import_react.useEffect)(() => {
|
|
217
|
+
const listener = (event) => {
|
|
218
|
+
if (!iframeRef.current) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
(0, import_embed_sdk.workbookBookmarkCreateListener)(
|
|
222
|
+
event,
|
|
223
|
+
iframeRef.current,
|
|
224
|
+
onBookmarkCreate
|
|
225
|
+
);
|
|
226
|
+
};
|
|
227
|
+
window.addEventListener("message", listener);
|
|
228
|
+
return () => window.removeEventListener("message", listener);
|
|
229
|
+
}, [iframeRef, onBookmarkCreate]);
|
|
230
|
+
}
|
|
231
|
+
function useWorkbookChartError(iframeRef, onChartError) {
|
|
232
|
+
(0, import_react.useEffect)(() => {
|
|
233
|
+
const listener = (event) => {
|
|
234
|
+
if (!iframeRef.current) {
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
(0, import_embed_sdk.workbookChartErrorListener)(event, iframeRef.current, onChartError);
|
|
238
|
+
};
|
|
239
|
+
window.addEventListener("message", listener);
|
|
240
|
+
return () => window.removeEventListener("message", listener);
|
|
241
|
+
}, [iframeRef, onChartError]);
|
|
242
|
+
}
|
|
243
|
+
function useWorkbookExploreKeyOnChange(iframeRef, onExploreKeyChange) {
|
|
244
|
+
(0, import_react.useEffect)(() => {
|
|
245
|
+
const listener = (event) => {
|
|
246
|
+
if (!iframeRef.current) {
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
(0, import_embed_sdk.workbookExploreKeyOnChangeListener)(
|
|
250
|
+
event,
|
|
251
|
+
iframeRef.current,
|
|
252
|
+
onExploreKeyChange
|
|
253
|
+
);
|
|
254
|
+
};
|
|
255
|
+
window.addEventListener("message", listener);
|
|
256
|
+
return () => window.removeEventListener("message", listener);
|
|
257
|
+
}, [iframeRef, onExploreKeyChange]);
|
|
258
|
+
}
|
|
259
|
+
function useWorkbookBookmarkOnChange(iframeRef, onBookmarkChange) {
|
|
260
|
+
(0, import_react.useEffect)(() => {
|
|
261
|
+
const listener = (event) => {
|
|
262
|
+
if (!iframeRef.current) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
(0, import_embed_sdk.workbookBookmarkOnChangeListener)(
|
|
266
|
+
event,
|
|
267
|
+
iframeRef.current,
|
|
268
|
+
onBookmarkChange
|
|
269
|
+
);
|
|
270
|
+
};
|
|
271
|
+
window.addEventListener("message", listener);
|
|
272
|
+
return () => window.removeEventListener("message", listener);
|
|
273
|
+
}, [iframeRef, onBookmarkChange]);
|
|
274
|
+
}
|
|
275
|
+
function useUrlOnChange(iframeRef, onUrlChange) {
|
|
276
|
+
(0, import_react.useEffect)(() => {
|
|
277
|
+
const listener = (event) => {
|
|
278
|
+
if (!iframeRef.current) {
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
(0, import_embed_sdk.urlOnChangeListener)(event, iframeRef.current, onUrlChange);
|
|
282
|
+
};
|
|
283
|
+
window.addEventListener("message", listener);
|
|
284
|
+
return () => window.removeEventListener("message", listener);
|
|
285
|
+
}, [iframeRef, onUrlChange]);
|
|
286
|
+
}
|
|
287
|
+
function useWorkbookIdOnChange(iframeRef, onIdChange) {
|
|
288
|
+
(0, import_react.useEffect)(() => {
|
|
289
|
+
const listener = (event) => {
|
|
290
|
+
if (!iframeRef.current) {
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
(0, import_embed_sdk.workbookIdOnChangeListener)(event, iframeRef.current, onIdChange);
|
|
294
|
+
};
|
|
295
|
+
window.addEventListener("message", listener);
|
|
296
|
+
return () => window.removeEventListener("message", listener);
|
|
297
|
+
}, [iframeRef, onIdChange]);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
// src/use-sigma-iframe.ts
|
|
54
301
|
function useSigmaIframe() {
|
|
55
|
-
const iframeRef = (0,
|
|
56
|
-
const [loading, setLoading] = (0,
|
|
57
|
-
const [
|
|
58
|
-
const
|
|
59
|
-
const
|
|
302
|
+
const iframeRef = (0, import_react2.useRef)(null);
|
|
303
|
+
const [loading, setLoading] = (0, import_react2.useState)(true);
|
|
304
|
+
const [variables, setVariables] = (0, import_react2.useState)();
|
|
305
|
+
const [error, setError] = (0, import_react2.useState)(null);
|
|
306
|
+
const loadingCallback = (0, import_react2.useCallback)((event) => {
|
|
307
|
+
setLoading(false);
|
|
308
|
+
setVariables(event.workbook.variables);
|
|
309
|
+
}, []);
|
|
310
|
+
const errorCallback = (0, import_react2.useCallback)((event) => {
|
|
60
311
|
setError(event);
|
|
61
312
|
setLoading(false);
|
|
62
313
|
}, []);
|
|
63
314
|
useWorkbookLoaded(iframeRef, loadingCallback);
|
|
64
315
|
useWorkbookError(iframeRef, errorCallback);
|
|
65
|
-
return { iframeRef, loading, error };
|
|
316
|
+
return { iframeRef, loading, error, variables };
|
|
66
317
|
}
|
|
67
318
|
// Annotate the CommonJS export names for ESM import in node:
|
|
68
319
|
0 && (module.exports = {
|
|
69
320
|
useSigmaIframe,
|
|
321
|
+
useTableCellSelect,
|
|
322
|
+
useUrlOnChange,
|
|
323
|
+
useVariableChange,
|
|
324
|
+
useWorkbookBookmarkOnChange,
|
|
325
|
+
useWorkbookBookmarkOnCreate,
|
|
326
|
+
useWorkbookChartError,
|
|
327
|
+
useWorkbookChartValueSelect,
|
|
328
|
+
useWorkbookCurrentVariables,
|
|
329
|
+
useWorkbookDataLoaded,
|
|
70
330
|
useWorkbookError,
|
|
71
|
-
|
|
331
|
+
useWorkbookExploreKeyOnChange,
|
|
332
|
+
useWorkbookFullScreen,
|
|
333
|
+
useWorkbookIdOnChange,
|
|
334
|
+
useWorkbookLoaded,
|
|
335
|
+
useWorkbookPageHeight,
|
|
336
|
+
useWorkbookPageSelectedNode,
|
|
337
|
+
useWorkbookPivotTableCellSelect,
|
|
338
|
+
useWorkbookPublished
|
|
72
339
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -1,9 +1,28 @@
|
|
|
1
|
-
// src/
|
|
2
|
-
import { useCallback,
|
|
1
|
+
// src/use-sigma-iframe.ts
|
|
2
|
+
import { useCallback, useRef, useState } from "react";
|
|
3
|
+
|
|
4
|
+
// src/wrappers.ts
|
|
3
5
|
import {
|
|
6
|
+
workbookLoadedListener,
|
|
4
7
|
workbookErrorListener,
|
|
5
|
-
|
|
8
|
+
workbookDataLoadedListener,
|
|
9
|
+
workbookVariableListener,
|
|
10
|
+
workbookTableCellSelectListener,
|
|
11
|
+
workbookPublishedListener,
|
|
12
|
+
workbookFullScreenListener,
|
|
13
|
+
workbookPageHeightListener,
|
|
14
|
+
workbookChartValueSelectListener,
|
|
15
|
+
workbookPageSelectedNodeListener,
|
|
16
|
+
workbookPivotTableCellSelectListener,
|
|
17
|
+
workbookBookmarkCreateListener,
|
|
18
|
+
workbookCurrentVariablesListener,
|
|
19
|
+
workbookChartErrorListener,
|
|
20
|
+
workbookExploreKeyOnChangeListener,
|
|
21
|
+
workbookBookmarkOnChangeListener,
|
|
22
|
+
urlOnChangeListener,
|
|
23
|
+
workbookIdOnChangeListener
|
|
6
24
|
} from "@sigmacomputing/embed-sdk";
|
|
25
|
+
import { useEffect } from "react";
|
|
7
26
|
function useWorkbookLoaded(iframeRef, onLoaded) {
|
|
8
27
|
useEffect(() => {
|
|
9
28
|
const listener = (event) => {
|
|
@@ -28,21 +47,267 @@ function useWorkbookError(iframeRef, onError) {
|
|
|
28
47
|
return () => window.removeEventListener("message", listener);
|
|
29
48
|
}, [iframeRef, onError]);
|
|
30
49
|
}
|
|
50
|
+
function useWorkbookDataLoaded(iframeRef, onDataLoaded) {
|
|
51
|
+
useEffect(() => {
|
|
52
|
+
const listener = (event) => {
|
|
53
|
+
if (!iframeRef.current) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
workbookDataLoadedListener(event, iframeRef.current, onDataLoaded);
|
|
57
|
+
};
|
|
58
|
+
window.addEventListener("message", listener);
|
|
59
|
+
return () => window.removeEventListener("message", listener);
|
|
60
|
+
}, [iframeRef, onDataLoaded]);
|
|
61
|
+
}
|
|
62
|
+
function useVariableChange(iframeRef, onVariableChange) {
|
|
63
|
+
useEffect(() => {
|
|
64
|
+
const listener = (event) => {
|
|
65
|
+
if (!iframeRef.current) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
workbookVariableListener(event, iframeRef.current, onVariableChange);
|
|
69
|
+
};
|
|
70
|
+
window.addEventListener("message", listener);
|
|
71
|
+
return () => window.removeEventListener("message", listener);
|
|
72
|
+
}, [iframeRef, onVariableChange]);
|
|
73
|
+
}
|
|
74
|
+
function useTableCellSelect(iframeRef, onTableCellSelect) {
|
|
75
|
+
useEffect(() => {
|
|
76
|
+
const listener = (event) => {
|
|
77
|
+
if (!iframeRef.current) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
workbookTableCellSelectListener(
|
|
81
|
+
event,
|
|
82
|
+
iframeRef.current,
|
|
83
|
+
onTableCellSelect
|
|
84
|
+
);
|
|
85
|
+
};
|
|
86
|
+
window.addEventListener("message", listener);
|
|
87
|
+
return () => window.removeEventListener("message", listener);
|
|
88
|
+
}, [iframeRef, onTableCellSelect]);
|
|
89
|
+
}
|
|
90
|
+
function useWorkbookPublished(iframeRef, onWorkbookPublished) {
|
|
91
|
+
useEffect(() => {
|
|
92
|
+
const listener = (event) => {
|
|
93
|
+
if (!iframeRef.current) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
workbookPublishedListener(event, iframeRef.current, onWorkbookPublished);
|
|
97
|
+
};
|
|
98
|
+
window.addEventListener("message", listener);
|
|
99
|
+
return () => window.removeEventListener("message", listener);
|
|
100
|
+
}, [iframeRef, onWorkbookPublished]);
|
|
101
|
+
}
|
|
102
|
+
function useWorkbookFullScreen(iframeRef, onFullScreen) {
|
|
103
|
+
useEffect(() => {
|
|
104
|
+
const listener = (event) => {
|
|
105
|
+
if (!iframeRef.current) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
workbookFullScreenListener(event, iframeRef.current, onFullScreen);
|
|
109
|
+
};
|
|
110
|
+
window.addEventListener("message", listener);
|
|
111
|
+
return () => window.removeEventListener("message", listener);
|
|
112
|
+
}, [iframeRef, onFullScreen]);
|
|
113
|
+
}
|
|
114
|
+
function useWorkbookPageHeight(iframeRef, onPageHeight) {
|
|
115
|
+
useEffect(() => {
|
|
116
|
+
const listener = (event) => {
|
|
117
|
+
if (!iframeRef.current) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
workbookPageHeightListener(event, iframeRef.current, onPageHeight);
|
|
121
|
+
};
|
|
122
|
+
window.addEventListener("message", listener);
|
|
123
|
+
return () => window.removeEventListener("message", listener);
|
|
124
|
+
}, [iframeRef, onPageHeight]);
|
|
125
|
+
}
|
|
126
|
+
function useWorkbookPageSelectedNode(iframeRef, onPageSelectedNode) {
|
|
127
|
+
useEffect(() => {
|
|
128
|
+
const listener = (event) => {
|
|
129
|
+
if (!iframeRef.current) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
workbookPageSelectedNodeListener(
|
|
133
|
+
event,
|
|
134
|
+
iframeRef.current,
|
|
135
|
+
onPageSelectedNode
|
|
136
|
+
);
|
|
137
|
+
};
|
|
138
|
+
window.addEventListener("message", listener);
|
|
139
|
+
return () => window.removeEventListener("message", listener);
|
|
140
|
+
}, [iframeRef, onPageSelectedNode]);
|
|
141
|
+
}
|
|
142
|
+
function useWorkbookPivotTableCellSelect(iframeRef, onPivotTableCellSelect) {
|
|
143
|
+
useEffect(() => {
|
|
144
|
+
const listener = (event) => {
|
|
145
|
+
if (!iframeRef.current) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
workbookPivotTableCellSelectListener(
|
|
149
|
+
event,
|
|
150
|
+
iframeRef.current,
|
|
151
|
+
onPivotTableCellSelect
|
|
152
|
+
);
|
|
153
|
+
};
|
|
154
|
+
window.addEventListener("message", listener);
|
|
155
|
+
return () => window.removeEventListener("message", listener);
|
|
156
|
+
}, [iframeRef, onPivotTableCellSelect]);
|
|
157
|
+
}
|
|
158
|
+
function useWorkbookChartValueSelect(iframeRef, onChartValueSelect) {
|
|
159
|
+
useEffect(() => {
|
|
160
|
+
const listener = (event) => {
|
|
161
|
+
if (!iframeRef.current) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
workbookChartValueSelectListener(
|
|
165
|
+
event,
|
|
166
|
+
iframeRef.current,
|
|
167
|
+
onChartValueSelect
|
|
168
|
+
);
|
|
169
|
+
};
|
|
170
|
+
window.addEventListener("message", listener);
|
|
171
|
+
return () => window.removeEventListener("message", listener);
|
|
172
|
+
}, [iframeRef, onChartValueSelect]);
|
|
173
|
+
}
|
|
174
|
+
function useWorkbookCurrentVariables(iframeRef, onCurrentVariables) {
|
|
175
|
+
useEffect(() => {
|
|
176
|
+
const listener = (event) => {
|
|
177
|
+
if (!iframeRef.current) {
|
|
178
|
+
return;
|
|
179
|
+
}
|
|
180
|
+
workbookCurrentVariablesListener(
|
|
181
|
+
event,
|
|
182
|
+
iframeRef.current,
|
|
183
|
+
onCurrentVariables
|
|
184
|
+
);
|
|
185
|
+
};
|
|
186
|
+
window.addEventListener("message", listener);
|
|
187
|
+
return () => window.removeEventListener("message", listener);
|
|
188
|
+
}, [iframeRef, onCurrentVariables]);
|
|
189
|
+
}
|
|
190
|
+
function useWorkbookBookmarkOnCreate(iframeRef, onBookmarkCreate) {
|
|
191
|
+
useEffect(() => {
|
|
192
|
+
const listener = (event) => {
|
|
193
|
+
if (!iframeRef.current) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
workbookBookmarkCreateListener(
|
|
197
|
+
event,
|
|
198
|
+
iframeRef.current,
|
|
199
|
+
onBookmarkCreate
|
|
200
|
+
);
|
|
201
|
+
};
|
|
202
|
+
window.addEventListener("message", listener);
|
|
203
|
+
return () => window.removeEventListener("message", listener);
|
|
204
|
+
}, [iframeRef, onBookmarkCreate]);
|
|
205
|
+
}
|
|
206
|
+
function useWorkbookChartError(iframeRef, onChartError) {
|
|
207
|
+
useEffect(() => {
|
|
208
|
+
const listener = (event) => {
|
|
209
|
+
if (!iframeRef.current) {
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
workbookChartErrorListener(event, iframeRef.current, onChartError);
|
|
213
|
+
};
|
|
214
|
+
window.addEventListener("message", listener);
|
|
215
|
+
return () => window.removeEventListener("message", listener);
|
|
216
|
+
}, [iframeRef, onChartError]);
|
|
217
|
+
}
|
|
218
|
+
function useWorkbookExploreKeyOnChange(iframeRef, onExploreKeyChange) {
|
|
219
|
+
useEffect(() => {
|
|
220
|
+
const listener = (event) => {
|
|
221
|
+
if (!iframeRef.current) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
workbookExploreKeyOnChangeListener(
|
|
225
|
+
event,
|
|
226
|
+
iframeRef.current,
|
|
227
|
+
onExploreKeyChange
|
|
228
|
+
);
|
|
229
|
+
};
|
|
230
|
+
window.addEventListener("message", listener);
|
|
231
|
+
return () => window.removeEventListener("message", listener);
|
|
232
|
+
}, [iframeRef, onExploreKeyChange]);
|
|
233
|
+
}
|
|
234
|
+
function useWorkbookBookmarkOnChange(iframeRef, onBookmarkChange) {
|
|
235
|
+
useEffect(() => {
|
|
236
|
+
const listener = (event) => {
|
|
237
|
+
if (!iframeRef.current) {
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
workbookBookmarkOnChangeListener(
|
|
241
|
+
event,
|
|
242
|
+
iframeRef.current,
|
|
243
|
+
onBookmarkChange
|
|
244
|
+
);
|
|
245
|
+
};
|
|
246
|
+
window.addEventListener("message", listener);
|
|
247
|
+
return () => window.removeEventListener("message", listener);
|
|
248
|
+
}, [iframeRef, onBookmarkChange]);
|
|
249
|
+
}
|
|
250
|
+
function useUrlOnChange(iframeRef, onUrlChange) {
|
|
251
|
+
useEffect(() => {
|
|
252
|
+
const listener = (event) => {
|
|
253
|
+
if (!iframeRef.current) {
|
|
254
|
+
return;
|
|
255
|
+
}
|
|
256
|
+
urlOnChangeListener(event, iframeRef.current, onUrlChange);
|
|
257
|
+
};
|
|
258
|
+
window.addEventListener("message", listener);
|
|
259
|
+
return () => window.removeEventListener("message", listener);
|
|
260
|
+
}, [iframeRef, onUrlChange]);
|
|
261
|
+
}
|
|
262
|
+
function useWorkbookIdOnChange(iframeRef, onIdChange) {
|
|
263
|
+
useEffect(() => {
|
|
264
|
+
const listener = (event) => {
|
|
265
|
+
if (!iframeRef.current) {
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
workbookIdOnChangeListener(event, iframeRef.current, onIdChange);
|
|
269
|
+
};
|
|
270
|
+
window.addEventListener("message", listener);
|
|
271
|
+
return () => window.removeEventListener("message", listener);
|
|
272
|
+
}, [iframeRef, onIdChange]);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
// src/use-sigma-iframe.ts
|
|
31
276
|
function useSigmaIframe() {
|
|
32
277
|
const iframeRef = useRef(null);
|
|
33
278
|
const [loading, setLoading] = useState(true);
|
|
279
|
+
const [variables, setVariables] = useState();
|
|
34
280
|
const [error, setError] = useState(null);
|
|
35
|
-
const loadingCallback = useCallback(() =>
|
|
281
|
+
const loadingCallback = useCallback((event) => {
|
|
282
|
+
setLoading(false);
|
|
283
|
+
setVariables(event.workbook.variables);
|
|
284
|
+
}, []);
|
|
36
285
|
const errorCallback = useCallback((event) => {
|
|
37
286
|
setError(event);
|
|
38
287
|
setLoading(false);
|
|
39
288
|
}, []);
|
|
40
289
|
useWorkbookLoaded(iframeRef, loadingCallback);
|
|
41
290
|
useWorkbookError(iframeRef, errorCallback);
|
|
42
|
-
return { iframeRef, loading, error };
|
|
291
|
+
return { iframeRef, loading, error, variables };
|
|
43
292
|
}
|
|
44
293
|
export {
|
|
45
294
|
useSigmaIframe,
|
|
295
|
+
useTableCellSelect,
|
|
296
|
+
useUrlOnChange,
|
|
297
|
+
useVariableChange,
|
|
298
|
+
useWorkbookBookmarkOnChange,
|
|
299
|
+
useWorkbookBookmarkOnCreate,
|
|
300
|
+
useWorkbookChartError,
|
|
301
|
+
useWorkbookChartValueSelect,
|
|
302
|
+
useWorkbookCurrentVariables,
|
|
303
|
+
useWorkbookDataLoaded,
|
|
46
304
|
useWorkbookError,
|
|
47
|
-
|
|
305
|
+
useWorkbookExploreKeyOnChange,
|
|
306
|
+
useWorkbookFullScreen,
|
|
307
|
+
useWorkbookIdOnChange,
|
|
308
|
+
useWorkbookLoaded,
|
|
309
|
+
useWorkbookPageHeight,
|
|
310
|
+
useWorkbookPageSelectedNode,
|
|
311
|
+
useWorkbookPivotTableCellSelect,
|
|
312
|
+
useWorkbookPublished
|
|
48
313
|
};
|
package/package.json
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sigmacomputing/react-embed-sdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "React JavaScript SDK to interact with Sigma Computing's Embed API",
|
|
5
|
-
"scripts": {
|
|
6
|
-
"prepublish": "npm run build",
|
|
7
|
-
"build": "tsup",
|
|
8
|
-
"dev": "tsup --watch",
|
|
9
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
10
|
-
},
|
|
11
5
|
"author": "sigmacomputing",
|
|
12
6
|
"license": "ISC",
|
|
13
7
|
"exports": {
|
|
@@ -23,12 +17,18 @@
|
|
|
23
17
|
"react-dom": "^16.8 || ^17 || ^18"
|
|
24
18
|
},
|
|
25
19
|
"devDependencies": {
|
|
26
|
-
"@sigmacomputing/typescript-config": "*",
|
|
27
20
|
"@types/react": "^18.2.66",
|
|
28
21
|
"react": "^18.2.0",
|
|
29
|
-
"react-dom": "^18.2.0"
|
|
22
|
+
"react-dom": "^18.2.0",
|
|
23
|
+
"@sigmacomputing/typescript-config": "0.0.0"
|
|
30
24
|
},
|
|
31
25
|
"dependencies": {
|
|
32
|
-
"@sigmacomputing/embed-sdk": "
|
|
26
|
+
"@sigmacomputing/embed-sdk": "0.2.3"
|
|
27
|
+
},
|
|
28
|
+
"scripts": {
|
|
29
|
+
"prepublish": "pnpm build",
|
|
30
|
+
"build": "tsup",
|
|
31
|
+
"dev": "tsup --watch",
|
|
32
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
33
33
|
}
|
|
34
|
-
}
|
|
34
|
+
}
|