@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.
Files changed (119) hide show
  1. package/cjs/package.json +2 -2
  2. package/cjs/src/embed/app.d.ts +1 -0
  3. package/cjs/src/embed/app.d.ts.map +1 -1
  4. package/cjs/src/embed/app.js +1 -0
  5. package/cjs/src/embed/app.js.map +1 -1
  6. package/cjs/src/embed/liveboard.d.ts +6 -1
  7. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  8. package/cjs/src/embed/liveboard.js +10 -2
  9. package/cjs/src/embed/liveboard.js.map +1 -1
  10. package/cjs/src/embed/liveboard.spec.js +23 -7
  11. package/cjs/src/embed/liveboard.spec.js.map +1 -1
  12. package/cjs/src/embed/search.d.ts +5 -1
  13. package/cjs/src/embed/search.d.ts.map +1 -1
  14. package/cjs/src/embed/search.js +4 -1
  15. package/cjs/src/embed/search.js.map +1 -1
  16. package/cjs/src/embed/search.spec.js +15 -0
  17. package/cjs/src/embed/search.spec.js.map +1 -1
  18. package/cjs/src/embed/ts-embed.d.ts +19 -0
  19. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  20. package/cjs/src/embed/ts-embed.js +136 -6
  21. package/cjs/src/embed/ts-embed.js.map +1 -1
  22. package/cjs/src/embed/ts-embed.spec.js +38 -1
  23. package/cjs/src/embed/ts-embed.spec.js.map +1 -1
  24. package/cjs/src/react/all-types-export.d.ts +1 -1
  25. package/cjs/src/react/all-types-export.d.ts.map +1 -1
  26. package/cjs/src/react/all-types-export.js +2 -1
  27. package/cjs/src/react/all-types-export.js.map +1 -1
  28. package/cjs/src/react/index.d.ts +1 -0
  29. package/cjs/src/react/index.d.ts.map +1 -1
  30. package/cjs/src/react/index.js +18 -4
  31. package/cjs/src/react/index.js.map +1 -1
  32. package/cjs/src/types.d.ts +87 -7
  33. package/cjs/src/types.d.ts.map +1 -1
  34. package/cjs/src/types.js +60 -5
  35. package/cjs/src/types.js.map +1 -1
  36. package/cjs/src/utils.d.ts +9 -1
  37. package/cjs/src/utils.d.ts.map +1 -1
  38. package/cjs/src/utils.js +36 -1
  39. package/cjs/src/utils.js.map +1 -1
  40. package/cjs/src/utils.spec.js +24 -0
  41. package/cjs/src/utils.spec.js.map +1 -1
  42. package/dist/src/embed/app.d.ts +1 -0
  43. package/dist/src/embed/app.d.ts.map +1 -1
  44. package/dist/src/embed/liveboard.d.ts +6 -1
  45. package/dist/src/embed/liveboard.d.ts.map +1 -1
  46. package/dist/src/embed/search.d.ts +5 -1
  47. package/dist/src/embed/search.d.ts.map +1 -1
  48. package/dist/src/embed/ts-embed.d.ts +19 -0
  49. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  50. package/dist/src/react/all-types-export.d.ts +1 -1
  51. package/dist/src/react/all-types-export.d.ts.map +1 -1
  52. package/dist/src/react/index.d.ts +1 -0
  53. package/dist/src/react/index.d.ts.map +1 -1
  54. package/dist/src/types.d.ts +87 -7
  55. package/dist/src/types.d.ts.map +1 -1
  56. package/dist/src/utils.d.ts +9 -1
  57. package/dist/src/utils.d.ts.map +1 -1
  58. package/dist/tsembed-react.es.js +264 -21
  59. package/dist/tsembed-react.js +264 -20
  60. package/dist/tsembed.es.js +245 -16
  61. package/dist/tsembed.js +245 -16
  62. package/dist/visual-embed-sdk-react-full.d.ts +115 -7
  63. package/dist/visual-embed-sdk-react.d.ts +115 -7
  64. package/dist/visual-embed-sdk.d.ts +114 -7
  65. package/lib/package.json +2 -2
  66. package/lib/src/embed/app.d.ts +1 -0
  67. package/lib/src/embed/app.d.ts.map +1 -1
  68. package/lib/src/embed/app.js +1 -0
  69. package/lib/src/embed/app.js.map +1 -1
  70. package/lib/src/embed/liveboard.d.ts +6 -1
  71. package/lib/src/embed/liveboard.d.ts.map +1 -1
  72. package/lib/src/embed/liveboard.js +11 -3
  73. package/lib/src/embed/liveboard.js.map +1 -1
  74. package/lib/src/embed/liveboard.spec.js +23 -7
  75. package/lib/src/embed/liveboard.spec.js.map +1 -1
  76. package/lib/src/embed/search.d.ts +5 -1
  77. package/lib/src/embed/search.d.ts.map +1 -1
  78. package/lib/src/embed/search.js +5 -2
  79. package/lib/src/embed/search.js.map +1 -1
  80. package/lib/src/embed/search.spec.js +15 -0
  81. package/lib/src/embed/search.spec.js.map +1 -1
  82. package/lib/src/embed/ts-embed.d.ts +19 -0
  83. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  84. package/lib/src/embed/ts-embed.js +137 -7
  85. package/lib/src/embed/ts-embed.js.map +1 -1
  86. package/lib/src/embed/ts-embed.spec.js +38 -1
  87. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  88. package/lib/src/react/all-types-export.d.ts +1 -1
  89. package/lib/src/react/all-types-export.d.ts.map +1 -1
  90. package/lib/src/react/all-types-export.js +1 -1
  91. package/lib/src/react/all-types-export.js.map +1 -1
  92. package/lib/src/react/index.d.ts +1 -0
  93. package/lib/src/react/index.d.ts.map +1 -1
  94. package/lib/src/react/index.js +17 -3
  95. package/lib/src/react/index.js.map +1 -1
  96. package/lib/src/types.d.ts +87 -7
  97. package/lib/src/types.d.ts.map +1 -1
  98. package/lib/src/types.js +60 -5
  99. package/lib/src/types.js.map +1 -1
  100. package/lib/src/utils.d.ts +9 -1
  101. package/lib/src/utils.d.ts.map +1 -1
  102. package/lib/src/utils.js +32 -0
  103. package/lib/src/utils.js.map +1 -1
  104. package/lib/src/utils.spec.js +25 -1
  105. package/lib/src/utils.spec.js.map +1 -1
  106. package/lib/src/visual-embed-sdk.d.ts +116 -9
  107. package/package.json +5 -5
  108. package/src/embed/app.ts +1 -0
  109. package/src/embed/liveboard.spec.ts +29 -10
  110. package/src/embed/liveboard.ts +19 -2
  111. package/src/embed/search.spec.ts +18 -0
  112. package/src/embed/search.ts +16 -1
  113. package/src/embed/ts-embed.spec.ts +40 -1
  114. package/src/embed/ts-embed.ts +174 -14
  115. package/src/react/all-types-export.ts +1 -0
  116. package/src/react/index.tsx +25 -8
  117. package/src/types.ts +97 -16
  118. package/src/utils.spec.ts +31 -0
  119. package/src/utils.ts +43 -0
@@ -28,6 +28,24 @@ const getFilterQuery = (runtimeFilters) => {
28
28
  }
29
29
  return null;
30
30
  };
31
+ /**
32
+ * Construct a runtime parameter override query string from the given option.
33
+ *
34
+ * @param runtimeParameters
35
+ */
36
+ const getRuntimeParameters = (runtimeParameters) => {
37
+ if (runtimeParameters && runtimeParameters.length) {
38
+ const params = runtimeParameters.map((param, valueIndex) => {
39
+ const index = valueIndex + 1;
40
+ const filterExpr = [];
41
+ filterExpr.push(`param${index}=${encodeURIComponent(param.name)}`);
42
+ filterExpr.push(`paramVal${index}=${encodeURIComponent(param.value)}`);
43
+ return filterExpr.join('&');
44
+ });
45
+ return `${params.join('&')}`;
46
+ }
47
+ return null;
48
+ };
31
49
  /**
32
50
  * Convert a value to a string representation to be sent as a query
33
51
  * parameter to the ThoughtSpot app.
@@ -175,7 +193,21 @@ const getRuntimeFilters = (runtimefilters) => getFilterQuery(runtimefilters || [
175
193
  */
176
194
  function getDOMNode(domSelector) {
177
195
  return typeof domSelector === 'string' ? document.querySelector(domSelector) : domSelector;
178
- }
196
+ }
197
+ const setStyleProperties = (element, styleProperties) => {
198
+ if (!element || !styleProperties)
199
+ return;
200
+ Object.keys(styleProperties).forEach((styleProperty) => {
201
+ element.style[styleProperty] = styleProperties[styleProperty].toString();
202
+ });
203
+ };
204
+ const removeStyleProperties = (element, styleProperties) => {
205
+ if (!element || !styleProperties)
206
+ return;
207
+ styleProperties.forEach((styleProperty) => {
208
+ element.style.removeProperty(styleProperty);
209
+ });
210
+ };
179
211
 
180
212
  /**
181
213
  * Copyright (c) 2023
@@ -886,21 +918,21 @@ var EmbedEvent;
886
918
  */
887
919
  EmbedEvent["InsertIntoSlide"] = "insertInToSlide";
888
920
  /**
921
+ * @hidden
889
922
  * Emitted when a user changes any filter on a Liveboard.
890
- *
891
923
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
892
924
  */
893
925
  EmbedEvent["FilterChanged"] = "filterChanged";
894
926
  /**
895
927
  * Emitted when a user click on Go button in Sage Embed
896
928
  *
897
- * @version SDK : 1.27.0 | Thoughtspot: 9.7.0.cl
929
+ * @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
898
930
  */
899
931
  EmbedEvent["SageEmbedQuery"] = "sageEmbedQuery";
900
932
  /**
901
933
  * Emitten when a user select data source in Sage Embed
902
934
  *
903
- * @version SDK : 1.27.0 | Thoughtspot: 9.7.0.cl
935
+ * @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
904
936
  */
905
937
  EmbedEvent["SageWorksheetUpdated"] = "sageWorksheetUpdated";
906
938
  /**
@@ -909,6 +941,51 @@ var EmbedEvent;
909
941
  * @version SDK : 1.27.0 | Thoughtspot: 9.8.0.cl
910
942
  */
911
943
  EmbedEvent["UpdateConnection"] = "updateConnection";
944
+ /**
945
+ * Emitted when name, status (private or public) or filter values of a
946
+ * PersonalisedView is updated.
947
+ *
948
+ * @returns viewName: string
949
+ * @returns viewId: string
950
+ * @returns liveboardId: string
951
+ * @returns isPublic: boolean
952
+ * @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
953
+ */
954
+ EmbedEvent["UpdatePersonalisedView"] = "updatePersonalisedView";
955
+ /**
956
+ * Emitted when a PersonalisedView is saved.
957
+ *
958
+ * @returns viewName: string
959
+ * @returns viewId: string
960
+ * @returns liveboardId: string
961
+ * @returns isPublic: boolean
962
+ * @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
963
+ */
964
+ EmbedEvent["SavePersonalisedView"] = "savePersonalisedView";
965
+ /**
966
+ * Emitted when a Liveboard is reset.
967
+ *
968
+ * @returns viewName: string
969
+ * @returns viewId: string
970
+ * @returns liveboardId: string
971
+ * @returns isPublic: boolean
972
+ * @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
973
+ */
974
+ EmbedEvent["ResetLiveboard"] = "resetLiveboard";
975
+ /**
976
+ * Emitted when a PersonalisedView is deleted.
977
+ *
978
+ * @returns views: string[]
979
+ * @returns liveboardId: string
980
+ * @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
981
+ */
982
+ EmbedEvent["DeletePersonalisedView"] = "deletePersonalisedView";
983
+ /**
984
+ * Emitten when a user creates a new worksheet
985
+ *
986
+ * @version SDK : 1.27.0 | Thoughtspot: 9.8.0.cl
987
+ */
988
+ EmbedEvent["CreateWorksheet"] = "createWorksheet";
912
989
  })(EmbedEvent || (EmbedEvent = {}));
913
990
  /**
914
991
  * Event types that can be triggered by the host application
@@ -1553,16 +1630,16 @@ var HostEvent;
1553
1630
  */
1554
1631
  HostEvent["ResetSearch"] = "resetSearch";
1555
1632
  /**
1633
+ * @hidden
1556
1634
  * Gets the currents visible and runtime filters applied on a Liveboard
1557
- *
1558
1635
  * @example
1559
1636
  * liveboardEmbed.trigger(HostEvent.GetFilters)
1560
1637
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
1561
1638
  */
1562
1639
  HostEvent["GetFilters"] = "getFilters";
1563
1640
  /**
1641
+ * @hidden
1564
1642
  * Updates the visible filters on the Liveboard.
1565
- *
1566
1643
  * @param - filter: filter object containing column name and filter operation and values
1567
1644
  * @example
1568
1645
  *
@@ -2550,6 +2627,16 @@ var Action;
2550
2627
  * ```
2551
2628
  */
2552
2629
  Action["ManageMonitor"] = "ManageMonitor";
2630
+ /**
2631
+ * Action ID for Liveboard Personalised Views dropdown
2632
+ *
2633
+ * @example
2634
+ * ```js
2635
+ * disabledActions: [Action.PersonalisedViewsDropdown]
2636
+ * ```
2637
+ * @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
2638
+ */
2639
+ Action["PersonalisedViewsDropdown"] = "personalisedViewsDropdown";
2553
2640
  })(Action || (Action = {}));
2554
2641
  // eslint-disable-next-line no-shadow
2555
2642
  var OperationType;
@@ -11183,7 +11270,7 @@ function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
11183
11270
  });
11184
11271
  }
11185
11272
 
11186
- var name="@thoughtspot/visual-embed-sdk";var version="1.24.0-alpha.6";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 is-publish-allowed && npm run test && 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};
11273
+ 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};
11187
11274
 
11188
11275
  /**
11189
11276
  * Copyright (c) 2022
@@ -11242,11 +11329,14 @@ class TsEmbed {
11242
11329
  data: {
11243
11330
  customisations: getCustomisations(this.embedConfig, this.viewConfig),
11244
11331
  authToken,
11245
- runtimeFilterParams: getRuntimeFilters(this.viewConfig.runtimeFilters),
11332
+ runtimeFilterParams: this.viewConfig.excludeRuntimeFiltersfromURL
11333
+ ? getRuntimeFilters(this.viewConfig.runtimeFilters)
11334
+ : null,
11246
11335
  hiddenHomepageModules: this.viewConfig.hiddenHomepageModules || [],
11247
11336
  hostConfig: this.embedConfig.hostConfig,
11248
11337
  hiddenHomeLeftNavItems: ((_a = this.viewConfig) === null || _a === void 0 ? void 0 : _a.hiddenHomeLeftNavItems)
11249
- ? (_b = this.viewConfig) === null || _b === void 0 ? void 0 : _b.hiddenHomeLeftNavItems : [],
11338
+ ? (_b = this.viewConfig) === null || _b === void 0 ? void 0 : _b.hiddenHomeLeftNavItems
11339
+ : [],
11250
11340
  },
11251
11341
  });
11252
11342
  };
@@ -11575,7 +11665,12 @@ class TsEmbed {
11575
11665
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
11576
11666
  return (_a = getAuthPromise()) === null || _a === void 0 ? void 0 : _a.then((isLoggedIn) => {
11577
11667
  if (!isLoggedIn) {
11578
- this.insertIntoDOM(this.embedConfig.loginFailedMessage);
11668
+ if (this.isPreRendered) {
11669
+ this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
11670
+ }
11671
+ else {
11672
+ this.insertIntoDOM(this.embedConfig.loginFailedMessage);
11673
+ }
11579
11674
  return;
11580
11675
  }
11581
11676
  this.iFrame = this.iFrame || this.createIframeEl(url);
@@ -11597,7 +11692,12 @@ class TsEmbed {
11597
11692
  this.iFrame.addEventListener('error', () => {
11598
11693
  nextInQueue();
11599
11694
  });
11600
- this.insertIntoDOM(this.iFrame);
11695
+ if (this.isPreRendered) {
11696
+ this.insertIntoDOMForPreRender(this.iFrame);
11697
+ }
11698
+ else {
11699
+ this.insertIntoDOM(this.iFrame);
11700
+ }
11601
11701
  const prefetchIframe = document.querySelectorAll('.prefetchIframe');
11602
11702
  if (prefetchIframe.length) {
11603
11703
  prefetchIframe.forEach((el) => {
@@ -11610,11 +11710,119 @@ class TsEmbed {
11610
11710
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_FAILED, {
11611
11711
  error: JSON.stringify(error),
11612
11712
  });
11613
- this.insertIntoDOM(this.embedConfig.loginFailedMessage);
11713
+ if (this.isPreRendered) {
11714
+ this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
11715
+ }
11716
+ else {
11717
+ this.insertIntoDOM(this.embedConfig.loginFailedMessage);
11718
+ }
11614
11719
  this.handleError(error);
11615
11720
  });
11616
11721
  });
11617
11722
  }
11723
+ getPreRenderIds() {
11724
+ return {
11725
+ wrapper: `tsEmbed-pre-render-wrapper-${this.viewConfig.preRenderId}`,
11726
+ shield: `tsEmbed-pre-render-shield-${this.viewConfig.preRenderId}`,
11727
+ child: `tsEmbed-pre-render-child-${this.viewConfig.preRenderId}`,
11728
+ };
11729
+ }
11730
+ createPreRenderWrapper(child) {
11731
+ if (!this.viewConfig.preRenderId) {
11732
+ throw new Error('Pre render id is required');
11733
+ }
11734
+ const preRenderIds = this.getPreRenderIds();
11735
+ const stalePreRenderWrapper = document.getElementById(preRenderIds.wrapper);
11736
+ if (stalePreRenderWrapper) {
11737
+ console.log('Found stale wrapper , removing');
11738
+ stalePreRenderWrapper.remove();
11739
+ }
11740
+ const preRenderWrapper = document.createElement('div');
11741
+ preRenderWrapper.id = preRenderIds.wrapper;
11742
+ setStyleProperties(preRenderWrapper, { position: 'absolute', width: '100vw', height: '100vh' });
11743
+ const preRenderShield = document.createElement('div');
11744
+ preRenderShield.id = preRenderIds.shield;
11745
+ setStyleProperties(preRenderShield, { position: 'absolute', width: '100%', height: '100%' });
11746
+ child.id = preRenderIds.child;
11747
+ preRenderWrapper.appendChild(child);
11748
+ preRenderWrapper.appendChild(preRenderShield);
11749
+ this.preRenderWrapper = preRenderWrapper;
11750
+ this.preRenderShield = preRenderShield;
11751
+ this.preRenderChild = child;
11752
+ return preRenderWrapper;
11753
+ }
11754
+ isPreRenderAvailable() {
11755
+ const preRenderIds = this.getPreRenderIds();
11756
+ this.preRenderWrapper = this.preRenderWrapper
11757
+ || document.getElementById(preRenderIds.wrapper);
11758
+ this.preRenderShield = this.preRenderShield
11759
+ || document.getElementById(preRenderIds.shield);
11760
+ this.preRenderChild = this.preRenderChild
11761
+ || document.getElementById(preRenderIds.child);
11762
+ return !!this.preRenderWrapper && !!this.preRenderShield
11763
+ && !!this.preRenderChild;
11764
+ }
11765
+ insertIntoDOMForPreRender(child) {
11766
+ let childNode;
11767
+ if (typeof child === 'string') {
11768
+ const divChildNode = document.createElement('div');
11769
+ divChildNode.innerHTML = child;
11770
+ childNode = divChildNode;
11771
+ }
11772
+ else {
11773
+ childNode = child;
11774
+ }
11775
+ const preRenderWrapper = this.createPreRenderWrapper(childNode);
11776
+ document.body.appendChild(preRenderWrapper);
11777
+ this.hidePreRender();
11778
+ }
11779
+ hidePreRender() {
11780
+ if (!this.isPreRenderAvailable()) {
11781
+ // if the embed component is not preRendered , nothing to hide
11782
+ console.log('No preRender found, not hiding ');
11783
+ return;
11784
+ }
11785
+ setStyleProperties(this.preRenderWrapper, {
11786
+ opacity: '0',
11787
+ pointerEvents: 'none',
11788
+ zIndex: '-1000',
11789
+ position: 'absolute ',
11790
+ top: '0',
11791
+ left: '0',
11792
+ });
11793
+ const childBoundingRect = this.preRenderChild.getBoundingClientRect();
11794
+ setStyleProperties(this.preRenderShield, {
11795
+ opacity: '0',
11796
+ pointerEvents: 'none',
11797
+ zIndex: '1',
11798
+ width: `${childBoundingRect.width}px`,
11799
+ height: `${childBoundingRect.height}px`,
11800
+ position: 'absolute',
11801
+ top: '0',
11802
+ left: '0',
11803
+ });
11804
+ }
11805
+ showPreRender() {
11806
+ if (!this.isPreRenderAvailable()) {
11807
+ // if the Embed component is nor preRendered , Render it now and
11808
+ // show it (hide is defalt behaviour)
11809
+ console.log('No preRender found, creating new ');
11810
+ this.render();
11811
+ return;
11812
+ }
11813
+ this.syncPreRenderStyle();
11814
+ removeStyleProperties(this.preRenderWrapper, ['z-index', 'opacity', 'pointer-events']);
11815
+ setStyleProperties(this.preRenderShield, { zIndex: '-1' });
11816
+ }
11817
+ syncPreRenderStyle() {
11818
+ if (!this.el) {
11819
+ throw new Error('Embed element is not defined');
11820
+ }
11821
+ const elBoundingClient = this.el.getBoundingClientRect();
11822
+ setStyleProperties(this.preRenderWrapper, {
11823
+ top: `${elBoundingClient.y}px`, left: `${elBoundingClient.x}px`, width: `${elBoundingClient.width}px`, height: `${elBoundingClient.height}px`,
11824
+ });
11825
+ }
11618
11826
  insertIntoDOM(child) {
11619
11827
  var _a;
11620
11828
  if (this.viewConfig.insertAsSibling) {
@@ -11829,6 +12037,13 @@ class TsEmbed {
11829
12037
  this.isRendered = true;
11830
12038
  return this;
11831
12039
  }
12040
+ /**
12041
+ * Creates the preRender shell
12042
+ */
12043
+ preRender() {
12044
+ this.isPreRendered = true;
12045
+ return this;
12046
+ }
11832
12047
  /**
11833
12048
  * Get the Post Url Params for THOUGHTSPOT from the current
11834
12049
  * host app URL.
@@ -11910,8 +12125,10 @@ class V1Embed extends TsEmbed {
11910
12125
  let queryString = queryParams;
11911
12126
  if (!this.viewConfig.excludeRuntimeFiltersfromURL) {
11912
12127
  const runtimeFilters = this.viewConfig.runtimeFilters;
12128
+ const runtimeParameters = this.viewConfig.runtimeParameters;
12129
+ const parameterQuery = getRuntimeParameters(runtimeParameters || []);
11913
12130
  const filterQuery = getFilterQuery(runtimeFilters || []);
11914
- queryString = [filterQuery, queryParams].filter(Boolean).join('&');
12131
+ queryString = [parameterQuery, filterQuery, queryParams].filter(Boolean).join('&');
11915
12132
  }
11916
12133
  return this.getV1EmbedBasePath(queryString);
11917
12134
  }
@@ -12070,6 +12287,7 @@ class AppEmbed extends V1Embed {
12070
12287
  * Gets the ThoughtSpot route of the page for a particular page ID.
12071
12288
  *
12072
12289
  * @param pageId The identifier for a page in the ThoughtSpot app.
12290
+ * @param modularHomeExperience
12073
12291
  */
12074
12292
  getPageRoute(pageId, modularHomeExperience = false) {
12075
12293
  switch (pageId) {
@@ -12213,7 +12431,7 @@ class LiveboardEmbed extends V1Embed {
12213
12431
  let params = {};
12214
12432
  params[Param.EmbedApp] = true;
12215
12433
  params = this.getBaseQueryParams(params);
12216
- const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, } = this.viewConfig;
12434
+ const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, runtimeParameters, } = this.viewConfig;
12217
12435
  const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
12218
12436
  || this.viewConfig.preventPinboardFilterRemoval;
12219
12437
  if (fullHeight === true) {
@@ -12241,7 +12459,10 @@ class LiveboardEmbed extends V1Embed {
12241
12459
  if (hideTabPanel) {
12242
12460
  params[Param.HideTabPanel] = hideTabPanel;
12243
12461
  }
12244
- const queryParams = getQueryParamString(params, true);
12462
+ let queryParams = getQueryParamString(params, true);
12463
+ const parameterQuery = getRuntimeParameters(runtimeParameters || []);
12464
+ if (parameterQuery)
12465
+ queryParams += `&${parameterQuery}`;
12245
12466
  return queryParams;
12246
12467
  }
12247
12468
  getIframeSuffixSrc(liveboardId, vizId, activeTabId) {
@@ -12305,6 +12526,11 @@ class LiveboardEmbed extends V1Embed {
12305
12526
  this.renderV1Embed(src);
12306
12527
  return this;
12307
12528
  }
12529
+ preRender() {
12530
+ super.preRender();
12531
+ this.render();
12532
+ return this;
12533
+ }
12308
12534
  navigateToLiveboard(liveboardId, vizId, activeTabId) {
12309
12535
  const path = this.getIframeSuffixSrc(liveboardId, vizId, activeTabId);
12310
12536
  this.viewConfig.liveboardId = liveboardId;
@@ -12365,7 +12591,7 @@ class SearchEmbed extends TsEmbed {
12365
12591
  }
12366
12592
  getEmbedParams() {
12367
12593
  var _a;
12368
- const { hideResults, enableSearchAssist, forceTable, searchOptions, runtimeFilters, dataSource, dataSources, excludeRuntimeFiltersfromURL, dataPanelV2 = false, useLastSelectedSources = false, } = this.viewConfig;
12594
+ const { hideResults, enableSearchAssist, forceTable, searchOptions, runtimeFilters, dataSource, dataSources, excludeRuntimeFiltersfromURL, dataPanelV2 = false, useLastSelectedSources = false, runtimeParameters, } = this.viewConfig;
12369
12595
  const queryParams = this.getBaseQueryParams();
12370
12596
  queryParams[Param.HideActions] = [
12371
12597
  ...((_a = queryParams[Param.HideActions]) !== null && _a !== void 0 ? _a : []),
@@ -12404,6 +12630,9 @@ class SearchEmbed extends TsEmbed {
12404
12630
  if (queryParamsString) {
12405
12631
  query = `?${queryParamsString}`;
12406
12632
  }
12633
+ const parameterQuery = getRuntimeParameters(runtimeParameters || []);
12634
+ if (parameterQuery)
12635
+ query += `&${parameterQuery}`;
12407
12636
  const filterQuery = getFilterQuery(runtimeFilters || []);
12408
12637
  if (filterQuery && !excludeRuntimeFiltersfromURL) {
12409
12638
  query += `&${filterQuery}`;