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