@sigmacomputing/react-embed-sdk 0.3.3 → 0.5.0
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/README.md +327 -0
- package/dist/index.d.mts +15 -6
- package/dist/index.d.ts +15 -6
- package/dist/index.js +19 -5
- package/dist/index.mjs +20 -6
- package/package.json +2 -2
package/README.md
ADDED
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
## Getting Started
|
|
2
|
+
|
|
3
|
+
To use the react-embed-sdk in your project, you can install it using your node package manager.
|
|
4
|
+
|
|
5
|
+
**Using npm:**
|
|
6
|
+
|
|
7
|
+
```code
|
|
8
|
+
npm install @sigmacomputing/react-embed-sdk
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
**yarn:**
|
|
12
|
+
|
|
13
|
+
```code
|
|
14
|
+
yarn add @sigmacomputing/react-embed-sdk
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**pnpm:**
|
|
18
|
+
|
|
19
|
+
```code
|
|
20
|
+
pnpm add @sigmacomputing/react-embed-sdk
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Documentation
|
|
24
|
+
|
|
25
|
+
### Hooks
|
|
26
|
+
|
|
27
|
+
The library provides hooks that combine the lower level [listeners](#listeners) and [mutations](#mutations) to provide a more ergonomic API.
|
|
28
|
+
|
|
29
|
+
#### useSigmaIframe
|
|
30
|
+
|
|
31
|
+
A hook that returns a ref to be used with a Sigma iframe element, and the loading and error state of the embed.
|
|
32
|
+
|
|
33
|
+
```typescript
|
|
34
|
+
useSigmaIframe(): {
|
|
35
|
+
iframeRef: React.RefObject<HTMLIFrameElement>;
|
|
36
|
+
loading: boolean;
|
|
37
|
+
error: WorkbookErrorEvent | null;
|
|
38
|
+
variables: Record<string, string> | undefined;
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Example usage:
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
function MyEmbed() {
|
|
46
|
+
const { iframeRef, loading, error } = useSigmaIframe();
|
|
47
|
+
return (
|
|
48
|
+
<>
|
|
49
|
+
{loading && <p>Loading...</p>}
|
|
50
|
+
{error && <p>Error: {error.message}</p>}
|
|
51
|
+
<iframe
|
|
52
|
+
className={loading || error ? "hidden" : "show"}
|
|
53
|
+
ref={iframeRef}
|
|
54
|
+
{/* The embed url to load */}
|
|
55
|
+
src="https://app.sigmacomputing.com/embed"
|
|
56
|
+
/>
|
|
57
|
+
</>
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
#### useWorkbookVariables
|
|
63
|
+
|
|
64
|
+
A hook that returns functions to get and set the variables in a workbook.
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
useWorkbookVariables(iframeRef: React.RefObject<HTMLIFrameElement>): {
|
|
68
|
+
getVariables: () => Promise<Record<string, string>>;
|
|
69
|
+
setVariables: (variables: Record<string, string>) => void;
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Example usage:
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
function MyEmbed() {
|
|
77
|
+
const { getVariables, setVariables } = useWorkbookVariables(iframeRef);
|
|
78
|
+
return (
|
|
79
|
+
<>
|
|
80
|
+
<button onClick={() => setVariables({ foo: "bar" }))} name="set-variables">Set Filters</button>
|
|
81
|
+
<button
|
|
82
|
+
onClick={async () => {
|
|
83
|
+
const variable = await getVariables();
|
|
84
|
+
}}
|
|
85
|
+
name="get-variables"
|
|
86
|
+
>
|
|
87
|
+
Get Filters
|
|
88
|
+
</button>
|
|
89
|
+
<iframe ref={iframeRef} src="https://app.sigmacomputing.com/embed" />
|
|
90
|
+
</>
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
#### usePageHeight
|
|
96
|
+
|
|
97
|
+
A hook that returns the height of the page in the iframe. This HAS to be used with the responsive_height [URL Parameter](https://help.sigmacomputing.com/docs/embed-url-parameters).
|
|
98
|
+
|
|
99
|
+
```typescript
|
|
100
|
+
usePageHeight(iframeRef: React.RefObject<HTMLIFrameElement>): number | undefined
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Example usage:
|
|
104
|
+
|
|
105
|
+
```tsx
|
|
106
|
+
function MyEmbed() {
|
|
107
|
+
const { iframeRef } = useSigmaIframe();
|
|
108
|
+
const height = usePageHeight(iframeRef);
|
|
109
|
+
return (
|
|
110
|
+
<>
|
|
111
|
+
<iframe
|
|
112
|
+
style={{ height }}
|
|
113
|
+
ref={iframeRef}
|
|
114
|
+
src="https://app.sigmacomputing.com/embed?:responsive_height=true"
|
|
115
|
+
/>
|
|
116
|
+
</>
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Listeners
|
|
122
|
+
|
|
123
|
+
These are functions that can be used to listen for events from the embed, and react to them.
|
|
124
|
+
|
|
125
|
+
#### useWorkbookLoaded
|
|
126
|
+
|
|
127
|
+
Listen for a workbook loaded event, and execute the given callback when it occurs.
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
useWorkbookLoaded(iframeRef: React.RefObject<HTMLIFrameElement>, onLoaded: (event: WorkbookLoadedEvent) => void)
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
#### useWorkbookError
|
|
134
|
+
|
|
135
|
+
Listen for a workbook error event, and execute the given callback when it occurs.
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
useWorkbookError(iframeRef: React.RefObject<HTMLIFrameElement>, onError: (event: WorkbookErrorEvent) => void)
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
#### useWorkbookDataLoaded
|
|
142
|
+
|
|
143
|
+
Listen for a workbook data loaded event, and execute the given callback when it occurs.
|
|
144
|
+
|
|
145
|
+
```typescript
|
|
146
|
+
useWorkbookDataLoaded(iframeRef: React.RefObject<HTMLIFrameElement>, onDataLoaded: (event: WorkbookDataLoadedEvent) => void)
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
#### useVariableChange
|
|
150
|
+
|
|
151
|
+
Listen for a workbook variable change event, and execute the given callback when it occurs.
|
|
152
|
+
|
|
153
|
+
```typescript
|
|
154
|
+
useVariableChange(iframeRef: React.RefObject<HTMLIFrameElement>, onVariableChange: (event: WorkbookVariableOnChangeEvent) => void)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
#### useTableCellSelect
|
|
158
|
+
|
|
159
|
+
Listen for a table cell select event, and execute the given callback when it occurs.
|
|
160
|
+
|
|
161
|
+
```typescript
|
|
162
|
+
useTableCellSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onTableCellSelect: (event: WorkbookTableCellSelectEvent) => void)
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
#### useWorkbookPublished
|
|
166
|
+
|
|
167
|
+
Listen for a workbook published event, and execute the given callback when it occurs.
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
useWorkbookPublished(iframeRef: React.RefObject<HTMLIFrameElement>, onWorkbookPublished: (event: WorkbookPublishedEvent) => void)
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
#### useWorkbookFullScreen
|
|
174
|
+
|
|
175
|
+
Listen for a workbook full screen event, and execute the given callback when it occurs.
|
|
176
|
+
|
|
177
|
+
```typescript
|
|
178
|
+
useWorkbookFullScreen(iframeRef: React.RefObject<HTMLIFrameElement>, onFullScreen: (event: WorkbookFullScreenEvent) => void)
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
#### useWorkbookPageHeight
|
|
182
|
+
|
|
183
|
+
Listen for a workbook page height event, and execute the given callback when it occurs. Needs to be used with the responsive_height [URL Parameter](https://help.sigmacomputing.com/docs/embed-url-parameters).
|
|
184
|
+
|
|
185
|
+
```typescript
|
|
186
|
+
useWorkbookPageHeight(iframeRef: React.RefObject<HTMLIFrameElement>, onPageHeight: (event: WorkbookPageHeightEvent) => void)
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
#### useWorkbookSelectedNode
|
|
190
|
+
|
|
191
|
+
Listen for a workbook selected node event, and execute the given callback when it occurs.
|
|
192
|
+
|
|
193
|
+
```typescript
|
|
194
|
+
useWorkbookSelectedNode(iframeRef: React.RefObject<HTMLIFrameElement>, onPageSelectedNode: (event: WorkbookSelectedNodeEvent) => void)
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
#### useWorkbookPivotTableCellSelect
|
|
198
|
+
|
|
199
|
+
Listen for a pivot table cell select event, and execute the given callback when it occurs.
|
|
200
|
+
|
|
201
|
+
```typescript
|
|
202
|
+
useWorkbookPivotTableCellSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onPivotTableCellSelect: (event: WorkbookPivotTableCellSelectEvent) => void)
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
#### useWorkbookChartValueSelect
|
|
206
|
+
|
|
207
|
+
Listen for a chart value select event, and execute the given callback when it occurs.
|
|
208
|
+
|
|
209
|
+
```typescript
|
|
210
|
+
useWorkbookChartValueSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onChartValueSelect: (event: WorkbookChartValueSelectEvent) => void)
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
#### useWorkbookCurrentVariables
|
|
214
|
+
|
|
215
|
+
Listen for a workbook current variables event, and execute the given callback when it occurs. This is to be used when `workbookVariablesList` is called.
|
|
216
|
+
|
|
217
|
+
```typescript
|
|
218
|
+
useWorkbookCurrentVariables(iframeRef: React.RefObject<HTMLIFrameElement>, onCurrentVariables: (event: WorkbookCurrentVariablesEvent) => void)
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
#### useWorkbookBookmarkOnCreate
|
|
222
|
+
|
|
223
|
+
Listen for a workbook bookmark create event, and execute the given callback when it occurs.
|
|
224
|
+
|
|
225
|
+
```typescript
|
|
226
|
+
useWorkbookBookmarkOnCreate(iframeRef: React.RefObject<HTMLIFrameElement>, onBookmarkCreate: (event: WorkbookBookmarkOnCreateEvent) => void)
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
#### useWorkbookChartError
|
|
230
|
+
|
|
231
|
+
Listen for a workbook chart error event, and execute the given callback when it occurs.
|
|
232
|
+
|
|
233
|
+
```typescript
|
|
234
|
+
useWorkbookChartError(iframeRef: React.RefObject<HTMLIFrameElement>, onChartError: (event: WorkbookChartErrorEvent) => void)
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
#### useWorkbookExploreKeyOnChange
|
|
238
|
+
|
|
239
|
+
Listen for a workbook explore key change event, and execute the given callback when it occurs.
|
|
240
|
+
|
|
241
|
+
```typescript
|
|
242
|
+
useWorkbookExploreKeyOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onExploreKeyOnChange: (event: WorkbookExploreKeyOnChangeEvent) => void)
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
#### useWorkbookBookmarkOnChange
|
|
246
|
+
|
|
247
|
+
Listen for a workbook bookmark change event, and execute the given callback when it occurs.
|
|
248
|
+
|
|
249
|
+
```typescript
|
|
250
|
+
useWorkbookBookmarkOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onBookmarkChange: (event: WorkbookBookmarkOnChangeEvent) => void)
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
#### useUrlOnChange
|
|
254
|
+
|
|
255
|
+
Listen for a url change event, and execute the given callback when it occurs.
|
|
256
|
+
|
|
257
|
+
```typescript
|
|
258
|
+
useUrlOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onUrlChange: (event: UrlOnChangeEvent) => void)
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
#### useWorkbookIdOnChange
|
|
262
|
+
|
|
263
|
+
Listen for a workbook id change event, and execute the given callback when it occurs.
|
|
264
|
+
|
|
265
|
+
```typescript
|
|
266
|
+
useWorkbookIdOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onWorkbookIdChange: (event: WorkbookIdOnChangeEvent) => void)
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### Mutations
|
|
270
|
+
|
|
271
|
+
These are functions that can be used to send messages to the embed. They may cause an event to be emitted from the embed.
|
|
272
|
+
|
|
273
|
+
#### getWorkbookVariables
|
|
274
|
+
|
|
275
|
+
Send a message to the embed to list the current variables. This will cause a `workbook:variables:current` event to be emitted from the embed, and can be used with the `useWorkbookCurrentVariables` function.
|
|
276
|
+
|
|
277
|
+
```typescript
|
|
278
|
+
getWorkbookVariables(iframeRef: React.RefObject<HTMLIFrameElement>)
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
#### updateWorkbookVariables
|
|
282
|
+
|
|
283
|
+
Send a message to the embed to update the variables.
|
|
284
|
+
|
|
285
|
+
```typescript
|
|
286
|
+
updateWorkbookVariables(iframeRef: React.RefObject<HTMLIFrameElement>, variables: Record<string, string>)
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
#### createWorkbookBookmark
|
|
290
|
+
|
|
291
|
+
Send a message to the embed to create a bookmark.
|
|
292
|
+
|
|
293
|
+
```typescript
|
|
294
|
+
createWorkbookBookmark(iframeRef: React.RefObject<HTMLIFrameElement>, bookmark: WorkbookBookmarkCreateEvent)
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
#### updateWorkbookBookmark
|
|
298
|
+
|
|
299
|
+
Send a message to the embed to update the current bookmark.
|
|
300
|
+
|
|
301
|
+
```typescript
|
|
302
|
+
updateWorkbookBookmark(iframeRef: React.RefObject<HTMLIFrameElement>)
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
#### updateWorkbookFullscreen
|
|
306
|
+
|
|
307
|
+
Send a message to the embed to toggle the fullscreen state of the given element.
|
|
308
|
+
|
|
309
|
+
```typescript
|
|
310
|
+
updateWorkbookFullscreen(iframeRef: React.RefObject<HTMLIFrameElement>, nodeId: string | null)
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
#### updateWorkbookSelectedNodeId
|
|
314
|
+
|
|
315
|
+
Send a message to the embed to update the selected element. Can be a pageId or elementId.
|
|
316
|
+
|
|
317
|
+
```typescript
|
|
318
|
+
updateWorkbookSelectedNodeId(iframeRef: React.RefObject<HTMLIFrameElement>, nodeId: string, nodeType: "element" | "page")
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
#### updateWorkbookSharingLink
|
|
322
|
+
|
|
323
|
+
Send a message to the embed to update the sharing link.
|
|
324
|
+
|
|
325
|
+
```typescript
|
|
326
|
+
updateWorkbookSharingLink(iframeRef: React.RefObject<HTMLIFrameElement>, sharingLink: string | null, sharingExplorationLink?: string | null)
|
|
327
|
+
```
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { WorkbookErrorEvent, WorkbookLoadedEvent, WorkbookDataLoadedEvent, WorkbookVariableOnChangeEvent, WorkbookTableCellSelectEvent, WorkbookPublishedEvent, WorkbookFullScreenEvent, WorkbookPageHeightEvent,
|
|
1
|
+
import { WorkbookErrorEvent, WorkbookLoadedEvent, WorkbookDataLoadedEvent, WorkbookVariableOnChangeEvent, WorkbookTableCellSelectEvent, WorkbookPublishedEvent, WorkbookFullScreenEvent, WorkbookPageHeightEvent, WorkbookSelectedNodeEvent, WorkbookPivotTableCellSelectEvent, WorkbookChartValueSelectEvent, WorkbookCurrentVariablesEvent, WorkbookBookmarkOnCreateEvent, WorkbookChartErrorEvent, WorkbookExploreKeyOnChangeEvent, WorkbookBookmarkOnChangeEvent, UrlOnChangeEvent, WorkbookIdOnChangeEvent, ActionOutboundEvent, WorkbookBookmarkCreateEvent } from '@sigmacomputing/embed-sdk';
|
|
2
2
|
export * from '@sigmacomputing/embed-sdk';
|
|
3
|
-
import * as react from 'react';
|
|
4
3
|
|
|
5
4
|
/**
|
|
6
5
|
* A hook that returns a ref to be used with an iframe element, and the loading and error state of the embed.
|
|
@@ -24,10 +23,10 @@ import * as react from 'react';
|
|
|
24
23
|
* ```
|
|
25
24
|
*/
|
|
26
25
|
declare function useSigmaIframe(): {
|
|
27
|
-
iframeRef:
|
|
26
|
+
iframeRef: React.RefObject<HTMLIFrameElement>;
|
|
28
27
|
loading: boolean;
|
|
29
28
|
error: WorkbookErrorEvent | null;
|
|
30
|
-
variables: Record<string, string> |
|
|
29
|
+
variables: Record<string, string> | undefined;
|
|
31
30
|
};
|
|
32
31
|
|
|
33
32
|
/**
|
|
@@ -147,7 +146,7 @@ declare function useTableCellSelect(iframeRef: React.RefObject<HTMLIFrameElement
|
|
|
147
146
|
declare function useWorkbookPublished(iframeRef: React.RefObject<HTMLIFrameElement>, onWorkbookPublished: (event: WorkbookPublishedEvent) => void): void;
|
|
148
147
|
declare function useWorkbookFullScreen(iframeRef: React.RefObject<HTMLIFrameElement>, onFullScreen: (event: WorkbookFullScreenEvent) => void): void;
|
|
149
148
|
declare function useWorkbookPageHeight(iframeRef: React.RefObject<HTMLIFrameElement>, onPageHeight: (event: WorkbookPageHeightEvent) => void): void;
|
|
150
|
-
declare function
|
|
149
|
+
declare function useWorkbookSelectedNode(iframeRef: React.RefObject<HTMLIFrameElement>, onPageSelectedNode: (event: WorkbookSelectedNodeEvent) => void): void;
|
|
151
150
|
declare function useWorkbookPivotTableCellSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onPivotTableCellSelect: (event: WorkbookPivotTableCellSelectEvent) => void): void;
|
|
152
151
|
declare function useWorkbookChartValueSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onChartValueSelect: (event: WorkbookChartValueSelectEvent) => void): void;
|
|
153
152
|
declare function useWorkbookCurrentVariables(iframeRef: React.RefObject<HTMLIFrameElement>, onCurrentVariables: (event: WorkbookCurrentVariablesEvent) => void): void;
|
|
@@ -157,6 +156,16 @@ declare function useWorkbookExploreKeyOnChange(iframeRef: React.RefObject<HTMLIF
|
|
|
157
156
|
declare function useWorkbookBookmarkOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onBookmarkChange: (event: WorkbookBookmarkOnChangeEvent) => void): void;
|
|
158
157
|
declare function useUrlOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onUrlChange: (event: UrlOnChangeEvent) => void): void;
|
|
159
158
|
declare function useWorkbookIdOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onIdChange: (event: WorkbookIdOnChangeEvent) => void): void;
|
|
159
|
+
/**
|
|
160
|
+
* Listen for an action outbound event, and execute the
|
|
161
|
+
* given callback when it occurs.
|
|
162
|
+
*
|
|
163
|
+
* You can setup your own outbound action by using the
|
|
164
|
+
* "Generate JavaScript event" action. For more details,
|
|
165
|
+
* see [docs](https://help.sigmacomputing.com/docs/intro-to-actions).
|
|
166
|
+
*
|
|
167
|
+
*/
|
|
168
|
+
declare function useActionOutbound(iframeRef: React.RefObject<HTMLIFrameElement>, onActionOutbound: (event: ActionOutboundEvent) => void): void;
|
|
160
169
|
|
|
161
170
|
declare function getWorkbookVariables(iframeRef: React.RefObject<HTMLIFrameElement>): void;
|
|
162
171
|
declare function updateWorkbookVariables(iframeRef: React.RefObject<HTMLIFrameElement>, variables: Record<string, string>): void;
|
|
@@ -166,4 +175,4 @@ declare function updateWorkbookFullscreen(iframeRef: React.RefObject<HTMLIFrameE
|
|
|
166
175
|
declare function updateWorkbookSelectedNodeId(iframeRef: React.RefObject<HTMLIFrameElement>, nodeId: string, nodeType: "element" | "page"): void;
|
|
167
176
|
declare function updateWorkbookSharingLink(iframeRef: React.RefObject<HTMLIFrameElement>, sharingLink: string | null, sharingExplorationLink?: string | null): void;
|
|
168
177
|
|
|
169
|
-
export { createWorkbookBookmark, getWorkbookVariables, updateWorkbookBookmark, updateWorkbookFullscreen, updateWorkbookSelectedNodeId, updateWorkbookSharingLink, updateWorkbookVariables, usePageHeight, useSigmaIframe, useTableCellSelect, useUrlOnChange, useVariableChange, useWorkbookBookmarkOnChange, useWorkbookBookmarkOnCreate, useWorkbookChartError, useWorkbookChartValueSelect, useWorkbookCurrentVariables, useWorkbookDataLoaded, useWorkbookError, useWorkbookExploreKeyOnChange, useWorkbookFullScreen, useWorkbookIdOnChange, useWorkbookLoaded, useWorkbookPageHeight,
|
|
178
|
+
export { createWorkbookBookmark, getWorkbookVariables, updateWorkbookBookmark, updateWorkbookFullscreen, updateWorkbookSelectedNodeId, updateWorkbookSharingLink, updateWorkbookVariables, useActionOutbound, usePageHeight, useSigmaIframe, useTableCellSelect, useUrlOnChange, useVariableChange, useWorkbookBookmarkOnChange, useWorkbookBookmarkOnCreate, useWorkbookChartError, useWorkbookChartValueSelect, useWorkbookCurrentVariables, useWorkbookDataLoaded, useWorkbookError, useWorkbookExploreKeyOnChange, useWorkbookFullScreen, useWorkbookIdOnChange, useWorkbookLoaded, useWorkbookPageHeight, useWorkbookPivotTableCellSelect, useWorkbookPublished, useWorkbookSelectedNode, useWorkbookVariables };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { WorkbookErrorEvent, WorkbookLoadedEvent, WorkbookDataLoadedEvent, WorkbookVariableOnChangeEvent, WorkbookTableCellSelectEvent, WorkbookPublishedEvent, WorkbookFullScreenEvent, WorkbookPageHeightEvent,
|
|
1
|
+
import { WorkbookErrorEvent, WorkbookLoadedEvent, WorkbookDataLoadedEvent, WorkbookVariableOnChangeEvent, WorkbookTableCellSelectEvent, WorkbookPublishedEvent, WorkbookFullScreenEvent, WorkbookPageHeightEvent, WorkbookSelectedNodeEvent, WorkbookPivotTableCellSelectEvent, WorkbookChartValueSelectEvent, WorkbookCurrentVariablesEvent, WorkbookBookmarkOnCreateEvent, WorkbookChartErrorEvent, WorkbookExploreKeyOnChangeEvent, WorkbookBookmarkOnChangeEvent, UrlOnChangeEvent, WorkbookIdOnChangeEvent, ActionOutboundEvent, WorkbookBookmarkCreateEvent } from '@sigmacomputing/embed-sdk';
|
|
2
2
|
export * from '@sigmacomputing/embed-sdk';
|
|
3
|
-
import * as react from 'react';
|
|
4
3
|
|
|
5
4
|
/**
|
|
6
5
|
* A hook that returns a ref to be used with an iframe element, and the loading and error state of the embed.
|
|
@@ -24,10 +23,10 @@ import * as react from 'react';
|
|
|
24
23
|
* ```
|
|
25
24
|
*/
|
|
26
25
|
declare function useSigmaIframe(): {
|
|
27
|
-
iframeRef:
|
|
26
|
+
iframeRef: React.RefObject<HTMLIFrameElement>;
|
|
28
27
|
loading: boolean;
|
|
29
28
|
error: WorkbookErrorEvent | null;
|
|
30
|
-
variables: Record<string, string> |
|
|
29
|
+
variables: Record<string, string> | undefined;
|
|
31
30
|
};
|
|
32
31
|
|
|
33
32
|
/**
|
|
@@ -147,7 +146,7 @@ declare function useTableCellSelect(iframeRef: React.RefObject<HTMLIFrameElement
|
|
|
147
146
|
declare function useWorkbookPublished(iframeRef: React.RefObject<HTMLIFrameElement>, onWorkbookPublished: (event: WorkbookPublishedEvent) => void): void;
|
|
148
147
|
declare function useWorkbookFullScreen(iframeRef: React.RefObject<HTMLIFrameElement>, onFullScreen: (event: WorkbookFullScreenEvent) => void): void;
|
|
149
148
|
declare function useWorkbookPageHeight(iframeRef: React.RefObject<HTMLIFrameElement>, onPageHeight: (event: WorkbookPageHeightEvent) => void): void;
|
|
150
|
-
declare function
|
|
149
|
+
declare function useWorkbookSelectedNode(iframeRef: React.RefObject<HTMLIFrameElement>, onPageSelectedNode: (event: WorkbookSelectedNodeEvent) => void): void;
|
|
151
150
|
declare function useWorkbookPivotTableCellSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onPivotTableCellSelect: (event: WorkbookPivotTableCellSelectEvent) => void): void;
|
|
152
151
|
declare function useWorkbookChartValueSelect(iframeRef: React.RefObject<HTMLIFrameElement>, onChartValueSelect: (event: WorkbookChartValueSelectEvent) => void): void;
|
|
153
152
|
declare function useWorkbookCurrentVariables(iframeRef: React.RefObject<HTMLIFrameElement>, onCurrentVariables: (event: WorkbookCurrentVariablesEvent) => void): void;
|
|
@@ -157,6 +156,16 @@ declare function useWorkbookExploreKeyOnChange(iframeRef: React.RefObject<HTMLIF
|
|
|
157
156
|
declare function useWorkbookBookmarkOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onBookmarkChange: (event: WorkbookBookmarkOnChangeEvent) => void): void;
|
|
158
157
|
declare function useUrlOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onUrlChange: (event: UrlOnChangeEvent) => void): void;
|
|
159
158
|
declare function useWorkbookIdOnChange(iframeRef: React.RefObject<HTMLIFrameElement>, onIdChange: (event: WorkbookIdOnChangeEvent) => void): void;
|
|
159
|
+
/**
|
|
160
|
+
* Listen for an action outbound event, and execute the
|
|
161
|
+
* given callback when it occurs.
|
|
162
|
+
*
|
|
163
|
+
* You can setup your own outbound action by using the
|
|
164
|
+
* "Generate JavaScript event" action. For more details,
|
|
165
|
+
* see [docs](https://help.sigmacomputing.com/docs/intro-to-actions).
|
|
166
|
+
*
|
|
167
|
+
*/
|
|
168
|
+
declare function useActionOutbound(iframeRef: React.RefObject<HTMLIFrameElement>, onActionOutbound: (event: ActionOutboundEvent) => void): void;
|
|
160
169
|
|
|
161
170
|
declare function getWorkbookVariables(iframeRef: React.RefObject<HTMLIFrameElement>): void;
|
|
162
171
|
declare function updateWorkbookVariables(iframeRef: React.RefObject<HTMLIFrameElement>, variables: Record<string, string>): void;
|
|
@@ -166,4 +175,4 @@ declare function updateWorkbookFullscreen(iframeRef: React.RefObject<HTMLIFrameE
|
|
|
166
175
|
declare function updateWorkbookSelectedNodeId(iframeRef: React.RefObject<HTMLIFrameElement>, nodeId: string, nodeType: "element" | "page"): void;
|
|
167
176
|
declare function updateWorkbookSharingLink(iframeRef: React.RefObject<HTMLIFrameElement>, sharingLink: string | null, sharingExplorationLink?: string | null): void;
|
|
168
177
|
|
|
169
|
-
export { createWorkbookBookmark, getWorkbookVariables, updateWorkbookBookmark, updateWorkbookFullscreen, updateWorkbookSelectedNodeId, updateWorkbookSharingLink, updateWorkbookVariables, usePageHeight, useSigmaIframe, useTableCellSelect, useUrlOnChange, useVariableChange, useWorkbookBookmarkOnChange, useWorkbookBookmarkOnCreate, useWorkbookChartError, useWorkbookChartValueSelect, useWorkbookCurrentVariables, useWorkbookDataLoaded, useWorkbookError, useWorkbookExploreKeyOnChange, useWorkbookFullScreen, useWorkbookIdOnChange, useWorkbookLoaded, useWorkbookPageHeight,
|
|
178
|
+
export { createWorkbookBookmark, getWorkbookVariables, updateWorkbookBookmark, updateWorkbookFullscreen, updateWorkbookSelectedNodeId, updateWorkbookSharingLink, updateWorkbookVariables, useActionOutbound, usePageHeight, useSigmaIframe, useTableCellSelect, useUrlOnChange, useVariableChange, useWorkbookBookmarkOnChange, useWorkbookBookmarkOnCreate, useWorkbookChartError, useWorkbookChartValueSelect, useWorkbookCurrentVariables, useWorkbookDataLoaded, useWorkbookError, useWorkbookExploreKeyOnChange, useWorkbookFullScreen, useWorkbookIdOnChange, useWorkbookLoaded, useWorkbookPageHeight, useWorkbookPivotTableCellSelect, useWorkbookPublished, useWorkbookSelectedNode, useWorkbookVariables };
|
package/dist/index.js
CHANGED
|
@@ -27,6 +27,7 @@ __export(src_exports, {
|
|
|
27
27
|
updateWorkbookSelectedNodeId: () => updateWorkbookSelectedNodeId,
|
|
28
28
|
updateWorkbookSharingLink: () => updateWorkbookSharingLink,
|
|
29
29
|
updateWorkbookVariables: () => updateWorkbookVariables,
|
|
30
|
+
useActionOutbound: () => useActionOutbound,
|
|
30
31
|
usePageHeight: () => usePageHeight,
|
|
31
32
|
useSigmaIframe: () => useSigmaIframe,
|
|
32
33
|
useTableCellSelect: () => useTableCellSelect,
|
|
@@ -44,9 +45,9 @@ __export(src_exports, {
|
|
|
44
45
|
useWorkbookIdOnChange: () => useWorkbookIdOnChange,
|
|
45
46
|
useWorkbookLoaded: () => useWorkbookLoaded,
|
|
46
47
|
useWorkbookPageHeight: () => useWorkbookPageHeight,
|
|
47
|
-
useWorkbookPageSelectedNode: () => useWorkbookPageSelectedNode,
|
|
48
48
|
useWorkbookPivotTableCellSelect: () => useWorkbookPivotTableCellSelect,
|
|
49
49
|
useWorkbookPublished: () => useWorkbookPublished,
|
|
50
|
+
useWorkbookSelectedNode: () => useWorkbookSelectedNode,
|
|
50
51
|
useWorkbookVariables: () => useWorkbookVariables
|
|
51
52
|
});
|
|
52
53
|
module.exports = __toCommonJS(src_exports);
|
|
@@ -161,13 +162,13 @@ function useWorkbookPageHeight(iframeRef, onPageHeight) {
|
|
|
161
162
|
return () => window.removeEventListener("message", listener);
|
|
162
163
|
}, [iframeRef, onPageHeight]);
|
|
163
164
|
}
|
|
164
|
-
function
|
|
165
|
+
function useWorkbookSelectedNode(iframeRef, onPageSelectedNode) {
|
|
165
166
|
(0, import_react.useEffect)(() => {
|
|
166
167
|
const listener = (event) => {
|
|
167
168
|
if (!iframeRef.current) {
|
|
168
169
|
return;
|
|
169
170
|
}
|
|
170
|
-
(0, import_embed_sdk.
|
|
171
|
+
(0, import_embed_sdk.workbookSelectedNodeListener)(
|
|
171
172
|
event,
|
|
172
173
|
iframeRef.current,
|
|
173
174
|
onPageSelectedNode
|
|
@@ -309,12 +310,24 @@ function useWorkbookIdOnChange(iframeRef, onIdChange) {
|
|
|
309
310
|
return () => window.removeEventListener("message", listener);
|
|
310
311
|
}, [iframeRef, onIdChange]);
|
|
311
312
|
}
|
|
313
|
+
function useActionOutbound(iframeRef, onActionOutbound) {
|
|
314
|
+
(0, import_react.useEffect)(() => {
|
|
315
|
+
const listener = (event) => {
|
|
316
|
+
if (!iframeRef.current) {
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
319
|
+
(0, import_embed_sdk.actionOutboundListener)(event, iframeRef.current, onActionOutbound);
|
|
320
|
+
};
|
|
321
|
+
window.addEventListener("message", listener);
|
|
322
|
+
return () => window.removeEventListener("message", listener);
|
|
323
|
+
}, [iframeRef, onActionOutbound]);
|
|
324
|
+
}
|
|
312
325
|
|
|
313
326
|
// src/use-sigma-iframe.ts
|
|
314
327
|
function useSigmaIframe() {
|
|
315
328
|
const iframeRef = (0, import_react2.useRef)(null);
|
|
316
329
|
const [loading, setLoading] = (0, import_react2.useState)(true);
|
|
317
|
-
const [variables, setVariables] = (0, import_react2.useState)();
|
|
330
|
+
const [variables, setVariables] = (0, import_react2.useState)(void 0);
|
|
318
331
|
const [error, setError] = (0, import_react2.useState)(null);
|
|
319
332
|
const loadingCallback = (0, import_react2.useCallback)((event) => {
|
|
320
333
|
setLoading(false);
|
|
@@ -445,6 +458,7 @@ function updateWorkbookSharingLink(iframeRef, sharingLink, sharingExplorationLin
|
|
|
445
458
|
updateWorkbookSelectedNodeId,
|
|
446
459
|
updateWorkbookSharingLink,
|
|
447
460
|
updateWorkbookVariables,
|
|
461
|
+
useActionOutbound,
|
|
448
462
|
usePageHeight,
|
|
449
463
|
useSigmaIframe,
|
|
450
464
|
useTableCellSelect,
|
|
@@ -462,8 +476,8 @@ function updateWorkbookSharingLink(iframeRef, sharingLink, sharingExplorationLin
|
|
|
462
476
|
useWorkbookIdOnChange,
|
|
463
477
|
useWorkbookLoaded,
|
|
464
478
|
useWorkbookPageHeight,
|
|
465
|
-
useWorkbookPageSelectedNode,
|
|
466
479
|
useWorkbookPivotTableCellSelect,
|
|
467
480
|
useWorkbookPublished,
|
|
481
|
+
useWorkbookSelectedNode,
|
|
468
482
|
useWorkbookVariables
|
|
469
483
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
workbookFullScreenListener,
|
|
13
13
|
workbookPageHeightListener,
|
|
14
14
|
workbookChartValueSelectListener,
|
|
15
|
-
|
|
15
|
+
workbookSelectedNodeListener,
|
|
16
16
|
workbookPivotTableCellSelectListener,
|
|
17
17
|
workbookBookmarkCreateListener,
|
|
18
18
|
workbookCurrentVariablesListener,
|
|
@@ -20,7 +20,8 @@ import {
|
|
|
20
20
|
workbookExploreKeyOnChangeListener,
|
|
21
21
|
workbookBookmarkOnChangeListener,
|
|
22
22
|
urlOnChangeListener,
|
|
23
|
-
workbookIdOnChangeListener
|
|
23
|
+
workbookIdOnChangeListener,
|
|
24
|
+
actionOutboundListener
|
|
24
25
|
} from "@sigmacomputing/embed-sdk";
|
|
25
26
|
import { useEffect } from "react";
|
|
26
27
|
function useWorkbookLoaded(iframeRef, onLoaded) {
|
|
@@ -127,13 +128,13 @@ function useWorkbookPageHeight(iframeRef, onPageHeight) {
|
|
|
127
128
|
return () => window.removeEventListener("message", listener);
|
|
128
129
|
}, [iframeRef, onPageHeight]);
|
|
129
130
|
}
|
|
130
|
-
function
|
|
131
|
+
function useWorkbookSelectedNode(iframeRef, onPageSelectedNode) {
|
|
131
132
|
useEffect(() => {
|
|
132
133
|
const listener = (event) => {
|
|
133
134
|
if (!iframeRef.current) {
|
|
134
135
|
return;
|
|
135
136
|
}
|
|
136
|
-
|
|
137
|
+
workbookSelectedNodeListener(
|
|
137
138
|
event,
|
|
138
139
|
iframeRef.current,
|
|
139
140
|
onPageSelectedNode
|
|
@@ -275,12 +276,24 @@ function useWorkbookIdOnChange(iframeRef, onIdChange) {
|
|
|
275
276
|
return () => window.removeEventListener("message", listener);
|
|
276
277
|
}, [iframeRef, onIdChange]);
|
|
277
278
|
}
|
|
279
|
+
function useActionOutbound(iframeRef, onActionOutbound) {
|
|
280
|
+
useEffect(() => {
|
|
281
|
+
const listener = (event) => {
|
|
282
|
+
if (!iframeRef.current) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
actionOutboundListener(event, iframeRef.current, onActionOutbound);
|
|
286
|
+
};
|
|
287
|
+
window.addEventListener("message", listener);
|
|
288
|
+
return () => window.removeEventListener("message", listener);
|
|
289
|
+
}, [iframeRef, onActionOutbound]);
|
|
290
|
+
}
|
|
278
291
|
|
|
279
292
|
// src/use-sigma-iframe.ts
|
|
280
293
|
function useSigmaIframe() {
|
|
281
294
|
const iframeRef = useRef(null);
|
|
282
295
|
const [loading, setLoading] = useState(true);
|
|
283
|
-
const [variables, setVariables] = useState();
|
|
296
|
+
const [variables, setVariables] = useState(void 0);
|
|
284
297
|
const [error, setError] = useState(null);
|
|
285
298
|
const loadingCallback = useCallback((event) => {
|
|
286
299
|
setLoading(false);
|
|
@@ -422,6 +435,7 @@ export {
|
|
|
422
435
|
updateWorkbookSelectedNodeId,
|
|
423
436
|
updateWorkbookSharingLink,
|
|
424
437
|
updateWorkbookVariables,
|
|
438
|
+
useActionOutbound,
|
|
425
439
|
usePageHeight,
|
|
426
440
|
useSigmaIframe,
|
|
427
441
|
useTableCellSelect,
|
|
@@ -439,8 +453,8 @@ export {
|
|
|
439
453
|
useWorkbookIdOnChange,
|
|
440
454
|
useWorkbookLoaded,
|
|
441
455
|
useWorkbookPageHeight,
|
|
442
|
-
useWorkbookPageSelectedNode,
|
|
443
456
|
useWorkbookPivotTableCellSelect,
|
|
444
457
|
useWorkbookPublished,
|
|
458
|
+
useWorkbookSelectedNode,
|
|
445
459
|
useWorkbookVariables
|
|
446
460
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sigmacomputing/react-embed-sdk",
|
|
3
3
|
"author": "sigmacomputing",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.5.0",
|
|
5
5
|
"description": "React JavaScript SDK to interact with Sigma Computing's Embed API",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"@sigmacomputing/typescript-config": "0.0.0"
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@sigmacomputing/embed-sdk": "0.
|
|
42
|
+
"@sigmacomputing/embed-sdk": "0.5.0"
|
|
43
43
|
},
|
|
44
44
|
"scripts": {
|
|
45
45
|
"prepublish": "pnpm build",
|