@thoughtspot/visual-embed-sdk 1.24.0-alpha.6 → 1.24.0-dev
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/embed/app.d.ts +1 -0
- package/cjs/src/embed/app.d.ts.map +1 -1
- package/cjs/src/embed/app.js +1 -0
- package/cjs/src/embed/app.js.map +1 -1
- package/cjs/src/embed/liveboard.d.ts +6 -1
- package/cjs/src/embed/liveboard.d.ts.map +1 -1
- package/cjs/src/embed/liveboard.js +10 -2
- package/cjs/src/embed/liveboard.js.map +1 -1
- package/cjs/src/embed/liveboard.spec.js +23 -7
- package/cjs/src/embed/liveboard.spec.js.map +1 -1
- package/cjs/src/embed/search.d.ts +5 -1
- package/cjs/src/embed/search.d.ts.map +1 -1
- package/cjs/src/embed/search.js +4 -1
- package/cjs/src/embed/search.js.map +1 -1
- package/cjs/src/embed/search.spec.js +15 -0
- package/cjs/src/embed/search.spec.js.map +1 -1
- package/cjs/src/embed/ts-embed.d.ts +19 -0
- package/cjs/src/embed/ts-embed.d.ts.map +1 -1
- package/cjs/src/embed/ts-embed.js +136 -6
- package/cjs/src/embed/ts-embed.js.map +1 -1
- package/cjs/src/embed/ts-embed.spec.js +38 -1
- package/cjs/src/embed/ts-embed.spec.js.map +1 -1
- package/cjs/src/react/all-types-export.d.ts +1 -1
- package/cjs/src/react/all-types-export.d.ts.map +1 -1
- package/cjs/src/react/all-types-export.js +2 -1
- package/cjs/src/react/all-types-export.js.map +1 -1
- package/cjs/src/react/index.d.ts +1 -0
- package/cjs/src/react/index.d.ts.map +1 -1
- package/cjs/src/react/index.js +18 -4
- package/cjs/src/react/index.js.map +1 -1
- package/cjs/src/types.d.ts +87 -7
- package/cjs/src/types.d.ts.map +1 -1
- package/cjs/src/types.js +60 -5
- package/cjs/src/types.js.map +1 -1
- package/cjs/src/utils.d.ts +9 -1
- package/cjs/src/utils.d.ts.map +1 -1
- package/cjs/src/utils.js +36 -1
- package/cjs/src/utils.js.map +1 -1
- package/cjs/src/utils.spec.js +24 -0
- package/cjs/src/utils.spec.js.map +1 -1
- package/dist/src/embed/app.d.ts +1 -0
- package/dist/src/embed/app.d.ts.map +1 -1
- package/dist/src/embed/liveboard.d.ts +6 -1
- package/dist/src/embed/liveboard.d.ts.map +1 -1
- package/dist/src/embed/search.d.ts +5 -1
- package/dist/src/embed/search.d.ts.map +1 -1
- package/dist/src/embed/ts-embed.d.ts +19 -0
- package/dist/src/embed/ts-embed.d.ts.map +1 -1
- package/dist/src/react/all-types-export.d.ts +1 -1
- package/dist/src/react/all-types-export.d.ts.map +1 -1
- package/dist/src/react/index.d.ts +1 -0
- package/dist/src/react/index.d.ts.map +1 -1
- package/dist/src/types.d.ts +87 -7
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils.d.ts +9 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/tsembed-react.es.js +264 -21
- package/dist/tsembed-react.js +264 -20
- package/dist/tsembed.es.js +245 -16
- package/dist/tsembed.js +245 -16
- package/dist/visual-embed-sdk-react-full.d.ts +115 -7
- package/dist/visual-embed-sdk-react.d.ts +115 -7
- package/dist/visual-embed-sdk.d.ts +114 -7
- package/lib/package.json +2 -2
- package/lib/src/embed/app.d.ts +1 -0
- package/lib/src/embed/app.d.ts.map +1 -1
- package/lib/src/embed/app.js +1 -0
- package/lib/src/embed/app.js.map +1 -1
- package/lib/src/embed/liveboard.d.ts +6 -1
- package/lib/src/embed/liveboard.d.ts.map +1 -1
- package/lib/src/embed/liveboard.js +11 -3
- package/lib/src/embed/liveboard.js.map +1 -1
- package/lib/src/embed/liveboard.spec.js +23 -7
- package/lib/src/embed/liveboard.spec.js.map +1 -1
- package/lib/src/embed/search.d.ts +5 -1
- package/lib/src/embed/search.d.ts.map +1 -1
- package/lib/src/embed/search.js +5 -2
- package/lib/src/embed/search.js.map +1 -1
- package/lib/src/embed/search.spec.js +15 -0
- package/lib/src/embed/search.spec.js.map +1 -1
- package/lib/src/embed/ts-embed.d.ts +19 -0
- package/lib/src/embed/ts-embed.d.ts.map +1 -1
- package/lib/src/embed/ts-embed.js +137 -7
- package/lib/src/embed/ts-embed.js.map +1 -1
- package/lib/src/embed/ts-embed.spec.js +38 -1
- package/lib/src/embed/ts-embed.spec.js.map +1 -1
- package/lib/src/react/all-types-export.d.ts +1 -1
- package/lib/src/react/all-types-export.d.ts.map +1 -1
- package/lib/src/react/all-types-export.js +1 -1
- package/lib/src/react/all-types-export.js.map +1 -1
- package/lib/src/react/index.d.ts +1 -0
- package/lib/src/react/index.d.ts.map +1 -1
- package/lib/src/react/index.js +17 -3
- package/lib/src/react/index.js.map +1 -1
- package/lib/src/types.d.ts +87 -7
- package/lib/src/types.d.ts.map +1 -1
- package/lib/src/types.js +60 -5
- package/lib/src/types.js.map +1 -1
- package/lib/src/utils.d.ts +9 -1
- package/lib/src/utils.d.ts.map +1 -1
- package/lib/src/utils.js +32 -0
- package/lib/src/utils.js.map +1 -1
- package/lib/src/utils.spec.js +25 -1
- package/lib/src/utils.spec.js.map +1 -1
- package/lib/src/visual-embed-sdk.d.ts +116 -9
- package/package.json +5 -5
- package/src/embed/app.ts +1 -0
- package/src/embed/liveboard.spec.ts +29 -10
- package/src/embed/liveboard.ts +19 -2
- package/src/embed/search.spec.ts +18 -0
- package/src/embed/search.ts +16 -1
- package/src/embed/ts-embed.spec.ts +40 -1
- package/src/embed/ts-embed.ts +174 -14
- package/src/react/all-types-export.ts +1 -0
- package/src/react/index.tsx +25 -8
- package/src/types.ts +97 -16
- package/src/utils.spec.ts +31 -0
- package/src/utils.ts +43 -0
package/dist/tsembed-react.es.js
CHANGED
|
@@ -186,6 +186,24 @@ const getFilterQuery = (runtimeFilters) => {
|
|
|
186
186
|
}
|
|
187
187
|
return null;
|
|
188
188
|
};
|
|
189
|
+
/**
|
|
190
|
+
* Construct a runtime parameter override query string from the given option.
|
|
191
|
+
*
|
|
192
|
+
* @param runtimeParameters
|
|
193
|
+
*/
|
|
194
|
+
const getRuntimeParameters = (runtimeParameters) => {
|
|
195
|
+
if (runtimeParameters && runtimeParameters.length) {
|
|
196
|
+
const params = runtimeParameters.map((param, valueIndex) => {
|
|
197
|
+
const index = valueIndex + 1;
|
|
198
|
+
const filterExpr = [];
|
|
199
|
+
filterExpr.push(`param${index}=${encodeURIComponent(param.name)}`);
|
|
200
|
+
filterExpr.push(`paramVal${index}=${encodeURIComponent(param.value)}`);
|
|
201
|
+
return filterExpr.join('&');
|
|
202
|
+
});
|
|
203
|
+
return `${params.join('&')}`;
|
|
204
|
+
}
|
|
205
|
+
return null;
|
|
206
|
+
};
|
|
189
207
|
/**
|
|
190
208
|
* Convert a value to a string representation to be sent as a query
|
|
191
209
|
* parameter to the ThoughtSpot app.
|
|
@@ -334,7 +352,21 @@ const getRuntimeFilters = (runtimefilters) => getFilterQuery(runtimefilters || [
|
|
|
334
352
|
function getDOMNode(domSelector) {
|
|
335
353
|
return typeof domSelector === 'string' ? document.querySelector(domSelector) : domSelector;
|
|
336
354
|
}
|
|
337
|
-
const deepMerge = (target, source) => merge(target, source);
|
|
355
|
+
const deepMerge = (target, source) => merge(target, source);
|
|
356
|
+
const setStyleProperties = (element, styleProperties) => {
|
|
357
|
+
if (!element || !styleProperties)
|
|
358
|
+
return;
|
|
359
|
+
Object.keys(styleProperties).forEach((styleProperty) => {
|
|
360
|
+
element.style[styleProperty] = styleProperties[styleProperty].toString();
|
|
361
|
+
});
|
|
362
|
+
};
|
|
363
|
+
const removeStyleProperties = (element, styleProperties) => {
|
|
364
|
+
if (!element || !styleProperties)
|
|
365
|
+
return;
|
|
366
|
+
styleProperties.forEach((styleProperty) => {
|
|
367
|
+
element.style.removeProperty(styleProperty);
|
|
368
|
+
});
|
|
369
|
+
};
|
|
338
370
|
|
|
339
371
|
/**
|
|
340
372
|
* Copyright (c) 2023
|
|
@@ -1045,21 +1077,21 @@ var EmbedEvent;
|
|
|
1045
1077
|
*/
|
|
1046
1078
|
EmbedEvent["InsertIntoSlide"] = "insertInToSlide";
|
|
1047
1079
|
/**
|
|
1080
|
+
* @hidden
|
|
1048
1081
|
* Emitted when a user changes any filter on a Liveboard.
|
|
1049
|
-
*
|
|
1050
1082
|
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
|
|
1051
1083
|
*/
|
|
1052
1084
|
EmbedEvent["FilterChanged"] = "filterChanged";
|
|
1053
1085
|
/**
|
|
1054
1086
|
* Emitted when a user click on Go button in Sage Embed
|
|
1055
1087
|
*
|
|
1056
|
-
* @version SDK : 1.
|
|
1088
|
+
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
1057
1089
|
*/
|
|
1058
1090
|
EmbedEvent["SageEmbedQuery"] = "sageEmbedQuery";
|
|
1059
1091
|
/**
|
|
1060
1092
|
* Emitten when a user select data source in Sage Embed
|
|
1061
1093
|
*
|
|
1062
|
-
* @version SDK : 1.
|
|
1094
|
+
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
1063
1095
|
*/
|
|
1064
1096
|
EmbedEvent["SageWorksheetUpdated"] = "sageWorksheetUpdated";
|
|
1065
1097
|
/**
|
|
@@ -1068,6 +1100,51 @@ var EmbedEvent;
|
|
|
1068
1100
|
* @version SDK : 1.27.0 | Thoughtspot: 9.8.0.cl
|
|
1069
1101
|
*/
|
|
1070
1102
|
EmbedEvent["UpdateConnection"] = "updateConnection";
|
|
1103
|
+
/**
|
|
1104
|
+
* Emitted when name, status (private or public) or filter values of a
|
|
1105
|
+
* PersonalisedView is updated.
|
|
1106
|
+
*
|
|
1107
|
+
* @returns viewName: string
|
|
1108
|
+
* @returns viewId: string
|
|
1109
|
+
* @returns liveboardId: string
|
|
1110
|
+
* @returns isPublic: boolean
|
|
1111
|
+
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
1112
|
+
*/
|
|
1113
|
+
EmbedEvent["UpdatePersonalisedView"] = "updatePersonalisedView";
|
|
1114
|
+
/**
|
|
1115
|
+
* Emitted when a PersonalisedView is saved.
|
|
1116
|
+
*
|
|
1117
|
+
* @returns viewName: string
|
|
1118
|
+
* @returns viewId: string
|
|
1119
|
+
* @returns liveboardId: string
|
|
1120
|
+
* @returns isPublic: boolean
|
|
1121
|
+
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
1122
|
+
*/
|
|
1123
|
+
EmbedEvent["SavePersonalisedView"] = "savePersonalisedView";
|
|
1124
|
+
/**
|
|
1125
|
+
* Emitted when a Liveboard is reset.
|
|
1126
|
+
*
|
|
1127
|
+
* @returns viewName: string
|
|
1128
|
+
* @returns viewId: string
|
|
1129
|
+
* @returns liveboardId: string
|
|
1130
|
+
* @returns isPublic: boolean
|
|
1131
|
+
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
1132
|
+
*/
|
|
1133
|
+
EmbedEvent["ResetLiveboard"] = "resetLiveboard";
|
|
1134
|
+
/**
|
|
1135
|
+
* Emitted when a PersonalisedView is deleted.
|
|
1136
|
+
*
|
|
1137
|
+
* @returns views: string[]
|
|
1138
|
+
* @returns liveboardId: string
|
|
1139
|
+
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
1140
|
+
*/
|
|
1141
|
+
EmbedEvent["DeletePersonalisedView"] = "deletePersonalisedView";
|
|
1142
|
+
/**
|
|
1143
|
+
* Emitten when a user creates a new worksheet
|
|
1144
|
+
*
|
|
1145
|
+
* @version SDK : 1.27.0 | Thoughtspot: 9.8.0.cl
|
|
1146
|
+
*/
|
|
1147
|
+
EmbedEvent["CreateWorksheet"] = "createWorksheet";
|
|
1071
1148
|
})(EmbedEvent || (EmbedEvent = {}));
|
|
1072
1149
|
/**
|
|
1073
1150
|
* Event types that can be triggered by the host application
|
|
@@ -1712,16 +1789,16 @@ var HostEvent;
|
|
|
1712
1789
|
*/
|
|
1713
1790
|
HostEvent["ResetSearch"] = "resetSearch";
|
|
1714
1791
|
/**
|
|
1792
|
+
* @hidden
|
|
1715
1793
|
* Gets the currents visible and runtime filters applied on a Liveboard
|
|
1716
|
-
*
|
|
1717
1794
|
* @example
|
|
1718
1795
|
* liveboardEmbed.trigger(HostEvent.GetFilters)
|
|
1719
1796
|
* @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
|
|
1720
1797
|
*/
|
|
1721
1798
|
HostEvent["GetFilters"] = "getFilters";
|
|
1722
1799
|
/**
|
|
1800
|
+
* @hidden
|
|
1723
1801
|
* Updates the visible filters on the Liveboard.
|
|
1724
|
-
*
|
|
1725
1802
|
* @param - filter: filter object containing column name and filter operation and values
|
|
1726
1803
|
* @example
|
|
1727
1804
|
*
|
|
@@ -2709,6 +2786,16 @@ var Action;
|
|
|
2709
2786
|
* ```
|
|
2710
2787
|
*/
|
|
2711
2788
|
Action["ManageMonitor"] = "ManageMonitor";
|
|
2789
|
+
/**
|
|
2790
|
+
* Action ID for Liveboard Personalised Views dropdown
|
|
2791
|
+
*
|
|
2792
|
+
* @example
|
|
2793
|
+
* ```js
|
|
2794
|
+
* disabledActions: [Action.PersonalisedViewsDropdown]
|
|
2795
|
+
* ```
|
|
2796
|
+
* @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
|
|
2797
|
+
*/
|
|
2798
|
+
Action["PersonalisedViewsDropdown"] = "personalisedViewsDropdown";
|
|
2712
2799
|
})(Action || (Action = {}));
|
|
2713
2800
|
// eslint-disable-next-line no-shadow
|
|
2714
2801
|
var OperationType;
|
|
@@ -10323,7 +10410,7 @@ function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
|
|
|
10323
10410
|
});
|
|
10324
10411
|
}
|
|
10325
10412
|
|
|
10326
|
-
var name="@thoughtspot/visual-embed-sdk";var version="1.24.0-
|
|
10413
|
+
var name="@thoughtspot/visual-embed-sdk";var version="1.24.0-dev";var description="ThoughtSpot Embed SDK";var module="lib/src/index.js";var main="dist/tsembed.js";var types="lib/src/index.d.ts";var files=["dist/**","lib/**","src/**","cjs/**"];var exports={".":{"import":"./lib/src/index.js",require:"./cjs/src/index.js",types:"./lib/src/index.d.ts"},"./react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"},"./lib/src/react":{"import":"./lib/src/react/all-types-export.js",require:"./cjs/src/react/all-types-export.js",types:"./lib/src/react/all-types-export.d.ts"}};var typesVersions={"*":{react:["./lib/src/react/all-types-export.d.ts"]}};var scripts={lint:"eslint 'src/**'","lint:fix":"eslint 'src/**/*.*' --fix",tsc:"tsc -p . --incremental false; tsc -p . --incremental false --module commonjs --outDir cjs",start:"gatsby develop","build:gatsby":"npm run clean:gatsby && gatsby build --prefix-paths","build:gatsby:noprefix":"npm run clean:gatsby && gatsby build","serve:gatsby":"gatsby serve","clean:gatsby":"gatsby clean","build-and-publish":"npm run build:gatsby && npm run publish","bundle-dts-file":"dts-bundle --name @thoughtspot/visual-embed-sdk --out visual-embed-sdk.d.ts --main lib/src/index.d.ts","bundle-dts":"dts-bundle --name ../../dist/visual-embed-sdk --main lib/src/index.d.ts --outputAsModuleFolder=true","bundle-dts-react":"dts-bundle --name ../../../dist/visual-embed-sdk-react --main lib/src/react/index.d.ts --outputAsModuleFolder=true","bundle-dts-react-full":"dts-bundle --name ../../../dist/visual-embed-sdk-react-full --main lib/src/react/all-types-export.d.ts --outputAsModuleFolder=true",build:"rollup -c",watch:"rollup -cw","docs-cmd":"node scripts/gatsby-commands.js",docgen:"typedoc --tsconfig tsconfig.json --theme typedoc-theme","test-sdk":"jest -c jest.config.sdk.js --runInBand","test-docs":"jest -c jest.config.docs.js",test:"npm run test-sdk && npm run test-docs",posttest:"cat ./coverage/sdk/lcov.info | coveralls","is-publish-allowed":"node scripts/is-publish-allowed.js",prepublishOnly:"npm run tsc && npm run bundle-dts-file && npm run bundle-dts && npm run bundle-dts-react && npm run bundle-dts-react-full && npm run build","check-size":"npm run build && size-limit","publish-dev":"npm publish --tag dev","publish-prod":"npm publish --tag latest"};var peerDependencies={react:"> 16.8.0","react-dom":"> 16.8.0"};var dependencies={algoliasearch:"^4.10.5",classnames:"^2.3.1",dompurify:"^2.3.4","eslint-plugin-comment-length":"^0.9.2","eslint-plugin-jsdoc":"^40.1.0",eventemitter3:"^4.0.7","gatsby-plugin-vercel":"^1.0.3","html-react-parser":"^1.4.12",lodash:"^4.17.21","mixpanel-browser":"^2.45.0","ts-deepmerge":"^6.0.2",tslib:"^2.5.3","use-deep-compare-effect":"^1.8.1"};var devDependencies={"@mdx-js/mdx":"^1.6.22","@mdx-js/react":"^1.6.22","@react-icons/all-files":"^4.1.0","@rollup/plugin-commonjs":"^18.0.0","@rollup/plugin-json":"^4.1.0","@rollup/plugin-node-resolve":"^11.2.1","@rollup/plugin-replace":"^5.0.2","@size-limit/preset-big-lib":"^8.2.6","@testing-library/dom":"^7.31.0","@testing-library/jest-dom":"^5.14.1","@testing-library/react":"^11.2.7","@testing-library/user-event":"^13.1.8","@types/jest":"^22.2.3","@types/mixpanel-browser":"^2.35.6","@types/react-test-renderer":"^17.0.1","@typescript-eslint/eslint-plugin":"^4.6.0","@typescript-eslint/parser":"^4.6.0",asciidoctor:"^2.2.1","babel-jest":"^26.6.3","babel-preset-gatsby":"^1.10.0","command-line-args":"^5.1.1",coveralls:"^3.1.0","current-git-branch":"^1.1.0","dts-bundle":"^0.7.3",eslint:"^7.12.1","eslint-config-airbnb-base":"^14.2.0","eslint-config-prettier":"^6.15.0","eslint-import-resolver-typescript":"^2.3.0","eslint-plugin-import":"^2.22.1","eslint-plugin-prettier":"^3.1.4","eslint-plugin-react-hooks":"^4.2.0","fs-extra":"^10.0.0",gatsby:"3.13.1","gatsby-plugin-algolia":"^0.22.2","gatsby-plugin-catch-links":"^3.1.0","gatsby-plugin-env-variables":"^2.1.0","gatsby-plugin-intl":"^0.3.3","gatsby-plugin-manifest":"^3.2.0","gatsby-plugin-output":"^0.1.3","gatsby-plugin-sass":"6.7.0","gatsby-plugin-sitemap":"^4.10.0","gatsby-source-filesystem":"3.1.0","gatsby-transformer-asciidoc":"2.1.0","gatsby-transformer-rehype":"2.0.0","gh-pages":"^3.1.0","highlight.js":"^10.6.0","html-to-text":"^8.0.0","identity-obj-proxy":"^3.0.0","istanbul-merge":"^1.1.1",jest:"^26.6.3","jest-puppeteer":"^4.4.0",jsdom:"^17.0.0","node-sass":"^8.0.0",prettier:"2.1.2",puppeteer:"^7.0.1",react:"^16.14.0","react-dom":"^16.14.0","react-resizable":"^1.11.0","react-resize-detector":"^6.6.0","react-test-renderer":"^17.0.2","react-use-flexsearch":"^0.1.1",rollup:"2.30.0","rollup-plugin-typescript2":"0.27.3","ts-jest":"^26.5.5","ts-loader":"8.0.4",typedoc:"0.21.6","typedoc-plugin-toc-group":"thoughtspot/typedoc-plugin-toc-group",typescript:"^4.9.4","url-search-params-polyfill":"^8.1.0",util:"^0.12.4"};var author="ThoughtSpot";var email="support@thoughtspot.com";var license="ThoughtSpot Development Tools End User License Agreement";var directories={lib:"lib"};var repository={type:"git",url:"git+https://github.com/thoughtspot/visual-embed-sdk.git"};var publishConfig={registry:"https://registry.npmjs.org"};var keywords=["thoughtspot","everywhere","embed","sdk","analytics"];var bugs={url:"https://github.com/thoughtspot/visual-embed-sdk/issues"};var homepage="https://github.com/thoughtspot/visual-embed-sdk#readme";var globals={window:{}};var pkgInfo = {name:name,version:version,description:description,module:module,main:main,types:types,files:files,exports:exports,typesVersions:typesVersions,"size-limit":[{path:"dist/tsembed.js",limit:"40 kB"}],scripts:scripts,peerDependencies:peerDependencies,dependencies:dependencies,devDependencies:devDependencies,author:author,email:email,license:license,directories:directories,repository:repository,publishConfig:publishConfig,keywords:keywords,bugs:bugs,homepage:homepage,globals:globals};
|
|
10327
10414
|
|
|
10328
10415
|
/**
|
|
10329
10416
|
* Copyright (c) 2022
|
|
@@ -10382,11 +10469,14 @@ class TsEmbed {
|
|
|
10382
10469
|
data: {
|
|
10383
10470
|
customisations: getCustomisations(this.embedConfig, this.viewConfig),
|
|
10384
10471
|
authToken,
|
|
10385
|
-
runtimeFilterParams:
|
|
10472
|
+
runtimeFilterParams: this.viewConfig.excludeRuntimeFiltersfromURL
|
|
10473
|
+
? getRuntimeFilters(this.viewConfig.runtimeFilters)
|
|
10474
|
+
: null,
|
|
10386
10475
|
hiddenHomepageModules: this.viewConfig.hiddenHomepageModules || [],
|
|
10387
10476
|
hostConfig: this.embedConfig.hostConfig,
|
|
10388
10477
|
hiddenHomeLeftNavItems: ((_a = this.viewConfig) === null || _a === void 0 ? void 0 : _a.hiddenHomeLeftNavItems)
|
|
10389
|
-
? (_b = this.viewConfig) === null || _b === void 0 ? void 0 : _b.hiddenHomeLeftNavItems
|
|
10478
|
+
? (_b = this.viewConfig) === null || _b === void 0 ? void 0 : _b.hiddenHomeLeftNavItems
|
|
10479
|
+
: [],
|
|
10390
10480
|
},
|
|
10391
10481
|
});
|
|
10392
10482
|
};
|
|
@@ -10715,7 +10805,12 @@ class TsEmbed {
|
|
|
10715
10805
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
|
|
10716
10806
|
return (_a = getAuthPromise()) === null || _a === void 0 ? void 0 : _a.then((isLoggedIn) => {
|
|
10717
10807
|
if (!isLoggedIn) {
|
|
10718
|
-
|
|
10808
|
+
if (this.isPreRendered) {
|
|
10809
|
+
this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
|
|
10810
|
+
}
|
|
10811
|
+
else {
|
|
10812
|
+
this.insertIntoDOM(this.embedConfig.loginFailedMessage);
|
|
10813
|
+
}
|
|
10719
10814
|
return;
|
|
10720
10815
|
}
|
|
10721
10816
|
this.iFrame = this.iFrame || this.createIframeEl(url);
|
|
@@ -10737,7 +10832,12 @@ class TsEmbed {
|
|
|
10737
10832
|
this.iFrame.addEventListener('error', () => {
|
|
10738
10833
|
nextInQueue();
|
|
10739
10834
|
});
|
|
10740
|
-
|
|
10835
|
+
if (this.isPreRendered) {
|
|
10836
|
+
this.insertIntoDOMForPreRender(this.iFrame);
|
|
10837
|
+
}
|
|
10838
|
+
else {
|
|
10839
|
+
this.insertIntoDOM(this.iFrame);
|
|
10840
|
+
}
|
|
10741
10841
|
const prefetchIframe = document.querySelectorAll('.prefetchIframe');
|
|
10742
10842
|
if (prefetchIframe.length) {
|
|
10743
10843
|
prefetchIframe.forEach((el) => {
|
|
@@ -10750,11 +10850,119 @@ class TsEmbed {
|
|
|
10750
10850
|
uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_FAILED, {
|
|
10751
10851
|
error: JSON.stringify(error),
|
|
10752
10852
|
});
|
|
10753
|
-
|
|
10853
|
+
if (this.isPreRendered) {
|
|
10854
|
+
this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
|
|
10855
|
+
}
|
|
10856
|
+
else {
|
|
10857
|
+
this.insertIntoDOM(this.embedConfig.loginFailedMessage);
|
|
10858
|
+
}
|
|
10754
10859
|
this.handleError(error);
|
|
10755
10860
|
});
|
|
10756
10861
|
});
|
|
10757
10862
|
}
|
|
10863
|
+
getPreRenderIds() {
|
|
10864
|
+
return {
|
|
10865
|
+
wrapper: `tsEmbed-pre-render-wrapper-${this.viewConfig.preRenderId}`,
|
|
10866
|
+
shield: `tsEmbed-pre-render-shield-${this.viewConfig.preRenderId}`,
|
|
10867
|
+
child: `tsEmbed-pre-render-child-${this.viewConfig.preRenderId}`,
|
|
10868
|
+
};
|
|
10869
|
+
}
|
|
10870
|
+
createPreRenderWrapper(child) {
|
|
10871
|
+
if (!this.viewConfig.preRenderId) {
|
|
10872
|
+
throw new Error('Pre render id is required');
|
|
10873
|
+
}
|
|
10874
|
+
const preRenderIds = this.getPreRenderIds();
|
|
10875
|
+
const stalePreRenderWrapper = document.getElementById(preRenderIds.wrapper);
|
|
10876
|
+
if (stalePreRenderWrapper) {
|
|
10877
|
+
console.log('Found stale wrapper , removing');
|
|
10878
|
+
stalePreRenderWrapper.remove();
|
|
10879
|
+
}
|
|
10880
|
+
const preRenderWrapper = document.createElement('div');
|
|
10881
|
+
preRenderWrapper.id = preRenderIds.wrapper;
|
|
10882
|
+
setStyleProperties(preRenderWrapper, { position: 'absolute', width: '100vw', height: '100vh' });
|
|
10883
|
+
const preRenderShield = document.createElement('div');
|
|
10884
|
+
preRenderShield.id = preRenderIds.shield;
|
|
10885
|
+
setStyleProperties(preRenderShield, { position: 'absolute', width: '100%', height: '100%' });
|
|
10886
|
+
child.id = preRenderIds.child;
|
|
10887
|
+
preRenderWrapper.appendChild(child);
|
|
10888
|
+
preRenderWrapper.appendChild(preRenderShield);
|
|
10889
|
+
this.preRenderWrapper = preRenderWrapper;
|
|
10890
|
+
this.preRenderShield = preRenderShield;
|
|
10891
|
+
this.preRenderChild = child;
|
|
10892
|
+
return preRenderWrapper;
|
|
10893
|
+
}
|
|
10894
|
+
isPreRenderAvailable() {
|
|
10895
|
+
const preRenderIds = this.getPreRenderIds();
|
|
10896
|
+
this.preRenderWrapper = this.preRenderWrapper
|
|
10897
|
+
|| document.getElementById(preRenderIds.wrapper);
|
|
10898
|
+
this.preRenderShield = this.preRenderShield
|
|
10899
|
+
|| document.getElementById(preRenderIds.shield);
|
|
10900
|
+
this.preRenderChild = this.preRenderChild
|
|
10901
|
+
|| document.getElementById(preRenderIds.child);
|
|
10902
|
+
return !!this.preRenderWrapper && !!this.preRenderShield
|
|
10903
|
+
&& !!this.preRenderChild;
|
|
10904
|
+
}
|
|
10905
|
+
insertIntoDOMForPreRender(child) {
|
|
10906
|
+
let childNode;
|
|
10907
|
+
if (typeof child === 'string') {
|
|
10908
|
+
const divChildNode = document.createElement('div');
|
|
10909
|
+
divChildNode.innerHTML = child;
|
|
10910
|
+
childNode = divChildNode;
|
|
10911
|
+
}
|
|
10912
|
+
else {
|
|
10913
|
+
childNode = child;
|
|
10914
|
+
}
|
|
10915
|
+
const preRenderWrapper = this.createPreRenderWrapper(childNode);
|
|
10916
|
+
document.body.appendChild(preRenderWrapper);
|
|
10917
|
+
this.hidePreRender();
|
|
10918
|
+
}
|
|
10919
|
+
hidePreRender() {
|
|
10920
|
+
if (!this.isPreRenderAvailable()) {
|
|
10921
|
+
// if the embed component is not preRendered , nothing to hide
|
|
10922
|
+
console.log('No preRender found, not hiding ');
|
|
10923
|
+
return;
|
|
10924
|
+
}
|
|
10925
|
+
setStyleProperties(this.preRenderWrapper, {
|
|
10926
|
+
opacity: '0',
|
|
10927
|
+
pointerEvents: 'none',
|
|
10928
|
+
zIndex: '-1000',
|
|
10929
|
+
position: 'absolute ',
|
|
10930
|
+
top: '0',
|
|
10931
|
+
left: '0',
|
|
10932
|
+
});
|
|
10933
|
+
const childBoundingRect = this.preRenderChild.getBoundingClientRect();
|
|
10934
|
+
setStyleProperties(this.preRenderShield, {
|
|
10935
|
+
opacity: '0',
|
|
10936
|
+
pointerEvents: 'none',
|
|
10937
|
+
zIndex: '1',
|
|
10938
|
+
width: `${childBoundingRect.width}px`,
|
|
10939
|
+
height: `${childBoundingRect.height}px`,
|
|
10940
|
+
position: 'absolute',
|
|
10941
|
+
top: '0',
|
|
10942
|
+
left: '0',
|
|
10943
|
+
});
|
|
10944
|
+
}
|
|
10945
|
+
showPreRender() {
|
|
10946
|
+
if (!this.isPreRenderAvailable()) {
|
|
10947
|
+
// if the Embed component is nor preRendered , Render it now and
|
|
10948
|
+
// show it (hide is defalt behaviour)
|
|
10949
|
+
console.log('No preRender found, creating new ');
|
|
10950
|
+
this.render();
|
|
10951
|
+
return;
|
|
10952
|
+
}
|
|
10953
|
+
this.syncPreRenderStyle();
|
|
10954
|
+
removeStyleProperties(this.preRenderWrapper, ['z-index', 'opacity', 'pointer-events']);
|
|
10955
|
+
setStyleProperties(this.preRenderShield, { zIndex: '-1' });
|
|
10956
|
+
}
|
|
10957
|
+
syncPreRenderStyle() {
|
|
10958
|
+
if (!this.el) {
|
|
10959
|
+
throw new Error('Embed element is not defined');
|
|
10960
|
+
}
|
|
10961
|
+
const elBoundingClient = this.el.getBoundingClientRect();
|
|
10962
|
+
setStyleProperties(this.preRenderWrapper, {
|
|
10963
|
+
top: `${elBoundingClient.y}px`, left: `${elBoundingClient.x}px`, width: `${elBoundingClient.width}px`, height: `${elBoundingClient.height}px`,
|
|
10964
|
+
});
|
|
10965
|
+
}
|
|
10758
10966
|
insertIntoDOM(child) {
|
|
10759
10967
|
var _a;
|
|
10760
10968
|
if (this.viewConfig.insertAsSibling) {
|
|
@@ -10969,6 +11177,13 @@ class TsEmbed {
|
|
|
10969
11177
|
this.isRendered = true;
|
|
10970
11178
|
return this;
|
|
10971
11179
|
}
|
|
11180
|
+
/**
|
|
11181
|
+
* Creates the preRender shell
|
|
11182
|
+
*/
|
|
11183
|
+
preRender() {
|
|
11184
|
+
this.isPreRendered = true;
|
|
11185
|
+
return this;
|
|
11186
|
+
}
|
|
10972
11187
|
/**
|
|
10973
11188
|
* Get the Post Url Params for THOUGHTSPOT from the current
|
|
10974
11189
|
* host app URL.
|
|
@@ -11050,8 +11265,10 @@ class V1Embed extends TsEmbed {
|
|
|
11050
11265
|
let queryString = queryParams;
|
|
11051
11266
|
if (!this.viewConfig.excludeRuntimeFiltersfromURL) {
|
|
11052
11267
|
const runtimeFilters = this.viewConfig.runtimeFilters;
|
|
11268
|
+
const runtimeParameters = this.viewConfig.runtimeParameters;
|
|
11269
|
+
const parameterQuery = getRuntimeParameters(runtimeParameters || []);
|
|
11053
11270
|
const filterQuery = getFilterQuery(runtimeFilters || []);
|
|
11054
|
-
queryString = [filterQuery, queryParams].filter(Boolean).join('&');
|
|
11271
|
+
queryString = [parameterQuery, filterQuery, queryParams].filter(Boolean).join('&');
|
|
11055
11272
|
}
|
|
11056
11273
|
return this.getV1EmbedBasePath(queryString);
|
|
11057
11274
|
}
|
|
@@ -11267,7 +11484,7 @@ class SearchEmbed extends TsEmbed {
|
|
|
11267
11484
|
}
|
|
11268
11485
|
getEmbedParams() {
|
|
11269
11486
|
var _a;
|
|
11270
|
-
const { hideResults, enableSearchAssist, forceTable, searchOptions, runtimeFilters, dataSource, dataSources, excludeRuntimeFiltersfromURL, dataPanelV2 = false, useLastSelectedSources = false, } = this.viewConfig;
|
|
11487
|
+
const { hideResults, enableSearchAssist, forceTable, searchOptions, runtimeFilters, dataSource, dataSources, excludeRuntimeFiltersfromURL, dataPanelV2 = false, useLastSelectedSources = false, runtimeParameters, } = this.viewConfig;
|
|
11271
11488
|
const queryParams = this.getBaseQueryParams();
|
|
11272
11489
|
queryParams[Param.HideActions] = [
|
|
11273
11490
|
...((_a = queryParams[Param.HideActions]) !== null && _a !== void 0 ? _a : []),
|
|
@@ -11306,6 +11523,9 @@ class SearchEmbed extends TsEmbed {
|
|
|
11306
11523
|
if (queryParamsString) {
|
|
11307
11524
|
query = `?${queryParamsString}`;
|
|
11308
11525
|
}
|
|
11526
|
+
const parameterQuery = getRuntimeParameters(runtimeParameters || []);
|
|
11527
|
+
if (parameterQuery)
|
|
11528
|
+
query += `&${parameterQuery}`;
|
|
11309
11529
|
const filterQuery = getFilterQuery(runtimeFilters || []);
|
|
11310
11530
|
if (filterQuery && !excludeRuntimeFiltersfromURL) {
|
|
11311
11531
|
query += `&${filterQuery}`;
|
|
@@ -11473,6 +11693,7 @@ class AppEmbed extends V1Embed {
|
|
|
11473
11693
|
* Gets the ThoughtSpot route of the page for a particular page ID.
|
|
11474
11694
|
*
|
|
11475
11695
|
* @param pageId The identifier for a page in the ThoughtSpot app.
|
|
11696
|
+
* @param modularHomeExperience
|
|
11476
11697
|
*/
|
|
11477
11698
|
getPageRoute(pageId, modularHomeExperience = false) {
|
|
11478
11699
|
switch (pageId) {
|
|
@@ -11616,7 +11837,7 @@ class LiveboardEmbed extends V1Embed {
|
|
|
11616
11837
|
let params = {};
|
|
11617
11838
|
params[Param.EmbedApp] = true;
|
|
11618
11839
|
params = this.getBaseQueryParams(params);
|
|
11619
|
-
const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, } = this.viewConfig;
|
|
11840
|
+
const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, runtimeParameters, } = this.viewConfig;
|
|
11620
11841
|
const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
|
|
11621
11842
|
|| this.viewConfig.preventPinboardFilterRemoval;
|
|
11622
11843
|
if (fullHeight === true) {
|
|
@@ -11644,7 +11865,10 @@ class LiveboardEmbed extends V1Embed {
|
|
|
11644
11865
|
if (hideTabPanel) {
|
|
11645
11866
|
params[Param.HideTabPanel] = hideTabPanel;
|
|
11646
11867
|
}
|
|
11647
|
-
|
|
11868
|
+
let queryParams = getQueryParamString(params, true);
|
|
11869
|
+
const parameterQuery = getRuntimeParameters(runtimeParameters || []);
|
|
11870
|
+
if (parameterQuery)
|
|
11871
|
+
queryParams += `&${parameterQuery}`;
|
|
11648
11872
|
return queryParams;
|
|
11649
11873
|
}
|
|
11650
11874
|
getIframeSuffixSrc(liveboardId, vizId, activeTabId) {
|
|
@@ -11708,6 +11932,11 @@ class LiveboardEmbed extends V1Embed {
|
|
|
11708
11932
|
this.renderV1Embed(src);
|
|
11709
11933
|
return this;
|
|
11710
11934
|
}
|
|
11935
|
+
preRender() {
|
|
11936
|
+
super.preRender();
|
|
11937
|
+
this.render();
|
|
11938
|
+
return this;
|
|
11939
|
+
}
|
|
11711
11940
|
navigateToLiveboard(liveboardId, vizId, activeTabId) {
|
|
11712
11941
|
const path = this.getIframeSuffixSrc(liveboardId, vizId, activeTabId);
|
|
11713
11942
|
this.viewConfig.liveboardId = liveboardId;
|
|
@@ -11742,7 +11971,7 @@ function getViewPropsAndListeners(props) {
|
|
|
11742
11971
|
});
|
|
11743
11972
|
}
|
|
11744
11973
|
|
|
11745
|
-
const componentFactory = (EmbedConstructor) => React.forwardRef((props, forwardedRef) => {
|
|
11974
|
+
const componentFactory = (EmbedConstructor, isPreRenderedComponent = false) => React.forwardRef((props, forwardedRef) => {
|
|
11746
11975
|
const ref = React.useRef(null);
|
|
11747
11976
|
const { className, ...embedProps } = props;
|
|
11748
11977
|
const { viewConfig, listeners } = getViewPropsAndListeners(embedProps);
|
|
@@ -11758,13 +11987,26 @@ const componentFactory = (EmbedConstructor) => React.forwardRef((props, forwarde
|
|
|
11758
11987
|
Object.keys(listeners).forEach((eventName) => {
|
|
11759
11988
|
tsEmbed.on(eventName, listeners[eventName]);
|
|
11760
11989
|
});
|
|
11761
|
-
|
|
11990
|
+
if (isPreRenderedComponent) {
|
|
11991
|
+
tsEmbed.preRender();
|
|
11992
|
+
}
|
|
11993
|
+
else if (props.preRenderId) {
|
|
11994
|
+
tsEmbed.showPreRender();
|
|
11995
|
+
}
|
|
11996
|
+
else {
|
|
11997
|
+
tsEmbed.render();
|
|
11998
|
+
}
|
|
11762
11999
|
if (forwardedRef) {
|
|
11763
12000
|
// eslint-disable-next-line no-param-reassign
|
|
11764
12001
|
forwardedRef.current = tsEmbed;
|
|
11765
12002
|
}
|
|
11766
12003
|
return () => {
|
|
11767
|
-
|
|
12004
|
+
if (!isPreRenderedComponent) {
|
|
12005
|
+
if (props.preRenderId)
|
|
12006
|
+
tsEmbed.hidePreRender();
|
|
12007
|
+
else
|
|
12008
|
+
tsEmbed.destroy();
|
|
12009
|
+
}
|
|
11768
12010
|
};
|
|
11769
12011
|
}, [viewConfig, listeners]);
|
|
11770
12012
|
return ((viewConfig.insertAsSibling)
|
|
@@ -11864,6 +12106,7 @@ const SageEmbed$1 = componentFactory(SageEmbed);
|
|
|
11864
12106
|
*/
|
|
11865
12107
|
function useEmbedRef() {
|
|
11866
12108
|
return React.useRef(null);
|
|
11867
|
-
}
|
|
12109
|
+
}
|
|
12110
|
+
const PreRenderedLiveboardEmbed = componentFactory(LiveboardEmbed, true);
|
|
11868
12111
|
|
|
11869
|
-
export { Action, AppEmbed$1 as AppEmbed, EmbedEvent, HomeLeftNavItem, HomepageModule, HostEvent, LiveboardEmbed$1 as LiveboardEmbed, Page, PinboardEmbed, RuntimeFilterOp, SageEmbed$1 as SageEmbed, SearchBarEmbed$1 as SearchBarEmbed, SearchEmbed$1 as SearchEmbed, useEmbedRef };
|
|
12112
|
+
export { Action, AppEmbed$1 as AppEmbed, EmbedEvent, HomeLeftNavItem, HomepageModule, HostEvent, LiveboardEmbed$1 as LiveboardEmbed, Page, PinboardEmbed, PreRenderedLiveboardEmbed, RuntimeFilterOp, SageEmbed$1 as SageEmbed, SearchBarEmbed$1 as SearchBarEmbed, SearchEmbed$1 as SearchEmbed, useEmbedRef };
|