diff --git a/superset-frontend/package-lock.json b/superset-frontend/package-lock.json index e00f4ab33b..84c567e163 100644 --- a/superset-frontend/package-lock.json +++ b/superset-frontend/package-lock.json @@ -267,7 +267,7 @@ "thread-loader": "^3.0.4", "transform-loader": "^0.2.4", "ts-loader": "^9.4.4", - "typescript": "^4.5.4", + "typescript": "^4.8.4", "vm-browserify": "^1.1.2", "webpack": "^5.88.1", "webpack-bundle-analyzer": "^4.9.0", @@ -62004,9 +62004,9 @@ } }, "node_modules/typescript": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", - "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -118904,9 +118904,9 @@ } }, "typescript": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz", - "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==" + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", + "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==" }, "ua-parser-js": { "version": "0.7.33", diff --git a/superset-frontend/package.json b/superset-frontend/package.json index 2f7cb79325..030564d96b 100644 --- a/superset-frontend/package.json +++ b/superset-frontend/package.json @@ -334,7 +334,7 @@ "thread-loader": "^3.0.4", "transform-loader": "^0.2.4", "ts-loader": "^9.4.4", - "typescript": "^4.5.4", + "typescript": "^4.8.4", "vm-browserify": "^1.1.2", "webpack": "^5.88.1", "webpack-bundle-analyzer": "^4.9.0", diff --git a/superset-frontend/packages/superset-ui-core/src/chart/components/createLoadableRenderer.ts b/superset-frontend/packages/superset-ui-core/src/chart/components/createLoadableRenderer.ts index 64eb4b562f..a16b49d0af 100644 --- a/superset-frontend/packages/superset-ui-core/src/chart/components/createLoadableRenderer.ts +++ b/superset-frontend/packages/superset-ui-core/src/chart/components/createLoadableRenderer.ts @@ -33,9 +33,10 @@ export interface LoadableRenderer extends React.ComponentClass, Loadable.LoadableComponent {} -export default function createLoadableRenderer( - options: Loadable.OptionsWithMap, -): LoadableRenderer { +export default function createLoadableRenderer< + Props, + Exports extends { [key: string]: any }, +>(options: Loadable.OptionsWithMap): LoadableRenderer { const LoadableRenderer = Loadable.Map(options) as LoadableRenderer; // Extends the behavior of LoadableComponent to provide post-render listeners diff --git a/superset-frontend/packages/superset-ui-core/src/query/api/v1/makeApi.ts b/superset-frontend/packages/superset-ui-core/src/query/api/v1/makeApi.ts index b7229cc980..689f380f68 100644 --- a/superset-frontend/packages/superset-ui-core/src/query/api/v1/makeApi.ts +++ b/superset-frontend/packages/superset-ui-core/src/query/api/v1/makeApi.ts @@ -112,13 +112,13 @@ export default function makeApi< endpoint, }; if (requestType === 'search') { - requestConfig.searchParams = payload; + requestConfig.searchParams = payload as SupersetPayload; } else if (requestType === 'rison') { requestConfig.endpoint = `${endpoint}?q=${rison.encode(payload)}`; } else if (requestType === 'form') { - requestConfig.postPayload = payload; + requestConfig.postPayload = payload as SupersetPayload; } else { - requestConfig.jsonPayload = payload; + requestConfig.jsonPayload = payload as SupersetPayload; } let result: JsonValue | Response; diff --git a/superset-frontend/packages/superset-ui-switchboard/src/switchboard.ts b/superset-frontend/packages/superset-ui-switchboard/src/switchboard.ts index ab19d462f1..083407ced1 100644 --- a/superset-frontend/packages/superset-ui-switchboard/src/switchboard.ts +++ b/superset-frontend/packages/superset-ui-switchboard/src/switchboard.ts @@ -175,7 +175,10 @@ export class Switchboard { /** * Defines a method that can be "called" from the other side by sending an event. */ - defineMethod(methodName: string, executor: Method) { + defineMethod( + methodName: string, + executor: Method, + ) { this.methods[methodName] = executor; } diff --git a/superset-frontend/plugins/plugin-chart-table/src/DataTable/hooks/useSticky.tsx b/superset-frontend/plugins/plugin-chart-table/src/DataTable/hooks/useSticky.tsx index 067d071ee1..515370a087 100644 --- a/superset-frontend/plugins/plugin-chart-table/src/DataTable/hooks/useSticky.tsx +++ b/superset-frontend/plugins/plugin-chart-table/src/DataTable/hooks/useSticky.tsx @@ -350,6 +350,7 @@ function useInstance(instance: TableInstance) { ); const useStickyWrap = (renderer: TableRenderer) => { + // @ts-ignore const { width, height } = useMountedMemo(getTableSize, [getTableSize]) || sticky; // only change of data should trigger re-render diff --git a/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx b/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx index c3fe7282e6..afde89378b 100644 --- a/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx +++ b/superset-frontend/plugins/plugin-chart-table/src/controlPanel.tsx @@ -189,7 +189,7 @@ const config: ControlPanelConfig = { }, ], [ - hasGenericChartAxes && isAggMode + hasGenericChartAxes ? { name: 'time_grain_sqla', config: { @@ -217,7 +217,7 @@ const config: ControlPanelConfig = { }, } : null, - hasGenericChartAxes && isAggMode ? 'temporal_columns_lookup' : null, + hasGenericChartAxes ? 'temporal_columns_lookup' : null, ], [ { diff --git a/superset-frontend/plugins/plugin-chart-table/src/utils/extent.ts b/superset-frontend/plugins/plugin-chart-table/src/utils/extent.ts index d2ee83e289..4b326800d2 100644 --- a/superset-frontend/plugins/plugin-chart-table/src/utils/extent.ts +++ b/superset-frontend/plugins/plugin-chart-table/src/utils/extent.ts @@ -16,6 +16,9 @@ * specific language governing permissions and limitations * under the License. */ + +import { isNil } from 'lodash'; + export default function extent( values: T[], ) { @@ -24,16 +27,16 @@ export default function extent( // eslint-disable-next-line no-restricted-syntax for (const value of values) { if (value !== null) { - if (min === undefined) { + if (isNil(min)) { if (value !== undefined) { min = value; max = value; } - } else { + } else if (value !== undefined) { if (min > value) { min = value; } - if (max !== undefined) { + if (!isNil(max)) { if (max < value) { max = value; } diff --git a/superset-frontend/plugins/plugin-chart-word-cloud/src/chart/WordCloud.tsx b/superset-frontend/plugins/plugin-chart-word-cloud/src/chart/WordCloud.tsx index 2cedd648aa..17407cd7db 100644 --- a/superset-frontend/plugins/plugin-chart-word-cloud/src/chart/WordCloud.tsx +++ b/superset-frontend/plugins/plugin-chart-word-cloud/src/chart/WordCloud.tsx @@ -158,6 +158,7 @@ class WordCloud extends React.PureComponent< update() { const { data, encoding } = this.props; + // @ts-ignore const encoder = this.createEncoder(encoding); encoder.setDomainFromDataset(data); @@ -221,6 +222,7 @@ class WordCloud extends React.PureComponent< const { width, height, encoding, sliceId } = this.props; const { words } = this.state; + // @ts-ignore const encoder = this.createEncoder(encoding); encoder.channels.color.setDomainFromDataset(words); diff --git a/superset-frontend/src/components/Modal/Modal.tsx b/superset-frontend/src/components/Modal/Modal.tsx index fc9b821683..0dd9e684ce 100644 --- a/superset-frontend/src/components/Modal/Modal.tsx +++ b/superset-frontend/src/components/Modal/Modal.tsx @@ -261,6 +261,7 @@ const CustomModal = ({ if (React.isValidElement(footer)) { // If a footer component is provided inject a closeModal function // so the footer can provide a "close" button if desired + // @ts-ignore FooterComponent = React.cloneElement(footer, { closeModal: onHide }); } const modalFooter = isNil(FooterComponent)