This is an automated email from the ASF dual-hosted git repository. michaelsmolina pushed a commit to branch 3.1 in repository https://gitbox.apache.org/repos/asf/superset.git
commit ba4319472dc00510f2222bf714f52c16919746f1 Author: Kamil Gabryjelski <[email protected]> AuthorDate: Thu Dec 21 08:53:23 2023 +0100 chore: Add downloadAsImage types, change filter selector (#26297) (cherry picked from commit 5e85f5c81f66b2da6fa11d9112216004f35170c8) --- superset-frontend/package-lock.json | 25 ++++++++++++++++------ superset-frontend/package.json | 1 + superset-frontend/src/types/dom-to-image-more.d.ts | 18 ++-------------- superset-frontend/src/utils/downloadAsImage.ts | 7 +++--- 4 files changed, 25 insertions(+), 26 deletions(-) diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json index c4e771b259..e308f2aed6 100644 --- a/superset-frontend/package-lock.json +++ b/superset-frontend/package-lock.json @@ -186,6 +186,7 @@ "@testing-library/react-hooks": "^5.0.3", "@testing-library/user-event": "^12.7.0", "@types/classnames": "^2.2.10", + "@types/dom-to-image": "^2.6.7", "@types/enzyme": "^3.10.5", "@types/enzyme-adapter-react-16": "^1.0.6", "@types/fetch-mock": "^7.3.2", @@ -19248,6 +19249,12 @@ "@types/ms": "*" } }, + "node_modules/@types/dom-to-image": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/@types/dom-to-image/-/dom-to-image-2.6.7.tgz", + "integrity": "sha512-me5VbCv+fcXozblWwG13krNBvuEOm6kA5xoa4RrjDJCNFOZSWR3/QLtOXimBHk1Fisq69Gx3JtOoXtg1N1tijg==", + "dev": true + }, "node_modules/@types/enzyme": { "version": "3.10.10", "resolved": "https://registry.npmjs.org/@types/enzyme/-/enzyme-3.10.10.tgz", @@ -29511,9 +29518,9 @@ "license": "MIT" }, "node_modules/dom-to-image-more": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/dom-to-image-more/-/dom-to-image-more-2.10.1.tgz", - "integrity": "sha512-gMG28V47WGj5/xvrsbSPJAWSaV7CBh4teLErn1iGD1sa29HsFsHxvnoLj8VxVvfqnjPgsiUGs2IV2VAxLJGb+A==" + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/dom-to-image-more/-/dom-to-image-more-2.16.0.tgz", + "integrity": "sha512-RyjtkaM/zVy90uJ20lT+/G7MwBZx6l/ePliq5CQOeAnPeew7aUGS6IqRWBkHpstU+POmhaKA8A9H9qf476gisQ==" }, "node_modules/dom-to-pdf": { "version": "0.3.2", @@ -79208,6 +79215,12 @@ "@types/ms": "*" } }, + "@types/dom-to-image": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/@types/dom-to-image/-/dom-to-image-2.6.7.tgz", + "integrity": "sha512-me5VbCv+fcXozblWwG13krNBvuEOm6kA5xoa4RrjDJCNFOZSWR3/QLtOXimBHk1Fisq69Gx3JtOoXtg1N1tijg==", + "dev": true + }, "@types/enzyme": { "version": "3.10.10", "resolved": "https://registry.npmjs.org/@types/enzyme/-/enzyme-3.10.10.tgz", @@ -87324,9 +87337,9 @@ "from": "dom-to-image@git+https://github.com/dmapper/dom-to-image.git" }, "dom-to-image-more": { - "version": "2.10.1", - "resolved": "https://registry.npmjs.org/dom-to-image-more/-/dom-to-image-more-2.10.1.tgz", - "integrity": "sha512-gMG28V47WGj5/xvrsbSPJAWSaV7CBh4teLErn1iGD1sa29HsFsHxvnoLj8VxVvfqnjPgsiUGs2IV2VAxLJGb+A==" + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/dom-to-image-more/-/dom-to-image-more-2.16.0.tgz", + "integrity": "sha512-RyjtkaM/zVy90uJ20lT+/G7MwBZx6l/ePliq5CQOeAnPeew7aUGS6IqRWBkHpstU+POmhaKA8A9H9qf476gisQ==" }, "dom-to-pdf": { "version": "0.3.2", diff --git a/superset-frontend/package.json b/superset-frontend/package.json index 6707016b7e..153cdfce68 100644 --- a/superset-frontend/package.json +++ b/superset-frontend/package.json @@ -251,6 +251,7 @@ "@testing-library/react-hooks": "^5.0.3", "@testing-library/user-event": "^12.7.0", "@types/classnames": "^2.2.10", + "@types/dom-to-image": "^2.6.7", "@types/enzyme": "^3.10.5", "@types/enzyme-adapter-react-16": "^1.0.6", "@types/fetch-mock": "^7.3.2", diff --git a/superset-frontend/src/types/dom-to-image-more.d.ts b/superset-frontend/src/types/dom-to-image-more.d.ts index c5a93de757..374a41bb04 100644 --- a/superset-frontend/src/types/dom-to-image-more.d.ts +++ b/superset-frontend/src/types/dom-to-image-more.d.ts @@ -18,20 +18,6 @@ */ declare module 'dom-to-image-more' { - export interface Options { - filter?: ((node: Node) => boolean) | undefined; - bgcolor?: string | undefined; - width?: number | undefined; - height?: number | undefined; - style?: {} | undefined; - quality?: number | undefined; - imagePlaceholder?: string | undefined; - cacheBust?: boolean | undefined; - } - - class DomToImageMore { - static toJpeg(node: Node, options?: Options): Promise<string>; - } - - export default DomToImageMore; + import domToImage = require('dom-to-image-more'); + export = domToImage; } diff --git a/superset-frontend/src/utils/downloadAsImage.ts b/superset-frontend/src/utils/downloadAsImage.ts index 79373cc76a..a6f50926bc 100644 --- a/superset-frontend/src/utils/downloadAsImage.ts +++ b/superset-frontend/src/utils/downloadAsImage.ts @@ -62,7 +62,7 @@ export default function downloadAsImage( if (typeof node.className === 'string') { return ( node.className !== 'mapboxgl-control-container' && - !node.className.includes('ant-dropdown') + !node.className.includes('header-controls') ); } return true; @@ -70,17 +70,16 @@ export default function downloadAsImage( return domToImage .toJpeg(elementToPrint, { - quality: 1, bgcolor: supersetTheme.colors.grayscale.light4, filter, }) - .then(dataUrl => { + .then((dataUrl: string) => { const link = document.createElement('a'); link.download = `${generateFileStem(description)}.jpg`; link.href = dataUrl; link.click(); }) - .catch(e => { + .catch((e: Error) => { console.error('Creating image failed', e); }); };
