histomicsui 1.6.1.dev52__tar.gz → 1.6.1.dev56__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/.pre-commit-config.yaml +9 -9
  2. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/PKG-INFO +1 -1
  3. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/dialogs/metadataPlot.js +9 -0
  4. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/package.json +1 -0
  5. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/panels/MetadataPlot.js +98 -3
  6. histomicsui-1.6.1.dev56/histomicsui/web_client/stylesheets/dialogs/metadataPlot.styl +16 -0
  7. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/dialogs/metadataPlot.pug +8 -7
  8. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui.egg-info/PKG-INFO +1 -1
  9. histomicsui-1.6.1.dev52/histomicsui/web_client/stylesheets/dialogs/metadataPlot.styl +0 -7
  10. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/.circleci/config.yml +0 -0
  11. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/.editorconfig +0 -0
  12. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/.git-blame-ignore-revs +0 -0
  13. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/.gitignore +0 -0
  14. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/LICENSE +0 -0
  15. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/MANIFEST.in +0 -0
  16. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/NOTICE +0 -0
  17. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/README.rst +0 -0
  18. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/codecov.yml +0 -0
  19. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/docs/config_options.rst +0 -0
  20. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/docs/controls.rst +0 -0
  21. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/docs/images/difference.gif +0 -0
  22. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/docs/images/intersect.gif +0 -0
  23. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/docs/images/union.gif +0 -0
  24. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/docs/images/xor.gif +0 -0
  25. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/docs/slicer_cli_plugins.rst +0 -0
  26. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/__init__.py +0 -0
  27. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/constants.py +0 -0
  28. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/handlers.py +0 -0
  29. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/models/__init__.py +0 -0
  30. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/models/aperio.py +0 -0
  31. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/models/case.py +0 -0
  32. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/models/cohort.py +0 -0
  33. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/models/image.py +0 -0
  34. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/models/meta.py +0 -0
  35. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/models/pathology.py +0 -0
  36. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/models/slide.py +0 -0
  37. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/rest/__init__.py +0 -0
  38. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/rest/aperio.py +0 -0
  39. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/rest/hui_resource.py +0 -0
  40. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/rest/image_browse_resource.py +0 -0
  41. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/rest/system.py +0 -0
  42. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/rest/tcga.py +0 -0
  43. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/app.js +0 -0
  44. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/collections/StyleCollection.js +0 -0
  45. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/collections/UserCollection.js +0 -0
  46. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/collections/index.js +0 -0
  47. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/dialogs/confirmDialog.js +0 -0
  48. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/dialogs/editElement.js +0 -0
  49. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/dialogs/editRegionOfInterest.js +0 -0
  50. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/dialogs/editStyleGroups.js +0 -0
  51. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/dialogs/index.js +0 -0
  52. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/dialogs/openAnnotatedImage.js +0 -0
  53. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/dialogs/openImage.js +0 -0
  54. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/dialogs/saveAnnotation.js +0 -0
  55. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/events.js +0 -0
  56. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/index.js +0 -0
  57. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/main.js +0 -0
  58. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/models/StyleModel.js +0 -0
  59. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/models/index.js +0 -0
  60. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/panels/AnnotationSelector.js +0 -0
  61. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/panels/DrawWidget.js +0 -0
  62. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/panels/FrameSelectorWidget.js +0 -0
  63. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/panels/MetadataWidget.js +0 -0
  64. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/panels/OverviewWidget.js +0 -0
  65. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/panels/RegionSelector.js +0 -0
  66. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/panels/ZoomWidget.js +0 -0
  67. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/panels/index.js +0 -0
  68. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/router.js +0 -0
  69. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/routes.js +0 -0
  70. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/static/favicon.png +0 -0
  71. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/body/configView.styl +0 -0
  72. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/body/image.styl +0 -0
  73. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/dialogs/editStyleGroups.styl +0 -0
  74. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/dialogs/openAnnotatedImage.styl +0 -0
  75. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/dialogs/saveAnnotation.styl +0 -0
  76. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/layout/header.styl +0 -0
  77. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/layout/headerAnalyses.styl +0 -0
  78. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/layout/headerImage.styl +0 -0
  79. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/layout/layout.styl +0 -0
  80. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/panels/annotationSelector.styl +0 -0
  81. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/panels/drawWidget.styl +0 -0
  82. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/panels/frameSelectorWidget.styl +0 -0
  83. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/panels/metadataPlot.styl +0 -0
  84. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/panels/metadataWidget.styl +0 -0
  85. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/panels/overviewWidget.styl +0 -0
  86. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/panels/regionSelector.styl +0 -0
  87. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/panels/zoomWidget.styl +0 -0
  88. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/popover/annotationContextMenu.styl +0 -0
  89. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/popover/annotationPopover.styl +0 -0
  90. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/views/itemList.styl +0 -0
  91. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/stylesheets/views/searchResultsView.styl +0 -0
  92. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/body/configView.pug +0 -0
  93. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/body/image.pug +0 -0
  94. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/dialogs/annotatedImageList.pug +0 -0
  95. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/dialogs/confirmDialog.pug +0 -0
  96. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/dialogs/editElement.pug +0 -0
  97. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/dialogs/editRegionOfInterest.pug +0 -0
  98. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/dialogs/editStyleGroups.pug +0 -0
  99. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/dialogs/openAnnotatedImage.pug +0 -0
  100. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/dialogs/openImage.pug +0 -0
  101. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/dialogs/saveAnnotation.pug +0 -0
  102. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/layout/header.pug +0 -0
  103. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/layout/headerAnalyses.pug +0 -0
  104. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/layout/headerImage.pug +0 -0
  105. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/layout/headerUser.pug +0 -0
  106. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/layout/layout.pug +0 -0
  107. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/panels/annotationSelector.pug +0 -0
  108. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/panels/drawWidget.pug +0 -0
  109. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/panels/drawWidgetElement.pug +0 -0
  110. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/panels/frameSelectorWidget.pug +0 -0
  111. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/panels/metadataPlot.pug +0 -0
  112. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/panels/metadataWidgetPanel.pug +0 -0
  113. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/panels/overviewWidget.pug +0 -0
  114. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/panels/panel.pug +0 -0
  115. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/panels/regionSelector.pug +0 -0
  116. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/panels/zoomWidget.pug +0 -0
  117. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/popover/annotationContextMenu.pug +0 -0
  118. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/popover/annotationPopover.pug +0 -0
  119. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/popover/annotationPopoverMetadata.pug +0 -0
  120. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/templates/popover/pixelmapContextMenu.pug +0 -0
  121. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/HierarchyWidget.js +0 -0
  122. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/JobDetailsWidget.js +0 -0
  123. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/View.js +0 -0
  124. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/body/ConfigView.js +0 -0
  125. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/body/ImageView.js +0 -0
  126. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/body/index.js +0 -0
  127. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/index.js +0 -0
  128. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/itemList.js +0 -0
  129. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/itemPage.js +0 -0
  130. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/layout/HeaderAnalysesView.js +0 -0
  131. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/layout/HeaderImageView.js +0 -0
  132. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/layout/HeaderUserView.js +0 -0
  133. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/layout/HeaderView.js +0 -0
  134. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/layout/LoginView.js +0 -0
  135. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/layout/index.js +0 -0
  136. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/popover/AnnotationContextMenu.js +0 -0
  137. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/popover/AnnotationPopover.js +0 -0
  138. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/popover/PixelmapContextMenu.js +0 -0
  139. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/popover/index.js +0 -0
  140. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/searchResultsView.js +0 -0
  141. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/views/utils.js +0 -0
  142. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/vue/components/ColorPickerInput.vue +0 -0
  143. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/vue/components/EditHeatmapOrGridData.vue +0 -0
  144. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/vue/components/EditHeatmapOrGridDataContainer.vue +0 -0
  145. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/web_client/webpack.helper.js +0 -0
  146. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui/webroot.mako +0 -0
  147. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui.egg-info/SOURCES.txt +0 -0
  148. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui.egg-info/dependency_links.txt +0 -0
  149. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui.egg-info/entry_points.txt +0 -0
  150. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui.egg-info/not-zip-safe +0 -0
  151. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui.egg-info/requires.txt +0 -0
  152. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/histomicsui.egg-info/top_level.txt +0 -0
  153. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/pyproject.toml +0 -0
  154. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/requirements-dev.txt +0 -0
  155. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/ruff.toml +0 -0
  156. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/setup.cfg +0 -0
  157. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/setup.py +0 -0
  158. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/__init__.py +0 -0
  159. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/datastore.py +0 -0
  160. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/girder_utilities.py +0 -0
  161. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/test_files/.histomicsui_config.yaml +0 -0
  162. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/test_files/sample.anot +0 -0
  163. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/test_files/sample.meta +0 -0
  164. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/test_files/sample_girder_id.anot +0 -0
  165. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/test_files/test_analysis_detection.xml +0 -0
  166. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/test_files/test_analysis_features.xml +0 -0
  167. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/test_handlers.py +0 -0
  168. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/test_hui_rest.py +0 -0
  169. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/test_image_browse_endpoints.py +0 -0
  170. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/test_load.py +0 -0
  171. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/test_tcga.py +0 -0
  172. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/test_web_client.py +0 -0
  173. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/web_client_specs/.eslintrc +0 -0
  174. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/web_client_specs/analysisSpec.js +0 -0
  175. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/web_client_specs/annotationSpec.js +0 -0
  176. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/web_client_specs/girderUISpec.js +0 -0
  177. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/web_client_specs/huiSpec.js +0 -0
  178. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/web_client_specs/huiTest.js +0 -0
  179. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/web_client_specs/itemSpec.js +0 -0
  180. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/web_client_specs/metadataPanelSpec.js +0 -0
  181. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/web_client_specs/metadataPlotSpec.js +0 -0
  182. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/web_client_specs/overviewPanelSpec.js +0 -0
  183. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/web_client_specs/panelLayoutSpec.js +0 -0
  184. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tests/web_client_specs/pixelmapCategorySpec.js +0 -0
  185. {histomicsui-1.6.1.dev52 → histomicsui-1.6.1.dev56}/tox.ini +0 -0
@@ -53,17 +53,17 @@ repos:
53
53
  rev: v0.0.18
54
54
  hooks:
55
55
  - id: circleci-config-validate
56
- - repo: https://github.com/ThisIsManta/stylus-supremacy
57
- rev: v4.0.0
58
- hooks:
59
- - id: stylus-supremacy
60
- language_version: "22.10.0"
61
- args:
62
- - '--options'
63
- - './histomicsui/web_client/package.json'
56
+ # - repo: https://github.com/ThisIsManta/stylus-supremacy
57
+ # rev: v4.0.0
58
+ # hooks:
59
+ # - id: stylus-supremacy
60
+ # language_version: "22.12.0"
61
+ # args:
62
+ # - '--options'
63
+ # - './histomicsui/web_client/package.json'
64
64
  - repo: https://github.com/astral-sh/ruff-pre-commit
65
65
  # Ruff version.
66
- rev: v0.7.0
66
+ rev: v0.8.3
67
67
  hooks:
68
68
  - id: ruff
69
69
  args: [--fix, --exit-non-zero-on-fix]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: histomicsui
3
- Version: 1.6.1.dev52
3
+ Version: 1.6.1.dev56
4
4
  Summary: Organize, visualize, and analyze histology images.
5
5
  Home-page: https://github.com/DigitalSlideArchive/histomicsui
6
6
  Author: Kitware, Inc.
@@ -1,4 +1,6 @@
1
1
  import $ from 'jquery';
2
+ import 'select2';
3
+ import 'select2/dist/css/select2.css';
2
4
 
3
5
  import View from '@girder/core/views/View';
4
6
 
@@ -23,6 +25,13 @@ const MetadataPlotDialog = View.extend({
23
25
  plotOptions: this.plotOptions
24
26
  })
25
27
  ).girderModal(this);
28
+ // this adds search functionality to the select boxes, but not to the
29
+ // multiple select, since the select2 tool breaks some traditional
30
+ // aspects of multiple select
31
+ this.$('.h-plot-select').not('[multiple]').select2({
32
+ dropdownParent: $('.modal-body'),
33
+ width: '100%'
34
+ });
26
35
 
27
36
  return this;
28
37
  },
@@ -39,6 +39,7 @@
39
39
  "copy-webpack-plugin": "^4.5.2",
40
40
  "petite-vue": "^0.4.1",
41
41
  "plotly.js": "2.34.0",
42
+ "select2": "4.1.0-rc.0",
42
43
  "sinon": "^2.1.0",
43
44
  "tinycolor2": "~1.4.1",
44
45
  "url-search-params-polyfill": "^8.1.1",
@@ -15,6 +15,21 @@ import '../stylesheets/panels/metadataPlot.styl';
15
15
 
16
16
  const sessionId = uuidv4();
17
17
 
18
+ function mean(arr) {
19
+ if (!arr.length) {
20
+ return 0;
21
+ }
22
+ return arr.reduce((a, b) => a + b) / arr.length;
23
+ }
24
+
25
+ function stddev(arr) {
26
+ if (arr.length <= 1) {
27
+ return 0;
28
+ }
29
+ const m = mean(arr);
30
+ return Math.sqrt(arr.map((x) => Math.pow(x - m, 2)).reduce((a, b) => a + b) / arr.length);
31
+ }
32
+
18
33
  var MetadataPlot = Panel.extend({
19
34
  events: _.extend(Panel.prototype.events, {
20
35
  'click .g-widget-metadata-plot-settings': function (event) {
@@ -457,7 +472,7 @@ var MetadataPlot = Panel.extend({
457
472
  colorScale = window.d3.scale.linear().domain(viridis.map((_, i) => i / (viridis.length - 1) * ((plotData.series.c.max - plotData.series.c.min) || 0) + plotData.series.c.min)).range(viridis);
458
473
  }
459
474
  const plotlyData = {
460
- x: plotData.data.map((d) => d[plotData.series.x.index]),
475
+ x: plotData.series.x ? plotData.data.map((d) => d[plotData.series.x.index]) : 0,
461
476
  y: plotData.data.map((d) => d[plotData.series.y.index]),
462
477
  hovertext: plotData.data.map((d) => this._hoverText(d, plotData)),
463
478
  hoverinfo: 'text',
@@ -518,6 +533,86 @@ var MetadataPlot = Panel.extend({
518
533
  }];
519
534
  }
520
535
  }
536
+ if (plotData.format === 'distrib') {
537
+ const maxs = plotData.series.s && plotData.series.s.distinct ? plotData.series.s.distinctcount : 1;
538
+ const pv = {
539
+ x: [],
540
+ y: [],
541
+ c: [],
542
+ r: [],
543
+ xe: [],
544
+ ye: [],
545
+ dd: Array(maxs),
546
+ xd: Array.from(Array(maxs), () => []),
547
+ yd: Array.from(Array(maxs), () => []),
548
+ cd: Array.from(Array(maxs), () => []),
549
+ rd: Array.from(Array(maxs), () => [])
550
+ };
551
+ plotData.data.forEach((d) => {
552
+ const s = plotData.series.s && plotData.series.s.distinct ? plotData.series.s.distinct.indexOf(d[plotData.series.s.index]) : 0;
553
+ if (pv.dd[s] === undefined) {
554
+ pv.dd[s] = d;
555
+ }
556
+ if (plotData.series.x) {
557
+ pv.xd[s].push(d[plotData.series.x.index]);
558
+ }
559
+ pv.yd[s].push(d[plotData.series.y.index]);
560
+ if (plotData.series.c) {
561
+ pv.cd[s].push(d[plotData.series.c.index]);
562
+ }
563
+ if (plotData.series.r) {
564
+ pv.rd[s].push(d[plotData.series.r.index]);
565
+ }
566
+ });
567
+ for (let s = 0; s < maxs; s += 1) {
568
+ pv.x[s] = mean(pv.xd[s]);
569
+ pv.xe[s] = stddev(pv.xd[s]);
570
+ pv.y[s] = mean(pv.yd[s]);
571
+ pv.ye[s] = stddev(pv.yd[s]);
572
+ pv.r[s] = plotData.series.r && plotData.series.r !== 'number' && pv.rd[s].length ? pv.rd[s][0] : mean(pv.rd[s]);
573
+ pv.c[s] = plotData.series.c && plotData.series.c !== 'number' && pv.cd[s].length ? pv.cd[s][0] : mean(pv.cd[s]);
574
+ }
575
+ plotlyData.x = [...Array(maxs).keys()];
576
+ if (plotData.series.x) {
577
+ plotlyData.error_x = {
578
+ type: 'data',
579
+ array: pv.xe.map((v) => v / Math.max.apply(Math, pv.xe)),
580
+ color: '#0000C0',
581
+ // width: 0,
582
+ visible: true
583
+ };
584
+ }
585
+ plotlyData.y = pv.y;
586
+ plotlyData.mode = 'lines+markers';
587
+ plotlyData.error_y = {
588
+ type: 'data',
589
+ array: pv.ye,
590
+ color: '#C00000',
591
+ // width: 0,
592
+ visible: true
593
+ };
594
+ plotlyData.hovertext = pv.dd.map((d) => this._hoverText(d, plotData));
595
+ plotlyData.marker.symbol = 0;
596
+ if (plotData.series.r) {
597
+ plotlyData.marker.size = plotData.series.r && (plotData.series.r.type === 'number' || plotData.series.r.distinctcount)
598
+ ? (
599
+ plotData.series.r.type === 'number'
600
+ ? pv.r.map((r) => (r - plotData.series.r.min) / (plotData.series.r.max - plotData.series.r.min) * 10 + 5)
601
+ : pv.dd.map((d) => plotData.series.r.distinct.indexOf(d[plotData.series.r.index]) / plotData.series.r.distinctcount * 10 + 5)
602
+ )
603
+ : 10;
604
+ }
605
+ if (plotData.series.c) {
606
+ plotlyData.marker.color = plotData.series.c
607
+ ? (
608
+ !plotData.series.c.distinctcount
609
+ ? pv.c.map((c) => colorScale(c))
610
+ : pv.dd.map((d) => colorBrewerPaired12[plotData.series.c.distinct.indexOf(d[plotData.series.c.index])] || '#000000')
611
+ )
612
+ : '#000000';
613
+ }
614
+ plotlyData.type = 'scatter';
615
+ }
521
616
  return [plotlyData];
522
617
  },
523
618
 
@@ -548,7 +643,7 @@ var MetadataPlot = Panel.extend({
548
643
  this.lastPlotData = plotData;
549
644
  this.$el.html(metadataPlotTemplate({}));
550
645
  const elem = this.$el.find('.h-metadata-plot-area');
551
- if (!plotData || (plotData.format !== 'violin' && !plotData.series.x) || !plotData.series.y || plotData.data.length < 2) {
646
+ if (!plotData || (plotData.format !== 'violin' && plotData.format !== 'distrib' && !plotData.series.x) || !plotData.series.y || plotData.data.length < 2) {
552
647
  elem.html('');
553
648
  return;
554
649
  }
@@ -560,7 +655,7 @@ var MetadataPlot = Panel.extend({
560
655
  if (maximized) {
561
656
  plotOptions.margin.l += 20;
562
657
  plotOptions.margin.b += 40;
563
- plotOptions.xaxis = {title: {text: plotData.format !== 'violin' ? `${plotData.series.x.title}` : `${plotData.series.s ? plotData.series.s.title : ''}`}};
658
+ plotOptions.xaxis = {title: {text: plotData.format !== 'violin' && plotData.format !== 'distrib' ? `${plotData.series.x.title}` : `${plotData.series.s ? plotData.series.s.title : ''}`}};
564
659
  plotOptions.yaxis = {title: {text: `${plotData.series.y.title}`}};
565
660
  }
566
661
  this._plotlyNode = elem;
@@ -0,0 +1,16 @@
1
+ .modal-body
2
+ div.h-plot-resizable
3
+ resize vertical
4
+ overflow auto
5
+
6
+ select
7
+ height calc(100% - 24px)
8
+
9
+ .select2-container
10
+ display block
11
+ font-size 14px
12
+ line-height 1.42857143
13
+ color #222
14
+
15
+ .select2-results__option
16
+ padding 0 6px
@@ -11,18 +11,19 @@
11
11
  -
12
12
  var plotFormats = [
13
13
  {key: 'scatter', label: 'Scatter'},
14
- {key: 'violin', label: 'Violin'}]
14
+ {key: 'violin', label: 'Violin'},
15
+ {key: 'distrib', label: 'Distributions'}]
15
16
  select#h-plot-format.form-control
16
17
  each opt in plotFormats
17
18
  option(value=opt.key, selected=plotConfig.format === opt.key) #{opt.label}
18
19
  -
19
20
  var seriesList = [
20
21
  {key: 'x', label: 'x-axis', number: true, comment: 'Not used in violin plots'},
21
- {key: 'y', label: 'y-axis', number: true},
22
+ {key: 'y', label: 'y-axis', number: true, noNone: true},
22
23
  {key: 'r', label: 'Radius'},
23
24
  {key: 'c', label: 'Color'},
24
- {key: 's', label: 'Symbol', string: true, comment: 'Grouping for violin plots'},
25
- {key: 'u', label: 'Dimension Reducation', number: true, multiple: true}]
25
+ {key: 's', label: 'Symbol', string: true, comment: 'Grouping for violin and distribution plots'},
26
+ {key: 'u', label: 'Dimension Reduction', number: true, multiple: true}]
26
27
  -
27
28
  var numNumbers = 0;
28
29
  var numIndex = [];
@@ -32,13 +33,13 @@
32
33
  label(for='h-plot-series-' + series.key) #{series.label}
33
34
  if series.comment
34
35
  p.g-hui-description #{series.comment}
35
- select.form-control(id='h-plot-series-' + series.key, multiple=series.multiple)
36
- if !series.number
36
+ select.h-plot-select.form-control(id='h-plot-series-' + series.key, multiple=series.multiple)
37
+ if !series.noNone
37
38
  option(value='_none_', selected=plotConfig[series.key] === undefined) None
38
39
  each opt, optidx in plotOptions
39
40
  if (!series.number || opt.type === 'number') && (!series.string || opt.type === 'string' || opt.distinct)
40
41
  - var selected = plotConfig[series.key] === opt.key
41
- - if (plotConfig[series.key] === undefined && series.number === true && numIndex[optidx] === seriesidx) { selected = true; }
42
+ - if (plotConfig[series.key] === undefined && series.number === true && numIndex[optidx] === seriesidx && (!plotConfig.format || plotConfig.format === 'scatter')) { selected = true; }
42
43
  - if (series.multiple) { selected = plotConfig[series.key] ? plotConfig[series.key].includes(opt.key) : false; }
43
44
  option(value=opt.key, selected=selected) #{opt.title}#{opt.count > 1 && opt.distinctcount !== 1 ? ' *' : ''}
44
45
  .form-group
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: histomicsui
3
- Version: 1.6.1.dev52
3
+ Version: 1.6.1.dev56
4
4
  Summary: Organize, visualize, and analyze histology images.
5
5
  Home-page: https://github.com/DigitalSlideArchive/histomicsui
6
6
  Author: Kitware, Inc.
@@ -1,7 +0,0 @@
1
- .modal-body
2
- div.h-plot-resizable
3
- resize vertical
4
- overflow auto
5
-
6
- select
7
- height calc(100% - 24px)