diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8020b443c..26ec0f398 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -7,7 +7,7 @@ on: type: string description: 'The next version to release' required: true - + jobs: release: uses: datavisyn/github-workflows/.github/workflows/release-source.yml@feat-automate-releases-releasenotes diff --git a/cypress/tsconfig.json b/cypress/tsconfig.json index b68cd39de..646297488 100644 --- a/cypress/tsconfig.json +++ b/cypress/tsconfig.json @@ -3,6 +3,7 @@ "compilerOptions": { "outDir": "./dist", "sourceMap": false, + "declarationMap": false, "types": [ "cypress" ] diff --git a/package.json b/package.json index b064cebea..c24625ed9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "visyn_core", "description": "Core repository for datavisyn applications.", - "version": "12.0.0", + "version": "13.0.0", "author": { "name": "datavisyn GmbH", "email": "contact@datavisyn.io", @@ -54,8 +54,10 @@ "all": "yarn run lint:fix && yarn run test && yarn run build && yarn run dist", "build": "yarn run clean && yarn run compile && yarn run copy", "clean": "visyn_scripts clean build dist lib", - "compile:watch": "visyn_scripts compile --watch", - "compile": "visyn_scripts compile", + "compile:watch": "visyn_scripts compile --watch -p tsconfig.lenient.json", + "compile": "visyn_scripts compile -p tsconfig.lenient.json", + "compile:strict:watch": "visyn_scripts compile --watch", + "compile:strict": "visyn_scripts compile", "copy": "visyn_scripts copy", "cy:open": "cypress open", "cy:run": "cypress run --e2e", @@ -75,29 +77,29 @@ "chromatic": "yarn run chromatic" }, "dependencies": { - "@emotion/css": "^11.11.2", - "@emotion/react": "^11.11.4", - "@fortawesome/fontawesome-free": "^6.5.2", - "@fortawesome/fontawesome-svg-core": "^6.5.2", - "@fortawesome/free-regular-svg-icons": "^6.5.2", - "@fortawesome/free-solid-svg-icons": "^6.5.2", + "@emotion/css": "^11.13.0", + "@emotion/react": "^11.13.3", + "@fortawesome/fontawesome-free": "^6.6.0", + "@fortawesome/fontawesome-svg-core": "^6.6.0", + "@fortawesome/free-regular-svg-icons": "^6.6.0", + "@fortawesome/free-solid-svg-icons": "^6.6.0", "@fortawesome/react-fontawesome": "^0.2.2", - "@mantine/code-highlight": "~7.10.1", - "@mantine/core": "~7.10.1", - "@mantine/dates": "~7.10.1", - "@mantine/dropzone": "~7.10.1", - "@mantine/form": "~7.10.1", - "@mantine/hooks": "~7.10.1", - "@mantine/modals": "~7.10.1", - "@mantine/notifications": "~7.10.1", + "@mantine/code-highlight": "~7.12.2", + "@mantine/core": "~7.12.2", + "@mantine/dates": "~7.12.2", + "@mantine/dropzone": "~7.12.2", + "@mantine/form": "~7.12.2", + "@mantine/hooks": "~7.12.2", + "@mantine/modals": "~7.12.2", + "@mantine/notifications": "~7.12.2", "@mantine/styles": "~6.0.21", - "@mantine/tiptap": "~7.10.1", + "@mantine/tiptap": "~7.12.2", "@mantine6/core": "npm:@mantine/core@~6.0.21", - "@sentry/react": "^8.8.0", + "@sentry/react": "^8.27.0", "@types/d3-hexbin": "^0.2.5", "@types/d3v7": "npm:@types/d3@^7.4.3", "@types/plotly.js-dist-min": "^2.3.4", - "@types/react": "^18.3.3", + "@types/react": "^18.3.5", "@types/react-dom": "^18.3.0", "@types/react-plotly.js": "^2.6.3", "arquero": "5.4.0", @@ -106,7 +108,7 @@ "d3v7": "npm:d3@^7.9.0", "fit-curve": "^0.2.0", "html-to-image": "^1.11.11", - "i18next": "^23.11.5", + "i18next": "^23.14.0", "jstat": "^1.9.6", "lineupjs": "4.11.0", "lodash": "~4.17.21", @@ -115,14 +117,27 @@ "react-dom": "~18.3.1", "react-highlight-words": "^0.20.0", "react-plotly.js": "^2.6.0", - "react-spring": "^9.7.3", + "react-spring": "^9.7.4", "use-deep-compare-effect": "^1.8.1", - "visyn_scripts": "^9.0.0" + "visyn_scripts": "^11.1.0" }, "devDependencies": { - "@chromatic-com/storybook": "^1.5.0", - "chromatic": "^11.5.3", - "cypress": "^13.11.0" + "@chromatic-com/storybook": "^1.8.0", + "@playwright/test": "^1.45.2", + "@storybook/addon-actions": "^7.6.20", + "@storybook/addon-essentials": "^7.6.20", + "@storybook/addon-interactions": "^7.6.20", + "@storybook/addon-links": "^7.6.20", + "@storybook/addon-styling": "^1.3.7", + "@storybook/addon-styling-webpack": "^1.0.0", + "@storybook/cli": "^7.6.20", + "@storybook/react": "^7.6.20", + "@storybook/react-webpack5": "^7.6.20", + "@storybook/testing-library": "0.2.2", + "chromatic": "^11.7.1", + "cypress": "^13.14.2", + "storybook": "^7.6.20", + "storybook-addon-swc": "^1.2.0" }, "visyn": { "entries": { diff --git a/requirements.txt b/requirements.txt index 8b1ae1972..720889b6c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,45 +1,50 @@ # a2wsgi==1.6.0 # This WSIGMiddleware is not compatible with starlette_context alembic==1.13.2 cachetools==5.3.3 -fastapi==0.111.0 +fastapi==0.112.2 json-cfg==0.4.2 openpyxl==3.1.5 -opentelemetry-api==1.25.0 -opentelemetry-exporter-otlp==1.25.0 -opentelemetry-exporter-prometheus==0.46b0 -opentelemetry-instrumentation-fastapi==0.46b0 -opentelemetry-instrumentation-httpx==0.46b0 -opentelemetry-instrumentation-logging==0.46b0 -opentelemetry-instrumentation-requests==0.46b0 -opentelemetry-instrumentation-sqlalchemy==0.46b0 -opentelemetry-instrumentation-system-metrics==0.46b0 -opentelemetry-sdk==1.25.0 -psycopg==3.1.19 +opentelemetry-api==1.27.0 +opentelemetry-exporter-otlp==1.27.0 +opentelemetry-exporter-prometheus==0.48b0 +opentelemetry-instrumentation-fastapi==0.48b0 +opentelemetry-instrumentation-httpx==0.48b0 +opentelemetry-instrumentation-logging==0.48b0 +opentelemetry-instrumentation-requests==0.48b0 +opentelemetry-instrumentation-sqlalchemy==0.48b0 +opentelemetry-instrumentation-system-metrics==0.48b0 +opentelemetry-sdk==1.27.0 +psycopg==3.2.1 psycopg2==2.9.9 pydantic==1.10.17 -pyjwt[crypto]==2.8.0 -pytest-postgresql==6.0.0 +pyjwt[crypto]==2.9.0 +pytest-postgresql==6.0.1 python-dateutil==2.9.0.post0 requests==2.32.3 -sentry-sdk~=2.11.0 -SQLAlchemy>=1.4.40,<=1.4.52 +sentry-sdk~=2.13.0 +SQLAlchemy>=1.4.40,<=1.4.53 starlette-context==0.3.6 -uvicorn[standard]==0.30.1 # Extras from fastapi[all], which we can't install because it requires pydantic v2: https://github.com/tiangolo/fastapi/blob/master/pyproject.toml#L79-L103 -fastapi-cli >=0.0.4 -# # For the test client -httpx >=0.27.0 +fastapi-cli[standard]>=0.0.5 +# For the test client +httpx>=0.23.0 # For templates -jinja2 >=2.11.2 +jinja2>=2.11.2 # For forms and file uploads -python-multipart >=0.0.7 +python-multipart>=0.0.7 # For Starlette's SessionMiddleware, not commonly used with FastAPI -itsdangerous >=1.1.0 +itsdangerous>=1.1.0 # For Starlette's schema generation, would not be used with FastAPI -pyyaml >=5.3.1 +pyyaml>=5.3.1 # For UJSONResponse -ujson >=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0 +ujson>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0 # For ORJSONResponse -orjson >=3.2.1 +orjson>=3.2.1 # To validate email fields -email_validator >=2.0.0 \ No newline at end of file +email-validator>=2.0.0 +# Uvicorn with uvloop +uvicorn[standard]>=0.30.6 +# Disabled as we are still on Pydantic 1: Settings management +# pydantic-settings>=2.0.0 +# Disabled as we are still on Pydantic 1: Extra Pydantic data types +# pydantic-extra-types>=2.0.0 diff --git a/src/app/VisynApp.tsx b/src/app/VisynApp.tsx index bb34a9637..7118b5b33 100644 --- a/src/app/VisynApp.tsx +++ b/src/app/VisynApp.tsx @@ -27,15 +27,15 @@ export function VisynApp({ children, loginMenu = , }: { - header?: ReactElement>; - headerConfig?: Partial; - navbar?: ReactElement>; - navbarConfig?: AppShellProps['navbar']; - aside?: ReactElement>; - footer?: ReactElement>; - footerConfig?: AppShellProps['footer']; - appShellProps?: Partial>; - loginMenu?: JSX.Element; + header?: ReactElement> | null; + headerConfig?: Partial | null; + navbar?: ReactElement> | null; + navbarConfig?: AppShellProps['navbar'] | null; + aside?: ReactElement> | null; + footer?: ReactElement> | null; + footerConfig?: AppShellProps['footer'] | null; + appShellProps?: Partial> | null; + loginMenu?: JSX.Element | null; children?: React.ReactNode; }) { useVisynAppContext(); @@ -52,8 +52,8 @@ export function VisynApp({ }, }} {...appShellProps} - navbar={navbarConfig} - footer={footerConfig} + navbar={navbarConfig ?? undefined} + footer={footerConfig ?? undefined} header={{ height: 50, ...headerConfig }} > {navbar} diff --git a/src/app/VisynAppContext.tsx b/src/app/VisynAppContext.tsx index 326524a6c..a9810825c 100644 --- a/src/app/VisynAppContext.tsx +++ b/src/app/VisynAppContext.tsx @@ -5,8 +5,12 @@ import type { IUser } from '../security'; export const VisynAppContext = React.createContext<{ user: IUser | null; appName: JSX.Element | string; - clientConfig: IClientConfig; -}>(null); + clientConfig: IClientConfig | null; +}>({ + user: null, + appName: '', + clientConfig: null, +}); export function useVisynAppContext() { const context = React.useContext(VisynAppContext); diff --git a/src/app/header/AboutAppModal.tsx b/src/app/header/AboutAppModal.tsx index a8b28207e..dae5853aa 100644 --- a/src/app/header/AboutAppModal.tsx +++ b/src/app/header/AboutAppModal.tsx @@ -9,7 +9,7 @@ import { WebpackEnv } from '../../base'; */ export interface IAboutAppModalConfig { // Middle section of the modal - content: JSX.Element; + content?: JSX.Element; // Bottom section of the modal bottom?: JSX.Element; customerLogo?: JSX.Element; @@ -36,9 +36,9 @@ export function AboutAppModal({ content, opened, onClose, - dvLogo = null, + dvLogo = undefined, bottom, - customerLogo = null, + customerLogo = undefined, }: { opened: boolean; onClose: () => void; diff --git a/src/app/header/ConfigurationMenu.tsx b/src/app/header/ConfigurationMenu.tsx index 1e63871bb..1e14ab44c 100644 --- a/src/app/header/ConfigurationMenu.tsx +++ b/src/app/header/ConfigurationMenu.tsx @@ -5,7 +5,7 @@ import React from 'react'; import { useVisynAppContext } from '../VisynAppContext'; import { AboutAppModal, IAboutAppModalConfig } from './AboutAppModal'; -export function ConfigurationMenu({ menu, dvLogo, aboutAppModal }: { menu: JSX.Element; dvLogo: JSX.Element; aboutAppModal?: IAboutAppModalConfig }) { +export function ConfigurationMenu({ menu, dvLogo, aboutAppModal }: { menu?: JSX.Element; dvLogo: JSX.Element; aboutAppModal?: IAboutAppModalConfig }) { const { appName } = useVisynAppContext(); const [showAboutModal, setShowAboutModal] = React.useState(false); diff --git a/src/app/header/UserMenu.tsx b/src/app/header/UserMenu.tsx index 8400fdb33..b87340e03 100644 --- a/src/app/header/UserMenu.tsx +++ b/src/app/header/UserMenu.tsx @@ -3,7 +3,7 @@ import React from 'react'; import { css } from '@emotion/css'; import { LoginUtils } from '../../security'; -export function UserMenu({ menu, user, color }: { menu: JSX.Element; user: string; color: string }) { +export function UserMenu({ menu, user, color }: { menu?: JSX.Element; user: string; color?: string }) { return ( diff --git a/src/app/login/UserStoreUIMap.tsx b/src/app/login/UserStoreUIMap.tsx index 71382a88f..7c5150aba 100644 --- a/src/app/login/UserStoreUIMap.tsx +++ b/src/app/login/UserStoreUIMap.tsx @@ -86,7 +86,7 @@ export function AutoLoginForm({ setError, store }: IUserStoreRenderProps) { // Only allow a single concurrent login access setLoginInProgress(true); - let popup: Window = null; + let popup: Window | null = null; try { // Add timestamp to avoid no proper reloading due to cache hits. const authUrl = `${window.location.origin}?timestamp=${new Date().getTime()}`; diff --git a/src/app/login/VisynLoginMenu.tsx b/src/app/login/VisynLoginMenu.tsx index c8e3dd0f2..f14f6c6aa 100644 --- a/src/app/login/VisynLoginMenu.tsx +++ b/src/app/login/VisynLoginMenu.tsx @@ -18,7 +18,7 @@ export function VisynLoginMenu({ watch = false }: { watch?: boolean }) { if (watch) { const watcher = SessionWatcher.startWatching(LoginUtils.logout); return () => { - watcher.stop(); + watcher?.stop(); }; } return undefined; @@ -86,13 +86,13 @@ export function VisynLoginMenu({ watch = false }: { watch?: boolean }) { ) : null} {userStoreStatus === 'pending' ? : null} - {!userStores || isOffline ? null : userStoresWithUI.length === 0 ? ( + {!userStores || !userStoresWithUI || isOffline ? null : userStoresWithUI.length === 0 ? ( // Use the dummy store as default if no store is found ) : ( // Render all stores next to eachother userStoresWithUI.map((store, i, all) => { - const ToRender = UserStoreUIMap.get(store.ui); + const ToRender = UserStoreUIMap.get(store.ui!); return ( diff --git a/src/base/ajax.ts b/src/base/ajax.ts index 1617a356d..c3410906b 100644 --- a/src/base/ajax.ts +++ b/src/base/ajax.ts @@ -140,6 +140,7 @@ export class Ajax { } } if (mimetype) { + // @ts-ignore mergedOptions.headers['Content-Type'] = mimetype; } } diff --git a/src/base/event.ts b/src/base/event.ts index bf3b9c7d0..d7e02c739 100644 --- a/src/base/event.ts +++ b/src/base/event.ts @@ -94,12 +94,14 @@ class SingleEventHandler { } const largs = [event].concat(event.args); if (this.listeners.length === 1) { + // @ts-ignore this.listeners[0].apply(event, largs); } else { // work on a copy in case the number changes const l = this.listeners.slice(); const ll = l.length; for (let i = 0; i < ll && !event.isImmediatePropagationStopped(); ++i) { + // @ts-ignore l[i].apply(event, largs); } } @@ -143,7 +145,8 @@ export class EventHandler implements IEventHandler { if (!this.handlers.has(event)) { this.handlers.set(event, new SingleEventHandler(event)); } - this.handlers.get(event).push(handler); + // @ts-ignore + this.handlers.get(event)?.push(handler); }); } else { Object.keys(events).forEach((event) => { @@ -163,9 +166,10 @@ export class EventHandler implements IEventHandler { if (typeof events === 'string') { events.split(EventHandler.MULTI_EVENT_SEPARATOR).forEach((event) => { if (this.handlers.has(event)) { - const h: SingleEventHandler = this.handlers.get(event); - h.remove(handler); - if (h.length === 0) { + const h: SingleEventHandler | undefined = this.handlers.get(event); + // @ts-ignore + h?.remove(handler); + if (h?.length === 0) { this.handlers.delete(event); } } @@ -204,8 +208,8 @@ export class EventHandler implements IEventHandler { private fireEvent = (event: Event) => { if (this.handlers.has(event.type)) { - const h: SingleEventHandler = this.handlers.get(event.type); - return h.fire(event); + const h: SingleEventHandler | undefined = this.handlers.get(event.type); + return h?.fire(event); } return false; }; diff --git a/src/demo/MainApp.tsx b/src/demo/MainApp.tsx index 17cfb4db9..35e2793ea 100644 --- a/src/demo/MainApp.tsx +++ b/src/demo/MainApp.tsx @@ -39,6 +39,7 @@ export function MainApp() { name: 'Cellularity', }, numColorScaleType: ENumericalColorScaleType.SEQUENTIAL, + facets: null, shape: null, dragMode: EScatterSelectSettings.RECTANGLE, alphaSliderVal: 1, @@ -98,7 +99,7 @@ export function MainApp() { throw new Error('Unknown score type'); })(); - lineupRef.current.createScoreColumn(data); + lineupRef.current?.createScoreColumn(data); setLoading(false); }} rightSection={loading ? : null} @@ -131,7 +132,7 @@ export function MainApp() { selected={visSelection} selectionCallback={(s) => { if (s) { - setSelection(s.map((i) => breastCancerData[+i])); + setSelection(s.map((i) => breastCancerData[+i]!)); } }} filterCallback={(f) => { diff --git a/src/demo/index.initialize.tsx b/src/demo/index.initialize.tsx index 7e206eb80..177ca9aa2 100644 --- a/src/demo/index.initialize.tsx +++ b/src/demo/index.initialize.tsx @@ -4,7 +4,7 @@ import { VisynAppProvider } from '../app/VisynAppProvider'; import { MainApp } from './MainApp'; // create a new instance of the app -createRoot(document.getElementById('main')).render( +createRoot(document.getElementById('main')!).render( diff --git a/src/hooks/useSetRef.ts b/src/hooks/useSetRef.ts index a2b059586..c41d1303a 100644 --- a/src/hooks/useSetRef.ts +++ b/src/hooks/useSetRef.ts @@ -8,7 +8,7 @@ import { useSyncedRef } from './useSyncedRef'; * https://medium.com/@teh_builder/ref-objects-inside-useeffect-hooks-eb7c15198780 */ export function useSetRef(props?: { cleanup: (lastElement: T) => void; register: (element: T) => void }) { - const ref = React.useRef(); + const ref = React.useRef(); const callbackRef = useSyncedRef(props); diff --git a/src/hooks/useVisynUser.ts b/src/hooks/useVisynUser.ts index 352aac344..4a24d0db8 100644 --- a/src/hooks/useVisynUser.ts +++ b/src/hooks/useVisynUser.ts @@ -7,7 +7,7 @@ export function useVisynUser(): IUser | null { const [user, setUser] = React.useState(userSession.currentUser()); React.useEffect(() => { - const loginListener = (_, u) => { + const loginListener = (_: any, u: IUser | null) => { setUser(u); }; diff --git a/src/i18n/I18nextManager.ts b/src/i18n/I18nextManager.ts index 2b9b69fc3..26346b04e 100644 --- a/src/i18n/I18nextManager.ts +++ b/src/i18n/I18nextManager.ts @@ -37,6 +37,7 @@ export class I18nextManager { .use({ type: 'postProcessor', name: 'showKeyDebugger', + // @ts-ignore process: (value, key, option, translator) => (translator.options.debug ? key : value), }) .init({ diff --git a/src/icons/EntityIcons.tsx b/src/icons/EntityIcons.tsx index b820e7159..409154660 100644 --- a/src/icons/EntityIcons.tsx +++ b/src/icons/EntityIcons.tsx @@ -7,7 +7,7 @@ export const dvGene: IconDefinition = { 512, 512, [], - null, + '', 'M228.204 80.9721C228.213 80.9585 228.222 80.9445 228.229 80.9301C246.828 45.4255 282.306 34.3055 301.536 31.4207C312.186 29.8229 322.116 37.1615 323.713 47.8119C325.311 58.4622 317.972 68.3913 307.322 69.9891C293.296 72.0932 272.569 79.6979 262.45 99.6603C262.086 100.379 261.678 101.073 261.228 101.741C252.441 114.779 249.762 130.761 256.009 163.692C256.01 163.699 256.011 163.705 256.013 163.712L275.316 247.158L275.316 247.159L275.338 247.255L275.338 247.256L295.521 336.542C295.569 336.755 295.614 336.969 295.655 337.183C302.871 374.964 300.048 405.037 282.969 430.38C258.09 467.3 221.197 476.095 198.581 480.444C188.006 482.477 177.783 475.553 175.75 464.977C173.716 454.401 180.641 444.179 191.216 442.145C212.085 438.132 235.032 431.728 250.628 408.586C259.744 395.057 263.488 376.906 257.409 344.823C257.408 344.818 257.407 344.812 257.405 344.806L237.32 255.951L237.32 255.949L217.928 172.119L217.441 172.232L217.928 172.119C217.871 171.874 217.819 171.629 217.772 171.382C210.821 134.988 211.461 106.537 228.204 80.9721ZM432.267 232.301C432.275 232.293 432.282 232.285 432.289 232.277C441.328 221.871 446.911 208.226 450.041 194.802C453.171 181.376 453.858 168.131 453.075 158.487C452.205 147.752 460.201 138.345 470.935 137.474C481.669 136.603 491.077 144.6 491.948 155.334C493.916 179.607 489.579 226.317 461.206 258.453C460.998 258.688 460.785 258.919 460.566 259.144C428.043 292.577 381.291 297.775 318.702 298.334C307.933 298.43 299.125 289.778 299.029 279.008C298.933 268.239 307.585 259.431 318.354 259.335C381.941 258.768 412.369 252.471 432.267 232.301ZM84.3441 275.776C84.3255 275.795 84.3083 275.815 84.2928 275.836C67.0992 299.383 59.4295 320.525 58.6115 334.669C57.9897 345.421 48.7697 353.633 38.0181 353.011C27.2666 352.389 19.0547 343.169 19.6766 332.418C21.0938 307.912 33.3035 279.145 53.7779 251.502C54.2969 250.801 54.8623 250.136 55.4703 249.511C87.8997 216.173 131.814 210.793 194.725 210.232C205.494 210.136 214.302 218.788 214.398 229.557C214.494 240.326 205.842 249.134 195.073 249.23C132.411 249.789 104.273 255.967 84.3441 275.776ZM286.443 100.704C293.386 92.4707 305.688 91.4244 313.921 98.3668L422.956 190.308C431.189 197.25 432.235 209.552 425.293 217.786C418.35 226.019 406.048 227.065 397.815 220.123L288.78 128.182C280.547 121.239 279.501 108.937 286.443 100.704ZM280.095 173.91C287.037 165.677 299.34 164.631 307.573 171.573L354.309 210.983C362.543 217.925 363.589 230.227 356.647 238.461C349.704 246.694 337.402 247.74 329.169 240.798L282.432 201.388C274.199 194.446 273.152 182.143 280.095 173.91ZM156.781 270.105C163.723 261.872 176.025 260.825 184.259 267.768L230.995 307.177C239.228 314.12 240.275 326.422 233.332 334.655C226.39 342.889 214.088 343.935 205.854 336.993L159.118 297.583C150.885 290.641 149.838 278.338 156.781 270.105ZM88.1342 290.78C95.0767 282.547 107.379 281.5 115.612 288.443L224.647 380.384C232.88 387.326 233.926 399.628 226.984 407.861C220.041 416.095 207.739 417.141 199.506 410.199L90.4714 318.258C82.2381 311.315 81.1918 299.013 88.1342 290.78Z', ], }; @@ -19,7 +19,7 @@ export const dvDrug: IconDefinition = { 512, 512, [], - null, + '', ` M303.388 440.368C369.935 478.789 454.954 456.008 493.375 389.461C505.935 367.706 511.917 343.958 512 320.519C512.044 308.098 499.777 300.313 487.903 303.495L265.143 363.183C253.226 366.44 246.613 379.284 252.787 389.975C264.578 410.233 281.632 427.807 303.388 440.368Z M252.481 250.381C239.92 272.137 233.938 295.884 233.856 319.324C233.811 331.744 246.078 339.529 257.953 336.348L480.712 276.659C492.63 273.402 499.242 260.558 493.069 249.868C481.278 229.61 464.223 212.035 442.468 199.474C375.921 161.054 290.902 183.834 252.481 250.381Z @@ -35,7 +35,7 @@ export const dvCellLine: IconDefinition = { 512, 512, [], - null, + '', ` M469.975 290.738V289.646L469.148 290.36C457.706 300.24 444.632 308.85 430.816 316.134C385.003 340.288 323.174 354.595 256 354.595C188.826 354.595 126.997 340.288 81.1842 316.134C67.3678 308.85 54.2937 300.24 42.8517 290.36L42.0249 289.646V290.738V304.452C42.0249 324.297 58.0639 349.388 98.8468 370.891C137.992 391.529 193.532 404.927 256 404.927C318.468 404.927 374.008 391.529 413.153 370.891C453.936 349.388 469.975 324.297 469.975 304.452V290.738ZM511.5 207.548V304.452C511.5 352.956 474.996 389.746 430.816 413.039C385.003 437.193 323.174 451.5 256 451.5C188.826 451.5 126.997 437.193 81.1842 413.039C37.0036 389.746 0.5 352.956 0.5 304.452V207.548C0.5 159.044 37.0036 122.254 81.1842 98.9609C126.997 74.807 188.826 60.5 256 60.5C323.174 60.5 385.003 74.807 430.816 98.9609C474.996 122.254 511.5 159.044 511.5 207.548ZM98.8468 141.109C58.0639 162.612 42.0249 187.703 42.0249 207.548C42.0249 227.392 58.0639 252.484 98.8468 273.986C137.992 294.624 193.532 308.022 256 308.022C318.468 308.022 374.008 294.624 413.153 273.986C453.936 252.484 469.975 227.392 469.975 207.548C469.975 187.703 453.936 162.612 413.153 141.109C374.008 120.471 318.468 107.073 256 107.073C193.532 107.073 137.992 120.471 98.8468 141.109ZM256 176.529C191.033 176.529 132.457 196.762 91.7205 220.164C83.6487 224.801 73.7058 221.268 69.5222 212.154C65.3273 203.015 68.5683 191.835 76.6782 187.176C121.514 161.419 185.21 139.471 256 139.471C326.79 139.471 390.486 161.419 435.322 187.176C443.432 191.835 446.673 203.015 442.478 212.154C438.294 221.268 428.351 224.801 420.28 220.164C379.543 196.762 320.967 176.529 256 176.529ZM186.61 234.117C186.61 237.305 185.564 241.255 183.783 245.408C182.006 249.554 179.512 253.868 176.651 257.777C173.79 261.687 170.573 265.175 167.358 267.681C164.13 270.197 160.964 271.675 158.193 271.675C152.586 271.675 147.402 267.299 143.583 261.139C139.778 255.001 137.43 247.241 137.43 240.777C137.43 234.318 139.774 227.314 143.567 221.931C147.365 216.54 152.548 212.862 158.193 212.862C163.96 212.862 171.094 214.984 176.78 218.731C182.47 222.48 186.61 227.785 186.61 234.117ZM262.304 272.175C262.304 278.801 258.341 284.857 252.86 289.278C247.38 293.699 240.471 296.413 234.738 296.413C229.01 296.413 222.531 293.704 217.48 289.291C212.432 284.88 208.872 278.822 208.872 272.175C208.872 265.501 212.456 257.761 217.535 251.673C222.626 245.57 229.09 241.277 234.738 241.277C237.553 241.277 240.687 242.343 243.823 244.192C246.954 246.039 250.057 248.648 252.803 251.688C258.311 257.783 262.304 265.518 262.304 272.175ZM363.513 234.117C363.513 240.472 359.559 246.288 354.077 250.541C348.598 254.792 341.686 257.403 335.947 257.403C330.198 257.403 322.426 254.785 316.088 250.521C309.735 246.248 304.978 240.432 304.978 234.117C304.978 231.04 306.78 228.165 309.799 225.553C312.812 222.947 316.972 220.663 321.529 218.775C330.647 214.997 341.212 212.862 347.003 212.862C352.737 212.862 356.83 214.957 359.509 218.609C362.206 222.286 363.513 227.603 363.513 234.117ZM469.975 290.738V289.646L469.148 290.36C457.706 300.24 444.632 308.85 430.816 316.134C385.003 340.288 323.174 354.595 256 354.595C188.826 354.595 126.997 340.288 81.1842 316.134C67.3678 308.85 54.2937 300.24 42.8517 290.36L42.0249 289.646V290.738V304.452C42.0249 324.297 58.0639 349.388 98.8468 370.891C137.992 391.529 193.532 404.927 256 404.927C318.468 404.927 374.008 391.529 413.153 370.891C453.936 349.388 469.975 324.297 469.975 304.452V290.738ZM511.5 207.548V304.452C511.5 352.956 474.996 389.746 430.816 413.039C385.003 437.193 323.174 451.5 256 451.5C188.826 451.5 126.997 437.193 81.1842 413.039C37.0036 389.746 0.5 352.956 0.5 304.452V207.548C0.5 159.044 37.0036 122.254 81.1842 98.9609C126.997 74.807 188.826 60.5 256 60.5C323.174 60.5 385.003 74.807 430.816 98.9609C474.996 122.254 511.5 159.044 511.5 207.548ZM98.8468 141.109C58.0639 162.612 42.0249 187.703 42.0249 207.548C42.0249 227.392 58.0639 252.484 98.8468 273.986C137.992 294.624 193.532 308.022 256 308.022C318.468 308.022 374.008 294.624 413.153 273.986C453.936 252.484 469.975 227.392 469.975 207.548C469.975 187.703 453.936 162.612 413.153 141.109C374.008 120.471 318.468 107.073 256 107.073C193.532 107.073 137.992 120.471 98.8468 141.109ZM256 176.529C191.033 176.529 132.457 196.762 91.7205 220.164C83.6487 224.801 73.7058 221.268 69.5222 212.154C65.3273 203.015 68.5683 191.835 76.6782 187.176C121.514 161.419 185.21 139.471 256 139.471C326.79 139.471 390.486 161.419 435.322 187.176C443.432 191.835 446.673 203.015 442.478 212.154C438.294 221.268 428.351 224.801 420.28 220.164C379.543 196.762 320.967 176.529 256 176.529ZM186.61 234.117C186.61 237.305 185.564 241.255 183.783 245.408C182.006 249.554 179.512 253.868 176.651 257.777C173.79 261.687 170.573 265.175 167.358 267.681C164.13 270.197 160.964 271.675 158.193 271.675C152.586 271.675 147.402 267.299 143.583 261.139C139.778 255.001 137.43 247.241 137.43 240.777C137.43 234.318 139.774 227.314 143.567 221.931C147.365 216.54 152.548 212.862 158.193 212.862C163.96 212.862 171.094 214.984 176.78 218.731C182.47 222.48 186.61 227.785 186.61 234.117ZM262.304 272.175C262.304 278.801 258.341 284.857 252.86 289.278C247.38 293.699 240.471 296.413 234.738 296.413C229.01 296.413 222.531 293.704 217.48 289.291C212.432 284.88 208.872 278.822 208.872 272.175C208.872 265.501 212.456 257.761 217.535 251.673C222.626 245.57 229.09 241.277 234.738 241.277C237.553 241.277 240.687 242.343 243.823 244.192C246.954 246.039 250.057 248.648 252.803 251.688C258.311 257.783 262.304 265.518 262.304 272.175ZM363.513 234.117C363.513 240.472 359.559 246.288 354.077 250.541C348.598 254.792 341.686 257.403 335.947 257.403C330.198 257.403 322.426 254.785 316.088 250.521C309.735 246.248 304.978 240.432 304.978 234.117C304.978 231.04 306.78 228.165 309.799 225.553C312.812 222.947 316.972 220.663 321.529 218.775C330.647 214.997 341.212 212.862 347.003 212.862C352.737 212.862 356.83 214.957 359.509 218.609C362.206 222.286 363.513 227.603 363.513 234.117Z`, ], @@ -48,7 +48,7 @@ export const dvTissue: IconDefinition = { 512, 512, [], - null, + '', ` M236.3 61.4L226.9 75.5C205.6 107.5 167.5 124 129.6 117.6L70.0002 107.7C33.3002 101.6 -0.099776 129.9 0.000223981 167.1C0.000223981 183 6.40022 198.3 17.6002 209.6L46.8002 238.8C57.8002 249.8 64.0002 264.7 64.0002 280.3C64.0002 296.1 57.6002 311.2 46.3002 322.3L33.2002 335.1C22.1002 345.9 15.9002 360.7 15.9002 376.2C15.9002 413 50.0002 440.4 86.0002 432.4L148.3 418.6C156 416.9 164 416 171.9 416H181.9C209.1 416 235.6 425.3 256.9 442.3L287.7 467C298.2 475.4 311.3 480 324.7 480C357.4 480 384 453.5 384 420.7V395.5C384 360.6 405.4 329.3 437.9 316.7L474.8 302.4C497.2 293.7 512 272.1 512 248.1C512 220 491.9 195.8 464.2 190.8L436.2 185.7C399.7 179 370.8 151.2 362.6 115L355.5 83.5C348.8 53.4 322 32 291.2 32C269.2 32 248.6 43 236.3 61.4ZM159.9 192C168.387 192 176.526 195.371 182.528 201.373C188.529 207.374 191.9 215.513 191.9 224C191.9 232.487 188.529 240.626 182.528 246.627C176.526 252.628 168.387 256 159.9 256C151.413 256 143.274 252.628 137.273 246.627C131.272 240.626 127.9 232.487 127.9 224C127.9 215.513 131.272 207.374 137.273 201.373C143.274 195.371 151.413 192 159.9 192ZM287.9 208C287.9 203.756 289.586 199.687 292.586 196.686C295.587 193.686 299.657 192 303.9 192C308.144 192 312.213 193.686 315.214 196.686C318.214 199.687 319.9 203.756 319.9 208C319.9 212.243 318.214 216.313 315.214 219.314C312.213 222.314 308.144 224 303.9 224C299.657 224 295.587 222.314 292.586 219.314C289.586 216.313 287.9 212.243 287.9 208ZM287.9 288C296.387 288 304.526 291.371 310.528 297.372C316.529 303.374 319.9 311.513 319.9 320C319.9 328.487 316.529 336.626 310.528 342.627C304.526 348.628 296.387 352 287.9 352C279.413 352 271.274 348.628 265.273 342.627C259.272 336.626 255.9 328.487 255.9 320C255.9 311.513 259.272 303.374 265.273 297.372C271.274 291.371 279.413 288 287.9 288Z `, @@ -62,7 +62,7 @@ export const dvDisease: IconDefinition = { 512, 512, [], - null, + '', ` M107.055 28.9758C112.485 45.2667 103.661 62.8183 87.4667 68.2486L62.0606 76.6849V193.921C62.0606 245.315 103.758 287.012 155.152 287.012C206.545 287.012 248.242 245.315 248.242 193.921V76.6849L222.933 68.2486C206.642 62.8183 197.915 45.2667 203.345 28.9758C208.776 12.6849 226.327 3.95766 242.618 9.38796L267.927 17.8243C293.236 26.2607 310.303 49.9213 310.303 76.6849V193.921C310.303 268.782 257.358 331.23 186.861 345.873C192.97 400.079 238.933 442.164 294.788 442.164C354.812 442.164 403.394 393.582 403.394 333.558V265C375.952 253.073 356.848 225.727 356.848 193.921C356.848 151.061 391.564 116.346 434.424 116.346C477.285 116.346 512 151.061 512 193.921C512 225.727 492.897 253.073 465.455 265V333.558C465.455 427.812 389.042 504.224 294.788 504.224C204.703 504.224 131.006 434.503 124.606 346.067C53.5273 331.812 0 269.17 0 193.921V76.6849C0 50.0183 17.0667 26.2607 42.4727 17.8243L67.7818 9.38796C84.0727 3.95766 101.624 12.7819 107.055 28.9758ZM434.424 224.952C442.654 224.952 450.547 221.682 456.366 215.863C462.185 210.044 465.455 202.151 465.455 193.921C465.455 185.692 462.185 177.799 456.366 171.98C450.547 166.16 442.654 162.891 434.424 162.891C426.195 162.891 418.302 166.16 412.483 171.98C406.663 177.799 403.394 185.692 403.394 193.921C403.394 202.151 406.663 210.044 412.483 215.863C418.302 221.682 426.195 224.952 434.424 224.952Z `, diff --git a/src/icons/Icons.tsx b/src/icons/Icons.tsx index 345c6ede5..118a1b415 100644 --- a/src/icons/Icons.tsx +++ b/src/icons/Icons.tsx @@ -11,7 +11,7 @@ export const dvAddVisualization: IconDefinition = { 512, 512, [], - null, + '', 'M335.181 113.681H335.681V113.181V54.3191C335.681 34.5367 351.718 18.5 371.5 18.5C391.282 18.5 407.319 34.5367 407.319 54.3191V113.181V113.681H407.819H466.681C486.463 113.681 502.5 129.718 502.5 149.5C502.5 169.282 486.463 185.319 466.681 185.319H407.819H407.319V185.819V244.681C407.319 264.463 391.282 280.5 371.5 280.5C351.718 280.5 335.681 264.463 335.681 244.681V185.819V185.319H335.181H276.319C256.537 185.319 240.5 169.282 240.5 149.5C240.5 129.718 256.537 113.681 276.319 113.681H335.181ZM10.5 39.125C10.5 24.4031 22.0038 12.5 36.1566 12.5C50.3093 12.5 61.8132 24.4031 61.8132 39.125V436.435L61.8128 436.441C61.8122 436.455 61.8113 436.474 61.8103 436.499C61.8083 436.549 61.806 436.621 61.8043 436.714C61.8011 436.899 61.8007 437.165 61.8117 437.494C61.8337 438.152 61.9013 439.068 62.0845 440.1C62.4487 442.152 63.2802 444.727 65.179 446.634C67.0801 448.543 69.6474 449.375 71.694 449.736C72.7231 449.918 73.6357 449.984 74.2919 450.004C74.6204 450.015 74.8855 450.013 75.0699 450.01C75.1621 450.008 75.2342 450.005 75.284 450.003L75.3113 450.002L75.3419 450L75.3473 450H472.971C487.637 450 499.5 461.542 499.5 475.75C499.5 489.958 487.637 501.5 472.971 501.5H61.446H61.4413L61.432 501.5L61.3748 501.498C61.3238 501.497 61.2476 501.495 61.1473 501.492C60.9466 501.486 60.6498 501.475 60.2672 501.457C59.502 501.421 58.3941 501.356 57.027 501.242C54.292 501.013 50.523 500.585 46.387 499.791C38.087 498.197 28.4193 495.146 22.6028 489.355C16.6702 483.448 13.6281 473.531 12.0805 464.999C11.3093 460.747 10.914 456.869 10.7116 454.053C10.6104 452.646 10.5575 451.505 10.5299 450.716C10.5161 450.322 10.5086 450.016 10.5046 449.81C10.5026 449.706 10.5014 449.628 10.5008 449.575L10.5001 449.516L10.5 449.502L10.5 449.5V449.499V39.125ZM130.072 75.5L217.182 75.5C209.257 91.3114 203.759 108.543 201.176 126.71L130.072 126.71C115.379 126.71 103.5 115.229 103.5 101.105C103.5 86.9808 115.379 75.5 130.072 75.5ZM130.072 171.445H200.797C203.058 189.569 208.214 206.797 215.789 222.655L130.072 222.655C115.379 222.655 103.5 211.174 103.5 197.05C103.5 182.926 115.379 171.445 130.072 171.445ZM130.072 267.39H246.973C261.912 282.763 279.772 295.299 299.662 304.109C295.37 312.678 286.266 318.6 275.717 318.6H130.072C115.379 318.6 103.5 307.119 103.5 292.995C103.5 278.87 115.379 267.39 130.072 267.39ZM439.691 388.94C439.691 403.064 427.812 414.545 413.119 414.545H130.072C115.379 414.545 103.5 403.064 103.5 388.94C103.5 374.815 115.379 363.335 130.072 363.335H413.119C427.812 363.335 439.691 374.815 439.691 388.94Z', ], }; @@ -23,7 +23,7 @@ export const dvDownloadVisualization: IconDefinition = { 512, 512, [], - null, + '', 'M9.49999 449.5L9.50001 449.503L10 449.5C9.50001 449.503 9.50001 449.503 9.50001 449.503L9.50002 449.504L9.50005 449.509L9.50018 449.525L9.50084 449.587C9.50152 449.642 9.5027 449.723 9.50476 449.829C9.50888 450.041 9.5165 450.352 9.53049 450.751C9.55848 451.55 9.612 452.704 9.71416 454.125C9.91841 456.966 10.3173 460.882 11.0965 465.177C12.6495 473.739 15.7324 483.926 21.8972 490.063C27.9395 496.079 37.8675 499.173 46.1984 500.773C50.3778 501.576 54.1832 502.007 56.9436 502.238C58.3242 502.354 59.4442 502.419 60.2201 502.456C60.6081 502.474 60.9101 502.485 61.1156 502.491C61.2184 502.495 61.297 502.497 61.3503 502.498L61.4109 502.499L61.4266 502.5L61.4308 502.5L61.4319 502.5C61.4322 502.5 61.4324 502.5 61.4413 502L61.4324 502.5H61.4413H472.971C488.161 502.5 500.5 490.537 500.5 475.75C500.5 460.963 488.161 449 472.971 449H75.3333H75.3176L75.3023 449.001L75.2999 449.001L75.289 449.002L75.2415 449.004C75.1986 449.006 75.1339 449.008 75.0494 449.01C74.8804 449.013 74.6325 449.014 74.323 449.005C73.7032 448.986 72.8397 448.923 71.868 448.752C69.913 448.406 67.5803 447.628 65.8876 445.928C64.196 444.229 63.4174 441.888 63.0691 439.925C62.896 438.95 62.8319 438.083 62.8111 437.461C62.8007 437.15 62.8012 436.901 62.8042 436.732C62.8057 436.647 62.8078 436.582 62.8095 436.539L62.8116 436.491L62.8122 436.48L62.8123 436.478L62.8123 436.478L62.8132 436.463V436.448V39.125C62.8132 23.8854 50.8956 11.5 36.1566 11.5C21.4176 11.5 9.5 23.8854 9.5 39.125L9.49999 449.5ZM218.44 75.2262L218.808 74.5H217.994L130.072 74.5C114.861 74.5 102.5 86.3946 102.5 101.105C102.5 115.816 114.861 127.71 130.072 127.71L201.611 127.71H202.046L202.106 127.279C204.686 108.787 210.304 91.2636 218.44 75.2262ZM201.735 170.884L201.682 170.445H201.239H130.072C114.861 170.445 102.5 182.339 102.5 197.05C102.5 211.76 114.861 223.655 130.072 223.655L216.584 223.655H217.382L217.035 222.937C209.256 206.851 203.987 189.332 201.735 170.884ZM247.543 266.542L247.396 266.39H247.184H130.072C114.861 266.39 102.5 278.284 102.5 292.995C102.5 307.705 114.861 319.6 130.072 319.6H275.717C286.839 319.6 296.433 313.243 300.79 304.076L301.012 303.61L300.54 303.403C280.514 294.608 262.543 282.016 247.543 266.542ZM413.119 415.545C428.329 415.545 440.691 403.65 440.691 388.94C440.691 374.229 428.329 362.335 413.119 362.335H130.072C114.861 362.335 102.5 374.229 102.5 388.94C102.5 403.65 114.861 415.545 130.072 415.545H413.119ZM427.181 138.396L407.5 158.077V53C407.5 33.3939 391.606 17.5 372 17.5C352.394 17.5 336.5 33.3939 336.5 53V161.454L313.319 138.273C299.507 124.461 277.113 124.461 263.302 138.273C249.49 152.085 249.49 174.479 263.302 188.291L340.56 265.549C341.82 267.42 343.277 269.197 344.931 270.851C352.391 278.311 362.344 281.756 372.108 281.188C380.742 280.888 389.288 277.442 395.879 270.851C397.353 269.378 398.669 267.807 399.828 266.159L477.386 188.601C491.249 174.737 491.249 152.26 477.386 138.396C463.522 124.533 441.045 124.533 427.181 138.396Z', ], }; @@ -35,7 +35,7 @@ export const dvViolin: IconDefinition = { 512, 512, [], - null, + '', ` M61.6512 502V501H474.861C489.325 501 501 489.62 501 475.643C501 461.666 489.325 450.286 474.861 450.286H75.6274C75.613 450.286 75.5944 450.287 75.5717 450.288C75.5182 450.291 75.4421 450.293 75.3456 450.295C75.1528 450.299 74.878 450.3 74.5389 450.29C73.8619 450.269 72.921 450.201 71.8591 450.013C69.7586 449.642 67.0641 448.78 65.0514 446.759C63.0416 444.741 62.1804 442.04 61.8068 439.934C61.6179 438.87 61.5481 437.926 61.5255 437.247C61.5141 436.907 61.5145 436.632 61.5179 436.439C61.5196 436.342 61.522 436.266 61.5242 436.212C61.5251 436.189 61.526 436.169 61.5267 436.155V37.2357C61.5267 22.7116 50.1819 11 36.2633 11C22.3447 11 11 22.7116 11 37.2357V449.283L11 449.284L11.0001 449.297L11.0007 449.355C11.0014 449.406 11.0025 449.484 11.0045 449.587C11.0085 449.792 11.0159 450.096 11.0297 450.49C11.0572 451.276 11.1101 452.415 11.2112 453.822C11.4135 456.636 11.8086 460.512 12.5789 464.759C14.1302 473.311 17.1644 483.135 23.0055 488.95C28.7333 494.653 38.3109 497.695 46.6294 499.293C50.7608 500.086 54.5269 500.514 57.2604 500.742C58.6265 500.857 59.7329 500.921 60.4958 500.957C60.8773 500.975 61.1727 500.986 61.3718 500.992C61.4713 500.995 61.5467 500.997 61.5967 500.999L61.6524 501L61.6656 501L61.6685 501H61.6691C61.6691 501 61.669 501 61.6512 502ZM61.6512 502H474.861C489.85 502 502 490.199 502 475.643C502 461.086 489.85 449.286 474.861 449.286H75.6L61.6512 502Z M389 24L385.539 30.3361L381.565 38.3509C377.703 46.7222 363.025 67.0526 335.214 81.4035C318.476 90.9708 285 114.411 285 131.632C285 140.003 288.863 159.257 304.313 169.303C321.051 181.86 354.527 212.355 354.527 233.882V262.583C353.883 267.367 351.823 279.446 348.733 289.491C346.158 299.656 341.008 321.781 341.008 328.956C341.652 340.317 345.257 365.551 354.527 375.596C363.54 385.762 381.565 409.321 381.565 422.237L384.481 427.401L389 433L393.523 427.401L396.439 422.237C396.439 409.321 414.464 385.762 423.476 375.596C432.746 365.551 436.351 340.317 436.995 328.956C436.995 321.781 431.845 299.656 429.27 289.491C426.18 279.446 424.12 267.367 423.476 262.583V233.882C423.476 212.355 456.951 181.86 473.688 169.303C489.138 159.257 493 140.003 493 131.632C493 114.411 459.526 90.9708 442.788 81.4035C414.979 67.0526 400.302 46.7222 396.439 38.3509L392.465 30.3361L389 24Z @@ -51,7 +51,7 @@ export const dvBoxplot: IconDefinition = { 512, 512, [], - null, + '', ` M75.5717 450.288C75.5944 450.287 75.613 450.286 75.6274 450.286H474.861C489.325 450.286 501 461.666 501 475.643C501 489.62 489.325 501 474.861 501H61.6512V502C61.669 501 61.6691 501 61.6691 501H61.6685L61.6656 501L61.6524 501L61.5967 500.999C61.5467 500.997 61.4713 500.995 61.3718 500.992C61.1727 500.986 60.8773 500.975 60.4958 500.957C59.7329 500.921 58.6265 500.857 57.2604 500.742C54.5269 500.514 50.7608 500.086 46.6294 499.293C38.3109 497.695 28.7333 494.653 23.0055 488.95C17.1644 483.135 14.1302 473.311 12.5789 464.759C11.8086 460.512 11.4135 456.636 11.2112 453.822C11.1101 452.415 11.0572 451.276 11.0297 450.49C11.0159 450.096 11.0085 449.792 11.0045 449.587C11.0025 449.484 11.0014 449.406 11.0007 449.355L11.0001 449.297L11 449.284L11 449.283V37.2357C11 22.7116 22.3447 11 36.2633 11C50.1819 11 61.5267 22.7116 61.5267 37.2357V436.155C61.526 436.169 61.5251 436.189 61.5242 436.212C61.5221 436.266 61.5196 436.342 61.5179 436.439C61.5145 436.632 61.5141 436.907 61.5255 437.247C61.5481 437.926 61.6179 438.87 61.8068 439.934C62.1804 442.04 63.0416 444.741 65.0514 446.759C67.0641 448.78 69.7586 449.642 71.8591 450.013C72.921 450.201 73.8619 450.269 74.5389 450.29C74.878 450.3 75.1528 450.299 75.3456 450.295C75.4421 450.293 75.5182 450.291 75.5717 450.288Z M275 336.162V118.4C275 113.443 270.971 109.424 266 109.424H208.4V75.3143L231.8 75.3143C236.771 75.3143 240.8 71.2955 240.8 66.3381V51.9762C240.8 47.0188 236.771 43 231.8 43L150.8 43C145.829 43 141.8 47.0188 141.8 51.9762V66.3381C141.8 71.2955 145.829 75.3143 150.8 75.3143H176V109.424H113C108.029 109.424 104 113.443 104 118.4V336.162C104 341.12 108.029 345.139 113 345.139H176V387.686H152.6C147.629 387.686 143.6 391.704 143.6 396.662V411.024C143.6 415.981 147.629 420 152.6 420H233.6C238.571 420 242.6 415.981 242.6 411.024V396.662C242.6 391.704 238.571 387.686 233.6 387.686H208.4V345.139H266C270.971 345.139 275 341.12 275 336.162Z @@ -67,7 +67,7 @@ export const dvScatterplot: IconDefinition = { 512, 512, [], - null, + '', ` M480.18 88C480.18 110.443 462.048 128.5 439.68 128.5C417.312 128.5 399.18 110.443 399.18 88C399.18 65.5573 417.312 47.5 439.68 47.5C462.048 47.5 480.18 65.5573 480.18 88ZM333 129C333 151.445 314.866 169.637 292.5 169.637C270.134 169.637 252 151.445 252 129C252 106.555 270.134 88.3629 292.5 88.3629C314.866 88.3629 333 106.555 333 129ZM206.3 362.134C206.3 384.579 188.166 402.771 165.8 402.771C143.434 402.771 125.3 384.579 125.3 362.134C125.3 339.689 143.434 321.497 165.8 321.497C188.166 321.497 206.3 339.689 206.3 362.134ZM232 212.137C232 234.582 213.866 252.774 191.5 252.774C169.134 252.774 151 234.582 151 212.137C151 189.692 169.134 171.5 191.5 171.5C213.866 171.5 232 189.692 232 212.137ZM351.5 320.997C351.5 343.442 333.366 361.634 311 361.634C288.634 361.634 270.5 343.442 270.5 320.997C270.5 298.552 288.634 280.36 311 280.36C333.366 280.36 351.5 298.552 351.5 320.997ZM439.18 212.137C439.18 234.582 421.046 252.774 398.68 252.774C376.314 252.774 358.18 234.582 358.18 212.137C358.18 189.692 376.314 171.5 398.68 171.5C421.046 171.5 439.18 189.692 439.18 212.137Z M75.5717 450.288C75.5943 450.287 75.613 450.286 75.6274 450.286H474.861C489.325 450.286 501 461.666 501 475.643C501 489.62 489.325 501 474.861 501H61.6512V502C61.6689 501 61.669 501 61.669 501H61.6685L61.6656 501L61.6524 501L61.5966 500.999C61.5467 500.997 61.4713 500.995 61.3717 500.992C61.1727 500.986 60.8772 500.975 60.4958 500.957C59.7328 500.921 58.6265 500.857 57.2604 500.742C54.5269 500.514 50.7607 500.086 46.6294 499.293C38.3109 497.695 28.7333 494.653 23.0055 488.95C17.1644 483.135 14.1301 473.311 12.5789 464.759C11.8086 460.512 11.4135 456.636 11.2111 453.822C11.11 452.415 11.0572 451.276 11.0297 450.49C11.0159 450.096 11.0085 449.792 11.0045 449.587C11.0025 449.484 11.0013 449.406 11.0007 449.355L11.0001 449.297L11 449.284L11 449.283V37.2357C11 22.7116 22.3447 11 36.2633 11C50.1819 11 61.5267 22.7116 61.5267 37.2357V436.155C61.5259 436.169 61.5251 436.189 61.5241 436.212C61.522 436.266 61.5196 436.342 61.5179 436.439C61.5145 436.632 61.5141 436.907 61.5254 437.247C61.5481 437.926 61.6178 438.87 61.8068 439.934C62.1804 442.04 63.0416 444.741 65.0514 446.759C67.064 448.78 69.7586 449.642 71.8591 450.013C72.921 450.201 73.8619 450.269 74.5388 450.29C74.878 450.3 75.1528 450.299 75.3456 450.295C75.4421 450.293 75.5182 450.291 75.5717 450.288Z @@ -82,7 +82,7 @@ export const dvHexbinplot: IconDefinition = { 512, 512, [], - null, + '', ` M61.6512 502V501H474.861C489.325 501 501 489.62 501 475.643C501 461.666 489.325 450.286 474.861 450.286H75.6274C75.613 450.286 75.5944 450.287 75.5717 450.288C75.5182 450.291 75.4421 450.293 75.3456 450.295C75.1528 450.299 74.878 450.3 74.5389 450.29C73.8619 450.269 72.921 450.201 71.8591 450.013C69.7586 449.642 67.0641 448.78 65.0514 446.759C63.0416 444.741 62.1804 442.04 61.8068 439.934C61.6179 438.87 61.5481 437.926 61.5255 437.247C61.5141 436.907 61.5145 436.632 61.5179 436.439C61.5196 436.342 61.522 436.266 61.5242 436.212C61.5251 436.189 61.526 436.169 61.5267 436.155V37.2357C61.5267 22.7116 50.1819 11 36.2633 11C22.3447 11 11 22.7116 11 37.2357V449.283L11 449.284L11.0001 449.297L11.0007 449.355C11.0014 449.406 11.0025 449.484 11.0045 449.587C11.0085 449.792 11.0159 450.096 11.0297 450.49C11.0572 451.276 11.1101 452.415 11.2112 453.822C11.4135 456.636 11.8086 460.512 12.5789 464.759C14.1302 473.311 17.1644 483.135 23.0055 488.95C28.7333 494.653 38.3109 497.695 46.6294 499.293C50.7608 500.086 54.5269 500.514 57.2604 500.742C58.6265 500.857 59.7329 500.921 60.4958 500.957C60.8773 500.975 61.1727 500.986 61.3718 500.992C61.4713 500.995 61.5467 500.997 61.5967 500.999L61.6524 501L61.6656 501L61.6685 501H61.6691C61.6691 501 61.669 501 61.6512 502ZM61.6512 502H474.861C489.85 502 502 490.199 502 475.643C502 461.086 489.85 449.286 474.861 449.286H75.6L61.6512 502Z M153.169 243.901H244.832L290.664 323.336L244.832 402.771H153.169L107.337 323.336L153.169 243.901ZM319.648 148.697H411.311L457.143 228.132L411.311 307.567H319.648L273.816 228.132L319.648 148.697ZM153.169 56.5736L244.832 56.5736L290.664 136.009L244.832 215.444H153.169L107.337 136.009L153.169 56.5736Z @@ -97,7 +97,7 @@ export const dvSankey: IconDefinition = { 512, 512, [], - null, + '', 'M63.7633 473.613L63.7633 348.159C107.446 348.584 140.255 367.276 188.941 395.049C190.408 395.886 191.889 396.731 193.385 397.583C286.27 450.528 367.626 444.279 419.463 440.297L419.481 440.296C430.475 439.451 440.102 438.712 448.237 438.655V473.613C448.237 489.172 460.409 501.849 475.5 501.849C490.591 501.849 502.763 489.172 502.763 473.613V38.3871C502.763 22.8275 490.591 10.1514 475.5 10.1514C460.409 10.1514 448.237 22.8275 448.237 38.3871V63.3311C440.102 63.2738 430.475 62.5349 419.481 61.6905L419.463 61.6891C367.626 57.7073 286.27 51.4581 193.385 104.403C191.889 105.255 190.408 106.1 188.941 106.937C140.255 134.71 107.446 153.402 63.7633 153.827L63.7633 38.3871C63.7633 22.8275 51.591 10.1514 36.4999 10.1514C21.4089 10.1514 9.23659 22.8275 9.23659 38.3871L9.23657 473.613C9.23657 489.172 21.4088 501.849 36.4999 501.849C51.591 501.849 63.7633 489.172 63.7633 473.613ZM63.7633 277.827L63.7633 215.829C124.375 215.392 170.413 189.013 215.511 163.173L215.588 163.129C218.423 161.504 221.255 159.881 224.088 158.267C298.865 115.644 358.136 119.814 409.687 123.445L409.707 123.447C423.006 124.384 435.817 125.286 448.237 125.333V187.331C440.102 187.274 430.475 186.535 419.481 185.69L419.463 185.689C367.626 181.707 286.27 175.458 193.385 228.403C191.889 229.255 190.408 230.1 188.941 230.937C140.255 258.71 107.446 277.402 63.7633 277.827ZM215.511 338.813C199.972 329.909 184.321 320.941 168 312.993C184.321 305.045 199.972 296.077 215.511 287.173L215.588 287.129L215.628 287.105C218.451 285.488 221.269 283.873 224.088 282.267C298.865 239.644 358.136 243.814 409.687 247.445L409.709 247.447C423.007 248.384 435.818 249.286 448.237 249.333L448.237 376.653C435.818 376.7 423.007 377.602 409.709 378.539L409.687 378.541C358.136 382.172 298.865 386.342 224.088 343.719C221.269 342.112 218.451 340.498 215.628 338.881L215.588 338.857L215.511 338.813Z', ], }; @@ -109,7 +109,7 @@ export const dvHeatmap: IconDefinition = { 512, 512, [], - null, + '', 'M61.6424 502.5H61.6512H474.861C490.112 502.5 502.5 490.489 502.5 475.643C502.5 460.796 490.112 448.786 474.861 448.786H75.6H75.5843L75.5689 448.787L75.5665 448.787L75.5555 448.787L75.5078 448.79C75.4648 448.792 75.3998 448.794 75.3149 448.796C75.1452 448.799 74.8963 448.8 74.5854 448.791C73.963 448.771 73.0959 448.709 72.1202 448.536C70.157 448.189 67.8143 447.408 66.1143 445.701C64.4153 443.994 63.6334 441.643 63.2837 439.672C63.1099 438.693 63.0455 437.822 63.0246 437.197C63.0142 436.885 63.0146 436.636 63.0176 436.465C63.0191 436.38 63.0213 436.315 63.023 436.271L63.0251 436.223L63.0257 436.212L63.0258 436.21L63.0258 436.21L63.0267 436.195V436.181V37.2357C63.0267 21.935 51.0613 9.5 36.2633 9.5C21.4654 9.5 9.49997 21.935 9.49997 37.2357L9.49996 449.286L9.49998 449.288L9.99997 449.286C9.49998 449.288 9.49998 449.289 9.49998 449.289L9.49999 449.29L9.50002 449.294L9.50015 449.311L9.50082 449.373C9.50149 449.428 9.50268 449.51 9.50475 449.616C9.50889 449.829 9.51653 450.141 9.53059 450.542C9.55869 451.344 9.61243 452.502 9.71499 453.929C9.92008 456.782 10.3206 460.714 11.103 465.027C12.6623 473.623 15.7577 483.851 21.9472 490.013C28.0137 496.053 37.9816 499.16 46.3465 500.766C50.5429 501.572 54.3637 502.005 57.1353 502.237C58.5215 502.353 59.6461 502.419 60.4252 502.455C60.8147 502.474 61.1179 502.485 61.3243 502.491C61.4274 502.495 61.5064 502.497 61.5599 502.498L61.6207 502.499L61.6365 502.5L61.6407 502.5L61.6418 502.5C61.6419 502.5 61.642 502.5 61.6421 502.494C61.6427 502.474 61.6444 502.386 61.6512 502L61.6424 502.5ZM189 29.5H99C95.9624 29.5 93.5 31.9624 93.5 35V125C93.5 128.038 95.9624 130.5 99 130.5H189C192.038 130.5 194.5 128.038 194.5 125V35C194.5 31.9624 192.038 29.5 189 29.5ZM449 29.5H359C355.962 29.5 353.5 31.9624 353.5 35V125C353.5 128.038 355.962 130.5 359 130.5H449C452.038 130.5 454.5 128.038 454.5 125V35C454.5 31.9624 452.038 29.5 449 29.5ZM189 174.5H99C95.9624 174.5 93.5 176.962 93.5 180V270C93.5 273.038 95.9624 275.5 99 275.5H189C192.038 275.5 194.5 273.038 194.5 270V180C194.5 176.962 192.038 174.5 189 174.5ZM319 174.5H229C225.962 174.5 223.5 176.962 223.5 180V270C223.5 273.038 225.962 275.5 229 275.5H319C322.038 275.5 324.5 273.038 324.5 270V180C324.5 176.962 322.038 174.5 319 174.5ZM319 319.5H229C225.962 319.5 223.5 321.962 223.5 325V415C223.5 418.038 225.962 420.5 229 420.5H319C322.038 420.5 324.5 418.038 324.5 415V325C324.5 321.962 322.038 319.5 319 319.5ZM449 319.5H359C355.962 319.5 353.5 321.962 353.5 325V415C353.5 418.038 355.962 420.5 359 420.5H449C452.038 420.5 454.5 418.038 454.5 415V325C454.5 321.962 452.038 319.5 449 319.5Z', ], }; @@ -121,7 +121,7 @@ export const dvOncoprint: IconDefinition = { 512, 512, [], - null, + '', 'M52.6424 493.5H52.6512H465.861C481.112 493.5 493.5 481.489 493.5 466.643C493.5 451.796 481.112 439.786 465.861 439.786H66.6H66.5843L66.5689 439.787L66.5665 439.787L66.5555 439.787L66.5078 439.79C66.4648 439.792 66.3998 439.794 66.3149 439.796C66.1452 439.799 65.8963 439.8 65.5855 439.791C64.9631 439.771 64.0959 439.709 63.1202 439.536C61.157 439.189 58.8143 438.408 57.1143 436.701C55.4153 434.994 54.6334 432.643 54.2837 430.672C54.1099 429.693 54.0455 428.822 54.0246 428.197C54.0142 427.885 54.0147 427.636 54.0177 427.465C54.0192 427.38 54.0213 427.315 54.023 427.271L54.0251 427.223L54.0257 427.212L54.0258 427.21L54.0258 427.21L54.0267 427.195V427.181V28.2357C54.0267 12.935 42.0613 0.5 27.2633 0.5C12.4654 0.5 0.499985 12.935 0.499985 28.2357L0.499977 440.286L0.499992 440.288L0.999985 440.286C0.499992 440.288 0.499993 440.289 0.499995 440.289L0.500002 440.29L0.500031 440.294L0.500161 440.311L0.500833 440.373C0.501508 440.428 0.502698 440.51 0.504766 440.616C0.508902 440.829 0.516548 441.141 0.5306 441.542C0.558704 442.344 0.612442 443.502 0.71501 444.929C0.920092 447.782 1.32065 451.714 2.10298 456.027C3.66234 464.623 6.75771 474.851 12.9472 481.013C19.0137 487.053 28.9817 490.16 37.3465 491.766C41.5429 492.572 45.3637 493.005 48.1354 493.237C49.5215 493.353 50.6462 493.419 51.4252 493.455C51.8147 493.474 52.1179 493.485 52.3243 493.491C52.4275 493.495 52.5064 493.497 52.5599 493.498L52.6208 493.499L52.6365 493.5L52.6407 493.5L52.6418 493.5C52.6419 493.5 52.642 493.5 52.6422 493.494C52.6427 493.474 52.6444 493.386 52.6512 493L52.6424 493.5ZM133 20.5H90C86.9624 20.5 84.5 22.9624 84.5 26V116C84.5 119.038 86.9624 121.5 90 121.5H133C136.038 121.5 138.5 119.038 138.5 116V26C138.5 22.9624 136.038 20.5 133 20.5ZM216 20.5H173C169.962 20.5 167.5 22.9624 167.5 26V116C167.5 119.038 169.962 121.5 173 121.5H216C219.038 121.5 221.5 119.038 221.5 116V26C221.5 22.9624 219.038 20.5 216 20.5ZM299 20.5H256C252.962 20.5 250.5 22.9624 250.5 26V116C250.5 119.038 252.962 121.5 256 121.5H299C302.038 121.5 304.5 119.038 304.5 116V26C304.5 22.9624 302.038 20.5 299 20.5ZM216 163.5H173C169.962 163.5 167.5 165.962 167.5 169V259C167.5 262.038 169.962 264.5 173 264.5H216C219.038 264.5 221.5 262.038 221.5 259V169C221.5 165.962 219.038 163.5 216 163.5ZM299 163.5H256C252.962 163.5 250.5 165.962 250.5 169V259C250.5 262.038 252.962 264.5 256 264.5H299C302.038 264.5 304.5 262.038 304.5 259V169C304.5 165.962 302.038 163.5 299 163.5ZM382 163.5H339C335.962 163.5 333.5 165.962 333.5 169V259C333.5 262.038 335.962 264.5 339 264.5H382C385.038 264.5 387.5 262.038 387.5 259V169C387.5 165.962 385.038 163.5 382 163.5ZM299 306.5H256C252.962 306.5 250.5 308.962 250.5 312V402C250.5 405.038 252.962 407.5 256 407.5H299C302.038 407.5 304.5 405.038 304.5 402V312C304.5 308.962 302.038 306.5 299 306.5ZM382 306.5H339C335.962 306.5 333.5 308.962 333.5 312V402C333.5 405.038 335.962 407.5 339 407.5H382C385.038 407.5 387.5 405.038 387.5 402V312C387.5 308.962 385.038 306.5 382 306.5ZM465 306.5H422C418.962 306.5 416.5 308.962 416.5 312V402C416.5 405.038 418.962 407.5 422 407.5H465C468.038 407.5 470.5 405.038 470.5 402V312C470.5 308.962 468.038 306.5 465 306.5Z', ], }; @@ -133,7 +133,7 @@ export const dvCorrelationplot: IconDefinition = { 512, 512, [], - null, + '', 'M61.6424 502.5H61.6512H474.861C490.112 502.5 502.5 490.489 502.5 475.643C502.5 460.796 490.112 448.786 474.861 448.786H75.6H75.5843L75.5689 448.787L75.5665 448.787L75.5555 448.787L75.5078 448.79C75.4648 448.792 75.3998 448.794 75.3149 448.796C75.1452 448.799 74.8963 448.8 74.5854 448.791C73.963 448.771 73.0959 448.709 72.1202 448.536C70.157 448.189 67.8143 447.408 66.1143 445.701C64.4153 443.994 63.6334 441.643 63.2837 439.672C63.1099 438.693 63.0455 437.822 63.0246 437.197C63.0142 436.885 63.0146 436.636 63.0176 436.465C63.0191 436.38 63.0213 436.315 63.023 436.271L63.0251 436.223L63.0257 436.212L63.0258 436.21L63.0258 436.21L63.0267 436.195V436.181V37.2357C63.0267 21.935 51.0613 9.5 36.2633 9.5C21.4654 9.5 9.49997 21.935 9.49997 37.2357L9.49996 449.286L9.49998 449.288L9.99997 449.286C9.49998 449.288 9.49998 449.289 9.49998 449.289L9.49999 449.29L9.50002 449.294L9.50015 449.311L9.50082 449.373C9.50149 449.428 9.50268 449.51 9.50475 449.616C9.50889 449.829 9.51653 450.141 9.53059 450.542C9.55869 451.344 9.61243 452.502 9.71499 453.929C9.92008 456.782 10.3206 460.714 11.103 465.027C12.6623 473.623 15.7577 483.851 21.9472 490.013C28.0137 496.053 37.9816 499.16 46.3465 500.766C50.5429 501.572 54.3637 502.005 57.1353 502.237C58.5215 502.353 59.6461 502.419 60.4252 502.455C60.8147 502.474 61.1179 502.485 61.3243 502.491C61.4274 502.495 61.5064 502.497 61.5599 502.498L61.6207 502.499L61.6365 502.5L61.6407 502.5L61.6418 502.5C61.6419 502.5 61.642 502.5 61.6421 502.494C61.6427 502.474 61.6444 502.386 61.6512 502L61.6424 502.5ZM153 166.5C186.413 166.5 213.5 139.413 213.5 106C213.5 72.5868 186.413 45.5 153 45.5C119.587 45.5 92.5 72.5868 92.5 106C92.5 139.413 119.587 166.5 153 166.5ZM153 277.5C178.129 277.5 198.5 257.129 198.5 232C198.5 206.871 178.129 186.5 153 186.5C127.871 186.5 107.5 206.871 107.5 232C107.5 257.129 127.871 277.5 153 277.5ZM153 390.5C169.845 390.5 183.5 376.845 183.5 360C183.5 343.155 169.845 329.5 153 329.5C136.155 329.5 122.5 343.155 122.5 360C122.5 376.845 136.155 390.5 153 390.5ZM279 151.5C304.129 151.5 324.5 131.129 324.5 106C324.5 80.871 304.129 60.5 279 60.5C253.871 60.5 233.5 80.871 233.5 106C233.5 131.129 253.871 151.5 279 151.5ZM279 292.5C312.413 292.5 339.5 265.413 339.5 232C339.5 198.587 312.413 171.5 279 171.5C245.587 171.5 218.5 198.587 218.5 232C218.5 265.413 245.587 292.5 279 292.5ZM279 405.5C304.129 405.5 324.5 385.129 324.5 360C324.5 334.871 304.129 314.5 279 314.5C253.871 314.5 233.5 334.871 233.5 360C233.5 385.129 253.871 405.5 279 405.5ZM407 136.5C423.845 136.5 437.5 122.845 437.5 106C437.5 89.1553 423.845 75.5 407 75.5C390.155 75.5 376.5 89.1553 376.5 106C376.5 122.845 390.155 136.5 407 136.5ZM407 277.5C432.129 277.5 452.5 257.129 452.5 232C452.5 206.871 432.129 186.5 407 186.5C381.871 186.5 361.5 206.871 361.5 232C361.5 257.129 381.871 277.5 407 277.5ZM407 420.5C440.413 420.5 467.5 393.413 467.5 360C467.5 326.587 440.413 299.5 407 299.5C373.587 299.5 346.5 326.587 346.5 360C346.5 393.413 373.587 420.5 407 420.5Z', ], }; @@ -149,7 +149,7 @@ export const dvChemicalStructure: IconDefinition = { 512, 512, [], - null, + '', ` M253.549 213.538L298.645 142.445C304.45 133.293 314.697 127.934 325.525 128.385L350.626 129.431L350.782 129.438L407.553 131.804L443.531 75.8179C443.153 74.9596 442.816 74.0922 442.521 73.2182L442.512 73.1936C437.697 58.9103 443.843 42.8479 457.622 35.6405C472.88 27.6596 491.719 33.5587 499.7 48.8166C507.681 64.0745 501.782 82.9133 486.524 90.8943C481.76 93.3861 476.647 94.5249 471.625 94.4482L434.864 151.652C429.039 160.715 418.845 166.01 408.08 165.561L326.065 162.143L279.642 235.328L311.104 295.476C313.337 299.744 313.122 304.879 310.542 308.947L265.56 379.863C262.98 383.93 258.426 386.313 253.613 386.112L181.818 383.119L147.026 437.967C152.377 452.455 146.262 469.011 132.213 476.36C116.955 484.341 98.1161 478.441 90.1351 463.184C82.1541 447.926 88.0533 429.087 103.311 421.106C108.645 418.316 114.417 417.222 120.01 417.632L153.116 365.441L123.717 309.237L66.2436 306.842C63.4104 311.308 59.4013 315.113 54.3776 317.741C39.1197 325.722 20.2809 319.823 12.3 304.565C4.319 289.307 10.2181 270.468 25.476 262.487C39.8473 254.97 57.3953 259.766 66.0552 273.099L127.475 275.658L164.942 216.591C167.522 212.523 172.076 210.141 176.888 210.342L253.549 213.538ZM247.725 247.03L187.15 244.505L154.676 295.701L182.776 349.423L243.351 351.949L275.825 300.752L247.725 247.03Z M253.549 213.538L298.645 142.445C304.45 133.293 314.697 127.934 325.525 128.385L350.626 129.431L350.782 129.438L407.553 131.804L443.531 75.8179C443.153 74.9596 442.816 74.0922 442.521 73.2182L442.512 73.1936C437.697 58.9103 443.843 42.8479 457.622 35.6405C472.88 27.6596 491.719 33.5587 499.7 48.8166C507.681 64.0745 501.782 82.9133 486.524 90.8943C481.76 93.3861 476.647 94.5249 471.625 94.4482L434.864 151.652C429.039 160.715 418.845 166.01 408.08 165.561L326.065 162.143L279.642 235.328L311.104 295.476C313.337 299.744 313.122 304.879 310.542 308.947L265.56 379.863C262.98 383.93 258.426 386.313 253.613 386.112L181.818 383.119L147.026 437.967C152.377 452.455 146.262 469.011 132.213 476.36C116.955 484.341 98.1161 478.441 90.1351 463.184C82.1541 447.926 88.0533 429.087 103.311 421.106C108.645 418.316 114.417 417.222 120.01 417.632L153.116 365.441L123.717 309.237L66.2436 306.842C63.4104 311.308 59.4013 315.113 54.3776 317.741C39.1197 325.722 20.2809 319.823 12.3 304.565C4.319 289.307 10.2181 270.468 25.476 262.487C39.8473 254.97 57.3953 259.766 66.0552 273.099L127.475 275.658L164.942 216.591C167.522 212.523 172.076 210.141 176.888 210.342L253.549 213.538ZM247.725 247.03L187.15 244.505L154.676 295.701L182.776 349.423L243.351 351.949L275.825 300.752L247.725 247.03Z @@ -165,7 +165,7 @@ export const dvFilterOutline: IconDefinition = { 512, 512, [], - null, + '', ` M182.47 320.171C182.964 320.782 183.234 321.545 183.234 322.332V403.913C184.447 415.915 187.528 421.126 196.799 428.028L279.143 476.062C279.32 476.193 279.515 476.31 279.715 476.403C306.683 489.012 325.695 474.564 327.285 451.34V322.342C327.285 321.549 327.559 320.781 328.061 320.167L504.611 93.6265C522.166 68.7071 507.005 32.5339 474.29 30.9262L45.0065 31.73C5.1103 30.1223 -9.25235 71.1187 5.90822 91.2149L182.47 320.171ZM215.869 293.162L47.7754 74.6779L465.263 73.8962L294.802 292.986C288.031 301.271 284.332 311.641 284.332 322.342V426.526L226.187 396.33V322.332C226.187 311.714 222.545 301.417 215.869 293.162ZM41.2861 74.7644C41.2282 74.7875 41.1954 74.7938 41.1954 74.7938C41.1954 74.7938 41.2231 74.7805 41.2861 74.7644Z `, @@ -179,7 +179,7 @@ export const dvFilterClear: IconDefinition = { 512, 512, [], - null, + '', ` M182.47 320.171C182.964 320.782 183.234 321.545 183.234 322.332V403.913C184.447 415.915 187.528 421.126 196.799 428.028L279.143 476.062C279.32 476.193 279.515 476.31 279.715 476.403C298.697 485.278 313.738 480.748 321.536 469.188C272.975 449.051 238.819 401.186 238.819 345.342C238.819 271.329 298.819 211.329 372.832 211.329C385.375 211.329 397.514 213.052 409.028 216.274L504.611 93.6265C522.166 68.7071 507.005 32.5339 474.29 30.9262L45.0065 31.73C5.1103 30.1223 -9.25235 71.1187 5.90822 91.2149L182.47 320.171Z M374.55 237.101C434.345 237.101 482.792 285.547 482.792 345.342C482.792 405.137 434.345 453.584 374.55 453.584C314.756 453.584 266.309 405.137 266.309 345.342C266.309 285.547 314.756 237.101 374.55 237.101ZM427.362 374.148L398.992 345.342L427.362 316.972C429.544 315.227 429.544 311.735 427.362 309.553L410.34 292.531C408.158 290.349 404.666 290.349 402.92 292.531L374.55 320.901L346.181 292.531C343.998 290.349 340.507 290.349 338.761 292.531L321.302 309.553C319.12 311.735 319.12 315.227 321.302 316.972L350.109 345.342L321.302 373.712C319.12 375.894 319.12 379.386 321.302 381.132L338.324 398.59C340.507 400.772 343.998 400.772 345.744 398.59L374.55 369.784L402.92 398.59C404.666 400.772 408.158 400.772 410.34 398.59L427.362 381.568C429.544 379.386 429.544 375.894 427.362 374.148Z @@ -194,7 +194,7 @@ export const dvStringCol: IconDefinition = { 512, 512, [], - null, + '', ` M403.178 293.855L403.182 293.863C407.692 303.971 413.72 311.585 421.28 316.669C428.829 321.746 437.139 324.286 446.199 324.286C453.925 324.286 461.095 322.633 467.7 319.323C474.297 316.108 480.444 311.85 486.141 306.553L511.353 346.295C501.963 354.857 492.219 361.388 482.12 365.899C471.924 370.235 460.513 372.407 447.879 372.407C435.071 372.407 422.822 369.803 411.127 364.593C399.621 359.166 389.41 351.459 380.494 341.467C371.767 331.479 364.797 319.31 359.589 304.952C354.572 290.606 352.058 274.291 352.058 256C352.058 237.708 354.572 221.394 359.589 207.048C364.797 192.69 371.767 180.522 380.493 170.533C389.41 160.539 399.528 152.943 410.847 147.734L410.852 147.732C422.359 142.306 434.512 139.593 447.319 139.593C459.398 139.593 470.442 141.549 480.458 145.453L480.458 145.453L480.47 145.458C490.56 149.105 500.386 154.664 509.949 162.141L486.097 203.183C480.404 198.736 474.265 195.122 467.681 192.34C460.895 189.255 453.639 187.714 445.919 187.714C436.86 187.714 428.548 190.254 421 195.331L420.995 195.334C413.623 200.419 407.69 208.032 403.182 218.137L403.179 218.144C398.851 228.268 396.698 240.893 396.698 256C396.698 271.107 398.851 283.732 403.178 293.855ZM113.033 143.523L183.004 368.477H136.46L123.941 324.305L123.838 323.941H123.46H59.1023H58.7244L58.6213 324.305L46.1025 368.477H0.679148L70.6494 143.523H113.033ZM91.7623 210.767L91.2812 209.07L90.8002 210.767L70.4088 282.716L70.2284 283.353H70.8898H111.673H112.334L112.154 282.716L91.7623 210.767ZM194.052 368.477V143.523H265.513C277.576 143.523 288.51 146.019 298.328 151.001L298.336 151.004C308.149 155.768 315.823 162.582 321.371 171.451L321.375 171.457C327.1 180.313 329.974 191.02 329.974 203.605C329.974 216.19 327.1 226.786 321.378 235.42L321.377 235.422C317.606 241.155 312.853 245.939 307.114 249.774L306.42 250.238L307.157 250.631C316.891 255.822 324.516 263.258 330.04 272.948L330.042 272.953C335.59 282.469 338.374 293.731 338.374 306.758C338.374 319.778 335.406 330.925 329.492 340.219L329.491 340.22C323.756 349.308 315.894 356.343 305.893 361.324C296.077 366.089 284.954 368.477 272.514 368.477H194.052ZM307.86 249.873C307.783 249.831 307.705 249.79 307.628 249.748L307.392 250.189L307.67 250.605C307.743 250.556 307.817 250.507 307.89 250.458C317.47 255.681 324.998 263.095 330.474 272.701C336.074 282.306 338.874 293.659 338.874 306.758C338.874 319.856 335.888 331.1 329.914 340.487L307.86 249.873ZM238.353 186.404H237.853V186.904V234.059V234.559H238.353H262.713C269.903 234.559 275.726 232.565 280.131 228.534L280.141 228.525C284.558 224.257 286.734 218.218 286.734 210.481C286.734 202.749 284.56 196.813 280.136 192.762C275.733 188.51 269.908 186.404 262.713 186.404H238.353ZM238.353 274.166H237.853V274.666V325.096V325.596H238.353H268.313C275.877 325.596 281.982 323.493 286.573 319.241L286.575 319.239C291.371 314.753 293.734 308.271 293.734 299.881C293.734 291.496 291.375 285.12 286.574 280.849C281.984 276.38 275.879 274.166 268.313 274.166H238.353Z `, @@ -208,7 +208,7 @@ export const dvNumericCol: IconDefinition = { 512, 512, [], - null, + '', ` M3.91283 329.338V368.452H149.34V329.338H104.016V143.548H69.1267L0 171.905L15.6513 210.041L51.845 195.24V329.338H3.91283Z M190.623 156.586C181.928 161.801 173.885 167.777 166.494 174.513L194.862 212.323C200.079 207.325 205.296 202.979 210.513 199.285C215.948 195.591 221.491 192.766 227.143 190.81C232.795 188.637 238.555 187.551 244.425 187.551C251.163 187.551 256.706 188.746 261.054 191.136C265.402 193.527 268.662 196.786 270.836 200.915C273.227 204.826 274.423 209.281 274.423 214.279C274.423 218.625 273.336 223.188 271.162 227.968C268.988 232.749 265.619 237.964 261.054 243.614C256.489 249.264 250.511 255.674 243.12 262.845L170.081 334.228V368.452H331.159V322.819H244.398L274.749 296.092C287.357 284.792 297.574 274.47 305.399 265.127C313.225 255.565 318.877 246.222 322.355 237.095C326.051 227.751 327.898 217.973 327.898 207.76C327.898 194.722 324.529 183.096 317.79 172.883C311.051 162.67 301.813 154.63 290.074 148.763C278.336 142.679 265.076 139.636 250.294 139.636C239.207 139.636 228.665 141.157 218.665 144.2C208.666 147.242 199.318 151.37 190.623 156.586Z @@ -223,7 +223,7 @@ export const dvSortAsc: IconDefinition = { 512, 512, [], - null, + '', 'M250.622 110.314C261.557 121.248 261.557 138.977 250.622 149.912C239.688 160.846 221.959 160.846 211.024 149.912L157.421 96.308V443.711C157.421 459.175 144.886 471.711 129.421 471.711C113.957 471.711 101.421 459.175 101.421 443.711V96.2895L47.7988 149.912C36.8643 160.846 19.1357 160.846 8.20117 149.912C-2.7334 138.977 -2.7334 121.248 8.20117 110.314L105.577 12.9375C106.61 11.3647 107.818 9.87315 109.201 8.49028C114.773 2.91771 122.111 0.185044 129.414 0.292283C136.716 0.186143 144.051 2.91881 149.622 8.49034C151.005 9.87322 152.213 11.3647 153.246 12.9374L250.622 110.314ZM482 451C498.568 451 512 437.569 512 421C512 404.431 498.568 391 482 391H222C205.432 391 192 404.431 192 421C192 437.569 205.432 451 222 451H482ZM482 265.586C498.568 265.586 512 252.154 512 235.585C512 219.017 498.568 205.585 482 205.585H222C205.432 205.585 192 219.017 192 235.585C192 252.154 205.432 265.586 222 265.586H482ZM482 81C498.568 81 512 67.5685 512 51C512 34.4314 498.568 21 482 21H282C265.432 21 252 34.4314 252 51C252 67.5685 265.432 81 282 81H482Z', ], }; @@ -235,7 +235,7 @@ export const dvSortDesc: IconDefinition = { 512, 512, [], - null, + '', 'M157.421 28.2893C157.421 12.8253 144.885 0.289307 129.421 0.289307C113.957 0.289307 101.421 12.8253 101.421 28.2893V375.711L47.7988 322.088C36.8641 311.154 19.1355 311.154 8.20087 322.088C-2.73383 333.023 -2.73383 350.752 8.20087 361.686L105.576 459.062C106.61 460.635 107.818 462.127 109.201 463.51C114.773 469.082 122.111 471.815 129.414 471.708C136.715 471.814 144.051 469.081 149.622 463.51C151.005 462.127 152.213 460.635 153.246 459.062L250.622 361.686C261.557 350.752 261.557 333.023 250.622 322.088C239.688 311.154 221.959 311.154 211.024 322.088L157.421 375.691V28.2893ZM482 21C498.569 21 512 34.4315 512 51C512 67.5685 498.569 81 482 81H222C205.431 81 192 67.5685 192 51C192 34.4315 205.431 21 222 21H482ZM482 206.415C498.569 206.415 512 219.846 512 236.414C512 252.983 498.569 266.414 482 266.414H222C205.431 266.414 192 252.983 192 236.414C192 219.846 205.431 206.415 222 206.415H482ZM482 391C498.569 391 512 404.431 512 421C512 437.569 498.569 451 482 451H282C265.431 451 252 437.569 252 421C252 404.431 265.431 391 282 391H482Z', ], }; @@ -247,7 +247,7 @@ export const dvSort: IconDefinition = { 512, 512, [], - null, + '', 'M8.20093 110.314C-2.73364 121.248 -2.73364 138.977 8.20093 149.912C19.1355 160.846 36.864 160.846 47.7986 149.912L101.402 96.308V443.711C101.402 459.175 113.938 471.711 129.402 471.711C144.866 471.711 157.402 459.175 157.402 443.711V96.2896L211.024 149.912C221.959 160.846 239.687 160.846 250.622 149.912C261.556 138.977 261.556 121.248 250.622 110.314L153.246 12.9376C152.213 11.3649 151.005 9.87317 149.622 8.49023C144.05 2.91797 136.713 0.185425 129.41 0.292358C122.108 0.185913 114.772 2.91858 109.201 8.49036C107.818 9.87317 106.61 11.3646 105.577 12.9373L8.20093 110.314ZM354.579 375.692V28.2893C354.579 12.8253 367.114 0.289307 382.579 0.289307C398.043 0.289307 410.579 12.8253 410.579 28.2893V375.71L464.201 322.088C475.135 311.154 492.864 311.154 503.799 322.088C514.733 333.023 514.733 350.752 503.799 361.686L406.423 459.062C405.389 460.635 404.181 462.127 402.799 463.51C397.226 469.082 389.889 471.815 382.587 471.708C375.285 471.814 367.949 469.081 362.378 463.51C360.995 462.127 359.787 460.635 358.754 459.063L261.378 361.686C250.443 350.752 250.443 333.023 261.378 322.088C272.312 311.154 290.041 311.154 300.975 322.088L354.579 375.692Z', ], }; diff --git a/src/idtype/IDType.ts b/src/idtype/IDType.ts index ca2fbe823..be6f0de35 100644 --- a/src/idtype/IDType.ts +++ b/src/idtype/IDType.ts @@ -22,7 +22,7 @@ export class IDType extends EventHandler implements IEventHandler { */ private readonly sel = new Map(); - canBeMappedTo: Promise = null; + canBeMappedTo: Promise | null = null; /** * @param id the system identifier of this IDType @@ -56,7 +56,7 @@ export class IDType extends EventHandler implements IEventHandler { this.name = persisted.name; // @ts-ignore this.names = persisted.names; - Object.keys(persisted.sel).forEach((type) => this.sel.set(type, persisted.sel[type])); + Object.keys(persisted.sel).forEach((type) => this.sel.set(type, persisted.sel[type]!)); return this; } @@ -75,9 +75,9 @@ export class IDType extends EventHandler implements IEventHandler { */ selections(type = SelectionUtils.defaultSelectionType): string[] { if (this.sel.has(type)) { - return this.sel.get(type); + return this.sel.get(type)!; } - const v = []; + const v: string[] = []; this.sel.set(type, v); return v; } diff --git a/src/idtype/IDTypeManager.ts b/src/idtype/IDTypeManager.ts index decff4211..074c07d5a 100644 --- a/src/idtype/IDTypeManager.ts +++ b/src/idtype/IDTypeManager.ts @@ -75,7 +75,7 @@ export class IDTypeManager { public registerIdType = (id: string, idtype: IDType): IDType => { if (this.cache.has(id)) { - return this.cache.get(id); + return this.cache.get(id)!; } this.cache.set(id, idtype); globalEventHandler.fire(IDTypeManager.EVENT_REGISTER_IDTYPE, idtype); @@ -88,7 +88,7 @@ export class IDTypeManager { public restoreIdType = (persisted: { [key: string]: IPersistedIDType }) => { Object.keys(persisted).forEach((id) => { - this.resolveIdType(id).restore(persisted[id]); + this.resolveIdType(id).restore(persisted[id]!); }); }; @@ -128,11 +128,11 @@ export class IDTypeManager { }; public mapOneNameToFirstName = async (idType: IDType, name: string, toIDtype: IDTypeLike): Promise => { - return this.mapNameToFirstName(idType, [name], toIDtype).then((names) => names[0]); + return this.mapNameToFirstName(idType, [name], toIDtype).then((names) => names[0]!); }; public mapOneNameToName = async (idType: IDType, name: string, toIDtype: IDTypeLike): Promise => { - return this.mapNameToName(idType, [name], toIDtype).then((names) => names[0]); + return this.mapNameToName(idType, [name], toIDtype).then((names) => names[0]!); }; public mapNameToFirstName = async (idType: IDType, names: string[], toIDtype: IDTypeLike): Promise => { @@ -163,6 +163,7 @@ export class IDTypeManager { return true; } // lookup the targets and check if our target is part of it + // @ts-ignore return this.getCanBeMappedTo(this.resolveIdType(idtype)).then((mappables: IDType[]) => mappables.some((d) => d.id === target.id)); } // check which idTypes can be mapped to the target one diff --git a/src/plugin/PluginRegistry.ts b/src/plugin/PluginRegistry.ts index cb7edd9c0..d54837224 100644 --- a/src/plugin/PluginRegistry.ts +++ b/src/plugin/PluginRegistry.ts @@ -99,9 +99,9 @@ export class PluginRegistry implements IRegistry { * @param id * @returns {IPluginDesc} */ - public getPlugin(type: 'visynView', id: string): VisynViewPluginDesc; - public getPlugin(type: string, id: string): IPluginDesc; - public getPlugin(type: string, id: string): IPluginDesc { + public getPlugin(type: 'visynView', id: string): VisynViewPluginDesc | undefined; + public getPlugin(type: string, id: string): IPluginDesc | undefined; + public getPlugin(type: string, id: string): IPluginDesc | undefined { return this.registry.find((d) => d.type === type && d.id === id); } diff --git a/src/ranking/EagerVisynRanking.tsx b/src/ranking/EagerVisynRanking.tsx index dc23b3cd2..f3b2da451 100644 --- a/src/ranking/EagerVisynRanking.tsx +++ b/src/ranking/EagerVisynRanking.tsx @@ -81,12 +81,12 @@ export function EagerVisynRanking>({ const b = getBuilderRef.current({ data }); // Build the ranking - lineupRef.current = b.buildDatavisynTaggle(divRef.current); + lineupRef.current = b.buildDatavisynTaggle(divRef.current!); // Listen to selections lineupRef.current.on(LineUp.EVENT_SELECTION_CHANGED, async () => { if (!disableLineUpSelectionListener.current) { - const selected = await lineupRef.current.data.view(lineupRef.current.getSelection()); + const selected = await lineupRef.current!.data.view(lineupRef.current!.getSelection()); setSelectionRef.current?.(selected); } }); @@ -110,7 +110,7 @@ export function EagerVisynRanking>({ // Sync the selection back to lineup if (lineupRef.current && lineupRef.current?.ranking && indexMapRef.current) { disableLineUpSelectionListener.current = true; - const selectedIndices = selection?.map((s) => indexMapRef.current.get(s)).filter((i) => i != null); + const selectedIndices = selection?.map((s) => indexMapRef.current!.get(s)).filter((i) => i != null); if (!selectedIndices) { lineupRef.current.setSelection([]); } else if (!isEqual(selectedIndices, lineupRef.current.getSelection())) { diff --git a/src/ranking/VisynRanking.tsx b/src/ranking/VisynRanking.tsx index eaef79a69..862c81985 100644 --- a/src/ranking/VisynRanking.tsx +++ b/src/ranking/VisynRanking.tsx @@ -1,12 +1,12 @@ import * as React from 'react'; import type { EagerVisynRanking } from './EagerVisynRanking'; -const LazyVisynRanking = React.lazy(() => import('./EagerVisynRanking').then((m) => ({ default: m.EagerVisynRanking }))); +const LazyVisynRanking = React.lazy(() => import('./EagerVisynRanking').then((m) => ({ default: m.EagerVisynRanking }))) as typeof EagerVisynRanking; export function VisynRanking>(props: Parameters>[0]) { return ( - + {...props} /> ); } diff --git a/src/ranking/overrides/DatavisynTaggle.tsx b/src/ranking/overrides/DatavisynTaggle.tsx index a35f02560..9b80ded4b 100644 --- a/src/ranking/overrides/DatavisynTaggle.tsx +++ b/src/ranking/overrides/DatavisynTaggle.tsx @@ -56,7 +56,7 @@ export class DatavisynTaggle extends colDesc.scoreData = score.data; colDesc.accessor = (row, descRef) => descRef.scoreData[row.i]; - const col = this.data.create(colDesc); + const col = this.data.create(colDesc)!; if (options?.insertAfter) { return ranking.insertAfter(col, options.insertAfter); diff --git a/src/ranking/score/utilities.ts b/src/ranking/score/utilities.ts index a29da7721..96a8cfcc9 100644 --- a/src/ranking/score/utilities.ts +++ b/src/ranking/score/utilities.ts @@ -13,8 +13,8 @@ export function isScoreColumnDesc(desc: IValueColumnDesc | IColu * @param defaultToDescRef the default behavior that gets called for each column that is NOT a score column * @returns a function that can be directly passed to the dump function of the ranking */ -export function createToDescRefWithScoreColumns(defaultToDescRef: (value) => any) { - return (desc) => { +export function createToDescRefWithScoreColumns(defaultToDescRef: (value: any) => any) { + return (desc: any) => { if (isScoreColumnDesc(desc)) { // Score column delete desc.accessor; @@ -33,8 +33,8 @@ export function createToDescRefWithScoreColumns(defaultToDescRef: (value) => any * @param defaultFromDescRef the default behavior that gets called for each column that is NOT a score column * @returns a function that can be directly passed to the restore function of the ranking */ -export function createFromDescRefWithScoreColumns(defaultFromDescRef: (value) => any) { - return (descRef) => { +export function createFromDescRefWithScoreColumns(defaultFromDescRef: (value: any) => any) { + return (descRef: any) => { const newDesc = defaultFromDescRef(descRef); if (isScoreColumnDesc(newDesc)) { diff --git a/src/ranking/smiles/SMILESColumn.tsx b/src/ranking/smiles/SMILESColumn.tsx index 3600d0f16..58a9ed2ad 100644 --- a/src/ranking/smiles/SMILESColumn.tsx +++ b/src/ranking/smiles/SMILESColumn.tsx @@ -16,7 +16,7 @@ export interface ISMILESFilter { /** * Search string which is used to filter the column data */ - filter: string; + filter: string | null; /** * Filter out rows with missing values @@ -26,7 +26,7 @@ export interface ISMILESFilter { /** * The set contains matching results that should be visible */ - matching: Set; + matching: Set | null; } @toolbar('filterSMILES', 'rename') @@ -49,7 +49,7 @@ export class SMILESColumn extends ValueColumn { } filter(row: IDataRow): boolean { - if (!this.isFiltered()) { + if (!this.isFiltered() || !this.structureFilter) { return true; } diff --git a/src/ranking/smiles/SMILESFilterDialog.tsx b/src/ranking/smiles/SMILESFilterDialog.tsx index 80cf119b5..e88f0d622 100644 --- a/src/ranking/smiles/SMILESFilterDialog.tsx +++ b/src/ranking/smiles/SMILESFilterDialog.tsx @@ -44,15 +44,17 @@ export class SMILESFilterDialog extends ADialog { } private findLoadingNode(node: HTMLElement) { - return node.querySelector(`#${this.dialog.idPrefix}_loading`); + return node.querySelector(`#${this.dialog.idPrefix}_loading`)!; } private findErrorNode(node: HTMLElement) { - return node.querySelector(`#${this.dialog.idPrefix}_error`); + return node.querySelector(`#${this.dialog.idPrefix}_error`)!; } private updateFilter(filter: string | null, filterMissing: boolean) { + // @ts-ignore this.findLoadingNode(this.node).setAttribute('hidden', null); + // @ts-ignore this.findErrorNode(this.node).setAttribute('hidden', null); // empty input field + missing values checkbox is unchecked @@ -62,7 +64,7 @@ export class SMILESFilterDialog extends ADialog { } const provider = this.ctx.provider as LocalDataProvider; - const structures = provider.viewRawRows(provider.data.map((_, i) => i)).map((d) => this.column.getValue(d)); + const structures = provider.viewRawRows(provider.data.map((_, i) => i)).map((d) => this.column.getValue(d)!); // empty input field, but missing values checkbox is checked if (filter == null && filterMissing) { @@ -71,10 +73,11 @@ export class SMILESFilterDialog extends ADialog { } this.findLoadingNode(this.node).removeAttribute('hidden'); + // @ts-ignore this.findErrorNode(this.node).setAttribute('hidden', null); // input field is not empty -> search matching structures on server - fetchSubstructure(structures, filter) + fetchSubstructure(structures, filter!) .then(({ count }) => { const matching = new Set( Object.entries(count) @@ -83,9 +86,11 @@ export class SMILESFilterDialog extends ADialog { ); this.column.setFilter({ filter, filterMissing, matching }); + // @ts-ignore this.findLoadingNode(this.node).setAttribute('hidden', null); }) .catch((error: Error) => { + // @ts-ignore this.findLoadingNode(this.node).setAttribute('hidden', null); const errorNode = this.findErrorNode(this.node); @@ -137,7 +142,7 @@ export class SMILESFilterDialog extends ADialog { ); const filterMissing = findFilterMissing(node); - const input = node.querySelector('input[type="text"]'); + const input = node.querySelector('input[type="text"]')!; this.enableLivePreviews([filterMissing, input]); diff --git a/src/ranking/smiles/SMILESRenderer.tsx b/src/ranking/smiles/SMILESRenderer.tsx index 355e39a38..790ead613 100644 --- a/src/ranking/smiles/SMILESRenderer.tsx +++ b/src/ranking/smiles/SMILESRenderer.tsx @@ -48,13 +48,13 @@ async function getReducedImages(structures: string[]): Promise { // similarity if (structures.length === 2) { - const reference = structures[0]; - const probe = structures.length > 1 ? structures[1] : structures[0]; + const reference = structures[0]!; + const probe = structures.length > 1 ? structures[1]! : structures[0]!; return fetchImage({ url: `/api/rdkit/similarity/?structure=${encodeURIComponent(probe)}&reference=${encodeURIComponent(reference)}`, method: 'GET' }); } // single = first structure - return fetchImage({ url: `/api/rdkit/?structure=${encodeURIComponent(structures[0])}`, method: 'GET' }); + return fetchImage({ url: `/api/rdkit/?structure=${encodeURIComponent(structures[0]!)}`, method: 'GET' }); } function svgToImageSrc(svg: string): string { @@ -88,7 +88,7 @@ export class SMILESRenderer implements ICellRendererFactory { window.setTimeout(() => resolve(value), 500); }), ).then((image) => { - if (typeof image === 'symbol') { + if (!value || typeof image === 'symbol') { return; } n.style.backgroundImage = `url('${getImageURL(value, col.getFilter()?.filter, col.getAlign())}')`; diff --git a/src/ranking/smiles/utils.ts b/src/ranking/smiles/utils.ts index 2e80c308e..8df514062 100644 --- a/src/ranking/smiles/utils.ts +++ b/src/ranking/smiles/utils.ts @@ -12,9 +12,11 @@ export function registerSMILESColumn(builder: DataBuilder, { setDynamicHeight = // TODO remove default string filter; use `filterString` as key would override the default string filter, but also for string columns { title: 'Filter …', // the toolbar icon is derived from this string! (= transformed to `lu-action-filter`) - onClick: (col: SMILESColumn, evt: MouseEvent, ctx: IRankingHeaderContext, level: number, viaShortcut: boolean) => { - const dialog = new SMILESFilterDialog(col, dialogContext(ctx, level, evt), ctx); - dialog.open(); + onClick: (col: Column, evt: MouseEvent, ctx: IRankingHeaderContext, level: number, viaShortcut: boolean) => { + if (col instanceof SMILESColumn) { + const dialog = new SMILESFilterDialog(col, dialogContext(ctx, level, evt), ctx); + dialog.open(); + } }, options: { mode: 'menu+shortcut', diff --git a/src/security/Permission.ts b/src/security/Permission.ts index 15e6b9f78..01d2be768 100644 --- a/src/security/Permission.ts +++ b/src/security/Permission.ts @@ -64,7 +64,7 @@ export class Permission { hasPermission(entity: EEntity, permission: EPermission) { const permissions = this.getPermissions(entity); - return permissions.has(permission); + return permissions?.has(permission); } static toNumber(p: Set) { diff --git a/src/security/UserSession.ts b/src/security/UserSession.ts index 524e94a2e..c19ee8557 100644 --- a/src/security/UserSession.ts +++ b/src/security/UserSession.ts @@ -50,8 +50,8 @@ export class UserSession { * @param defaultValue * @returns {T} */ - public retrieve = (key: string, defaultValue: T = null): T => { - return this.context.getItem(key) !== null ? JSON.parse(this.context.getItem(key)) : defaultValue; + public retrieve = (key: string, defaultValue: T | null = null): T => { + return typeof this.context.getItem(key) === 'string' ? JSON.parse(this.context.getItem(key)!) : defaultValue; }; /** diff --git a/src/utils/Util.stories.tsx b/src/utils/Util.stories.tsx index 6d7e63d7e..6052137ab 100644 --- a/src/utils/Util.stories.tsx +++ b/src/utils/Util.stories.tsx @@ -1,11 +1,11 @@ import React from 'react'; import { ComponentStory } from '@storybook/react'; import { Slider, Stack, Text } from '@mantine/core'; -import { DateTimePicker } from '@mantine/dates'; +import { DateTimePicker, DateValue } from '@mantine/dates'; import { fromNow, getMostRelevantTimeUnitFromNow } from './fromNow'; function PickerExample() { - const [value, setValue] = React.useState(new Date('June 1, 2024, 12:00:00')); + const [value, setValue] = React.useState(new Date('June 1, 2024, 12:00:00')); return ( @@ -45,7 +45,7 @@ function SliderExample() { min={-30} max={30} maw={400} - label={() => `${Math.round(getMostRelevantTimeUnitFromNow(d).amount)} ${getMostRelevantTimeUnitFromNow(d).name}`} + label={() => `${Math.round(getMostRelevantTimeUnitFromNow(d)!.amount)} ${getMostRelevantTimeUnitFromNow(d)!.name}`} /> Generated label from current date -/+ the slider value:{' '} diff --git a/src/utils/fromNow.ts b/src/utils/fromNow.ts index 681656893..606ad56d8 100644 --- a/src/utils/fromNow.ts +++ b/src/utils/fromNow.ts @@ -22,7 +22,7 @@ export function getMostRelevantTimeUnitFromNow(date: Date) { let time = (date.getTime() - new Date().getTime()) / SECOND_IN_MILLISECONDS; for (let i = 0; i < INTERNAL_DIVISIONS.length; i++) { - const division = INTERNAL_DIVISIONS[i]; + const division = INTERNAL_DIVISIONS[i]!; if (Math.abs(time) < division.amount) { return { amount: time, name: division.name }; diff --git a/src/views/visyn/demo/VisynDemoView.tsx b/src/views/visyn/demo/VisynDemoView.tsx index 470620ba8..a74d88253 100644 --- a/src/views/visyn/demo/VisynDemoView.tsx +++ b/src/views/visyn/demo/VisynDemoView.tsx @@ -83,7 +83,7 @@ export function VisynDemoView({ desc, parameters, onParametersChanged }: DemoVis {parameters.columns ? ( { onParametersChanged((p) => ({ ...p, diff --git a/src/vis/EagerVis.tsx b/src/vis/EagerVis.tsx index 0118bd041..ef17b6269 100644 --- a/src/vis/EagerVis.tsx +++ b/src/vis/EagerVis.tsx @@ -125,16 +125,16 @@ export function useRegisterDefaultVis(visTypes?: string[]) { export function EagerVis({ columns, selected = [], - stats = null, + stats = undefined, statsCallback = () => null, - colors = null, + colors = undefined, shapes = DEFAULT_SHAPES, selectionCallback = () => null, filterCallback, - setExternalConfig = null, + setExternalConfig = undefined, closeCallback = () => null, showCloseButton = false, - externalConfig = null, + externalConfig = undefined, enableSidebar = true, showSidebar: internalShowSidebar, showDragModeOptions = true, @@ -172,7 +172,7 @@ export function EagerVis({ /** * Optional Prop which is called whenever the statistics for the plot change. */ - statsCallback?: (s: IPlotStats) => void; + statsCallback?: (s: IPlotStats | null) => void; /** * Optional Prop which is called when a filter is applied. Returns a string identifying what type of filter is desired. This logic will be simplified in the future. */ @@ -340,7 +340,7 @@ export function EagerVis({ }> The visualization type "{visConfig?.type}" is not supported. Please open the sidebar and select a different type. - ) : visHasError ? ( + ) : visHasError || !Renderer ? ( }> An error occured in the visualization. Please try to select something different in the sidebar. diff --git a/src/vis/bar/hooks/useGetBarScales.ts b/src/vis/bar/hooks/useGetBarScales.ts index 101624bc4..5b14fa6b9 100644 --- a/src/vis/bar/hooks/useGetBarScales.ts +++ b/src/vis/bar/hooks/useGetBarScales.ts @@ -75,7 +75,9 @@ export function useGetBarScales( }, [aggregateFunc, allColumns?.catColVals, allColumns?.facetsColVals, baseTable, categoryFilter]); const countScale = useMemo(() => { - if (!aggregatedTable) return null; + if (!aggregatedTable) { + return null; + } return d3 .scaleLinear() .range(isVertical ? [height - margin.bottom, margin.top] : [width - margin.right, margin.left]) @@ -83,7 +85,9 @@ export function useGetBarScales( }, [aggregatedTable, height, isVertical, margin, width]); const categoryScale = useMemo(() => { - if (!aggregatedTable) return null; + if (!aggregatedTable) { + return null; + } return d3 .scaleBand() .range(isVertical ? [width - margin.right, margin.left] : [height - margin.bottom, margin.top]) diff --git a/src/vis/bar/hooks/useGetGroupedBarScales.ts b/src/vis/bar/hooks/useGetGroupedBarScales.ts index f68a097d5..ff64e9220 100644 --- a/src/vis/bar/hooks/useGetGroupedBarScales.ts +++ b/src/vis/bar/hooks/useGetGroupedBarScales.ts @@ -42,7 +42,9 @@ export function useGetGroupedBarScales( ); const groupedTable = useMemo(() => { - if (!allColumns) return null; + if (!allColumns) { + return null; + } if (allColumns.groupColVals) { let filteredTable = baseTable; @@ -59,7 +61,9 @@ export function useGetGroupedBarScales( }, [aggregateType, allColumns, baseTable, categoryFilter]); const groupColorScale = useMemo(() => { - if (!groupedTable) return null; + if (!groupedTable) { + return null; + } let i = -1; const newGroup = groupedTable.ungroup().groupby('group').count(); @@ -91,14 +95,18 @@ export function useGetGroupedBarScales( }, [groupedTable, allColumns]); const groupScale = useMemo(() => { - if (!groupedTable) return null; + if (!groupedTable) { + return null; + } const newGroup = groupedTable.ungroup().groupby('category', 'group').count(); return d3.scaleBand().range([0, categoryScale.bandwidth()]).domain(newGroup.array('group').sort()).padding(0.1); }, [categoryScale, groupedTable]); const newCountScale = useMemo(() => { - if (!allColumns) return null; + if (!allColumns) { + return null; + } // No facets, only group if (!allColumns.facetsColVals) { diff --git a/src/vis/correlation/CorrelationMatrix.tsx b/src/vis/correlation/CorrelationMatrix.tsx index e3fc7affa..2557deb51 100644 --- a/src/vis/correlation/CorrelationMatrix.tsx +++ b/src/vis/correlation/CorrelationMatrix.tsx @@ -56,21 +56,27 @@ export function CorrelationMatrix({ // Scales const xScale = React.useMemo(() => { - if (!data) return null; + if (!data) { + return null; + } return scaleBand() .range([margin.left, availableSize + margin.left]) .domain(data.map((column) => column.info.id)); }, [data, availableSize]); const yScale = React.useMemo(() => { - if (!data) return null; + if (!data) { + return null; + } return scaleBand() .range([margin.top, availableSize + margin.top]) .domain(data.map((column) => column.info.id)); }, [data, availableSize]); const circleSizeScale = React.useMemo(() => { - if (!data) return null; + if (!data) { + return null; + } const maxSize = Math.min(xScale.bandwidth() / 2 - paddingCircle.left, yScale.bandwidth() / 2 - paddingCircle.top); return config.pScaleType === EScaleType.LINEAR ? d3.scaleLinear().domain(config.pDomain).range([CIRCLE_MIN_SIZE, maxSize]).clamp(true) @@ -79,7 +85,9 @@ export function CorrelationMatrix({ // Calculate correlation results const memoizedCorrelationResults = React.useMemo(() => { - if (!data) return null; + if (!data) { + return null; + } let coefffunc = (x: number[], y: number[]) => null; if (config.correlationType === ECorrelationType.PEARSON) { @@ -128,7 +136,9 @@ export function CorrelationMatrix({ // Show labels on diagonal of matrix const labelsDiagonal = React.useMemo(() => { - if (!data) return null; + if (!data) { + return null; + } return data.map((col) => { const currentX = xScale(col.info.id); const currentY = yScale(col.info.id); diff --git a/src/vis/heatmap/Heatmap.tsx b/src/vis/heatmap/Heatmap.tsx index 91bc922ab..e65b78927 100644 --- a/src/vis/heatmap/Heatmap.tsx +++ b/src/vis/heatmap/Heatmap.tsx @@ -45,7 +45,9 @@ export function Heatmap({ }) { const [ref, { width, height }] = useResizeObserver(); const baseTable = useMemo(() => { - if (!column1 || !column2) return null; + if (!column1 || !column2) { + return null; + } return table({ xVal: column1.resolvedValues.map(({ val }) => val), @@ -55,7 +57,9 @@ export function Heatmap({ }); }, [aggregateColumn?.resolvedValues, column1, column2]); const aggregatedTable = useMemo(() => { - if (!baseTable) return null; + if (!baseTable) { + return null; + } let valueTable = rollupByAggregateType(baseTable.groupby('xVal', 'yVal'), config.aggregateType); @@ -158,7 +162,9 @@ export function Heatmap({ }, [aggregatedTable, width, margin.left, margin.right, margin.top, margin.bottom, height, config?.numColorScaleType, config.aggregateType]); const rects = useMemo(() => { - if (width === 0 || height === 0) return null; + if (width === 0 || height === 0) { + return null; + } return groupedValues.map((d, i) => { const { aggregateVal, x, y, xVal, yVal, color } = d; const ids: string[] = Array.from( @@ -187,7 +193,9 @@ export function Heatmap({ }, [baseTable, groupedValues, height, rectHeight, rectWidth, selected, selectionCallback, width, xScale, yScale, config.isAnimationEnabled]); const text = useMemo(() => { - if (width === 0 || height === 0) return null; + if (width === 0 || height === 0) { + return null; + } return ( { - if (xSpring.x.isAnimating || ySpring.y.isAnimating) return; + if (xSpring.x.isAnimating || ySpring.y.isAnimating) { + return; + } setIsHovered(true); }} onMouseLeave={() => { - if (xSpring.x.isAnimating || ySpring.y.isAnimating) return; + if (xSpring.x.isAnimating || ySpring.y.isAnimating) { + return; + } setIsHovered(false); }} onMouseDown={(e) => { - if (xSpring.x.isAnimating || ySpring.y.isAnimating) return; + if (xSpring.x.isAnimating || ySpring.y.isAnimating) { + return; + } setSelected(); onClick(e); diff --git a/src/vis/scatter/ScatterVis.tsx b/src/vis/scatter/ScatterVis.tsx index e13a278d4..e2bd96535 100644 --- a/src/vis/scatter/ScatterVis.tsx +++ b/src/vis/scatter/ScatterVis.tsx @@ -293,7 +293,7 @@ export function ScatterVis({ } return data.map((d) => { - const textIndices = !config.showLabelLimit ? d.selectedpoints ?? [] : (d.selectedpoints ?? []).slice(0, config.showLabelLimit); + const textIndices = !config.showLabelLimit ? (d.selectedpoints ?? []) : (d.selectedpoints ?? []).slice(0, config.showLabelLimit); const text = config.showLabels === ELabelingOptions.ALWAYS ? d.text : isSelecting ? '' : (d.text ?? []).map((t, i) => (textIndices.includes(i) ? t : '')); return { ...d, text }; diff --git a/src/vis/scatter/utils.ts b/src/vis/scatter/utils.ts index 8b7e27c43..ca24efbc1 100644 --- a/src/vis/scatter/utils.ts +++ b/src/vis/scatter/utils.ts @@ -26,7 +26,9 @@ import { getCol } from '../sidebar'; import { ELabelingOptions, ERegressionLineType, IScatterConfig } from './interfaces'; function calculateDomain(domain: [number | undefined, number | undefined], vals: number[]): [number, number] { - if (!domain) return null; + if (!domain) { + return null; + } if (domain[0] !== undefined && domain[1] !== undefined) { return [domain[0], domain[1]]; } diff --git a/tsconfig.lenient.json b/tsconfig.lenient.json new file mode 100644 index 000000000..d12583661 --- /dev/null +++ b/tsconfig.lenient.json @@ -0,0 +1,12 @@ +{ + "extends": "visyn_scripts/config/tsconfig.lenient.template.json", + "compilerOptions": { + "jsx": "react", + "outDir": "./dist", + }, + "include": [ + "src/**/*.ts", + "src/**/*.tsx", + "tsd.d.ts" + ] +}