synapse-react-client 4.0.46 → 4.0.48
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.
- package/dist/SWC.index.js +1 -1
- package/dist/aridhia-queries/useSubmitAridhiaDar.js +2 -2
- package/dist/aridhia-queries/useSubmitAridhiaDar.js.map +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
- package/dist/components/AccountLevelBadges/AccountLevelBadges.js +1 -1
- package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.test-utils.js +3 -5
- package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.d.ts.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js +43 -30
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts +6 -2
- package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts.map +1 -1
- package/dist/components/Aridhia/AridhiaDarStatusPopover.js +101 -31
- package/dist/components/Aridhia/AridhiaDarStatusPopover.js.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts +11 -9
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js +24 -13
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
- package/dist/components/Authentication/LastLoginInfo.js +2 -2
- package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
- package/dist/components/Authentication/TOTPForm.d.ts.map +1 -1
- package/dist/components/Authentication/TOTPForm.js +3 -3
- package/dist/components/Authentication/TOTPForm.js.map +1 -1
- package/dist/components/Authentication/index.d.ts +6 -6
- package/dist/components/Authentication/index.d.ts.map +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
- package/dist/components/CardContainer/CardContainer.js +7 -7
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js +1 -1
- package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.d.ts.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js +1 -1
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverUtils.js +2 -2
- package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
- package/dist/components/CohortBuilder/CohortBuilder.css +1 -0
- package/dist/components/CohortBuilder/CohortBuilder.d.ts +35 -0
- package/dist/components/CohortBuilder/CohortBuilder.d.ts.map +1 -0
- package/dist/components/CohortBuilder/CohortBuilder.js +108 -0
- package/dist/components/CohortBuilder/CohortBuilder.js.map +1 -0
- package/dist/components/CohortBuilder/CohortBuilder.module.js +10 -0
- package/dist/components/CohortBuilder/CohortBuilder.module.js.map +1 -0
- package/dist/components/CohortBuilder/CohortBuilder.module.scss +20 -0
- package/dist/components/CohortBuilder/CohortFilesPanel.d.ts +16 -0
- package/dist/components/CohortBuilder/CohortFilesPanel.d.ts.map +1 -0
- package/dist/components/CohortBuilder/CohortFilesPanel.js +124 -0
- package/dist/components/CohortBuilder/CohortFilesPanel.js.map +1 -0
- package/dist/components/CohortBuilder/cohortHandOff.d.ts +25 -0
- package/dist/components/CohortBuilder/cohortHandOff.d.ts.map +1 -0
- package/dist/components/CohortBuilder/cohortHandOff.js +26 -0
- package/dist/components/CohortBuilder/cohortHandOff.js.map +1 -0
- package/dist/components/ColumnFilter/ColumnFilter.d.ts.map +1 -1
- package/dist/components/ColumnFilter/ColumnFilter.js +14 -13
- package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts +11 -2
- package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js +115 -109
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/NumberColumn.js +1 -1
- package/dist/components/DataGrid/columns/NumberColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts +20 -0
- package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts.map +1 -0
- package/dist/components/DataGrid/columns/NumberOrEnumColumn.js +18 -0
- package/dist/components/DataGrid/columns/NumberOrEnumColumn.js.map +1 -0
- package/dist/components/DataGrid/components/contextMenu.js +3 -3
- package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.d.ts.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js +9 -7
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
- package/dist/components/DataGrid/hooks/useStack.d.ts +1 -1
- package/dist/components/DataGrid/hooks/useStack.js +2 -2
- package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js +47 -42
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js +7 -7
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js +2 -2
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js +1 -1
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js +5 -5
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.d.ts.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.js +4 -4
- package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js +4 -4
- package/dist/components/EntityHeaderTable/Filter.d.ts.map +1 -1
- package/dist/components/EntityHeaderTable/Filter.js +1 -1
- package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.d.ts.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +80 -84
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/FormTemplateEditor/FormStructurePanel.js +7 -7
- package/dist/components/FormTemplateEditor/StepCard.js +9 -9
- package/dist/components/FormTemplateEditor/schemaFieldUtils.js +2 -2
- package/dist/components/FormTemplateEditor/schemaFieldUtils.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearch.js +8 -8
- package/dist/components/GenericCard/CardUtils.js.map +1 -1
- package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js +1 -1
- package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js.map +1 -1
- package/dist/components/GenericCard/DuoTermTags/duoTerms.js +1 -1
- package/dist/components/GenericCard/DuoTermTags/duoTerms.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +37 -37
- package/dist/components/GoalsV3/GoalsV3.js +1 -1
- package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
- package/dist/components/HexGrid/HexGrid.d.ts +3 -1
- package/dist/components/HexGrid/HexGrid.d.ts.map +1 -1
- package/dist/components/HexGrid/HexGrid.js +14 -13
- package/dist/components/HexGrid/HexGrid.js.map +1 -1
- package/dist/components/IconSvg/index.d.ts +1 -1
- package/dist/components/IconSvg/index.d.ts.map +1 -1
- package/dist/components/IconSvg/index.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js +3 -3
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
- package/dist/components/Markdown/MarkdownEditor.js +1 -1
- package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
- package/dist/components/Markdown/widget/index.d.ts +1 -1
- package/dist/components/Markdown/widget/index.d.ts.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.d.ts.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.js +2 -1
- package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
- package/dist/components/Plot/BarPlot.js +1 -1
- package/dist/components/Plot/BarPlot.js.map +1 -1
- package/dist/components/Plot/PlotPanelHeader.d.ts +3 -2
- package/dist/components/Plot/PlotPanelHeader.d.ts.map +1 -1
- package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js +3 -3
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/QueryBuilder/FilterConditionRow.d.ts.map +1 -1
- package/dist/components/QueryBuilder/FilterConditionRow.js +28 -27
- package/dist/components/QueryBuilder/FilterConditionRow.js.map +1 -1
- package/dist/components/QueryBuilder/FilterGroupNode.d.ts.map +1 -1
- package/dist/components/QueryBuilder/FilterGroupNode.js +91 -75
- package/dist/components/QueryBuilder/FilterGroupNode.js.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.css +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.d.ts.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.js +91 -79
- package/dist/components/QueryBuilder/QueryBuilderControls.js.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.module.js +11 -11
- package/dist/components/QueryBuilder/QueryBuilderControls.module.js.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.module.scss +2 -0
- package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts +2 -0
- package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderInternalContext.js.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderLimits.d.ts +18 -0
- package/dist/components/QueryBuilder/queryBuilderLimits.d.ts.map +1 -0
- package/dist/components/QueryBuilder/queryBuilderLimits.js +38 -0
- package/dist/components/QueryBuilder/queryBuilderLimits.js.map +1 -0
- package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts +0 -8
- package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderMetadata.js +6 -9
- package/dist/components/QueryBuilder/queryBuilderMetadata.js.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts +5 -4
- package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderTranslation.js +58 -33
- package/dist/components/QueryBuilder/queryBuilderTranslation.js.map +1 -1
- package/dist/components/QueryBuilder/useQBCombinedSql.d.ts.map +1 -1
- package/dist/components/QueryBuilder/useQBCombinedSql.js +4 -4
- package/dist/components/QueryBuilder/useQBCombinedSql.js.map +1 -1
- package/dist/components/QueryBuilder/useQBValueDisplayName.d.ts.map +1 -1
- package/dist/components/QueryBuilder/useQBValueDisplayName.js +5 -5
- package/dist/components/QueryBuilder/useQBValueDisplayName.js.map +1 -1
- package/dist/components/QuerySortSelector.js +5 -5
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +21 -21
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts +20 -0
- package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts.map +1 -0
- package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js +50 -0
- package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js.map +1 -0
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts +5 -3
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts.map +1 -1
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js +7 -3
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
- package/dist/components/QueryWrapper/downloadListFiles.d.ts +25 -0
- package/dist/components/QueryWrapper/downloadListFiles.d.ts.map +1 -0
- package/dist/components/QueryWrapper/downloadListFiles.js +39 -0
- package/dist/components/QueryWrapper/downloadListFiles.js.map +1 -0
- package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts +16 -0
- package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts.map +1 -0
- package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js +50 -0
- package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js.map +1 -0
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts +4 -1
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts.map +1 -1
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js +15 -28
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
- package/dist/components/QueryWrapper/useOnQueryDataChange.d.ts.map +1 -1
- package/dist/components/QueryWrapper/useOnQueryDataChange.js +7 -6
- package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.d.ts +3 -1
- package/dist/components/QueryWrapperErrorBoundary.d.ts.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.js +26 -21
- package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js +7 -7
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +2 -2
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +34 -32
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js +7 -7
- package/dist/components/QueryWrapperPlotNav/UseRowSet.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js +12 -12
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
- package/dist/components/RowDataTable/CategorizedRowDataTable.css +1 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts +33 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts.map +1 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.js +64 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.js.map +1 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.module.js +8 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.module.js.map +1 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.module.scss +18 -0
- package/dist/components/RowDataTable/RowDataTable.d.ts +13 -0
- package/dist/components/RowDataTable/RowDataTable.d.ts.map +1 -1
- package/dist/components/RowDataTable/RowDataTable.js +25 -8
- package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.js +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.d.ts.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js +2 -2
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +17 -9
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +39 -30
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js +24 -24
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js +8 -8
- package/dist/components/SynapseChat/SynapseChatMessage.js +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseForm/NavButtons.js.map +1 -1
- package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HighlightedTypography.js +1 -1
- package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.d.ts.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js +3 -3
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.d.ts.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +38 -44
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js +4 -4
- package/dist/components/SynapseTable/SqlEditor.js +7 -7
- package/dist/components/SynapseTable/SynapseTable.js +8 -8
- package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.d.ts.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js +73 -72
- package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.js +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +44 -45
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.d.ts.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +142 -142
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +4 -4
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js +12 -12
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
- package/dist/components/SynapseTable/table-top/ColumnSelection.js +6 -6
- package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts +0 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js +64 -57
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.d.ts.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js +3 -3
- package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js +2 -2
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +60 -60
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.d.ts.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.js +1 -4
- package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
- package/dist/components/TotalQueryResults.js +14 -14
- package/dist/components/Webhook/WebhookDashboard.d.ts.map +1 -1
- package/dist/components/Webhook/WebhookDashboard.js +2 -2
- package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.d.ts +5 -1
- package/dist/components/download_list/DownloadConfirmationUtils.d.ts.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.js +2 -2
- package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
- package/dist/components/error/ErrorBanner.d.ts.map +1 -1
- package/dist/components/error/ErrorBanner.js +49 -46
- package/dist/components/error/ErrorBanner.js.map +1 -1
- package/dist/components/file/upload/MultiFileUploadProgress.js +5 -5
- package/dist/components/row_renderers/Dataset.d.ts.map +1 -1
- package/dist/components/row_renderers/Dataset.js +6 -6
- package/dist/components/row_renderers/Dataset.js.map +1 -1
- package/dist/components/row_renderers/Funder.js +1 -1
- package/dist/components/row_renderers/Funder.js.map +1 -1
- package/dist/components/widgets/ElementWithTooltip.d.ts +6 -1
- package/dist/components/widgets/ElementWithTooltip.d.ts.map +1 -1
- package/dist/components/widgets/ElementWithTooltip.js +22 -14
- package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.d.ts.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/components/widgets/SynapseImage.js +1 -1
- package/dist/components/widgets/SynapseImage.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts +16 -5
- package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js +115 -102
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.js +4 -2
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts +2 -0
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.d.ts +7 -0
- package/dist/components/widgets/facet-nav/PlotsContainer.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.js +47 -45
- package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js +4 -4
- package/dist/components/widgets/facet-nav/useFacetPlots.d.ts +3 -2
- package/dist/components/widgets/facet-nav/useFacetPlots.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.js +16 -15
- package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
- package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js +4 -4
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts +2 -2
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js +62 -60
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts +2 -0
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js +10 -10
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts +1 -0
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js +2 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts +3 -2
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.d.ts +3 -2
- package/dist/components/widgets/query-filter/FacetFilterControls.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js +63 -62
- package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js +30 -29
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js +5 -5
- package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts +53 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts.map +1 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js +391 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js.map +1 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts +41 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts.map +1 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js +379 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js.map +1 -0
- package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts +26 -0
- package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts.map +1 -0
- package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js +112 -0
- package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js.map +1 -0
- package/dist/mocks/mockAnnotationColumns.d.ts.map +1 -1
- package/dist/mocks/mockAnnotationColumns.js +1 -1
- package/dist/mocks/mockAnnotationColumns.js.map +1 -1
- package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +9 -0
- package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/aridhiaHandlers.js +24 -15
- package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts +21 -2
- package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.js +30 -22
- package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts +27 -0
- package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts.map +1 -0
- package/dist/mocks/msw/handlers/cohortBuilderHandlers.js +158 -0
- package/dist/mocks/msw/handlers/cohortBuilderHandlers.js.map +1 -0
- package/dist/mocks/msw/handlers/subscriptionHandlers.js +1 -1
- package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js +2 -2
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/query/mockColumnCategoryTable.d.ts +19 -0
- package/dist/mocks/query/mockColumnCategoryTable.d.ts.map +1 -0
- package/dist/mocks/query/mockColumnCategoryTable.js +188 -0
- package/dist/mocks/query/mockColumnCategoryTable.js.map +1 -0
- package/dist/stories/ColorPaletteInspector.d.ts.map +1 -1
- package/dist/stories/ColorPaletteInspector.js +2 -2
- package/dist/stories/ColorPaletteInspector.js.map +1 -1
- package/dist/style/components/facet_nav/_facet-nav-panel.scss +8 -0
- package/dist/style/main.css +1 -1
- package/dist/synapse-queries/auth/useOIDC.js +2 -2
- package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
- package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js +2 -2
- package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js.map +1 -1
- package/dist/synapse-queries/challenge/useChallenge.js +2 -2
- package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
- package/dist/synapse-queries/chat/useChat.js +8 -8
- package/dist/synapse-queries/chat/useChat.js.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js +10 -10
- package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js +24 -24
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js +4 -4
- package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useEDuc.js +6 -6
- package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useFormTemplate.js +4 -4
- package/dist/synapse-queries/dataaccess/useFormTemplate.js.map +1 -1
- package/dist/synapse-queries/download/index.js +2 -2
- package/dist/synapse-queries/download/useDownloadList.d.ts +5 -0
- package/dist/synapse-queries/download/useDownloadList.d.ts.map +1 -1
- package/dist/synapse-queries/download/useDownloadList.js +14 -13
- package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
- package/dist/synapse-queries/entity/useEntity.d.ts.map +1 -1
- package/dist/synapse-queries/entity/useEntity.js +20 -20
- package/dist/synapse-queries/entity/useEntity.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.d.ts.map +1 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.js +2 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToCavatica.d.ts.map +1 -1
- package/dist/synapse-queries/entity/useExportToCavatica.js +3 -2
- package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToPluto.d.ts.map +1 -1
- package/dist/synapse-queries/entity/useExportToPluto.js +2 -1
- package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.d.ts.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js +4 -7
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
- package/dist/synapse-queries/forum/useReply.js +6 -6
- package/dist/synapse-queries/forum/useReply.js.map +1 -1
- package/dist/synapse-queries/forum/useThread.js +14 -14
- package/dist/synapse-queries/forum/useThread.js.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
- package/dist/synapse-queries/grid/useGridSession.js +4 -4
- package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
- package/dist/synapse-queries/index.js +177 -176
- package/dist/synapse-queries/oauth/useOAuthClient.js +9 -9
- package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
- package/dist/synapse-queries/portal/usePortal.js +7 -7
- package/dist/synapse-queries/portal/usePortal.js.map +1 -1
- package/dist/synapse-queries/subscription/useSubscription.js +4 -4
- package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
- package/dist/synapse-queries/table/useTableUpdateTransaction.js +2 -2
- package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
- package/dist/synapse-queries/team/useTeam.js +2 -2
- package/dist/synapse-queries/team/useTeam.js.map +1 -1
- package/dist/synapse-queries/team/useTeamList.d.ts.map +1 -1
- package/dist/synapse-queries/team/useTeamList.js +3 -3
- package/dist/synapse-queries/team/useTeamList.js.map +1 -1
- package/dist/synapse-queries/team/useTeamMembers.js +8 -8
- package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.js +2 -2
- package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
- package/dist/synapse-queries/trash/useTrashCan.js +4 -4
- package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
- package/dist/synapse-queries/user/useCertificationQuiz.js +2 -2
- package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
- package/dist/synapse-queries/user/useFavorites.js +4 -4
- package/dist/synapse-queries/user/useFavorites.js.map +1 -1
- package/dist/synapse-queries/user/useRevokeCertification.js +2 -2
- package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
- package/dist/synapse-queries/wiki/useWiki.js +10 -10
- package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/ContentTypeUtils.js +4 -4
- package/dist/utils/ContentTypeUtils.js.map +1 -1
- package/dist/utils/PermissionLevelToAccessType.js +1 -1
- package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
- package/dist/utils/analytics/useGoogleAnalytics.js +1 -1
- package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
- package/dist/utils/context/DocumentMetadataContext.js +1 -1
- package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.d.ts.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.js +3 -3
- package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
- package/dist/utils/functions/ArrayUtils.js +2 -2
- package/dist/utils/functions/ArrayUtils.js.map +1 -1
- package/dist/utils/functions/FileHandleUtils.js +1 -1
- package/dist/utils/functions/FileHandleUtils.js.map +1 -1
- package/dist/utils/functions/RegularExpressions.js +1 -1
- package/dist/utils/functions/RegularExpressions.js.map +1 -1
- package/dist/utils/functions/StringUtils.d.ts.map +1 -1
- package/dist/utils/functions/StringUtils.js +1 -2
- package/dist/utils/functions/StringUtils.js.map +1 -1
- package/dist/utils/functions/deepLinkingUtils.js +2 -2
- package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
- package/dist/utils/functions/enumerationFacet.d.ts +26 -0
- package/dist/utils/functions/enumerationFacet.d.ts.map +1 -0
- package/dist/utils/functions/enumerationFacet.js +27 -0
- package/dist/utils/functions/enumerationFacet.js.map +1 -0
- package/dist/utils/functions/facetCountUtils.d.ts +12 -0
- package/dist/utils/functions/facetCountUtils.d.ts.map +1 -0
- package/dist/utils/functions/facetCountUtils.js +9 -0
- package/dist/utils/functions/facetCountUtils.js.map +1 -0
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/functions/getUserData.js +1 -1
- package/dist/utils/functions/getUserData.js.map +1 -1
- package/dist/utils/functions/queryUtils.d.ts +1 -1
- package/dist/utils/functions/queryUtils.d.ts.map +1 -1
- package/dist/utils/functions/queryUtils.js +26 -22
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.d.ts.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.js +17 -26
- package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
- package/dist/utils/functions/unCamelCase.js +1 -1
- package/dist/utils/functions/unCamelCase.js.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.js +5 -5
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
- package/dist/utils/hooks/useLogin.d.ts.map +1 -1
- package/dist/utils/hooks/useLogin.js +5 -5
- package/dist/utils/hooks/useLogin.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
- package/dist/utils/jsonschema/collectTopLevelProperties.d.ts +6 -0
- package/dist/utils/jsonschema/collectTopLevelProperties.d.ts.map +1 -1
- package/dist/utils/jsonschema/collectTopLevelProperties.js +1 -1
- package/dist/utils/jsonschema/collectTopLevelProperties.js.map +1 -1
- package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts +22 -0
- package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts.map +1 -0
- package/dist/utils/jsonschema/getNumberOrEnumInfo.js +39 -0
- package/dist/utils/jsonschema/getNumberOrEnumInfo.js.map +1 -0
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts +1 -0
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts.map +1 -1
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js +1 -1
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts +5 -0
- package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js +30 -15
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
- package/dist/utils/jsonschema/submissionContext.js +2 -2
- package/dist/utils/jsonschema/submissionContext.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cohortBuilderHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/cohortBuilderHandlers.ts"],"sourcesContent":["import {\n CohortBuilderMockProfile,\n DATA_REFERENCE_COLUMN_NAME,\n ELITE_MOCK_PROFILE,\n PARTICIPANT_ID_COLUMN_NAME,\n REFERENCE_TYPE_COLUMN_NAME,\n STUDY_COLUMN_NAME,\n} from '@/mocks/cohortBuilder/cohortBuilderMockProfiles'\nimport {\n CohortBuilderAccess,\n CohortBuilderMockQueryOptions,\n getCohortBuilderColumnModels,\n runCohortBuilderMockQuery,\n} from '@/mocks/cohortBuilder/cohortBuilderMockQueryEngine'\nimport {\n CohortBuilderSyntheticData,\n createCohortBuilderSyntheticData,\n} from '@/mocks/cohortBuilder/cohortBuilderSyntheticData'\nimport {\n ENTITY_HEADERS,\n ENTITY_ID,\n TABLE_QUERY_ASYNC_GET,\n TABLE_QUERY_ASYNC_START,\n} from '@/utils/APIConstants'\nimport { BUNDLE_MASK_QUERY_COUNT } from '@/utils/SynapseConstants'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n MOCK_REPO_ORIGIN,\n} from '@/utils/functions/getEndpoint'\nimport {\n AddBatchOfFilesToDownloadListRequest,\n ColumnSingleValueFilterOperator,\n ColumnSingleValueQueryFilter,\n EntityHeader,\n Query,\n QueryBundleRequest,\n Reference,\n VirtualTable,\n} from '@sage-bionetworks/synapse-types'\nimport { http, HttpHandler, HttpResponse } from 'msw'\nimport {\n AsyncJobFailure,\n dispatchEntry,\n generateAsyncJobHandlers,\n} from './asyncJobHandlers'\nimport { getEntityHandlers } from './entityHandlers'\n\nconst MOCK_MATERIAL_VIEW_ID = 'syn_MATERIAL'\n\nconst DOWNLOAD_LIST_ADD_ASYNC_START = '/repo/v1/download/list/add/async/start'\nconst DOWNLOAD_LIST_ADD_ASYNC_GET = (token: string) =>\n `/repo/v1/download/list/add/async/get/${token}`\nconst DOWNLOAD_LIST_ADD_STATS_ASYNC_START =\n '/repo/v1/download/list/add/stats/async/start'\nconst DOWNLOAD_LIST_ADD_STATS_ASYNC_GET = (token: string) =>\n `/repo/v1/download/list/add/stats/async/get/${token}`\nconst DOWNLOAD_LIST_ADD_BATCH = '/repo/v1/download/list/add'\n\n/** Synthetic files have no file handles; each is reported at this size in Download List statistics. */\nexport const MOCK_COHORT_FILE_SIZE_BYTES = 10 * 1024 * 1024\n/** The file handle of every mock Files/Datasets CSV export. */\nexport const MOCK_COHORT_CSV_FILE_HANDLE_ID = '90000003'\n\nconst syntheticDataByProfile = new Map<\n CohortBuilderMockProfile,\n CohortBuilderSyntheticData\n>()\n\n/** Synthetic data for a profile, generated once per profile and reused across handlers. */\nexport function getCohortBuilderSyntheticData(\n profile: CohortBuilderMockProfile,\n): CohortBuilderSyntheticData {\n let data = syntheticDataByProfile.get(profile)\n if (!data) {\n data = createCohortBuilderSyntheticData(profile)\n syntheticDataByProfile.set(profile, data)\n }\n return data\n}\n\nfunction getVirtualTableEntities(\n data: CohortBuilderSyntheticData,\n): VirtualTable[] {\n const { profile, dataAttributeNames } = data\n const columnModels = getCohortBuilderColumnModels(data)\n const participantColumns = [\n PARTICIPANT_ID_COLUMN_NAME,\n STUDY_COLUMN_NAME,\n ...profile.participantAttributes.map(attribute => attribute.name),\n ].join(', ')\n const dataAttributeLists = dataAttributeNames\n .map(\n name =>\n `CAST(CONCAT('[', GROUP_CONCAT(DISTINCT CONCAT('\"', ${name}, '\"')), ']') AS <STRING_LIST column>) AS ${name}`,\n )\n .join(', ')\n const dataColumns = [\n REFERENCE_TYPE_COLUMN_NAME,\n STUDY_COLUMN_NAME,\n ...dataAttributeNames,\n ].join(', ')\n const virtualTable = (\n id: string,\n name: string,\n definingSQL: string,\n columnIds: string[],\n ): VirtualTable => ({\n id,\n name,\n concreteType: 'org.sagebionetworks.repo.model.table.VirtualTable',\n parentId: 'syn90000000',\n etag: '00000000-0000-0000-0000-000000000000',\n createdOn: '2026-10-01T00:00:00.000Z',\n modifiedOn: '2026-10-01T00:00:00.000Z',\n createdBy: '0',\n modifiedBy: '0',\n versionNumber: 1,\n versionLabel: 'in progress',\n isLatestVersion: true,\n isSearchEnabled: false,\n definingSQL,\n columnIds,\n })\n return [\n virtualTable(\n profile.participantsVirtualTableId,\n `${profile.portalName} Cohort Builder Participants (synthetic)`,\n `SELECT ${participantColumns}, ${dataAttributeLists} FROM ${MOCK_MATERIAL_VIEW_ID} GROUP BY ${participantColumns}`,\n columnModels.participants.map(column => column.id!),\n ),\n virtualTable(\n profile.dataVirtualTableId,\n `${profile.portalName} Cohort Builder Files and Datasets (synthetic)`,\n `SELECT ${DATA_REFERENCE_COLUMN_NAME} AS id, name, ${dataColumns} FROM ${MOCK_MATERIAL_VIEW_ID} GROUP BY ${DATA_REFERENCE_COLUMN_NAME}, name, ${dataColumns}`,\n columnModels.dataReferences.map(column => column.id!),\n ),\n ]\n}\n\nexport type CohortBuilderHandlersOptions = CohortBuilderMockQueryOptions & {\n profile?: CohortBuilderMockProfile\n access?: CohortBuilderAccess\n backendOrigin?: string\n}\n\n/**\n * MSW handlers that emulate the Cohort Builder 2.0 VirtualTables (participant\n * and file/dataset perspectives) over synthetic data, including the\n * AGGREGATE_DATA behavior an unapproved caller sees.\n */\nexport function getCohortBuilderHandlers(\n options: CohortBuilderHandlersOptions = {},\n): HttpHandler[] {\n const {\n profile = ELITE_MOCK_PROFILE,\n access = 'AGGREGATE_ONLY',\n maxCohortValues,\n backendOrigin = getEndpoint(BackendDestinationEnum.REPO_ENDPOINT),\n } = options\n const data = getCohortBuilderSyntheticData(profile)\n\n const entityHandlers = getVirtualTableEntities(data).map(entity =>\n http.get(`${backendOrigin}${ENTITY_ID(entity.id!)}`, () =>\n HttpResponse.json(entity),\n ),\n )\n\n // Headers for the synthetic files and datasets; other references fall through to the next handler.\n const entityHeaderHandler = http.post(\n `${backendOrigin}${ENTITY_HEADERS}`,\n async ({ request }) => {\n const { references } = (await request.clone().json()) as {\n references: Reference[]\n }\n const results = references.flatMap((reference): EntityHeader[] => {\n const syntheticReference = data.references.get(reference.targetId)\n return syntheticReference\n ? [\n {\n id: syntheticReference.id,\n name: syntheticReference.name,\n type:\n syntheticReference.referenceType === 'FILE'\n ? 'org.sagebionetworks.repo.model.FileEntity'\n : 'org.sagebionetworks.repo.model.table.Dataset',\n versionNumber: 1,\n isLatestVersion: true,\n benefactorId: 90000000,\n createdOn: '2026-10-01T00:00:00.000Z',\n modifiedOn: '2026-10-01T00:00:00.000Z',\n createdBy: '0',\n modifiedBy: '0',\n },\n ]\n : []\n })\n return results.length > 0 ? HttpResponse.json({ results }) : undefined\n },\n )\n\n const queryHandlers = [\n profile.participantsVirtualTableId,\n profile.dataVirtualTableId,\n ].flatMap(entityId =>\n generateAsyncJobHandlers(\n dispatchEntry(\n 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n request => {\n const result = runCohortBuilderMockQuery(\n data,\n // The async-job mocks type request bodies with the generated client models; the engine uses the legacy\n // QueryBundleRequest, whose shape matches what the client sends.\n request as unknown as QueryBundleRequest,\n access,\n { maxCohortValues },\n )\n return result.status === 200\n ? result.body\n : new AsyncJobFailure(result.status, result.body)\n },\n ),\n {\n asyncTypeServicePaths: {\n requestPath: TABLE_QUERY_ASYNC_START(entityId),\n responsePath: tokenParam =>\n TABLE_QUERY_ASYNC_GET(entityId, tokenParam),\n },\n backendOrigin,\n },\n ),\n )\n\n // Counts a Files/Datasets query's rows as this caller sees them, optionally only the file rows.\n function countDataRows(\n requestQuery: unknown,\n onlyFiles: boolean,\n ): number | AsyncJobFailure {\n // The async-job mocks type request bodies with the generated client models; the engine uses the legacy Query,\n // whose shape (including cohorts) matches what the client sends.\n const query = requestQuery as Query\n const fileFilter: ColumnSingleValueQueryFilter = {\n concreteType:\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter',\n columnName: REFERENCE_TYPE_COLUMN_NAME,\n operator: ColumnSingleValueFilterOperator.EQUAL,\n values: ['FILE'],\n }\n const result = runCohortBuilderMockQuery(\n data,\n {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n entityId: profile.dataVirtualTableId,\n partMask: BUNDLE_MASK_QUERY_COUNT,\n query: onlyFiles\n ? {\n ...query,\n additionalFilters: [\n ...(query.additionalFilters ?? []),\n fileFilter,\n ],\n }\n : query,\n },\n access,\n { maxCohortValues },\n )\n // A count-only request returns a bundle with queryCount; anything else is an error body.\n return 'queryCount' in result.body\n ? (result.body.queryCount ?? 0)\n : new AsyncJobFailure(result.status, result.body)\n }\n\n // As on the server: the statistics count every row of the query, but only files are added. Datasets are skipped\n // until the server adds a dataset's files instead (PLFM-9997). Adding a VirtualTable query needs a version column,\n // which these tables don't have, unless the current versions are requested.\n const downloadListHandlers = [\n ...generateAsyncJobHandlers(\n dispatchEntry(\n 'org.sagebionetworks.repo.model.download.AddToDownloadListStatsRequest',\n request => {\n const fileCount = countDataRows(request.request?.query, false)\n const filesOnly = countDataRows(request.request?.query, true)\n if (fileCount instanceof AsyncJobFailure) return fileCount\n if (filesOnly instanceof AsyncJobFailure) return filesOnly\n return {\n concreteType:\n 'org.sagebionetworks.repo.model.download.AddToDownloadListStatsResponse',\n fileCount,\n fileSize: filesOnly * MOCK_COHORT_FILE_SIZE_BYTES,\n isFileCountAndSizeEstimate: false,\n }\n },\n ),\n {\n asyncTypeServicePaths: {\n requestPath: DOWNLOAD_LIST_ADD_STATS_ASYNC_START,\n responsePath: DOWNLOAD_LIST_ADD_STATS_ASYNC_GET,\n },\n backendOrigin,\n },\n ),\n ...generateAsyncJobHandlers(\n dispatchEntry(\n 'org.sagebionetworks.repo.model.download.AddToDownloadListRequest',\n request => {\n if (\n request.useVersionNumber !== false &&\n request.query?.selectFileVersionColumn === undefined\n ) {\n return new AsyncJobFailure(400, {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `'${profile.dataVirtualTableId}' is not a file view or a dataset, the query.selectFileVersionColumn must be specified`,\n })\n }\n const numberOfFilesAdded = countDataRows(request.query, true)\n return numberOfFilesAdded instanceof AsyncJobFailure\n ? numberOfFilesAdded\n : {\n concreteType:\n 'org.sagebionetworks.repo.model.download.AddToDownloadListResponse',\n numberOfFilesAdded,\n }\n },\n ),\n {\n asyncTypeServicePaths: {\n requestPath: DOWNLOAD_LIST_ADD_ASYNC_START,\n responsePath: DOWNLOAD_LIST_ADD_ASYNC_GET,\n },\n backendOrigin,\n },\n ),\n http.post(\n `${backendOrigin}${DOWNLOAD_LIST_ADD_BATCH}`,\n async ({ request }) => {\n const { batchToAdd } =\n (await request.json()) as AddBatchOfFilesToDownloadListRequest\n const numberOfFilesAdded = batchToAdd.filter(\n item =>\n data.references.get(item.fileEntityId)?.referenceType === 'FILE',\n ).length\n return HttpResponse.json({ numberOfFilesAdded })\n },\n ),\n ]\n\n // The CSV export resolves the request's cohorts like a query, so a cohort reference without its definition fails.\n const csvExportHandlers = generateAsyncJobHandlers(\n dispatchEntry(\n 'org.sagebionetworks.repo.model.table.DownloadFromTableRequest',\n request => {\n const rowCount = countDataRows(request, false)\n return rowCount instanceof AsyncJobFailure\n ? rowCount\n : {\n concreteType:\n 'org.sagebionetworks.repo.model.table.DownloadFromTableResult',\n resultsFileHandleId: MOCK_COHORT_CSV_FILE_HANDLE_ID,\n tableId: profile.dataVirtualTableId,\n }\n },\n ),\n {\n asyncTypeServicePaths: {\n requestPath: `/repo/v1/entity/${profile.dataVirtualTableId}/table/download/csv/async/start`,\n responsePath: token =>\n `/repo/v1/entity/${profile.dataVirtualTableId}/table/download/csv/async/get/${token}`,\n },\n backendOrigin,\n },\n )\n\n return [\n ...entityHandlers,\n entityHeaderHandler,\n ...queryHandlers,\n ...downloadListHandlers,\n ...csvExportHandlers,\n ]\n}\n\n/**\n * Storybook MSW handler groups that serve the Cohort Builder mocks on the mock stack. They replace the `entity` group so\n * they run before the stock entity handlers, which answer 404 for unknown entity IDs.\n */\nexport function getCohortBuilderStorybookHandlers(\n options: Omit<CohortBuilderHandlersOptions, 'backendOrigin'> = {},\n): Record<string, HttpHandler[]> {\n return {\n entity: [\n ...getCohortBuilderHandlers({\n ...options,\n backendOrigin: MOCK_REPO_ORIGIN,\n }),\n ...getEntityHandlers(MOCK_REPO_ORIGIN),\n ],\n }\n}\n"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ var a = new n({
|
|
|
9
9
|
autoGenerateId: !0
|
|
10
10
|
});
|
|
11
11
|
function o(e, t = "ASC", n = 0, r = 10, i) {
|
|
12
|
-
let o = a.getAll().filter((t) => e ? t.objectType === e : !0).filter((e) => i ? i.includes(e.objectId) : !0).
|
|
12
|
+
let o = a.getAll().filter((t) => e ? t.objectType === e : !0).filter((e) => i ? i.includes(e.objectId) : !0).toSorted((e, n) => {
|
|
13
13
|
let r = new Date(n.createdOn).getTime() - new Date(e.createdOn).getTime();
|
|
14
14
|
return t === "ASC" ? r : -1 * r;
|
|
15
15
|
}), s = o.length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriptionHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/subscriptionHandlers.ts"],"sourcesContent":["import {\n SortDirection,\n SubscriberPagedResults,\n Subscription,\n SubscriptionObjectType,\n SubscriptionPagedResults,\n SubscriptionRequest,\n Topic,\n} from '@sage-bionetworks/synapse-types'\nimport { http, HttpResponse } from 'msw'\nimport { forumSubscriptions, threadSubscriptions } from '../../mockSubscription'\nimport { MOCK_USER_ID } from '../../user/mock_user_profile'\nimport { SynapseApiResponse } from '../handlers'\nimport BasicMockedCrudService from '../util/BasicMockedCrudService'\n\nconst subscriptionService = new BasicMockedCrudService<\n Subscription,\n 'subscriptionId'\n>({\n initialData: [...forumSubscriptions, ...threadSubscriptions],\n idField: 'subscriptionId',\n autoGenerateId: true,\n})\n\nfunction getSubscriptions(\n objectType?: SubscriptionObjectType,\n sortDirection: SortDirection = 'ASC',\n offset = 0,\n limit = 10,\n idList?: string[],\n): SubscriptionPagedResults {\n const allResults = subscriptionService\n .getAll()\n .filter(s => {\n if (objectType) {\n return s.objectType === objectType\n }\n return true\n })\n .filter(s => {\n if (idList) {\n return idList.includes(s.objectId)\n }\n return true\n })\n .
|
|
1
|
+
{"version":3,"file":"subscriptionHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/subscriptionHandlers.ts"],"sourcesContent":["import {\n SortDirection,\n SubscriberPagedResults,\n Subscription,\n SubscriptionObjectType,\n SubscriptionPagedResults,\n SubscriptionRequest,\n Topic,\n} from '@sage-bionetworks/synapse-types'\nimport { http, HttpResponse } from 'msw'\nimport { forumSubscriptions, threadSubscriptions } from '../../mockSubscription'\nimport { MOCK_USER_ID } from '../../user/mock_user_profile'\nimport { SynapseApiResponse } from '../handlers'\nimport BasicMockedCrudService from '../util/BasicMockedCrudService'\n\nconst subscriptionService = new BasicMockedCrudService<\n Subscription,\n 'subscriptionId'\n>({\n initialData: [...forumSubscriptions, ...threadSubscriptions],\n idField: 'subscriptionId',\n autoGenerateId: true,\n})\n\nfunction getSubscriptions(\n objectType?: SubscriptionObjectType,\n sortDirection: SortDirection = 'ASC',\n offset = 0,\n limit = 10,\n idList?: string[],\n): SubscriptionPagedResults {\n const allResults = subscriptionService\n .getAll()\n .filter(s => {\n if (objectType) {\n return s.objectType === objectType\n }\n return true\n })\n .filter(s => {\n if (idList) {\n return idList.includes(s.objectId)\n }\n return true\n })\n .toSorted((a, b) => {\n const val =\n new Date(b.createdOn).getTime() - new Date(a.createdOn).getTime()\n return sortDirection === 'ASC' ? val : -1 * val\n })\n\n const totalNumberOfResults = allResults.length\n\n return {\n results: allResults.slice(offset, offset + limit),\n totalNumberOfResults,\n }\n}\n\nexport function getSubscriptionHandlers(backendOrigin: string) {\n return [\n http.get(`${backendOrigin}/repo/v1/subscription/all`, ({ request }) => {\n const objectType =\n (new URL(request.url).searchParams.get(\n 'objectType',\n ) as SubscriptionObjectType) ?? undefined\n const sortDirection =\n (new URL(request.url).searchParams.get(\n 'sortDirection',\n ) as SortDirection) ?? undefined\n const offsetParam = new URL(request.url).searchParams.get('offset')\n const offset = offsetParam ? parseInt(offsetParam) : undefined\n const limitParam = new URL(request.url).searchParams.get('limit')\n const limit = limitParam ? parseInt(limitParam) : undefined\n\n const resp: SynapseApiResponse<SubscriptionPagedResults> =\n getSubscriptions(objectType ?? undefined, sortDirection, offset, limit)\n\n return HttpResponse.json(resp, { status: 200 })\n }),\n http.post<never, SubscriptionRequest>(\n `${backendOrigin}/repo/v1/subscription/list`,\n async ({ request }) => {\n const requestBody: SubscriptionRequest = await request.json()\n\n const resp: SynapseApiResponse<SubscriptionPagedResults> =\n getSubscriptions(\n requestBody.objectType,\n requestBody.sortDirection,\n undefined,\n undefined,\n requestBody.idList,\n )\n\n return HttpResponse.json(resp, { status: 200 })\n },\n ),\n http.post<never, Topic>(\n `${backendOrigin}/repo/v1/subscription`,\n async ({ request }) => {\n const requestBody: Topic = await request.json()\n\n const newSubscription = subscriptionService.create({\n subscriberId: String(MOCK_USER_ID),\n objectId: requestBody.objectId,\n objectType: requestBody.objectType,\n createdOn: new Date().toISOString(),\n })\n return HttpResponse.json(newSubscription, { status: 201 })\n },\n ),\n http.delete(`${backendOrigin}/repo/v1/subscription/:id`, ({ params }) => {\n const subscriptionId = params.id as string\n subscriptionService.delete(subscriptionId)\n return new Response('', { status: 200 })\n }),\n http.post<never, Topic>(\n `${backendOrigin}/repo/v1/subscription/subscribers`,\n async ({ request }) => {\n const topic: Topic = await request.json()\n\n const matchingSubscriptions = subscriptionService.getMany(\n s =>\n s.objectType === topic.objectType && s.objectId === topic.objectId,\n )\n\n const resp: SubscriberPagedResults = {\n subscribers: matchingSubscriptions.map(s => s.subscriberId),\n }\n return HttpResponse.json(resp, { status: 200 })\n },\n ),\n ]\n}\n"],"mappings":";;;;;AAeA,IAAM,IAAsB,IAAI,EAG9B;CACA,aAAa,CAAC,GAAG,GAAoB,GAAG,CAAmB;CAC3D,SAAS;CACT,gBAAgB;AAClB,CAAC;AAED,SAAS,EACP,GACA,IAA+B,OAC/B,IAAS,GACT,IAAQ,IACR,GAC0B;CAC1B,IAAM,IAAa,EAChB,OAAO,EACP,QAAO,MACF,IACK,EAAE,eAAe,IAEnB,EACR,EACA,QAAO,MACF,IACK,EAAO,SAAS,EAAE,QAAQ,IAE5B,EACR,EACA,UAAU,GAAG,MAAM;EAClB,IAAM,IACJ,IAAI,KAAK,EAAE,SAAS,EAAE,QAAQ,IAAI,IAAI,KAAK,EAAE,SAAS,EAAE,QAAQ;EAClE,OAAO,MAAkB,QAAQ,IAAM,KAAK;CAC9C,CAAC,GAEG,IAAuB,EAAW;CAExC,OAAO;EACL,SAAS,EAAW,MAAM,GAAQ,IAAS,CAAK;EAChD;CACF;AACF;AAEA,SAAgB,EAAwB,GAAuB;CAC7D,OAAO;EACL,EAAK,IAAI,GAAG,EAAc,6BAA6B,EAAE,iBAAc;GACrE,IAAM,IACH,IAAI,IAAI,EAAQ,GAAG,EAAE,aAAa,IACjC,YACF,KAAgC,KAAA,GAC5B,IACH,IAAI,IAAI,EAAQ,GAAG,EAAE,aAAa,IACjC,eACF,KAAuB,KAAA,GACnB,IAAc,IAAI,IAAI,EAAQ,GAAG,EAAE,aAAa,IAAI,QAAQ,GAC5D,IAAS,IAAc,SAAS,CAAW,IAAI,KAAA,GAC/C,IAAa,IAAI,IAAI,EAAQ,GAAG,EAAE,aAAa,IAAI,OAAO,GAG1D,IACJ,EAAiB,KAAc,KAAA,GAAW,GAAe,GAH7C,IAAa,SAAS,CAAU,IAAI,KAAA,CAGsB;GAExE,OAAO,EAAa,KAAK,GAAM,EAAE,QAAQ,IAAI,CAAC;EAChD,CAAC;EACD,EAAK,KACH,GAAG,EAAc,6BACjB,OAAO,EAAE,iBAAc;GACrB,IAAM,IAAmC,MAAM,EAAQ,KAAK,GAEtD,IACJ,EACE,EAAY,YACZ,EAAY,eACZ,KAAA,GACA,KAAA,GACA,EAAY,MACd;GAEF,OAAO,EAAa,KAAK,GAAM,EAAE,QAAQ,IAAI,CAAC;EAChD,CACF;EACA,EAAK,KACH,GAAG,EAAc,wBACjB,OAAO,EAAE,iBAAc;GACrB,IAAM,IAAqB,MAAM,EAAQ,KAAK,GAExC,IAAkB,EAAoB,OAAO;IACjD,cAAc;IACd,UAAU,EAAY;IACtB,YAAY,EAAY;IACxB,4BAAW,IAAI,KAAK,GAAE,YAAY;GACpC,CAAC;GACD,OAAO,EAAa,KAAK,GAAiB,EAAE,QAAQ,IAAI,CAAC;EAC3D,CACF;EACA,EAAK,OAAO,GAAG,EAAc,6BAA6B,EAAE,gBAAa;GACvE,IAAM,IAAiB,EAAO;GAE9B,OADA,EAAoB,OAAO,CAAc,GAClC,IAAI,SAAS,IAAI,EAAE,QAAQ,IAAI,CAAC;EACzC,CAAC;EACD,EAAK,KACH,GAAG,EAAc,oCACjB,OAAO,EAAE,iBAAc;GACrB,IAAM,IAAe,MAAM,EAAQ,KAAK,GAOlC,IAA+B,EACnC,aAN4B,EAAoB,SAChD,MACE,EAAE,eAAe,EAAM,cAAc,EAAE,aAAa,EAAM,QAI/C,EAAsB,KAAI,MAAK,EAAE,YAAY,EAC5D;GACA,OAAO,EAAa,KAAK,GAAM,EAAE,QAAQ,IAAI,CAAC;EAChD,CACF;CACF;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userProfileHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/userProfileHandlers.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,sBAAsB,GAAI,eAAe,MAAM,
|
|
1
|
+
{"version":3,"file":"userProfileHandlers.d.ts","sourceRoot":"","sources":["../../../../src/mocks/msw/handlers/userProfileHandlers.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,sBAAsB,GAAI,eAAe,MAAM,gCA0L3D,CAAA;AAED,wBAAgB,uCAAuC,CACrD,aAAa,EAAE,MAAM,EACrB,WAAW,EAAE,OAAO,EACpB,WAAW,EAAE,OAAO,6BAYrB"}
|
|
@@ -34,7 +34,7 @@ var v = (v) => [
|
|
|
34
34
|
return g.json(n, { status: 200 });
|
|
35
35
|
}),
|
|
36
36
|
_.post(`${v}${s}`, async ({ request: e }) => {
|
|
37
|
-
let t = ((await e.json()).list ?? []).map(String), n = { list: d.filter((e) => t.
|
|
37
|
+
let t = new Set(((await e.json()).list ?? []).map(String)), n = { list: d.filter((e) => t.has(e.id.toString())).map((e) => e.userProfile).filter((e) => e != null) };
|
|
38
38
|
return g.json(n, { status: 200 });
|
|
39
39
|
}),
|
|
40
40
|
_.get(`${v}${i}`, ({ request: e }) => {
|
|
@@ -43,7 +43,7 @@ var v = (v) => [
|
|
|
43
43
|
}),
|
|
44
44
|
_.get(`${v}${n(":userId")}`, ({ params: e }) => e.userId === "999" ? g.json(l, { status: 200 }) : g.json({ reason: "Mock user has no profile image" }, { status: 404 })),
|
|
45
45
|
_.get(l, () => {
|
|
46
|
-
let e = Uint8Array.from(atob("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII="), (e) => e.
|
|
46
|
+
let e = Uint8Array.from(atob("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII="), (e) => e.codePointAt(0));
|
|
47
47
|
return g.arrayBuffer(e.buffer, { headers: { "Content-Type": "image/png" } });
|
|
48
48
|
}),
|
|
49
49
|
_.get(`${v}${t}`, () => g.json({ email: u.userProfile?.email }, { status: 200 })),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"userProfileHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/userProfileHandlers.ts"],"sourcesContent":["import { UserProfileList } from '@/synapse-client/SynapseClient'\nimport {\n FAVORITES,\n NOTIFICATION_EMAIL,\n PROFILE_IMAGE_PREVIEW,\n USER_BUNDLE,\n USER_GROUP_HEADERS,\n USER_GROUP_HEADERS_BATCH,\n USER_ID_BUNDLE,\n USER_PROFILE,\n USER_PROFILE_ID,\n} from '@/utils/APIConstants'\nimport { IdList } from '@sage-bionetworks/synapse-client'\nimport {\n TwoFactorAuthStatus,\n TYPE_FILTER,\n UserBundle,\n UserGroupHeaderResponsePage,\n UserProfile,\n} from '@sage-bionetworks/synapse-types'\nimport { http, HttpResponse } from 'msw'\nimport { mockPaginatedEntityHeaders } from '../../entity/mockEntity'\nimport {\n MOCK_USER_ID,\n MOCK_USER_PROFILE_IMAGE_URL,\n mockUserBundle,\n mockUserData,\n mockUserProfileData,\n} from '../../user/mock_user_profile'\nimport { mockUserGroupData } from '../../usergroup/mockUserGroup'\nimport { SynapseApiResponse } from '../handlers'\n\nexport const getUserProfileHandlers = (backendOrigin: string) => [\n /**\n * Get User Profile by ID\n */\n http.get(`${backendOrigin}${USER_PROFILE_ID(':id')}`, ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<UserProfile> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a user profile with ID ${params.id}`,\n }\n const match = mockUserData.find(\n userData => userData.id.toString() === params.id,\n )\n if (match?.userProfile) {\n response = match.userProfile\n status = 200\n }\n return HttpResponse.json(response, { status })\n }),\n\n /**\n * Get the caller's user profile\n */\n http.get(`${backendOrigin}${USER_PROFILE}`, () => {\n // default return a mock UserProfile.\n const response: UserProfile = mockUserProfileData\n const status = 200\n return HttpResponse.json(response, { status })\n }),\n\n /**\n * Get the caller's user bundle\n */\n http.get(`${backendOrigin}${USER_BUNDLE}`, () => {\n const result: UserBundle = mockUserBundle\n return HttpResponse.json(result, { status: 200 })\n }),\n\n /**\n * Get a user bundle by ID\n */\n http.get(`${backendOrigin}${USER_ID_BUNDLE(':id')}`, ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<UserBundle> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a user bundle with ID ${params.id}`,\n }\n const match = mockUserData.find(\n userData => userData.id.toString() === params.id,\n )\n if (match?.userBundle) {\n response = match.userBundle\n status = 200\n }\n return HttpResponse.json(response, { status })\n }),\n\n /**\n * Get the caller's favorites\n */\n http.get(`${backendOrigin}${FAVORITES}`, () => {\n return HttpResponse.json(mockPaginatedEntityHeaders, { status: 200 })\n }),\n\n /**\n * Get a batch of user group headers\n */\n http.get(`${backendOrigin}${USER_GROUP_HEADERS_BATCH}`, ({ request }) => {\n const ids = new URL(request.url).searchParams.get('ids')!.split(',')\n const responsePage: UserGroupHeaderResponsePage = {\n children: mockUserGroupData\n .filter(userData => ids.includes(userData.id.toString()))\n .map(userData => userData.userGroupHeader),\n }\n return HttpResponse.json(responsePage, { status: 200 })\n }),\n\n /**\n * Get a batch of user profiles\n */\n http.post<never, IdList>(\n `${backendOrigin}${USER_PROFILE}`,\n async ({ request }) => {\n const requestedList = ((await request.json()).list ?? []).map(String)\n const responsePage: UserProfileList = {\n list: mockUserData\n .filter(userData => requestedList.includes(userData.id.toString()))\n .map(userData => userData.userProfile)\n .filter(\n (userProfile): userProfile is UserProfile => userProfile != null,\n ),\n }\n return HttpResponse.json(responsePage, { status: 200 })\n },\n ),\n\n /**\n * Get userGroupHeaders by prefix\n */\n http.get(`${backendOrigin}${USER_GROUP_HEADERS}`, ({ request }) => {\n const prefix = (\n new URL(request.url).searchParams.get('prefix') ?? ''\n ).toLowerCase()\n const typeFilter = new URL(request.url).searchParams.get(\n 'typeFilter',\n ) as TYPE_FILTER\n const responsePage: UserGroupHeaderResponsePage = {\n children: mockUserGroupData\n .filter(userData => {\n if (!typeFilter || typeFilter === TYPE_FILTER.ALL) {\n return true\n } else if (typeFilter === TYPE_FILTER.USERS_ONLY) {\n return userData.userGroupHeader.isIndividual\n } else {\n return !userData.userGroupHeader.isIndividual\n }\n })\n .filter(\n userData =>\n userData.userGroupHeader.userName\n .toLowerCase()\n .startsWith(prefix) ||\n (userData.userGroupHeader.firstName || '')\n .toLowerCase()\n .startsWith(prefix) ||\n (userData.userGroupHeader.displayName || '')\n .toLowerCase()\n .startsWith(prefix) ||\n (userData.userGroupHeader.lastName || '')\n .toLowerCase()\n .startsWith(prefix),\n )\n .map(userData => userData.userGroupHeader),\n }\n return HttpResponse.json(responsePage, { status: 200 })\n }),\n\n /**\n * Return a presigned URL for the current mock user's profile image, and a 404 for every\n * other user (i.e. they have no profile image).\n */\n http.get(\n `${backendOrigin}${PROFILE_IMAGE_PREVIEW(':userId')}`,\n ({ params }) => {\n if (params.userId === String(MOCK_USER_ID)) {\n return HttpResponse.json(MOCK_USER_PROFILE_IMAGE_URL, { status: 200 })\n }\n return HttpResponse.json(\n { reason: 'Mock user has no profile image' },\n { status: 404 },\n )\n },\n ),\n\n /**\n * `MOCK_USER_PROFILE_IMAGE_URL` is a \"presigned URL\" pointing to a real external image, to\n * resemble a real Synapse presigned URL response. Intercept the actual fetch of that URL so\n * tests don't depend on a live network call to a third party, which is slow and flaky in CI.\n */\n http.get(MOCK_USER_PROFILE_IMAGE_URL, () => {\n // A minimal 1x1 transparent PNG\n const onePixelPngBase64 =\n 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII='\n const bytes = Uint8Array.from(atob(onePixelPngBase64), c => c.charCodeAt(0))\n return HttpResponse.arrayBuffer(bytes.buffer, {\n headers: { 'Content-Type': 'image/png' },\n })\n }),\n\n http.get(`${backendOrigin}${NOTIFICATION_EMAIL}`, () => {\n return HttpResponse.json(\n { email: mockUserBundle.userProfile?.email },\n { status: 200 },\n )\n }),\n\n http.get(`${backendOrigin}/auth/v1/2fa`, () => {\n const response: TwoFactorAuthStatus = {\n status: 'ENABLED',\n }\n return HttpResponse.json(response, { status: 200 })\n }),\n]\n\nexport function getCurrentUserCertifiedValidatedHandler(\n backendOrigin: string,\n isCertified: boolean,\n isValidated: boolean,\n) {\n return http.get(`${backendOrigin}${USER_BUNDLE}`, () => {\n const status = 200\n const response: UserBundle = {\n ...mockUserBundle,\n isCertified: isCertified,\n isVerified: isValidated,\n }\n\n return HttpResponse.json(response, { status })\n })\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"userProfileHandlers.js","names":[],"sources":["../../../../src/mocks/msw/handlers/userProfileHandlers.ts"],"sourcesContent":["import { UserProfileList } from '@/synapse-client/SynapseClient'\nimport {\n FAVORITES,\n NOTIFICATION_EMAIL,\n PROFILE_IMAGE_PREVIEW,\n USER_BUNDLE,\n USER_GROUP_HEADERS,\n USER_GROUP_HEADERS_BATCH,\n USER_ID_BUNDLE,\n USER_PROFILE,\n USER_PROFILE_ID,\n} from '@/utils/APIConstants'\nimport { IdList } from '@sage-bionetworks/synapse-client'\nimport {\n TwoFactorAuthStatus,\n TYPE_FILTER,\n UserBundle,\n UserGroupHeaderResponsePage,\n UserProfile,\n} from '@sage-bionetworks/synapse-types'\nimport { http, HttpResponse } from 'msw'\nimport { mockPaginatedEntityHeaders } from '../../entity/mockEntity'\nimport {\n MOCK_USER_ID,\n MOCK_USER_PROFILE_IMAGE_URL,\n mockUserBundle,\n mockUserData,\n mockUserProfileData,\n} from '../../user/mock_user_profile'\nimport { mockUserGroupData } from '../../usergroup/mockUserGroup'\nimport { SynapseApiResponse } from '../handlers'\n\nexport const getUserProfileHandlers = (backendOrigin: string) => [\n /**\n * Get User Profile by ID\n */\n http.get(`${backendOrigin}${USER_PROFILE_ID(':id')}`, ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<UserProfile> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a user profile with ID ${params.id}`,\n }\n const match = mockUserData.find(\n userData => userData.id.toString() === params.id,\n )\n if (match?.userProfile) {\n response = match.userProfile\n status = 200\n }\n return HttpResponse.json(response, { status })\n }),\n\n /**\n * Get the caller's user profile\n */\n http.get(`${backendOrigin}${USER_PROFILE}`, () => {\n // default return a mock UserProfile.\n const response: UserProfile = mockUserProfileData\n const status = 200\n return HttpResponse.json(response, { status })\n }),\n\n /**\n * Get the caller's user bundle\n */\n http.get(`${backendOrigin}${USER_BUNDLE}`, () => {\n const result: UserBundle = mockUserBundle\n return HttpResponse.json(result, { status: 200 })\n }),\n\n /**\n * Get a user bundle by ID\n */\n http.get(`${backendOrigin}${USER_ID_BUNDLE(':id')}`, ({ params }) => {\n let status = 404\n let response: SynapseApiResponse<UserBundle> = {\n concreteType: 'org.sagebionetworks.repo.model.ErrorResponse',\n reason: `Mock Service worker could not find a user bundle with ID ${params.id}`,\n }\n const match = mockUserData.find(\n userData => userData.id.toString() === params.id,\n )\n if (match?.userBundle) {\n response = match.userBundle\n status = 200\n }\n return HttpResponse.json(response, { status })\n }),\n\n /**\n * Get the caller's favorites\n */\n http.get(`${backendOrigin}${FAVORITES}`, () => {\n return HttpResponse.json(mockPaginatedEntityHeaders, { status: 200 })\n }),\n\n /**\n * Get a batch of user group headers\n */\n http.get(`${backendOrigin}${USER_GROUP_HEADERS_BATCH}`, ({ request }) => {\n const ids = new URL(request.url).searchParams.get('ids')!.split(',')\n const responsePage: UserGroupHeaderResponsePage = {\n children: mockUserGroupData\n .filter(userData => ids.includes(userData.id.toString()))\n .map(userData => userData.userGroupHeader),\n }\n return HttpResponse.json(responsePage, { status: 200 })\n }),\n\n /**\n * Get a batch of user profiles\n */\n http.post<never, IdList>(\n `${backendOrigin}${USER_PROFILE}`,\n async ({ request }) => {\n const requestedList = new Set(\n ((await request.json()).list ?? []).map(String),\n )\n const responsePage: UserProfileList = {\n list: mockUserData\n .filter(userData => requestedList.has(userData.id.toString()))\n .map(userData => userData.userProfile)\n .filter(\n (userProfile): userProfile is UserProfile => userProfile != null,\n ),\n }\n return HttpResponse.json(responsePage, { status: 200 })\n },\n ),\n\n /**\n * Get userGroupHeaders by prefix\n */\n http.get(`${backendOrigin}${USER_GROUP_HEADERS}`, ({ request }) => {\n const prefix = (\n new URL(request.url).searchParams.get('prefix') ?? ''\n ).toLowerCase()\n const typeFilter = new URL(request.url).searchParams.get(\n 'typeFilter',\n ) as TYPE_FILTER\n const responsePage: UserGroupHeaderResponsePage = {\n children: mockUserGroupData\n .filter(userData => {\n if (!typeFilter || typeFilter === TYPE_FILTER.ALL) {\n return true\n } else if (typeFilter === TYPE_FILTER.USERS_ONLY) {\n return userData.userGroupHeader.isIndividual\n } else {\n return !userData.userGroupHeader.isIndividual\n }\n })\n .filter(\n userData =>\n userData.userGroupHeader.userName\n .toLowerCase()\n .startsWith(prefix) ||\n (userData.userGroupHeader.firstName || '')\n .toLowerCase()\n .startsWith(prefix) ||\n (userData.userGroupHeader.displayName || '')\n .toLowerCase()\n .startsWith(prefix) ||\n (userData.userGroupHeader.lastName || '')\n .toLowerCase()\n .startsWith(prefix),\n )\n .map(userData => userData.userGroupHeader),\n }\n return HttpResponse.json(responsePage, { status: 200 })\n }),\n\n /**\n * Return a presigned URL for the current mock user's profile image, and a 404 for every\n * other user (i.e. they have no profile image).\n */\n http.get(\n `${backendOrigin}${PROFILE_IMAGE_PREVIEW(':userId')}`,\n ({ params }) => {\n if (params.userId === String(MOCK_USER_ID)) {\n return HttpResponse.json(MOCK_USER_PROFILE_IMAGE_URL, { status: 200 })\n }\n return HttpResponse.json(\n { reason: 'Mock user has no profile image' },\n { status: 404 },\n )\n },\n ),\n\n /**\n * `MOCK_USER_PROFILE_IMAGE_URL` is a \"presigned URL\" pointing to a real external image, to\n * resemble a real Synapse presigned URL response. Intercept the actual fetch of that URL so\n * tests don't depend on a live network call to a third party, which is slow and flaky in CI.\n */\n http.get(MOCK_USER_PROFILE_IMAGE_URL, () => {\n // A minimal 1x1 transparent PNG\n const onePixelPngBase64 =\n 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII='\n const bytes = Uint8Array.from(atob(onePixelPngBase64), c =>\n c.codePointAt(0)!,\n )\n return HttpResponse.arrayBuffer(bytes.buffer, {\n headers: { 'Content-Type': 'image/png' },\n })\n }),\n\n http.get(`${backendOrigin}${NOTIFICATION_EMAIL}`, () => {\n return HttpResponse.json(\n { email: mockUserBundle.userProfile?.email },\n { status: 200 },\n )\n }),\n\n http.get(`${backendOrigin}/auth/v1/2fa`, () => {\n const response: TwoFactorAuthStatus = {\n status: 'ENABLED',\n }\n return HttpResponse.json(response, { status: 200 })\n }),\n]\n\nexport function getCurrentUserCertifiedValidatedHandler(\n backendOrigin: string,\n isCertified: boolean,\n isValidated: boolean,\n) {\n return http.get(`${backendOrigin}${USER_BUNDLE}`, () => {\n const status = 200\n const response: UserBundle = {\n ...mockUserBundle,\n isCertified: isCertified,\n isVerified: isValidated,\n }\n\n return HttpResponse.json(response, { status })\n })\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { QueryResultBundle, SelectColumn } from '@sage-bionetworks/synapse-types';
|
|
2
|
+
/** A row of a column category table: [columnName, columnDisplayName, category, order] */
|
|
3
|
+
export type MockColumnCategoryRow = [
|
|
4
|
+
string,
|
|
5
|
+
string | null,
|
|
6
|
+
string | null,
|
|
7
|
+
number
|
|
8
|
+
];
|
|
9
|
+
export declare const MOCK_COLUMN_CATEGORY_TABLE_ID = "syn12345678";
|
|
10
|
+
/**
|
|
11
|
+
* Builds the QueryResultBundle returned when querying a column category table (used by CategorizedRowDataTable)
|
|
12
|
+
*/
|
|
13
|
+
export declare function createColumnCategoryTableQueryResultBundle(tableId: string, rows: MockColumnCategoryRow[]): QueryResultBundle;
|
|
14
|
+
/** Column categories modeled on the ELITE Portal model details page */
|
|
15
|
+
export declare const mockModelColumnCategoryRows: MockColumnCategoryRow[];
|
|
16
|
+
/** Headers of a model row; includes a column that has no category and a column with no value */
|
|
17
|
+
export declare const mockModelRowHeaders: SelectColumn[];
|
|
18
|
+
export declare const mockModelRowData: Array<string | null>;
|
|
19
|
+
//# sourceMappingURL=mockColumnCategoryTable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mockColumnCategoryTable.d.ts","sourceRoot":"","sources":["../../../src/mocks/query/mockColumnCategoryTable.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,iBAAiB,EACjB,YAAY,EACb,MAAM,iCAAiC,CAAA;AAExC,yFAAyF;AACzF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM;IACN,MAAM,GAAG,IAAI;IACb,MAAM,GAAG,IAAI;IACb,MAAM;CACP,CAAA;AAED,eAAO,MAAM,6BAA6B,gBAAgB,CAAA;AAE1D;;GAEG;AACH,wBAAgB,0CAA0C,CACxD,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,qBAAqB,EAAE,GAC5B,iBAAiB,CAiCnB;AAED,uEAAuE;AACvE,eAAO,MAAM,2BAA2B,EAAE,qBAAqB,EAa9D,CAAA;AAED,gGAAgG;AAChG,eAAO,MAAM,mBAAmB,EAAE,YAAY,EAc7C,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAcjD,CAAA"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { COLUMN_CATEGORY_TABLE_CATEGORY as e, COLUMN_CATEGORY_TABLE_COLUMN_NAME as t, COLUMN_CATEGORY_TABLE_DISPLAY_COLUMN_NAME as n, COLUMN_CATEGORY_TABLE_ORDER as r } from "../../components/RowDataTable/CategorizedRowDataTable.js";
|
|
2
|
+
import { ColumnTypeEnum as i } from "@sage-bionetworks/synapse-types";
|
|
3
|
+
//#region src/mocks/query/mockColumnCategoryTable.ts
|
|
4
|
+
var a = "syn12345678";
|
|
5
|
+
function o(a, o) {
|
|
6
|
+
let s = [
|
|
7
|
+
{
|
|
8
|
+
name: t,
|
|
9
|
+
columnType: i.STRING
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
name: n,
|
|
13
|
+
columnType: i.STRING
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
name: e,
|
|
17
|
+
columnType: i.STRING
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
name: r,
|
|
21
|
+
columnType: i.INTEGER
|
|
22
|
+
}
|
|
23
|
+
];
|
|
24
|
+
return {
|
|
25
|
+
concreteType: "org.sagebionetworks.repo.model.table.QueryResultBundle",
|
|
26
|
+
queryCount: o.length,
|
|
27
|
+
maxRowsPerPage: 1e3,
|
|
28
|
+
queryResult: {
|
|
29
|
+
concreteType: "org.sagebionetworks.repo.model.table.QueryResult",
|
|
30
|
+
queryResults: {
|
|
31
|
+
concreteType: "org.sagebionetworks.repo.model.table.RowSet",
|
|
32
|
+
tableId: a,
|
|
33
|
+
etag: "DEFAULT",
|
|
34
|
+
headers: s,
|
|
35
|
+
rows: o.map((e, t) => ({
|
|
36
|
+
rowId: t + 1,
|
|
37
|
+
values: e.map((e) => e == null ? null : String(e))
|
|
38
|
+
}))
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
selectColumns: s
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
var s = [
|
|
45
|
+
[
|
|
46
|
+
"model_id",
|
|
47
|
+
"Model ID",
|
|
48
|
+
"Overview",
|
|
49
|
+
1
|
|
50
|
+
],
|
|
51
|
+
[
|
|
52
|
+
"target_platform",
|
|
53
|
+
"Target Platform",
|
|
54
|
+
"Overview",
|
|
55
|
+
2
|
|
56
|
+
],
|
|
57
|
+
[
|
|
58
|
+
"base_model",
|
|
59
|
+
"Base Model",
|
|
60
|
+
"Overview",
|
|
61
|
+
3
|
|
62
|
+
],
|
|
63
|
+
[
|
|
64
|
+
"shared_by",
|
|
65
|
+
"Shared By",
|
|
66
|
+
"Overview",
|
|
67
|
+
4
|
|
68
|
+
],
|
|
69
|
+
[
|
|
70
|
+
"repo",
|
|
71
|
+
"Repository",
|
|
72
|
+
"Resources",
|
|
73
|
+
5
|
|
74
|
+
],
|
|
75
|
+
[
|
|
76
|
+
"paper",
|
|
77
|
+
"Paper",
|
|
78
|
+
"Resources",
|
|
79
|
+
6
|
|
80
|
+
],
|
|
81
|
+
[
|
|
82
|
+
"direct_use",
|
|
83
|
+
"Direct Use",
|
|
84
|
+
"Uses",
|
|
85
|
+
7
|
|
86
|
+
],
|
|
87
|
+
[
|
|
88
|
+
"out_of_scope_use",
|
|
89
|
+
"Out of Scope Use",
|
|
90
|
+
"Uses",
|
|
91
|
+
8
|
|
92
|
+
],
|
|
93
|
+
[
|
|
94
|
+
"training_data",
|
|
95
|
+
"Training Data",
|
|
96
|
+
"Training Details",
|
|
97
|
+
9
|
|
98
|
+
],
|
|
99
|
+
[
|
|
100
|
+
"hardware_type",
|
|
101
|
+
"Hardware Type",
|
|
102
|
+
"Environmental Impact",
|
|
103
|
+
10
|
|
104
|
+
],
|
|
105
|
+
[
|
|
106
|
+
"co2_emitted",
|
|
107
|
+
"CO₂ Emitted",
|
|
108
|
+
"Environmental Impact",
|
|
109
|
+
11
|
|
110
|
+
],
|
|
111
|
+
[
|
|
112
|
+
"citation_apa",
|
|
113
|
+
"Citation (APA)",
|
|
114
|
+
"Citation",
|
|
115
|
+
12
|
|
116
|
+
]
|
|
117
|
+
], c = [
|
|
118
|
+
{
|
|
119
|
+
name: "model_id",
|
|
120
|
+
columnType: i.STRING
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
name: "model_name",
|
|
124
|
+
columnType: i.STRING
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
name: "target_platform",
|
|
128
|
+
columnType: i.STRING
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
name: "base_model",
|
|
132
|
+
columnType: i.STRING
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
name: "shared_by",
|
|
136
|
+
columnType: i.STRING_LIST
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
name: "repo",
|
|
140
|
+
columnType: i.LINK
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
name: "paper",
|
|
144
|
+
columnType: i.LARGETEXT
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
name: "direct_use",
|
|
148
|
+
columnType: i.LARGETEXT
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: "out_of_scope_use",
|
|
152
|
+
columnType: i.LARGETEXT
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: "training_data",
|
|
156
|
+
columnType: i.LARGETEXT
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
name: "hardware_type",
|
|
160
|
+
columnType: i.STRING
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
name: "co2_emitted",
|
|
164
|
+
columnType: i.STRING
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
name: "citation_apa",
|
|
168
|
+
columnType: i.LARGETEXT
|
|
169
|
+
}
|
|
170
|
+
], l = [
|
|
171
|
+
"syn76379950",
|
|
172
|
+
"ESM-2 esm2_t6_8M_UR50D",
|
|
173
|
+
null,
|
|
174
|
+
"None; pretrained from scratch as part of the ESM-2 model family.",
|
|
175
|
+
"[\"Meta\", \"Hugging Face\", \"Sage Bionetworks\"]",
|
|
176
|
+
"https://github.com/facebookresearch/esm",
|
|
177
|
+
"Lin, Z., et al. (2023). Evolutionary-scale prediction of atomic-level protein structure with a language model. Science, 379(6637), 1123-1130.",
|
|
178
|
+
"The model can be used directly to predict masked amino acids and to convert protein sequences into numerical representations (embeddings).",
|
|
179
|
+
"Out-of-scope uses include clinical diagnosis, treatment or safety decisions, and direct protein structure prediction.",
|
|
180
|
+
"The model was pretrained on protein sequences from the UniRef50/UR50D 2021_04 dataset.",
|
|
181
|
+
"NVIDIA V100 GPUs",
|
|
182
|
+
"Not reported",
|
|
183
|
+
"Lin, Z., Akin, H., Rao, R., et al. (2023). Evolutionary-scale prediction of atomic-level protein structure with a language model. Science."
|
|
184
|
+
];
|
|
185
|
+
//#endregion
|
|
186
|
+
export { a as MOCK_COLUMN_CATEGORY_TABLE_ID, o as createColumnCategoryTableQueryResultBundle, s as mockModelColumnCategoryRows, l as mockModelRowData, c as mockModelRowHeaders };
|
|
187
|
+
|
|
188
|
+
//# sourceMappingURL=mockColumnCategoryTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mockColumnCategoryTable.js","names":[],"sources":["../../../src/mocks/query/mockColumnCategoryTable.ts"],"sourcesContent":["import {\n COLUMN_CATEGORY_TABLE_CATEGORY,\n COLUMN_CATEGORY_TABLE_COLUMN_NAME,\n COLUMN_CATEGORY_TABLE_DISPLAY_COLUMN_NAME,\n COLUMN_CATEGORY_TABLE_ORDER,\n} from '@/components/RowDataTable/CategorizedRowDataTable'\nimport {\n ColumnTypeEnum,\n QueryResultBundle,\n SelectColumn,\n} from '@sage-bionetworks/synapse-types'\n\n/** A row of a column category table: [columnName, columnDisplayName, category, order] */\nexport type MockColumnCategoryRow = [\n string,\n string | null,\n string | null,\n number,\n]\n\nexport const MOCK_COLUMN_CATEGORY_TABLE_ID = 'syn12345678'\n\n/**\n * Builds the QueryResultBundle returned when querying a column category table (used by CategorizedRowDataTable)\n */\nexport function createColumnCategoryTableQueryResultBundle(\n tableId: string,\n rows: MockColumnCategoryRow[],\n): QueryResultBundle {\n const headers: SelectColumn[] = [\n {\n name: COLUMN_CATEGORY_TABLE_COLUMN_NAME,\n columnType: ColumnTypeEnum.STRING,\n },\n {\n name: COLUMN_CATEGORY_TABLE_DISPLAY_COLUMN_NAME,\n columnType: ColumnTypeEnum.STRING,\n },\n { name: COLUMN_CATEGORY_TABLE_CATEGORY, columnType: ColumnTypeEnum.STRING },\n { name: COLUMN_CATEGORY_TABLE_ORDER, columnType: ColumnTypeEnum.INTEGER },\n ]\n return {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryResultBundle',\n queryCount: rows.length,\n // Required by getFullQueryTableResults to detect the last page\n maxRowsPerPage: 1000,\n queryResult: {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryResult',\n queryResults: {\n concreteType: 'org.sagebionetworks.repo.model.table.RowSet',\n tableId,\n etag: 'DEFAULT',\n headers,\n rows: rows.map((values, index) => ({\n rowId: index + 1,\n values: values.map(value => (value == null ? null : String(value))),\n })),\n },\n },\n selectColumns: headers,\n }\n}\n\n/** Column categories modeled on the ELITE Portal model details page */\nexport const mockModelColumnCategoryRows: MockColumnCategoryRow[] = [\n ['model_id', 'Model ID', 'Overview', 1],\n ['target_platform', 'Target Platform', 'Overview', 2],\n ['base_model', 'Base Model', 'Overview', 3],\n ['shared_by', 'Shared By', 'Overview', 4],\n ['repo', 'Repository', 'Resources', 5],\n ['paper', 'Paper', 'Resources', 6],\n ['direct_use', 'Direct Use', 'Uses', 7],\n ['out_of_scope_use', 'Out of Scope Use', 'Uses', 8],\n ['training_data', 'Training Data', 'Training Details', 9],\n ['hardware_type', 'Hardware Type', 'Environmental Impact', 10],\n ['co2_emitted', 'CO₂ Emitted', 'Environmental Impact', 11],\n ['citation_apa', 'Citation (APA)', 'Citation', 12],\n]\n\n/** Headers of a model row; includes a column that has no category and a column with no value */\nexport const mockModelRowHeaders: SelectColumn[] = [\n { name: 'model_id', columnType: ColumnTypeEnum.STRING },\n { name: 'model_name', columnType: ColumnTypeEnum.STRING },\n { name: 'target_platform', columnType: ColumnTypeEnum.STRING },\n { name: 'base_model', columnType: ColumnTypeEnum.STRING },\n { name: 'shared_by', columnType: ColumnTypeEnum.STRING_LIST },\n { name: 'repo', columnType: ColumnTypeEnum.LINK },\n { name: 'paper', columnType: ColumnTypeEnum.LARGETEXT },\n { name: 'direct_use', columnType: ColumnTypeEnum.LARGETEXT },\n { name: 'out_of_scope_use', columnType: ColumnTypeEnum.LARGETEXT },\n { name: 'training_data', columnType: ColumnTypeEnum.LARGETEXT },\n { name: 'hardware_type', columnType: ColumnTypeEnum.STRING },\n { name: 'co2_emitted', columnType: ColumnTypeEnum.STRING },\n { name: 'citation_apa', columnType: ColumnTypeEnum.LARGETEXT },\n]\n\nexport const mockModelRowData: Array<string | null> = [\n 'syn76379950',\n 'ESM-2 esm2_t6_8M_UR50D',\n null,\n 'None; pretrained from scratch as part of the ESM-2 model family.',\n '[\"Meta\", \"Hugging Face\", \"Sage Bionetworks\"]',\n 'https://github.com/facebookresearch/esm',\n 'Lin, Z., et al. (2023). Evolutionary-scale prediction of atomic-level protein structure with a language model. Science, 379(6637), 1123-1130.',\n 'The model can be used directly to predict masked amino acids and to convert protein sequences into numerical representations (embeddings).',\n 'Out-of-scope uses include clinical diagnosis, treatment or safety decisions, and direct protein structure prediction.',\n 'The model was pretrained on protein sequences from the UniRef50/UR50D 2021_04 dataset.',\n 'NVIDIA V100 GPUs',\n 'Not reported',\n 'Lin, Z., Akin, H., Rao, R., et al. (2023). Evolutionary-scale prediction of atomic-level protein structure with a language model. Science.',\n]\n"],"mappings":";;;AAoBA,IAAa,IAAgC;AAK7C,SAAgB,EACd,GACA,GACmB;CACnB,IAAM,IAA0B;EAC9B;GACE,MAAM;GACN,YAAY,EAAe;EAC7B;EACA;GACE,MAAM;GACN,YAAY,EAAe;EAC7B;EACA;GAAE,MAAM;GAAgC,YAAY,EAAe;EAAO;EAC1E;GAAE,MAAM;GAA6B,YAAY,EAAe;EAAQ;CAC1E;CACA,OAAO;EACL,cAAc;EACd,YAAY,EAAK;EAEjB,gBAAgB;EAChB,aAAa;GACX,cAAc;GACd,cAAc;IACZ,cAAc;IACd;IACA,MAAM;IACN;IACA,MAAM,EAAK,KAAK,GAAQ,OAAW;KACjC,OAAO,IAAQ;KACf,QAAQ,EAAO,KAAI,MAAU,KAAS,OAAO,OAAO,OAAO,CAAK,CAAE;IACpE,EAAE;GACJ;EACF;EACA,eAAe;CACjB;AACF;AAGA,IAAa,IAAuD;CAClE;EAAC;EAAY;EAAY;EAAY;CAAC;CACtC;EAAC;EAAmB;EAAmB;EAAY;CAAC;CACpD;EAAC;EAAc;EAAc;EAAY;CAAC;CAC1C;EAAC;EAAa;EAAa;EAAY;CAAC;CACxC;EAAC;EAAQ;EAAc;EAAa;CAAC;CACrC;EAAC;EAAS;EAAS;EAAa;CAAC;CACjC;EAAC;EAAc;EAAc;EAAQ;CAAC;CACtC;EAAC;EAAoB;EAAoB;EAAQ;CAAC;CAClD;EAAC;EAAiB;EAAiB;EAAoB;CAAC;CACxD;EAAC;EAAiB;EAAiB;EAAwB;CAAE;CAC7D;EAAC;EAAe;EAAe;EAAwB;CAAE;CACzD;EAAC;EAAgB;EAAkB;EAAY;CAAE;AACnD,GAGa,IAAsC;CACjD;EAAE,MAAM;EAAY,YAAY,EAAe;CAAO;CACtD;EAAE,MAAM;EAAc,YAAY,EAAe;CAAO;CACxD;EAAE,MAAM;EAAmB,YAAY,EAAe;CAAO;CAC7D;EAAE,MAAM;EAAc,YAAY,EAAe;CAAO;CACxD;EAAE,MAAM;EAAa,YAAY,EAAe;CAAY;CAC5D;EAAE,MAAM;EAAQ,YAAY,EAAe;CAAK;CAChD;EAAE,MAAM;EAAS,YAAY,EAAe;CAAU;CACtD;EAAE,MAAM;EAAc,YAAY,EAAe;CAAU;CAC3D;EAAE,MAAM;EAAoB,YAAY,EAAe;CAAU;CACjE;EAAE,MAAM;EAAiB,YAAY,EAAe;CAAU;CAC9D;EAAE,MAAM;EAAiB,YAAY,EAAe;CAAO;CAC3D;EAAE,MAAM;EAAe,YAAY,EAAe;CAAO;CACzD;EAAE,MAAM;EAAgB,YAAY,EAAe;CAAU;AAC/D,GAEa,IAAyC;CACpD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorPaletteInspector.d.ts","sourceRoot":"","sources":["../../src/stories/ColorPaletteInspector.tsx"],"names":[],"mappings":"AAmCA,iBAAS,qBAAqB,
|
|
1
|
+
{"version":3,"file":"ColorPaletteInspector.d.ts","sourceRoot":"","sources":["../../src/stories/ColorPaletteInspector.tsx"],"names":[],"mappings":"AAmCA,iBAAS,qBAAqB,4CA4C7B;AAED,eAAe,qBAAqB,CAAA"}
|
|
@@ -27,7 +27,7 @@ function s() {
|
|
|
27
27
|
display: "flex",
|
|
28
28
|
flexWrap: "wrap"
|
|
29
29
|
},
|
|
30
|
-
children: t.reduce((e, t, n) => (n % 5 == 0 ? e.push([t]) : e
|
|
30
|
+
children: t.reduce((e, t, n) => (n % 5 == 0 ? e.push([t]) : e.at(-1).push(t)) && e, []).map((e, t) => /* @__PURE__ */ i("div", { children: [/* @__PURE__ */ i("p", { children: ["Odd ", t] }), e.map((e) => /* @__PURE__ */ r(o, { color: e }, e))] }, "odd" + t))
|
|
31
31
|
}),
|
|
32
32
|
/* @__PURE__ */ r("hr", {}),
|
|
33
33
|
/* @__PURE__ */ r("h2", { children: "Even Palette" }),
|
|
@@ -36,7 +36,7 @@ function s() {
|
|
|
36
36
|
display: "flex",
|
|
37
37
|
flexWrap: "wrap"
|
|
38
38
|
},
|
|
39
|
-
children: e.reduce((e, t, n) => (n % 5 == 0 ? e.push([t]) : e
|
|
39
|
+
children: e.reduce((e, t, n) => (n % 5 == 0 ? e.push([t]) : e.at(-1).push(t)) && e, []).map((e, t) => /* @__PURE__ */ i("div", { children: [/* @__PURE__ */ i("p", { children: ["Even ", t] }), e.map((e) => /* @__PURE__ */ r(o, { color: e }, e))] }, "even" + t))
|
|
40
40
|
}),
|
|
41
41
|
" "
|
|
42
42
|
] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorPaletteInspector.js","names":[],"sources":["../../src/stories/ColorPaletteInspector.tsx"],"sourcesContent":["import {\n COLOR_PALETTE_EVEN,\n COLOR_PALETTE_ODD,\n} from '@/utils/functions/colorPalette'\nimport { Box } from '@mui/material'\nimport tinycolor from 'tinycolor2'\n\ntype DivColorTextProps = {\n color: string\n}\n\nfunction DivWithColorText({ color }: DivColorTextProps) {\n return (\n <div>\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: color,\n width: '100px',\n height: '20px',\n fontSize: '10px',\n color: color,\n '&:hover': {\n color: tinycolor(color).isDark() ? 'white' : 'black',\n },\n }}\n >\n {color}\n </Box>\n </div>\n )\n}\n\nfunction ColorPaletteInspector() {\n return (\n <div>\n <h2>Odd Palette</h2>\n <div style={{ display: 'flex', flexWrap: 'wrap' }}>\n {COLOR_PALETTE_ODD.reduce(\n (rows: any, key, index) =>\n (index % 5 === 0
|
|
1
|
+
{"version":3,"file":"ColorPaletteInspector.js","names":[],"sources":["../../src/stories/ColorPaletteInspector.tsx"],"sourcesContent":["import {\n COLOR_PALETTE_EVEN,\n COLOR_PALETTE_ODD,\n} from '@/utils/functions/colorPalette'\nimport { Box } from '@mui/material'\nimport tinycolor from 'tinycolor2'\n\ntype DivColorTextProps = {\n color: string\n}\n\nfunction DivWithColorText({ color }: DivColorTextProps) {\n return (\n <div>\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n background: color,\n width: '100px',\n height: '20px',\n fontSize: '10px',\n color: color,\n '&:hover': {\n color: tinycolor(color).isDark() ? 'white' : 'black',\n },\n }}\n >\n {color}\n </Box>\n </div>\n )\n}\n\nfunction ColorPaletteInspector() {\n return (\n <div>\n <h2>Odd Palette</h2>\n <div style={{ display: 'flex', flexWrap: 'wrap' }}>\n {COLOR_PALETTE_ODD.reduce(\n (rows: any, key, index) =>\n (index % 5 === 0 ? rows.push([key]) : rows.at(-1).push(key)) &&\n rows,\n\n [],\n ).map((palette: string[], idx: number) => {\n return (\n <div key={'odd' + idx}>\n <p>Odd {idx}</p>\n {palette.map(color => (\n <DivWithColorText key={color} color={color}></DivWithColorText>\n ))}\n </div>\n )\n })}\n </div>\n <hr></hr>\n <h2>Even Palette</h2>\n <div style={{ display: 'flex', flexWrap: 'wrap' }}>\n {COLOR_PALETTE_EVEN.reduce(\n (rows: any, key, index) =>\n (index % 5 === 0 ? rows.push([key]) : rows.at(-1).push(key)) &&\n rows,\n\n [],\n ).map((palette: string[], idx: number) => {\n return (\n <div key={'even' + idx}>\n <p>Even {idx}</p>\n {palette.map(color => (\n <DivWithColorText key={color} color={color}></DivWithColorText>\n ))}\n </div>\n )\n })}\n </div>{' '}\n </div>\n )\n}\n\nexport default ColorPaletteInspector\n"],"mappings":";;;;;AAWA,SAAS,EAAiB,EAAE,YAA4B;CACtD,OACE,kBAAC,OAAD,EAAA,UACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,gBAAgB;GAChB,YAAY;GACZ,YAAY;GACZ,OAAO;GACP,QAAQ;GACR,UAAU;GACH;GACP,WAAW,EACT,OAAO,EAAU,CAAK,EAAE,OAAO,IAAI,UAAU,QAC/C;EACF;YAEC;CACE,CAAA,EACF,CAAA;AAET;AAEA,SAAS,IAAwB;CAC/B,OACE,kBAAC,OAAD,EAAA,UAAA;EACE,kBAAC,MAAD,EAAA,UAAI,cAAe,CAAA;EACnB,kBAAC,OAAD;GAAK,OAAO;IAAE,SAAS;IAAQ,UAAU;GAAO;aAC7C,EAAkB,QAChB,GAAW,GAAK,OACd,IAAQ,KAAM,IAAI,EAAK,KAAK,CAAC,CAAG,CAAC,IAAI,EAAK,GAAG,EAAE,EAAE,KAAK,CAAG,MAC1D,GAEF,CAAC,CACH,EAAE,KAAK,GAAmB,MAEtB,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD,EAAA,UAAA,CAAG,QAAK,CAAO,EAAA,CAAA,GACd,EAAQ,KAAI,MACX,kBAAC,GAAD,EAAqC,SAAyB,GAAvC,CAAuC,CAC/D,CACE,EAAA,GALK,QAAQ,CAKb,CAER;EACE,CAAA;EACL,kBAAC,MAAD,CAAQ,CAAA;EACR,kBAAC,MAAD,EAAA,UAAI,eAAgB,CAAA;EACpB,kBAAC,OAAD;GAAK,OAAO;IAAE,SAAS;IAAQ,UAAU;GAAO;aAC7C,EAAmB,QACjB,GAAW,GAAK,OACd,IAAQ,KAAM,IAAI,EAAK,KAAK,CAAC,CAAG,CAAC,IAAI,EAAK,GAAG,EAAE,EAAE,KAAK,CAAG,MAC1D,GAEF,CAAC,CACH,EAAE,KAAK,GAAmB,MAEtB,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,KAAD,EAAA,UAAA,CAAG,SAAM,CAAO,EAAA,CAAA,GACf,EAAQ,KAAI,MACX,kBAAC,GAAD,EAAqC,SAAyB,GAAvC,CAAuC,CAC/D,CACE,EAAA,GALK,SAAS,CAKd,CAER;EACE,CAAA;EAAE;CACJ,EAAA,CAAA;AAET"}
|
|
@@ -67,6 +67,14 @@
|
|
|
67
67
|
padding: 20px 0;
|
|
68
68
|
flex: 1;
|
|
69
69
|
min-height: 0;
|
|
70
|
+
|
|
71
|
+
// A plot that can't filter must not look clickable.
|
|
72
|
+
&--filteringDisabled .js-plotly-plot .plotly {
|
|
73
|
+
.slice,
|
|
74
|
+
.draglayer {
|
|
75
|
+
cursor: default !important;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
70
78
|
}
|
|
71
79
|
|
|
72
80
|
&--expanded {
|