Skip to content

Commit 62f7768

Browse files
dvvanessastoiberdvzacharycutlerthinkholtionchamparipuehringer
authored
Release 16.0.0 (#778)
* adding custom data to basic bar charts * fixing context selection bug * more bug fixes * Refactor multi selection adapter - Add optional `diffSubtypes` to `IMultiSelectionAdapter` - Remove `ReprovisynMultiSelectionAdapter` - Add generics to `MultiSelectionAdapter` - Comment functions of `MultiSelectionAdapter` * Replace `PromiseLike` with `Promise` + async/await See also https://masteringjs.io/tutorials/fundamentals/promise-resolve * Replace `() => IContext` with `IContext` Unecessary convoluted call * Remove `waitForIt` promise from selection adapter - Add and refactor return types `Promise<any>` to `Promise<void>` - Switch to async/await where possible - await `removeDynamicColumns` before `addDynamicColumns` -> previously it was not waited for the removal * Add unit tests for SelectionAdapter * adding parameters check on use effect * removing outdated todo * Update context inside selection adapter * fixing default params value * builds * fixing bar selection * making bar click removal work * code improvements * fixing uncontrolled error * removing zooming on bar charts * adding promise to fix typing * pr suggestions/cleanup * prepare next development version 15.0.1-SNAPSHOT * Added build-storybook to build script (#733) * Added build-storybook to build script * Add tdp_core/dist alias to the storybook webpack config * updated version of storybook (#736) Co-authored-by: Moritz Heckmann <moritz.heckmann@datavisyn.io> Co-authored-by: dvmoritzschoefl <77104411+dvmoritzschoefl@users.noreply.github.com> Co-authored-by: Moritz Heckmann <moritz.heckmann@datavisyn.io> * Fix eslint for AggregateTypeSelected Probably a missing type cast in PR #729 * Remove await `this.built` in `withoutTracking()` Waiting for `this.built` will never resolve/terminate and show an infite loading icon. Reason: `this.built` is created with `build()` in line 355 and it is only resolved after the `build()` call is complete. With the changes to the selection adapter the `this.selectionAdapter.selectionChanged` now returns a valid promise. Previously, `context.add()` did not return it's promise (see 919cfb2#diff-f0f07e4a6ac30a813315b152545245d4cf26830e01b701f3e82ff7b5c22363a7R18). Now, we are waiting until all dynamic columns are added. The circle closes when we add the columns which calls `withoutTracking()` which in-turn is waiting for the resolved `this.built` promise. As far as I can see, we always call `withoutTracking` on a built/resolved ranking view. In the other places (line 377 and 400) we have a dedicated `await this.built;` before triggering changes to dynamic columns. In my tests adding and removing columns via score and selection adapter worked as before. I also tested reloading the page and checked the result of the session. In all cases it looks the same as before. * use `useRef` instead of `useSyncedRef` * Add Storybook stories for custom buttons (#708) * create first storybook for button styles * add story for single button * change background * linting * fix background * add additional kind of buttons * typing * add functions for buttons into stories * started chaning source of button * finish Button storybook docu * linting problems * linting * styling of code * change style to UI * add comments * Added build-storybook to build script * Add tdp_core/dist alias to the storybook webpack config * added outline buttons, adjusted layout to not contain margin inside a story, added link to styleguide Co-authored-by: Michael Puehringer <michael.puehringer@datavisyn.io> Co-authored-by: Moritz Heckmann <moritz.heckmann@datavisyn.io> * added cypress run script to package json (#738) Co-authored-by: Moritz Heckmann <moritz.heckmann@datavisyn.io> * Add exception handler middleware (#723) * Add exception handler middleware * Extract default logging config and set it on server startup Co-authored-by: dvtschachinger <thomas.schachinger@datavisyn.io> * address PR comments * Initial visyn_scripts integration * Update storybook script to storybook:build * adding description to axis labels (#744) * Add NODE_OPTIONS=--max_old_space_size=4096 to storybook scripts (#746) * Add NODE_OPTIONS=--max_old_space_size=4096 to storybook scripts * Update build script to include storybook:build * Update cache key * Fix `ARankingView` typings of `rebuild` and `reloadData` (#749) * prepare next dev version * Fixed return value of logout of ALB security store (#751) * Fix incorrect route for server buildInfo.json (#752) * Export initialize.ts for external Storybook instance (#753) * Migrated to new webpack5 visyn_scripts * Updated npm scripts * Moved entries from yo-rc to package.json * Fix SCSS warning for divide numbers using `/` (#758) Fix SCSS warning for divide numbers using / * Show selection indicator next to scroll bar in rankings (#756) Show LineUp selection indicator next to scroll bar * Prepare github changes * Update CODEOWNERS * Prepare github changes * Prepare github changes * Prepare github changes * Prepare github changes * Remove circleci * prepare next dev version * Set modal focus based on tour visiblity and replace Bootstrap jQuery modal with plain JS modal (#754) * Replace BS jQuery modal with plain JS modal Caleydo/tdp_bi_bioinfodb#1371 * Refactor modal options * Replace deprecated `evt.keyCode` with `evt.key` * Set modal focus flag based on tour's visibility Also revert dialog constructor parameter to `backdrop` only again. * Resolve some dependency cycles * Upgrade to Font Awesome v6 (#732) * update to fontawesome v6 * added fontawesome scss file * add dist files * Fix icon position in sidepanel tab * Update dependency lineupjs@4.6.2 Co-authored-by: Moritz Heckmann <moritz.heckmann@datavisyn.io> Co-authored-by: Holger Stitz <holger.stitz@datavisyn.io> * Updated modal typings in dialogs.ts to return HTMLDivElement for body (#765) * Added tsconfig.json to package.json files to allow the prepack script to build via tsc * Moved phovea_registry to src/phovea_registry.ts * Removed phovea_registry.js from package.json files * Add package-lock.json * Update build.yml * Fix Error Where FormDialog Fails to Be Instantiated (#766) check if `.tdp-tour-step-count` exists * refactor: Avoid general aside styles caused by CLUE (#763) Refactor CLUE aside styles * Avoid general `<aside>` styles * Copy general aside styles into nested panels * refactor: Improve Cypress setup and use Cypress commands.js (#757) Co-authored-by: Holger Stitz <holger.stitz@datavisyn.io> * feat: CLUE support for URL query parameter + rewrite hash parameters (#762) * Replace deprecated `substr` with `substring` * Move PropertyHandler and HashProperties * Add CommonPropertyHandler + QueryPropertyHandler - Move some static functions back to the CLUEGraphManager * Add property handler options to ATDPApplication * Add destroy hook to remove event listener * Add URL property rewrite to CLUEGraphManager * Extract rewrite URL function to unit test * Add unit test for rewrite URL function * Refactor graph URL after persisting session * Fix typings in interface * Avoid property symbol only in URL string * Amend last commit to avoid empty hash only Co-authored-by: Michael Pühringer <51900829+puehringer@users.noreply.github.com> * Update package.json * Update package.json * Update package.json * fix: Font Awesome import in storybook.scss (#767) * Added d3v4 alias for datavisyn-scatterplot * Switch back to prepare script as otherwise install fails with jest not found error * Removed tdp_scatterplot and old d3v4 versions (#768) * Delete dist directory * Update package.json * Update engine and prepare script * Add react resolutions and overrides * Add @types to deps instead of devDeps * Added resolutions like overrides * Fix wrongly formatted visyn_scripts git ssh link * Remove webpack as forced resolution * Move lineupjs $engine_assets variable to _variables.scss * Add yarn-3.2.2 * Change prepare to prepack * Remove yarn again * Update visyn_scripts import * Add .yarnrc.yml * Add yarn-3.2.2 * Add yarn-3.2.2 * Add webpack to overides * Replace npm run with yarn run * Switch to visyn_scripts clean * Correctly pin papaparse types * Pin core-js to 2.6.5 * Add dist/ * Added d3v3 alias for d3 * Switch from node16 to main workflows * Added d3v7 alias (#769) * Added standalone tdp_core and updated README * Override form_check to write print-color-adjust instead of color-adjust (#770) * Update README.md * fix: Prevent submit of FormDialog with `evt.preventDefault()` (#772) * Bump pyjwt from 2.1.0 to 2.4.0 (#728) Bumps [pyjwt](https://github.com/jpadilla/pyjwt) from 2.1.0 to 2.4.0. - [Release notes](https://github.com/jpadilla/pyjwt/releases) - [Changelog](https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst) - [Commits](jpadilla/pyjwt@2.1.0...2.4.0) --- updated-dependencies: - dependency-name: pyjwt dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Michael Pühringer <51900829+puehringer@users.noreply.github.com> * Rdkit images API (#748) * Add rdkit image to router (not working? ignoring prefix/namespace?) Add api to make rdkit produce SVGs Add optional extra flavor for rdkit in setup.py Add tests (working in a standalone project) Add models for molecule parsing Add utils for rdkit-stuff * Reformat + fix imports (via make format) Add prefix/namespace-functionality to visyn_server in the same way, flask has it Cleanup tests * Make tests not run if you don't have rdkit * Fix linter errors * Change tag from default (none) to images and change docstring (from "todo move" to actual) * Make rdkit mandatory * Remove router namespace support for fastapi and add warning if it's used Remove murcko wrapper Remove unneccesary fastapi object creation Remove create_api in img_api Add app via init_app instead of via registry * Changed path form /image/ to /rdkit/ Changed kind of parameters from url params to query params, i.e. /rdkit/C -> /rdkit/?structure=C due to slashes Adapted tests Better / more correct type hints * Change to return no content (+ proper no content response code) * Fix imports * Add structured image column, renderer, and filter dialog for SMILES strings to ranking (#755) * Add molecule column + renderer for LineUp #741 * Implement fetch structured image #741 * Add SMILES renderer and column to Ranking.tsx #741 * Adapt to latest rdkit API changes * Add custom structure image filter dialog (wip) * Add loading icon + error msg to filter dialog * Remove orphan import * Fix linter warnings and improve code * Deny to set string filter * Fix lint * Fix `filter = null` case * Rename folder to `structureImage` and add index.ts * Update dist files * Add empty summary renderer Otherwise an error is thrown when switching visualizations for the smiles column * Fix lint * Nest structured image i18n strings * Set default column width for smiles column * Set row height based on smiles column width * Set min/max domain for number col domain Related to #718 The parameter default, i.e. `min = Number.NaN`, is only used if the parameter is `undefined`. However, when the parameter is `null` it does not assign `Number.NaN`. With this commit `null` and `undefined` result in `Number.NaN`. * Set default summary renderer for smiles col * StructuredImageColumn extends ValueColumn - Removes all string related dialogs and functionality (e.g., group, sort, ...) - Add rename dialog - Remove `order` to default -> in menu: rename then filter Co-authored-by: Michael Puehringer <michael.puehringer@datavisyn.io> Co-authored-by: Michael Pühringer <51900829+puehringer@users.noreply.github.com> * Minor improvements and feedback incorporation Co-authored-by: Holger Stitz <holger.stitz@datavisyn.io> Co-authored-by: Michael Puehringer <michael.puehringer@datavisyn.io> Co-authored-by: Michael Pühringer <51900829+puehringer@users.noreply.github.com> * Pin plotly.js-dist-min to 2.12 to avoid selection error (#773) * Add test db setup fixture (#771) * Add test_db fixture * Reformatting * Simplify + fail better + test fixture * Fix weird import corner case * Fixed import order * Move test dev dependencies from requirements_dev to main, so things depending on core also have it. Also, mark both db-tests as xfail. Co-authored-by: Michael Puehringer <michael.puehringer@datavisyn.io> Co-authored-by: Michael Pühringer <51900829+puehringer@users.noreply.github.com> * Rename test_db to postgres_db (#774) * Added no security store for static logins (#775) * Bump rdkit to 2022.3.5 (#776) * prepare release 16.0.0 Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dvzacharycutler <zachary.cutler@datavisyn.io> Co-authored-by: Holger Stitz <holger.stitz@datavisyn.io> Co-authored-by: oltionchampari <oltion.champari@datavisyn.io> Co-authored-by: Michael Pühringer <51900829+puehringer@users.noreply.github.com> Co-authored-by: dvmoritzschoefl <77104411+dvmoritzschoefl@users.noreply.github.com> Co-authored-by: Moritz Heckmann <moritz.heckmann@datavisyn.io> Co-authored-by: Christian Bors <christian.bors@datavisyn.io> Co-authored-by: dvflorianengertsberger <87969942+dvflorianengertsberger@users.noreply.github.com> Co-authored-by: Michael Puehringer <michael.puehringer@datavisyn.io> Co-authored-by: dvtschachinger <thomas.schachinger@datavisyn.io> Co-authored-by: Zach Cutler <87644761+dvzacharycutler@users.noreply.github.com> Co-authored-by: anita-steiner <> Co-authored-by: Anita Steiner <anita.steiner@datavisyn.io> Co-authored-by: dvdanielamoitzi <57343176+dvdanielamoitzi@users.noreply.github.com> Co-authored-by: Christian Bors <84898946+dvchristianbors@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Markus Vogl <80687597+dvmarkusvogl@users.noreply.github.com>
1 parent 9d01e42 commit 62f7768

File tree

536 files changed

+4574
-7684
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

536 files changed

+4574
-7684
lines changed

.eslintrc.js

Lines changed: 1 addition & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1 @@
1-
module.exports = {
2-
root: true,
3-
extends: [
4-
"airbnb",
5-
"airbnb-typescript",
6-
"airbnb/hooks",
7-
"eslint:recommended",
8-
"plugin:import/recommended",
9-
"plugin:react/recommended",
10-
"plugin:@typescript-eslint/recommended",
11-
"plugin:jest/recommended",
12-
"plugin:prettier/recommended",
13-
"plugin:storybook/recommended",
14-
],
15-
plugins: ["react", "@typescript-eslint", "jest"],
16-
ignorePatterns: ["*.js"],
17-
env: {
18-
browser: true,
19-
es6: true,
20-
jest: true
21-
},
22-
globals: {
23-
Atomics: "readonly",
24-
SharedArrayBuffer: "readonly",
25-
},
26-
parser: "@typescript-eslint/parser",
27-
parserOptions: {
28-
// Make sure eslint and VS Code use the same path for the tsconfig.json:
29-
// https://github.com/typescript-eslint/typescript-eslint/issues/251
30-
tsconfigRootDir: __dirname,
31-
project: "./tsconfig.eslint.json"
32-
},
33-
rules: {
34-
// Disables jsx-a11y https://github.com/import-js/eslint-plugin-import/blob/v2.25.4/docs/rules/no-webpack-loader-syntax.md
35-
...Object.keys(require('eslint-plugin-jsx-a11y').rules).reduce((acc, rule) => { acc[`jsx-a11y/${rule}`] = 'off'; return acc }, {}),
36-
"class-methods-use-this":"off",
37-
"linebreak-style": "off",
38-
"no-continue": "off",
39-
"no-multi-assign": "warn",
40-
"no-nested-ternary": "off",
41-
"no-param-reassign": ["error", { "props": false }],
42-
"no-return-assign": "warn",
43-
"no-restricted-syntax": "off",
44-
"no-plusplus": "off",
45-
"no-prototype-builtins": "warn",
46-
"no-minusminus": "off",
47-
"no-underscore-dangle": "off",
48-
"max-classes-per-file": "off",
49-
"no-param-reassign": "warn",
50-
"import/no-extraneous-dependencies": "off",
51-
// Disable the following 2 lines because to allow webpack file-loaders syntax
52-
"import/no-webpack-loader-syntax": "off",
53-
"import/no-unresolved": "off",
54-
"import/prefer-default-export": "off",
55-
"import/order": "error",
56-
"prefer-destructuring": ["warn", {"object": true, "array": false}],
57-
"prefer-promise-reject-errors": "warn",
58-
"prefer-spread": "warn",
59-
"@typescript-eslint/ban-ts-comment": "warn",
60-
"react/destructuring-assignment": "warn",
61-
"react/jsx-props-no-spreading": "off",
62-
"react/no-unused-class-component-methods": "warn",
63-
"react/prop-types": "off",
64-
"react/require-default-props": "off",
65-
"react/static-property-placement": ["warn", "property assignment", {
66-
childContextTypes: "static getter",
67-
contextTypes: "static public field",
68-
contextType: "static public field",
69-
displayName: "static public field",
70-
}]
71-
}
72-
};
1+
module.exports = require('visyn_scripts/config/eslintrc.template')({ tsconfigRootDir: __dirname });

.gitignore

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
/.tscache
33
/.eslintcache
44
/.idea
5+
/bundles/
56
/build/
67
/storybook-static/
7-
/dist/tsBuildInfoFile
8+
/dist/tsconfig.tsbuildinfo
89
/dist_python/
910
/lib/
1011
*.egg-info/
@@ -27,4 +28,17 @@ node_modules/
2728
/src/**/*.map
2829
/tests/**/*.map
2930
*.css
30-
package-lock.json
31+
/package-lock.json
32+
/yarn.lock
33+
34+
# yarn
35+
.pnp.*
36+
.yarn/*
37+
!.yarn/patches
38+
!.yarn/plugins
39+
!.yarn/releases
40+
!.yarn/sdks
41+
!.yarn/versions
42+
43+
# env
44+
/env/

.prettierrc.js

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1 @@
1-
module.exports = {
2-
"endOfLine": "auto",
3-
"singleQuote": true,
4-
"trailingComma": "all",
5-
"printWidth": 160
6-
};
1+
module.exports = require('visyn_scripts/config/prettierrc.template')

.yarn/releases/yarn-3.2.2.cjs

Lines changed: 783 additions & 0 deletions
Large diffs are not rendered by default.

.yarnrc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
yarnPath: .yarn/releases/yarn-3.2.2.cjs
2+
nodeLinker: node-modules

.yo-rc.json

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,6 @@
2727
"redhatPackages": []
2828
},
2929
"app": "",
30-
"entries": {
31-
"app": "./src/index.ts"
32-
},
3330
"libraryAliases": {
3431
"d3": "d3/d3"
3532
},

README.md

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,46 @@ Target discovery platform for exploring rankings of genes, disease models, and o
88
Installation
99
------------
1010

11-
```
12-
git clone https://github.com/datavisyn/tdp_core.git
11+
```bash
12+
git clone -b develop https://github.com/datavisyn/tdp_core.git # or any other branch you want to develop in
1313
cd tdp_core
14-
npm install
14+
15+
# Frontend
16+
yarn install
17+
18+
# Backend
19+
python3 -m venv env # create a new virutal environment
20+
source env/bin/activate # active it
21+
make develop # install all dependencies
22+
```
23+
24+
Local development
25+
------------
26+
27+
```bash
28+
# Frontend
29+
yarn start
30+
31+
# Backend
32+
python tdp_core
1533
```
1634

1735
Testing
1836
-------
1937

20-
```
21-
npm test
38+
```bash
39+
# Frontend
40+
yarn run test
41+
42+
# Backend
43+
make test
2244
```
2345

2446
Building
2547
--------
2648

2749
```
28-
npm run build
50+
yarn run build
2951
```
3052

3153

cypress/fixtures/example.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"name": "Using fixtures to represent data",
3+
"email": "hello@cypress.io",
4+
"body": "Fixtures are a great way to mock data for responses to routes"
5+
}

cypress/plugins/index.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
/// <reference types="cypress" />
2+
// ***********************************************************
3+
// This example plugins/index.js can be used to load plugins
4+
//
5+
// You can change the location of this file or turn off loading
6+
// the plugins file with the 'pluginsFile' configuration option.
7+
//
8+
// You can read more here:
9+
// https://on.cypress.io/plugins-guide
10+
// ***********************************************************
11+
12+
// This function is called when a project is opened or re-opened (e.g. due to
13+
// the project's config changing)
14+
15+
/**
16+
* @type {Cypress.PluginConfig}
17+
*/
18+
// eslint-disable-next-line no-unused-vars
19+
module.exports = (on, config) => {
20+
// `on` is used to hook into various events Cypress emits
21+
// `config` is the resolved Cypress config
22+
}

0 commit comments

Comments
 (0)