@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
package/dist/tsembed.js CHANGED
@@ -34,6 +34,24 @@
34
34
  }
35
35
  return null;
36
36
  };
37
+ /**
38
+ * Construct a runtime parameter override query string from the given option.
39
+ *
40
+ * @param runtimeParameters
41
+ */
42
+ const getRuntimeParameters = (runtimeParameters) => {
43
+ if (runtimeParameters && runtimeParameters.length) {
44
+ const params = runtimeParameters.map((param, valueIndex) => {
45
+ const index = valueIndex + 1;
46
+ const filterExpr = [];
47
+ filterExpr.push(`param${index}=${encodeURIComponent(param.name)}`);
48
+ filterExpr.push(`paramVal${index}=${encodeURIComponent(param.value)}`);
49
+ return filterExpr.join('&');
50
+ });
51
+ return `${params.join('&')}`;
52
+ }
53
+ return null;
54
+ };
37
55
  /**
38
56
  * Convert a value to a string representation to be sent as a query
39
57
  * parameter to the ThoughtSpot app.
@@ -181,7 +199,21 @@
181
199
  */
182
200
  function getDOMNode(domSelector) {
183
201
  return typeof domSelector === 'string' ? document.querySelector(domSelector) : domSelector;
184
- }
202
+ }
203
+ const setStyleProperties = (element, styleProperties) => {
204
+ if (!element || !styleProperties)
205
+ return;
206
+ Object.keys(styleProperties).forEach((styleProperty) => {
207
+ element.style[styleProperty] = styleProperties[styleProperty].toString();
208
+ });
209
+ };
210
+ const removeStyleProperties = (element, styleProperties) => {
211
+ if (!element || !styleProperties)
212
+ return;
213
+ styleProperties.forEach((styleProperty) => {
214
+ element.style.removeProperty(styleProperty);
215
+ });
216
+ };
185
217
 
186
218
  /**
187
219
  * Copyright (c) 2023
@@ -851,21 +883,21 @@
851
883
  */
852
884
  EmbedEvent["InsertIntoSlide"] = "insertInToSlide";
853
885
  /**
886
+ * @hidden
854
887
  * Emitted when a user changes any filter on a Liveboard.
855
- *
856
888
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
857
889
  */
858
890
  EmbedEvent["FilterChanged"] = "filterChanged";
859
891
  /**
860
892
  * Emitted when a user click on Go button in Sage Embed
861
893
  *
862
- * @version SDK : 1.27.0 | Thoughtspot: 9.7.0.cl
894
+ * @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
863
895
  */
864
896
  EmbedEvent["SageEmbedQuery"] = "sageEmbedQuery";
865
897
  /**
866
898
  * Emitten when a user select data source in Sage Embed
867
899
  *
868
- * @version SDK : 1.27.0 | Thoughtspot: 9.7.0.cl
900
+ * @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
869
901
  */
870
902
  EmbedEvent["SageWorksheetUpdated"] = "sageWorksheetUpdated";
871
903
  /**
@@ -874,6 +906,51 @@
874
906
  * @version SDK : 1.27.0 | Thoughtspot: 9.8.0.cl
875
907
  */
876
908
  EmbedEvent["UpdateConnection"] = "updateConnection";
909
+ /**
910
+ * Emitted when name, status (private or public) or filter values of a
911
+ * PersonalisedView is updated.
912
+ *
913
+ * @returns viewName: string
914
+ * @returns viewId: string
915
+ * @returns liveboardId: string
916
+ * @returns isPublic: boolean
917
+ * @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
918
+ */
919
+ EmbedEvent["UpdatePersonalisedView"] = "updatePersonalisedView";
920
+ /**
921
+ * Emitted when a PersonalisedView is saved.
922
+ *
923
+ * @returns viewName: string
924
+ * @returns viewId: string
925
+ * @returns liveboardId: string
926
+ * @returns isPublic: boolean
927
+ * @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
928
+ */
929
+ EmbedEvent["SavePersonalisedView"] = "savePersonalisedView";
930
+ /**
931
+ * Emitted when a Liveboard is reset.
932
+ *
933
+ * @returns viewName: string
934
+ * @returns viewId: string
935
+ * @returns liveboardId: string
936
+ * @returns isPublic: boolean
937
+ * @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
938
+ */
939
+ EmbedEvent["ResetLiveboard"] = "resetLiveboard";
940
+ /**
941
+ * Emitted when a PersonalisedView is deleted.
942
+ *
943
+ * @returns views: string[]
944
+ * @returns liveboardId: string
945
+ * @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
946
+ */
947
+ EmbedEvent["DeletePersonalisedView"] = "deletePersonalisedView";
948
+ /**
949
+ * Emitten when a user creates a new worksheet
950
+ *
951
+ * @version SDK : 1.27.0 | Thoughtspot: 9.8.0.cl
952
+ */
953
+ EmbedEvent["CreateWorksheet"] = "createWorksheet";
877
954
  })(exports.EmbedEvent || (exports.EmbedEvent = {}));
878
955
  (function (HostEvent) {
879
956
  /**
@@ -1494,16 +1571,16 @@
1494
1571
  */
1495
1572
  HostEvent["ResetSearch"] = "resetSearch";
1496
1573
  /**
1574
+ * @hidden
1497
1575
  * Gets the currents visible and runtime filters applied on a Liveboard
1498
- *
1499
1576
  * @example
1500
1577
  * liveboardEmbed.trigger(HostEvent.GetFilters)
1501
1578
  * @version SDK: 1.23.0 | ThoughtSpot: 9.4.0.cl
1502
1579
  */
1503
1580
  HostEvent["GetFilters"] = "getFilters";
1504
1581
  /**
1582
+ * @hidden
1505
1583
  * Updates the visible filters on the Liveboard.
1506
- *
1507
1584
  * @param - filter: filter object containing column name and filter operation and values
1508
1585
  * @example
1509
1586
  *
@@ -2456,6 +2533,16 @@
2456
2533
  * ```
2457
2534
  */
2458
2535
  Action["ManageMonitor"] = "ManageMonitor";
2536
+ /**
2537
+ * Action ID for Liveboard Personalised Views dropdown
2538
+ *
2539
+ * @example
2540
+ * ```js
2541
+ * disabledActions: [Action.PersonalisedViewsDropdown]
2542
+ * ```
2543
+ * @version SDK : 1.26.0 | Thoughtspot: 9.7.0.cl
2544
+ */
2545
+ Action["PersonalisedViewsDropdown"] = "personalisedViewsDropdown";
2459
2546
  })(exports.Action || (exports.Action = {}));
2460
2547
  // eslint-disable-next-line no-shadow
2461
2548
  var OperationType;
@@ -11065,7 +11152,7 @@
11065
11152
  });
11066
11153
  }
11067
11154
 
11068
- 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$1={".":{"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$1,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};
11155
+ 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$1={".":{"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$1,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};
11069
11156
 
11070
11157
  /**
11071
11158
  * Copyright (c) 2022
@@ -11124,11 +11211,14 @@
11124
11211
  data: {
11125
11212
  customisations: getCustomisations(this.embedConfig, this.viewConfig),
11126
11213
  authToken,
11127
- runtimeFilterParams: getRuntimeFilters(this.viewConfig.runtimeFilters),
11214
+ runtimeFilterParams: this.viewConfig.excludeRuntimeFiltersfromURL
11215
+ ? getRuntimeFilters(this.viewConfig.runtimeFilters)
11216
+ : null,
11128
11217
  hiddenHomepageModules: this.viewConfig.hiddenHomepageModules || [],
11129
11218
  hostConfig: this.embedConfig.hostConfig,
11130
11219
  hiddenHomeLeftNavItems: ((_a = this.viewConfig) === null || _a === void 0 ? void 0 : _a.hiddenHomeLeftNavItems)
11131
- ? (_b = this.viewConfig) === null || _b === void 0 ? void 0 : _b.hiddenHomeLeftNavItems : [],
11220
+ ? (_b = this.viewConfig) === null || _b === void 0 ? void 0 : _b.hiddenHomeLeftNavItems
11221
+ : [],
11132
11222
  },
11133
11223
  });
11134
11224
  };
@@ -11457,7 +11547,12 @@
11457
11547
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
11458
11548
  return (_a = getAuthPromise()) === null || _a === void 0 ? void 0 : _a.then((isLoggedIn) => {
11459
11549
  if (!isLoggedIn) {
11460
- this.insertIntoDOM(this.embedConfig.loginFailedMessage);
11550
+ if (this.isPreRendered) {
11551
+ this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
11552
+ }
11553
+ else {
11554
+ this.insertIntoDOM(this.embedConfig.loginFailedMessage);
11555
+ }
11461
11556
  return;
11462
11557
  }
11463
11558
  this.iFrame = this.iFrame || this.createIframeEl(url);
@@ -11479,7 +11574,12 @@
11479
11574
  this.iFrame.addEventListener('error', () => {
11480
11575
  nextInQueue();
11481
11576
  });
11482
- this.insertIntoDOM(this.iFrame);
11577
+ if (this.isPreRendered) {
11578
+ this.insertIntoDOMForPreRender(this.iFrame);
11579
+ }
11580
+ else {
11581
+ this.insertIntoDOM(this.iFrame);
11582
+ }
11483
11583
  const prefetchIframe = document.querySelectorAll('.prefetchIframe');
11484
11584
  if (prefetchIframe.length) {
11485
11585
  prefetchIframe.forEach((el) => {
@@ -11492,11 +11592,119 @@
11492
11592
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_FAILED, {
11493
11593
  error: JSON.stringify(error),
11494
11594
  });
11495
- this.insertIntoDOM(this.embedConfig.loginFailedMessage);
11595
+ if (this.isPreRendered) {
11596
+ this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage);
11597
+ }
11598
+ else {
11599
+ this.insertIntoDOM(this.embedConfig.loginFailedMessage);
11600
+ }
11496
11601
  this.handleError(error);
11497
11602
  });
11498
11603
  });
11499
11604
  }
11605
+ getPreRenderIds() {
11606
+ return {
11607
+ wrapper: `tsEmbed-pre-render-wrapper-${this.viewConfig.preRenderId}`,
11608
+ shield: `tsEmbed-pre-render-shield-${this.viewConfig.preRenderId}`,
11609
+ child: `tsEmbed-pre-render-child-${this.viewConfig.preRenderId}`,
11610
+ };
11611
+ }
11612
+ createPreRenderWrapper(child) {
11613
+ if (!this.viewConfig.preRenderId) {
11614
+ throw new Error('Pre render id is required');
11615
+ }
11616
+ const preRenderIds = this.getPreRenderIds();
11617
+ const stalePreRenderWrapper = document.getElementById(preRenderIds.wrapper);
11618
+ if (stalePreRenderWrapper) {
11619
+ console.log('Found stale wrapper , removing');
11620
+ stalePreRenderWrapper.remove();
11621
+ }
11622
+ const preRenderWrapper = document.createElement('div');
11623
+ preRenderWrapper.id = preRenderIds.wrapper;
11624
+ setStyleProperties(preRenderWrapper, { position: 'absolute', width: '100vw', height: '100vh' });
11625
+ const preRenderShield = document.createElement('div');
11626
+ preRenderShield.id = preRenderIds.shield;
11627
+ setStyleProperties(preRenderShield, { position: 'absolute', width: '100%', height: '100%' });
11628
+ child.id = preRenderIds.child;
11629
+ preRenderWrapper.appendChild(child);
11630
+ preRenderWrapper.appendChild(preRenderShield);
11631
+ this.preRenderWrapper = preRenderWrapper;
11632
+ this.preRenderShield = preRenderShield;
11633
+ this.preRenderChild = child;
11634
+ return preRenderWrapper;
11635
+ }
11636
+ isPreRenderAvailable() {
11637
+ const preRenderIds = this.getPreRenderIds();
11638
+ this.preRenderWrapper = this.preRenderWrapper
11639
+ || document.getElementById(preRenderIds.wrapper);
11640
+ this.preRenderShield = this.preRenderShield
11641
+ || document.getElementById(preRenderIds.shield);
11642
+ this.preRenderChild = this.preRenderChild
11643
+ || document.getElementById(preRenderIds.child);
11644
+ return !!this.preRenderWrapper && !!this.preRenderShield
11645
+ && !!this.preRenderChild;
11646
+ }
11647
+ insertIntoDOMForPreRender(child) {
11648
+ let childNode;
11649
+ if (typeof child === 'string') {
11650
+ const divChildNode = document.createElement('div');
11651
+ divChildNode.innerHTML = child;
11652
+ childNode = divChildNode;
11653
+ }
11654
+ else {
11655
+ childNode = child;
11656
+ }
11657
+ const preRenderWrapper = this.createPreRenderWrapper(childNode);
11658
+ document.body.appendChild(preRenderWrapper);
11659
+ this.hidePreRender();
11660
+ }
11661
+ hidePreRender() {
11662
+ if (!this.isPreRenderAvailable()) {
11663
+ // if the embed component is not preRendered , nothing to hide
11664
+ console.log('No preRender found, not hiding ');
11665
+ return;
11666
+ }
11667
+ setStyleProperties(this.preRenderWrapper, {
11668
+ opacity: '0',
11669
+ pointerEvents: 'none',
11670
+ zIndex: '-1000',
11671
+ position: 'absolute ',
11672
+ top: '0',
11673
+ left: '0',
11674
+ });
11675
+ const childBoundingRect = this.preRenderChild.getBoundingClientRect();
11676
+ setStyleProperties(this.preRenderShield, {
11677
+ opacity: '0',
11678
+ pointerEvents: 'none',
11679
+ zIndex: '1',
11680
+ width: `${childBoundingRect.width}px`,
11681
+ height: `${childBoundingRect.height}px`,
11682
+ position: 'absolute',
11683
+ top: '0',
11684
+ left: '0',
11685
+ });
11686
+ }
11687
+ showPreRender() {
11688
+ if (!this.isPreRenderAvailable()) {
11689
+ // if the Embed component is nor preRendered , Render it now and
11690
+ // show it (hide is defalt behaviour)
11691
+ console.log('No preRender found, creating new ');
11692
+ this.render();
11693
+ return;
11694
+ }
11695
+ this.syncPreRenderStyle();
11696
+ removeStyleProperties(this.preRenderWrapper, ['z-index', 'opacity', 'pointer-events']);
11697
+ setStyleProperties(this.preRenderShield, { zIndex: '-1' });
11698
+ }
11699
+ syncPreRenderStyle() {
11700
+ if (!this.el) {
11701
+ throw new Error('Embed element is not defined');
11702
+ }
11703
+ const elBoundingClient = this.el.getBoundingClientRect();
11704
+ setStyleProperties(this.preRenderWrapper, {
11705
+ top: `${elBoundingClient.y}px`, left: `${elBoundingClient.x}px`, width: `${elBoundingClient.width}px`, height: `${elBoundingClient.height}px`,
11706
+ });
11707
+ }
11500
11708
  insertIntoDOM(child) {
11501
11709
  var _a;
11502
11710
  if (this.viewConfig.insertAsSibling) {
@@ -11711,6 +11919,13 @@
11711
11919
  this.isRendered = true;
11712
11920
  return this;
11713
11921
  }
11922
+ /**
11923
+ * Creates the preRender shell
11924
+ */
11925
+ preRender() {
11926
+ this.isPreRendered = true;
11927
+ return this;
11928
+ }
11714
11929
  /**
11715
11930
  * Get the Post Url Params for THOUGHTSPOT from the current
11716
11931
  * host app URL.
@@ -11792,8 +12007,10 @@
11792
12007
  let queryString = queryParams;
11793
12008
  if (!this.viewConfig.excludeRuntimeFiltersfromURL) {
11794
12009
  const runtimeFilters = this.viewConfig.runtimeFilters;
12010
+ const runtimeParameters = this.viewConfig.runtimeParameters;
12011
+ const parameterQuery = getRuntimeParameters(runtimeParameters || []);
11795
12012
  const filterQuery = getFilterQuery(runtimeFilters || []);
11796
- queryString = [filterQuery, queryParams].filter(Boolean).join('&');
12013
+ queryString = [parameterQuery, filterQuery, queryParams].filter(Boolean).join('&');
11797
12014
  }
11798
12015
  return this.getV1EmbedBasePath(queryString);
11799
12016
  }
@@ -11947,6 +12164,7 @@
11947
12164
  * Gets the ThoughtSpot route of the page for a particular page ID.
11948
12165
  *
11949
12166
  * @param pageId The identifier for a page in the ThoughtSpot app.
12167
+ * @param modularHomeExperience
11950
12168
  */
11951
12169
  getPageRoute(pageId, modularHomeExperience = false) {
11952
12170
  switch (pageId) {
@@ -12090,7 +12308,7 @@
12090
12308
  let params = {};
12091
12309
  params[Param.EmbedApp] = true;
12092
12310
  params = this.getBaseQueryParams(params);
12093
- const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, } = this.viewConfig;
12311
+ const { enableVizTransformations, fullHeight, defaultHeight, visibleVizs, liveboardV2, vizId, hideTabPanel, activeTabId, runtimeParameters, } = this.viewConfig;
12094
12312
  const preventLiveboardFilterRemoval = this.viewConfig.preventLiveboardFilterRemoval
12095
12313
  || this.viewConfig.preventPinboardFilterRemoval;
12096
12314
  if (fullHeight === true) {
@@ -12118,7 +12336,10 @@
12118
12336
  if (hideTabPanel) {
12119
12337
  params[Param.HideTabPanel] = hideTabPanel;
12120
12338
  }
12121
- const queryParams = getQueryParamString(params, true);
12339
+ let queryParams = getQueryParamString(params, true);
12340
+ const parameterQuery = getRuntimeParameters(runtimeParameters || []);
12341
+ if (parameterQuery)
12342
+ queryParams += `&${parameterQuery}`;
12122
12343
  return queryParams;
12123
12344
  }
12124
12345
  getIframeSuffixSrc(liveboardId, vizId, activeTabId) {
@@ -12182,6 +12403,11 @@
12182
12403
  this.renderV1Embed(src);
12183
12404
  return this;
12184
12405
  }
12406
+ preRender() {
12407
+ super.preRender();
12408
+ this.render();
12409
+ return this;
12410
+ }
12185
12411
  navigateToLiveboard(liveboardId, vizId, activeTabId) {
12186
12412
  const path = this.getIframeSuffixSrc(liveboardId, vizId, activeTabId);
12187
12413
  this.viewConfig.liveboardId = liveboardId;
@@ -12242,7 +12468,7 @@
12242
12468
  }
12243
12469
  getEmbedParams() {
12244
12470
  var _a;
12245
- const { hideResults, enableSearchAssist, forceTable, searchOptions, runtimeFilters, dataSource, dataSources, excludeRuntimeFiltersfromURL, dataPanelV2 = false, useLastSelectedSources = false, } = this.viewConfig;
12471
+ const { hideResults, enableSearchAssist, forceTable, searchOptions, runtimeFilters, dataSource, dataSources, excludeRuntimeFiltersfromURL, dataPanelV2 = false, useLastSelectedSources = false, runtimeParameters, } = this.viewConfig;
12246
12472
  const queryParams = this.getBaseQueryParams();
12247
12473
  queryParams[Param.HideActions] = [
12248
12474
  ...((_a = queryParams[Param.HideActions]) !== null && _a !== void 0 ? _a : []),
@@ -12281,6 +12507,9 @@
12281
12507
  if (queryParamsString) {
12282
12508
  query = `?${queryParamsString}`;
12283
12509
  }
12510
+ const parameterQuery = getRuntimeParameters(runtimeParameters || []);
12511
+ if (parameterQuery)
12512
+ query += `&${parameterQuery}`;
12284
12513
  const filterQuery = getFilterQuery(runtimeFilters || []);
12285
12514
  if (filterQuery && !excludeRuntimeFiltersfromURL) {
12286
12515
  query += `&${filterQuery}`;