synapse-react-client 4.0.46 → 4.0.47

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 (559) hide show
  1. package/dist/SWC.index.js +1 -1
  2. package/dist/aridhia-queries/useSubmitAridhiaDar.js +2 -2
  3. package/dist/aridhia-queries/useSubmitAridhiaDar.js.map +1 -1
  4. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js +1 -1
  5. package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
  6. package/dist/components/AccountLevelBadges/AccountLevelBadges.js +1 -1
  7. package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
  8. package/dist/components/AclEditor/AclEditor.test-utils.js +3 -5
  9. package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
  10. package/dist/components/Aridhia/AridhiaAccessStatus.d.ts.map +1 -1
  11. package/dist/components/Aridhia/AridhiaAccessStatus.js +43 -30
  12. package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
  13. package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts +6 -2
  14. package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts.map +1 -1
  15. package/dist/components/Aridhia/AridhiaDarStatusPopover.js +101 -31
  16. package/dist/components/Aridhia/AridhiaDarStatusPopover.js.map +1 -1
  17. package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts +11 -9
  18. package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts.map +1 -1
  19. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js +24 -13
  20. package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
  21. package/dist/components/Authentication/LastLoginInfo.js +2 -2
  22. package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
  23. package/dist/components/Authentication/RecoveryCodeForm.js +1 -1
  24. package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
  25. package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
  26. package/dist/components/Authentication/TOTPForm.d.ts.map +1 -1
  27. package/dist/components/Authentication/TOTPForm.js +3 -3
  28. package/dist/components/Authentication/TOTPForm.js.map +1 -1
  29. package/dist/components/Authentication/index.d.ts +6 -6
  30. package/dist/components/Authentication/index.d.ts.map +1 -1
  31. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js +1 -1
  32. package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
  33. package/dist/components/CardContainer/CardContainer.js +7 -7
  34. package/dist/components/CardContainer/CardContainer.js.map +1 -1
  35. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js +1 -1
  36. package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
  37. package/dist/components/ChallengeSubmission/ChallengeSubmission.d.ts.map +1 -1
  38. package/dist/components/ChallengeSubmission/ChallengeSubmission.js +1 -1
  39. package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
  40. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js +1 -1
  41. package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
  42. package/dist/components/CitationPopover/CitationPopoverUtils.js +2 -2
  43. package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
  44. package/dist/components/CohortBuilder/CohortBuilder.css +1 -0
  45. package/dist/components/CohortBuilder/CohortBuilder.d.ts +35 -0
  46. package/dist/components/CohortBuilder/CohortBuilder.d.ts.map +1 -0
  47. package/dist/components/CohortBuilder/CohortBuilder.js +108 -0
  48. package/dist/components/CohortBuilder/CohortBuilder.js.map +1 -0
  49. package/dist/components/CohortBuilder/CohortBuilder.module.js +10 -0
  50. package/dist/components/CohortBuilder/CohortBuilder.module.js.map +1 -0
  51. package/dist/components/CohortBuilder/CohortBuilder.module.scss +20 -0
  52. package/dist/components/CohortBuilder/CohortFilesPanel.d.ts +16 -0
  53. package/dist/components/CohortBuilder/CohortFilesPanel.d.ts.map +1 -0
  54. package/dist/components/CohortBuilder/CohortFilesPanel.js +124 -0
  55. package/dist/components/CohortBuilder/CohortFilesPanel.js.map +1 -0
  56. package/dist/components/CohortBuilder/cohortHandOff.d.ts +25 -0
  57. package/dist/components/CohortBuilder/cohortHandOff.d.ts.map +1 -0
  58. package/dist/components/CohortBuilder/cohortHandOff.js +26 -0
  59. package/dist/components/CohortBuilder/cohortHandOff.js.map +1 -0
  60. package/dist/components/ColumnFilter/ColumnFilter.d.ts.map +1 -1
  61. package/dist/components/ColumnFilter/ColumnFilter.js +14 -13
  62. package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
  63. package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -1
  64. package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
  65. package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts +11 -2
  66. package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
  67. package/dist/components/DataGrid/columns/AutocompleteColumn.js +115 -109
  68. package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
  69. package/dist/components/DataGrid/columns/NumberColumn.js +1 -1
  70. package/dist/components/DataGrid/columns/NumberColumn.js.map +1 -1
  71. package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts +20 -0
  72. package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts.map +1 -0
  73. package/dist/components/DataGrid/columns/NumberOrEnumColumn.js +18 -0
  74. package/dist/components/DataGrid/columns/NumberOrEnumColumn.js.map +1 -0
  75. package/dist/components/DataGrid/components/contextMenu.js +3 -3
  76. package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
  77. package/dist/components/DataGrid/hooks/useGridUndoRedo.d.ts.map +1 -1
  78. package/dist/components/DataGrid/hooks/useGridUndoRedo.js +9 -7
  79. package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
  80. package/dist/components/DataGrid/hooks/useStack.d.ts +1 -1
  81. package/dist/components/DataGrid/hooks/useStack.js +2 -2
  82. package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
  83. package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
  84. package/dist/components/DataGrid/utils/columnFactory.js +47 -42
  85. package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
  86. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js +7 -7
  87. package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
  88. package/dist/components/DataGrid/utils/json-rx/JsonRx.js +2 -2
  89. package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
  90. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +1 -1
  91. package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
  92. package/dist/components/DownloadCart/MeetAccessRequirementCard.js +1 -1
  93. package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
  94. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js +5 -5
  95. package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
  96. package/dist/components/EntityFinder/details/view/DetailsView.d.ts.map +1 -1
  97. package/dist/components/EntityFinder/details/view/DetailsView.js +4 -4
  98. package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
  99. package/dist/components/EntityHeaderTable/EntityHeaderTable.js +4 -4
  100. package/dist/components/EntityHeaderTable/Filter.d.ts.map +1 -1
  101. package/dist/components/EntityHeaderTable/Filter.js +1 -1
  102. package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
  103. package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
  104. package/dist/components/FeaturedDataTabs/FacetPlotsCard.d.ts.map +1 -1
  105. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +80 -84
  106. package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
  107. package/dist/components/FormTemplateEditor/FormStructurePanel.js +7 -7
  108. package/dist/components/FormTemplateEditor/StepCard.js +9 -9
  109. package/dist/components/FormTemplateEditor/schemaFieldUtils.js +2 -2
  110. package/dist/components/FormTemplateEditor/schemaFieldUtils.js.map +1 -1
  111. package/dist/components/FullTextSearch/FullTextSearch.js +8 -8
  112. package/dist/components/GenericCard/CardUtils.js.map +1 -1
  113. package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js +1 -1
  114. package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js.map +1 -1
  115. package/dist/components/GenericCard/DuoTermTags/duoTerms.js +1 -1
  116. package/dist/components/GenericCard/DuoTermTags/duoTerms.js.map +1 -1
  117. package/dist/components/GenericCard/TableRowGenericCard.js +37 -37
  118. package/dist/components/GoalsV3/GoalsV3.js +1 -1
  119. package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
  120. package/dist/components/HexGrid/HexGrid.d.ts +3 -1
  121. package/dist/components/HexGrid/HexGrid.d.ts.map +1 -1
  122. package/dist/components/HexGrid/HexGrid.js +14 -13
  123. package/dist/components/HexGrid/HexGrid.js.map +1 -1
  124. package/dist/components/IconSvg/index.d.ts +1 -1
  125. package/dist/components/IconSvg/index.d.ts.map +1 -1
  126. package/dist/components/IconSvg/index.js.map +1 -1
  127. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.d.ts.map +1 -1
  128. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js +3 -3
  129. package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
  130. package/dist/components/Markdown/MarkdownEditor.js +1 -1
  131. package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
  132. package/dist/components/Markdown/widget/index.d.ts +1 -1
  133. package/dist/components/Markdown/widget/index.d.ts.map +1 -1
  134. package/dist/components/ModalDownload/ModalDownload.d.ts.map +1 -1
  135. package/dist/components/ModalDownload/ModalDownload.js +2 -1
  136. package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
  137. package/dist/components/Plot/BarPlot.js +1 -1
  138. package/dist/components/Plot/BarPlot.js.map +1 -1
  139. package/dist/components/Plot/PlotPanelHeader.d.ts +3 -2
  140. package/dist/components/Plot/PlotPanelHeader.d.ts.map +1 -1
  141. package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
  142. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js +1 -1
  143. package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
  144. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js +1 -1
  145. package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
  146. package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
  147. package/dist/components/ProvenanceGraph/ProvenanceGraph.js +3 -3
  148. package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
  149. package/dist/components/QueryBuilder/FilterConditionRow.d.ts.map +1 -1
  150. package/dist/components/QueryBuilder/FilterConditionRow.js +28 -27
  151. package/dist/components/QueryBuilder/FilterConditionRow.js.map +1 -1
  152. package/dist/components/QueryBuilder/FilterGroupNode.d.ts.map +1 -1
  153. package/dist/components/QueryBuilder/FilterGroupNode.js +91 -75
  154. package/dist/components/QueryBuilder/FilterGroupNode.js.map +1 -1
  155. package/dist/components/QueryBuilder/QueryBuilderControls.css +1 -1
  156. package/dist/components/QueryBuilder/QueryBuilderControls.d.ts.map +1 -1
  157. package/dist/components/QueryBuilder/QueryBuilderControls.js +91 -79
  158. package/dist/components/QueryBuilder/QueryBuilderControls.js.map +1 -1
  159. package/dist/components/QueryBuilder/QueryBuilderControls.module.js +11 -11
  160. package/dist/components/QueryBuilder/QueryBuilderControls.module.js.map +1 -1
  161. package/dist/components/QueryBuilder/QueryBuilderControls.module.scss +2 -0
  162. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts +2 -0
  163. package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts.map +1 -1
  164. package/dist/components/QueryBuilder/QueryBuilderInternalContext.js.map +1 -1
  165. package/dist/components/QueryBuilder/queryBuilderLimits.d.ts +18 -0
  166. package/dist/components/QueryBuilder/queryBuilderLimits.d.ts.map +1 -0
  167. package/dist/components/QueryBuilder/queryBuilderLimits.js +38 -0
  168. package/dist/components/QueryBuilder/queryBuilderLimits.js.map +1 -0
  169. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts +0 -8
  170. package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts.map +1 -1
  171. package/dist/components/QueryBuilder/queryBuilderMetadata.js +6 -9
  172. package/dist/components/QueryBuilder/queryBuilderMetadata.js.map +1 -1
  173. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts +5 -4
  174. package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts.map +1 -1
  175. package/dist/components/QueryBuilder/queryBuilderTranslation.js +58 -33
  176. package/dist/components/QueryBuilder/queryBuilderTranslation.js.map +1 -1
  177. package/dist/components/QueryBuilder/useQBCombinedSql.d.ts.map +1 -1
  178. package/dist/components/QueryBuilder/useQBCombinedSql.js +4 -4
  179. package/dist/components/QueryBuilder/useQBCombinedSql.js.map +1 -1
  180. package/dist/components/QueryBuilder/useQBValueDisplayName.d.ts.map +1 -1
  181. package/dist/components/QueryBuilder/useQBValueDisplayName.js +5 -5
  182. package/dist/components/QueryBuilder/useQBValueDisplayName.js.map +1 -1
  183. package/dist/components/QuerySortSelector.js +5 -5
  184. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +21 -21
  185. package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
  186. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts +20 -0
  187. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts.map +1 -0
  188. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js +50 -0
  189. package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js.map +1 -0
  190. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts +5 -3
  191. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts.map +1 -1
  192. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js +7 -3
  193. package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
  194. package/dist/components/QueryWrapper/downloadListFiles.d.ts +25 -0
  195. package/dist/components/QueryWrapper/downloadListFiles.d.ts.map +1 -0
  196. package/dist/components/QueryWrapper/downloadListFiles.js +39 -0
  197. package/dist/components/QueryWrapper/downloadListFiles.js.map +1 -0
  198. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts +16 -0
  199. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts.map +1 -0
  200. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js +50 -0
  201. package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js.map +1 -0
  202. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts +4 -1
  203. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts.map +1 -1
  204. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js +15 -28
  205. package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
  206. package/dist/components/QueryWrapper/useOnQueryDataChange.d.ts.map +1 -1
  207. package/dist/components/QueryWrapper/useOnQueryDataChange.js +7 -6
  208. package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
  209. package/dist/components/QueryWrapperErrorBoundary.d.ts +3 -1
  210. package/dist/components/QueryWrapperErrorBoundary.d.ts.map +1 -1
  211. package/dist/components/QueryWrapperErrorBoundary.js +26 -21
  212. package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
  213. package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js +7 -7
  214. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +2 -2
  215. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
  216. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +34 -32
  217. package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
  218. package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js +7 -7
  219. package/dist/components/QueryWrapperPlotNav/UseRowSet.d.ts.map +1 -1
  220. package/dist/components/QueryWrapperPlotNav/UseRowSet.js +12 -12
  221. package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
  222. package/dist/components/RowDataTable/CategorizedRowDataTable.css +1 -0
  223. package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts +33 -0
  224. package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts.map +1 -0
  225. package/dist/components/RowDataTable/CategorizedRowDataTable.js +64 -0
  226. package/dist/components/RowDataTable/CategorizedRowDataTable.js.map +1 -0
  227. package/dist/components/RowDataTable/CategorizedRowDataTable.module.js +8 -0
  228. package/dist/components/RowDataTable/CategorizedRowDataTable.module.js.map +1 -0
  229. package/dist/components/RowDataTable/CategorizedRowDataTable.module.scss +18 -0
  230. package/dist/components/RowDataTable/RowDataTable.d.ts +13 -0
  231. package/dist/components/RowDataTable/RowDataTable.d.ts.map +1 -1
  232. package/dist/components/RowDataTable/RowDataTable.js +25 -8
  233. package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
  234. package/dist/components/RssFeedCards/RssFeedCards.js +1 -1
  235. package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
  236. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.d.ts.map +1 -1
  237. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js +2 -2
  238. package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
  239. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js +1 -1
  240. package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
  241. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +17 -9
  242. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
  243. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +39 -30
  244. package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
  245. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js +24 -24
  246. package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
  247. package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js +8 -8
  248. package/dist/components/SynapseChat/SynapseChatMessage.js +1 -1
  249. package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
  250. package/dist/components/SynapseForm/NavButtons.js.map +1 -1
  251. package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
  252. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js +1 -1
  253. package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
  254. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.d.ts.map +1 -1
  255. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js +3 -3
  256. package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
  257. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.d.ts.map +1 -1
  258. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +38 -44
  259. package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
  260. package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js +4 -4
  261. package/dist/components/SynapseTable/SqlEditor.js +7 -7
  262. package/dist/components/SynapseTable/SynapseTable.js +8 -8
  263. package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
  264. package/dist/components/SynapseTable/SynapseTableRenderers.d.ts.map +1 -1
  265. package/dist/components/SynapseTable/SynapseTableRenderers.js +73 -72
  266. package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
  267. package/dist/components/SynapseTable/SynapseTableUtils.js +1 -1
  268. package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
  269. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
  270. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +44 -45
  271. package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
  272. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js +1 -1
  273. package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
  274. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.d.ts.map +1 -1
  275. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +142 -142
  276. package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
  277. package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +4 -4
  278. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js +12 -12
  279. package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
  280. package/dist/components/SynapseTable/table-top/ColumnSelection.js +6 -6
  281. package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts +0 -1
  282. package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts.map +1 -1
  283. package/dist/components/SynapseTable/table-top/DownloadOptions.js +64 -57
  284. package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
  285. package/dist/components/SynapseTable/usePrefetchTableData.d.ts.map +1 -1
  286. package/dist/components/SynapseTable/usePrefetchTableData.js +3 -3
  287. package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
  288. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +1 -1
  289. package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
  290. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js +1 -1
  291. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
  292. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js +2 -2
  293. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
  294. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +60 -60
  295. package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
  296. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js +1 -1
  297. package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
  298. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js +1 -1
  299. package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
  300. package/dist/components/TanStackTable/StyledTanStackTable.d.ts.map +1 -1
  301. package/dist/components/TanStackTable/StyledTanStackTable.js +1 -4
  302. package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
  303. package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
  304. package/dist/components/TotalQueryResults.js +14 -14
  305. package/dist/components/Webhook/WebhookDashboard.d.ts.map +1 -1
  306. package/dist/components/Webhook/WebhookDashboard.js +2 -2
  307. package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
  308. package/dist/components/download_list/DownloadConfirmationUtils.d.ts +5 -1
  309. package/dist/components/download_list/DownloadConfirmationUtils.d.ts.map +1 -1
  310. package/dist/components/download_list/DownloadConfirmationUtils.js +2 -2
  311. package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
  312. package/dist/components/error/ErrorBanner.d.ts.map +1 -1
  313. package/dist/components/error/ErrorBanner.js +49 -46
  314. package/dist/components/error/ErrorBanner.js.map +1 -1
  315. package/dist/components/file/upload/MultiFileUploadProgress.js +5 -5
  316. package/dist/components/row_renderers/Dataset.d.ts.map +1 -1
  317. package/dist/components/row_renderers/Dataset.js +6 -6
  318. package/dist/components/row_renderers/Dataset.js.map +1 -1
  319. package/dist/components/row_renderers/Funder.js +1 -1
  320. package/dist/components/row_renderers/Funder.js.map +1 -1
  321. package/dist/components/widgets/ElementWithTooltip.d.ts +6 -1
  322. package/dist/components/widgets/ElementWithTooltip.d.ts.map +1 -1
  323. package/dist/components/widgets/ElementWithTooltip.js +22 -14
  324. package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
  325. package/dist/components/widgets/RangeSlider/RangeSlider.d.ts.map +1 -1
  326. package/dist/components/widgets/RangeSlider/RangeSlider.js +1 -1
  327. package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
  328. package/dist/components/widgets/SynapseImage.js +1 -1
  329. package/dist/components/widgets/SynapseImage.js.map +1 -1
  330. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts +16 -5
  331. package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
  332. package/dist/components/widgets/facet-nav/FacetNavPanel.js +115 -102
  333. package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
  334. package/dist/components/widgets/facet-nav/FacetPlotLegendList.d.ts.map +1 -1
  335. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js +4 -2
  336. package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
  337. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js +1 -1
  338. package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
  339. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts +2 -0
  340. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts.map +1 -1
  341. package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
  342. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts +7 -0
  343. package/dist/components/widgets/facet-nav/PlotsContainer.d.ts.map +1 -1
  344. package/dist/components/widgets/facet-nav/PlotsContainer.js +47 -45
  345. package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
  346. package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js +4 -4
  347. package/dist/components/widgets/facet-nav/useFacetPlots.d.ts +3 -2
  348. package/dist/components/widgets/facet-nav/useFacetPlots.d.ts.map +1 -1
  349. package/dist/components/widgets/facet-nav/useFacetPlots.js +16 -15
  350. package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
  351. package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js +4 -4
  352. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts +2 -2
  353. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts.map +1 -1
  354. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js +62 -60
  355. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
  356. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts +2 -0
  357. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts.map +1 -1
  358. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js +10 -10
  359. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
  360. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts +1 -0
  361. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts.map +1 -1
  362. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js +2 -1
  363. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
  364. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts +3 -2
  365. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts.map +1 -1
  366. package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
  367. package/dist/components/widgets/query-filter/FacetFilterControls.d.ts +3 -2
  368. package/dist/components/widgets/query-filter/FacetFilterControls.d.ts.map +1 -1
  369. package/dist/components/widgets/query-filter/FacetFilterControls.js +63 -62
  370. package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
  371. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.d.ts.map +1 -1
  372. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js +30 -29
  373. package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
  374. package/dist/components/widgets/query-filter/RangeFacetFilter.js +5 -5
  375. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts +53 -0
  376. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts.map +1 -0
  377. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js +391 -0
  378. package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js.map +1 -0
  379. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts +41 -0
  380. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts.map +1 -0
  381. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js +379 -0
  382. package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js.map +1 -0
  383. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts +26 -0
  384. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts.map +1 -0
  385. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js +112 -0
  386. package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js.map +1 -0
  387. package/dist/mocks/mockAnnotationColumns.d.ts.map +1 -1
  388. package/dist/mocks/mockAnnotationColumns.js +1 -1
  389. package/dist/mocks/mockAnnotationColumns.js.map +1 -1
  390. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +9 -0
  391. package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -1
  392. package/dist/mocks/msw/handlers/aridhiaHandlers.js +24 -15
  393. package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -1
  394. package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts +21 -2
  395. package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts.map +1 -1
  396. package/dist/mocks/msw/handlers/asyncJobHandlers.js +30 -22
  397. package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
  398. package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts +27 -0
  399. package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts.map +1 -0
  400. package/dist/mocks/msw/handlers/cohortBuilderHandlers.js +158 -0
  401. package/dist/mocks/msw/handlers/cohortBuilderHandlers.js.map +1 -0
  402. package/dist/mocks/msw/handlers/subscriptionHandlers.js +1 -1
  403. package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
  404. package/dist/mocks/msw/handlers/userProfileHandlers.d.ts.map +1 -1
  405. package/dist/mocks/msw/handlers/userProfileHandlers.js +2 -2
  406. package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
  407. package/dist/mocks/query/mockColumnCategoryTable.d.ts +19 -0
  408. package/dist/mocks/query/mockColumnCategoryTable.d.ts.map +1 -0
  409. package/dist/mocks/query/mockColumnCategoryTable.js +188 -0
  410. package/dist/mocks/query/mockColumnCategoryTable.js.map +1 -0
  411. package/dist/stories/ColorPaletteInspector.d.ts.map +1 -1
  412. package/dist/stories/ColorPaletteInspector.js +2 -2
  413. package/dist/stories/ColorPaletteInspector.js.map +1 -1
  414. package/dist/style/components/facet_nav/_facet-nav-panel.scss +8 -0
  415. package/dist/style/main.css +1 -1
  416. package/dist/synapse-queries/auth/useOIDC.js +2 -2
  417. package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
  418. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js +2 -2
  419. package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js.map +1 -1
  420. package/dist/synapse-queries/challenge/useChallenge.js +2 -2
  421. package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
  422. package/dist/synapse-queries/chat/useChat.js +8 -8
  423. package/dist/synapse-queries/chat/useChat.js.map +1 -1
  424. package/dist/synapse-queries/curation/task/useCurationTask.js +10 -10
  425. package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
  426. package/dist/synapse-queries/dataaccess/useAccessRequirements.js +24 -24
  427. package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
  428. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js +4 -4
  429. package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
  430. package/dist/synapse-queries/dataaccess/useEDuc.js +6 -6
  431. package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
  432. package/dist/synapse-queries/dataaccess/useFormTemplate.js +4 -4
  433. package/dist/synapse-queries/dataaccess/useFormTemplate.js.map +1 -1
  434. package/dist/synapse-queries/download/index.js +2 -2
  435. package/dist/synapse-queries/download/useDownloadList.d.ts +5 -0
  436. package/dist/synapse-queries/download/useDownloadList.d.ts.map +1 -1
  437. package/dist/synapse-queries/download/useDownloadList.js +14 -13
  438. package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
  439. package/dist/synapse-queries/entity/useEntity.d.ts.map +1 -1
  440. package/dist/synapse-queries/entity/useEntity.js +20 -20
  441. package/dist/synapse-queries/entity/useEntity.js.map +1 -1
  442. package/dist/synapse-queries/entity/useExportToADWorkbench.d.ts.map +1 -1
  443. package/dist/synapse-queries/entity/useExportToADWorkbench.js +2 -1
  444. package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
  445. package/dist/synapse-queries/entity/useExportToCavatica.d.ts.map +1 -1
  446. package/dist/synapse-queries/entity/useExportToCavatica.js +3 -2
  447. package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
  448. package/dist/synapse-queries/entity/useExportToPluto.d.ts.map +1 -1
  449. package/dist/synapse-queries/entity/useExportToPluto.js +2 -1
  450. package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
  451. package/dist/synapse-queries/entity/useGetQueryResultBundle.d.ts.map +1 -1
  452. package/dist/synapse-queries/entity/useGetQueryResultBundle.js +4 -7
  453. package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
  454. package/dist/synapse-queries/forum/useReply.js +6 -6
  455. package/dist/synapse-queries/forum/useReply.js.map +1 -1
  456. package/dist/synapse-queries/forum/useThread.js +14 -14
  457. package/dist/synapse-queries/forum/useThread.js.map +1 -1
  458. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js +1 -1
  459. package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
  460. package/dist/synapse-queries/grid/useGridSession.js +4 -4
  461. package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
  462. package/dist/synapse-queries/index.js +177 -176
  463. package/dist/synapse-queries/oauth/useOAuthClient.js +9 -9
  464. package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
  465. package/dist/synapse-queries/portal/usePortal.js +7 -7
  466. package/dist/synapse-queries/portal/usePortal.js.map +1 -1
  467. package/dist/synapse-queries/subscription/useSubscription.js +4 -4
  468. package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
  469. package/dist/synapse-queries/table/useTableUpdateTransaction.js +2 -2
  470. package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
  471. package/dist/synapse-queries/team/useTeam.js +2 -2
  472. package/dist/synapse-queries/team/useTeam.js.map +1 -1
  473. package/dist/synapse-queries/team/useTeamList.d.ts.map +1 -1
  474. package/dist/synapse-queries/team/useTeamList.js +3 -3
  475. package/dist/synapse-queries/team/useTeamList.js.map +1 -1
  476. package/dist/synapse-queries/team/useTeamMembers.js +8 -8
  477. package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
  478. package/dist/synapse-queries/termsOfService/useTermsOfService.js +2 -2
  479. package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
  480. package/dist/synapse-queries/trash/useTrashCan.js +4 -4
  481. package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
  482. package/dist/synapse-queries/user/useCertificationQuiz.js +2 -2
  483. package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
  484. package/dist/synapse-queries/user/useFavorites.js +4 -4
  485. package/dist/synapse-queries/user/useFavorites.js.map +1 -1
  486. package/dist/synapse-queries/user/useRevokeCertification.js +2 -2
  487. package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
  488. package/dist/synapse-queries/wiki/useWiki.js +10 -10
  489. package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
  490. package/dist/tsconfig.build.tsbuildinfo +1 -1
  491. package/dist/utils/ContentTypeUtils.js +4 -4
  492. package/dist/utils/ContentTypeUtils.js.map +1 -1
  493. package/dist/utils/PermissionLevelToAccessType.js +1 -1
  494. package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
  495. package/dist/utils/analytics/useGoogleAnalytics.js +1 -1
  496. package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
  497. package/dist/utils/context/DocumentMetadataContext.js +1 -1
  498. package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
  499. package/dist/utils/functions/AccessControlListUtils.d.ts.map +1 -1
  500. package/dist/utils/functions/AccessControlListUtils.js +3 -3
  501. package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
  502. package/dist/utils/functions/ArrayUtils.js +2 -2
  503. package/dist/utils/functions/ArrayUtils.js.map +1 -1
  504. package/dist/utils/functions/FileHandleUtils.js +1 -1
  505. package/dist/utils/functions/FileHandleUtils.js.map +1 -1
  506. package/dist/utils/functions/RegularExpressions.js +1 -1
  507. package/dist/utils/functions/RegularExpressions.js.map +1 -1
  508. package/dist/utils/functions/StringUtils.d.ts.map +1 -1
  509. package/dist/utils/functions/StringUtils.js +1 -2
  510. package/dist/utils/functions/StringUtils.js.map +1 -1
  511. package/dist/utils/functions/deepLinkingUtils.js +2 -2
  512. package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
  513. package/dist/utils/functions/enumerationFacet.d.ts +26 -0
  514. package/dist/utils/functions/enumerationFacet.d.ts.map +1 -0
  515. package/dist/utils/functions/enumerationFacet.js +27 -0
  516. package/dist/utils/functions/enumerationFacet.js.map +1 -0
  517. package/dist/utils/functions/facetCountUtils.d.ts +12 -0
  518. package/dist/utils/functions/facetCountUtils.d.ts.map +1 -0
  519. package/dist/utils/functions/facetCountUtils.js +9 -0
  520. package/dist/utils/functions/facetCountUtils.js.map +1 -0
  521. package/dist/utils/functions/getEndpoint.js.map +1 -1
  522. package/dist/utils/functions/getUserData.js +1 -1
  523. package/dist/utils/functions/getUserData.js.map +1 -1
  524. package/dist/utils/functions/queryUtils.d.ts +1 -1
  525. package/dist/utils/functions/queryUtils.d.ts.map +1 -1
  526. package/dist/utils/functions/queryUtils.js +26 -22
  527. package/dist/utils/functions/queryUtils.js.map +1 -1
  528. package/dist/utils/functions/testDownloadSpeed.d.ts.map +1 -1
  529. package/dist/utils/functions/testDownloadSpeed.js +17 -26
  530. package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
  531. package/dist/utils/functions/unCamelCase.js +1 -1
  532. package/dist/utils/functions/unCamelCase.js.map +1 -1
  533. package/dist/utils/hooks/useGetInfoFromIds.js +5 -5
  534. package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
  535. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js +1 -1
  536. package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
  537. package/dist/utils/hooks/useLogin.d.ts.map +1 -1
  538. package/dist/utils/hooks/useLogin.js +5 -5
  539. package/dist/utils/hooks/useLogin.js.map +1 -1
  540. package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
  541. package/dist/utils/jsonschema/collectTopLevelProperties.d.ts +6 -0
  542. package/dist/utils/jsonschema/collectTopLevelProperties.d.ts.map +1 -1
  543. package/dist/utils/jsonschema/collectTopLevelProperties.js +1 -1
  544. package/dist/utils/jsonschema/collectTopLevelProperties.js.map +1 -1
  545. package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts +22 -0
  546. package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts.map +1 -0
  547. package/dist/utils/jsonschema/getNumberOrEnumInfo.js +39 -0
  548. package/dist/utils/jsonschema/getNumberOrEnumInfo.js.map +1 -0
  549. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts +1 -0
  550. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts.map +1 -1
  551. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js +1 -1
  552. package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
  553. package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts +5 -0
  554. package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts.map +1 -1
  555. package/dist/utils/jsonschema/getSchemaPropertyInfo.js +30 -15
  556. package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
  557. package/dist/utils/jsonschema/submissionContext.js +2 -2
  558. package/dist/utils/jsonschema/submissionContext.js.map +1 -1
  559. package/package.json +6 -6
@@ -43,9 +43,11 @@ function o(o) {
43
43
  variant: "body2",
44
44
  sx: {
45
45
  color: "grey.600",
46
- fontSize: "14px"
46
+ fontSize: "14px",
47
+ whiteSpace: "nowrap",
48
+ flexShrink: 0
47
49
  },
48
- children: r.count.toLocaleString()
50
+ children: r.countText
49
51
  })
50
52
  ]
51
53
  })
@@ -1 +1 @@
1
- {"version":3,"file":"FacetPlotLegendList.js","names":[],"sources":["../../../../src/components/widgets/facet-nav/FacetPlotLegendList.tsx"],"sourcesContent":["import { Box, Tooltip, Typography } from '@mui/material'\nimport { FacetPlotLegendProps } from './FacetPlotLegendUtils'\n\nexport function FacetPlotLegendList(props: FacetPlotLegendProps) {\n const { labels, colors = [], isExpanded } = props\n if (!labels) {\n return <></>\n }\n const numLegendItems = isExpanded\n ? Math.min(labels.length, 9)\n : Math.min(labels.length, 4)\n if (numLegendItems === 0) {\n return <></>\n }\n return (\n <div\n className={`FacetNavPanel__body__legend${isExpanded ? '--expanded' : ''}`}\n >\n {labels.slice(0, numLegendItems).map((facetValue, index) => {\n return (\n <Tooltip\n title={facetValue.label}\n placement={'top'}\n key={facetValue.label}\n >\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: '20px auto 60px',\n alignItems: 'center',\n gap: '10px',\n }}\n >\n <Box\n sx={{\n width: '14px',\n height: '14px',\n cursor: 'default',\n backgroundColor: colors[index],\n }}\n key={`legendLabel_${index}`}\n style={{ cursor: 'default' }}\n />\n <Typography\n variant=\"body2\"\n sx={{\n display: 'block',\n width: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n fontSize: '14px',\n }}\n >\n {facetValue.label}\n </Typography>\n <Typography\n variant=\"body2\"\n sx={{ color: 'grey.600', fontSize: '14px' }}\n >\n {facetValue.count.toLocaleString()}\n </Typography>\n </Box>\n </Tooltip>\n )\n })}\n </div>\n )\n}\n"],"mappings":";;;AAGA,SAAgB,EAAoB,GAA6B;CAC/D,IAAM,EAAE,WAAQ,YAAS,CAAC,GAAG,kBAAe;CAC5C,IAAI,CAAC,GACH,OAAO,kBAAA,GAAA,CAAI,CAAA;CAEb,IAAM,IAAiB,IACnB,KAAK,IAAI,EAAO,QAAQ,CAAC,IACzB,KAAK,IAAI,EAAO,QAAQ,CAAC;CAI7B,OAHI,MAAmB,IACd,kBAAA,GAAA,CAAI,CAAA,IAGX,kBAAC,OAAD;EACE,WAAW,8BAA8B,IAAa,eAAe;YAEpE,EAAO,MAAM,GAAG,CAAc,EAAE,KAAK,GAAY,MAE9C,kBAAC,GAAD;GACE,OAAO,EAAW;GAClB,WAAW;aAGX,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,qBAAqB;KACrB,YAAY;KACZ,KAAK;IACP;cANF;KAQE,kBAAC,GAAD;MACE,IAAI;OACF,OAAO;OACP,QAAQ;OACR,QAAQ;OACR,iBAAiB,EAAO;MAC1B;MAEA,OAAO,EAAE,QAAQ,UAAU;KAC5B,GAFM,eAAe,GAErB;KACD,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OACF,SAAS;OACT,OAAO;OACP,UAAU;OACV,cAAc;OACd,YAAY;OACZ,UAAU;MACZ;gBAEC,EAAW;KACF,CAAA;KACZ,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OAAE,OAAO;OAAY,UAAU;MAAO;gBAEzC,EAAW,MAAM,eAAe;KACvB,CAAA;IACT;;EACE,GAxCF,EAAW,KAwCT,CAEZ;CACE,CAAA;AAET"}
1
+ {"version":3,"file":"FacetPlotLegendList.js","names":[],"sources":["../../../../src/components/widgets/facet-nav/FacetPlotLegendList.tsx"],"sourcesContent":["import { Box, Tooltip, Typography } from '@mui/material'\nimport { FacetPlotLegendProps } from './FacetPlotLegendUtils'\n\nexport function FacetPlotLegendList(props: FacetPlotLegendProps) {\n const { labels, colors = [], isExpanded } = props\n if (!labels) {\n return <></>\n }\n const numLegendItems = isExpanded\n ? Math.min(labels.length, 9)\n : Math.min(labels.length, 4)\n if (numLegendItems === 0) {\n return <></>\n }\n return (\n <div\n className={`FacetNavPanel__body__legend${isExpanded ? '--expanded' : ''}`}\n >\n {labels.slice(0, numLegendItems).map((facetValue, index) => {\n return (\n <Tooltip\n title={facetValue.label}\n placement={'top'}\n key={facetValue.label}\n >\n <Box\n sx={{\n display: 'grid',\n gridTemplateColumns: '20px auto 60px',\n alignItems: 'center',\n gap: '10px',\n }}\n >\n <Box\n sx={{\n width: '14px',\n height: '14px',\n cursor: 'default',\n backgroundColor: colors[index],\n }}\n key={`legendLabel_${index}`}\n style={{ cursor: 'default' }}\n />\n <Typography\n variant=\"body2\"\n sx={{\n display: 'block',\n width: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n fontSize: '14px',\n }}\n >\n {facetValue.label}\n </Typography>\n <Typography\n variant=\"body2\"\n sx={{\n color: 'grey.600',\n fontSize: '14px',\n whiteSpace: 'nowrap',\n flexShrink: 0,\n }}\n >\n {facetValue.countText}\n </Typography>\n </Box>\n </Tooltip>\n )\n })}\n </div>\n )\n}\n"],"mappings":";;;AAGA,SAAgB,EAAoB,GAA6B;CAC/D,IAAM,EAAE,WAAQ,YAAS,CAAC,GAAG,kBAAe;CAC5C,IAAI,CAAC,GACH,OAAO,kBAAA,GAAA,CAAI,CAAA;CAEb,IAAM,IAAiB,IACnB,KAAK,IAAI,EAAO,QAAQ,CAAC,IACzB,KAAK,IAAI,EAAO,QAAQ,CAAC;CAI7B,OAHI,MAAmB,IACd,kBAAA,GAAA,CAAI,CAAA,IAGX,kBAAC,OAAD;EACE,WAAW,8BAA8B,IAAa,eAAe;YAEpE,EAAO,MAAM,GAAG,CAAc,EAAE,KAAK,GAAY,MAE9C,kBAAC,GAAD;GACE,OAAO,EAAW;GAClB,WAAW;aAGX,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,qBAAqB;KACrB,YAAY;KACZ,KAAK;IACP;cANF;KAQE,kBAAC,GAAD;MACE,IAAI;OACF,OAAO;OACP,QAAQ;OACR,QAAQ;OACR,iBAAiB,EAAO;MAC1B;MAEA,OAAO,EAAE,QAAQ,UAAU;KAC5B,GAFM,eAAe,GAErB;KACD,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OACF,SAAS;OACT,OAAO;OACP,UAAU;OACV,cAAc;OACd,YAAY;OACZ,UAAU;MACZ;gBAEC,EAAW;KACF,CAAA;KACZ,kBAAC,GAAD;MACE,SAAQ;MACR,IAAI;OACF,OAAO;OACP,UAAU;OACV,YAAY;OACZ,YAAY;MACd;gBAEC,EAAW;KACF,CAAA;IACT;;EACE,GA7CF,EAAW,KA6CT,CAEZ;CACE,CAAA;AAET"}
@@ -72,7 +72,7 @@ function c(c) {
72
72
  color: "grey.600",
73
73
  textAlign: "right"
74
74
  },
75
- children: e.count
75
+ children: e.countText
76
76
  }) })] }, e.label);
77
77
  }) })]
78
78
  }), p && /* @__PURE__ */ o(n, {
@@ -1 +1 @@
1
- {"version":3,"file":"FacetPlotLegendTable.js","names":[],"sources":["../../../../src/components/widgets/facet-nav/FacetPlotLegendTable.tsx"],"sourcesContent":["import { Box, Link, Typography } from '@mui/material'\nimport {\n FacetPlotLegendProps,\n MAX_LEGEND_LENGTH,\n truncate,\n} from './FacetPlotLegendUtils'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\n\ntype FacetPlotLegendTableProps = FacetPlotLegendProps & {\n facetName?: string\n linkToFullQuery?: string\n}\n\nexport function FacetPlotLegendTable(props: FacetPlotLegendTableProps) {\n const { facetName, labels, colors = [], isExpanded, linkToFullQuery } = props\n\n const { unitDescription } = useQueryVisualizationContext()\n\n if (!labels) {\n return <></>\n }\n const numLegendItems = isExpanded\n ? Math.min(labels.length, 9)\n : Math.min(labels.length, 4)\n if (numLegendItems === 0) {\n return <></>\n }\n return (\n <>\n <Box\n component={'table'}\n className={`FacetNavPanel__body__legend${\n isExpanded ? '--expanded' : ''\n }`}\n sx={{ width: '100%', color: 'grey.800', 'td,th': { py: 0.5 } }}\n >\n <thead>\n <Box\n component={'tr'}\n sx={{ borderBottom: '1px solid', borderBottomColor: 'grey.300' }}\n >\n <th>\n <Typography\n variant={'body1'}\n sx={{\n fontWeight: 700,\n size: '14px',\n }}\n >\n {facetName}\n </Typography>\n </th>\n <th style={{ textAlign: 'right', marginRight: '16px' }}>\n <Typography\n variant={'body1'}\n sx={{\n size: '14px',\n fontWeight: 700,\n textAlign: 'right',\n }}\n >\n {unitDescription}\n </Typography>\n </th>\n </Box>\n </thead>\n <tbody>\n {labels.slice(0, numLegendItems).map((facetValue, index) => {\n const labelDisplay = truncate(facetValue.label, MAX_LEGEND_LENGTH)\n return (\n <tr key={facetValue.label}>\n <td>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }}\n >\n <Box\n sx={{\n width: '14px',\n height: '14px',\n cursor: 'default',\n backgroundColor: colors[index],\n }}\n key={`legendLabel_${index}`}\n style={{ cursor: 'default' }}\n />\n <Typography variant=\"body1\" sx={{ fontSize: '14px' }}>\n {labelDisplay}\n </Typography>\n </Box>\n </td>\n <td>\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '14px',\n color: 'grey.600',\n textAlign: 'right',\n }}\n >\n {facetValue.count}\n </Typography>\n </td>\n </tr>\n )\n })}\n </tbody>\n </Box>\n {linkToFullQuery && (\n <Box sx={{ my: 2 }}>\n <Link href={linkToFullQuery}>\n View {labels.length} {facetName} options\n </Link>\n </Box>\n )}\n </>\n )\n}\n"],"mappings":";;;;;;AAaA,SAAgB,EAAqB,GAAkC;CACrE,IAAM,EAAE,cAAW,WAAQ,YAAS,CAAC,GAAG,eAAY,uBAAoB,GAElE,EAAE,uBAAoB,EAA6B;CAEzD,IAAI,CAAC,GACH,OAAO,kBAAA,GAAA,CAAI,CAAA;CAEb,IAAM,IAAiB,IACnB,KAAK,IAAI,EAAO,QAAQ,CAAC,IACzB,KAAK,IAAI,EAAO,QAAQ,CAAC;CAI7B,OAHI,MAAmB,IACd,kBAAA,GAAA,CAAI,CAAA,IAGX,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,WAAW;EACX,WAAW,8BACT,IAAa,eAAe;EAE9B,IAAI;GAAE,OAAO;GAAQ,OAAO;GAAY,SAAS,EAAE,IAAI,GAAI;EAAE;YAL/D,CAOE,kBAAC,SAAD,EAAA,UACE,kBAAC,GAAD;GACE,WAAW;GACX,IAAI;IAAE,cAAc;IAAa,mBAAmB;GAAW;aAFjE,CAIE,kBAAC,MAAD,EAAA,UACE,kBAAC,GAAD;IACE,SAAS;IACT,IAAI;KACF,YAAY;KACZ,MAAM;IACR;cAEC;GACS,CAAA,EACV,CAAA,GACJ,kBAAC,MAAD;IAAI,OAAO;KAAE,WAAW;KAAS,aAAa;IAAO;cACnD,kBAAC,GAAD;KACE,SAAS;KACT,IAAI;MACF,MAAM;MACN,YAAY;MACZ,WAAW;KACb;eAEC;IACS,CAAA;GACV,CAAA,CACD;KACA,CAAA,GACP,kBAAC,SAAD,EAAA,UACG,EAAO,MAAM,GAAG,CAAc,EAAE,KAAK,GAAY,MAAU;GAC1D,IAAM,IAAe,EAAS,EAAW,OAAA,EAAwB;GACjE,OACE,kBAAC,MAAD,EAAA,UAAA,CACE,kBAAC,MAAD,EAAA,UACE,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,YAAY;KACZ,KAAK;IACP;cALF,CAOE,kBAAC,GAAD;KACE,IAAI;MACF,OAAO;MACP,QAAQ;MACR,QAAQ;MACR,iBAAiB,EAAO;KAC1B;KAEA,OAAO,EAAE,QAAQ,UAAU;IAC5B,GAFM,eAAe,GAErB,GACD,kBAAC,GAAD;KAAY,SAAQ;KAAQ,IAAI,EAAE,UAAU,OAAO;eAChD;IACS,CAAA,CACT;MACH,CAAA,GACJ,kBAAC,MAAD,EAAA,UACE,kBAAC,GAAD;IACE,SAAQ;IACR,IAAI;KACF,UAAU;KACV,OAAO;KACP,WAAW;IACb;cAEC,EAAW;GACF,CAAA,EACV,CAAA,CACF,EAAA,GApCK,EAAW,KAoChB;EAER,CAAC,EACI,CAAA,CACJ;KACJ,KACC,kBAAC,GAAD;EAAK,IAAI,EAAE,IAAI,EAAE;YACf,kBAAC,GAAD;GAAM,MAAM;aAAZ;IAA6B;IACrB,EAAO;IAAO;IAAE;IAAU;GAC5B;;CACH,CAAA,CAEP,EAAA,CAAA;AAEN"}
1
+ {"version":3,"file":"FacetPlotLegendTable.js","names":[],"sources":["../../../../src/components/widgets/facet-nav/FacetPlotLegendTable.tsx"],"sourcesContent":["import { Box, Link, Typography } from '@mui/material'\nimport {\n FacetPlotLegendProps,\n MAX_LEGEND_LENGTH,\n truncate,\n} from './FacetPlotLegendUtils'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\n\ntype FacetPlotLegendTableProps = FacetPlotLegendProps & {\n facetName?: string\n linkToFullQuery?: string\n}\n\nexport function FacetPlotLegendTable(props: FacetPlotLegendTableProps) {\n const { facetName, labels, colors = [], isExpanded, linkToFullQuery } = props\n\n const { unitDescription } = useQueryVisualizationContext()\n\n if (!labels) {\n return <></>\n }\n const numLegendItems = isExpanded\n ? Math.min(labels.length, 9)\n : Math.min(labels.length, 4)\n if (numLegendItems === 0) {\n return <></>\n }\n return (\n <>\n <Box\n component={'table'}\n className={`FacetNavPanel__body__legend${\n isExpanded ? '--expanded' : ''\n }`}\n sx={{ width: '100%', color: 'grey.800', 'td,th': { py: 0.5 } }}\n >\n <thead>\n <Box\n component={'tr'}\n sx={{ borderBottom: '1px solid', borderBottomColor: 'grey.300' }}\n >\n <th>\n <Typography\n variant={'body1'}\n sx={{\n fontWeight: 700,\n size: '14px',\n }}\n >\n {facetName}\n </Typography>\n </th>\n <th style={{ textAlign: 'right', marginRight: '16px' }}>\n <Typography\n variant={'body1'}\n sx={{\n size: '14px',\n fontWeight: 700,\n textAlign: 'right',\n }}\n >\n {unitDescription}\n </Typography>\n </th>\n </Box>\n </thead>\n <tbody>\n {labels.slice(0, numLegendItems).map((facetValue, index) => {\n const labelDisplay = truncate(facetValue.label, MAX_LEGEND_LENGTH)\n return (\n <tr key={facetValue.label}>\n <td>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n gap: 1,\n }}\n >\n <Box\n sx={{\n width: '14px',\n height: '14px',\n cursor: 'default',\n backgroundColor: colors[index],\n }}\n key={`legendLabel_${index}`}\n style={{ cursor: 'default' }}\n />\n <Typography variant=\"body1\" sx={{ fontSize: '14px' }}>\n {labelDisplay}\n </Typography>\n </Box>\n </td>\n <td>\n <Typography\n variant=\"body1\"\n sx={{\n fontSize: '14px',\n color: 'grey.600',\n textAlign: 'right',\n }}\n >\n {facetValue.countText}\n </Typography>\n </td>\n </tr>\n )\n })}\n </tbody>\n </Box>\n {linkToFullQuery && (\n <Box sx={{ my: 2 }}>\n <Link href={linkToFullQuery}>\n View {labels.length} {facetName} options\n </Link>\n </Box>\n )}\n </>\n )\n}\n"],"mappings":";;;;;;AAaA,SAAgB,EAAqB,GAAkC;CACrE,IAAM,EAAE,cAAW,WAAQ,YAAS,CAAC,GAAG,eAAY,uBAAoB,GAElE,EAAE,uBAAoB,EAA6B;CAEzD,IAAI,CAAC,GACH,OAAO,kBAAA,GAAA,CAAI,CAAA;CAEb,IAAM,IAAiB,IACnB,KAAK,IAAI,EAAO,QAAQ,CAAC,IACzB,KAAK,IAAI,EAAO,QAAQ,CAAC;CAI7B,OAHI,MAAmB,IACd,kBAAA,GAAA,CAAI,CAAA,IAGX,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,GAAD;EACE,WAAW;EACX,WAAW,8BACT,IAAa,eAAe;EAE9B,IAAI;GAAE,OAAO;GAAQ,OAAO;GAAY,SAAS,EAAE,IAAI,GAAI;EAAE;YAL/D,CAOE,kBAAC,SAAD,EAAA,UACE,kBAAC,GAAD;GACE,WAAW;GACX,IAAI;IAAE,cAAc;IAAa,mBAAmB;GAAW;aAFjE,CAIE,kBAAC,MAAD,EAAA,UACE,kBAAC,GAAD;IACE,SAAS;IACT,IAAI;KACF,YAAY;KACZ,MAAM;IACR;cAEC;GACS,CAAA,EACV,CAAA,GACJ,kBAAC,MAAD;IAAI,OAAO;KAAE,WAAW;KAAS,aAAa;IAAO;cACnD,kBAAC,GAAD;KACE,SAAS;KACT,IAAI;MACF,MAAM;MACN,YAAY;MACZ,WAAW;KACb;eAEC;IACS,CAAA;GACV,CAAA,CACD;KACA,CAAA,GACP,kBAAC,SAAD,EAAA,UACG,EAAO,MAAM,GAAG,CAAc,EAAE,KAAK,GAAY,MAAU;GAC1D,IAAM,IAAe,EAAS,EAAW,OAAA,EAAwB;GACjE,OACE,kBAAC,MAAD,EAAA,UAAA,CACE,kBAAC,MAAD,EAAA,UACE,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,YAAY;KACZ,KAAK;IACP;cALF,CAOE,kBAAC,GAAD;KACE,IAAI;MACF,OAAO;MACP,QAAQ;MACR,QAAQ;MACR,iBAAiB,EAAO;KAC1B;KAEA,OAAO,EAAE,QAAQ,UAAU;IAC5B,GAFM,eAAe,GAErB,GACD,kBAAC,GAAD;KAAY,SAAQ;KAAQ,IAAI,EAAE,UAAU,OAAO;eAChD;IACS,CAAA,CACT;MACH,CAAA,GACJ,kBAAC,MAAD,EAAA,UACE,kBAAC,GAAD;IACE,SAAQ;IACR,IAAI;KACF,UAAU;KACV,OAAO;KACP,WAAW;IACb;cAEC,EAAW;GACF,CAAA,EACV,CAAA,CACF,EAAA,GApCK,EAAW,KAoChB;EAER,CAAC,EACI,CAAA,CACJ;KACJ,KACC,kBAAC,GAAD;EAAK,IAAI,EAAE,IAAI,EAAE;YACf,kBAAC,GAAD;GAAM,MAAM;aAAZ;IAA6B;IACrB,EAAO;IAAO;IAAE;IAAU;GAC5B;;CACH,CAAA,CAEP,EAAA,CAAA;AAEN"}
@@ -3,6 +3,8 @@ export declare function truncate(str: string | undefined, n: number): string | u
3
3
  export type FacetWithLabel = {
4
4
  label: string;
5
5
  count: number;
6
+ /** The count as displayed: localized, or a range/approximation for post-processed facet counts. */
7
+ countText: string;
6
8
  };
7
9
  export type FacetPlotLegendProps = {
8
10
  labels?: FacetWithLabel[];
@@ -1 +1 @@
1
- {"version":3,"file":"FacetPlotLegendUtils.d.ts","sourceRoot":"","sources":["../../../../src/components/widgets/facet-nav/FacetPlotLegendUtils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAE,MAAW,CAAA;AAE3C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,sBAM1D;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA"}
1
+ {"version":3,"file":"FacetPlotLegendUtils.d.ts","sourceRoot":"","sources":["../../../../src/components/widgets/facet-nav/FacetPlotLegendUtils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAE,MAAW,CAAA;AAE3C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE,MAAM,sBAM1D;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,mGAAmG;IACnG,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,cAAc,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,EAAE,OAAO,CAAA;CACpB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"FacetPlotLegendUtils.js","names":[],"sources":["../../../../src/components/widgets/facet-nav/FacetPlotLegendUtils.ts"],"sourcesContent":["export const MAX_LEGEND_LENGTH: number = 30\n\nexport function truncate(str: string | undefined, n: number) {\n if (!str) {\n return str\n }\n const trimmedStr: string = str.trim()\n return trimmedStr.length > n ? trimmedStr.substring(0, n - 1) + '…' : str\n}\n\nexport type FacetWithLabel = {\n label: string\n count: number\n}\n\nexport type FacetPlotLegendProps = {\n labels?: FacetWithLabel[]\n colors?: string[]\n isExpanded: boolean\n}\n"],"mappings":";AAAA,IAAa,IAA4B;AAEzC,SAAgB,EAAS,GAAyB,GAAW;CAC3D,IAAI,CAAC,GACH,OAAO;CAET,IAAM,IAAqB,EAAI,KAAK;CACpC,OAAO,EAAW,SAAS,IAAI,EAAW,UAAU,GAAG,IAAI,CAAC,IAAI,MAAM;AACxE"}
1
+ {"version":3,"file":"FacetPlotLegendUtils.js","names":[],"sources":["../../../../src/components/widgets/facet-nav/FacetPlotLegendUtils.ts"],"sourcesContent":["export const MAX_LEGEND_LENGTH: number = 30\n\nexport function truncate(str: string | undefined, n: number) {\n if (!str) {\n return str\n }\n const trimmedStr: string = str.trim()\n return trimmedStr.length > n ? trimmedStr.substring(0, n - 1) + '…' : str\n}\n\nexport type FacetWithLabel = {\n label: string\n count: number\n /** The count as displayed: localized, or a range/approximation for post-processed facet counts. */\n countText: string\n}\n\nexport type FacetPlotLegendProps = {\n labels?: FacetWithLabel[]\n colors?: string[]\n isExpanded: boolean\n}\n"],"mappings":";AAAA,IAAa,IAA4B;AAEzC,SAAgB,EAAS,GAAyB,GAAW;CAC3D,IAAI,CAAC,GACH,OAAO;CAET,IAAM,IAAqB,EAAI,KAAK;CACpC,OAAO,EAAW,SAAS,IAAI,EAAW,UAAU,GAAG,IAAI,CAAC,IAAI,MAAM;AACxE"}
@@ -5,6 +5,13 @@ export type PlotsContainerProps = {
5
5
  facetsToPlot?: string[];
6
6
  customPlots?: QueryWrapperSynapsePlotProps[];
7
7
  initialPlotTypeByFacetColumnName?: Record<string, PlotType>;
8
+ /** Chart type of facet plots without an entry in `initialPlotTypeByFacetColumnName`. Defaults to a pie chart. */
9
+ defaultPlotType?: PlotType;
10
+ /**
11
+ * When true, the facet plots cannot change the query: slices can't be clicked and the filter
12
+ * dropdowns are hidden. Set while the Query Builder owns the filters.
13
+ */
14
+ disableFiltering?: boolean;
8
15
  };
9
16
  type CustomPlotIdentifier = {
10
17
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"PlotsContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/widgets/facet-nav/PlotsContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAO/C,OAAgC,EAC9B,4BAA4B,EAC7B,MAAM,mDAAmD,CAAA;AAC1D,OAAsB,EAEpB,QAAQ,EACT,MAAM,4BAA4B,CAAA;AAMnC,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,WAAW,CAAC,EAAE,4BAA4B,EAAE,CAAA;IAC5C,gCAAgC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;CAC5D,CAAA;AACD,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,IAAI,CAAA;CACf,CAAA;AACD,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG,oBAAoB,CAAA;AAEzE,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,cAAc,CAAA;IACtB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAgUD,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,2CAO5E"}
1
+ {"version":3,"file":"PlotsContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/widgets/facet-nav/PlotsContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAO/C,OAAgC,EAC9B,4BAA4B,EAC7B,MAAM,mDAAmD,CAAA;AAC1D,OAAsB,EAEpB,QAAQ,EACT,MAAM,4BAA4B,CAAA;AAMnC,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,WAAW,CAAC,EAAE,4BAA4B,EAAE,CAAA;IAC5C,gCAAgC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC3D,iHAAiH;IACjH,eAAe,CAAC,EAAE,QAAQ,CAAA;IAC1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AACD,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,IAAI,CAAA;CACf,CAAA;AACD,MAAM,MAAM,cAAc,GAAG,qBAAqB,GAAG,oBAAoB,CAAA;AAEzE,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,cAAc,CAAA;IACtB,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,QAAQ,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AA0UD,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAAC,KAAK,EAAE,mBAAmB,2CAO5E"}
@@ -1,6 +1,6 @@
1
- import { facetObjectMatchesDefinition as e } from "../../../utils/functions/queryUtils.js";
2
- import { useSuspenseGetQueryMetadata as t } from "../../QueryWrapper/useGetQueryMetadata.js";
3
- import { useQueryVisualizationContext as n } from "../../QueryVisualizationWrapper/QueryVisualizationContext.js";
1
+ import { useQueryVisualizationContext as e } from "../../QueryVisualizationWrapper/QueryVisualizationContext.js";
2
+ import { facetObjectMatchesDefinition as t } from "../../../utils/functions/queryUtils.js";
3
+ import { useSuspenseGetQueryMetadata as n } from "../../QueryWrapper/useGetQueryMetadata.js";
4
4
  import "../../QueryVisualizationWrapper/index.js";
5
5
  import r from "./FacetNavPanel.js";
6
6
  import i, { getFacets as a } from "./useFacetPlots.js";
@@ -10,92 +10,94 @@ import { Suspense as c, useEffect as l, useMemo as u, useState as d } from "reac
10
10
  import { Box as f, Button as p } from "@mui/material";
11
11
  import { Fragment as m, jsx as h, jsxs as g } from "react/jsx-runtime";
12
12
  //#region src/components/widgets/facet-nav/PlotsContainer.tsx
13
- var _ = 2, v = (t, n) => "__custom" in n && "__custom" in t ? t.title == n.title : !("__custom" in n) && !("__custom" in t) ? e(t, n) : !1;
13
+ var _ = 2, v = (e, n) => "__custom" in n && "__custom" in e ? e.title == n.title : !("__custom" in n) && !("__custom" in e) ? t(e, n) : !1;
14
14
  function y(e) {
15
15
  return e === "bar" ? "BAR" : "PIE";
16
16
  }
17
- var b = (e) => "__custom" in e.plotId ? `custom-${e.plotId.title}` : `facet-${e.plotId.columnName}-${e.plotId.jsonPath}`, x = (e, t) => !!t.find((t) => v(t.plotId, e)), S = (e) => ({
17
+ var b = (e) => "__custom" in e.plotId ? `custom-${e.plotId.title}` : `facet-${e.plotId.columnName}-${e.plotId.jsonPath}`, x = (e, t) => t.some((t) => v(t.plotId, e)), S = (e) => ({
18
18
  __custom: !0,
19
19
  title: e.title ?? ""
20
- }), C = (e = [], t = [], n) => [...e.map((e, t) => ({
20
+ }), C = (e = [], t = [], n, r) => [...e.map((e, t) => ({
21
21
  plotId: S(e),
22
22
  isHidden: t >= _,
23
23
  plotType: y(e.type)
24
- })), ...t.map((t, r) => ({
24
+ })), ...t.map((t, i) => ({
25
25
  plotId: t.facetToPlot,
26
- isHidden: r + e.length >= _,
27
- plotType: n?.[t.facetToPlot.columnName] ?? T
26
+ isHidden: i + e.length >= _,
27
+ plotType: n?.[t.facetToPlot.columnName] ?? r
28
28
  }))], w = (e, t, n) => t.some((t) => v(S(t), e.plotId)) || n.some((t) => v(t.facetToPlot, e.plotId)), T = "PIE", E = [], D = [];
29
- function O(e) {
30
- let { facetsToPlot: s = E, customPlots: c = D, initialPlotTypeByFacetColumnName: y } = e, { data: O } = t(), { showPlots: k } = n(), [A, j] = d([]), M = i(s), N = (e) => A.find((t) => v(e, t.plotId))?.plotType ?? T;
29
+ function O(t) {
30
+ let { facetsToPlot: s = E, customPlots: c = D, initialPlotTypeByFacetColumnName: y, defaultPlotType: O = T, disableFiltering: k } = t, { data: A } = n(), { showPlots: j } = e(), [M, N] = d([]), P = i(s), F = (e) => M.find((t) => v(e, t.plotId))?.plotType ?? O;
31
31
  l(() => {
32
- let e = C(c, M, y);
33
- j((t) => {
32
+ let e = C(c, P, y, O);
33
+ N((t) => {
34
34
  let n = e.filter((e) => !x(e.plotId, t));
35
- return [...t.filter((e) => w(e, c, M)), ...n];
35
+ return [...t.filter((e) => w(e, c, P)), ...n];
36
36
  });
37
37
  }, [
38
38
  c,
39
- M,
40
- y
39
+ P,
40
+ y,
41
+ O
41
42
  ]);
42
- let P = (e) => {
43
- j((t) => t.map((t, n) => e ? {
43
+ let I = (e) => {
44
+ N((t) => t.map((t, n) => e ? {
44
45
  ...t,
45
46
  isHidden: !1
46
47
  } : {
47
48
  ...t,
48
49
  isHidden: n >= _
49
50
  }));
50
- }, F = (e) => A.find((t) => v(e, t.plotId) && t.isHidden === !0) !== void 0, I = u(() => A.find((e) => e.isHidden === !0) ? "MORE" : A.length <= _ ? "NONE" : "LESS", [A]);
51
+ }, L = (e) => M.find((t) => v(e, t.plotId) && t.isHidden === !0) !== void 0, R = u(() => M.some((e) => e.isHidden === !0) ? "MORE" : M.length <= _ ? "NONE" : "LESS", [M]);
51
52
  l(() => {
52
- I === "LESS" && requestAnimationFrame(() => {
53
+ R === "LESS" && requestAnimationFrame(() => {
53
54
  window.dispatchEvent(new Event("resize"));
54
55
  });
55
- }, [I]);
56
- let L = (e) => {
57
- z(e, "isHidden", !0);
58
- }, R = (e, t) => {
59
- z(e, "plotType", t);
60
- }, z = (e, t, n) => {
61
- j((r) => r.map((r) => v(e, r.plotId) ? {
56
+ }, [R]);
57
+ let z = (e) => {
58
+ V(e, "isHidden", !0);
59
+ }, B = (e, t) => {
60
+ V(e, "plotType", t);
61
+ }, V = (e, t, n) => {
62
+ N((r) => r.map((r) => v(e, r.plotId) ? {
62
63
  ...r,
63
64
  [t]: n
64
65
  } : r));
65
- }, B = a(O, s).map((e, t) => ({
66
+ }, H = a(A, s).map((e, t) => ({
66
67
  facet: {
67
68
  columnName: e.columnName,
68
69
  jsonPath: e.jsonPath
69
70
  },
70
71
  colorIndex: t
71
72
  }));
72
- return /* @__PURE__ */ h(m, { children: A.length > 0 && /* @__PURE__ */ g("div", {
73
- className: `PlotsContainer ${k ? "" : "hidden"} ${I === "LESS" ? "less" : ""}`,
73
+ return /* @__PURE__ */ h(m, { children: M.length > 0 && /* @__PURE__ */ g("div", {
74
+ className: `PlotsContainer ${j ? "" : "hidden"} ${R === "LESS" ? "less" : ""}`,
74
75
  children: [/* @__PURE__ */ h("div", {
75
76
  className: "PlotsContainer__row",
76
77
  role: "list",
77
- children: A.map((e) => {
78
- let t = "__custom" in e.plotId, n = c.find((t) => v(S(t), e.plotId)), i = M.find((t) => v(t.facetToPlot, e.plotId));
78
+ children: M.map((e) => {
79
+ let t = "__custom" in e.plotId, n = c.find((t) => v(S(t), e.plotId)), i = P.find((t) => v(t.facetToPlot, e.plotId));
79
80
  return /* @__PURE__ */ g("div", {
80
81
  className: [t ? "PlotsContainer__row__item--custom" : void 0, t && n?.fullWidth ? "PlotsContainer__row__item--full-width" : void 0].filter(Boolean).join(" ") || void 0,
81
82
  style: {
82
83
  minWidth: "435px",
83
- display: F(e.plotId) ? "none" : "block"
84
+ display: L(e.plotId) ? "none" : "block"
84
85
  },
85
86
  children: [t && n && /* @__PURE__ */ h(o, {
86
87
  ...n,
87
- onHide: () => L(e.plotId)
88
+ onHide: () => z(e.plotId)
88
89
  }), !t && i && /* @__PURE__ */ h(r, {
89
- index: B.find((t) => v(t.facet, e.plotId))?.colorIndex,
90
- onHide: () => L(e.plotId),
91
- plotType: N(e.plotId),
92
- onSetPlotType: (t) => R(e.plotId, t),
90
+ index: H.find((t) => v(t.facet, e.plotId))?.colorIndex,
91
+ onHide: () => z(e.plotId),
92
+ plotType: F(e.plotId),
93
+ onSetPlotType: (t) => B(e.plotId, t),
93
94
  isModalView: !1,
95
+ disableFiltering: k,
94
96
  ...i
95
97
  })]
96
98
  }, b(e));
97
99
  })
98
- }), I !== "NONE" && /* @__PURE__ */ h(f, {
100
+ }), R !== "NONE" && /* @__PURE__ */ h(f, {
99
101
  sx: {
100
102
  display: "flex",
101
103
  justifyContent: "center",
@@ -106,18 +108,18 @@ function O(e) {
106
108
  children: /* @__PURE__ */ h(p, {
107
109
  variant: "contained",
108
110
  color: "secondary",
109
- onClick: () => P(I === "MORE"),
111
+ onClick: () => I(R === "MORE"),
110
112
  sx: { width: "150px" },
111
- children: I === "LESS" ? "Hide Charts" : "View All Charts"
113
+ children: R === "LESS" ? "Hide Charts" : "View All Charts"
112
114
  })
113
115
  })]
114
116
  }) });
115
117
  }
116
- function k(e) {
117
- let { showPlots: t } = n();
118
+ function k(t) {
119
+ let { showPlots: n } = e();
118
120
  return /* @__PURE__ */ h(c, {
119
- fallback: t ? /* @__PURE__ */ h(s, {}) : null,
120
- children: /* @__PURE__ */ h(O, { ...e })
121
+ fallback: n ? /* @__PURE__ */ h(s, {}) : null,
122
+ children: /* @__PURE__ */ h(O, { ...t })
121
123
  });
122
124
  }
123
125
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"PlotsContainer.js","names":[],"sources":["../../../../src/components/widgets/facet-nav/PlotsContainer.tsx"],"sourcesContent":["import { UniqueFacetIdentifier } from '@/utils'\nimport { facetObjectMatchesDefinition } from '@/utils/functions/queryUtils'\nimport { Box, Button } from '@mui/material'\nimport type { PlotType as PlotlyPlotType } from 'plotly.js-basic-dist'\nimport { Suspense, useEffect, useMemo, useState } from 'react'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport QueryWrapperSynapsePlot, {\n QueryWrapperSynapsePlotProps,\n} from '../../QueryWrapperPlotNav/QueryWrapperSynapsePlot'\nimport FacetNavPanel, {\n FacetNavPanelProps,\n PlotType,\n} from '../facet-nav/FacetNavPanel'\nimport { PlotsContainerSkeleton } from './PlotsContainerSkeleton'\nimport useFacetPlots, { getFacets } from './useFacetPlots'\n\nconst DEFAULT_VISIBLE_PLOTS = 2\ntype ShowMoreState = 'MORE' | 'LESS' | 'NONE'\nexport type PlotsContainerProps = {\n facetsToPlot?: string[]\n customPlots?: QueryWrapperSynapsePlotProps[]\n initialPlotTypeByFacetColumnName?: Record<string, PlotType>\n}\ntype CustomPlotIdentifier = {\n title: string\n __custom: true\n}\nexport type PlotIdentifier = UniqueFacetIdentifier | CustomPlotIdentifier\n\nexport type UiPlotState = {\n plotId: PlotIdentifier\n isHidden: boolean\n plotType: PlotType\n index?: number\n}\nconst plotMatchesDefinition = (\n definition: PlotIdentifier,\n plotId: PlotIdentifier,\n) => {\n if ('__custom' in plotId && '__custom' in definition) {\n return definition.title == plotId.title\n } else if (!('__custom' in plotId) && !('__custom' in definition)) {\n return facetObjectMatchesDefinition(definition, plotId)\n } else {\n return false\n }\n}\n\nfunction convertPlotlyPlotTypeToFacetNavPlotType(\n plotlyPlotType: PlotlyPlotType,\n): PlotType {\n if (plotlyPlotType === 'bar') {\n return 'BAR'\n } else if (plotlyPlotType === 'pie') {\n return 'PIE'\n }\n return 'PIE'\n}\n\nconst generatePlotKey = (plotUiState: UiPlotState) => {\n if ('__custom' in plotUiState.plotId) {\n // For custom plots\n return `custom-${plotUiState.plotId.title}`\n } else {\n // For facet plots\n return `facet-${plotUiState.plotId.columnName}-${plotUiState.plotId.jsonPath}`\n }\n}\n\nconst isPlotInState = (\n plotId: PlotIdentifier,\n plotUiStateArray: UiPlotState[],\n): boolean => {\n return !!plotUiStateArray.find(plot => {\n return plotMatchesDefinition(plot.plotId, plotId)\n })\n}\n\nconst getCustomPlotIdentifier = (\n customPlot: QueryWrapperSynapsePlotProps,\n): PlotIdentifier => {\n return { __custom: true, title: customPlot.title ?? '' }\n}\n\nconst getCombinedNewPlots = (\n customPlots: QueryWrapperSynapsePlotProps[] = [],\n facetNavPanelPropsArray: Pick<\n FacetNavPanelProps,\n 'applyChangesToFacetFilter' | 'applyChangesToGraphSlice' | 'facetToPlot'\n >[] = [],\n initialPlotTypeByFacetColumnName?: Record<string, PlotType>,\n): UiPlotState[] => [\n ...customPlots.map((plotProps, index) => ({\n plotId: getCustomPlotIdentifier(plotProps),\n isHidden: index >= DEFAULT_VISIBLE_PLOTS,\n plotType: convertPlotlyPlotTypeToFacetNavPlotType(plotProps.type),\n })),\n ...facetNavPanelPropsArray.map((facetPlotProps, index) => ({\n plotId: facetPlotProps.facetToPlot,\n isHidden: index + customPlots.length >= DEFAULT_VISIBLE_PLOTS,\n plotType:\n initialPlotTypeByFacetColumnName?.[\n facetPlotProps.facetToPlot.columnName\n ] ?? DEFAULT_PLOT_TYPE,\n })),\n]\n\n// Remove plots that are no longer in props from prevPlots\nconst isPlotStillPresent = (\n prevPlot: UiPlotState,\n customPlots: QueryWrapperSynapsePlotProps[],\n facetNavPanelProps: Pick<\n FacetNavPanelProps,\n 'applyChangesToFacetFilter' | 'applyChangesToGraphSlice' | 'facetToPlot'\n >[],\n): boolean => {\n return (\n customPlots.some(customPlot =>\n plotMatchesDefinition(\n getCustomPlotIdentifier(customPlot),\n prevPlot.plotId,\n ),\n ) ||\n facetNavPanelProps.some(facetPlot =>\n plotMatchesDefinition(facetPlot.facetToPlot, prevPlot.plotId),\n )\n )\n} // fn returns true iff the plot id is in customPlots or facetNavPanelPropsArray\n\nconst DEFAULT_PLOT_TYPE: PlotType = 'PIE'\n\nconst DEFAULT_FACETS_TO_PLOT: string[] = []\nconst DEFAULT_CUSTOM_PLOTS: QueryWrapperSynapsePlotProps[] = []\n\nfunction PlotsContainer(props: PlotsContainerProps) {\n const {\n facetsToPlot = DEFAULT_FACETS_TO_PLOT,\n customPlots = DEFAULT_CUSTOM_PLOTS,\n initialPlotTypeByFacetColumnName,\n } = props\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n const { showPlots: showPlotVisualization } = useQueryVisualizationContext()\n const [plotUiStateArray, setPlotUiStateArray] = useState<UiPlotState[]>([])\n const facetNavPanelPropsArray = useFacetPlots(facetsToPlot)\n\n const getPlotType = (plotId: PlotIdentifier): PlotType => {\n const plotType = plotUiStateArray.find(item =>\n plotMatchesDefinition(plotId, item.plotId),\n )?.plotType\n return plotType ?? DEFAULT_PLOT_TYPE\n }\n\n useEffect(() => {\n const combinedNewPlots = getCombinedNewPlots(\n customPlots,\n facetNavPanelPropsArray,\n initialPlotTypeByFacetColumnName,\n )\n\n // Update the state with new plots\n setPlotUiStateArray(prevPlots => {\n // Filter to only include new plots\n const newPlots = combinedNewPlots.filter(plot => {\n const inState = isPlotInState(plot.plotId, prevPlots)\n return !inState\n })\n\n const updatedPlots = prevPlots.filter(prevPlot =>\n isPlotStillPresent(prevPlot, customPlots, facetNavPanelPropsArray),\n )\n\n // Append new plots\n const combinedPlots = [...updatedPlots, ...newPlots]\n return combinedPlots\n })\n }, [customPlots, facetNavPanelPropsArray, initialPlotTypeByFacetColumnName])\n\n // when 'show more/less' is clicked\n const onShowMoreClick = (shouldShowMore: boolean) => {\n setPlotUiStateArray(plotUiStateArray => {\n return plotUiStateArray.map((item, index) => {\n if (shouldShowMore) {\n // show everything\n return { ...item, isHidden: false }\n }\n // otherwise hide everything except the first few items\n return { ...item, isHidden: index >= DEFAULT_VISIBLE_PLOTS }\n })\n })\n }\n\n const isPlotHiddenInGrid = (plotId: PlotIdentifier) => {\n const itemHidden = plotUiStateArray.find(\n item =>\n plotMatchesDefinition(plotId, item.plotId) && item.isHidden === true,\n )\n const result = itemHidden !== undefined\n return result\n }\n\n const showMoreButtonState = useMemo<ShowMoreState>(() => {\n if (\n // if at least one item is hidden\n plotUiStateArray.find(item => item.isHidden === true)\n ) {\n return 'MORE'\n } else if (plotUiStateArray.length <= DEFAULT_VISIBLE_PLOTS) {\n return 'NONE'\n } else {\n return 'LESS'\n }\n }, [plotUiStateArray])\n\n // When all charts become visible (transition to 'LESS'), trigger a resize event so\n // Plotly recalculates dimensions for charts that were previously hidden (display: none).\n useEffect(() => {\n if (showMoreButtonState === 'LESS') {\n requestAnimationFrame(() => {\n window.dispatchEvent(new Event('resize'))\n })\n }\n }, [showMoreButtonState])\n\n // hides plot graph\n const hidePlotInGrid = (plotId: PlotIdentifier) => {\n setUiPropertyForPlot(plotId, 'isHidden', true)\n }\n\n const setPlotType = (plotId: PlotIdentifier, plotType: PlotType) => {\n setUiPropertyForPlot(plotId, 'plotType', plotType)\n }\n\n const setUiPropertyForPlot = (\n plotId: PlotIdentifier,\n propName: keyof UiPlotState,\n value: boolean | PlotType, // 'the possible values of the above type' (currently can't be specified in TS using symbols)\n ) => {\n setPlotUiStateArray(plotUiStateArray =>\n plotUiStateArray.map(item =>\n plotMatchesDefinition(plotId, item.plotId)\n ? { ...item, [propName]: value }\n : item,\n ),\n )\n }\n\n const colorTracker: { facet: PlotIdentifier; colorIndex: number }[] =\n // TODO: customPlots should use the color index\n // additionally, it is unclear why this object is created\n // We can probably just pass the index from `plotUiStateArray.map)\n getFacets(queryMetadata, facetsToPlot).map((el, index) => {\n return {\n facet: { columnName: el.columnName, jsonPath: el.jsonPath },\n colorIndex: index,\n }\n })\n\n return (\n <>\n {plotUiStateArray.length > 0 && (\n <div\n className={`PlotsContainer ${showPlotVisualization ? '' : 'hidden'} ${\n showMoreButtonState === 'LESS' ? 'less' : ''\n }`}\n >\n <div className=\"PlotsContainer__row\" role=\"list\">\n {plotUiStateArray.map(plotUiState => {\n const isCustomPlot = '__custom' in plotUiState.plotId\n const customPlotProps = customPlots.find(customPlot =>\n plotMatchesDefinition(\n getCustomPlotIdentifier(customPlot),\n plotUiState.plotId,\n ),\n )\n const facetNavPanelProps = facetNavPanelPropsArray.find(props =>\n plotMatchesDefinition(props.facetToPlot, plotUiState.plotId),\n )\n\n return (\n <div\n className={\n [\n isCustomPlot\n ? 'PlotsContainer__row__item--custom'\n : undefined,\n isCustomPlot && customPlotProps?.fullWidth\n ? 'PlotsContainer__row__item--full-width'\n : undefined,\n ]\n .filter(Boolean)\n .join(' ') || undefined\n }\n style={{\n minWidth: '435px',\n display: isPlotHiddenInGrid(plotUiState.plotId)\n ? 'none'\n : 'block',\n }}\n key={generatePlotKey(plotUiState)}\n >\n {isCustomPlot && customPlotProps && (\n <QueryWrapperSynapsePlot\n {...customPlotProps}\n onHide={() => hidePlotInGrid(plotUiState.plotId)}\n />\n )}\n {!isCustomPlot && facetNavPanelProps && (\n <FacetNavPanel\n index={\n colorTracker.find(el =>\n plotMatchesDefinition(el.facet, plotUiState.plotId),\n )?.colorIndex!\n }\n onHide={() => hidePlotInGrid(plotUiState.plotId)}\n plotType={getPlotType(plotUiState.plotId)}\n onSetPlotType={(plotType: PlotType) =>\n setPlotType(plotUiState.plotId, plotType)\n }\n isModalView={false}\n {...facetNavPanelProps}\n />\n )}\n </div>\n )\n })}\n </div>\n {showMoreButtonState !== 'NONE' && (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: 'grey.100',\n p: 2,\n mt: 2,\n }}\n >\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={() => onShowMoreClick(showMoreButtonState === 'MORE')}\n sx={{ width: '150px' }}\n >\n {showMoreButtonState === 'LESS'\n ? 'Hide Charts'\n : 'View All Charts'}\n </Button>\n </Box>\n )}\n </div>\n )}\n </>\n )\n}\n\nexport default function PlotsContainerWithSuspense(props: PlotsContainerProps) {\n const { showPlots } = useQueryVisualizationContext()\n return (\n <Suspense fallback={showPlots ? <PlotsContainerSkeleton /> : null}>\n <PlotsContainer {...props} />\n </Suspense>\n )\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PlotsContainer.js","names":[],"sources":["../../../../src/components/widgets/facet-nav/PlotsContainer.tsx"],"sourcesContent":["import { UniqueFacetIdentifier } from '@/utils'\nimport { facetObjectMatchesDefinition } from '@/utils/functions/queryUtils'\nimport { Box, Button } from '@mui/material'\nimport type { PlotType as PlotlyPlotType } from 'plotly.js-basic-dist'\nimport { Suspense, useEffect, useMemo, useState } from 'react'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport QueryWrapperSynapsePlot, {\n QueryWrapperSynapsePlotProps,\n} from '../../QueryWrapperPlotNav/QueryWrapperSynapsePlot'\nimport FacetNavPanel, {\n FacetNavPanelProps,\n PlotType,\n} from '../facet-nav/FacetNavPanel'\nimport { PlotsContainerSkeleton } from './PlotsContainerSkeleton'\nimport useFacetPlots, { getFacets } from './useFacetPlots'\n\nconst DEFAULT_VISIBLE_PLOTS = 2\ntype ShowMoreState = 'MORE' | 'LESS' | 'NONE'\nexport type PlotsContainerProps = {\n facetsToPlot?: string[]\n customPlots?: QueryWrapperSynapsePlotProps[]\n initialPlotTypeByFacetColumnName?: Record<string, PlotType>\n /** Chart type of facet plots without an entry in `initialPlotTypeByFacetColumnName`. Defaults to a pie chart. */\n defaultPlotType?: PlotType\n /**\n * When true, the facet plots cannot change the query: slices can't be clicked and the filter\n * dropdowns are hidden. Set while the Query Builder owns the filters.\n */\n disableFiltering?: boolean\n}\ntype CustomPlotIdentifier = {\n title: string\n __custom: true\n}\nexport type PlotIdentifier = UniqueFacetIdentifier | CustomPlotIdentifier\n\nexport type UiPlotState = {\n plotId: PlotIdentifier\n isHidden: boolean\n plotType: PlotType\n index?: number\n}\nconst plotMatchesDefinition = (\n definition: PlotIdentifier,\n plotId: PlotIdentifier,\n) => {\n if ('__custom' in plotId && '__custom' in definition) {\n return definition.title == plotId.title\n } else if (!('__custom' in plotId) && !('__custom' in definition)) {\n return facetObjectMatchesDefinition(definition, plotId)\n } else {\n return false\n }\n}\n\nfunction convertPlotlyPlotTypeToFacetNavPlotType(\n plotlyPlotType: PlotlyPlotType,\n): PlotType {\n if (plotlyPlotType === 'bar') {\n return 'BAR'\n } else if (plotlyPlotType === 'pie') {\n return 'PIE'\n }\n return 'PIE'\n}\n\nconst generatePlotKey = (plotUiState: UiPlotState) => {\n if ('__custom' in plotUiState.plotId) {\n // For custom plots\n return `custom-${plotUiState.plotId.title}`\n } else {\n // For facet plots\n return `facet-${plotUiState.plotId.columnName}-${plotUiState.plotId.jsonPath}`\n }\n}\n\nconst isPlotInState = (\n plotId: PlotIdentifier,\n plotUiStateArray: UiPlotState[],\n): boolean => {\n return plotUiStateArray.some(plot => {\n return plotMatchesDefinition(plot.plotId, plotId)\n })\n}\n\nconst getCustomPlotIdentifier = (\n customPlot: QueryWrapperSynapsePlotProps,\n): PlotIdentifier => {\n return { __custom: true, title: customPlot.title ?? '' }\n}\n\nconst getCombinedNewPlots = (\n customPlots: QueryWrapperSynapsePlotProps[] = [],\n facetNavPanelPropsArray: Pick<\n FacetNavPanelProps,\n 'applyChangesToFacetFilter' | 'applyChangesToGraphSlice' | 'facetToPlot'\n >[] = [],\n initialPlotTypeByFacetColumnName: Record<string, PlotType> | undefined,\n defaultPlotType: PlotType,\n): UiPlotState[] => [\n ...customPlots.map((plotProps, index) => ({\n plotId: getCustomPlotIdentifier(plotProps),\n isHidden: index >= DEFAULT_VISIBLE_PLOTS,\n plotType: convertPlotlyPlotTypeToFacetNavPlotType(plotProps.type),\n })),\n ...facetNavPanelPropsArray.map((facetPlotProps, index) => ({\n plotId: facetPlotProps.facetToPlot,\n isHidden: index + customPlots.length >= DEFAULT_VISIBLE_PLOTS,\n plotType:\n initialPlotTypeByFacetColumnName?.[\n facetPlotProps.facetToPlot.columnName\n ] ?? defaultPlotType,\n })),\n]\n\n// Remove plots that are no longer in props from prevPlots\nconst isPlotStillPresent = (\n prevPlot: UiPlotState,\n customPlots: QueryWrapperSynapsePlotProps[],\n facetNavPanelProps: Pick<\n FacetNavPanelProps,\n 'applyChangesToFacetFilter' | 'applyChangesToGraphSlice' | 'facetToPlot'\n >[],\n): boolean => {\n return (\n customPlots.some(customPlot =>\n plotMatchesDefinition(\n getCustomPlotIdentifier(customPlot),\n prevPlot.plotId,\n ),\n ) ||\n facetNavPanelProps.some(facetPlot =>\n plotMatchesDefinition(facetPlot.facetToPlot, prevPlot.plotId),\n )\n )\n} // fn returns true iff the plot id is in customPlots or facetNavPanelPropsArray\n\nconst DEFAULT_PLOT_TYPE: PlotType = 'PIE'\n\nconst DEFAULT_FACETS_TO_PLOT: string[] = []\nconst DEFAULT_CUSTOM_PLOTS: QueryWrapperSynapsePlotProps[] = []\n\nfunction PlotsContainer(props: PlotsContainerProps) {\n const {\n facetsToPlot = DEFAULT_FACETS_TO_PLOT,\n customPlots = DEFAULT_CUSTOM_PLOTS,\n initialPlotTypeByFacetColumnName,\n defaultPlotType = DEFAULT_PLOT_TYPE,\n disableFiltering,\n } = props\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n const { showPlots: showPlotVisualization } = useQueryVisualizationContext()\n const [plotUiStateArray, setPlotUiStateArray] = useState<UiPlotState[]>([])\n const facetNavPanelPropsArray = useFacetPlots(facetsToPlot)\n\n const getPlotType = (plotId: PlotIdentifier): PlotType => {\n const plotType = plotUiStateArray.find(item =>\n plotMatchesDefinition(plotId, item.plotId),\n )?.plotType\n return plotType ?? defaultPlotType\n }\n\n useEffect(() => {\n const combinedNewPlots = getCombinedNewPlots(\n customPlots,\n facetNavPanelPropsArray,\n initialPlotTypeByFacetColumnName,\n defaultPlotType,\n )\n\n // Update the state with new plots\n setPlotUiStateArray(prevPlots => {\n // Filter to only include new plots\n const newPlots = combinedNewPlots.filter(plot => {\n const inState = isPlotInState(plot.plotId, prevPlots)\n return !inState\n })\n\n const updatedPlots = prevPlots.filter(prevPlot =>\n isPlotStillPresent(prevPlot, customPlots, facetNavPanelPropsArray),\n )\n\n // Append new plots\n const combinedPlots = [...updatedPlots, ...newPlots]\n return combinedPlots\n })\n }, [\n customPlots,\n facetNavPanelPropsArray,\n initialPlotTypeByFacetColumnName,\n defaultPlotType,\n ])\n\n // when 'show more/less' is clicked\n const onShowMoreClick = (shouldShowMore: boolean) => {\n setPlotUiStateArray(plotUiStateArray => {\n return plotUiStateArray.map((item, index) => {\n if (shouldShowMore) {\n // show everything\n return { ...item, isHidden: false }\n }\n // otherwise hide everything except the first few items\n return { ...item, isHidden: index >= DEFAULT_VISIBLE_PLOTS }\n })\n })\n }\n\n const isPlotHiddenInGrid = (plotId: PlotIdentifier) => {\n const itemHidden = plotUiStateArray.find(\n item =>\n plotMatchesDefinition(plotId, item.plotId) && item.isHidden === true,\n )\n const result = itemHidden !== undefined\n return result\n }\n\n const showMoreButtonState = useMemo<ShowMoreState>(() => {\n if (\n // if at least one item is hidden\n plotUiStateArray.some(item => item.isHidden === true)\n ) {\n return 'MORE'\n } else if (plotUiStateArray.length <= DEFAULT_VISIBLE_PLOTS) {\n return 'NONE'\n } else {\n return 'LESS'\n }\n }, [plotUiStateArray])\n\n // When all charts become visible (transition to 'LESS'), trigger a resize event so\n // Plotly recalculates dimensions for charts that were previously hidden (display: none).\n useEffect(() => {\n if (showMoreButtonState === 'LESS') {\n requestAnimationFrame(() => {\n window.dispatchEvent(new Event('resize'))\n })\n }\n }, [showMoreButtonState])\n\n // hides plot graph\n const hidePlotInGrid = (plotId: PlotIdentifier) => {\n setUiPropertyForPlot(plotId, 'isHidden', true)\n }\n\n const setPlotType = (plotId: PlotIdentifier, plotType: PlotType) => {\n setUiPropertyForPlot(plotId, 'plotType', plotType)\n }\n\n const setUiPropertyForPlot = (\n plotId: PlotIdentifier,\n propName: keyof UiPlotState,\n value: boolean | PlotType, // 'the possible values of the above type' (currently can't be specified in TS using symbols)\n ) => {\n setPlotUiStateArray(plotUiStateArray =>\n plotUiStateArray.map(item =>\n plotMatchesDefinition(plotId, item.plotId)\n ? { ...item, [propName]: value }\n : item,\n ),\n )\n }\n\n const colorTracker: { facet: PlotIdentifier; colorIndex: number }[] =\n // TODO: customPlots should use the color index\n // additionally, it is unclear why this object is created\n // We can probably just pass the index from `plotUiStateArray.map)\n getFacets(queryMetadata, facetsToPlot).map((el, index) => {\n return {\n facet: { columnName: el.columnName, jsonPath: el.jsonPath },\n colorIndex: index,\n }\n })\n\n return (\n <>\n {plotUiStateArray.length > 0 && (\n <div\n className={`PlotsContainer ${showPlotVisualization ? '' : 'hidden'} ${\n showMoreButtonState === 'LESS' ? 'less' : ''\n }`}\n >\n <div className=\"PlotsContainer__row\" role=\"list\">\n {plotUiStateArray.map(plotUiState => {\n const isCustomPlot = '__custom' in plotUiState.plotId\n const customPlotProps = customPlots.find(customPlot =>\n plotMatchesDefinition(\n getCustomPlotIdentifier(customPlot),\n plotUiState.plotId,\n ),\n )\n const facetNavPanelProps = facetNavPanelPropsArray.find(props =>\n plotMatchesDefinition(props.facetToPlot, plotUiState.plotId),\n )\n\n return (\n <div\n className={\n [\n isCustomPlot\n ? 'PlotsContainer__row__item--custom'\n : undefined,\n isCustomPlot && customPlotProps?.fullWidth\n ? 'PlotsContainer__row__item--full-width'\n : undefined,\n ]\n .filter(Boolean)\n .join(' ') || undefined\n }\n style={{\n minWidth: '435px',\n display: isPlotHiddenInGrid(plotUiState.plotId)\n ? 'none'\n : 'block',\n }}\n key={generatePlotKey(plotUiState)}\n >\n {isCustomPlot && customPlotProps && (\n <QueryWrapperSynapsePlot\n {...customPlotProps}\n onHide={() => hidePlotInGrid(plotUiState.plotId)}\n />\n )}\n {!isCustomPlot && facetNavPanelProps && (\n <FacetNavPanel\n index={\n colorTracker.find(el =>\n plotMatchesDefinition(el.facet, plotUiState.plotId),\n )?.colorIndex!\n }\n onHide={() => hidePlotInGrid(plotUiState.plotId)}\n plotType={getPlotType(plotUiState.plotId)}\n onSetPlotType={(plotType: PlotType) =>\n setPlotType(plotUiState.plotId, plotType)\n }\n isModalView={false}\n disableFiltering={disableFiltering}\n {...facetNavPanelProps}\n />\n )}\n </div>\n )\n })}\n </div>\n {showMoreButtonState !== 'NONE' && (\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n backgroundColor: 'grey.100',\n p: 2,\n mt: 2,\n }}\n >\n <Button\n variant=\"contained\"\n color=\"secondary\"\n onClick={() => onShowMoreClick(showMoreButtonState === 'MORE')}\n sx={{ width: '150px' }}\n >\n {showMoreButtonState === 'LESS'\n ? 'Hide Charts'\n : 'View All Charts'}\n </Button>\n </Box>\n )}\n </div>\n )}\n </>\n )\n}\n\nexport default function PlotsContainerWithSuspense(props: PlotsContainerProps) {\n const { showPlots } = useQueryVisualizationContext()\n return (\n <Suspense fallback={showPlots ? <PlotsContainerSkeleton /> : null}>\n <PlotsContainer {...props} />\n </Suspense>\n )\n}\n"],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { FRIENDLY_VALUE_NOT_SET as e } from "../../../utils/SynapseConstants.js";
2
2
  import { isColumnMultiValueFunctionQueryFilter as t, isColumnSingleValueQueryFilter as n, isFacetColumnRangeRequest as r, isFacetColumnValuesRequest as i, isTextMatchesQueryFilter as a } from "../../../utils/types/IsType.js";
3
+ import { useQueryVisualizationContext as o } from "../../QueryVisualizationWrapper/QueryVisualizationContext.js";
3
4
  import "../../../utils/index.js";
4
- import { useQueryContext as o } from "../../QueryContext/QueryContext.js";
5
+ import { useQueryContext as s } from "../../QueryContext/QueryContext.js";
5
6
  import "../../QueryContext/index.js";
6
- import { useGetQueryMetadata as s } from "../../QueryWrapper/useGetQueryMetadata.js";
7
- import { useQueryVisualizationContext as c } from "../../QueryVisualizationWrapper/QueryVisualizationContext.js";
7
+ import { useGetQueryMetadata as c } from "../../QueryWrapper/useGetQueryMetadata.js";
8
8
  import "../../QueryVisualizationWrapper/index.js";
9
9
  import l from "./SelectionCriteriaPill.js";
10
10
  import { getSearchTextFromBooleanModeSearchExpression as u } from "../../FullTextSearch/FullTextSearchUtils.js";
@@ -120,7 +120,7 @@ function b(e, t, n, a, o) {
120
120
  });
121
121
  }
122
122
  function x() {
123
- let e = o(), t = e.lockedColumn, n = c(), { lockTextMatchesQueryFilterPill: r } = n, { currentQueryRequest: i } = e, { data: a } = s(), u = v(i.query?.additionalFilters ?? [], e, a?.columnModels || [], n, t, r), m = b(i.query.selectedFacets ?? [], e, a?.columnModels || [], n, t);
123
+ let e = s(), t = e.lockedColumn, n = o(), { lockTextMatchesQueryFilterPill: r } = n, { currentQueryRequest: i } = e, { data: a } = c(), u = v(i.query?.additionalFilters ?? [], e, a?.columnModels || [], n, t, r), m = b(i.query.selectedFacets ?? [], e, a?.columnModels || [], n, t);
124
124
  return /* @__PURE__ */ p(f, { children: [...u, ...m].map((e) => {
125
125
  let t = encodeURIComponent(e.key);
126
126
  return /* @__PURE__ */ d(l, {
@@ -1,5 +1,6 @@
1
- import { FacetColumnResult, QueryResultBundle } from '@sage-bionetworks/synapse-types';
1
+ import { EnumerationFacet } from '@/utils/functions/enumerationFacet';
2
+ import { QueryResultBundle } from '@sage-bionetworks/synapse-types';
2
3
  import { FacetNavPanelProps } from './FacetNavPanel';
3
4
  export default function useFacetPlots(facetsToPlot: string[]): Pick<FacetNavPanelProps, 'applyChangesToFacetFilter' | 'applyChangesToGraphSlice' | 'facetToPlot'>[];
4
- export declare function getFacets(data: QueryResultBundle | undefined, facetsToPlot?: string[]): FacetColumnResult[];
5
+ export declare function getFacets(data: QueryResultBundle | undefined, facetsToPlot?: string[]): EnumerationFacet[];
5
6
  //# sourceMappingURL=useFacetPlots.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFacetPlots.d.ts","sourceRoot":"","sources":["../../../../src/components/widgets/facet-nav/useFacetPlots.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,iBAAiB,EAGjB,iBAAiB,EAClB,MAAM,iCAAiC,CAAA;AAKxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGpD,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,YAAY,EAAE,MAAM,EAAE,GACrB,IAAI,CACL,kBAAkB,EAClB,2BAA2B,GAAG,0BAA0B,GAAG,aAAa,CACzE,EAAE,CAqDF;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,iBAAiB,GAAG,SAAS,EACnC,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,iBAAiB,EAAE,CAoBrB"}
1
+ {"version":3,"file":"useFacetPlots.d.ts","sourceRoot":"","sources":["../../../../src/components/widgets/facet-nav/useFacetPlots.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEjB,MAAM,oCAAoC,CAAA;AAE3C,OAAO,EAGL,iBAAiB,EAClB,MAAM,iCAAiC,CAAA;AAKxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAGpD,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,YAAY,EAAE,MAAM,EAAE,GACrB,IAAI,CACL,kBAAkB,EAClB,2BAA2B,GAAG,0BAA0B,GAAG,aAAa,CACzE,EAAE,CAqDF;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,iBAAiB,GAAG,SAAS,EACnC,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,gBAAgB,EAAE,CAgBpB"}
@@ -1,29 +1,30 @@
1
- import { isSingleNotSetValue as e } from "../../../utils/functions/queryUtils.js";
2
- import { useQueryContext as t } from "../../QueryContext/QueryContext.js";
1
+ import { getEnumerationFacets as e } from "../../../utils/functions/enumerationFacet.js";
2
+ import { isSingleNotSetValue as t } from "../../../utils/functions/queryUtils.js";
3
+ import { useQueryContext as n } from "../../QueryContext/QueryContext.js";
3
4
  import "../../QueryContext/index.js";
4
- import { useSuspenseGetQueryMetadata as n } from "../../QueryWrapper/useGetQueryMetadata.js";
5
- import { applyChangesToValuesColumn as r } from "../query-filter/FacetFilterControls.js";
6
- import { useCallback as i, useMemo as a } from "react";
5
+ import { useSuspenseGetQueryMetadata as r } from "../../QueryWrapper/useGetQueryMetadata.js";
6
+ import { applyChangesToValuesColumn as i } from "../query-filter/FacetFilterControls.js";
7
+ import { useCallback as a, useMemo as o } from "react";
7
8
  //#region src/components/widgets/facet-nav/useFacetPlots.ts
8
- function o(e) {
9
- let { getCurrentQueryRequest: o, executeQueryRequest: c } = t(), { data: l } = n(), u = a(() => o(), [o]), d = a(() => s(l, e), [l, e]), f = i((e) => {
10
- c((t) => (t.query.selectedFacets = e, t.query.offset = 0, t), { debounce: !0 });
11
- }, [c]);
12
- return a(() => d.map((e) => ({
9
+ function s(e) {
10
+ let { getCurrentQueryRequest: t, executeQueryRequest: s } = n(), { data: l } = r(), u = o(() => t(), [t]), d = o(() => c(l, e), [l, e]), f = a((e) => {
11
+ s((t) => (t.query.selectedFacets = e, t.query.offset = 0, t), { debounce: !0 });
12
+ }, [s]);
13
+ return o(() => d.map((e) => ({
13
14
  facetToPlot: e,
14
15
  applyChangesToFacetFilter: f,
15
- applyChangesToGraphSlice: (e, t, n) => r(u, e, f, t?.value, n)
16
+ applyChangesToGraphSlice: (e, t, n) => i(u, e, f, t?.value, n)
16
17
  })), [
17
18
  d,
18
19
  f,
19
20
  u
20
21
  ]);
21
22
  }
22
- function s(t, n) {
23
- let r = t?.facets?.filter((t) => t.facetType === "enumeration" && (!n?.length || n.indexOf(t.columnName) > -1) && t.facetValues.length > 0 && !e(t)) ?? [];
24
- return n?.length && r.sort((e, t) => n.indexOf(e.columnName) - n.indexOf(t.columnName)), r;
23
+ function c(n, r) {
24
+ let i = e(n?.facets?.filter((e) => !t(e))).filter((e) => (!r?.length || r.includes(e.columnName)) && e.facetValues.length > 0);
25
+ return r?.length && i.sort((e, t) => r.indexOf(e.columnName) - r.indexOf(t.columnName)), i;
25
26
  }
26
27
  //#endregion
27
- export { o as default, s as getFacets };
28
+ export { s as default, c as getFacets };
28
29
 
29
30
  //# sourceMappingURL=useFacetPlots.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFacetPlots.js","names":[],"sources":["../../../../src/components/widgets/facet-nav/useFacetPlots.ts"],"sourcesContent":["import { isSingleNotSetValue } from '@/utils/functions/queryUtils'\nimport {\n FacetColumnRequest,\n FacetColumnResult,\n FacetColumnResultValueCount,\n FacetColumnResultValues,\n QueryResultBundle,\n} from '@sage-bionetworks/synapse-types'\nimport { useCallback, useMemo } from 'react'\nimport { useQueryContext } from '../../QueryContext'\nimport { useSuspenseGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport { applyChangesToValuesColumn } from '../query-filter/FacetFilterControls'\nimport { FacetNavPanelProps } from './FacetNavPanel'\n\n// Custom hook for generating properties for FacetNavPanel components with filter controls based on the given facets\nexport default function useFacetPlots(\n facetsToPlot: string[],\n): Pick<\n FacetNavPanelProps,\n 'applyChangesToFacetFilter' | 'applyChangesToGraphSlice' | 'facetToPlot'\n>[] {\n const { getCurrentQueryRequest, executeQueryRequest } = useQueryContext()\n\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n\n const lastQueryRequest = useMemo(\n () => getCurrentQueryRequest(),\n [getCurrentQueryRequest],\n )\n const facets = useMemo(\n () => getFacets(queryMetadata, facetsToPlot),\n [queryMetadata, facetsToPlot],\n )\n\n const applyChangesFromQueryFilter = useCallback(\n (facets: FacetColumnRequest[]) => {\n executeQueryRequest(\n lastQueryRequest => {\n lastQueryRequest.query.selectedFacets = facets\n lastQueryRequest.query.offset = 0\n return lastQueryRequest\n },\n { debounce: true },\n )\n },\n [executeQueryRequest],\n )\n\n const facetNavPanelProps = useMemo(\n () =>\n facets.map(facet => {\n return {\n facetToPlot: facet as FacetColumnResultValues,\n\n applyChangesToFacetFilter: applyChangesFromQueryFilter,\n\n applyChangesToGraphSlice: (\n facet: FacetColumnResultValues,\n value: FacetColumnResultValueCount | undefined,\n isSelected: boolean,\n ) =>\n applyChangesToValuesColumn(\n lastQueryRequest,\n facet,\n applyChangesFromQueryFilter,\n value?.value,\n isSelected,\n ),\n }\n }),\n [facets, applyChangesFromQueryFilter, lastQueryRequest],\n )\n return facetNavPanelProps\n}\n\nexport function getFacets(\n data: QueryResultBundle | undefined,\n facetsToPlot?: string[],\n): FacetColumnResult[] {\n const result =\n data?.facets?.filter(item => {\n const isFacetToPlot =\n item.facetType === 'enumeration' &&\n (!facetsToPlot?.length || facetsToPlot.indexOf(item.columnName) > -1)\n // PORTALS-1993: only plot if the facet has count data\n return (\n isFacetToPlot &&\n item.facetValues.length > 0 &&\n !isSingleNotSetValue(item)\n )\n }) ?? []\n if (facetsToPlot?.length) {\n result.sort(\n (a, b) =>\n facetsToPlot.indexOf(a.columnName) - facetsToPlot.indexOf(b.columnName),\n )\n }\n return result\n}\n"],"mappings":";;;;;;;AAeA,SAAwB,EACtB,GAIE;CACF,IAAM,EAAE,2BAAwB,2BAAwB,EAAgB,GAElE,EAAE,MAAM,MAAkB,EAA4B,GAEtD,IAAmB,QACjB,EAAuB,GAC7B,CAAC,CAAsB,CACzB,GACM,IAAS,QACP,EAAU,GAAe,CAAY,GAC3C,CAAC,GAAe,CAAY,CAC9B,GAEM,IAA8B,GACjC,MAAiC;EAChC,GACE,OACE,EAAiB,MAAM,iBAAiB,GACxC,EAAiB,MAAM,SAAS,GACzB,IAET,EAAE,UAAU,GAAK,CACnB;CACF,GACA,CAAC,CAAmB,CACtB;CA0BA,OAxB2B,QAEvB,EAAO,KAAI,OACF;EACL,aAAa;EAEb,2BAA2B;EAE3B,2BACE,GACA,GACA,MAEA,EACE,GACA,GACA,GACA,GAAO,OACP,CACF;CACJ,EACD,GACH;EAAC;EAAQ;EAA6B;CAAgB,CAEjD;AACT;AAEA,SAAgB,EACd,GACA,GACqB;CACrB,IAAM,IACJ,GAAM,QAAQ,QAAO,MAEjB,EAAK,cAAc,kBAClB,CAAC,GAAc,UAAU,EAAa,QAAQ,EAAK,UAAU,IAAI,OAIlE,EAAK,YAAY,SAAS,KAC1B,CAAC,EAAoB,CAAI,CAE5B,KAAK,CAAC;CAOT,OANI,GAAc,UAChB,EAAO,MACJ,GAAG,MACF,EAAa,QAAQ,EAAE,UAAU,IAAI,EAAa,QAAQ,EAAE,UAAU,CAC1E,GAEK;AACT"}
1
+ {"version":3,"file":"useFacetPlots.js","names":[],"sources":["../../../../src/components/widgets/facet-nav/useFacetPlots.ts"],"sourcesContent":["import {\n EnumerationFacet,\n getEnumerationFacets,\n} from '@/utils/functions/enumerationFacet'\nimport { isSingleNotSetValue } from '@/utils/functions/queryUtils'\nimport {\n FacetColumnRequest,\n FacetColumnResultValueCount,\n QueryResultBundle,\n} from '@sage-bionetworks/synapse-types'\nimport { useCallback, useMemo } from 'react'\nimport { useQueryContext } from '../../QueryContext'\nimport { useSuspenseGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport { applyChangesToValuesColumn } from '../query-filter/FacetFilterControls'\nimport { FacetNavPanelProps } from './FacetNavPanel'\n\n// Custom hook for generating properties for FacetNavPanel components with filter controls based on the given facets\nexport default function useFacetPlots(\n facetsToPlot: string[],\n): Pick<\n FacetNavPanelProps,\n 'applyChangesToFacetFilter' | 'applyChangesToGraphSlice' | 'facetToPlot'\n>[] {\n const { getCurrentQueryRequest, executeQueryRequest } = useQueryContext()\n\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n\n const lastQueryRequest = useMemo(\n () => getCurrentQueryRequest(),\n [getCurrentQueryRequest],\n )\n const facets = useMemo(\n () => getFacets(queryMetadata, facetsToPlot),\n [queryMetadata, facetsToPlot],\n )\n\n const applyChangesFromQueryFilter = useCallback(\n (facets: FacetColumnRequest[]) => {\n executeQueryRequest(\n lastQueryRequest => {\n lastQueryRequest.query.selectedFacets = facets\n lastQueryRequest.query.offset = 0\n return lastQueryRequest\n },\n { debounce: true },\n )\n },\n [executeQueryRequest],\n )\n\n const facetNavPanelProps = useMemo(\n () =>\n facets.map(facet => {\n return {\n facetToPlot: facet,\n\n applyChangesToFacetFilter: applyChangesFromQueryFilter,\n\n applyChangesToGraphSlice: (\n facet: EnumerationFacet,\n value: FacetColumnResultValueCount | undefined,\n isSelected: boolean,\n ) =>\n applyChangesToValuesColumn(\n lastQueryRequest,\n facet,\n applyChangesFromQueryFilter,\n value?.value,\n isSelected,\n ),\n }\n }),\n [facets, applyChangesFromQueryFilter, lastQueryRequest],\n )\n return facetNavPanelProps\n}\n\nexport function getFacets(\n data: QueryResultBundle | undefined,\n facetsToPlot?: string[],\n): EnumerationFacet[] {\n const result = getEnumerationFacets(\n data?.facets?.filter(facet => !isSingleNotSetValue(facet)),\n ).filter(\n facet =>\n (!facetsToPlot?.length || facetsToPlot.includes(facet.columnName)) &&\n // PORTALS-1993: only plot if the facet has count data\n facet.facetValues.length > 0,\n )\n if (facetsToPlot?.length) {\n result.sort(\n (a, b) =>\n facetsToPlot.indexOf(a.columnName) - facetsToPlot.indexOf(b.columnName),\n )\n }\n return result\n}\n"],"mappings":";;;;;;;;AAiBA,SAAwB,EACtB,GAIE;CACF,IAAM,EAAE,2BAAwB,2BAAwB,EAAgB,GAElE,EAAE,MAAM,MAAkB,EAA4B,GAEtD,IAAmB,QACjB,EAAuB,GAC7B,CAAC,CAAsB,CACzB,GACM,IAAS,QACP,EAAU,GAAe,CAAY,GAC3C,CAAC,GAAe,CAAY,CAC9B,GAEM,IAA8B,GACjC,MAAiC;EAChC,GACE,OACE,EAAiB,MAAM,iBAAiB,GACxC,EAAiB,MAAM,SAAS,GACzB,IAET,EAAE,UAAU,GAAK,CACnB;CACF,GACA,CAAC,CAAmB,CACtB;CA0BA,OAxB2B,QAEvB,EAAO,KAAI,OACF;EACL,aAAa;EAEb,2BAA2B;EAE3B,2BACE,GACA,GACA,MAEA,EACE,GACA,GACA,GACA,GAAO,OACP,CACF;CACJ,EACD,GACH;EAAC;EAAQ;EAA6B;CAAgB,CAEjD;AACT;AAEA,SAAgB,EACd,GACA,GACoB;CACpB,IAAM,IAAS,EACb,GAAM,QAAQ,QAAO,MAAS,CAAC,EAAoB,CAAK,CAAC,CAC3D,EAAE,QACA,OACG,CAAC,GAAc,UAAU,EAAa,SAAS,EAAM,UAAU,MAEhE,EAAM,YAAY,SAAS,CAC/B;CAOA,OANI,GAAc,UAChB,EAAO,MACJ,GAAG,MACF,EAAa,QAAQ,EAAE,UAAU,IAAI,EAAa,QAAQ,EAAE,UAAU,CAC1E,GAEK;AACT"}
@@ -1,10 +1,10 @@
1
1
  import { VALUE_NOT_SET as e } from "../../../utils/SynapseConstants.js";
2
+ import { useQueryVisualizationContext as t } from "../../QueryVisualizationWrapper/QueryVisualizationContext.js";
2
3
  import "../../../utils/index.js";
3
- import { useGetQueryResultBundleWithAsyncStatus as t } from "../../../synapse-queries/entity/useGetQueryResultBundle.js";
4
+ import { useGetQueryResultBundleWithAsyncStatus as n } from "../../../synapse-queries/entity/useGetQueryResultBundle.js";
4
5
  import "../../../synapse-queries/index.js";
5
- import { useQueryContext as n } from "../../QueryContext/QueryContext.js";
6
+ import { useQueryContext as r } from "../../QueryContext/QueryContext.js";
6
7
  import "../../QueryContext/index.js";
7
- import { useQueryVisualizationContext as r } from "../../QueryVisualizationWrapper/QueryVisualizationContext.js";
8
8
  import "../../QueryVisualizationWrapper/index.js";
9
9
  import { RangeFacetFilterUI as i } from "./RangeFacetFilterUI.js";
10
10
  import { useMemo as a } from "react";
@@ -13,7 +13,7 @@ import { Skeleton as s } from "@mui/material";
13
13
  import { jsx as c } from "react/jsx-runtime";
14
14
  //#region src/components/widgets/query-filter/CombinedRangeFacetFilter.tsx
15
15
  function l({ facetResults: l, label: u, columnType: d }) {
16
- let { getCurrentQueryRequest: f, setRangeFacetValue: p, removeSelectedFacet: m } = n(), { getColumnDisplayName: h } = r(), { columnName: g, selectedMax: _ } = l[0], { columnName: v, selectedMin: y } = l[1], { data: b, isLoading: x } = t(a(() => {
16
+ let { getCurrentQueryRequest: f, setRangeFacetValue: p, removeSelectedFacet: m } = r(), { getColumnDisplayName: h } = t(), { columnName: g, selectedMax: _ } = l[0], { columnName: v, selectedMin: y } = l[1], { data: b, isLoading: x } = n(a(() => {
17
17
  let e = f();
18
18
  e.partMask = 32;
19
19
  let { selectedFacets: t } = e.query;
@@ -1,7 +1,7 @@
1
- import { FacetColumnResultValues } from '@sage-bionetworks/synapse-types';
1
+ import { EnumerationFacet } from '@/utils/functions/enumerationFacet';
2
2
  export type EnumFacetFilterProps = {
3
3
  labelId?: string;
4
- facet: FacetColumnResultValues;
4
+ facet: EnumerationFacet;
5
5
  containerAs?: 'Collapsible' | 'Dropdown';
6
6
  dropdownType?: 'Icon' | 'SelectBox';
7
7
  hideCollapsible?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"EnumFacetFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.tsx"],"names":[],"mappings":"AAMA,OAAO,EAML,uBAAuB,EAIxB,MAAM,iCAAiC,CAAA;AAWxC,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,uBAAuB,CAAA;IAC9B,WAAW,CAAC,EAAE,aAAa,GAAG,UAAU,CAAA;IACxC,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IACnC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AA4MD,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CAc1D"}
1
+ {"version":3,"file":"EnumFacetFilter.d.ts","sourceRoot":"","sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAqBrE,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,gBAAgB,CAAA;IACvB,WAAW,CAAC,EAAE,aAAa,GAAG,UAAU,CAAA;IACxC,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IACnC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAiND,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,2CAc1D"}