@thoughtspot/visual-embed-sdk 1.41.0-pre-render-1 → 1.41.1
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 +2 -4
- package/cjs/package.json +3 -3
- package/cjs/src/authToken.d.ts +1 -0
- package/cjs/src/authToken.d.ts.map +1 -1
- package/cjs/src/authToken.js +13 -3
- package/cjs/src/authToken.js.map +1 -1
- package/cjs/src/authToken.spec.js +29 -0
- package/cjs/src/authToken.spec.js.map +1 -1
- package/cjs/src/css-variables.d.ts +2 -1
- package/cjs/src/css-variables.d.ts.map +1 -1
- package/cjs/src/embed/app.d.ts +22 -1
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +22 -1
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/app.spec.js +70 -3
- package/cjs/src/embed/app.spec.js.map +1 -1
- package/cjs/src/embed/bodyless-conversation.d.ts +0 -1
- package/cjs/src/embed/bodyless-conversation.d.ts.map +1 -1
- package/cjs/src/embed/bodyless-conversation.js +3 -7
- package/cjs/src/embed/bodyless-conversation.js.map +1 -1
- package/cjs/src/embed/conversation.d.ts +2 -3
- package/cjs/src/embed/conversation.d.ts.map +1 -1
- package/cjs/src/embed/conversation.js +2 -7
- package/cjs/src/embed/conversation.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +32 -1
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +8 -25
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +96 -28
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/sage.d.ts +0 -1
- package/cjs/src/embed/sage.d.ts.map +1 -1
- package/cjs/src/embed/sage.js +6 -10
- package/cjs/src/embed/sage.js.map +1 -1
- package/cjs/src/embed/sage.spec.js +20 -10
- package/cjs/src/embed/sage.spec.js.map +1 -1
- package/cjs/src/embed/search-bar.d.ts +0 -1
- package/cjs/src/embed/search-bar.d.ts.map +1 -1
- package/cjs/src/embed/search-bar.js +7 -11
- package/cjs/src/embed/search-bar.js.map +1 -1
- package/cjs/src/embed/search.d.ts +0 -1
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js +8 -7
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/search.spec.js +10 -10
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +5 -7
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +25 -22
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +122 -0
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/errors.d.ts +11 -0
- package/cjs/src/errors.d.ts.map +1 -1
- package/cjs/src/errors.js +12 -1
- package/cjs/src/errors.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 +3 -1
- package/cjs/src/index.js.map +1 -1
- package/cjs/src/react/index.d.ts +1 -1
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +4 -2
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/react/index.spec.js +1 -1
- package/cjs/src/react/index.spec.js.map +1 -1
- package/cjs/src/types.d.ts +163 -21
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +65 -22
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils/custom-actions.d.ts +12 -0
- package/cjs/src/utils/custom-actions.d.ts.map +1 -0
- package/cjs/src/utils/custom-actions.js +180 -0
- package/cjs/src/utils/custom-actions.js.map +1 -0
- package/cjs/src/utils/custom-actions.spec.d.ts +2 -0
- package/cjs/src/utils/custom-actions.spec.d.ts.map +1 -0
- package/cjs/src/utils/custom-actions.spec.js +399 -0
- package/cjs/src/utils/custom-actions.spec.js.map +1 -0
- package/cjs/src/utils/processData.d.ts.map +1 -1
- package/cjs/src/utils/processData.js +10 -0
- package/cjs/src/utils/processData.js.map +1 -1
- package/cjs/src/utils/processData.spec.js +11 -0
- package/cjs/src/utils/processData.spec.js.map +1 -1
- package/cjs/src/utils.d.ts +21 -0
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +32 -1
- package/cjs/src/utils.js.map +1 -1
- package/cjs/src/utils.spec.js +38 -0
- package/cjs/src/utils.spec.js.map +1 -1
- package/dist/{index-CmEQfuE3.js → index-DQueHwfQ.js} +1 -1
- package/dist/src/authToken.d.ts +1 -0
- package/dist/src/authToken.d.ts.map +1 -1
- package/dist/src/css-variables.d.ts +2 -1
- package/dist/src/css-variables.d.ts.map +1 -1
- package/dist/src/embed/app.d.ts +22 -1
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/bodyless-conversation.d.ts +0 -1
- package/dist/src/embed/bodyless-conversation.d.ts.map +1 -1
- package/dist/src/embed/conversation.d.ts +2 -3
- package/dist/src/embed/conversation.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +32 -1
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/sage.d.ts +0 -1
- package/dist/src/embed/sage.d.ts.map +1 -1
- package/dist/src/embed/search-bar.d.ts +0 -1
- package/dist/src/embed/search-bar.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +0 -1
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +5 -7
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/dist/src/errors.d.ts +11 -0
- package/dist/src/errors.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/index.d.ts +1 -1
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +163 -21
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/custom-actions.d.ts +12 -0
- package/dist/src/utils/custom-actions.d.ts.map +1 -0
- package/dist/src/utils/custom-actions.spec.d.ts +2 -0
- package/dist/src/utils/custom-actions.spec.d.ts.map +1 -0
- package/dist/src/utils/processData.d.ts.map +1 -1
- package/dist/src/utils.d.ts +21 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +1773 -251
- package/dist/tsembed-react.js +1772 -250
- package/dist/tsembed.es.js +1771 -250
- package/dist/tsembed.js +1770 -249
- package/dist/visual-embed-sdk-react-full.d.ts +228 -39
- package/dist/visual-embed-sdk-react.d.ts +228 -39
- package/dist/visual-embed-sdk.d.ts +228 -39
- package/lib/package.json +3 -3
- package/lib/src/authToken.d.ts +1 -0
- package/lib/src/authToken.d.ts.map +1 -1
- package/lib/src/authToken.js +11 -2
- package/lib/src/authToken.js.map +1 -1
- package/lib/src/authToken.spec.js +30 -1
- package/lib/src/authToken.spec.js.map +1 -1
- package/lib/src/css-variables.d.ts +2 -1
- package/lib/src/css-variables.d.ts.map +1 -1
- package/lib/src/embed/app.d.ts +22 -1
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +22 -1
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/app.spec.js +70 -3
- package/lib/src/embed/app.spec.js.map +1 -1
- package/lib/src/embed/bodyless-conversation.d.ts +0 -1
- package/lib/src/embed/bodyless-conversation.d.ts.map +1 -1
- package/lib/src/embed/bodyless-conversation.js +3 -7
- package/lib/src/embed/bodyless-conversation.js.map +1 -1
- package/lib/src/embed/conversation.d.ts +2 -3
- package/lib/src/embed/conversation.d.ts.map +1 -1
- package/lib/src/embed/conversation.js +2 -7
- package/lib/src/embed/conversation.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +32 -1
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +8 -25
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +96 -28
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/sage.d.ts +0 -1
- package/lib/src/embed/sage.d.ts.map +1 -1
- package/lib/src/embed/sage.js +6 -10
- package/lib/src/embed/sage.js.map +1 -1
- package/lib/src/embed/sage.spec.js +20 -10
- package/lib/src/embed/sage.spec.js.map +1 -1
- package/lib/src/embed/search-bar.d.ts +0 -1
- package/lib/src/embed/search-bar.d.ts.map +1 -1
- package/lib/src/embed/search-bar.js +7 -11
- package/lib/src/embed/search-bar.js.map +1 -1
- package/lib/src/embed/search.d.ts +0 -1
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +8 -7
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +11 -11
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +5 -7
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +25 -22
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +123 -1
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/errors.d.ts +11 -0
- package/lib/src/errors.d.ts.map +1 -1
- package/lib/src/errors.js +11 -0
- package/lib/src/errors.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 +2 -2
- package/lib/src/index.js.map +1 -1
- package/lib/src/react/index.d.ts +1 -1
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +3 -2
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/react/index.spec.js +1 -1
- package/lib/src/react/index.spec.js.map +1 -1
- package/lib/src/types.d.ts +163 -21
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +64 -21
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils/custom-actions.d.ts +12 -0
- package/lib/src/utils/custom-actions.d.ts.map +1 -0
- package/lib/src/utils/custom-actions.js +175 -0
- package/lib/src/utils/custom-actions.js.map +1 -0
- package/lib/src/utils/custom-actions.spec.d.ts +2 -0
- package/lib/src/utils/custom-actions.spec.d.ts.map +1 -0
- package/lib/src/utils/custom-actions.spec.js +397 -0
- package/lib/src/utils/custom-actions.spec.js.map +1 -0
- package/lib/src/utils/processData.d.ts.map +1 -1
- package/lib/src/utils/processData.js +10 -0
- package/lib/src/utils/processData.js.map +1 -1
- package/lib/src/utils/processData.spec.js +11 -0
- package/lib/src/utils/processData.spec.js.map +1 -1
- package/lib/src/utils.d.ts +21 -0
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +29 -0
- package/lib/src/utils.js.map +1 -1
- package/lib/src/utils.spec.js +39 -1
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +229 -40
- package/package.json +3 -3
- package/src/authToken.spec.ts +48 -1
- package/src/authToken.ts +13 -2
- package/src/css-variables.ts +2 -1
- package/src/embed/app.spec.ts +99 -3
- package/src/embed/app.ts +44 -1
- package/src/embed/bodyless-conversation.ts +3 -8
- package/src/embed/conversation.ts +4 -19
- package/src/embed/liveboard.spec.ts +128 -30
- package/src/embed/liveboard.ts +66 -52
- package/src/embed/sage.spec.ts +24 -10
- package/src/embed/sage.ts +7 -12
- package/src/embed/search-bar.tsx +7 -14
- package/src/embed/search.spec.ts +13 -14
- package/src/embed/search.ts +8 -19
- package/src/embed/ts-embed.spec.ts +136 -2
- package/src/embed/ts-embed.ts +31 -28
- package/src/errors.ts +12 -0
- package/src/index.ts +4 -0
- package/src/react/index.spec.tsx +1 -1
- package/src/react/index.tsx +5 -2
- package/src/types.ts +225 -79
- package/src/utils/custom-actions.spec.ts +431 -0
- package/src/utils/custom-actions.ts +217 -0
- package/src/utils/processData.spec.ts +12 -0
- package/src/utils/processData.ts +10 -0
- package/src/utils.spec.ts +52 -0
- package/src/utils.ts +31 -0
- package/dist/index-BDlM0f0T.js +0 -7371
- package/dist/index-D1pyb7RG.js +0 -7371
- package/dist/index-DeFzsyFF.js +0 -7371
- package/dist/index-Dpf0rd6w.js +0 -7371
- package/dist/index-UuEbsISo.js +0 -7447
- package/dist/index-e3Uw3YFO.js +0 -7371
- package/dist/index-k7pkZMhx.js +0 -7371
package/src/utils/processData.ts
CHANGED
|
@@ -12,6 +12,7 @@ import { resetCachedAuthToken } from '../authToken';
|
|
|
12
12
|
import { ERROR_MESSAGE } from '../errors';
|
|
13
13
|
import { logger } from '../utils/logger';
|
|
14
14
|
import { handleExitPresentMode } from '../utils';
|
|
15
|
+
import { resetCachedPreauthInfo, resetCachedSessionInfo } from './sessionInfoService';
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* Process the ExitPresentMode event and handle default fullscreen exit
|
|
@@ -26,6 +27,13 @@ function processExitPresentMode(e: any) {
|
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
|
|
30
|
+
/**
|
|
31
|
+
* Clears the cached preauth and session info.
|
|
32
|
+
*/
|
|
33
|
+
function processClearInfoCache() {
|
|
34
|
+
resetCachedPreauthInfo();
|
|
35
|
+
resetCachedSessionInfo();
|
|
36
|
+
}
|
|
29
37
|
/**
|
|
30
38
|
*
|
|
31
39
|
* @param e
|
|
@@ -153,6 +161,8 @@ export function processEventData(
|
|
|
153
161
|
return processAuthLogout(e, containerEl);
|
|
154
162
|
case EmbedEvent.ExitPresentMode:
|
|
155
163
|
return processExitPresentMode(e);
|
|
164
|
+
case EmbedEvent.CLEAR_INFO_CACHE:
|
|
165
|
+
return processClearInfoCache();
|
|
156
166
|
default:
|
|
157
167
|
}
|
|
158
168
|
return e;
|
package/src/utils.spec.ts
CHANGED
|
@@ -16,7 +16,9 @@ import {
|
|
|
16
16
|
handlePresentEvent,
|
|
17
17
|
handleExitPresentMode,
|
|
18
18
|
getTypeFromValue,
|
|
19
|
+
arrayIncludesString,
|
|
19
20
|
calculateVisibleElementData,
|
|
21
|
+
formatTemplate,
|
|
20
22
|
} from './utils';
|
|
21
23
|
import { RuntimeFilterOp } from './types';
|
|
22
24
|
import { logger } from './utils/logger';
|
|
@@ -436,6 +438,39 @@ describe('Fullscreen Utility Functions', () => {
|
|
|
436
438
|
expect(logger.warn).toHaveBeenCalledWith('Exit fullscreen API is not supported by this browser.');
|
|
437
439
|
});
|
|
438
440
|
});
|
|
441
|
+
|
|
442
|
+
describe('arrayIncludesString', () => {
|
|
443
|
+
it('should return true when string is found in array', () => {
|
|
444
|
+
const arr = ['test', 'example', 'value'];
|
|
445
|
+
expect(arrayIncludesString(arr, 'test')).toBe(true);
|
|
446
|
+
expect(arrayIncludesString(arr, 'example')).toBe(true);
|
|
447
|
+
expect(arrayIncludesString(arr, 'value')).toBe(true);
|
|
448
|
+
});
|
|
449
|
+
|
|
450
|
+
it('should return false when string is not found in array', () => {
|
|
451
|
+
const arr = ['test', 'example', 'value'];
|
|
452
|
+
expect(arrayIncludesString(arr, 'notfound')).toBe(false);
|
|
453
|
+
expect(arrayIncludesString(arr, '')).toBe(false);
|
|
454
|
+
});
|
|
455
|
+
|
|
456
|
+
it('should handle empty array', () => {
|
|
457
|
+
const arr: readonly unknown[] = [];
|
|
458
|
+
expect(arrayIncludesString(arr, 'test')).toBe(false);
|
|
459
|
+
});
|
|
460
|
+
|
|
461
|
+
it('should handle array with non-string values', () => {
|
|
462
|
+
const arr = ['test', 123, true, 'value'];
|
|
463
|
+
expect(arrayIncludesString(arr, 'test')).toBe(true);
|
|
464
|
+
expect(arrayIncludesString(arr, 'value')).toBe(true);
|
|
465
|
+
expect(arrayIncludesString(arr, '123')).toBe(false); // string '123' not found
|
|
466
|
+
});
|
|
467
|
+
|
|
468
|
+
it('should be case sensitive', () => {
|
|
469
|
+
const arr = ['Test', 'Example', 'Value'];
|
|
470
|
+
expect(arrayIncludesString(arr, 'test')).toBe(false);
|
|
471
|
+
expect(arrayIncludesString(arr, 'Test')).toBe(true);
|
|
472
|
+
});
|
|
473
|
+
});
|
|
439
474
|
});
|
|
440
475
|
|
|
441
476
|
describe('calculateVisibleElementData', () => {
|
|
@@ -684,3 +719,20 @@ describe('calculateVisibleElementData', () => {
|
|
|
684
719
|
});
|
|
685
720
|
});
|
|
686
721
|
});
|
|
722
|
+
|
|
723
|
+
describe('formatTemplate', () => {
|
|
724
|
+
it('should replace placeholders with provided values', () => {
|
|
725
|
+
expect(
|
|
726
|
+
formatTemplate('Hello {name}, you are {age} years old', { name: 'John', age: 30 }),
|
|
727
|
+
).toBe('Hello John, you are 30 years old');
|
|
728
|
+
expect(
|
|
729
|
+
formatTemplate('Expected {type}, but received {actual}', {
|
|
730
|
+
type: 'string',
|
|
731
|
+
actual: 'number',
|
|
732
|
+
}),
|
|
733
|
+
).toBe('Expected string, but received number');
|
|
734
|
+
expect(
|
|
735
|
+
formatTemplate('Hello {name}, you are {age} years old', { name: 'John' }),
|
|
736
|
+
).toBe('Hello John, you are {age} years old');
|
|
737
|
+
});
|
|
738
|
+
});
|
package/src/utils.ts
CHANGED
|
@@ -379,6 +379,16 @@ export function storeValueInWindow<T>(
|
|
|
379
379
|
export const getValueFromWindow = <T = any>
|
|
380
380
|
(key: string): T => (window as any)?.[sdkWindowKey]?.[key];
|
|
381
381
|
|
|
382
|
+
/**
|
|
383
|
+
* Check if an array includes a string value
|
|
384
|
+
* @param arr - The array to check
|
|
385
|
+
* @param key - The string to search for
|
|
386
|
+
* @returns boolean indicating if the string is found in the array
|
|
387
|
+
*/
|
|
388
|
+
export const arrayIncludesString = (arr: readonly unknown[], key: string): boolean => {
|
|
389
|
+
return arr.some(item => typeof item === 'string' && item === key);
|
|
390
|
+
};
|
|
391
|
+
|
|
382
392
|
/**
|
|
383
393
|
* Resets the key if it exists in the `window` object under the `_tsEmbedSDK` key.
|
|
384
394
|
* Returns true if the key was reset, false otherwise.
|
|
@@ -489,3 +499,24 @@ export const calculateVisibleElementData = (element: HTMLElement) => {
|
|
|
489
499
|
|
|
490
500
|
return data;
|
|
491
501
|
}
|
|
502
|
+
|
|
503
|
+
/**
|
|
504
|
+
* Replaces placeholders in a template string with provided values.
|
|
505
|
+
* Placeholders should be in the format {key}.
|
|
506
|
+
* @param template - The template string with placeholders
|
|
507
|
+
* @param values - An object containing key-value pairs to replace placeholders
|
|
508
|
+
* @returns The template string with placeholders replaced
|
|
509
|
+
* @example
|
|
510
|
+
* formatTemplate('Hello {name}, you are {age} years old', { name: 'John', age: 30 })
|
|
511
|
+
* // Returns: 'Hello John, you are 30 years old'
|
|
512
|
+
*
|
|
513
|
+
* formatTemplate('Expected {type}, but received {actual}', { type: 'string', actual: 'number' })
|
|
514
|
+
* // Returns: 'Expected string, but received number'
|
|
515
|
+
*/
|
|
516
|
+
export const formatTemplate = (template: string, values: Record<string, any>): string => {
|
|
517
|
+
// This regex /\{(\w+)\}/g finds all placeholders in the format {word}
|
|
518
|
+
// and captures the word inside the braces for replacement.
|
|
519
|
+
return template.replace(/\{(\w+)\}/g, (match, key) => {
|
|
520
|
+
return values[key] !== undefined ? String(values[key]) : match;
|
|
521
|
+
});
|
|
522
|
+
};
|