@sigmacomputing/react-embed-sdk 0.3.2 → 0.4.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/LICENSE +21 -0
- package/README.md +327 -0
- package/dist/index.d.mts +6 -7
- package/dist/index.d.ts +6 -7
- package/dist/index.js +5 -5
- package/dist/index.mjs +5 -5
- package/package.json +21 -6
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Sigma Computing Inc.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
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, 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;
|
|
@@ -164,6 +163,6 @@ declare function createWorkbookBookmark(iframeRef: React.RefObject<HTMLIFrameEle
|
|
|
164
163
|
declare function updateWorkbookBookmark(iframeRef: React.RefObject<HTMLIFrameElement>): void;
|
|
165
164
|
declare function updateWorkbookFullscreen(iframeRef: React.RefObject<HTMLIFrameElement>, nodeId: string | null): void;
|
|
166
165
|
declare function updateWorkbookSelectedNodeId(iframeRef: React.RefObject<HTMLIFrameElement>, nodeId: string, nodeType: "element" | "page"): void;
|
|
167
|
-
declare function updateWorkbookSharingLink(iframeRef: React.RefObject<HTMLIFrameElement>, sharingLink: string | null, sharingExplorationLink
|
|
166
|
+
declare function updateWorkbookSharingLink(iframeRef: React.RefObject<HTMLIFrameElement>, sharingLink: string | null, sharingExplorationLink?: string | null): void;
|
|
168
167
|
|
|
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,
|
|
168
|
+
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, 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, 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;
|
|
@@ -164,6 +163,6 @@ declare function createWorkbookBookmark(iframeRef: React.RefObject<HTMLIFrameEle
|
|
|
164
163
|
declare function updateWorkbookBookmark(iframeRef: React.RefObject<HTMLIFrameElement>): void;
|
|
165
164
|
declare function updateWorkbookFullscreen(iframeRef: React.RefObject<HTMLIFrameElement>, nodeId: string | null): void;
|
|
166
165
|
declare function updateWorkbookSelectedNodeId(iframeRef: React.RefObject<HTMLIFrameElement>, nodeId: string, nodeType: "element" | "page"): void;
|
|
167
|
-
declare function updateWorkbookSharingLink(iframeRef: React.RefObject<HTMLIFrameElement>, sharingLink: string | null, sharingExplorationLink
|
|
166
|
+
declare function updateWorkbookSharingLink(iframeRef: React.RefObject<HTMLIFrameElement>, sharingLink: string | null, sharingExplorationLink?: string | null): void;
|
|
168
167
|
|
|
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,
|
|
168
|
+
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, useWorkbookPivotTableCellSelect, useWorkbookPublished, useWorkbookSelectedNode, useWorkbookVariables };
|
package/dist/index.js
CHANGED
|
@@ -44,9 +44,9 @@ __export(src_exports, {
|
|
|
44
44
|
useWorkbookIdOnChange: () => useWorkbookIdOnChange,
|
|
45
45
|
useWorkbookLoaded: () => useWorkbookLoaded,
|
|
46
46
|
useWorkbookPageHeight: () => useWorkbookPageHeight,
|
|
47
|
-
useWorkbookPageSelectedNode: () => useWorkbookPageSelectedNode,
|
|
48
47
|
useWorkbookPivotTableCellSelect: () => useWorkbookPivotTableCellSelect,
|
|
49
48
|
useWorkbookPublished: () => useWorkbookPublished,
|
|
49
|
+
useWorkbookSelectedNode: () => useWorkbookSelectedNode,
|
|
50
50
|
useWorkbookVariables: () => useWorkbookVariables
|
|
51
51
|
});
|
|
52
52
|
module.exports = __toCommonJS(src_exports);
|
|
@@ -161,13 +161,13 @@ function useWorkbookPageHeight(iframeRef, onPageHeight) {
|
|
|
161
161
|
return () => window.removeEventListener("message", listener);
|
|
162
162
|
}, [iframeRef, onPageHeight]);
|
|
163
163
|
}
|
|
164
|
-
function
|
|
164
|
+
function useWorkbookSelectedNode(iframeRef, onPageSelectedNode) {
|
|
165
165
|
(0, import_react.useEffect)(() => {
|
|
166
166
|
const listener = (event) => {
|
|
167
167
|
if (!iframeRef.current) {
|
|
168
168
|
return;
|
|
169
169
|
}
|
|
170
|
-
(0, import_embed_sdk.
|
|
170
|
+
(0, import_embed_sdk.workbookSelectedNodeListener)(
|
|
171
171
|
event,
|
|
172
172
|
iframeRef.current,
|
|
173
173
|
onPageSelectedNode
|
|
@@ -314,7 +314,7 @@ function useWorkbookIdOnChange(iframeRef, onIdChange) {
|
|
|
314
314
|
function useSigmaIframe() {
|
|
315
315
|
const iframeRef = (0, import_react2.useRef)(null);
|
|
316
316
|
const [loading, setLoading] = (0, import_react2.useState)(true);
|
|
317
|
-
const [variables, setVariables] = (0, import_react2.useState)();
|
|
317
|
+
const [variables, setVariables] = (0, import_react2.useState)(void 0);
|
|
318
318
|
const [error, setError] = (0, import_react2.useState)(null);
|
|
319
319
|
const loadingCallback = (0, import_react2.useCallback)((event) => {
|
|
320
320
|
setLoading(false);
|
|
@@ -462,8 +462,8 @@ function updateWorkbookSharingLink(iframeRef, sharingLink, sharingExplorationLin
|
|
|
462
462
|
useWorkbookIdOnChange,
|
|
463
463
|
useWorkbookLoaded,
|
|
464
464
|
useWorkbookPageHeight,
|
|
465
|
-
useWorkbookPageSelectedNode,
|
|
466
465
|
useWorkbookPivotTableCellSelect,
|
|
467
466
|
useWorkbookPublished,
|
|
467
|
+
useWorkbookSelectedNode,
|
|
468
468
|
useWorkbookVariables
|
|
469
469
|
});
|
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,
|
|
@@ -127,13 +127,13 @@ function useWorkbookPageHeight(iframeRef, onPageHeight) {
|
|
|
127
127
|
return () => window.removeEventListener("message", listener);
|
|
128
128
|
}, [iframeRef, onPageHeight]);
|
|
129
129
|
}
|
|
130
|
-
function
|
|
130
|
+
function useWorkbookSelectedNode(iframeRef, onPageSelectedNode) {
|
|
131
131
|
useEffect(() => {
|
|
132
132
|
const listener = (event) => {
|
|
133
133
|
if (!iframeRef.current) {
|
|
134
134
|
return;
|
|
135
135
|
}
|
|
136
|
-
|
|
136
|
+
workbookSelectedNodeListener(
|
|
137
137
|
event,
|
|
138
138
|
iframeRef.current,
|
|
139
139
|
onPageSelectedNode
|
|
@@ -280,7 +280,7 @@ function useWorkbookIdOnChange(iframeRef, onIdChange) {
|
|
|
280
280
|
function useSigmaIframe() {
|
|
281
281
|
const iframeRef = useRef(null);
|
|
282
282
|
const [loading, setLoading] = useState(true);
|
|
283
|
-
const [variables, setVariables] = useState();
|
|
283
|
+
const [variables, setVariables] = useState(void 0);
|
|
284
284
|
const [error, setError] = useState(null);
|
|
285
285
|
const loadingCallback = useCallback((event) => {
|
|
286
286
|
setLoading(false);
|
|
@@ -439,8 +439,8 @@ export {
|
|
|
439
439
|
useWorkbookIdOnChange,
|
|
440
440
|
useWorkbookLoaded,
|
|
441
441
|
useWorkbookPageHeight,
|
|
442
|
-
useWorkbookPageSelectedNode,
|
|
443
442
|
useWorkbookPivotTableCellSelect,
|
|
444
443
|
useWorkbookPublished,
|
|
444
|
+
useWorkbookSelectedNode,
|
|
445
445
|
useWorkbookVariables
|
|
446
446
|
};
|
package/package.json
CHANGED
|
@@ -1,9 +1,24 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sigmacomputing/react-embed-sdk",
|
|
3
|
-
"version": "0.3.2",
|
|
4
|
-
"description": "React JavaScript SDK to interact with Sigma Computing's Embed API",
|
|
5
3
|
"author": "sigmacomputing",
|
|
6
|
-
"
|
|
4
|
+
"version": "0.4.0",
|
|
5
|
+
"description": "React JavaScript SDK to interact with Sigma Computing's Embed API",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/sigmacomputing/embed-sdk.git",
|
|
10
|
+
"directory": "packages/react-embed-sdk"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://sigmacomputing.com",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/sigmacomputing/embed-sdk/issues"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"embed",
|
|
18
|
+
"sdk",
|
|
19
|
+
"sigma",
|
|
20
|
+
"react"
|
|
21
|
+
],
|
|
7
22
|
"exports": {
|
|
8
23
|
"import": "./dist/index.mjs",
|
|
9
24
|
"require": "./dist/index.js",
|
|
@@ -20,11 +35,11 @@
|
|
|
20
35
|
"@types/react": "^18.3.3",
|
|
21
36
|
"react": "^18.3.1",
|
|
22
37
|
"react-dom": "^18.3.1",
|
|
23
|
-
"@sigmacomputing/
|
|
24
|
-
"@sigmacomputing/
|
|
38
|
+
"@sigmacomputing/typescript-config": "0.0.0",
|
|
39
|
+
"@sigmacomputing/eslint-config": "0.0.0"
|
|
25
40
|
},
|
|
26
41
|
"dependencies": {
|
|
27
|
-
"@sigmacomputing/embed-sdk": "0.
|
|
42
|
+
"@sigmacomputing/embed-sdk": "0.4.0"
|
|
28
43
|
},
|
|
29
44
|
"scripts": {
|
|
30
45
|
"prepublish": "pnpm build",
|