* refactor reducer to no longer support hover state and hold many labels
* refactor to generate centroidCoordinates for all values of a category
* create hash for function and memoize export
* create button to display all labels for a category
* clear state
* create label for each thing
* calculate on each value
* change to in place modification of map
* switch to for loop with iterator instead of forEach
* use map from centroidLabel instead of creating copy
* adapt for map
* utilize tarrays
* begin documentation
* disable centroids if in zoom mode
* clean up
* persist uncalc coordinates
* document
* clean up and document
* cleanup and document
* fix
* fix undefined labels and document changes
* fix first element skip
* fix conditional recalc
* rename centroidLabel -> centroidLabels
* break out dilation on hover to new reducer
* numerous styling changes for readability
* change centroid icon
* remove colorAccessor from parameters
* recalc centroids on world change
* make label toggle undoable
* remove unused import
* highlight labels on hover
* remove special characters from svg id
* lighten backdrop
* only generate new centroids if they pre-exist
* fix issue with spaces in catagorical value name
* add label buttons to menubar
* change reducer to use colorAccessor and have single toggle
* fix check to see if svg should be rendered
* move svg overlays onto a single svg layer
* dilate on label hover
* remove logs
* allow centroid to update along side regl renders
* allow actions to pass through svg if in zoom mode
* remove artifact from circle
* remove comment
* remove disabling of centroid button
* fix conditional map to screen
* make styling label conditions stricter
* prettier
* refactor onto master
* refactor computePointFlags() to use pointDilation store
* notify when viewport changes
* move svg attributes out of lasso setup and prevent rerenders/writes
* begin playing with transform matrix
* first solution for camera interaction
* create transform using nested groups
* semi-working method using nested groups with transforms
* inversely scale text
* properly do final transform
* cleanup dead / test code
* reinstate original functionality
* breakout centroid labels labels into separate component
* default toggle on for testing
* separate lasso and centroid layers
* remove unnecessary attributes, working hover
* dilation on label hover
* fix dilation on scatterplot
* add dilation on label hover
* break overlay into separate component
* make overlay agnostic to children
* move label mouse actions to centroidlabels component, add overlay state
* remove lasso on switch to camera
* disallow user selection
* fix reducer
* fix subset with continuous color error
* reset labels on color by continuous
* revert centroids on by default
* refactor for nested restructuring
* remove update checking
* remove unused method
* readd deleted hover delay
* remove old centroid setup
* remove centroid from undoable
* cleanup dead code
* remove dead code
* rollback unnecessary changes
* begin adding annotation functionality
* add annotation functionality
* add reset and undo functionality
* change centroids on layout change
* don't create label for unassigned
* add comment pointing out POI for performance
* touch up matrix transform comment
* add comment explaining coordinate space and children's assumed space
* remove dead code
* switch to pure component
* connect centroidLabels to redux
* clean up camera check and null result
* tool tip change
* rename centroid toggle and the like
* fix the misalignment of buttons, also make blueprint use consistent
* fix comment spelling mistakes
* introduce variable for cleaner logic expressions and state assignment
* alter tooltip text to back color by interaction
* remove manual iterator manipulation for forEach()
* remove debounce
* nit fix
* tooltip wording fix
* lint
* rename config param label-file
* annotations rework - CLI params, file naming and backups
* lint
* improve cli option error checks
* enable session cookies
* enable session cookies
* add session id
* name annotations file in multi-dataset and multi-user safe manner
* pass data user hash to front-end
* add annotation collection name support to front-end
* add constant for annotation data collection name
* parameterize annotation collection name; make it sticky in the session
* clarify comments
* hard wire a temporary data collection name for testing
* prettier
* test comment
* package command
* set annotations filename dialog
* name and hash are visible
* wire up data collection capture
* anno error states
* label validation should not treat empty string as error
* disable Submit if no label or category entered
* edit category name error states
* flex start
* pr cleanup
* label name validation fixes
* PR comment responses
* Create right sidebar files, move histos over
* restructure continuous legend + all padding
* right sidebar file
* proper graph positioning and resize
* new lasso values since right sidebar
* fix autosave position
* cache common results to reduce jank
* add util function in support of annotation labelling
* enable/disable annotation edit menus per issue 972; improve formatting
* PR review requests
* initial cut at backed mode
* make flask multithreading conditional on debug flag
* update X access to support backed mode
* lint
* improve help message for backed mode
* fix tests
* add MatrixProxy to normalize supported matrix types
* add FAQ entry for --backed
* remove use of matrix.T
* clean up
* add ability to disable diffexp from CLI; add hueristic to detect likely slow diffexp calculation, and warn user
* fix tests
* do not print diffexp speed warning if diffexp is disabled
* tweak wording of diffexp speed messages
* add FAQ entry on --disable-diffexp
* revise heuristic for warning about slow diffexp
* use quick tooltip delay on diffexp button
* freeze objects
* component rendering perf work
* use PureComponent where safe
* remove obsolete WorldUtil code
* make brushable histogram a pure component
* tweak overflow and add truncation
* remove log
* alter char limit to evenly space around occupancy
* use global hover delay
* create constants for truncation lengths and fix truncation on self color
* create globals for short and long sidebar value length
* fix alignment
* create quick delay global
* add about arg
* add simple url validator
* attach about link to config api
* add links to configDefaults
* add conditional link in top left and menu item
* whitespace
* change to lower case
* move --about arg before click.command()
if this fixes it I have no idea why
* change link>URL
* be more descriptive about URL
* Make error more explicit
* refactor attach_data to accept about
* format
* change icon
* add trailing parenthesis
* whitespace
* truncate middle of long title names
* remove width
* In the case of VERY long titles, hide overflow
* align bottom of title with cellxgene
* add character length global and shrink length
* fix add gene button
* make bulk add case insensitive
* increase performance, incl memoizing
* change which lists are memoized
* improve hash to use ID from dataframe column
* Add requested fixes, and actually make bulk add work
* add default result to empty gene query
* replace with unicode ellipses
* change empty message
* fix add gene button
* make bulk add case insensitive
* increase performance, incl memoizing
* change which lists are memoized
* improve hash to use ID from dataframe column
* Add requested fixes, and actually make bulk add work