You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ru...@apache.org on 2020/09/28 16:43:39 UTC

[incubator-superset] branch master updated: chore: Clean up some console warnings (#11061)

This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-superset.git


The following commit(s) were added to refs/heads/master by this push:
     new 2fd8fca  chore: Clean up some console warnings (#11061)
2fd8fca is described below

commit 2fd8fca207c4f0626a462595472e99f3e3a41d66
Author: Kamil Gabryjelski <ka...@gmail.com>
AuthorDate: Mon Sep 28 18:43:21 2020 +0200

    chore: Clean up some console warnings (#11061)
    
    * Upgrade a few packages
    
    * Update some prop types
    
    * Update HTML
    
    * Moar warning fixes
    
    * Remove wrapper div
---
 superset-frontend/package-lock.json                | 378 ++++++++++++---------
 superset-frontend/package.json                     |   8 +-
 .../dashboard/components/Header_spec.jsx           |   2 +-
 .../resizable/ResizableContainer_spec.jsx          |   2 +-
 superset-frontend/src/CRUD/CollectionTable.tsx     |   6 +-
 superset-frontend/src/CRUD/Field.jsx               |   2 +-
 superset-frontend/src/CRUD/Fieldset.jsx            |   4 +-
 .../src/SqlLab/components/QuerySearch.jsx          |   2 +-
 .../src/addSlice/AddSliceContainer.tsx             |  41 ++-
 .../dashboard/components/BuilderComponentPane.jsx  |   2 +-
 .../components/resizable/ResizableContainer.jsx    |   2 +-
 .../src/dashboard/util/propShapes.jsx              |   2 +-
 .../src/datasource/DatasourceEditor.jsx            |  63 +++-
 .../explore/components/controls/TextControl.tsx    |  39 ++-
 .../controls/TimeSeriesColumnControl.jsx           |   2 +-
 15 files changed, 326 insertions(+), 229 deletions(-)

diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json
index 90dfa3a..e72abe1 100644
--- a/superset-frontend/package-lock.json
+++ b/superset-frontend/package-lock.json
@@ -3750,72 +3750,68 @@
       }
     },
     "@data-ui/shared": {
-      "version": "0.0.54",
-      "resolved": "https://registry.npmjs.org/@data-ui/shared/-/shared-0.0.54.tgz",
-      "integrity": "sha1-L7DW3ukNrCC/jzwpE8aFCoIj1Zs=",
-      "requires": {
-        "@data-ui/theme": "0.0.48",
-        "@vx/event": "0.0.143",
-        "@vx/group": "0.0.143",
-        "@vx/shape": "0.0.145",
-        "@vx/tooltip": "0.0.148",
+      "version": "0.0.84",
+      "resolved": "https://registry.npmjs.org/@data-ui/shared/-/shared-0.0.84.tgz",
+      "integrity": "sha512-MsDLsFzBHFEREr/eF2/RX1o/cXioEg+VQTsM8gViW5ywGQ7Xo5+EqUOaBSrwqKAkvp3e8PaEZVkchPC54IBhrA==",
+      "requires": {
+        "@data-ui/theme": "^0.0.84",
+        "@vx/event": "^0.0.165",
+        "@vx/group": "^0.0.165",
+        "@vx/shape": "^0.0.168",
+        "@vx/tooltip": "0.0.165",
         "d3-array": "^1.2.1",
         "prop-types": "^15.5.10"
       },
       "dependencies": {
-        "@data-ui/theme": {
-          "version": "0.0.48",
-          "resolved": "https://registry.npmjs.org/@data-ui/theme/-/theme-0.0.48.tgz",
-          "integrity": "sha1-8hUy0T2n5sXXJcrbD1p210bzvYU="
-        },
         "@vx/bounds": {
-          "version": "0.0.147",
-          "resolved": "https://registry.npmjs.org/@vx/bounds/-/bounds-0.0.147.tgz",
-          "integrity": "sha1-ihYnVPy6BmQkT7f8aK5+p3NIPRc=",
+          "version": "0.0.165",
+          "resolved": "https://registry.npmjs.org/@vx/bounds/-/bounds-0.0.165.tgz",
+          "integrity": "sha512-ZvRb72/4QNs1ZrytZTZxd0hfAb/KKfhsdkcYtIQkmdF6dTsjigMQZ+h2bLvLnbZb/RxyCCoxdiZSGXd+T1c//Q==",
           "requires": {
             "prop-types": "^15.5.10"
           }
         },
         "@vx/event": {
-          "version": "0.0.143",
-          "resolved": "https://registry.npmjs.org/@vx/event/-/event-0.0.143.tgz",
-          "integrity": "sha1-SbFJP+Fu99eGVAXS3PJnwKlYcdE=",
+          "version": "0.0.165",
+          "resolved": "https://registry.npmjs.org/@vx/event/-/event-0.0.165.tgz",
+          "integrity": "sha512-FsQiw0f3s5DQB6aBQmBcoWk9e4q65LcDobHIyV8qrmpW2QgV2NvQFM1w0Q300ohpRMgJDzGk68HHHQgFOJvApw==",
           "requires": {
-            "@vx/point": "0.0.143"
+            "@vx/point": "0.0.165"
           }
         },
         "@vx/group": {
-          "version": "0.0.143",
-          "resolved": "https://registry.npmjs.org/@vx/group/-/group-0.0.143.tgz",
-          "integrity": "sha1-ONvT+idA1XPG/fxpHrwV6F0+sBs=",
+          "version": "0.0.165",
+          "resolved": "https://registry.npmjs.org/@vx/group/-/group-0.0.165.tgz",
+          "integrity": "sha512-gi1DSg8AAaVRseyWiq8y4bzyvKiQIXT6vDUYBVRmv2LBcpHocBGaxNiNK0X602RgLG0XmNyRv6qSCWLOaBs3Mg==",
           "requires": {
             "classnames": "^2.2.5"
           }
         },
         "@vx/point": {
-          "version": "0.0.143",
-          "resolved": "https://registry.npmjs.org/@vx/point/-/point-0.0.143.tgz",
-          "integrity": "sha1-e236YRF17ht048OSByWJp52t8mU="
+          "version": "0.0.165",
+          "resolved": "https://registry.npmjs.org/@vx/point/-/point-0.0.165.tgz",
+          "integrity": "sha512-spoHilhjcWNgccrSzBUPw+PXV81tYxeyEWBkgr35aGVU4m7YT86Ywvfemwp7AVVGPn+XJHrhB0ujAhDoyqFPoA=="
         },
         "@vx/shape": {
-          "version": "0.0.145",
-          "resolved": "https://registry.npmjs.org/@vx/shape/-/shape-0.0.145.tgz",
-          "integrity": "sha1-TXA8HY8IXlh1QbPvHAauUQ1jQaQ=",
+          "version": "0.0.168",
+          "resolved": "https://registry.npmjs.org/@vx/shape/-/shape-0.0.168.tgz",
+          "integrity": "sha512-urKZkwSafMpPQ0wI/L5FJmufRiAR4UsgYUCKxROjfE1Cf4jWNlK6mlVIIASxCdHlh9CGBbIrRMdl5Yv5lzqhjA==",
           "requires": {
-            "@vx/curve": "0.0.143",
-            "@vx/group": "0.0.143",
-            "@vx/point": "0.0.143",
+            "@vx/curve": "0.0.165",
+            "@vx/group": "0.0.165",
+            "@vx/point": "0.0.165",
             "classnames": "^2.2.5",
+            "d3-path": "^1.0.5",
             "d3-shape": "^1.2.0",
             "prop-types": "^15.5.10"
           }
         },
         "@vx/tooltip": {
-          "version": "0.0.148",
-          "resolved": "https://registry.npmjs.org/@vx/tooltip/-/tooltip-0.0.148.tgz",
-          "integrity": "sha1-HEiEsp6u1bdoM5cqI8gTOYAJX+A=",
+          "version": "0.0.165",
+          "resolved": "https://registry.npmjs.org/@vx/tooltip/-/tooltip-0.0.165.tgz",
+          "integrity": "sha512-/x1NZc67QGQ4e/WNT7Ks5LYRyeLSqp8lG04gX5J6leUS0zscAVzo3aE5u65Qqbc0cnMyMPRZ2Qtb4klWTLg+eQ==",
           "requires": {
-            "@vx/bounds": "0.0.147",
+            "@vx/bounds": "0.0.165",
             "classnames": "^2.2.5",
             "prop-types": "^15.5.10"
           }
@@ -3823,23 +3819,23 @@
       }
     },
     "@data-ui/sparkline": {
-      "version": "0.0.54",
-      "resolved": "https://registry.npmjs.org/@data-ui/sparkline/-/sparkline-0.0.54.tgz",
-      "integrity": "sha1-zj0WbZ4LI5oLoC84lMuejIQXHO8=",
+      "version": "0.0.84",
+      "resolved": "https://registry.npmjs.org/@data-ui/sparkline/-/sparkline-0.0.84.tgz",
+      "integrity": "sha512-Ja7T2JjioZtnoy0PEXF72qv/J8xIotu+oS1Z+ygVGZni6aN/DUY35eGpg/DDeemEFDMoifcx+kYa5LU7hQCnJg==",
       "requires": {
-        "@data-ui/shared": "0.0.54",
-        "@data-ui/theme": "0.0.8",
-        "@vx/axis": "0.0.140",
-        "@vx/curve": "0.0.140",
-        "@vx/event": "0.0.143",
-        "@vx/glyph": "0.0.140",
-        "@vx/gradient": "0.0.140",
-        "@vx/group": "0.0.140",
-        "@vx/pattern": "0.0.140",
-        "@vx/point": "0.0.136",
-        "@vx/responsive": "0.0.140",
-        "@vx/scale": "0.0.140",
-        "@vx/shape": "0.0.140",
+        "@data-ui/shared": "^0.0.84",
+        "@data-ui/theme": "^0.0.8",
+        "@vx/axis": "^0.0.179",
+        "@vx/curve": "^0.0.165",
+        "@vx/event": "^0.0.179",
+        "@vx/glyph": "^0.0.179",
+        "@vx/gradient": "^0.0.165",
+        "@vx/group": "^0.0.170",
+        "@vx/pattern": "^0.0.179",
+        "@vx/point": "^0.0.165",
+        "@vx/responsive": "^0.0.192",
+        "@vx/scale": "^0.0.179",
+        "@vx/shape": "^0.0.179",
         "d3-array": "^1.2.0",
         "prop-types": "^15.5.10"
       },
@@ -3849,36 +3845,105 @@
           "resolved": "https://registry.npmjs.org/@data-ui/theme/-/theme-0.0.8.tgz",
           "integrity": "sha1-MRZyPQS5n2XHdQ+BpQDpYItIN8M="
         },
-        "@vx/curve": {
-          "version": "0.0.140",
-          "resolved": "https://registry.npmjs.org/@vx/curve/-/curve-0.0.140.tgz",
-          "integrity": "sha1-Ke84jos3GCE9ZqiW1WncHryO34k=",
+        "@vx/axis": {
+          "version": "0.0.179",
+          "resolved": "https://registry.npmjs.org/@vx/axis/-/axis-0.0.179.tgz",
+          "integrity": "sha512-FtUcdJxejYn5jgixSgSk9AdA96VwP9sCRATVfGvugEL0gtTKWYDbJEgSgqXfKqpeUdsDdf/JT7NVbLMc1hzrZg==",
           "requires": {
-            "d3-shape": "^1.0.6"
+            "@vx/group": "0.0.170",
+            "@vx/point": "0.0.165",
+            "@vx/shape": "0.0.179",
+            "@vx/text": "0.0.179",
+            "classnames": "^2.2.5",
+            "prop-types": "^15.6.0"
           }
         },
         "@vx/event": {
-          "version": "0.0.143",
-          "resolved": "https://registry.npmjs.org/@vx/event/-/event-0.0.143.tgz",
-          "integrity": "sha1-SbFJP+Fu99eGVAXS3PJnwKlYcdE=",
+          "version": "0.0.179",
+          "resolved": "https://registry.npmjs.org/@vx/event/-/event-0.0.179.tgz",
+          "integrity": "sha512-wEwqKsxrzoRV/A9Va/f/CHPmV9asrTH/kW/f88jCydsVXd5W/nrJZiVpozN2Zr1Ernv0i1gW5896FWo/LHRg0A==",
           "requires": {
-            "@vx/point": "0.0.143"
-          },
-          "dependencies": {
-            "@vx/point": {
-              "version": "0.0.143",
-              "resolved": "https://registry.npmjs.org/@vx/point/-/point-0.0.143.tgz",
-              "integrity": "sha1-e236YRF17ht048OSByWJp52t8mU="
-            }
+            "@vx/point": "0.0.165"
+          }
+        },
+        "@vx/glyph": {
+          "version": "0.0.179",
+          "resolved": "https://registry.npmjs.org/@vx/glyph/-/glyph-0.0.179.tgz",
+          "integrity": "sha512-RO7adwyG+9gGzjFdfmplrojgWCT+gsOnIFcRgJNJjx41+P6hWdI9X4OpsLx8VVqNhp7g+hxBDZWte8AxTvLQGw==",
+          "requires": {
+            "@vx/group": "0.0.170",
+            "classnames": "^2.2.5",
+            "d3-shape": "^1.2.0",
+            "prop-types": "^15.6.2"
+          }
+        },
+        "@vx/gradient": {
+          "version": "0.0.165",
+          "resolved": "https://registry.npmjs.org/@vx/gradient/-/gradient-0.0.165.tgz",
+          "integrity": "sha512-FjRXMTmcy7k0TWsfDzWWXw6T9WXKP+6LS/GRgnguq271pab/P+AdOJThsVxtBgUc8ZOAPbub3/2Gggz9d8tocg==",
+          "requires": {
+            "classnames": "^2.2.5",
+            "prop-types": "^15.5.7"
+          }
+        },
+        "@vx/group": {
+          "version": "0.0.170",
+          "resolved": "https://registry.npmjs.org/@vx/group/-/group-0.0.170.tgz",
+          "integrity": "sha512-RnDdRoy0YI5hokk+YWXc8t39Kp51i4BdCpiwkDJU4YypGycTYnDFjicam6jigUmZ/6wyMirDf/aQboWviFLt2Q==",
+          "requires": {
+            "classnames": "^2.2.5"
           }
         },
+        "@vx/pattern": {
+          "version": "0.0.179",
+          "resolved": "https://registry.npmjs.org/@vx/pattern/-/pattern-0.0.179.tgz",
+          "integrity": "sha512-qvJsK07oUnSbuzj9jo7b/1Up13DknIeTlj9FDIhg0UNmz90ikVN2CZIWtdJyc2I1AFDEg0odOqYXzUx9aEBRfg==",
+          "requires": {
+            "classnames": "^2.2.5",
+            "prop-types": "^15.5.10"
+          }
+        },
+        "@vx/point": {
+          "version": "0.0.165",
+          "resolved": "https://registry.npmjs.org/@vx/point/-/point-0.0.165.tgz",
+          "integrity": "sha512-spoHilhjcWNgccrSzBUPw+PXV81tYxeyEWBkgr35aGVU4m7YT86Ywvfemwp7AVVGPn+XJHrhB0ujAhDoyqFPoA=="
+        },
         "@vx/responsive": {
-          "version": "0.0.140",
-          "resolved": "https://registry.npmjs.org/@vx/responsive/-/responsive-0.0.140.tgz",
-          "integrity": "sha1-xz7Gi56JoYFgXxrJ7MCfNSFneag=",
+          "version": "0.0.192",
+          "resolved": "https://registry.npmjs.org/@vx/responsive/-/responsive-0.0.192.tgz",
+          "integrity": "sha512-HaXVwhSJXUfRbzRV+glxsX0ki2Hi1mdpz42iuGArVQgDPJEmBHjkXyoiXU8U6v66M7FAH+OyKgtc5j2bfhyYzA==",
           "requires": {
-            "lodash": "^4.0.8"
+            "lodash": "^4.17.10",
+            "prop-types": "^15.6.1",
+            "resize-observer-polyfill": "1.5.0"
+          }
+        },
+        "@vx/scale": {
+          "version": "0.0.179",
+          "resolved": "https://registry.npmjs.org/@vx/scale/-/scale-0.0.179.tgz",
+          "integrity": "sha512-j40WiGu4VcHZdaSQAl12ig2w5c4Q9EVn7qqYf9PX7uoS5PbxRYNnHeKZ7e5Bf8O6b57iv5jFTfUV7HkpNF4vvg==",
+          "requires": {
+            "d3-scale": "^2.0.0"
+          }
+        },
+        "@vx/shape": {
+          "version": "0.0.179",
+          "resolved": "https://registry.npmjs.org/@vx/shape/-/shape-0.0.179.tgz",
+          "integrity": "sha512-YHVNx4xGpbjolkW3Lb5pEgJB0+u349vfnLI976DJlinY0hRNa4TZbWXOB4ywLIrYzQEXXPMUR8WtdubNxg6g0w==",
+          "requires": {
+            "@vx/curve": "0.0.165",
+            "@vx/group": "0.0.170",
+            "@vx/point": "0.0.165",
+            "classnames": "^2.2.5",
+            "d3-path": "^1.0.5",
+            "d3-shape": "^1.2.0",
+            "prop-types": "^15.5.10"
           }
+        },
+        "resize-observer-polyfill": {
+          "version": "1.5.0",
+          "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.0.tgz",
+          "integrity": "sha512-M2AelyJDVR/oLnToJLtuDJRBBWUGUvvGigj1411hXhAdyFWqMaqHp7TixW3FpiLuVaikIcR1QL+zqoJoZlOgpg=="
         }
       }
     },
@@ -18219,9 +18284,9 @@
       "integrity": "sha1-smI9AE3Vw8imr+jQYN5Z31FHLZQ="
     },
     "@vx/curve": {
-      "version": "0.0.143",
-      "resolved": "https://registry.npmjs.org/@vx/curve/-/curve-0.0.143.tgz",
-      "integrity": "sha1-AixqigfsAZ7Vgg8CFNoh/ZNkVyQ=",
+      "version": "0.0.165",
+      "resolved": "https://registry.npmjs.org/@vx/curve/-/curve-0.0.165.tgz",
+      "integrity": "sha512-fiQAGrKNGjJbL+eixUckJqIZDWXH/1NtIyyDbSz3J7ksk0QpYr5BgWcNJN76HLNt7wfcLwNzCHeNs4iVYyFGTg==",
       "requires": {
         "d3-shape": "^1.0.6"
       }
@@ -21063,28 +21128,28 @@
           "dependencies": {
             "abbrev": {
               "version": "1.1.1",
-              "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+              "resolved": "",
               "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
               "dev": true,
               "optional": true
             },
             "ansi-regex": {
               "version": "2.1.1",
-              "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+              "resolved": "",
               "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
               "dev": true,
               "optional": true
             },
             "aproba": {
               "version": "1.2.0",
-              "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+              "resolved": "",
               "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
               "dev": true,
               "optional": true
             },
             "are-we-there-yet": {
               "version": "1.1.5",
-              "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
+              "resolved": "",
               "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
               "dev": true,
               "optional": true,
@@ -21095,14 +21160,14 @@
             },
             "balanced-match": {
               "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+              "resolved": "",
               "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
               "dev": true,
               "optional": true
             },
             "brace-expansion": {
               "version": "1.1.11",
-              "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+              "resolved": "",
               "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
               "dev": true,
               "optional": true,
@@ -21113,35 +21178,35 @@
             },
             "code-point-at": {
               "version": "1.1.0",
-              "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+              "resolved": "",
               "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
               "dev": true,
               "optional": true
             },
             "concat-map": {
               "version": "0.0.1",
-              "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+              "resolved": "",
               "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
               "dev": true,
               "optional": true
             },
             "console-control-strings": {
               "version": "1.1.0",
-              "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+              "resolved": "",
               "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
               "dev": true,
               "optional": true
             },
             "core-util-is": {
               "version": "1.0.2",
-              "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+              "resolved": "",
               "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
               "dev": true,
               "optional": true
             },
             "debug": {
               "version": "4.1.1",
-              "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
+              "resolved": "",
               "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
               "dev": true,
               "optional": true,
@@ -21151,35 +21216,35 @@
             },
             "deep-extend": {
               "version": "0.6.0",
-              "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+              "resolved": "",
               "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
               "dev": true,
               "optional": true
             },
             "delegates": {
               "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+              "resolved": "",
               "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
               "dev": true,
               "optional": true
             },
             "detect-libc": {
               "version": "1.0.3",
-              "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
+              "resolved": "",
               "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
               "dev": true,
               "optional": true
             },
             "fs.realpath": {
               "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+              "resolved": "",
               "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
               "dev": true,
               "optional": true
             },
             "gauge": {
               "version": "2.7.4",
-              "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+              "resolved": "",
               "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
               "dev": true,
               "optional": true,
@@ -21196,7 +21261,7 @@
             },
             "glob": {
               "version": "7.1.3",
-              "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+              "resolved": "",
               "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
               "dev": true,
               "optional": true,
@@ -21211,14 +21276,14 @@
             },
             "has-unicode": {
               "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+              "resolved": "",
               "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
               "dev": true,
               "optional": true
             },
             "iconv-lite": {
               "version": "0.4.24",
-              "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+              "resolved": "",
               "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
               "dev": true,
               "optional": true,
@@ -21228,7 +21293,7 @@
             },
             "ignore-walk": {
               "version": "3.0.1",
-              "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
+              "resolved": "",
               "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
               "dev": true,
               "optional": true,
@@ -21238,7 +21303,7 @@
             },
             "inflight": {
               "version": "1.0.6",
-              "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+              "resolved": "",
               "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
               "dev": true,
               "optional": true,
@@ -21249,21 +21314,21 @@
             },
             "inherits": {
               "version": "2.0.3",
-              "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+              "resolved": "",
               "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
               "dev": true,
               "optional": true
             },
             "ini": {
               "version": "1.3.5",
-              "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
+              "resolved": "",
               "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
               "dev": true,
               "optional": true
             },
             "is-fullwidth-code-point": {
               "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+              "resolved": "",
               "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
               "dev": true,
               "optional": true,
@@ -21273,14 +21338,14 @@
             },
             "isarray": {
               "version": "1.0.0",
-              "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+              "resolved": "",
               "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
               "dev": true,
               "optional": true
             },
             "minimatch": {
               "version": "3.0.4",
-              "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+              "resolved": "",
               "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
               "dev": true,
               "optional": true,
@@ -21297,14 +21362,14 @@
             },
             "ms": {
               "version": "2.1.1",
-              "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+              "resolved": "",
               "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
               "dev": true,
               "optional": true
             },
             "needle": {
               "version": "2.3.0",
-              "resolved": "https://registry.npmjs.org/needle/-/needle-2.3.0.tgz",
+              "resolved": "",
               "integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==",
               "dev": true,
               "optional": true,
@@ -21316,7 +21381,7 @@
             },
             "node-pre-gyp": {
               "version": "0.12.0",
-              "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz",
+              "resolved": "",
               "integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
               "dev": true,
               "optional": true,
@@ -21335,7 +21400,7 @@
             },
             "nopt": {
               "version": "4.0.1",
-              "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
+              "resolved": "",
               "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
               "dev": true,
               "optional": true,
@@ -21346,14 +21411,14 @@
             },
             "npm-bundled": {
               "version": "1.0.6",
-              "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz",
+              "resolved": "",
               "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
               "dev": true,
               "optional": true
             },
             "npm-packlist": {
               "version": "1.4.1",
-              "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.1.tgz",
+              "resolved": "",
               "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
               "dev": true,
               "optional": true,
@@ -21364,7 +21429,7 @@
             },
             "npmlog": {
               "version": "4.1.2",
-              "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+              "resolved": "",
               "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
               "dev": true,
               "optional": true,
@@ -21377,21 +21442,21 @@
             },
             "number-is-nan": {
               "version": "1.0.1",
-              "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+              "resolved": "",
               "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
               "dev": true,
               "optional": true
             },
             "object-assign": {
               "version": "4.1.1",
-              "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+              "resolved": "",
               "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
               "dev": true,
               "optional": true
             },
             "once": {
               "version": "1.4.0",
-              "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+              "resolved": "",
               "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
               "dev": true,
               "optional": true,
@@ -21401,21 +21466,21 @@
             },
             "os-homedir": {
               "version": "1.0.2",
-              "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
+              "resolved": "",
               "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
               "dev": true,
               "optional": true
             },
             "os-tmpdir": {
               "version": "1.0.2",
-              "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
+              "resolved": "",
               "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
               "dev": true,
               "optional": true
             },
             "osenv": {
               "version": "0.1.5",
-              "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+              "resolved": "",
               "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
               "dev": true,
               "optional": true,
@@ -21426,21 +21491,21 @@
             },
             "path-is-absolute": {
               "version": "1.0.1",
-              "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+              "resolved": "",
               "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
               "dev": true,
               "optional": true
             },
             "process-nextick-args": {
               "version": "2.0.0",
-              "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
+              "resolved": "",
               "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
               "dev": true,
               "optional": true
             },
             "rc": {
               "version": "1.2.8",
-              "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
+              "resolved": "",
               "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
               "dev": true,
               "optional": true,
@@ -21453,7 +21518,7 @@
             },
             "readable-stream": {
               "version": "2.3.6",
-              "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
+              "resolved": "",
               "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
               "dev": true,
               "optional": true,
@@ -21469,7 +21534,7 @@
             },
             "rimraf": {
               "version": "2.6.3",
-              "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
+              "resolved": "",
               "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
               "dev": true,
               "optional": true,
@@ -21479,49 +21544,49 @@
             },
             "safe-buffer": {
               "version": "5.1.2",
-              "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+              "resolved": "",
               "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
               "dev": true,
               "optional": true
             },
             "safer-buffer": {
               "version": "2.1.2",
-              "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+              "resolved": "",
               "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
               "dev": true,
               "optional": true
             },
             "sax": {
               "version": "1.2.4",
-              "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+              "resolved": "",
               "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
               "dev": true,
               "optional": true
             },
             "semver": {
               "version": "5.7.0",
-              "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
+              "resolved": "",
               "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
               "dev": true,
               "optional": true
             },
             "set-blocking": {
               "version": "2.0.0",
-              "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+              "resolved": "",
               "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
               "dev": true,
               "optional": true
             },
             "signal-exit": {
               "version": "3.0.2",
-              "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
+              "resolved": "",
               "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
               "dev": true,
               "optional": true
             },
             "string-width": {
               "version": "1.0.2",
-              "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+              "resolved": "",
               "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
               "dev": true,
               "optional": true,
@@ -21533,7 +21598,7 @@
             },
             "string_decoder": {
               "version": "1.1.1",
-              "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+              "resolved": "",
               "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
               "dev": true,
               "optional": true,
@@ -21543,7 +21608,7 @@
             },
             "strip-ansi": {
               "version": "3.0.1",
-              "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+              "resolved": "",
               "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
               "dev": true,
               "optional": true,
@@ -21553,21 +21618,21 @@
             },
             "strip-json-comments": {
               "version": "2.0.1",
-              "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+              "resolved": "",
               "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
               "dev": true,
               "optional": true
             },
             "util-deprecate": {
               "version": "1.0.2",
-              "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+              "resolved": "",
               "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
               "dev": true,
               "optional": true
             },
             "wide-align": {
               "version": "1.1.3",
-              "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
+              "resolved": "",
               "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
               "dev": true,
               "optional": true,
@@ -21577,7 +21642,7 @@
             },
             "wrappy": {
               "version": "1.0.2",
-              "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+              "resolved": "",
               "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
               "dev": true,
               "optional": true
@@ -22727,16 +22792,6 @@
         "sha.js": "^2.4.8"
       }
     },
-    "create-react-class": {
-      "version": "15.6.3",
-      "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz",
-      "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==",
-      "requires": {
-        "fbjs": "^0.8.9",
-        "loose-envify": "^1.3.1",
-        "object-assign": "^4.1.1"
-      }
-    },
     "create-react-context": {
       "version": "0.3.0",
       "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.3.0.tgz",
@@ -26443,6 +26498,11 @@
       "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
       "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc="
     },
+    "fast-memoize": {
+      "version": "2.5.2",
+      "resolved": "https://registry.npmjs.org/fast-memoize/-/fast-memoize-2.5.2.tgz",
+      "integrity": "sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw=="
+    },
     "fast-safe-stringify": {
       "version": "2.0.7",
       "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz",
@@ -39007,9 +39067,12 @@
       }
     },
     "re-resizable": {
-      "version": "4.11.0",
-      "resolved": "https://registry.npmjs.org/re-resizable/-/re-resizable-4.11.0.tgz",
-      "integrity": "sha512-dye+7rERqNf/6mDT1iwps+4Gf42420xuZgygF33uX178DxffqcyeuHbBuJ382FIcB5iP6mMZOhfW7kI0uXwb/Q=="
+      "version": "6.6.1",
+      "resolved": "https://registry.npmjs.org/re-resizable/-/re-resizable-6.6.1.tgz",
+      "integrity": "sha512-ttWVasZ9X7c0ir0+4YK47tkmm9EAFssW07YLkeLzG5HCOuFgFAlSVzMlzAH0h3i6hDShQCHHJecVx5rk+snoFA==",
+      "requires": {
+        "fast-memoize": "^2.5.1"
+      }
     },
     "react": {
       "version": "16.13.1",
@@ -39133,21 +39196,11 @@
       }
     },
     "react-datetime": {
-      "version": "2.16.3",
-      "resolved": "https://registry.npmjs.org/react-datetime/-/react-datetime-2.16.3.tgz",
-      "integrity": "sha512-amWfb5iGEiyqjLmqCLlPpu2oN415jK8wX1qoTq7qn6EYiU7qQgbNHglww014PT4O/3G5eo/3kbJu/M/IxxTyGw==",
+      "version": "3.0.4",
+      "resolved": "https://registry.npmjs.org/react-datetime/-/react-datetime-3.0.4.tgz",
+      "integrity": "sha512-v6MVwCve+DRaLN2f22LTO5TlrPpkUXumPkp1zfrbhaFtSYGl2grZ2JtwJfLxRj/T4ACyePAV4srCR6cMSiQ/Iw==",
       "requires": {
-        "create-react-class": "^15.5.2",
-        "object-assign": "^3.0.0",
-        "prop-types": "^15.5.7",
-        "react-onclickoutside": "^6.5.0"
-      },
-      "dependencies": {
-        "object-assign": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz",
-          "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I="
-        }
+        "prop-types": "^15.5.7"
       }
     },
     "react-dev-utils": {
@@ -40337,11 +40390,6 @@
         "react-lifecycles-compat": "^3.0.4"
       }
     },
-    "react-onclickoutside": {
-      "version": "6.7.1",
-      "resolved": "https://registry.npmjs.org/react-onclickoutside/-/react-onclickoutside-6.7.1.tgz",
-      "integrity": "sha512-p84kBqGaMoa7VYT0vZ/aOYRfJB+gw34yjpda1Z5KeLflg70HipZOT+MXQenEhdkPAABuE2Astq4zEPdMqUQxcg=="
-    },
     "react-overlays": {
       "version": "0.9.2",
       "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-0.9.2.tgz",
diff --git a/superset-frontend/package.json b/superset-frontend/package.json
index 033d2bb..a65cd92 100644
--- a/superset-frontend/package.json
+++ b/superset-frontend/package.json
@@ -61,7 +61,7 @@
   "homepage": "https://superset.apache.org/",
   "dependencies": {
     "@babel/runtime-corejs3": "^7.8.4",
-    "@data-ui/sparkline": "^0.0.54",
+    "@data-ui/sparkline": "^0.0.84",
     "@emotion/core": "^10.0.28",
     "@superset-ui/chart-controls": "^0.15.3",
     "@superset-ui/core": "^0.15.2",
@@ -122,7 +122,7 @@
     "omnibar": "^2.1.1",
     "polished": "^3.6.5",
     "prop-types": "^15.7.2",
-    "re-resizable": "^4.3.1",
+    "re-resizable": "^6.6.1",
     "react": "^16.13.1",
     "react-ace": "^5.10.0",
     "react-avatar": "^3.9.7",
@@ -131,7 +131,7 @@
     "react-bootstrap-slider": "2.1.5",
     "react-checkbox-tree": "^1.5.1",
     "react-color": "^2.13.8",
-    "react-datetime": "^2.14.0",
+    "react-datetime": "^3.0.4",
     "react-dnd": "^2.5.4",
     "react-dnd-html5-backend": "^2.5.4",
     "react-dom": "^16.13.0",
@@ -149,7 +149,7 @@
     "react-select-fast-filter-options": "^0.2.1",
     "react-sortable-hoc": "^1.11.0",
     "react-split": "^2.0.4",
-    "react-sticky": "^6.0.2",
+    "react-sticky": "^6.0.3",
     "react-syntax-highlighter": "^13.5.3",
     "react-table": "^7.2.1",
     "react-transition-group": "^2.5.3",
diff --git a/superset-frontend/spec/javascripts/dashboard/components/Header_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/Header_spec.jsx
index bc05ddd..96aa812 100644
--- a/superset-frontend/spec/javascripts/dashboard/components/Header_spec.jsx
+++ b/superset-frontend/spec/javascripts/dashboard/components/Header_spec.jsx
@@ -53,7 +53,7 @@ describe('Header', () => {
     fetchCharts: () => {},
     saveFaveStar: () => {},
     savePublished: () => {},
-    isPublished: () => {},
+    isPublished: false,
     updateDashboardTitle: () => {},
     editMode: false,
     setEditMode: () => {},
diff --git a/superset-frontend/spec/javascripts/dashboard/components/resizable/ResizableContainer_spec.jsx b/superset-frontend/spec/javascripts/dashboard/components/resizable/ResizableContainer_spec.jsx
index 5bc12b6..68c873d 100644
--- a/superset-frontend/spec/javascripts/dashboard/components/resizable/ResizableContainer_spec.jsx
+++ b/superset-frontend/spec/javascripts/dashboard/components/resizable/ResizableContainer_spec.jsx
@@ -17,7 +17,7 @@
  * under the License.
  */
 import React from 'react';
-import Resizable from 're-resizable';
+import { Resizable } from 're-resizable';
 import { shallow } from 'enzyme';
 
 import ResizableContainer from 'src/dashboard/components/resizable/ResizableContainer';
diff --git a/superset-frontend/src/CRUD/CollectionTable.tsx b/superset-frontend/src/CRUD/CollectionTable.tsx
index 51f7725..f76c893 100644
--- a/superset-frontend/src/CRUD/CollectionTable.tsx
+++ b/superset-frontend/src/CRUD/CollectionTable.tsx
@@ -29,9 +29,9 @@ interface CRUDCollectionProps {
   allowDeletes?: boolean;
   collection: Array<object>;
   columnLabels?: object;
-  emptyMessage: ReactNode;
-  expandFieldset: ReactNode;
-  extraButtons: ReactNode;
+  emptyMessage?: ReactNode;
+  expandFieldset?: ReactNode;
+  extraButtons?: ReactNode;
   itemGenerator?: () => any;
   itemRenderers?: ((
     val: unknown,
diff --git a/superset-frontend/src/CRUD/Field.jsx b/superset-frontend/src/CRUD/Field.jsx
index 3d56019..44d0366 100644
--- a/superset-frontend/src/CRUD/Field.jsx
+++ b/superset-frontend/src/CRUD/Field.jsx
@@ -30,7 +30,7 @@ import FormLabel from 'src/components/FormLabel';
 import './crud.less';
 
 const propTypes = {
-  value: PropTypes.any.isRequired,
+  value: PropTypes.any,
   label: PropTypes.string.isRequired,
   description: PropTypes.node,
   fieldKey: PropTypes.string.isRequired,
diff --git a/superset-frontend/src/CRUD/Fieldset.jsx b/superset-frontend/src/CRUD/Fieldset.jsx
index 15eb1a7..dcbfc51 100644
--- a/superset-frontend/src/CRUD/Fieldset.jsx
+++ b/superset-frontend/src/CRUD/Fieldset.jsx
@@ -25,8 +25,8 @@ import Field from './Field';
 
 const propTypes = {
   children: PropTypes.node.isRequired,
-  onChange: PropTypes.func.isRequired,
-  item: PropTypes.object.isRequired,
+  onChange: PropTypes.func,
+  item: PropTypes.object,
   title: PropTypes.node,
   compact: PropTypes.bool,
 };
diff --git a/superset-frontend/src/SqlLab/components/QuerySearch.jsx b/superset-frontend/src/SqlLab/components/QuerySearch.jsx
index c2ca26f..cbe1995 100644
--- a/superset-frontend/src/SqlLab/components/QuerySearch.jsx
+++ b/superset-frontend/src/SqlLab/components/QuerySearch.jsx
@@ -35,7 +35,7 @@ import AsyncSelect from '../../components/AsyncSelect';
 
 const propTypes = {
   actions: PropTypes.object.isRequired,
-  height: PropTypes.string.isRequired,
+  height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
   displayLimit: PropTypes.number.isRequired,
 };
 
diff --git a/superset-frontend/src/addSlice/AddSliceContainer.tsx b/superset-frontend/src/addSlice/AddSliceContainer.tsx
index 5f661ea..88bc3cc 100644
--- a/superset-frontend/src/addSlice/AddSliceContainer.tsx
+++ b/superset-frontend/src/addSlice/AddSliceContainer.tsx
@@ -40,7 +40,7 @@ export type AddSliceContainerState = {
   visType: string;
 };
 
-const styleSelectWidth = { width: 600 };
+const styleSelectContainer = { width: 600, marginBottom: '10px' };
 
 export default class AddSliceContainer extends React.PureComponent<
   AddSliceContainerProps,
@@ -96,27 +96,24 @@ export default class AddSliceContainer extends React.PureComponent<
           <Panel.Body>
             <div>
               <p>{t('Choose a datasource')}</p>
-              <p>
-                <div style={styleSelectWidth}>
-                  <Select
-                    clearable={false}
-                    ignoreAccents={false}
-                    name="select-datasource"
-                    onChange={this.changeDatasource}
-                    options={this.props.datasources}
-                    placeholder={t('Choose a datasource')}
-                    style={styleSelectWidth}
-                    value={
-                      this.state.datasourceValue
-                        ? {
-                            value: this.state.datasourceValue,
-                          }
-                        : undefined
-                    }
-                    width={600}
-                  />
-                </div>
-              </p>
+              <div style={styleSelectContainer}>
+                <Select
+                  clearable={false}
+                  ignoreAccents={false}
+                  name="select-datasource"
+                  onChange={this.changeDatasource}
+                  options={this.props.datasources}
+                  placeholder={t('Choose a datasource')}
+                  value={
+                    this.state.datasourceValue
+                      ? {
+                          value: this.state.datasourceValue,
+                        }
+                      : undefined
+                  }
+                  width={600}
+                />
+              </div>
               <span className="text-muted">
                 {t(
                   'If the datasource you are looking for is not available in the list, follow the instructions on how to add it in the Superset tutorial.',
diff --git a/superset-frontend/src/dashboard/components/BuilderComponentPane.jsx b/superset-frontend/src/dashboard/components/BuilderComponentPane.jsx
index 0c9086f..15fd2bc 100644
--- a/superset-frontend/src/dashboard/components/BuilderComponentPane.jsx
+++ b/superset-frontend/src/dashboard/components/BuilderComponentPane.jsx
@@ -47,7 +47,7 @@ class BuilderComponentPane extends React.PureComponent {
   renderTabs(height) {
     const { isSticky } = this.props;
     return (
-      <Tabs className="m-t-10 tabs-components">
+      <Tabs className="m-t-10 tabs-components" id="tabs">
         <Tab eventKey={1} title={t('Components')}>
           <NewTabs />
           <NewRow />
diff --git a/superset-frontend/src/dashboard/components/resizable/ResizableContainer.jsx b/superset-frontend/src/dashboard/components/resizable/ResizableContainer.jsx
index 56eb537..26c5f66 100644
--- a/superset-frontend/src/dashboard/components/resizable/ResizableContainer.jsx
+++ b/superset-frontend/src/dashboard/components/resizable/ResizableContainer.jsx
@@ -18,7 +18,7 @@
  */
 import React from 'react';
 import PropTypes from 'prop-types';
-import Resizable from 're-resizable';
+import { Resizable } from 're-resizable';
 import cx from 'classnames';
 
 import ResizableHandle from './ResizableHandle';
diff --git a/superset-frontend/src/dashboard/util/propShapes.jsx b/superset-frontend/src/dashboard/util/propShapes.jsx
index 3052ee5..3743b94 100644
--- a/superset-frontend/src/dashboard/util/propShapes.jsx
+++ b/superset-frontend/src/dashboard/util/propShapes.jsx
@@ -68,7 +68,7 @@ export const slicePropShape = PropTypes.shape({
   viz_type: PropTypes.string.isRequired,
   description: PropTypes.string,
   description_markeddown: PropTypes.string,
-  owners: PropTypes.arrayOf(PropTypes.string).isRequired,
+  owners: PropTypes.arrayOf(PropTypes.string),
 });
 
 export const filterIndicatorPropShape = PropTypes.shape({
diff --git a/superset-frontend/src/datasource/DatasourceEditor.jsx b/superset-frontend/src/datasource/DatasourceEditor.jsx
index 93db71c..d36bfae 100644
--- a/superset-frontend/src/datasource/DatasourceEditor.jsx
+++ b/superset-frontend/src/datasource/DatasourceEditor.jsx
@@ -121,12 +121,22 @@ function ColumnCollectionTable({
             <Field
               fieldKey="verbose_name"
               label={t('Label')}
-              control={<TextControl placeholder={t('Label')} />}
+              control={
+                <TextControl
+                  controlId="verbose_name"
+                  placeholder={t('Label')}
+                />
+              }
             />
             <Field
               fieldKey="description"
               label={t('Description')}
-              control={<TextControl placeholder={t('Description')} />}
+              control={
+                <TextControl
+                  controlId="description"
+                  placeholder={t('Description')}
+                />
+              }
             />
             {allowEditDataType && (
               <Field
@@ -162,7 +172,12 @@ function ColumnCollectionTable({
                       database/column name level via the extra parameter.`)}
                 </div>
               }
-              control={<TextControl placeholder="%y/%m/%d" />}
+              control={
+                <TextControl
+                  controlId="python_date_format"
+                  placeholder="%y/%m/%d"
+                />
+              }
             />
           </Fieldset>
         </FormContainer>
@@ -492,7 +507,7 @@ class DatasourceEditor extends React.PureComponent {
           description={t(
             'Default URL to redirect to when accessing from the dataset list page',
           )}
-          control={<TextControl />}
+          control={<TextControl controlId="default_endpoint" />}
         />
         <Field
           fieldKey="filter_select_enabled"
@@ -511,7 +526,7 @@ class DatasourceEditor extends React.PureComponent {
                 'values from the table. Typically the intent would be to limit the scan ' +
                 'by applying a relative time filter on a partitioned or indexed time-related field.',
             )}
-            control={<TextControl />}
+            control={<TextControl controlId="fetch_values_predicate" />}
           />
         )}
         <Field
@@ -576,12 +591,12 @@ class DatasourceEditor extends React.PureComponent {
           description={t(
             'The duration of time in seconds before the cache is invalidated',
           )}
-          control={<TextControl />}
+          control={<TextControl controlId="cache_timeout" />}
         />
         <Field
           fieldKey="offset"
           label={t('Hours offset')}
-          control={<TextControl />}
+          control={<TextControl controlId="offset" />}
         />
         {this.state.isSqla && (
           <Field
@@ -590,7 +605,7 @@ class DatasourceEditor extends React.PureComponent {
             description={t(
               'A set of parameters that become available in the query using Jinja templating syntax',
             )}
-            control={<TextControl />}
+            control={<TextControl controlId="template_params" />}
           />
         )}
       </Fieldset>
@@ -658,17 +673,24 @@ class DatasourceEditor extends React.PureComponent {
               <Field
                 fieldKey="verbose_name"
                 label={t('Label')}
-                control={<TextControl />}
+                control={<TextControl controlId="verbose_name" />}
               />
               <Field
                 fieldKey="description"
                 label={t('Description')}
-                control={<TextControl placeholder={t('Description')} />}
+                control={
+                  <TextControl
+                    controlId="description"
+                    placeholder={t('Description')}
+                  />
+                }
               />
               <Field
                 fieldKey="d3format"
                 label={t('D3 Format')}
-                control={<TextControl placeholder="%y/%m/%d" />}
+                control={
+                  <TextControl controlId="d3format" placeholder="%y/%m/%d" />
+                }
               />
               <Field
                 label={t('Warning Message')}
@@ -676,7 +698,12 @@ class DatasourceEditor extends React.PureComponent {
                 description={t(
                   'Warning message to display in the metric selector',
                 )}
-                control={<TextControl placeholder={t('Warning Message')} />}
+                control={
+                  <TextControl
+                    controlId="warning_text"
+                    placeholder={t('Warning Message')}
+                  />
+                }
               />
               <Field
                 label={t('Certified By')}
@@ -684,14 +711,22 @@ class DatasourceEditor extends React.PureComponent {
                 description={t(
                   'Person or group that has certified this metric',
                 )}
-                control={<TextControl placeholder={t('Certified By')} />}
+                control={
+                  <TextControl
+                    controlId="certified_by"
+                    placeholder={t('Certified By')}
+                  />
+                }
               />
               <Field
                 label={t('Certification Details')}
                 fieldKey="certification_details"
                 description={t('Details of the certification')}
                 control={
-                  <TextControl placeholder={t('Certification Details')} />
+                  <TextControl
+                    controlId="certification_details"
+                    placeholder={t('Certification Details')}
+                  />
                 }
               />
             </Fieldset>
diff --git a/superset-frontend/src/explore/components/controls/TextControl.tsx b/superset-frontend/src/explore/components/controls/TextControl.tsx
index 0f0caf3..655f37c 100644
--- a/superset-frontend/src/explore/components/controls/TextControl.tsx
+++ b/superset-frontend/src/explore/components/controls/TextControl.tsx
@@ -22,19 +22,35 @@ import { legacyValidateNumber, legacyValidateInteger } from '@superset-ui/core';
 import ControlHeader from '../ControlHeader';
 
 interface TextControlProps {
-  disabled: boolean;
-  isFloat: boolean;
-  isInt: boolean;
-  onChange: (value: any, errors: any) => {};
-  onFocus: () => {};
-  placeholder: string;
-  value: string | number;
+  disabled?: boolean;
+  isFloat?: boolean;
+  isInt?: boolean;
+  onChange?: (value: any, errors: any) => {};
+  onFocus?: () => {};
+  placeholder?: string;
+  value?: string | number;
+  controlId?: string;
 }
 
-export default class TextControl extends React.Component<TextControlProps> {
+interface TextControlState {
+  controlId: string;
+}
+
+const generateControlId = (controlId?: string) =>
+  `formInlineName_${controlId ?? (Math.random() * 1000000).toFixed()}`;
+
+export default class TextControl extends React.Component<
+  TextControlProps,
+  TextControlState
+> {
   constructor(props: TextControlProps) {
     super(props);
     this.onChange = this.onChange.bind(this);
+    // if there's no control id provided, generate a random
+    // number to prevent rendering elements with same ids
+    this.state = {
+      controlId: generateControlId(props.controlId),
+    };
   }
 
   onChange(event: any) {
@@ -47,7 +63,7 @@ export default class TextControl extends React.Component<TextControlProps> {
       if (error) {
         errors.push(error);
       } else {
-        value = value.match(/.*(\.|0)$/g) ? value : parseFloat(value);
+        value = value.match(/.*([.0])$/g) ? value : parseFloat(value);
       }
     }
     if (value !== '' && this.props.isInt) {
@@ -58,7 +74,7 @@ export default class TextControl extends React.Component<TextControlProps> {
         value = parseInt(value, 10);
       }
     }
-    this.props.onChange(value, errors);
+    this.props.onChange?.(value, errors);
   }
 
   render() {
@@ -67,10 +83,11 @@ export default class TextControl extends React.Component<TextControlProps> {
       typeof rawValue !== 'undefined' && rawValue !== null
         ? rawValue.toString()
         : '';
+
     return (
       <div>
         <ControlHeader {...this.props} />
-        <FormGroup controlId="formInlineName" bsSize="small">
+        <FormGroup controlId={this.state.controlId} bsSize="small">
           <FormControl
             type="text"
             placeholder={this.props.placeholder}
diff --git a/superset-frontend/src/explore/components/controls/TimeSeriesColumnControl.jsx b/superset-frontend/src/explore/components/controls/TimeSeriesColumnControl.jsx
index ecd85f0..d99d359 100644
--- a/superset-frontend/src/explore/components/controls/TimeSeriesColumnControl.jsx
+++ b/superset-frontend/src/explore/components/controls/TimeSeriesColumnControl.jsx
@@ -38,7 +38,7 @@ const propTypes = {
   colType: PropTypes.string,
   width: PropTypes.string,
   height: PropTypes.string,
-  timeLag: PropTypes.string,
+  timeLag: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
   timeRatio: PropTypes.string,
   comparisonType: PropTypes.string,
   showYAxis: PropTypes.bool,