@thoughtspot/visual-embed-sdk 1.42.1-alpha.5 → 1.42.1-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/package.json +2 -2
- package/cjs/src/api-intercept.d.ts +4 -5
- package/cjs/src/api-intercept.d.ts.map +1 -1
- package/cjs/src/api-intercept.js +10 -11
- package/cjs/src/api-intercept.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +2 -0
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/index.d.ts +2 -2
- package/cjs/src/index.d.ts.map +1 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/react/all-types-export.d.ts +2 -1
- package/cjs/src/react/all-types-export.d.ts.map +1 -1
- package/cjs/src/react/all-types-export.js +2 -3
- package/cjs/src/react/all-types-export.js.map +1 -1
- package/cjs/src/react/all-types-export.spec.js +8 -0
- package/cjs/src/react/all-types-export.spec.js.map +1 -1
- package/cjs/src/react/index.d.ts +2 -1
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +1 -2
- package/cjs/src/react/index.js.map +1 -1
- package/dist/index-CFNZIcKr.js +7447 -0
- package/dist/index-CqKTa1Fe.js +7447 -0
- package/dist/src/api-intercept.d.ts +4 -5
- package/dist/src/api-intercept.d.ts.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/react/all-types-export.d.ts +2 -1
- package/dist/src/react/all-types-export.d.ts.map +1 -1
- package/dist/src/react/index.d.ts +2 -1
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +14 -16
- package/dist/tsembed-react.js +13 -15
- package/dist/tsembed.es.js +13 -14
- package/dist/tsembed.js +12 -13
- package/lib/package.json +2 -2
- package/lib/src/api-intercept.d.ts +4 -5
- package/lib/src/api-intercept.d.ts.map +1 -1
- package/lib/src/api-intercept.js +10 -11
- package/lib/src/api-intercept.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +2 -0
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/index.d.ts +2 -2
- package/lib/src/index.d.ts.map +1 -1
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/all-types-export.d.ts +2 -1
- package/lib/src/react/all-types-export.d.ts.map +1 -1
- package/lib/src/react/all-types-export.js +2 -2
- package/lib/src/react/all-types-export.js.map +1 -1
- package/lib/src/react/all-types-export.spec.js +8 -0
- package/lib/src/react/all-types-export.spec.js.map +1 -1
- package/lib/src/react/index.d.ts +2 -1
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +3 -4
- package/lib/src/react/index.js.map +1 -1
- package/package.json +2 -2
- package/src/api-intercept.ts +9 -9
- package/src/embed/ts-embed.spec.ts +2 -0
- package/src/index.ts +2 -3
- package/src/react/all-types-export.spec.ts +9 -1
- package/src/react/all-types-export.ts +10 -7
- package/src/react/index.tsx +155 -130
package/src/react/index.tsx
CHANGED
|
@@ -10,101 +10,125 @@ import { SearchEmbed as _SearchEmbed, SearchViewConfig } from '../embed/search';
|
|
|
10
10
|
import { AppEmbed as _AppEmbed, AppViewConfig } from '../embed/app';
|
|
11
11
|
import { LiveboardEmbed as _LiveboardEmbed, LiveboardViewConfig } from '../embed/liveboard';
|
|
12
12
|
import { TsEmbed } from '../embed/ts-embed';
|
|
13
|
-
import {
|
|
13
|
+
import {
|
|
14
|
+
SpotterAgentEmbed as _SpotterAgentEmbed,
|
|
15
|
+
SpotterAgentEmbedViewConfig,
|
|
16
|
+
ConversationMessage as _ConversationMessage,
|
|
17
|
+
SpotterAgentMessageViewConfig,
|
|
18
|
+
} from '../embed/bodyless-conversation';
|
|
14
19
|
|
|
15
20
|
import { EmbedConfig, EmbedEvent, AllEmbedViewConfig } from '../types';
|
|
16
21
|
import { EmbedProps, getViewPropsAndListeners } from './util';
|
|
17
|
-
import {
|
|
22
|
+
import {
|
|
23
|
+
SpotterEmbed as _SpotterEmbed,
|
|
24
|
+
SpotterEmbedViewConfig,
|
|
25
|
+
ConversationEmbed as _ConversationEmbed,
|
|
26
|
+
ConversationViewConfig,
|
|
27
|
+
} from '../embed/conversation';
|
|
18
28
|
import { init } from '../embed/base';
|
|
19
29
|
import { ERROR_MESSAGE } from '../errors';
|
|
20
30
|
|
|
21
|
-
const componentFactory = <
|
|
31
|
+
const componentFactory = <
|
|
32
|
+
T extends typeof TsEmbed,
|
|
33
|
+
U extends EmbedProps,
|
|
34
|
+
V extends AllEmbedViewConfig
|
|
35
|
+
>(
|
|
22
36
|
EmbedConstructor: T,
|
|
23
37
|
// isPreRenderedComponent: Specifies whether the component being returned is
|
|
24
38
|
// intended for preRendering. If set to true, the component will call the
|
|
25
39
|
// Embed.preRender() method instead of the usual render method, and it will
|
|
26
40
|
// not be destroyed when the component is unmounted.
|
|
27
41
|
isPreRenderedComponent = false,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
tsEmbed.preRender();
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
const handleDefaultRendering = (tsEmbed: InstanceType<T>) => {
|
|
54
|
-
// if component is connected to a preRendered component
|
|
55
|
-
if (props.preRenderId) {
|
|
56
|
-
tsEmbed.showPreRender();
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
42
|
+
) =>
|
|
43
|
+
React.forwardRef<InstanceType<T>, U>(
|
|
44
|
+
(props: U, forwardedRef: React.MutableRefObject<InstanceType<T>>) => {
|
|
45
|
+
const ref = React.useRef<HTMLDivElement>(null);
|
|
46
|
+
const { className, style, ...embedProps } = props;
|
|
47
|
+
const { viewConfig, listeners } = getViewPropsAndListeners<
|
|
48
|
+
Omit<U, 'className' | 'style'>,
|
|
49
|
+
V
|
|
50
|
+
>(embedProps);
|
|
51
|
+
|
|
52
|
+
const handleDestroy = (tsEmbed: InstanceType<T>) => {
|
|
53
|
+
// do not destroy if it is a preRender component
|
|
54
|
+
if (isPreRenderedComponent) return;
|
|
55
|
+
|
|
56
|
+
// if component is connected to a preRendered component
|
|
57
|
+
if (props.preRenderId) {
|
|
58
|
+
tsEmbed.hidePreRender();
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
tsEmbed.destroy();
|
|
63
|
+
};
|
|
59
64
|
|
|
60
|
-
tsEmbed
|
|
61
|
-
|
|
65
|
+
const handlePreRenderRendering = (tsEmbed: InstanceType<T>) => {
|
|
66
|
+
tsEmbed.preRender();
|
|
67
|
+
};
|
|
62
68
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
};
|
|
69
|
+
const handleDefaultRendering = (tsEmbed: InstanceType<T>) => {
|
|
70
|
+
// if component is connected to a preRendered component
|
|
71
|
+
if (props.preRenderId) {
|
|
72
|
+
tsEmbed.showPreRender();
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
70
75
|
|
|
71
|
-
|
|
72
|
-
const tsEmbed = new EmbedConstructor(
|
|
73
|
-
ref!.current,
|
|
74
|
-
deepMerge(
|
|
75
|
-
{
|
|
76
|
-
insertAsSibling: viewConfig.insertAsSibling,
|
|
77
|
-
frameParams: {
|
|
78
|
-
class: viewConfig.insertAsSibling ? className || '' : '',
|
|
79
|
-
},
|
|
80
|
-
},
|
|
81
|
-
viewConfig,
|
|
82
|
-
),
|
|
83
|
-
) as InstanceType<T>;
|
|
84
|
-
Object.keys(listeners).forEach((eventName) => {
|
|
85
|
-
tsEmbed.on(eventName as EmbedEvent, listeners[eventName as EmbedEvent]);
|
|
86
|
-
});
|
|
87
|
-
handleRendering(tsEmbed);
|
|
88
|
-
if (forwardedRef) {
|
|
89
|
-
// eslint-disable-next-line no-param-reassign
|
|
90
|
-
forwardedRef.current = tsEmbed;
|
|
91
|
-
}
|
|
92
|
-
return () => {
|
|
93
|
-
handleDestroy(tsEmbed);
|
|
76
|
+
tsEmbed.render();
|
|
94
77
|
};
|
|
95
|
-
}, [viewConfig, listeners]);
|
|
96
78
|
|
|
97
|
-
|
|
79
|
+
const handleRendering = (tsEmbed: InstanceType<T>) => {
|
|
80
|
+
if (isPreRenderedComponent) {
|
|
81
|
+
handlePreRenderRendering(tsEmbed);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
handleDefaultRendering(tsEmbed);
|
|
85
|
+
};
|
|
98
86
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
87
|
+
useDeepCompareEffect(() => {
|
|
88
|
+
const tsEmbed = new EmbedConstructor(
|
|
89
|
+
ref!.current,
|
|
90
|
+
deepMerge(
|
|
91
|
+
{
|
|
92
|
+
insertAsSibling: viewConfig.insertAsSibling,
|
|
93
|
+
frameParams: {
|
|
94
|
+
class: viewConfig.insertAsSibling ? className || '' : '',
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
viewConfig,
|
|
98
|
+
),
|
|
99
|
+
) as InstanceType<T>;
|
|
100
|
+
Object.keys(listeners).forEach((eventName) => {
|
|
101
|
+
tsEmbed.on(eventName as EmbedEvent, listeners[eventName as EmbedEvent]);
|
|
102
|
+
});
|
|
103
|
+
handleRendering(tsEmbed);
|
|
104
|
+
if (forwardedRef) {
|
|
105
|
+
forwardedRef.current = tsEmbed;
|
|
106
|
+
}
|
|
107
|
+
return () => {
|
|
108
|
+
handleDestroy(tsEmbed);
|
|
109
|
+
};
|
|
110
|
+
}, [viewConfig, listeners]);
|
|
111
|
+
|
|
112
|
+
const preRenderStyles = isPreRenderedComponent ? { display: 'none' } : {};
|
|
113
|
+
|
|
114
|
+
return viewConfig.insertAsSibling ? (
|
|
115
|
+
<span
|
|
116
|
+
data-testid="tsEmbed"
|
|
117
|
+
ref={ref}
|
|
118
|
+
style={{ position: 'absolute', ...preRenderStyles }}
|
|
119
|
+
></span>
|
|
120
|
+
) : (
|
|
121
|
+
<div
|
|
122
|
+
data-testid="tsEmbed"
|
|
123
|
+
ref={ref}
|
|
124
|
+
style={{ ...style, ...preRenderStyles }}
|
|
125
|
+
className={`ts-embed-container ${className}`}
|
|
126
|
+
></div>
|
|
127
|
+
);
|
|
128
|
+
},
|
|
129
|
+
);
|
|
106
130
|
|
|
107
|
-
interface SearchProps extends EmbedProps, SearchViewConfig {
|
|
131
|
+
interface SearchProps extends EmbedProps, SearchViewConfig {}
|
|
108
132
|
|
|
109
133
|
interface PreRenderProps {
|
|
110
134
|
/**
|
|
@@ -158,7 +182,7 @@ export const PreRenderedSearchEmbed = componentFactory<
|
|
|
158
182
|
SearchViewConfig
|
|
159
183
|
>(_SearchEmbed, true);
|
|
160
184
|
|
|
161
|
-
interface AppProps extends EmbedProps, AppViewConfig {
|
|
185
|
+
interface AppProps extends EmbedProps, AppViewConfig {}
|
|
162
186
|
|
|
163
187
|
/**
|
|
164
188
|
* React component for Full app Embed.
|
|
@@ -199,7 +223,7 @@ export const PreRenderedAppEmbed = componentFactory<
|
|
|
199
223
|
AppViewConfig
|
|
200
224
|
>(_AppEmbed, true);
|
|
201
225
|
|
|
202
|
-
interface LiveboardProps extends EmbedProps, LiveboardViewConfig {
|
|
226
|
+
interface LiveboardProps extends EmbedProps, LiveboardViewConfig {}
|
|
203
227
|
|
|
204
228
|
/**
|
|
205
229
|
* React component for Liveboard embed.
|
|
@@ -252,7 +276,7 @@ export const PreRenderedLiveboardEmbed = componentFactory<
|
|
|
252
276
|
|
|
253
277
|
export const PreRenderedPinboardEmbed = PreRenderedLiveboardEmbed;
|
|
254
278
|
|
|
255
|
-
interface SearchBarEmbedProps extends EmbedProps, SearchBarViewConfig {
|
|
279
|
+
interface SearchBarEmbedProps extends EmbedProps, SearchBarViewConfig {}
|
|
256
280
|
|
|
257
281
|
/**
|
|
258
282
|
* React component for Search bar embed.
|
|
@@ -296,7 +320,7 @@ export const PreRenderedSearchBarEmbed = componentFactory<
|
|
|
296
320
|
SearchBarViewConfig
|
|
297
321
|
>(_SearchBarEmbed, true);
|
|
298
322
|
|
|
299
|
-
interface SageEmbedProps extends EmbedProps, SageViewConfig {
|
|
323
|
+
interface SageEmbedProps extends EmbedProps, SageViewConfig {}
|
|
300
324
|
|
|
301
325
|
/**
|
|
302
326
|
* React component for LLM based search Sage embed.
|
|
@@ -338,8 +362,8 @@ export const PreRenderedSageEmbed = componentFactory<
|
|
|
338
362
|
SageViewConfig
|
|
339
363
|
>(_SageEmbed, true);
|
|
340
364
|
|
|
341
|
-
interface SpotterEmbedProps extends EmbedProps, SpotterEmbedViewConfig {
|
|
342
|
-
interface ConversationEmbedProps extends EmbedProps, ConversationViewConfig {
|
|
365
|
+
interface SpotterEmbedProps extends EmbedProps, SpotterEmbedViewConfig {}
|
|
366
|
+
interface ConversationEmbedProps extends EmbedProps, ConversationViewConfig {}
|
|
343
367
|
|
|
344
368
|
/**
|
|
345
369
|
* React component for LLM based conversation BI.
|
|
@@ -362,7 +386,6 @@ export const SpotterEmbed = componentFactory<
|
|
|
362
386
|
SpotterEmbedViewConfig
|
|
363
387
|
>(_SpotterEmbed);
|
|
364
388
|
|
|
365
|
-
|
|
366
389
|
/**
|
|
367
390
|
* React component for LLM based conversation BI.
|
|
368
391
|
* @deprecated from SDK: 1.39.0 | ThoughtSpot: 10.10.0.cl
|
|
@@ -402,27 +425,27 @@ export const ConversationMessage = componentFactory<
|
|
|
402
425
|
type SpotterMessageProps = {
|
|
403
426
|
message: SpotterAgentMessageViewConfig;
|
|
404
427
|
query?: string;
|
|
405
|
-
|
|
428
|
+
} & Omit<EmbedProps, keyof SpotterAgentMessageViewConfig>;
|
|
406
429
|
|
|
407
430
|
/**
|
|
408
431
|
* React component for displaying individual conversation messages from SpotterAgent.
|
|
409
|
-
*
|
|
432
|
+
*
|
|
410
433
|
* This component renders a single message response from your ThoughtSpot conversation,
|
|
411
434
|
* showing charts, visualizations, or text responses based on the user's query.
|
|
412
|
-
*
|
|
435
|
+
*
|
|
413
436
|
* @example
|
|
414
437
|
* ```tsx
|
|
415
438
|
* const { sendMessage } = useSpotterAgent({ worksheetId: 'worksheetId' });
|
|
416
439
|
* const result = await sendMessage('show me sales by region');
|
|
417
|
-
*
|
|
440
|
+
*
|
|
418
441
|
* if (!result.error) {
|
|
419
442
|
* // Simple usage - just pass the message data
|
|
420
443
|
* <SpotterMessage message={result.message} />
|
|
421
|
-
*
|
|
444
|
+
*
|
|
422
445
|
* // With optional query for context
|
|
423
|
-
* <SpotterMessage
|
|
424
|
-
* message={result.message}
|
|
425
|
-
* query={result.query}
|
|
446
|
+
* <SpotterMessage
|
|
447
|
+
* message={result.message}
|
|
448
|
+
* query={result.query}
|
|
426
449
|
* />
|
|
427
450
|
* }
|
|
428
451
|
* ```
|
|
@@ -433,14 +456,8 @@ export const SpotterMessage = React.forwardRef<
|
|
|
433
456
|
SpotterMessageProps
|
|
434
457
|
>((props, ref) => {
|
|
435
458
|
const { message, query: _, ...otherProps } = props;
|
|
436
|
-
|
|
437
|
-
return
|
|
438
|
-
<ConversationMessage
|
|
439
|
-
ref={ref}
|
|
440
|
-
{...message}
|
|
441
|
-
{...otherProps}
|
|
442
|
-
/>
|
|
443
|
-
);
|
|
459
|
+
|
|
460
|
+
return <ConversationMessage ref={ref} {...message} {...otherProps} />;
|
|
444
461
|
});
|
|
445
462
|
|
|
446
463
|
/**
|
|
@@ -467,7 +484,8 @@ export const PreRenderedConversationEmbed = componentFactory<
|
|
|
467
484
|
SpotterEmbedViewConfig
|
|
468
485
|
>(_SpotterEmbed, true);
|
|
469
486
|
|
|
470
|
-
type EmbedComponent =
|
|
487
|
+
type EmbedComponent =
|
|
488
|
+
| typeof SearchEmbed
|
|
471
489
|
| typeof AppEmbed
|
|
472
490
|
| typeof LiveboardEmbed
|
|
473
491
|
| typeof SearchBarEmbed
|
|
@@ -493,8 +511,9 @@ type EmbedComponent = typeof SearchEmbed
|
|
|
493
511
|
* ```
|
|
494
512
|
* @returns {React.MutableRefObject<T extends TsEmbed>} ref
|
|
495
513
|
*/
|
|
496
|
-
export function useEmbedRef<T extends EmbedComponent>():
|
|
497
|
-
React.
|
|
514
|
+
export function useEmbedRef<T extends EmbedComponent>(): React.MutableRefObject<
|
|
515
|
+
React.ComponentRef<T>
|
|
516
|
+
> {
|
|
498
517
|
return React.useRef<React.ComponentRef<T>>(null);
|
|
499
518
|
}
|
|
500
519
|
|
|
@@ -523,19 +542,19 @@ export function useInit(config: EmbedConfig) {
|
|
|
523
542
|
|
|
524
543
|
/**
|
|
525
544
|
* React hook for interacting with SpotterAgent AI conversations.
|
|
526
|
-
*
|
|
545
|
+
*
|
|
527
546
|
* This hook provides a sendMessage function that allows you to send natural language
|
|
528
547
|
* queries to your data and get back AI-generated responses with visualizations.
|
|
529
|
-
*
|
|
548
|
+
*
|
|
530
549
|
* @param config - Configuration object containing worksheetId and other options
|
|
531
550
|
* @returns Object with sendMessage function that returns conversation results
|
|
532
551
|
* @example
|
|
533
552
|
* ```tsx
|
|
534
553
|
* const { sendMessage } = useSpotterAgent({ worksheetId: 'worksheetId' });
|
|
535
|
-
*
|
|
554
|
+
*
|
|
536
555
|
* const handleQuery = async () => {
|
|
537
556
|
* const result = await sendMessage('show me sales by region');
|
|
538
|
-
*
|
|
557
|
+
*
|
|
539
558
|
* if (!result.error) {
|
|
540
559
|
* // Display the message response
|
|
541
560
|
* <SpotterMessage message={result.message} />
|
|
@@ -548,38 +567,41 @@ export function useInit(config: EmbedConfig) {
|
|
|
548
567
|
*/
|
|
549
568
|
export function useSpotterAgent(config: SpotterAgentEmbedViewConfig) {
|
|
550
569
|
const serviceRef = useRef<_SpotterAgentEmbed | null>(null);
|
|
551
|
-
|
|
570
|
+
|
|
552
571
|
useDeepCompareEffect(() => {
|
|
553
572
|
if (serviceRef.current) {
|
|
554
573
|
serviceRef.current = null;
|
|
555
574
|
}
|
|
556
|
-
|
|
575
|
+
|
|
557
576
|
serviceRef.current = new _SpotterAgentEmbed(config);
|
|
558
|
-
|
|
577
|
+
|
|
559
578
|
return () => {
|
|
560
579
|
serviceRef.current = null;
|
|
561
580
|
};
|
|
562
581
|
}, [config]);
|
|
563
582
|
|
|
564
|
-
const sendMessage = useCallback(
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
583
|
+
const sendMessage = useCallback(
|
|
584
|
+
async (query: string) => {
|
|
585
|
+
if (!serviceRef.current) {
|
|
586
|
+
return { error: new Error(ERROR_MESSAGE.SPOTTER_AGENT_NOT_INITIALIZED) };
|
|
587
|
+
}
|
|
568
588
|
|
|
569
|
-
|
|
589
|
+
const result = await serviceRef.current.sendMessageData(query);
|
|
570
590
|
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
591
|
+
if (result.error) {
|
|
592
|
+
return { error: result.error };
|
|
593
|
+
}
|
|
574
594
|
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
595
|
+
return {
|
|
596
|
+
query: query,
|
|
597
|
+
message: {
|
|
598
|
+
...result.data,
|
|
599
|
+
worksheetId: config.worksheetId,
|
|
600
|
+
},
|
|
601
|
+
};
|
|
602
|
+
},
|
|
603
|
+
[config.worksheetId],
|
|
604
|
+
);
|
|
583
605
|
|
|
584
606
|
return {
|
|
585
607
|
sendMessage,
|
|
@@ -587,16 +609,11 @@ export function useSpotterAgent(config: SpotterAgentEmbedViewConfig) {
|
|
|
587
609
|
}
|
|
588
610
|
|
|
589
611
|
export {
|
|
590
|
-
LiveboardViewConfig,
|
|
591
|
-
SearchViewConfig,
|
|
592
|
-
AppViewConfig,
|
|
593
612
|
Page,
|
|
594
|
-
RuntimeFilter,
|
|
595
613
|
RuntimeFilterOp,
|
|
596
614
|
EmbedEvent,
|
|
597
615
|
HostEvent,
|
|
598
616
|
Action,
|
|
599
|
-
FrameParams,
|
|
600
617
|
HomeLeftNavItem,
|
|
601
618
|
HomepageModule,
|
|
602
619
|
LogLevel,
|
|
@@ -604,3 +621,11 @@ export {
|
|
|
604
621
|
ListPageColumns,
|
|
605
622
|
CustomActionsPosition,
|
|
606
623
|
} from '../index';
|
|
624
|
+
|
|
625
|
+
export type {
|
|
626
|
+
RuntimeFilter,
|
|
627
|
+
LiveboardViewConfig,
|
|
628
|
+
SearchViewConfig,
|
|
629
|
+
AppViewConfig,
|
|
630
|
+
FrameParams,
|
|
631
|
+
} from '../index';
|