@thoughtspot/visual-embed-sdk 1.24.0-preRender.1 → 1.24.0-preRender.3

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 (129) hide show
  1. package/cjs/package.json +1 -1
  2. package/cjs/src/embed/app.d.ts +1 -3
  3. package/cjs/src/embed/app.d.ts.map +1 -1
  4. package/cjs/src/embed/app.js +2 -8
  5. package/cjs/src/embed/app.js.map +1 -1
  6. package/cjs/src/embed/liveboard.d.ts +1 -2
  7. package/cjs/src/embed/liveboard.d.ts.map +1 -1
  8. package/cjs/src/embed/liveboard.js +2 -7
  9. package/cjs/src/embed/liveboard.js.map +1 -1
  10. package/cjs/src/embed/sage.d.ts +1 -3
  11. package/cjs/src/embed/sage.d.ts.map +1 -1
  12. package/cjs/src/embed/sage.js +2 -8
  13. package/cjs/src/embed/sage.js.map +1 -1
  14. package/cjs/src/embed/search.d.ts +1 -4
  15. package/cjs/src/embed/search.d.ts.map +1 -1
  16. package/cjs/src/embed/search.js +2 -9
  17. package/cjs/src/embed/search.js.map +1 -1
  18. package/cjs/src/embed/ts-embed.d.ts +47 -17
  19. package/cjs/src/embed/ts-embed.d.ts.map +1 -1
  20. package/cjs/src/embed/ts-embed.js +144 -99
  21. package/cjs/src/embed/ts-embed.js.map +1 -1
  22. package/cjs/src/embed/ts-embed.spec.js +102 -0
  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 +6 -2
  27. package/cjs/src/react/all-types-export.js.map +1 -1
  28. package/cjs/src/react/index.d.ts +103 -5
  29. package/cjs/src/react/index.d.ts.map +1 -1
  30. package/cjs/src/react/index.js +81 -1
  31. package/cjs/src/react/index.js.map +1 -1
  32. package/cjs/src/react/index.spec.js +22 -0
  33. package/cjs/src/react/index.spec.js.map +1 -1
  34. package/cjs/src/types.d.ts +18 -0
  35. package/cjs/src/types.d.ts.map +1 -1
  36. package/cjs/src/types.js.map +1 -1
  37. package/cjs/src/utils.d.ts +27 -0
  38. package/cjs/src/utils.d.ts.map +1 -1
  39. package/cjs/src/utils.js +29 -2
  40. package/cjs/src/utils.js.map +1 -1
  41. package/cjs/src/utils.spec.d.ts +0 -3
  42. package/cjs/src/utils.spec.d.ts.map +1 -1
  43. package/cjs/src/utils.spec.js +59 -6
  44. package/cjs/src/utils.spec.js.map +1 -1
  45. package/dist/src/embed/app.d.ts +1 -3
  46. package/dist/src/embed/app.d.ts.map +1 -1
  47. package/dist/src/embed/liveboard.d.ts +1 -2
  48. package/dist/src/embed/liveboard.d.ts.map +1 -1
  49. package/dist/src/embed/sage.d.ts +1 -3
  50. package/dist/src/embed/sage.d.ts.map +1 -1
  51. package/dist/src/embed/search.d.ts +1 -4
  52. package/dist/src/embed/search.d.ts.map +1 -1
  53. package/dist/src/embed/ts-embed.d.ts +47 -17
  54. package/dist/src/embed/ts-embed.d.ts.map +1 -1
  55. package/dist/src/react/all-types-export.d.ts +1 -1
  56. package/dist/src/react/all-types-export.d.ts.map +1 -1
  57. package/dist/src/react/index.d.ts +103 -5
  58. package/dist/src/react/index.d.ts.map +1 -1
  59. package/dist/src/types.d.ts +18 -0
  60. package/dist/src/types.d.ts.map +1 -1
  61. package/dist/src/utils.d.ts +27 -0
  62. package/dist/src/utils.d.ts.map +1 -1
  63. package/dist/src/utils.spec.d.ts +0 -3
  64. package/dist/src/utils.spec.d.ts.map +1 -1
  65. package/dist/tsembed-react.es.js +263 -135
  66. package/dist/tsembed-react.js +263 -134
  67. package/dist/tsembed.es.js +182 -134
  68. package/dist/tsembed.js +182 -134
  69. package/dist/visual-embed-sdk-react-full.d.ts +166 -33
  70. package/dist/visual-embed-sdk-react.d.ts +166 -33
  71. package/dist/visual-embed-sdk.d.ts +63 -28
  72. package/lib/package.json +1 -1
  73. package/lib/src/embed/app.d.ts +1 -3
  74. package/lib/src/embed/app.d.ts.map +1 -1
  75. package/lib/src/embed/app.js +2 -8
  76. package/lib/src/embed/app.js.map +1 -1
  77. package/lib/src/embed/liveboard.d.ts +1 -2
  78. package/lib/src/embed/liveboard.d.ts.map +1 -1
  79. package/lib/src/embed/liveboard.js +2 -7
  80. package/lib/src/embed/liveboard.js.map +1 -1
  81. package/lib/src/embed/sage.d.ts +1 -3
  82. package/lib/src/embed/sage.d.ts.map +1 -1
  83. package/lib/src/embed/sage.js +2 -8
  84. package/lib/src/embed/sage.js.map +1 -1
  85. package/lib/src/embed/search.d.ts +1 -4
  86. package/lib/src/embed/search.d.ts.map +1 -1
  87. package/lib/src/embed/search.js +2 -9
  88. package/lib/src/embed/search.js.map +1 -1
  89. package/lib/src/embed/ts-embed.d.ts +47 -17
  90. package/lib/src/embed/ts-embed.d.ts.map +1 -1
  91. package/lib/src/embed/ts-embed.js +144 -99
  92. package/lib/src/embed/ts-embed.js.map +1 -1
  93. package/lib/src/embed/ts-embed.spec.js +102 -0
  94. package/lib/src/embed/ts-embed.spec.js.map +1 -1
  95. package/lib/src/react/all-types-export.d.ts +1 -1
  96. package/lib/src/react/all-types-export.d.ts.map +1 -1
  97. package/lib/src/react/all-types-export.js +1 -1
  98. package/lib/src/react/all-types-export.js.map +1 -1
  99. package/lib/src/react/index.d.ts +103 -5
  100. package/lib/src/react/index.d.ts.map +1 -1
  101. package/lib/src/react/index.js +80 -0
  102. package/lib/src/react/index.js.map +1 -1
  103. package/lib/src/react/index.spec.js +23 -1
  104. package/lib/src/react/index.spec.js.map +1 -1
  105. package/lib/src/types.d.ts +18 -0
  106. package/lib/src/types.d.ts.map +1 -1
  107. package/lib/src/types.js.map +1 -1
  108. package/lib/src/utils.d.ts +27 -0
  109. package/lib/src/utils.d.ts.map +1 -1
  110. package/lib/src/utils.js +29 -2
  111. package/lib/src/utils.js.map +1 -1
  112. package/lib/src/utils.spec.d.ts +0 -3
  113. package/lib/src/utils.spec.d.ts.map +1 -1
  114. package/lib/src/utils.spec.js +60 -7
  115. package/lib/src/utils.spec.js.map +1 -1
  116. package/lib/src/visual-embed-sdk.d.ts +63 -28
  117. package/package.json +1 -1
  118. package/src/embed/app.ts +6 -11
  119. package/src/embed/liveboard.ts +2 -10
  120. package/src/embed/sage.ts +2 -11
  121. package/src/embed/search.ts +2 -12
  122. package/src/embed/ts-embed.spec.ts +127 -0
  123. package/src/embed/ts-embed.ts +170 -128
  124. package/src/react/all-types-export.ts +5 -1
  125. package/src/react/index.spec.tsx +42 -1
  126. package/src/react/index.tsx +120 -17
  127. package/src/types.ts +19 -0
  128. package/src/utils.spec.ts +78 -7
  129. package/src/utils.ts +30 -7
@@ -262,15 +262,42 @@ function removeTypename(obj) {
262
262
  }
263
263
  return obj;
264
264
  }
265
+ /**
266
+ * Sets the specified style properties on an HTML element.
267
+ *
268
+ * @param {HTMLElement} element - The HTML element to which the styles should be applied.
269
+ * @param {Partial<CSSStyleDeclaration>} styleProperties - An object containing style
270
+ * property names and their values.
271
+ * @example
272
+ * // Apply styles to an element
273
+ * const element = document.getElementById('myElement');
274
+ * const styles = {
275
+ * backgroundColor: 'red',
276
+ * fontSize: '16px',
277
+ * };
278
+ * setStyleProperties(element, styles);
279
+ */
265
280
  const setStyleProperties = (element, styleProperties) => {
266
- if (!element || !styleProperties)
281
+ if (!(element === null || element === void 0 ? void 0 : element.style))
267
282
  return;
268
283
  Object.keys(styleProperties).forEach((styleProperty) => {
269
284
  element.style[styleProperty] = styleProperties[styleProperty].toString();
270
285
  });
271
286
  };
287
+ /**
288
+ * Removes specified style properties from an HTML element.
289
+ *
290
+ * @param {HTMLElement} element - The HTML element from which the styles should be removed.
291
+ * @param {string[]} styleProperties - An array of style property names to be removed.
292
+ * @example
293
+ * // Remove styles from an element
294
+ * const element = document.getElementById('myElement');
295
+ * element.style.backgroundColor = 'red';
296
+ * const propertiesToRemove = ['backgroundColor'];
297
+ * removeStyleProperties(element, propertiesToRemove);
298
+ */
272
299
  const removeStyleProperties = (element, styleProperties) => {
273
- if (!element || !styleProperties)
300
+ if (!(element === null || element === void 0 ? void 0 : element.style))
274
301
  return;
275
302
  styleProperties.forEach((styleProperty) => {
276
303
  element.style.removeProperty(styleProperty);
@@ -11625,7 +11652,7 @@ function processTrigger(iFrame, messageType, thoughtSpotHost, data) {
11625
11652
  });
11626
11653
  }
11627
11654
 
11628
- var name="@thoughtspot/visual-embed-sdk";var version="1.24.0-preRender.1";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-fetch-mock":"^3.0.3",jsdom:"^17.0.0","node-sass":"^8.0.0",prettier:"2.1.2",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};
11655
+ var name="@thoughtspot/visual-embed-sdk";var version="1.24.0-preRender.3";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-fetch-mock":"^3.0.3",jsdom:"^17.0.0","node-sass":"^8.0.0",prettier:"2.1.2",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};
11629
11656
 
11630
11657
  /**
11631
11658
  * Copyright (c) 2022
@@ -11725,6 +11752,7 @@ class TsEmbed {
11725
11752
  this.on(EmbedEvent.APP_INIT, this.appInitCb, { start: false }, true);
11726
11753
  this.on(EmbedEvent.AuthExpire, this.updateAuthToken, { start: false }, true);
11727
11754
  };
11755
+ this.showPreRenderByDefault = false;
11728
11756
  this.el = getDOMNode(domSelector);
11729
11757
  // TODO: handle error
11730
11758
  this.embedConfig = getEmbedConfig();
@@ -12011,12 +12039,12 @@ class TsEmbed {
12011
12039
  iFrame.name = 'ThoughtSpot Embedded Analytics';
12012
12040
  return iFrame;
12013
12041
  }
12014
- handleInsertionIntoDOM(child, showPreRenderByDefault = false) {
12042
+ handleInsertionIntoDOM(child) {
12015
12043
  if (this.isPreRendered) {
12016
- this.insertIntoDOMForPreRender(this.embedConfig.loginFailedMessage, showPreRenderByDefault);
12044
+ this.insertIntoDOMForPreRender(child);
12017
12045
  }
12018
12046
  else {
12019
- this.insertIntoDOM(this.embedConfig.loginFailedMessage);
12047
+ this.insertIntoDOM(child);
12020
12048
  }
12021
12049
  }
12022
12050
  /**
@@ -12024,9 +12052,8 @@ class TsEmbed {
12024
12052
  * event listeners.
12025
12053
  *
12026
12054
  * @param url - The URL of the embedded ThoughtSpot app.
12027
- * @param showPreRenderByDefault - The flag to show the preRender by default.
12028
12055
  */
12029
- async renderIFrame(url, showPreRenderByDefault = false) {
12056
+ async renderIFrame(url) {
12030
12057
  if (this.isError) {
12031
12058
  return null;
12032
12059
  }
@@ -12046,7 +12073,7 @@ class TsEmbed {
12046
12073
  uploadMixpanelEvent(MIXPANEL_EVENT.VISUAL_SDK_RENDER_START);
12047
12074
  return (_a = getAuthPromise()) === null || _a === void 0 ? void 0 : _a.then((isLoggedIn) => {
12048
12075
  if (!isLoggedIn) {
12049
- this.handleInsertionIntoDOM(this.embedConfig.loginFailedMessage, showPreRenderByDefault);
12076
+ this.handleInsertionIntoDOM(this.embedConfig.loginFailedMessage);
12050
12077
  return;
12051
12078
  }
12052
12079
  this.iFrame = this.iFrame || this.createIframeEl(url);
@@ -12068,7 +12095,7 @@ class TsEmbed {
12068
12095
  this.iFrame.addEventListener('error', () => {
12069
12096
  nextInQueue();
12070
12097
  });
12071
- this.handleInsertionIntoDOM(this.iFrame, showPreRenderByDefault);
12098
+ this.handleInsertionIntoDOM(this.iFrame);
12072
12099
  const prefetchIframe = document.querySelectorAll('.prefetchIframe');
12073
12100
  if (prefetchIframe.length) {
12074
12101
  prefetchIframe.forEach((el) => {
@@ -12086,45 +12113,28 @@ class TsEmbed {
12086
12113
  });
12087
12114
  });
12088
12115
  }
12089
- getPreRenderIds() {
12090
- return {
12091
- wrapper: `tsEmbed-pre-render-wrapper-${this.viewConfig.preRenderId}`,
12092
- shield: `tsEmbed-pre-render-shield-${this.viewConfig.preRenderId}`,
12093
- child: `tsEmbed-pre-render-child-${this.viewConfig.preRenderId}`,
12094
- };
12095
- }
12096
- createPreRenderWrapper(child) {
12116
+ createPreRenderWrapper() {
12117
+ var _a;
12097
12118
  if (!this.viewConfig.preRenderId) {
12098
- throw new Error('PreRender id is required');
12119
+ throw new Error('PreRender id is required to create PreRender wrapper');
12099
12120
  }
12100
12121
  const preRenderIds = this.getPreRenderIds();
12101
- [preRenderIds.wrapper, preRenderIds.shield, preRenderIds.child]
12102
- .map((id) => document.getElementById(id))
12103
- .filter((element) => element)
12104
- .forEach((existingElement) => existingElement.remove());
12122
+ (_a = document.getElementById(preRenderIds.wrapper)) === null || _a === void 0 ? void 0 : _a.remove();
12105
12123
  const preRenderWrapper = document.createElement('div');
12106
12124
  preRenderWrapper.id = preRenderIds.wrapper;
12107
- setStyleProperties(preRenderWrapper, { position: 'absolute', width: '100vw', height: '100vh' });
12108
- // const preRenderShield = document.createElement('div');
12109
- // preRenderShield.id = preRenderIds.shield;
12110
- // setStyleProperties(preRenderShield, { position: 'absolute',
12111
- // width: '100%', height: '100%' });
12112
- child.id = preRenderIds.child;
12113
- preRenderWrapper.appendChild(child);
12114
- // preRenderWrapper.appendChild(preRenderShield);
12115
- this.preRenderWrapper = preRenderWrapper;
12116
- // this.preRenderShield = preRenderShield;
12117
- this.preRenderChild = child;
12125
+ const initialPreRenderWrapperStyle = {
12126
+ position: 'absolute',
12127
+ width: '100vw',
12128
+ height: '100vh',
12129
+ };
12130
+ setStyleProperties(preRenderWrapper, initialPreRenderWrapperStyle);
12118
12131
  return preRenderWrapper;
12119
12132
  }
12120
12133
  connectPreRendered() {
12121
12134
  const preRenderIds = this.getPreRenderIds();
12122
12135
  this.preRenderWrapper = this.preRenderWrapper
12123
12136
  || document.getElementById(preRenderIds.wrapper);
12124
- // this.preRenderShield = this.preRenderShield
12125
- // || document.getElementById(preRenderIds.shield);
12126
- this.preRenderChild = this.preRenderChild
12127
- || document.getElementById(preRenderIds.child);
12137
+ this.preRenderChild = this.preRenderChild || document.getElementById(preRenderIds.child);
12128
12138
  if (this.preRenderWrapper && this.preRenderChild) {
12129
12139
  this.isPreRendered = true;
12130
12140
  this.iFrame = this.preRenderChild;
@@ -12132,79 +12142,45 @@ class TsEmbed {
12132
12142
  return this.isPreRenderAvailable();
12133
12143
  }
12134
12144
  isPreRenderAvailable() {
12135
- return this.isPreRendered;
12145
+ return this.isPreRendered && Boolean(this.preRenderWrapper && this.preRenderChild);
12136
12146
  }
12137
- insertIntoDOMForPreRender(child, showPreRenderByDefault = false) {
12138
- let childNode;
12147
+ createPreRenderChild(child) {
12148
+ var _a;
12149
+ const preRenderIds = this.getPreRenderIds();
12150
+ (_a = document.getElementById(preRenderIds.child)) === null || _a === void 0 ? void 0 : _a.remove();
12151
+ if (child instanceof HTMLElement) {
12152
+ child.id = preRenderIds.child;
12153
+ return child;
12154
+ }
12155
+ const divChildNode = document.createElement('div');
12156
+ setStyleProperties(divChildNode, { width: '100%', height: '100%' });
12157
+ divChildNode.id = preRenderIds.child;
12139
12158
  if (typeof child === 'string') {
12140
- const divChildNode = document.createElement('div');
12141
12159
  divChildNode.innerHTML = child;
12142
- childNode = divChildNode;
12143
12160
  }
12144
12161
  else {
12145
- childNode = child;
12162
+ divChildNode.appendChild(child);
12163
+ }
12164
+ return divChildNode;
12165
+ }
12166
+ insertIntoDOMForPreRender(child) {
12167
+ const preRenderChild = this.createPreRenderChild(child);
12168
+ const preRenderWrapper = this.createPreRenderWrapper();
12169
+ preRenderWrapper.appendChild(preRenderChild);
12170
+ this.preRenderChild = preRenderChild;
12171
+ this.preRenderWrapper = preRenderWrapper;
12172
+ if (preRenderChild instanceof HTMLIFrameElement) {
12173
+ this.iFrame = preRenderChild;
12146
12174
  }
12147
- const preRenderWrapper = this.createPreRenderWrapper(childNode);
12148
- if (showPreRenderByDefault) {
12175
+ if (this.showPreRenderByDefault) {
12149
12176
  this.showPreRender();
12150
12177
  }
12151
12178
  else {
12152
12179
  this.hidePreRender();
12153
12180
  }
12181
+ this.insertedDomEl = preRenderWrapper;
12154
12182
  document.body.appendChild(preRenderWrapper);
12155
12183
  }
12156
- hidePreRender() {
12157
- if (!this.isPreRenderAvailable()) {
12158
- // if the embed component is not preRendered , nothing to hide
12159
- console.log('No preRender found, not hiding ');
12160
- return;
12161
- }
12162
- setStyleProperties(this.preRenderWrapper, {
12163
- opacity: '0',
12164
- pointerEvents: 'none',
12165
- zIndex: '-1000',
12166
- position: 'absolute ',
12167
- top: '0',
12168
- left: '0',
12169
- });
12170
- const childBoundingRect = this.preRenderChild.getBoundingClientRect();
12171
- // setStyleProperties(this.preRenderShield, {
12172
- // opacity: '0',
12173
- // pointerEvents: 'none',
12174
- // zIndex: '1',
12175
- // width: `${childBoundingRect.width}px`,
12176
- // height: `${childBoundingRect.height}px`,
12177
- // position: 'absolute',
12178
- // top: '0',
12179
- // left: '0',
12180
- // });
12181
- this.unsubscribeToEvents();
12182
- }
12183
- showPreRender() {
12184
- if (!this.isPreRenderAvailable()) {
12185
- const isAvailable = this.connectPreRendered();
12186
- if (!isAvailable) {
12187
- // if the Embed component is nor preRendered , Render it now and
12188
- // show it (hide is defalt behaviour)
12189
- console.log('No preRender found, creating new ');
12190
- this.preRender(true);
12191
- return;
12192
- }
12193
- }
12194
- this.syncPreRenderStyle();
12195
- removeStyleProperties(this.preRenderWrapper, ['z-index', 'opacity', 'pointer-events']);
12196
- // setStyleProperties(this.preRenderShield, { zIndex: '-1' });
12197
- this.subscribeToEvents();
12198
- }
12199
- syncPreRenderStyle() {
12200
- if (!this.el) {
12201
- throw new Error('Embed element is not defined');
12202
- }
12203
- const elBoundingClient = this.el.getBoundingClientRect();
12204
- setStyleProperties(this.preRenderWrapper, {
12205
- top: `${elBoundingClient.y}px`, left: `${elBoundingClient.x}px`, width: `${elBoundingClient.width}px`, height: `${elBoundingClient.height}px`,
12206
- });
12207
- }
12208
12184
  insertIntoDOM(child) {
12209
12185
  var _a;
12210
12186
  if (this.viewConfig.insertAsSibling) {
@@ -12422,10 +12398,16 @@ class TsEmbed {
12422
12398
  /**
12423
12399
  * Creates the preRender shell
12424
12400
  *
12425
- * @param showPreRenderByDefault
12401
+ * @param showPreRenderByDefault - Show the preRender after render, hidden by default
12426
12402
  */
12427
12403
  preRender(showPreRenderByDefault = false) {
12404
+ if (!this.viewConfig.preRenderId) {
12405
+ console.error('PreRender id is required for preRender');
12406
+ return this;
12407
+ }
12428
12408
  this.isPreRendered = true;
12409
+ this.showPreRenderByDefault = showPreRenderByDefault;
12410
+ this.render();
12429
12411
  return this;
12430
12412
  }
12431
12413
  /**
@@ -12484,6 +12466,97 @@ class TsEmbed {
12484
12466
  const prerenderFrameSrc = this.getRootIframeSrc();
12485
12467
  return this.renderIFrame(prerenderFrameSrc);
12486
12468
  }
12469
+ /**
12470
+ * Displays the PreRender component.
12471
+ * If the component is not preRendered, it attempts to create and render it.
12472
+ * Also, synchronizes the style of the PreRender component with the embedding
12473
+ * element.
12474
+ */
12475
+ showPreRender() {
12476
+ if (!this.isPreRenderAvailable()) {
12477
+ const isAvailable = this.connectPreRendered();
12478
+ if (!isAvailable) {
12479
+ // if the Embed component is not preRendered , Render it now and
12480
+ this.preRender(true);
12481
+ return;
12482
+ }
12483
+ }
12484
+ if (this.el) {
12485
+ this.syncPreRenderStyle();
12486
+ this.resizeObserver = new ResizeObserver((entries) => {
12487
+ entries.forEach((entry) => {
12488
+ if (entry.contentRect && entry.target === this.el) {
12489
+ setStyleProperties(this.preRenderWrapper, {
12490
+ width: `${entry.contentRect.width}px`,
12491
+ height: `${entry.contentRect.height}px`,
12492
+ });
12493
+ }
12494
+ });
12495
+ });
12496
+ this.resizeObserver.observe(this.el);
12497
+ }
12498
+ removeStyleProperties(this.preRenderWrapper, ['z-index', 'opacity', 'pointer-events']);
12499
+ this.subscribeToEvents();
12500
+ }
12501
+ /**
12502
+ * Synchronizes the style properties of the PreRender component with the embedding
12503
+ * element. This function adjusts the position, width, and height of the PreRender
12504
+ * component
12505
+ * to match the dimensions and position of the embedding element.
12506
+ *
12507
+ * @throws {Error} Throws an error if the embedding element (passed as domSelector)
12508
+ * is not defined or not found.
12509
+ */
12510
+ syncPreRenderStyle() {
12511
+ if (!this.el) {
12512
+ throw new Error('Embed element is not defined');
12513
+ }
12514
+ const elBoundingClient = this.el.getBoundingClientRect();
12515
+ setStyleProperties(this.preRenderWrapper, {
12516
+ top: `${elBoundingClient.y}px`,
12517
+ left: `${elBoundingClient.x}px`,
12518
+ width: `${elBoundingClient.width}px`,
12519
+ height: `${elBoundingClient.height}px`,
12520
+ });
12521
+ }
12522
+ /**
12523
+ * Hides the PreRender component if it is available.
12524
+ * If the component is not preRendered, it issues a warning.
12525
+ */
12526
+ hidePreRender() {
12527
+ if (!this.isPreRenderAvailable()) {
12528
+ // if the embed component is not preRendered , nothing to hide
12529
+ console.warn('Warning: You should call PreRender before hiding it using hidePreRender.');
12530
+ return;
12531
+ }
12532
+ const preRenderHideStyles = {
12533
+ opacity: '0',
12534
+ pointerEvents: 'none',
12535
+ zIndex: '-1000',
12536
+ position: 'absolute ',
12537
+ top: '0',
12538
+ left: '0',
12539
+ };
12540
+ setStyleProperties(this.preRenderWrapper, preRenderHideStyles);
12541
+ if (this.resizeObserver) {
12542
+ this.resizeObserver.disconnect();
12543
+ }
12544
+ this.unsubscribeToEvents();
12545
+ }
12546
+ /**
12547
+ * Retrieves unique HTML element IDs for PreRender-related elements.
12548
+ * These IDs are constructed based on the provided 'preRenderId' from 'viewConfig'.
12549
+ *
12550
+ * @returns {object} An object containing the IDs for the PreRender elements.
12551
+ * @property {string} wrapper - The HTML element ID for the PreRender wrapper.
12552
+ * @property {string} child - The HTML element ID for the PreRender child.
12553
+ */
12554
+ getPreRenderIds() {
12555
+ return {
12556
+ wrapper: `tsEmbed-pre-render-wrapper-${this.viewConfig.preRenderId}`,
12557
+ child: `tsEmbed-pre-render-child-${this.viewConfig.preRenderId}`,
12558
+ };
12559
+ }
12487
12560
  }
12488
12561
  /**
12489
12562
  * Base class for embedding v1 experience
@@ -12501,10 +12574,9 @@ class V1Embed extends TsEmbed {
12501
12574
  * Render the app in an iframe and set up event handlers
12502
12575
  *
12503
12576
  * @param iframeSrc
12504
- * @param showPreRenderByDefault - if true the preRender will be shown by default
12505
12577
  */
12506
- renderV1Embed(iframeSrc, showPreRenderByDefault = false) {
12507
- return this.renderIFrame(iframeSrc, showPreRenderByDefault);
12578
+ renderV1Embed(iframeSrc) {
12579
+ return this.renderIFrame(iframeSrc);
12508
12580
  }
12509
12581
  getRootIframeSrc() {
12510
12582
  const queryParams = this.getEmbedParams();
@@ -12747,17 +12819,11 @@ class AppEmbed extends V1Embed {
12747
12819
  *
12748
12820
  * @param renderOptions An object containing the page ID
12749
12821
  * to be embedded.
12750
- * @param showPreRenderByDefault
12751
12822
  */
12752
- render(showPreRenderByDefault = false) {
12823
+ render() {
12753
12824
  super.render();
12754
12825
  const src = this.getIFrameSrc();
12755
- this.renderV1Embed(src, showPreRenderByDefault);
12756
- return this;
12757
- }
12758
- preRender(showPreRenderByDefault = false) {
12759
- super.preRender(showPreRenderByDefault);
12760
- this.render(showPreRenderByDefault);
12826
+ this.renderV1Embed(src);
12761
12827
  return this;
12762
12828
  }
12763
12829
  }
@@ -12914,15 +12980,10 @@ class LiveboardEmbed extends V1Embed {
12914
12980
  * @param renderOptions An object specifying the Liveboard ID,
12915
12981
  * visualization ID and the runtime filters.
12916
12982
  */
12917
- render(showPreRenderByDefault = false) {
12983
+ render() {
12918
12984
  super.render();
12919
12985
  const src = this.getIFrameSrc();
12920
- this.renderV1Embed(src, showPreRenderByDefault);
12921
- return this;
12922
- }
12923
- preRender(showPreRenderByDefault = false) {
12924
- super.preRender(showPreRenderByDefault);
12925
- this.render(showPreRenderByDefault);
12986
+ this.renderV1Embed(src);
12926
12987
  return this;
12927
12988
  }
12928
12989
  navigateToLiveboard(liveboardId, vizId, activeTabId) {
@@ -13048,14 +13109,12 @@ class SearchEmbed extends TsEmbed {
13048
13109
  }
13049
13110
  /**
13050
13111
  * Render the embedded ThoughtSpot search
13051
- *
13052
- * @param showPreRenderByDefault
13053
13112
  */
13054
- render(showPreRenderByDefault = false) {
13113
+ render() {
13055
13114
  super.render();
13056
13115
  const { answerId } = this.viewConfig;
13057
13116
  const src = this.getIFrameSrc(answerId);
13058
- this.renderIFrame(src, showPreRenderByDefault);
13117
+ this.renderIFrame(src);
13059
13118
  getAuthPromise().then(() => {
13060
13119
  if (checkReleaseVersionInBeta(getReleaseVersion(), getEmbedConfig().suppressSearchEmbedBetaWarning)) {
13061
13120
  alert(ERROR_MESSAGE.SEARCHEMBED_BETA_WRANING_MESSAGE);
@@ -13063,11 +13122,6 @@ class SearchEmbed extends TsEmbed {
13063
13122
  });
13064
13123
  return this;
13065
13124
  }
13066
- preRender(showPreRenderByDefault = false) {
13067
- super.preRender(showPreRenderByDefault);
13068
- this.render(showPreRenderByDefault);
13069
- return this;
13070
- }
13071
13125
  }
13072
13126
 
13073
13127
  /**
@@ -13210,18 +13264,12 @@ class SageEmbed extends V1Embed {
13210
13264
  /**
13211
13265
  * Render the embedded ThoughtSpot Sage
13212
13266
  *
13213
- * @param showPreRenderByDefault
13214
13267
  * @returns {SageEmbed} Eureka/Sage embed
13215
13268
  */
13216
- render(showPreRenderByDefault = false) {
13269
+ render() {
13217
13270
  super.render();
13218
13271
  const src = this.getIFrameSrc();
13219
- this.renderV1Embed(src, showPreRenderByDefault);
13220
- return this;
13221
- }
13222
- preRender(showPreRenderByDefault = false) {
13223
- super.preRender(showPreRenderByDefault);
13224
- this.render(showPreRenderByDefault);
13272
+ this.renderV1Embed(src);
13225
13273
  return this;
13226
13274
  }
13227
13275
  }