* refactor categorical controls state
* lint
* fix race condition in tests
* fix typo
* add missing update on subset
* remove obsolete code
* update jest and puppeteer major version; update all minors
* update when label changes
* remove lint from tests; increase timeouts in e2e tests
* initial refactoring to new async annomatrix
* refine error handling
* fix bad merge
* add continuous legend
* lint
* fix memoization in color table creators
* partial implementation of user defined annotations
* add new annotations action creator file
* first pass at user annotations
* additional user annotation bug fixes
* user annotation auto-save
* unit test cleanup
* lint
* refactor into multiple files
* cleanup
* add column GC
* fix several bugs in user annotations
* remove debug code
* no anonymous functions
* undo redo cleanup
* file cleanup
* scatterplot
* performance
* cleanup
* remove old code
* render in parallel with load
* fix race condition
* simply graph rendering
* render throttle DRY
* fix category label order
* fix typo in e2e test setup
* re-fix the e2e test setup
* be more tolerant of races
* anno matrix unit tests
* temp disable reembedding
* pilot port continuous histo to react-async
* name change
* lint
* fix repaint bug
* typo fix
* update snap to match new ids
* world/universe name cleanup
* move annoMatrix to src dir
* use private underscore naming convention
* fix corner case in all selected
* name cleanup
* add layout control
* init edge case
* lint
* port scatterplot
* fix label indexing bug and improve tests
* port category to react-async
* fix user annotation labelling while subset
* select all of prev layout on layout switch
* fix race with crossfilter update
* prettier lint
* fix misleading comment
* fix url composition in loader
* first pass at crossfilter tests
* lint
* lint
* fix typo
* improved error handling for network errors
* fix memoization bug
* add memo
* refactor for performnce
* add missing single-value handling in select exact parser
* small bugs discovered by tests
* lint
* additional crossfilter unit tests
* remove extraneous comment
* add support for automatic category determination
* lint
* fix render bug in category
* take advantage of schema categories guarantee
* lint
* do not clear history when resetting
* enhanced annomatrix gc
* lint
* finish renaming to follow conventions; fix clone race bug
* lint
* add priority based loading to improve initial data load UX
* crossfilter cache perf
* perf tuning
* remove timers
* documentation
* PR review changes
* PR review changes
* more PR review edits
* improve clarity of comment
* more PR review fixes
* port centroidLabels to use react-async
* remove dead code
* pr review updates
* oops, remove logging
* 1510-smoke-test
* config default
* update tests
* update test config
* fix linter errors
* more comments
* address comments
* use npm install in push_tests.yml
* use environment.default.json
* adding docs
* Take care of @mweiden's nits
* Save screenshots in the __tests__/screenshots/ directory
* typo
* docs
* Add chart tests (#1580)
* merge tests
* check if bin creation returned null before rendering charts (#1576)
* check if bin creation returned null before rendering charts
* refactor chart rendering into functions (#1577)
* little fixes from PR
* reintroduce fix to check for null values
* change getAllByClass to return element
* slice instead
* new stackedbar test
* feedback-1573-test (#1579)
* feedback-1573-test
* enable whole test set
* revert tests
Co-authored-by: Timmy Huang <tihuan@users.noreply.github.com>
* tweak test to actually render chart
* include snapshot
* remove async
* fix getAllHistograms
* properly grab id
Co-authored-by: Timmy Huang <tihuan@users.noreply.github.com>
Co-authored-by: Matt Weiden <538456+mweiden@users.noreply.github.com>
Co-authored-by: Severiano Badajoz <sbadajoz@chanzuckerberg.com>
* check if bin creation returned null before rendering charts
* refactor chart rendering into functions (#1577)
* little fixes from PR
* reintroduce fix to check for null values
* change getAllByClass to return element
* slice instead
* new stackedbar test
* feedback-1573-test (#1579)
* feedback-1573-test
* enable whole test set
* revert tests
Co-authored-by: Timmy Huang <tihuan@users.noreply.github.com>
* Decreased the scope of polygonToPath and distance variables. Added a
new variable for the lasso path color. Removed the color setting from
handleDragStart, since this is already set in handleDrag. Added a
closePathColor "#bb2f00" which is the complementary of lasso path color.
When a lasso can close, the color will change from blue to red.
* Fix some linter issues.
* Fixed some linter issues.
* Fixing some linter issues.
* Changed lasso open and closed to BLUE5 and GREEN5 respectively.
* add opacity change on selection state
* change overlay z-index to capture pointer
* https://www.youtube.com/watch?v=xrg-RgF5F8o
* render null if no coloring by continuous
* run lint on push + pr
* revert commit
wrong branch
* add case to removing labels
* add disabled state to centroid button
* fix centroid test button clicking order
* don't accidentally un-toggle first color
* run eslint --fix
* camelcase
* camelCase config part 1
* part 2
* part 3 - removing subscripts
* fix "class-methods-use-this"
* fix "class-methods-use-this"
* fix eslint ignores
* add eslint ignore for set state in update
* reformat comments to appease eslint
* add a11y features
* sort-comp fix
* a11y fix
* add ignore for set state in update
* add a11y htmlFor
* remove unused toast
* remove unnecessary bind
* add ignore for set state in update
* add rel="noopener noreferrer"
Using target="_blank" without rel="noopener noreferrer" is a security risk: see https://mathiasbynens.github.io/rel-noopener
* use arrow function to bind
* remove unused definitions/declarations
* prettier
* remove unused state
* add comments to empty catch blocks remove curly brackets
* escape '
* use eqeqeq
* switch from default export
* remove ignore log
* remove static
* fix import
* revert subscripting config
* clean-up
* remove unnecessary subscript
* fix new errors from master
* change category click handler to a class property
* fix camelcase changes that slipped by
* unused import
* Fix newly introduced ESLint errors from addGenes
* add sentry webpack plugin
* allow override of webpack config
* work around cheerio inability to parse jinga templates
* webpack can not minify jinja templates
* allow script injection to specify other attributes
* allow script injection to specify other attributes
* Adjustments to make plugin systems work
* Add sourcemaps for javascript in prod webpack
* Update .gitignore
* Fix spelling errors
Co-authored-by: Matt Weiden <538456+mweiden@users.noreply.github.com>
* Refactor CSS layout and react logic for layout
Fixes https://github.com/chanzuckerberg/cellxgene/issues/1022
* Menubar should wrap inside middle pane instead of overlapping left
sidebar when window is scrunched
* cellxgene should have a minimum width of 1240px
1. Replace absolute positioning and dimension calculation with css grid
2. Use flexbox for wrapping menubar buttons
* Middle pane (graph) can calculate its own size
* Removing components calculating their size/position relative to
eachother increases modularity, decreases use of global variables
* Improved some scrollbar behavior
* Removed responsive reducer, propagating window size to components
triggers unnecessary events and encourages breaking modularity; doing
this made some components state agnostic
Reference: https://css-tricks.com/snippets/css/complete-guide-grid/
* Reposition the continuous legend
* Small fixes
* Respond to feedback from @colinmegill
* Respond to feedback from @colinmegill
Add more documentation on the renderGraph method.
* add unsafe-inline directive to style-src
* debugging - turn on csp reporting
* revert reporting only csp
* do not inline JS and CSS in build
* enable HTTPs only when in production mode
* remove debug printf
* fix clean target
* revert force_https removal
Fixes https://github.com/chanzuckerberg/cellxgene/issues/1433
When selection is deselected the world is reset to the universe the
crossfilter is reset to that in the resetCache, including the embeddings
in the layout_XY dim. However, the embedding selection stays the same.
If the embedding selected is not the default, the embedding shown to the
user will be different than the embedding layout_XY in the crossfilter,
causing lasso selections to be made against the wrong embedding
coordinates
* Add user-defined category-label colors
Fixes https://github.com/chanzuckerberg/cellxgene/issues/1152
As described in https://github.com/chanzuckerberg/cellxgene/issues/1307
* Respond to feedback from @bkmartinjr in nodejs
* Respond to feedback from @bkmartinjr in python
* Add tests to the server module
* Autoformat python, run linter
* Make colors_get error handling specific
* Respond to feedback from @bkmartinjr
* Respond to feedback from @bkmartinjr
* Fix whitespace
* Fix python lint errrors
* Update documentation
* Add --disable-user-colors option to launch and cxgtool.py
* Fix python formatting
* Rename '--disable-user-colors' to '--disable-custom-colors'
* Cleanup the backend-dev convenience method
* Add the frontend_dev convenience method
frontend_dev is a soup-to-nuts convenience method for setting up the FE
development environment with node running a the client code on port 3000
with the a separate cellxgene package serving the API over port 5005 in
the background.
The script can be run from Finder.
* Update the developer scripts documentation
* Remove the 'test' make target in the client Makefile
Rationale:
* Given how long the smoke tests take to run, it is unlikely that
developers will want to run all tests together.
* It is unlikely that developers will have set up the backend server
properly for the tests to pass.
* Available commands should be safe-ish and not lend themselves to
confusing errors.
* You can still group tests by concatenating them in a make command, as
in `make unit-test smoke-test`.
* This target isn't used in any of our CI pipelines -- KISS.
* Some version of python3...
* Minor typos in docs
* Respond to feedback from @bkmartinjr
* Make adjustments so that DATASET path is predictable
* Simplify environment defaults a bit
* add lint-client and lint-diff-client targets
* add lint-diff and lint targets
* prettier
* add lint-diff call to lint task
* temp
* tweak lint-diff
* add lint for PRs and lint for master
* remove temp
* remove incorrect branches syntax, use github_ref
* pull all branches
* format
* proper target and comment
* create separate steps with conditionals
* fix indentation
* refactor lint->lint-server, introduce lint to lint all
* trade diff-index for diff, do check against base instead of master
* remove fetching all branches
* Revert "remove fetching all branches"
This reverts commit 26ce7a0f05.
* tweak comparison
* use local eslint
* add eslint dep install
* temp
* grab only base
* simplify fetch
* add pull_request type trigger
* specify pushes only to master
* change conditionals to be based on event name
* Revert "temp"
This reverts commit 3d59134cc0.
* "branch" => "branches"
* create separate installation step
* change command based on os