synapse-react-client 4.0.45 → 4.0.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.js +1 -1
- package/dist/aridhia-queries/AridhiaKeyFactory.d.ts +1 -0
- package/dist/aridhia-queries/AridhiaKeyFactory.d.ts.map +1 -1
- package/dist/aridhia-queries/AridhiaKeyFactory.js +3 -0
- package/dist/aridhia-queries/AridhiaKeyFactory.js.map +1 -1
- package/dist/aridhia-queries/aridhiaTokenExchange.js +6 -6
- package/dist/aridhia-queries/index.d.ts +1 -0
- package/dist/aridhia-queries/index.d.ts.map +1 -1
- package/dist/aridhia-queries/index.js +11 -10
- package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts +19 -0
- package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js +14 -0
- package/dist/aridhia-queries/useGetAridhiaVocabularyTerm.js.map +1 -0
- package/dist/aridhia-queries/useSubmitAridhiaDar.js +2 -2
- package/dist/aridhia-queries/useSubmitAridhiaDar.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js +6 -4
- package/dist/components/AccessRequirementList/AccessApprovalCheckMark.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/AccessorRequirementHelpText.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js +11 -8
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js.map +1 -1
- package/dist/components/AccessTokenPage/AccessTokenPage.js +1 -1
- package/dist/components/AccessTokenPage/AccessTokenPage.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/AcknowledgementsPage/AcknowledgementsPage.js +1 -1
- package/dist/components/AcknowledgementsPage/AcknowledgementsPage.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/DarWizard/DarSectionForm.d.ts.map +1 -1
- package/dist/components/Aridhia/DarWizard/DarSectionForm.js +17 -13
- package/dist/components/Aridhia/DarWizard/DarSectionForm.js.map +1 -1
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts +3 -3
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts.map +1 -1
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js +33 -34
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.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/Aridhia/fairFormToRjsf.js +1 -1
- package/dist/components/Aridhia/fairFormToRjsf.js.map +1 -1
- package/dist/components/Authentication/LastLoginInfo.js +3 -3
- 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/CertificationQuiz/CertificationQuiz.js +1 -1
- package/dist/components/CertificationQuiz/CertificationQuiz.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/AvailableEvaluationQueueList.js +1 -1
- package/dist/components/ChallengeSubmission/AvailableEvaluationQueueList.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/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js +1 -1
- package/dist/components/ChallengeSubmission/EvaluationQueueCurrentRoundInfo.js.map +1 -1
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js +6 -6
- package/dist/components/ChallengeSubmission/SubmissionDirectoryList.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.d.ts.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js +4 -4
- package/dist/components/ChallengeTeamWizard/ChallengeTeamTable.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js +4 -4
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverContent.js +4 -4
- package/dist/components/CitationPopover/CitationPopoverContent.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/ComponentCollapse.d.ts.map +1 -1
- package/dist/components/ComponentCollapse.js +2 -1
- package/dist/components/ComponentCollapse.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/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +231 -219
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -1
- package/dist/components/DataGrid/SyncGridWithSourceButton.js +5 -4
- package/dist/components/DataGrid/SyncGridWithSourceButton.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/ColumnHeaderWithTooltip.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js +7 -5
- package/dist/components/DataGrid/components/ColumnHeaderWithTooltip.js.map +1 -1
- package/dist/components/DataGrid/components/ExportCsvFromGridButton.js +4 -4
- package/dist/components/DataGrid/components/ExportCsvFromGridButton.js.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsButton.js +4 -4
- package/dist/components/DataGrid/components/ReorderColumnsButton.js.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsDialog.js +12 -8
- package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridButton.js +1 -1
- package/dist/components/DataGrid/components/UploadCsvToGridButton.js.map +1 -1
- 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 +14 -12
- 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/applyModelChange.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.js +14 -14
- package/dist/components/DataGrid/utils/applyModelChange.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/DataGrid/utils/splitPatch.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/splitPatch.js +22 -13
- package/dist/components/DataGrid/utils/splitPatch.js.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.d.ts.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +3 -2
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.module.scss +1 -3
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js +1 -1
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.d.ts.map +1 -1
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +16 -10
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js.map +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.js +1 -1
- package/dist/components/EntityDownloadButton/EntityDownloadButton.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/EntityFinder.js +4 -4
- package/dist/components/EntityFinder/EntityIdTextField.js +1 -1
- package/dist/components/EntityFinder/EntityIdTextField.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/EntityFinder/tree/VirtualizedTree.d.ts.map +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js +5 -4
- package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js +4 -4
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js.map +1 -1
- 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/EntityTreeTable/components/EntityNameCell.d.ts.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.js +2 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
- package/dist/components/EntityUpload/FileUploadProgress.d.ts.map +1 -1
- package/dist/components/EntityUpload/FileUploadProgress.js +11 -7
- package/dist/components/EntityUpload/FileUploadProgress.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.d.ts.map +1 -1
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js +4 -3
- package/dist/components/Evaluation/round_limits/EvaluationRoundLimitOptionsList.js.map +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js +1 -1
- package/dist/components/ExperimentalMode/ExperimentalMode.js.map +1 -1
- package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.js +1 -1
- package/dist/components/ExternalFileHandleLink/ExternalFileHandleLink.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/ChoiceOptionsEditor.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js +2 -1
- package/dist/components/FormTemplateEditor/ChoiceOptionsEditor.js.map +1 -1
- package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js +2 -1
- package/dist/components/FormTemplateEditor/FieldDefinitionDrawer.js.map +1 -1
- package/dist/components/FormTemplateEditor/FieldLibrary.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/FieldLibrary.js +2 -1
- package/dist/components/FormTemplateEditor/FieldLibrary.js.map +1 -1
- package/dist/components/FormTemplateEditor/FieldLibraryRow.js +4 -4
- package/dist/components/FormTemplateEditor/FieldLibraryRow.js.map +1 -1
- package/dist/components/FormTemplateEditor/FormStructurePanel.js +7 -7
- package/dist/components/FormTemplateEditor/FormStructurePanel.js.map +1 -1
- package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js +1 -1
- package/dist/components/FormTemplateEditor/FormTemplateEditorForm.js.map +1 -1
- package/dist/components/FormTemplateEditor/StepCard.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/StepCard.js +15 -10
- package/dist/components/FormTemplateEditor/StepCard.js.map +1 -1
- package/dist/components/FormTemplateEditor/StepFieldRow.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/StepFieldRow.js +11 -6
- package/dist/components/FormTemplateEditor/StepFieldRow.js.map +1 -1
- package/dist/components/FormTemplateEditor/TemplateFileHandleField.d.ts.map +1 -1
- package/dist/components/FormTemplateEditor/TemplateFileHandleField.js +2 -1
- package/dist/components/FormTemplateEditor/TemplateFileHandleField.js.map +1 -1
- 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 +46 -46
- 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/PortalDOI/PortalDOI.js +5 -5
- package/dist/components/GenericCard/PortalDOI/PortalDOI.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +38 -38
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/GoalsV3/GoalsV3.js +1 -1
- package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
- package/dist/components/HelpPopover/HelpPopover.js +1 -1
- package/dist/components/HelpPopover/HelpPopover.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/IconSvg.d.ts.map +1 -1
- package/dist/components/IconSvg/IconSvg.js +154 -47
- package/dist/components/IconSvg/IconSvg.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/JsonSchemaForm/templates/ButtonTemplate.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js +19 -16
- package/dist/components/JsonSchemaForm/templates/ButtonTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js +2 -1
- package/dist/components/JsonSchemaForm/templates/RJSFInputLabel.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts +9 -0
- package/dist/components/JsonSchemaForm/widgets/PhoneWidget.d.ts.map +1 -0
- package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js +21 -0
- package/dist/components/JsonSchemaForm/widgets/PhoneWidget.js.map +1 -0
- package/dist/components/Markdown/MarkdownCollapse.d.ts.map +1 -1
- package/dist/components/Markdown/MarkdownCollapse.js +3 -1
- package/dist/components/Markdown/MarkdownCollapse.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/MissingQueryResultsWarning/MissingQueryResultsWarning.js +1 -1
- package/dist/components/MissingQueryResultsWarning/MissingQueryResultsWarning.js.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/OAuthClientManagement/OAuthManagement.js +14 -13
- package/dist/components/OAuthClientManagement/OAuthManagement.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/PortalList/PortalCard.d.ts.map +1 -1
- package/dist/components/PortalList/PortalCard.js +6 -5
- package/dist/components/PortalList/PortalCard.js.map +1 -1
- package/dist/components/PortalList/PortalList.js +4 -4
- package/dist/components/PortalList/PortalList.js.map +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
- package/dist/components/ProjectVisibilityChip/ProjectVisibilityChip.js +6 -6
- 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 +31 -30
- 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/QueryCountButton/QueryCountButton.js +5 -5
- package/dist/components/QueryCountButton/QueryCountButton.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/ReleaseCard/ReleaseCardLarge.js +5 -5
- package/dist/components/ReleaseCard/ReleaseCardLarge.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/ShareThisPage/ShareThisPage.js +4 -4
- package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js +8 -8
- package/dist/components/SustainabilityScorecard/DialLayout.js +1 -1
- package/dist/components/SustainabilityScorecard/DialLayout.js.map +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js +1 -1
- package/dist/components/SustainabilityScorecard/SustainabilityScorecard.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.js +1 -1
- package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js +2 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js +1 -1
- package/dist/components/SynapseChat/components/ChatInputArea/ChatInputArea.js.map +1 -1
- package/dist/components/SynapseFooter/SynapseFooter.js +1 -1
- package/dist/components/SynapseFooter/SynapseFooter.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/SynapseHomepageV2/SynapseFeaturedDatasetItem.js +1 -1
- package/dist/components/SynapseHomepageV2/SynapseFeaturedDatasetItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.d.ts.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js +2 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageNavBar.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseInActionItem.js +4 -4
- package/dist/components/SynapseHomepageV2/SynapseInActionItem.js.map +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js +1 -1
- package/dist/components/SynapseHomepageV2/SynapseTrendingProjectsItem.js.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.d.ts.map +1 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js +4 -1
- package/dist/components/SynapseNavDrawer/SynapseNavDrawer.js.map +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.js +1 -1
- package/dist/components/SynapsePortalBanners/SynapsePortalBanners.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/SynapseSearchPageResults/SynapseSearchPageResults.js +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPageResults.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.d.ts.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.js +12 -9
- package/dist/components/SynapseSearchPageResults/SynapseSearchResultsCard.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 +6 -6
- 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 +2 -2
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.js +1 -1
- package/dist/components/TableColumnSchemaEditor/ImportTableColumnsButton.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.d.ts.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 +59 -59
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.d.ts.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.js +6 -4
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormActions.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/ColumnHeader.js +1 -1
- package/dist/components/TanStackTable/ColumnHeader.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/TeamSubjectsSelector/TeamBadgeOrError.js +1 -1
- package/dist/components/TeamSubjectsSelector/TeamBadgeOrError.js.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.d.ts.map +1 -1
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.js +4 -3
- package/dist/components/TeamSubjectsSelector/TeamSubjectsSelector.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 +3 -3
- package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementDashboard.js +4 -4
- package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
- package/dist/components/dataaccess/AccessRequirementTable.js +1 -1
- package/dist/components/dataaccess/AccessRequirementTable.js.map +1 -1
- package/dist/components/dataaccess/EDucTemplateTable.d.ts.map +1 -1
- package/dist/components/dataaccess/EDucTemplateTable.js +13 -11
- package/dist/components/dataaccess/EDucTemplateTable.js.map +1 -1
- package/dist/components/dataaccess/FormTemplateTable.js +6 -6
- package/dist/components/dataaccess/FormTemplateTable.js.map +1 -1
- package/dist/components/dataaccess/ReviewerDashboard.js +17 -17
- package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
- package/dist/components/dataaccess/SubmissionPage/SubmissionPage.js +4 -4
- package/dist/components/doi/CreateOrUpdateDoiModal.js +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.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/download_list/DownloadDetails.d.ts.map +1 -1
- package/dist/components/download_list/DownloadDetails.js +12 -10
- package/dist/components/download_list/DownloadDetails.js.map +1 -1
- package/dist/components/entity/metadata/AnnotationsTable.js +1 -1
- package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js +1 -1
- package/dist/components/entity/page/CreatedByModifiedBy.js.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.d.ts.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.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/error/ErrorChip.d.ts.map +1 -1
- package/dist/components/error/ErrorChip.js +2 -1
- package/dist/components/error/ErrorChip.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/table/CsvPreview/CreateTableFromCsvDialog.js +14 -14
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.js +4 -4
- package/dist/components/table/CsvPreview/CsvPreviewWithOptions.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/features/curator/dashboard/components/NextStepButton.d.ts.map +1 -1
- package/dist/features/curator/dashboard/components/NextStepButton.js +7 -6
- package/dist/features/curator/dashboard/components/NextStepButton.js.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +8 -8
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js +4 -4
- package/dist/features/entity/metadata-task/components/MetadataTaskTableActionCell.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +4 -4
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksTableAssigneeCell.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js +4 -4
- package/dist/features/entity/metadata-task/create-task/CurateTaskForm.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js +1 -1
- package/dist/features/entity/metadata-task/create-task/TaskCategoryCard.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js +1 -1
- package/dist/features/entity/metadata-task/create-task/TaskFormHeader.js.map +1 -1
- package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js +10 -10
- package/dist/features/entity/metadata-task/create-task/curationTaskFlowRoutes.js.map +1 -1
- package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js +1 -1
- package/dist/features/team/invitation/components/OpenInvitationsToUserCard.js.map +1 -1
- 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 +17 -0
- package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/aridhiaHandlers.js +62 -42
- 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/entityHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.js +70 -67
- package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/gridHandlers.js +2 -2
- package/dist/mocks/msw/handlers/gridHandlers.js.map +1 -1
- 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/msw/server.d.ts.map +1 -1
- package/dist/mocks/msw/server.js +4 -2
- package/dist/mocks/msw/server.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/useGetUserChallenges.d.ts.map +1 -1
- package/dist/synapse-queries/user/useGetUserChallenges.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/theme/DefaultTheme.d.ts.map +1 -1
- package/dist/theme/DefaultTheme.js +4 -1
- package/dist/theme/DefaultTheme.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.d.ts.map +1 -1
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/AppUtils/AppUtils.js +1 -1
- package/dist/utils/AppUtils/AppUtils.js.map +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/EntityTypeUtils.d.ts.map +1 -1
- package/dist/utils/functions/EntityTypeUtils.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 +7 -6
package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchFacetPanelUtils.js","names":[],"sources":["../../../../src/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.ts"],"sourcesContent":["import { Facet } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\n\n// Constants\nexport const MAX_FACET_VALUES_SHOWN = 10\n\nconst MINUTE_IN_SEC = 60\nconst HOUR_IN_SEC = MINUTE_IN_SEC * 60\nconst DAY_IN_SEC = HOUR_IN_SEC * 24\nconst WEEK_IN_SEC = DAY_IN_SEC * 7\nconst MONTH_IN_SEC = DAY_IN_SEC * 30\nconst YEAR_IN_SEC = DAY_IN_SEC * 365\n\n// 'range' is the approximate duration in seconds used to match a stored URL timestamp back to a preset.\n// null (ANY_TIME) means no date filter is applied.\nexport const timeRanges = [\n { id: 'ANY_TIME', label: 'Any Time', range: null },\n { id: 'PAST_HOUR', label: 'Past Hour', range: HOUR_IN_SEC },\n { id: 'PAST_DAY', label: 'Past 24 Hours', range: DAY_IN_SEC },\n { id: 'PAST_WEEK', label: 'Past Week', range: WEEK_IN_SEC },\n { id: 'PAST_MONTH', label: 'Past Month', range: MONTH_IN_SEC },\n { id: 'PAST_YEAR', label: 'Past Year', range: YEAR_IN_SEC },\n]\n\n// User-friendly display names\nexport const FACET_DISPLAY_NAMES: Record<string, string> = {\n node_type: 'Entity Type',\n modified_by: 'Last Modified By',\n}\n\n// Facet display order\nexport const FACET_DISPLAY_ORDER = [\n 'node_type',\n 'consortium',\n 'disease',\n 'modified_on',\n 'modified_by',\n 'created_on',\n 'tissue',\n 'num_samples',\n 'created_by',\n]\n\nexport const USER_FACET_NAMES = [\n 'modified_by',\n 'created_by',\n 'ModifiedBy',\n 'CreatedBy',\n]\n\nexport const FACET_PLURAL_DISPLAY_NAMES: Record<string, string> = {\n node_type: 'Entity Types',\n consortium: 'Consortiums',\n disease: 'Diseases',\n tissue: 'Tissues',\n num_samples: 'Num Samples',\n modified_by: 'Last Modified By',\n created_by: 'Created By',\n}\n\n// Helper functions\n/**\n * Get the label for the \"All\" option in a facet, e.g. \"All Entity Types\" for the 'node_type' facet\n */\nexport function getAllFacetLabel(facetName: string): string {\n const pluralName =\n FACET_PLURAL_DISPLAY_NAMES[facetName] || formatFacetName(facetName)\n return `All ${pluralName}`\n}\n\n/**\n * Determines if a facet value should be displayed in the UI.\n * Hides 'link' entity types and colon-prefixed values\n */\nexport function shouldShowFacetValue(\n facetName: string,\n value: string,\n): boolean {\n if (!value || value.trim() === '') {\n return false\n }\n\n const isHiddenEntityType =\n (facetName === 'node_type' || facetName === 'EntityType') &&\n value === 'link'\n\n const isInternalPrefixedValue = value.includes(':')\n\n return !isHiddenEntityType && !isInternalPrefixedValue\n}\n\n/**\n * Check if a facet is a user facet (e.g., 'modified_by' or 'created_by')\n * Accepts either snake_case or PascalCase facet names.\n */\nexport const isUserFacet = (name: string): boolean => {\n // Normalize by removing underscores and converting to lowercase\n const normalizedFacetName = name.toLowerCase().
|
|
1
|
+
{"version":3,"file":"SearchFacetPanelUtils.js","names":[],"sources":["../../../../src/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.ts"],"sourcesContent":["import { Facet } from '@sage-bionetworks/synapse-types'\nimport dayjs from 'dayjs'\n\n// Constants\nexport const MAX_FACET_VALUES_SHOWN = 10\n\nconst MINUTE_IN_SEC = 60\nconst HOUR_IN_SEC = MINUTE_IN_SEC * 60\nconst DAY_IN_SEC = HOUR_IN_SEC * 24\nconst WEEK_IN_SEC = DAY_IN_SEC * 7\nconst MONTH_IN_SEC = DAY_IN_SEC * 30\nconst YEAR_IN_SEC = DAY_IN_SEC * 365\n\n// 'range' is the approximate duration in seconds used to match a stored URL timestamp back to a preset.\n// null (ANY_TIME) means no date filter is applied.\nexport const timeRanges = [\n { id: 'ANY_TIME', label: 'Any Time', range: null },\n { id: 'PAST_HOUR', label: 'Past Hour', range: HOUR_IN_SEC },\n { id: 'PAST_DAY', label: 'Past 24 Hours', range: DAY_IN_SEC },\n { id: 'PAST_WEEK', label: 'Past Week', range: WEEK_IN_SEC },\n { id: 'PAST_MONTH', label: 'Past Month', range: MONTH_IN_SEC },\n { id: 'PAST_YEAR', label: 'Past Year', range: YEAR_IN_SEC },\n]\n\n// User-friendly display names\nexport const FACET_DISPLAY_NAMES: Record<string, string> = {\n node_type: 'Entity Type',\n modified_by: 'Last Modified By',\n}\n\n// Facet display order\nexport const FACET_DISPLAY_ORDER = [\n 'node_type',\n 'consortium',\n 'disease',\n 'modified_on',\n 'modified_by',\n 'created_on',\n 'tissue',\n 'num_samples',\n 'created_by',\n]\n\nexport const USER_FACET_NAMES = [\n 'modified_by',\n 'created_by',\n 'ModifiedBy',\n 'CreatedBy',\n]\n\nexport const FACET_PLURAL_DISPLAY_NAMES: Record<string, string> = {\n node_type: 'Entity Types',\n consortium: 'Consortiums',\n disease: 'Diseases',\n tissue: 'Tissues',\n num_samples: 'Num Samples',\n modified_by: 'Last Modified By',\n created_by: 'Created By',\n}\n\n// Helper functions\n/**\n * Get the label for the \"All\" option in a facet, e.g. \"All Entity Types\" for the 'node_type' facet\n */\nexport function getAllFacetLabel(facetName: string): string {\n const pluralName =\n FACET_PLURAL_DISPLAY_NAMES[facetName] || formatFacetName(facetName)\n return `All ${pluralName}`\n}\n\n/**\n * Determines if a facet value should be displayed in the UI.\n * Hides 'link' entity types and colon-prefixed values\n */\nexport function shouldShowFacetValue(\n facetName: string,\n value: string,\n): boolean {\n if (!value || value.trim() === '') {\n return false\n }\n\n const isHiddenEntityType =\n (facetName === 'node_type' || facetName === 'EntityType') &&\n value === 'link'\n\n const isInternalPrefixedValue = value.includes(':')\n\n return !isHiddenEntityType && !isInternalPrefixedValue\n}\n\n/**\n * Check if a facet is a user facet (e.g., 'modified_by' or 'created_by')\n * Accepts either snake_case or PascalCase facet names.\n */\nexport const isUserFacet = (name: string): boolean => {\n // Normalize by removing underscores and converting to lowercase\n const normalizedFacetName = name.toLowerCase().replaceAll('_', '')\n\n return USER_FACET_NAMES.some(\n facet => facet.toLowerCase().replaceAll('_', '') === normalizedFacetName,\n )\n}\n\n/**\n * Format facet name: capitalize first letter, replace underscores with spaces\n */\nexport function formatFacetName(name: string): string {\n return name\n .replaceAll('_', ' ')\n .replaceAll(/\\b\\w/g, char => char.toUpperCase())\n}\n\n/**\n * Get user-friendly display name for a facet\n */\nexport function getFacetDisplayName(facetName: string): string {\n return FACET_DISPLAY_NAMES[facetName] || formatFacetName(facetName)\n}\n\n/**\n * Check if a facet should be rendered (some facets like 'link' are hidden)\n */\nexport function shouldRenderFacet(facet: Facet): boolean {\n // Don't render facets with no constraints (values to click on)\n if (!facet.constraints || facet.constraints.length === 0) {\n return false\n }\n return true\n}\n\n/**\n * Get timestamp from URL/query and determine which time range preset it matches\n *\n * @param timestamp - The stored timestamp (in seconds) from the URL/query\n * @returns The ID of the matching time range preset ('PAST_HOUR', 'PAST_DAY', etc.)\n */\nexport function getSelectedTimeRangeId(timestamp: string): string {\n const storedTimestamp = parseInt(timestamp)\n\n if (!storedTimestamp) {\n return 'ANY_TIME'\n }\n\n const diffInSeconds = dayjs().unix() - storedTimestamp\n\n if (diffInSeconds <= 0) {\n return 'ANY_TIME'\n }\n\n // Filter out 'ANY_TIME' since it doesn't have a numeric range\n const presets = timeRanges.filter(\n (range): range is { id: string; label: string; range: number } =>\n range.id !== 'ANY_TIME',\n )\n\n // Find the closest preset by comparing the absolute difference.\n // Ex: If diffInSeconds is 3605, it is 5 seconds away from PAST_HOUR (3600)\n // but 82,795 seconds away from PAST_DAY (86400) so we would match to PAST_HOUR.\n const closest = presets.reduce((best, preset) =>\n Math.abs(diffInSeconds - preset.range) <\n Math.abs(diffInSeconds - best.range)\n ? preset\n : best,\n )\n\n return closest.id\n}\n\n/**\n * Formats a timestamp for display in the applied facets chip.\n *\n * @param timestamp - The stored timestamp (in seconds)\n * @returns A friendly display string\n */\nexport function formatTimeRangeDisplayValue(timestamp: string): string {\n const storedTimestamp = parseInt(timestamp)\n\n if (isNaN(storedTimestamp)) {\n return timestamp\n }\n\n if (storedTimestamp === 0) {\n return 'any time'\n }\n\n // Try to match to a preset\n const rangeId = getSelectedTimeRangeId(timestamp)\n const matchedRange = timeRanges.find(r => r.id === rangeId)\n\n if (matchedRange && matchedRange.id !== 'ANY_TIME') {\n return matchedRange.label\n }\n\n // Fallback to formatted date if no preset matches\n try {\n const valueInMilliseconds = storedTimestamp * 1000\n return new Date(valueInMilliseconds).toLocaleDateString()\n } catch {\n return timestamp\n }\n}\n"],"mappings":";;AAIA,IAAa,IAAyB,IAGhC,IAAc,MACd,IAAa,IAAc,IAC3B,IAAc,IAAa,GAC3B,IAAe,IAAa,IAC5B,IAAc,IAAa,KAIpB,IAAa;CACxB;EAAE,IAAI;EAAY,OAAO;EAAY,OAAO;CAAK;CACjD;EAAE,IAAI;EAAa,OAAO;EAAa,OAAO;CAAY;CAC1D;EAAE,IAAI;EAAY,OAAO;EAAiB,OAAO;CAAW;CAC5D;EAAE,IAAI;EAAa,OAAO;EAAa,OAAO;CAAY;CAC1D;EAAE,IAAI;EAAc,OAAO;EAAc,OAAO;CAAa;CAC7D;EAAE,IAAI;EAAa,OAAO;EAAa,OAAO;CAAY;AAC5D,GAGa,IAA8C;CACzD,WAAW;CACX,aAAa;AACf,GAGa,IAAsB;CACjC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF,GAEa,IAAmB;CAC9B;CACA;CACA;CACA;AACF,GAEa,IAAqD;CAChE,WAAW;CACX,YAAY;CACZ,SAAS;CACT,QAAQ;CACR,aAAa;CACb,aAAa;CACb,YAAY;AACd;AAMA,SAAgB,EAAiB,GAA2B;CAG1D,OAAO,OADL,EAA2B,MAAc,EAAgB,CAAS;AAEtE;AAMA,SAAgB,EACd,GACA,GACS;CACT,IAAI,CAAC,KAAS,EAAM,KAAK,MAAM,IAC7B,OAAO;CAGT,IAAM,KACH,MAAc,eAAe,MAAc,iBAC5C,MAAU,QAEN,IAA0B,EAAM,SAAS,GAAG;CAElD,OAAO,CAAC,KAAsB,CAAC;AACjC;AAMA,IAAa,KAAe,MAA0B;CAEpD,IAAM,IAAsB,EAAK,YAAY,EAAE,WAAW,KAAK,EAAE;CAEjE,OAAO,EAAiB,MACtB,MAAS,EAAM,YAAY,EAAE,WAAW,KAAK,EAAE,MAAM,CACvD;AACF;AAKA,SAAgB,EAAgB,GAAsB;CACpD,OAAO,EACJ,WAAW,KAAK,GAAG,EACnB,WAAW,UAAS,MAAQ,EAAK,YAAY,CAAC;AACnD;AAKA,SAAgB,EAAoB,GAA2B;CAC7D,OAAO,EAAoB,MAAc,EAAgB,CAAS;AACpE;AAKA,SAAgB,EAAkB,GAAuB;CAKvD,OAHA,EAAI,CAAC,EAAM,eAAe,EAAM,YAAY,WAAW;AAIzD;AAQA,SAAgB,EAAuB,GAA2B;CAChE,IAAM,IAAkB,SAAS,CAAS;CAE1C,IAAI,CAAC,GACH,OAAO;CAGT,IAAM,IAAgB,EAAM,EAAE,KAAK,IAAI;CAsBvC,OApBI,KAAiB,IACZ,aAIO,EAAW,QACxB,MACC,EAAM,OAAO,UAMD,EAAQ,QAAQ,GAAM,MACpC,KAAK,IAAI,IAAgB,EAAO,KAAK,IACrC,KAAK,IAAI,IAAgB,EAAK,KAAK,IAC/B,IACA,CAGC,EAAQ;AACjB;AAQA,SAAgB,EAA4B,GAA2B;CACrE,IAAM,IAAkB,SAAS,CAAS;CAE1C,IAAI,MAAM,CAAe,GACvB,OAAO;CAGT,IAAI,MAAoB,GACtB,OAAO;CAIT,IAAM,IAAU,EAAuB,CAAS,GAC1C,IAAe,EAAW,MAAK,MAAK,EAAE,OAAO,CAAO;CAE1D,IAAI,KAAgB,EAAa,OAAO,YACtC,OAAO,EAAa;CAItB,IAAI;EACF,IAAM,IAAsB,IAAkB;EAC9C,OAAO,IAAI,KAAK,CAAmB,EAAE,mBAAmB;CAC1D,QAAQ;EACN,OAAO;CACT;AACF"}
|
|
@@ -15,7 +15,7 @@ import { AppliedFacetsChips as u, SearchFacetPanel as d } from "./SearchFacetPan
|
|
|
15
15
|
import { Suspense as f, useCallback as p, useEffect as m, useMemo as h, useState as g } from "react";
|
|
16
16
|
import { Badge as _, Box as v, Button as y, Collapse as te, IconButton as b, InputAdornment as x, Link as S, Skeleton as C, TextField as w, Typography as T } from "@mui/material";
|
|
17
17
|
import { Fragment as E, jsx as D, jsxs as O } from "react/jsx-runtime";
|
|
18
|
-
import
|
|
18
|
+
import k from "@mui/icons-material/ArrowForward";
|
|
19
19
|
import A from "@mui/icons-material/Search";
|
|
20
20
|
import ne from "@mui/icons-material/FilterAltOutlined";
|
|
21
21
|
//#region src/components/SynapseSearchPageResults/SynapseSearchPageResults.tsx
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SynapseSearchPageResults.js","names":[],"sources":["../../../src/components/SynapseSearchPageResults/SynapseSearchPageResults.tsx"],"sourcesContent":["import {\n Box,\n TextField,\n InputAdornment,\n Button,\n Typography,\n IconButton,\n Collapse,\n Badge,\n Skeleton,\n Link,\n} from '@mui/material'\nimport SynapseSearchResultsCard from './SynapseSearchResultsCard'\nimport SearchIcon from '@mui/icons-material/Search'\nimport FilterAltOutlinedIcon from '@mui/icons-material/FilterAltOutlined'\nimport React, {\n useState,\n useEffect,\n useMemo,\n useCallback,\n Suspense,\n} from 'react'\nimport { useSearchInfinite } from '@/synapse-queries/search/useSearch'\nimport {\n SearchQuery,\n KeyRange,\n Hit,\n Facet,\n} from '@sage-bionetworks/synapse-types'\nimport { useDocumentMetadata } from '@/utils/context/DocumentMetadataContext'\nimport { ArrowForward } from '@mui/icons-material'\nimport styles from './SynapseSearchPageResults.module.scss'\nimport { useSuggestion } from '@/synapse-queries/search/useSuggestion'\nimport { Suggestion } from '@sage-bionetworks/synapse-client'\nimport SearchPagePortalBanners from './SearchPagePortalBanners'\nimport { SYNAPSE_ENTITY_ID_REGEX } from '@/utils/functions/RegularExpressions'\nimport { DEFAULT_SEARCH_QUERY } from '@/utils/searchDefaults'\nimport {\n SearchFacetPanel,\n AppliedFacetsChips,\n} from './SearchFacetPanel/SearchFacetPanel'\nimport { shouldShowFacetValue } from './SearchFacetPanel/SearchFacetPanelUtils'\nimport { SkeletonInlineBlock } from '../Skeleton'\nimport { useSynapseContext } from '@/utils'\n\n/**\n * Add a literal facet filter to the query\n */\nfunction addFacetToQuery(\n query: SearchQuery,\n facetName: string,\n facetValue: string,\n): SearchQuery {\n const booleanQuery = query.booleanQuery || []\n\n const isFilterAlreadyApplied = booleanQuery.some(\n kv => kv.key === facetName && kv.value === facetValue,\n )\n\n if (isFilterAlreadyApplied) {\n return query\n }\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n booleanQuery: [\n ...booleanQuery,\n { key: facetName, value: facetValue, not: false },\n ],\n start: 0, // Reset to first page\n }\n}\n\n/**\n * Remove a literal facet filter from the query\n */\nfunction removeFacetFromQuery(\n query: SearchQuery,\n facetName: string,\n facetValue: string,\n): SearchQuery {\n const booleanQuery = query.booleanQuery || []\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n booleanQuery: booleanQuery.filter(\n kv => !(kv.key === facetName && kv.value === facetValue),\n ),\n start: 0,\n }\n}\n\n/**\n * Set a range facet (ex, for modified on, created on)\n */\nfunction setRangeFacetInQuery(\n query: SearchQuery,\n facetName: string,\n minValue: string,\n): SearchQuery {\n const rangeQuery = query.rangeQuery || []\n\n // Remove any existing range for this facet\n const filteredRangeQuery = rangeQuery.filter(kr => kr.key !== facetName)\n\n const maxValue = String(Math.floor(Date.now() / 1000)) // Now in seconds\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n rangeQuery: [\n ...filteredRangeQuery,\n { key: facetName, min: minValue, max: maxValue },\n ],\n start: 0,\n }\n}\n\n/**\n * Remove a range facet from the query\n */\nfunction removeRangeFacetFromQuery(\n query: SearchQuery,\n facetName: string,\n): SearchQuery {\n const rangeQuery = query.rangeQuery || []\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n rangeQuery: rangeQuery.filter(kr => kr.key !== facetName),\n start: 0,\n }\n}\n\n/**\n * Check if a range facet is currently applied\n */\nfunction isRangeFacetApplied(query: SearchQuery, facetName: string): boolean {\n const rangeQuery = query.rangeQuery || []\n return rangeQuery.some(kr => kr.key === facetName)\n}\n\n/**\n * Get the applied range facet value for a given facet name\n */\nfunction getAppliedRangeFacet(\n query: SearchQuery,\n facetName: string,\n): KeyRange | undefined {\n const rangeQuery = query.rangeQuery || []\n return rangeQuery.find(kr => kr.key === facetName)\n}\n\nexport type SynapseSearchPageResultsProps = {\n query?: SearchQuery\n setQuery?: (newQuery: SearchQuery) => void\n}\n\nexport function SynapseSearchPageResults(props: SynapseSearchPageResultsProps) {\n const MIN_SUGGESTION_SCORE = 0.75\n const { query, setQuery } = props\n const { peopleSearchPageUrl } = useSynapseContext()\n const [expanded, setExpanded] = useState(false)\n\n // Set page title (replaces jsniUtils.setPageTitle(DisplayConstants.LABEL_SEARCH) from Java)\n useDocumentMetadata({ title: `Search: ${query?.queryTerm?.join(' ')}` })\n\n // Capture local state to prevent search from executing on every keystroke\n // Join query terms so that textfield input looks correct\n const [searchInputValue, setSearchInputValue] = useState(\n query?.queryTerm?.join(' ') || '',\n )\n\n // Sync input value when query prop changes\n // Join query terms so that textfield input looks correct\n useEffect(() => {\n setSearchInputValue(query?.queryTerm?.join(' ') || '')\n }, [query])\n\n // Execute search\n const {\n data,\n isLoading,\n error,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage,\n } = useSearchInfinite(\n query\n ? {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n size: 50,\n returnFields: ['path'],\n }\n : { queryTerm: [], size: 50, returnFields: ['path'] },\n {\n enabled: !!query?.queryTerm?.[0],\n },\n )\n\n // Update local input state\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchInputValue(event.target.value)\n }\n\n // Update query only when user explicitly searches\n // Split query terms to form array\n const handleSearch = () => {\n if (setQuery) {\n const newQuery = {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n queryTerm: searchInputValue\n ? searchInputValue\n .split(' ')\n .map(term => term.trim())\n .filter(Boolean)\n : [],\n start: 0,\n }\n setQuery(newQuery)\n }\n }\n\n // Fetch spelling suggestions for the search terms\n const { data: suggestionData } = useSuggestion(\n { searchTerm: query?.queryTerm },\n\n {\n enabled: !!query?.queryTerm?.[0],\n },\n )\n\n const suggestion = useMemo(() => {\n const suggestionValues = suggestionData?.suggestions\n const terms = query?.queryTerm || []\n\n if (!suggestionValues) return null\n\n // Map original terms to their best suggestions if available\n const suggestionMap = new Map<string, string>()\n let hasSuggestion = false\n\n for (const suggestionList of suggestionValues) {\n const originalTerm = suggestionList.key\n const suggestions = Array.from(suggestionList.values ?? [])\n\n // Among suggestions above the score threshold, pick the highest-frequency term.\n const bestSuggestion = suggestions.reduce<Suggestion | null>(\n (best, current) => {\n if (\n current.score === undefined ||\n current.score < MIN_SUGGESTION_SCORE\n ) {\n return best\n }\n if (!best || (current.frequency ?? 0) > (best.frequency ?? 0)) {\n return current\n }\n return best\n },\n null,\n )\n\n // If a valid suggestion is found and it's different from the original term, add it to the map\n if (bestSuggestion?.term && bestSuggestion.term !== originalTerm) {\n suggestionMap.set(originalTerm!, bestSuggestion.term)\n hasSuggestion = true\n }\n }\n\n if (!hasSuggestion) return null\n\n // Build the corrected search string by replacing misspelled terms\n // Use toLowerCase() because the suggestion API returns keys in lowercase\n const correctedTerms = terms.map(\n term => suggestionMap.get(term.toLowerCase()) || term,\n )\n\n return correctedTerms.join(' ')\n }, [suggestionData, query?.queryTerm])\n\n // Extract entity IDs from search results for relevant portal banner display\n const entityIdsForPortalBanners = useMemo(() => {\n if (!data?.pages || data.pages.length === 0) {\n return []\n }\n\n const entityIds = new Set<string>()\n\n const firstPage = data.pages[0]\n\n if (firstPage?.hits) {\n for (const hit of firstPage.hits) {\n // search result is the top-level Project itself\n if (hit.id) {\n entityIds.add(hit.id)\n }\n\n if (hit.path?.path) {\n for (const pathEntity of hit.path.path.slice(1)) {\n if (pathEntity.id) {\n entityIds.add(pathEntity.id)\n }\n }\n }\n }\n }\n\n const finalIds = Array.from(entityIds)\n\n return finalIds\n }, [data])\n\n const handleUseSuggestion = () => {\n if (setQuery && suggestion) {\n const newQuery = {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n queryTerm: suggestion\n .split(' ')\n .map(term => term.trim())\n .filter(Boolean),\n start: 0,\n }\n setQuery(newQuery)\n }\n }\n\n const noResults = data?.pages?.[0]?.hits?.length === 0\n const isSynId = SYNAPSE_ENTITY_ID_REGEX.test(query?.queryTerm?.[0] || '')\n\n // cached facets in local state to prevent them from being cleared when the query changes and new search results are loading\n const [facets, setFacets] = useState<Facet[]>([])\n\n useEffect(() => {\n const newFacets = data?.pages?.[0]?.facets\n if (newFacets) {\n setFacets(newFacets)\n }\n }, [data])\n\n const handleAddFacet = useCallback(\n (facetName: string, facetValue: string) => {\n if (setQuery && query) {\n setQuery(addFacetToQuery(query, facetName, facetValue))\n }\n },\n [query, setQuery],\n )\n\n const handleRemoveFacet = useCallback(\n (facetName: string, facetValue: string) => {\n if (setQuery && query) {\n setQuery(removeFacetFromQuery(query, facetName, facetValue))\n }\n },\n [query, setQuery],\n )\n\n const handleSetRangeFacet = useCallback(\n (facetName: string, minValue: string) => {\n if (setQuery && query) {\n setQuery(setRangeFacetInQuery(query, facetName, minValue))\n }\n },\n [query, setQuery],\n )\n\n const handleRemoveRangeFacet = useCallback(\n (facetName: string) => {\n if (setQuery && query) {\n setQuery(removeRangeFacetFromQuery(query, facetName))\n }\n },\n [query, setQuery],\n )\n\n const isRangeFacetAppliedCallback = useCallback(\n (name: string) => (query ? isRangeFacetApplied(query, name) : false),\n [query],\n )\n\n const getAppliedRangeFacetCallback = useCallback(\n (name: string) => (query ? getAppliedRangeFacet(query, name) : undefined),\n [query],\n )\n\n const appliedFacetsCount =\n (query?.booleanQuery?.filter(kv => shouldShowFacetValue(kv.key, kv.value))\n .length || 0) + (query?.rangeQuery?.length || 0)\n\n return (\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n p: '30px',\n gap: '20px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n height: 'auto',\n gap: '16px',\n }}\n >\n {peopleSearchPageUrl && (\n <Typography variant=\"smallText1\">\n Searching for a user profile? Try our{' '}\n <Link href={peopleSearchPageUrl}>People Search.</Link>\n </Typography>\n )}\n <Box className={styles.searchContainer}>\n <TextField\n placeholder=\"Search…\"\n sx={{ flex: 1 }}\n value={searchInputValue}\n onChange={handleInputChange}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n handleSearch()\n }\n }}\n slotProps={{\n input: {\n sx: {\n borderRadius: '96px',\n boxShadow: '0px 1px 4px var(--synapse-gray-500)',\n backgroundColor: 'var(--synapse-white)',\n },\n startAdornment: (\n <InputAdornment position=\"start\">\n <SearchIcon sx={{ color: 'secondary.600' }} />\n </InputAdornment>\n ),\n },\n }}\n />\n <Button\n onClick={() => setExpanded(true)}\n variant=\"outlined\"\n startIcon={<FilterAltOutlinedIcon />}\n aria-expanded={expanded}\n aria-controls=\"filter-search-results-panel\"\n sx={{\n color: theme => theme.palette.primary.dark,\n }}\n className={styles.filterButton}\n >\n <Typography\n sx={{\n fontWeight: 700,\n lineHeight: '16px',\n display: 'flex',\n gap: '8px',\n }}\n >\n <span id=\"filter-results-button-label\">\n Filter Search Results\n </span>\n {appliedFacetsCount > 0 && (\n <Badge\n badgeContent={appliedFacetsCount}\n color=\"primary\"\n sx={{\n '& .MuiBadge-badge': {\n position: 'static',\n transform: 'none',\n height: '18px',\n minWidth: '18px',\n },\n }}\n />\n )}\n </Typography>\n </Button>\n </Box>\n <Box>\n {facets.length > 0 && (\n <Collapse\n in={expanded}\n id=\"filter-search-results-panel\"\n aria-labelledby=\"filter-results-button-label\"\n >\n <Box\n sx={{\n border: '1px solid',\n borderColor: 'var(--synapse-gray-100)',\n backgroundColor: 'var(--synapse-white)',\n padding: '25px',\n boxShadow: '0 4px 16px 0 rgba(0, 0, 0, 0.04)',\n pointerEvents: isLoading ? 'none' : 'auto',\n opacity: isLoading ? 0.5 : 1,\n }}\n >\n {query && setQuery && (\n <SearchFacetPanel\n expanded={expanded}\n onCollapse={() => setExpanded(false)}\n disabled={isLoading}\n query={query}\n setQuery={setQuery}\n facets={facets}\n onAddFacet={handleAddFacet}\n onRemoveFacet={handleRemoveFacet}\n onSetRangeFacet={handleSetRangeFacet}\n onRemoveRangeFacet={handleRemoveRangeFacet}\n isRangeFacetApplied={isRangeFacetAppliedCallback}\n getAppliedRangeFacet={getAppliedRangeFacetCallback}\n />\n )}\n </Box>\n </Collapse>\n )}\n </Box>\n </Box>\n <>\n {data && !isSynId && suggestion && (\n <div className={styles.didYouMeanContainer}>\n <div className={styles.didYouMeanCurrentlyShowing}>\n {!noResults && (\n <>\n Currently showing results for{' '}\n <b>{query?.queryTerm?.join(' ')}</b>.\n </>\n )}\n </div>\n <div className={styles.didYouMeanSuggestion}>\n <SearchIcon\n sx={{ color: 'grey.600' }}\n className={styles.searchIcon}\n />\n <Typography variant=\"body1\" className={styles.didYouMeanText}>\n Search for <b className={styles.suggestionText}>{suggestion}</b>{' '}\n instead?\n </Typography>\n <IconButton\n className={styles.didYouMeanArrowContainer}\n onClick={handleUseSuggestion}\n aria-label={`Search for ${suggestion} instead`}\n sx={{\n borderColor: 'primary.main',\n svg: { color: 'primary.main' },\n }}\n >\n <ArrowForward />\n </IconButton>\n </div>\n </div>\n )}\n {noResults && (\n <div className={styles.didYouMeanCurrentlyShowing}>\n No results found for <b>{query?.queryTerm?.join(' ')}</b>.\n </div>\n )}\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n gap: '20px',\n }}\n >\n {isLoading &&\n Array.from({ length: 3 }, () => (\n <Skeleton variant=\"rectangular\" width={'100%'} height={'250px'} />\n ))}\n {error && <div>Error: {error.message}</div>}\n <Suspense\n fallback={<SkeletonInlineBlock width={'100%'} height={'150px'} />}\n >\n <SearchPagePortalBanners entityIds={entityIdsForPortalBanners} />\n </Suspense>\n {query && (\n <Box sx={{ alignSelf: 'flex-start' }}>\n <AppliedFacetsChips\n query={query}\n onRemoveFacet={handleRemoveFacet}\n onRemoveRangeFacet={handleRemoveRangeFacet}\n />\n </Box>\n )}\n {data &&\n data.pages &&\n data.pages.map((page, pageIndex) =>\n page.hits.map((hit: Hit) => {\n const projectPath = hit.path?.path?.[1]\n return (\n <SynapseSearchResultsCard\n searchTerms={query?.queryTerm ?? []}\n key={hit.id + '-' + pageIndex}\n entityId={hit.id}\n name={hit.name}\n entityType={hit.node_type}\n modifiedOn={hit.modified_on}\n description={hit.description}\n locatedIn={projectPath}\n />\n )\n }),\n )}\n {hasNextPage && (\n <Button\n onClick={() => {\n void fetchNextPage()\n }}\n loading={isFetchingNextPage}\n variant=\"contained\"\n sx={{ mt: 2 }}\n >\n {isFetchingNextPage ? 'Loading more...' : 'Load More'}\n </Button>\n )}\n </Box>\n </>\n </Box>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SynapseSearchPageResults.js","names":[],"sources":["../../../src/components/SynapseSearchPageResults/SynapseSearchPageResults.tsx"],"sourcesContent":["import {\n Box,\n TextField,\n InputAdornment,\n Button,\n Typography,\n IconButton,\n Collapse,\n Badge,\n Skeleton,\n Link,\n} from '@mui/material'\nimport SynapseSearchResultsCard from './SynapseSearchResultsCard'\nimport SearchIcon from '@mui/icons-material/Search'\nimport FilterAltOutlinedIcon from '@mui/icons-material/FilterAltOutlined'\nimport React, {\n useState,\n useEffect,\n useMemo,\n useCallback,\n Suspense,\n} from 'react'\nimport { useSearchInfinite } from '@/synapse-queries/search/useSearch'\nimport {\n SearchQuery,\n KeyRange,\n Hit,\n Facet,\n} from '@sage-bionetworks/synapse-types'\nimport { useDocumentMetadata } from '@/utils/context/DocumentMetadataContext'\nimport ArrowForward from '@mui/icons-material/ArrowForward'\nimport styles from './SynapseSearchPageResults.module.scss'\nimport { useSuggestion } from '@/synapse-queries/search/useSuggestion'\nimport { Suggestion } from '@sage-bionetworks/synapse-client'\nimport SearchPagePortalBanners from './SearchPagePortalBanners'\nimport { SYNAPSE_ENTITY_ID_REGEX } from '@/utils/functions/RegularExpressions'\nimport { DEFAULT_SEARCH_QUERY } from '@/utils/searchDefaults'\nimport {\n SearchFacetPanel,\n AppliedFacetsChips,\n} from './SearchFacetPanel/SearchFacetPanel'\nimport { shouldShowFacetValue } from './SearchFacetPanel/SearchFacetPanelUtils'\nimport { SkeletonInlineBlock } from '../Skeleton'\nimport { useSynapseContext } from '@/utils'\n\n/**\n * Add a literal facet filter to the query\n */\nfunction addFacetToQuery(\n query: SearchQuery,\n facetName: string,\n facetValue: string,\n): SearchQuery {\n const booleanQuery = query.booleanQuery || []\n\n const isFilterAlreadyApplied = booleanQuery.some(\n kv => kv.key === facetName && kv.value === facetValue,\n )\n\n if (isFilterAlreadyApplied) {\n return query\n }\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n booleanQuery: [\n ...booleanQuery,\n { key: facetName, value: facetValue, not: false },\n ],\n start: 0, // Reset to first page\n }\n}\n\n/**\n * Remove a literal facet filter from the query\n */\nfunction removeFacetFromQuery(\n query: SearchQuery,\n facetName: string,\n facetValue: string,\n): SearchQuery {\n const booleanQuery = query.booleanQuery || []\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n booleanQuery: booleanQuery.filter(\n kv => !(kv.key === facetName && kv.value === facetValue),\n ),\n start: 0,\n }\n}\n\n/**\n * Set a range facet (ex, for modified on, created on)\n */\nfunction setRangeFacetInQuery(\n query: SearchQuery,\n facetName: string,\n minValue: string,\n): SearchQuery {\n const rangeQuery = query.rangeQuery || []\n\n // Remove any existing range for this facet\n const filteredRangeQuery = rangeQuery.filter(kr => kr.key !== facetName)\n\n const maxValue = String(Math.floor(Date.now() / 1000)) // Now in seconds\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n rangeQuery: [\n ...filteredRangeQuery,\n { key: facetName, min: minValue, max: maxValue },\n ],\n start: 0,\n }\n}\n\n/**\n * Remove a range facet from the query\n */\nfunction removeRangeFacetFromQuery(\n query: SearchQuery,\n facetName: string,\n): SearchQuery {\n const rangeQuery = query.rangeQuery || []\n\n return {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n rangeQuery: rangeQuery.filter(kr => kr.key !== facetName),\n start: 0,\n }\n}\n\n/**\n * Check if a range facet is currently applied\n */\nfunction isRangeFacetApplied(query: SearchQuery, facetName: string): boolean {\n const rangeQuery = query.rangeQuery || []\n return rangeQuery.some(kr => kr.key === facetName)\n}\n\n/**\n * Get the applied range facet value for a given facet name\n */\nfunction getAppliedRangeFacet(\n query: SearchQuery,\n facetName: string,\n): KeyRange | undefined {\n const rangeQuery = query.rangeQuery || []\n return rangeQuery.find(kr => kr.key === facetName)\n}\n\nexport type SynapseSearchPageResultsProps = {\n query?: SearchQuery\n setQuery?: (newQuery: SearchQuery) => void\n}\n\nexport function SynapseSearchPageResults(props: SynapseSearchPageResultsProps) {\n const MIN_SUGGESTION_SCORE = 0.75\n const { query, setQuery } = props\n const { peopleSearchPageUrl } = useSynapseContext()\n const [expanded, setExpanded] = useState(false)\n\n // Set page title (replaces jsniUtils.setPageTitle(DisplayConstants.LABEL_SEARCH) from Java)\n useDocumentMetadata({ title: `Search: ${query?.queryTerm?.join(' ')}` })\n\n // Capture local state to prevent search from executing on every keystroke\n // Join query terms so that textfield input looks correct\n const [searchInputValue, setSearchInputValue] = useState(\n query?.queryTerm?.join(' ') || '',\n )\n\n // Sync input value when query prop changes\n // Join query terms so that textfield input looks correct\n useEffect(() => {\n setSearchInputValue(query?.queryTerm?.join(' ') || '')\n }, [query])\n\n // Execute search\n const {\n data,\n isLoading,\n error,\n fetchNextPage,\n hasNextPage,\n isFetchingNextPage,\n } = useSearchInfinite(\n query\n ? {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n size: 50,\n returnFields: ['path'],\n }\n : { queryTerm: [], size: 50, returnFields: ['path'] },\n {\n enabled: !!query?.queryTerm?.[0],\n },\n )\n\n // Update local input state\n const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchInputValue(event.target.value)\n }\n\n // Update query only when user explicitly searches\n // Split query terms to form array\n const handleSearch = () => {\n if (setQuery) {\n const newQuery = {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n queryTerm: searchInputValue\n ? searchInputValue\n .split(' ')\n .map(term => term.trim())\n .filter(Boolean)\n : [],\n start: 0,\n }\n setQuery(newQuery)\n }\n }\n\n // Fetch spelling suggestions for the search terms\n const { data: suggestionData } = useSuggestion(\n { searchTerm: query?.queryTerm },\n\n {\n enabled: !!query?.queryTerm?.[0],\n },\n )\n\n const suggestion = useMemo(() => {\n const suggestionValues = suggestionData?.suggestions\n const terms = query?.queryTerm || []\n\n if (!suggestionValues) return null\n\n // Map original terms to their best suggestions if available\n const suggestionMap = new Map<string, string>()\n let hasSuggestion = false\n\n for (const suggestionList of suggestionValues) {\n const originalTerm = suggestionList.key\n const suggestions = Array.from(suggestionList.values ?? [])\n\n // Among suggestions above the score threshold, pick the highest-frequency term.\n const bestSuggestion = suggestions.reduce<Suggestion | null>(\n (best, current) => {\n if (\n current.score === undefined ||\n current.score < MIN_SUGGESTION_SCORE\n ) {\n return best\n }\n if (!best || (current.frequency ?? 0) > (best.frequency ?? 0)) {\n return current\n }\n return best\n },\n null,\n )\n\n // If a valid suggestion is found and it's different from the original term, add it to the map\n if (bestSuggestion?.term && bestSuggestion.term !== originalTerm) {\n suggestionMap.set(originalTerm!, bestSuggestion.term)\n hasSuggestion = true\n }\n }\n\n if (!hasSuggestion) return null\n\n // Build the corrected search string by replacing misspelled terms\n // Use toLowerCase() because the suggestion API returns keys in lowercase\n const correctedTerms = terms.map(\n term => suggestionMap.get(term.toLowerCase()) || term,\n )\n\n return correctedTerms.join(' ')\n }, [suggestionData, query?.queryTerm])\n\n // Extract entity IDs from search results for relevant portal banner display\n const entityIdsForPortalBanners = useMemo(() => {\n if (!data?.pages || data.pages.length === 0) {\n return []\n }\n\n const entityIds = new Set<string>()\n\n const firstPage = data.pages[0]\n\n if (firstPage?.hits) {\n for (const hit of firstPage.hits) {\n // search result is the top-level Project itself\n if (hit.id) {\n entityIds.add(hit.id)\n }\n\n if (hit.path?.path) {\n for (const pathEntity of hit.path.path.slice(1)) {\n if (pathEntity.id) {\n entityIds.add(pathEntity.id)\n }\n }\n }\n }\n }\n\n const finalIds = Array.from(entityIds)\n\n return finalIds\n }, [data])\n\n const handleUseSuggestion = () => {\n if (setQuery && suggestion) {\n const newQuery = {\n ...DEFAULT_SEARCH_QUERY,\n ...query,\n queryTerm: suggestion\n .split(' ')\n .map(term => term.trim())\n .filter(Boolean),\n start: 0,\n }\n setQuery(newQuery)\n }\n }\n\n const noResults = data?.pages?.[0]?.hits?.length === 0\n const isSynId = SYNAPSE_ENTITY_ID_REGEX.test(query?.queryTerm?.[0] || '')\n\n // cached facets in local state to prevent them from being cleared when the query changes and new search results are loading\n const [facets, setFacets] = useState<Facet[]>([])\n\n useEffect(() => {\n const newFacets = data?.pages?.[0]?.facets\n if (newFacets) {\n setFacets(newFacets)\n }\n }, [data])\n\n const handleAddFacet = useCallback(\n (facetName: string, facetValue: string) => {\n if (setQuery && query) {\n setQuery(addFacetToQuery(query, facetName, facetValue))\n }\n },\n [query, setQuery],\n )\n\n const handleRemoveFacet = useCallback(\n (facetName: string, facetValue: string) => {\n if (setQuery && query) {\n setQuery(removeFacetFromQuery(query, facetName, facetValue))\n }\n },\n [query, setQuery],\n )\n\n const handleSetRangeFacet = useCallback(\n (facetName: string, minValue: string) => {\n if (setQuery && query) {\n setQuery(setRangeFacetInQuery(query, facetName, minValue))\n }\n },\n [query, setQuery],\n )\n\n const handleRemoveRangeFacet = useCallback(\n (facetName: string) => {\n if (setQuery && query) {\n setQuery(removeRangeFacetFromQuery(query, facetName))\n }\n },\n [query, setQuery],\n )\n\n const isRangeFacetAppliedCallback = useCallback(\n (name: string) => (query ? isRangeFacetApplied(query, name) : false),\n [query],\n )\n\n const getAppliedRangeFacetCallback = useCallback(\n (name: string) => (query ? getAppliedRangeFacet(query, name) : undefined),\n [query],\n )\n\n const appliedFacetsCount =\n (query?.booleanQuery?.filter(kv => shouldShowFacetValue(kv.key, kv.value))\n .length || 0) + (query?.rangeQuery?.length || 0)\n\n return (\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n p: '30px',\n gap: '20px',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n height: 'auto',\n gap: '16px',\n }}\n >\n {peopleSearchPageUrl && (\n <Typography variant=\"smallText1\">\n Searching for a user profile? Try our{' '}\n <Link href={peopleSearchPageUrl}>People Search.</Link>\n </Typography>\n )}\n <Box className={styles.searchContainer}>\n <TextField\n placeholder=\"Search…\"\n sx={{ flex: 1 }}\n value={searchInputValue}\n onChange={handleInputChange}\n onKeyDown={e => {\n if (e.key === 'Enter') {\n handleSearch()\n }\n }}\n slotProps={{\n input: {\n sx: {\n borderRadius: '96px',\n boxShadow: '0px 1px 4px var(--synapse-gray-500)',\n backgroundColor: 'var(--synapse-white)',\n },\n startAdornment: (\n <InputAdornment position=\"start\">\n <SearchIcon sx={{ color: 'secondary.600' }} />\n </InputAdornment>\n ),\n },\n }}\n />\n <Button\n onClick={() => setExpanded(true)}\n variant=\"outlined\"\n startIcon={<FilterAltOutlinedIcon />}\n aria-expanded={expanded}\n aria-controls=\"filter-search-results-panel\"\n sx={{\n color: theme => theme.palette.primary.dark,\n }}\n className={styles.filterButton}\n >\n <Typography\n sx={{\n fontWeight: 700,\n lineHeight: '16px',\n display: 'flex',\n gap: '8px',\n }}\n >\n <span id=\"filter-results-button-label\">\n Filter Search Results\n </span>\n {appliedFacetsCount > 0 && (\n <Badge\n badgeContent={appliedFacetsCount}\n color=\"primary\"\n sx={{\n '& .MuiBadge-badge': {\n position: 'static',\n transform: 'none',\n height: '18px',\n minWidth: '18px',\n },\n }}\n />\n )}\n </Typography>\n </Button>\n </Box>\n <Box>\n {facets.length > 0 && (\n <Collapse\n in={expanded}\n id=\"filter-search-results-panel\"\n aria-labelledby=\"filter-results-button-label\"\n >\n <Box\n sx={{\n border: '1px solid',\n borderColor: 'var(--synapse-gray-100)',\n backgroundColor: 'var(--synapse-white)',\n padding: '25px',\n boxShadow: '0 4px 16px 0 rgba(0, 0, 0, 0.04)',\n pointerEvents: isLoading ? 'none' : 'auto',\n opacity: isLoading ? 0.5 : 1,\n }}\n >\n {query && setQuery && (\n <SearchFacetPanel\n expanded={expanded}\n onCollapse={() => setExpanded(false)}\n disabled={isLoading}\n query={query}\n setQuery={setQuery}\n facets={facets}\n onAddFacet={handleAddFacet}\n onRemoveFacet={handleRemoveFacet}\n onSetRangeFacet={handleSetRangeFacet}\n onRemoveRangeFacet={handleRemoveRangeFacet}\n isRangeFacetApplied={isRangeFacetAppliedCallback}\n getAppliedRangeFacet={getAppliedRangeFacetCallback}\n />\n )}\n </Box>\n </Collapse>\n )}\n </Box>\n </Box>\n <>\n {data && !isSynId && suggestion && (\n <div className={styles.didYouMeanContainer}>\n <div className={styles.didYouMeanCurrentlyShowing}>\n {!noResults && (\n <>\n Currently showing results for{' '}\n <b>{query?.queryTerm?.join(' ')}</b>.\n </>\n )}\n </div>\n <div className={styles.didYouMeanSuggestion}>\n <SearchIcon\n sx={{ color: 'grey.600' }}\n className={styles.searchIcon}\n />\n <Typography variant=\"body1\" className={styles.didYouMeanText}>\n Search for <b className={styles.suggestionText}>{suggestion}</b>{' '}\n instead?\n </Typography>\n <IconButton\n className={styles.didYouMeanArrowContainer}\n onClick={handleUseSuggestion}\n aria-label={`Search for ${suggestion} instead`}\n sx={{\n borderColor: 'primary.main',\n svg: { color: 'primary.main' },\n }}\n >\n <ArrowForward />\n </IconButton>\n </div>\n </div>\n )}\n {noResults && (\n <div className={styles.didYouMeanCurrentlyShowing}>\n No results found for <b>{query?.queryTerm?.join(' ')}</b>.\n </div>\n )}\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n gap: '20px',\n }}\n >\n {isLoading &&\n Array.from({ length: 3 }, () => (\n <Skeleton variant=\"rectangular\" width={'100%'} height={'250px'} />\n ))}\n {error && <div>Error: {error.message}</div>}\n <Suspense\n fallback={<SkeletonInlineBlock width={'100%'} height={'150px'} />}\n >\n <SearchPagePortalBanners entityIds={entityIdsForPortalBanners} />\n </Suspense>\n {query && (\n <Box sx={{ alignSelf: 'flex-start' }}>\n <AppliedFacetsChips\n query={query}\n onRemoveFacet={handleRemoveFacet}\n onRemoveRangeFacet={handleRemoveRangeFacet}\n />\n </Box>\n )}\n {data &&\n data.pages &&\n data.pages.map((page, pageIndex) =>\n page.hits.map((hit: Hit) => {\n const projectPath = hit.path?.path?.[1]\n return (\n <SynapseSearchResultsCard\n searchTerms={query?.queryTerm ?? []}\n key={hit.id + '-' + pageIndex}\n entityId={hit.id}\n name={hit.name}\n entityType={hit.node_type}\n modifiedOn={hit.modified_on}\n description={hit.description}\n locatedIn={projectPath}\n />\n )\n }),\n )}\n {hasNextPage && (\n <Button\n onClick={() => {\n void fetchNextPage()\n }}\n loading={isFetchingNextPage}\n variant=\"contained\"\n sx={{ mt: 2 }}\n >\n {isFetchingNextPage ? 'Loading more...' : 'Load More'}\n </Button>\n )}\n </Box>\n </>\n </Box>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgDA,SAAS,GACP,GACA,GACA,GACa;CACb,IAAM,IAAe,EAAM,gBAAgB,CAAC;CAU5C,OAR+B,EAAa,MAC1C,MAAM,EAAG,QAAQ,KAAa,EAAG,UAAU,CAGzC,IACK,IAGF;EACL,GAAG;EACH,GAAG;EACH,cAAc,CACZ,GAAG,GACH;GAAE,KAAK;GAAW,OAAO;GAAY,KAAK;EAAM,CAClD;EACA,OAAO;CACT;AACF;AAKA,SAAS,GACP,GACA,GACA,GACa;CACb,IAAM,IAAe,EAAM,gBAAgB,CAAC;CAE5C,OAAO;EACL,GAAG;EACH,GAAG;EACH,cAAc,EAAa,QACzB,MAAM,EAAE,EAAG,QAAQ,KAAa,EAAG,UAAU,EAC/C;EACA,OAAO;CACT;AACF;AAKA,SAAS,GACP,GACA,GACA,GACa;CAIb,IAAM,KAHa,EAAM,cAAc,CAAC,GAGF,QAAO,MAAM,EAAG,QAAQ,CAAS,GAEjE,IAAW,OAAO,KAAK,MAAM,KAAK,IAAI,IAAI,GAAI,CAAC;CAErD,OAAO;EACL,GAAG;EACH,GAAG;EACH,YAAY,CACV,GAAG,GACH;GAAE,KAAK;GAAW,KAAK;GAAU,KAAK;EAAS,CACjD;EACA,OAAO;CACT;AACF;AAKA,SAAS,GACP,GACA,GACa;CACb,IAAM,IAAa,EAAM,cAAc,CAAC;CAExC,OAAO;EACL,GAAG;EACH,GAAG;EACH,YAAY,EAAW,QAAO,MAAM,EAAG,QAAQ,CAAS;EACxD,OAAO;CACT;AACF;AAKA,SAAS,GAAoB,GAAoB,GAA4B;CAE3E,QADmB,EAAM,cAAc,CAAC,GACtB,MAAK,MAAM,EAAG,QAAQ,CAAS;AACnD;AAKA,SAAS,EACP,GACA,GACsB;CAEtB,QADmB,EAAM,cAAc,CAAC,GACtB,MAAK,MAAM,EAAG,QAAQ,CAAS;AACnD;AAOA,SAAgB,EAAyB,GAAsC;CAC7E,IACM,EAAE,UAAO,gBAAa,GACtB,EAAE,2BAAwB,EAAkB,GAC5C,CAAC,GAAU,KAAe,EAAS,EAAK;CAG9C,EAAoB,EAAE,OAAO,WAAW,GAAO,WAAW,KAAK,GAAG,IAAI,CAAC;CAIvE,IAAM,CAAC,GAAkB,KAAuB,EAC9C,GAAO,WAAW,KAAK,GAAG,KAAK,EACjC;CAIA,QAAgB;EACd,EAAoB,GAAO,WAAW,KAAK,GAAG,KAAK,EAAE;CACvD,GAAG,CAAC,CAAK,CAAC;CAGV,IAAM,EACJ,SACA,cACA,UACA,kBACA,gBACA,0BACE,EACF,IACI;EACE,GAAG;EACH,GAAG;EACH,MAAM;EACN,cAAc,CAAC,MAAM;CACvB,IACA;EAAE,WAAW,CAAC;EAAG,MAAM;EAAI,cAAc,CAAC,MAAM;CAAE,GACtD,EACE,SAAS,CAAC,CAAC,GAAO,YAAY,GAChC,CACF,GAGM,MAAqB,MAA+C;EACxE,EAAoB,EAAM,OAAO,KAAK;CACxC,GAIM,WAAqB;EACzB,AAAI,KAYF,EAAS;GAVP,GAAG;GACH,GAAG;GACH,WAAW,IACP,EACG,MAAM,GAAG,EACT,KAAI,MAAQ,EAAK,KAAK,CAAC,EACvB,OAAO,OAAO,IACjB,CAAC;GACL,OAAO;EAEA,CAAQ;CAErB,GAGM,EAAE,MAAM,MAAmB,EAC/B,EAAE,YAAY,GAAO,UAAU,GAE/B,EACE,SAAS,CAAC,CAAC,GAAO,YAAY,GAChC,CACF,GAEM,IAAa,QAAc;EAC/B,IAAM,IAAmB,GAAgB,aACnC,IAAQ,GAAO,aAAa,CAAC;EAEnC,IAAI,CAAC,GAAkB,OAAO;EAG9B,IAAM,oBAAgB,IAAI,IAAoB,GAC1C,IAAgB;EAEpB,KAAK,IAAM,KAAkB,GAAkB;GAC7C,IAAM,IAAe,EAAe,KAI9B,IAHc,MAAM,KAAK,EAAe,UAAU,CAAC,CAGlC,EAAY,QAChC,GAAM,MAEH,EAAQ,UAAU,KAAA,KAClB,EAAQ,QAAQ,MAET,IAEL,CAAC,MAAS,EAAQ,aAAa,MAAM,EAAK,aAAa,KAClD,IAEF,GAET,IACF;GAGA,AAAI,GAAgB,QAAQ,EAAe,SAAS,MAClD,EAAc,IAAI,GAAe,EAAe,IAAI,GACpD,IAAgB;EAEpB;EAUA,OARK,IAIkB,EAAM,KAC3B,MAAQ,EAAc,IAAI,EAAK,YAAY,CAAC,KAAK,CAG5C,EAAe,KAAK,GAAG,IARH;CAS7B,GAAG,CAAC,GAAgB,GAAO,SAAS,CAAC,GAG/B,KAA4B,QAAc;EAC9C,IAAI,CAAC,GAAM,SAAS,EAAK,MAAM,WAAW,GACxC,OAAO,CAAC;EAGV,IAAM,oBAAY,IAAI,IAAY,GAE5B,IAAY,EAAK,MAAM;EAE7B,IAAI,GAAW,MACb;QAAK,IAAM,KAAO,EAAU,MAM1B,IAJI,EAAI,MACN,EAAU,IAAI,EAAI,EAAE,GAGlB,EAAI,MAAM,WACP,IAAM,KAAc,EAAI,KAAK,KAAK,MAAM,CAAC,GAC5C,AAAI,EAAW,MACb,EAAU,IAAI,EAAW,EAAE;EAInC;EAKF,OAFiB,MAAM,KAAK,CAErB;CACT,GAAG,CAAC,CAAI,CAAC,GAEH,WAA4B;EAChC,AAAI,KAAY,KAUd,EAAS;GARP,GAAG;GACH,GAAG;GACH,WAAW,EACR,MAAM,GAAG,EACT,KAAI,MAAQ,EAAK,KAAK,CAAC,EACvB,OAAO,OAAO;GACjB,OAAO;EAEA,CAAQ;CAErB,GAEM,IAAY,GAAM,QAAQ,IAAI,MAAM,WAAW,GAC/C,KAAU,EAAwB,KAAK,GAAO,YAAY,MAAM,EAAE,GAGlE,CAAC,GAAQ,KAAa,EAAkB,CAAC,CAAC;CAEhD,QAAgB;EACd,IAAM,IAAY,GAAM,QAAQ,IAAI;EACpC,AAAI,KACF,EAAU,CAAS;CAEvB,GAAG,CAAC,CAAI,CAAC;CAET,IAAM,KAAiB,GACpB,GAAmB,MAAuB;EACzC,AAAI,KAAY,KACd,EAAS,GAAgB,GAAO,GAAW,CAAU,CAAC;CAE1D,GACA,CAAC,GAAO,CAAQ,CAClB,GAEM,IAAoB,GACvB,GAAmB,MAAuB;EACzC,AAAI,KAAY,KACd,EAAS,GAAqB,GAAO,GAAW,CAAU,CAAC;CAE/D,GACA,CAAC,GAAO,CAAQ,CAClB,GAEM,KAAsB,GACzB,GAAmB,MAAqB;EACvC,AAAI,KAAY,KACd,EAAS,GAAqB,GAAO,GAAW,CAAQ,CAAC;CAE7D,GACA,CAAC,GAAO,CAAQ,CAClB,GAEM,IAAyB,GAC5B,MAAsB;EACrB,AAAI,KAAY,KACd,EAAS,GAA0B,GAAO,CAAS,CAAC;CAExD,GACA,CAAC,GAAO,CAAQ,CAClB,GAEM,KAA8B,GACjC,MAAkB,IAAQ,GAAoB,GAAO,CAAI,IAAI,IAC9D,CAAC,CAAK,CACR,GAEM,KAA+B,GAClC,MAAkB,IAAQ,EAAqB,GAAO,CAAI,IAAI,KAAA,GAC/D,CAAC,CAAK,CACR,GAEM,KACH,GAAO,cAAc,QAAO,MAAM,EAAqB,EAAG,KAAK,EAAG,KAAK,CAAC,EACtE,UAAU,MAAM,GAAO,YAAY,UAAU;CAElD,OACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,eAAe;GACf,OAAO;GACP,GAAG;GACH,KAAK;EACP;YAPF,CASE,kBAAC,GAAD;GACE,IAAI;IACF,SAAS;IACT,eAAe;IACf,QAAQ;IACR,KAAK;GACP;aANF;IAQG,KACC,kBAAC,GAAD;KAAY,SAAQ;eAApB;MAAiC;MACO;MACtC,kBAAC,GAAD;OAAM,MAAM;iBAAqB;MAAoB,CAAA;KAC3C;;IAEd,kBAAC,GAAD;KAAK,WAAW,EAAO;eAAvB,CACE,kBAAC,GAAD;MACE,aAAY;MACZ,IAAI,EAAE,MAAM,EAAE;MACd,OAAO;MACP,UAAU;MACV,YAAW,MAAK;OACd,AAAI,EAAE,QAAQ,WACZ,GAAa;MAEjB;MACA,WAAW,EACT,OAAO;OACL,IAAI;QACF,cAAc;QACd,WAAW;QACX,iBAAiB;OACnB;OACA,gBACE,kBAAC,GAAD;QAAgB,UAAS;kBACvB,kBAAC,GAAD,EAAY,IAAI,EAAE,OAAO,gBAAgB,EAAI,CAAA;OAC/B,CAAA;MAEpB,EACF;KACD,CAAA,GACD,kBAAC,GAAD;MACE,eAAe,EAAY,EAAI;MAC/B,SAAQ;MACR,WAAW,kBAAC,IAAD,CAAwB,CAAA;MACnC,iBAAe;MACf,iBAAc;MACd,IAAI,EACF,QAAO,MAAS,EAAM,QAAQ,QAAQ,KACxC;MACA,WAAW,EAAO;gBAElB,kBAAC,GAAD;OACE,IAAI;QACF,YAAY;QACZ,YAAY;QACZ,SAAS;QACT,KAAK;OACP;iBANF,CAQE,kBAAC,QAAD;QAAM,IAAG;kBAA8B;OAEjC,CAAA,GACL,IAAqB,KACpB,kBAAC,GAAD;QACE,cAAc;QACd,OAAM;QACN,IAAI,EACF,qBAAqB;SACnB,UAAU;SACV,WAAW;SACX,QAAQ;SACR,UAAU;QACZ,EACF;OACD,CAAA,CAEO;;KACN,CAAA,CACL;;IACL,kBAAC,GAAD,EAAA,UACG,EAAO,SAAS,KACf,kBAAC,IAAD;KACE,IAAI;KACJ,IAAG;KACH,mBAAgB;eAEhB,kBAAC,GAAD;MACE,IAAI;OACF,QAAQ;OACR,aAAa;OACb,iBAAiB;OACjB,SAAS;OACT,WAAW;OACX,eAAe,IAAY,SAAS;OACpC,SAAS,IAAY,KAAM;MAC7B;gBAEC,KAAS,KACR,kBAAC,GAAD;OACY;OACV,kBAAkB,EAAY,EAAK;OACnC,UAAU;OACH;OACG;OACF;OACR,YAAY;OACZ,eAAe;OACf,iBAAiB;OACjB,oBAAoB;OACpB,qBAAqB;OACrB,sBAAsB;MACvB,CAAA;KAEA,CAAA;IACG,CAAA,EAET,CAAA;GACF;MACL,kBAAA,GAAA,EAAA,UAAA;GACG,KAAQ,CAAC,MAAW,KACnB,kBAAC,OAAD;IAAK,WAAW,EAAO;cAAvB,CACE,kBAAC,OAAD;KAAK,WAAW,EAAO;eACpB,CAAC,KACA,kBAAA,GAAA,EAAA,UAAA;MAAE;MAC8B;MAC9B,kBAAC,KAAD,EAAA,UAAI,GAAO,WAAW,KAAK,GAAG,EAAK,CAAA;MAAC;KACpC,EAAA,CAAA;IAED,CAAA,GACL,kBAAC,OAAD;KAAK,WAAW,EAAO;eAAvB;MACE,kBAAC,GAAD;OACE,IAAI,EAAE,OAAO,WAAW;OACxB,WAAW,EAAO;MACnB,CAAA;MACD,kBAAC,GAAD;OAAY,SAAQ;OAAQ,WAAW,EAAO;iBAA9C;QAA8D;QACjD,kBAAC,KAAD;SAAG,WAAW,EAAO;mBAAiB;QAAc,CAAA;QAAE;QAAI;OAE3D;;MACZ,kBAAC,GAAD;OACE,WAAW,EAAO;OAClB,SAAS;OACT,cAAY,cAAc,EAAW;OACrC,IAAI;QACF,aAAa;QACb,KAAK,EAAE,OAAO,eAAe;OAC/B;iBAEA,kBAAC,GAAD,CAAe,CAAA;MACL,CAAA;KACT;MACF;;GAEN,KACC,kBAAC,OAAD;IAAK,WAAW,EAAO;cAAvB;KAAmD;KAC5B,kBAAC,KAAD,EAAA,UAAI,GAAO,WAAW,KAAK,GAAG,EAAK,CAAA;KAAC;IACtD;;GAEP,kBAAC,GAAD;IACE,IAAI;KACF,SAAS;KACT,eAAe;KACf,YAAY;KACZ,KAAK;IACP;cANF;KAQG,KACC,MAAM,KAAK,EAAE,QAAQ,EAAE,SACrB,kBAAC,GAAD;MAAU,SAAQ;MAAc,OAAO;MAAQ,QAAQ;KAAU,CAAA,CAClE;KACF,KAAS,kBAAC,OAAD,EAAA,UAAA,CAAK,WAAQ,EAAM,OAAa,EAAA,CAAA;KAC1C,kBAAC,GAAD;MACE,UAAU,kBAAC,IAAD;OAAqB,OAAO;OAAQ,QAAQ;MAAU,CAAA;gBAEhE,kBAAC,GAAD,EAAyB,WAAW,GAA4B,CAAA;KACxD,CAAA;KACT,KACC,kBAAC,GAAD;MAAK,IAAI,EAAE,WAAW,aAAa;gBACjC,kBAAC,GAAD;OACS;OACP,eAAe;OACf,oBAAoB;MACrB,CAAA;KACE,CAAA;KAEN,KACC,EAAK,SACL,EAAK,MAAM,KAAK,GAAM,MACpB,EAAK,KAAK,KAAK,MAAa;MAC1B,IAAM,IAAc,EAAI,MAAM,OAAO;MACrC,OACE,kBAAC,GAAD;OACE,aAAa,GAAO,aAAa,CAAC;OAElC,UAAU,EAAI;OACd,MAAM,EAAI;OACV,YAAY,EAAI;OAChB,YAAY,EAAI;OAChB,aAAa,EAAI;OACjB,WAAW;MACZ,GAPM,EAAI,KAAK,MAAM,CAOrB;KAEL,CAAC,CACH;KACD,KACC,kBAAC,GAAD;MACE,eAAe;OACb,EAAmB;MACrB;MACA,SAAS;MACT,SAAQ;MACR,IAAI,EAAE,IAAI,EAAE;gBAEX,IAAqB,oBAAoB;KACpC,CAAA;IAEP;;EACL,EAAA,CAAA,CACC;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SynapseSearchResultsCard.d.ts","sourceRoot":"","sources":["../../../src/components/SynapseSearchPageResults/SynapseSearchResultsCard.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SynapseSearchResultsCard.d.ts","sourceRoot":"","sources":["../../../src/components/SynapseSearchPageResults/SynapseSearchResultsCard.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAc7D,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,UAAU,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAiBD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,6BAA6B,2CAwJ5E;AAED,eAAe,wBAAwB,CAAA"}
|
|
@@ -15,9 +15,12 @@ import { useRef as p } from "react";
|
|
|
15
15
|
import { Box as m, Chip as h, Link as g, Paper as _, Stack as v, Typography as y, styled as b } from "@mui/material";
|
|
16
16
|
import { jsx as x, jsxs as S } from "react/jsx-runtime";
|
|
17
17
|
import { EntityType as C } from "@sage-bionetworks/synapse-client";
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
18
|
+
import w from "dayjs";
|
|
19
|
+
import T from "@mui/icons-material/ArticleOutlined";
|
|
20
|
+
import E from "@mui/icons-material/DashboardTwoTone";
|
|
21
|
+
import { useInView as D } from "react-intersection-observer";
|
|
22
|
+
import O from "@mui/icons-material/InfoOutline";
|
|
23
|
+
import k from "@mui/icons-material/Update";
|
|
21
24
|
//#region src/components/SynapseSearchPageResults/SynapseSearchResultsCard.tsx
|
|
22
25
|
var A = b(_, { label: "SynapseSearchResultsCardContainer" })({
|
|
23
26
|
display: "flex",
|
|
@@ -29,7 +32,7 @@ var A = b(_, { label: "SynapseSearchResultsCardContainer" })({
|
|
|
29
32
|
gap: "15px"
|
|
30
33
|
});
|
|
31
34
|
function j(_) {
|
|
32
|
-
let b = p(null), { ref: j, inView: M } =
|
|
35
|
+
let b = p(null), { ref: j, inView: M } = D({
|
|
33
36
|
triggerOnce: !0,
|
|
34
37
|
rootMargin: "250px 0px"
|
|
35
38
|
}), { data: N } = r(_.entityId, void 0, { includeFileHandles: !0 }, { enabled: _.entityType === C.file && M }), P = N?.fileHandles.find((e) => e.isPreview !== !0), F = P?.contentSize ? n(P?.contentSize) : "", I = _.description ? i(_.description) : "";
|
|
@@ -103,18 +106,18 @@ function j(_) {
|
|
|
103
106
|
children: [
|
|
104
107
|
/* @__PURE__ */ S(m, {
|
|
105
108
|
sx: { display: "flex" },
|
|
106
|
-
children: [/* @__PURE__ */ x(
|
|
109
|
+
children: [/* @__PURE__ */ x(k, { className: f.cardMetadataIcon }), /* @__PURE__ */ S(y, {
|
|
107
110
|
className: f.cardMetadataTypographyWithIcon,
|
|
108
111
|
children: [
|
|
109
112
|
"Last updated:",
|
|
110
113
|
" ",
|
|
111
|
-
a(
|
|
114
|
+
a(w.unix(_.modifiedOn), "M/D/YYYY")
|
|
112
115
|
]
|
|
113
116
|
})]
|
|
114
117
|
}),
|
|
115
118
|
I && /* @__PURE__ */ S(m, {
|
|
116
119
|
sx: { display: "flex" },
|
|
117
|
-
children: [/* @__PURE__ */ x(
|
|
120
|
+
children: [/* @__PURE__ */ x(T, { className: f.cardMetadataIcon }), /* @__PURE__ */ x(u, {
|
|
118
121
|
className: `${f.cardMetadataTypographyWithIcon} ${f.cardDescription}`,
|
|
119
122
|
text: I,
|
|
120
123
|
searchTerms: _.searchTerms ?? []
|
|
@@ -122,7 +125,7 @@ function j(_) {
|
|
|
122
125
|
}),
|
|
123
126
|
F && /* @__PURE__ */ S(m, {
|
|
124
127
|
sx: { display: "flex" },
|
|
125
|
-
children: [/* @__PURE__ */ x(
|
|
128
|
+
children: [/* @__PURE__ */ x(O, { className: f.cardMetadataIcon }), /* @__PURE__ */ S(y, {
|
|
126
129
|
className: f.cardMetadataTypographyWithIcon,
|
|
127
130
|
children: ["File size: ", /* @__PURE__ */ x("b", { children: F })]
|
|
128
131
|
})]
|
|
@@ -138,7 +141,7 @@ function j(_) {
|
|
|
138
141
|
className: f.cardMetadataTypographyWithIcon,
|
|
139
142
|
children: ["Located in:", " "]
|
|
140
143
|
}),
|
|
141
|
-
/* @__PURE__ */ x(
|
|
144
|
+
/* @__PURE__ */ x(E, {
|
|
142
145
|
className: f.cardMetadataIcon,
|
|
143
146
|
sx: { marginRight: "4px" }
|
|
144
147
|
}),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SynapseSearchResultsCard.js","names":[],"sources":["../../../src/components/SynapseSearchPageResults/SynapseSearchResultsCard.tsx"],"sourcesContent":["import { useGetEntityBundle } from '@/synapse-queries'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { StyledComponent } from '@emotion/styled'\nimport
|
|
1
|
+
{"version":3,"file":"SynapseSearchResultsCard.js","names":[],"sources":["../../../src/components/SynapseSearchPageResults/SynapseSearchResultsCard.tsx"],"sourcesContent":["import { useGetEntityBundle } from '@/synapse-queries'\nimport { calculateFriendlyFileSize } from '@/utils/functions/calculateFriendlyFileSize'\nimport { formatDate } from '@/utils/functions/DateFormatter'\nimport {\n BackendDestinationEnum,\n getEndpoint,\n} from '@/utils/functions/getEndpoint'\nimport { StyledComponent } from '@emotion/styled'\nimport ArticleOutlined from '@mui/icons-material/ArticleOutlined'\nimport DashboardTwoTone from '@mui/icons-material/DashboardTwoTone'\nimport InfoOutline from '@mui/icons-material/InfoOutline'\nimport UpdateIcon from '@mui/icons-material/Update'\nimport {\n Box,\n Chip,\n Link,\n Paper,\n PaperProps,\n Stack,\n styled,\n Typography,\n} from '@mui/material'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport dayjs from 'dayjs'\nimport { useRef } from 'react'\nimport { useInView } from 'react-intersection-observer'\nimport { EntityDownloadButton } from '../EntityDownloadButton/EntityDownloadButton'\nimport { FileHandleWithPreview } from '../EntityFinder/details/view/table/TableCellTypes'\nimport { EntityTypeIcon } from '../EntityIcon'\nimport FavoriteButton from '../favorites/FavoriteButton'\nimport { markdownToPlainText } from '../Markdown/MarkdownUtils'\nimport { searchResultsCardChipStyles } from './chipStyles'\nimport HasAccessChip from './HasAccessChip'\nimport { HighlightedTypography } from './HighlightedTypography'\nimport styles from './SynapseSearchResultsCard.module.scss'\n\nexport type SynapseSearchResultsCardProps = {\n entityId: string\n name: string\n description?: string\n entityType: EntityType\n modifiedOn: number\n locatedIn?: { name: string; id: string }\n searchTerms?: string[]\n}\n\nconst SynapseSearchResultsCardContainer: StyledComponent<PaperProps> = styled(\n Paper,\n {\n label: 'SynapseSearchResultsCardContainer',\n },\n)({\n display: 'flex',\n flexDirection: 'column',\n minHeight: '250px',\n width: '100%',\n borderRadius: '10px',\n padding: '32px',\n gap: '15px',\n})\n\nexport function SynapseSearchResultsCard(props: SynapseSearchResultsCardProps) {\n const downloadConfirmationRef = useRef<HTMLDivElement>(null)\n\n const { ref, inView } = useInView({\n triggerOnce: true,\n rootMargin: '250px 0px',\n })\n\n const { data: entityBundle } = useGetEntityBundle(\n props.entityId,\n undefined,\n { includeFileHandles: true },\n { enabled: props.entityType === EntityType.file && inView },\n )\n\n const file = entityBundle?.fileHandles.find(\n (file: FileHandleWithPreview) => file.isPreview !== true,\n )\n\n const friendlySize = file?.contentSize\n ? calculateFriendlyFileSize(file?.contentSize)\n : ''\n\n const plainDescription = props.description\n ? markdownToPlainText(props.description)\n : ''\n\n return (\n <SynapseSearchResultsCardContainer ref={ref}>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n <Link\n href={`${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${props.entityId}`}\n sx={{\n textDecoration: 'underline 2px',\n textUnderlineOffset: '9px',\n }}\n >\n <HighlightedTypography\n className={styles.cardTitle}\n variant=\"headline3\"\n text={props.name}\n searchTerms={props.searchTerms ?? []}\n />\n </Link>\n\n <Box\n sx={{\n display: 'flex',\n gap: '16px',\n alignItems: 'center',\n }}\n >\n <FavoriteButton entityId={props.entityId} />\n <EntityDownloadButton\n entityId={props.entityId}\n name={props.name}\n entityType={props.entityType}\n downloadConfirmationContainer={downloadConfirmationRef}\n />\n </Box>\n </Box>\n {/* Portal target for EntityDownloadButton's download confirmation dialog */}\n <div ref={downloadConfirmationRef} />\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n }}\n >\n <Chip\n icon={\n <EntityTypeIcon\n type={props.entityType}\n wrap={false}\n sx={{ color: '#265149', width: '18px' }}\n />\n }\n label={props.entityType}\n sx={{ ...searchResultsCardChipStyles }}\n />\n <HasAccessChip entityId={props.entityId} />\n </Box>\n <Box\n sx={{\n display: 'flex',\n flexDirection: 'row',\n gap: '8px',\n }}\n >\n <Stack sx={{ gap: '20px', minWidth: 0, width: '100%' }}>\n <Box sx={{ display: 'flex' }}>\n <UpdateIcon className={styles.cardMetadataIcon} />\n <Typography className={styles.cardMetadataTypographyWithIcon}>\n Last updated:{' '}\n {formatDate(dayjs.unix(props.modifiedOn), 'M/D/YYYY')}\n </Typography>\n </Box>\n {plainDescription && (\n <Box sx={{ display: 'flex' }}>\n <ArticleOutlined className={styles.cardMetadataIcon} />\n <HighlightedTypography\n className={`${styles.cardMetadataTypographyWithIcon} ${styles.cardDescription}`}\n text={plainDescription}\n searchTerms={props.searchTerms ?? []}\n />\n </Box>\n )}\n\n {friendlySize && (\n <Box sx={{ display: 'flex' }}>\n <InfoOutline className={styles.cardMetadataIcon} />\n <Typography className={styles.cardMetadataTypographyWithIcon}>\n File size: <b>{friendlySize}</b>\n </Typography>\n </Box>\n )}\n {props.locatedIn && (\n <Box\n sx={{ display: 'flex', marginLeft: '24px', alignItems: 'center' }}\n >\n <Typography className={styles.cardMetadataTypographyWithIcon}>\n Located in:{' '}\n </Typography>\n <DashboardTwoTone\n className={styles.cardMetadataIcon}\n sx={{\n marginRight: '4px',\n }}\n />\n <Link\n className={styles.locatedInLink}\n href={`${getEndpoint(\n BackendDestinationEnum.PORTAL_ENDPOINT,\n )}Synapse:${props.locatedIn?.id}`}\n >\n {props.locatedIn?.name}\n </Link>\n </Box>\n )}\n </Stack>\n </Box>\n </SynapseSearchResultsCardContainer>\n )\n}\n\nexport default SynapseSearchResultsCard\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowSelectionControls.d.ts","sourceRoot":"","sources":["../../../../src/components/SynapseTable/RowSelection/RowSelectionControls.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RowSelectionControls.d.ts","sourceRoot":"","sources":["../../../../src/components/SynapseTable/RowSelection/RowSelectionControls.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAA;AAQpE,MAAM,MAAM,yBAAyB,GAAG;IACtC,cAAc,CAAC,EAAE,aAAa,EAAE,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,2CAwGpE"}
|
|
@@ -1,81 +1,75 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useQueryVisualizationContext as e } from "../../QueryVisualizationWrapper/QueryVisualizationContext.js";
|
|
2
|
+
import { useSynapseContext as t } from "../../../utils/context/SynapseContext.js";
|
|
2
3
|
import "../../../utils/index.js";
|
|
3
|
-
import { useGetEntity as
|
|
4
|
-
import { canTableQueryBeAddedToDownloadList as
|
|
4
|
+
import { useGetEntity as n } from "../../../synapse-queries/entity/useEntity.js";
|
|
5
|
+
import { canTableQueryBeAddedToDownloadList as r } from "../../../utils/functions/queryUtils.js";
|
|
5
6
|
import "../../../synapse-queries/index.js";
|
|
6
|
-
import { getFileColumnModelId as
|
|
7
|
-
import i from "../../download_list/AddToDownloadListConfirmationAlert/AddToDownloadListConfirmationAlert.js";
|
|
7
|
+
import { getFileColumnModelId as i } from "../SynapseTableUtils.js";
|
|
8
8
|
import { useQueryContext as a } from "../../QueryContext/QueryContext.js";
|
|
9
9
|
import "../../QueryContext/index.js";
|
|
10
10
|
import { useGetQueryMetadata as o } from "../../QueryWrapper/useGetQueryMetadata.js";
|
|
11
|
-
import { useQueryVisualizationContext as s } from "../../QueryVisualizationWrapper/QueryVisualizationContext.js";
|
|
12
11
|
import "../../QueryVisualizationWrapper/index.js";
|
|
13
|
-
import { selectedRowsAtom as
|
|
14
|
-
import { SignInRequiredModal as
|
|
15
|
-
import {
|
|
16
|
-
import { CustomControlButton as
|
|
17
|
-
import { RowSelectionUI as
|
|
12
|
+
import { selectedRowsAtom as s } from "../../QueryWrapper/TableRowSelectionState.js";
|
|
13
|
+
import { SignInRequiredModal as c } from "../../SignInRequiredModal/SignInRequiredModal.js";
|
|
14
|
+
import { useAddSelectedRowsToDownloadList as l } from "../../QueryWrapper/useAddSelectedRowsToDownloadList.js";
|
|
15
|
+
import { CustomControlButton as u } from "../CustomControls/CustomControlButton.js";
|
|
16
|
+
import { RowSelectionUI as d } from "./RowSelectionUI.js";
|
|
17
|
+
import { DownloadLoginModal as f } from "../table-top/DownloadLoginModal.js";
|
|
18
18
|
import { useState as p } from "react";
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import
|
|
23
|
-
import { useAtom as x } from "jotai";
|
|
19
|
+
import { Button as m } from "@mui/material";
|
|
20
|
+
import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
|
|
21
|
+
import { useAtom as v } from "jotai";
|
|
22
|
+
import y from "@mui/icons-material/GetAppTwoTone";
|
|
24
23
|
//#region src/components/SynapseTable/RowSelection/RowSelectionControls.tsx
|
|
25
|
-
var
|
|
26
|
-
function
|
|
27
|
-
let { customControls:
|
|
28
|
-
F([]),
|
|
29
|
-
},
|
|
30
|
-
return /* @__PURE__ */
|
|
24
|
+
var b = "SendToAnalysisPlatformRowSelectionControlButton";
|
|
25
|
+
function x(x) {
|
|
26
|
+
let { customControls: S = [], remount: C } = x, { isAuthenticated: w } = t(), [T, E] = p(!1), [D, O] = p(!1), { entityId: k, versionNumber: A, getCurrentQueryRequest: j } = a(), { data: M } = n(k, A), { data: N } = o(), [P, F] = v(s), { addSelectedRowsToDownloadList: I, isPending: L } = l(), { setIsShowingExportToAnalysisPlatformModal: R, enabledExternalAnalysisPlatforms: z } = e(), B = z.length > 0, V = () => {
|
|
27
|
+
F([]), C && C();
|
|
28
|
+
}, H = r(M, i(N?.columnModels));
|
|
29
|
+
return /* @__PURE__ */ g(d, {
|
|
31
30
|
show: P.length > 0,
|
|
32
31
|
selectedRowCount: P.length,
|
|
33
32
|
onClearSelection: () => F([]),
|
|
34
|
-
customControls: /* @__PURE__ */
|
|
35
|
-
|
|
33
|
+
customControls: /* @__PURE__ */ _(h, { children: [
|
|
34
|
+
S.map((e) => /* @__PURE__ */ g(u, {
|
|
36
35
|
variant: "contained",
|
|
37
36
|
callbackData: {
|
|
38
37
|
tableId: k,
|
|
39
38
|
queryMetadata: N,
|
|
40
39
|
selectedRows: P,
|
|
41
|
-
refresh:
|
|
40
|
+
refresh: V,
|
|
42
41
|
request: j()
|
|
43
42
|
},
|
|
44
43
|
control: e,
|
|
45
44
|
startIcon: e.icon
|
|
46
45
|
}, e.buttonText)),
|
|
47
|
-
|
|
46
|
+
B && /* @__PURE__ */ g(m, {
|
|
48
47
|
variant: "outlined",
|
|
49
48
|
onClick: () => {
|
|
50
|
-
|
|
49
|
+
w ? R(!0) : E(!0);
|
|
51
50
|
},
|
|
52
|
-
id:
|
|
51
|
+
id: b,
|
|
53
52
|
children: "Send to Analysis Platform"
|
|
54
53
|
}),
|
|
55
|
-
|
|
56
|
-
onHide: () =>
|
|
54
|
+
T && /* @__PURE__ */ g(c, {
|
|
55
|
+
onHide: () => E(!1),
|
|
57
56
|
content: "You must be signed in to send results to an analysis platform."
|
|
58
57
|
}),
|
|
59
|
-
|
|
58
|
+
H && /* @__PURE__ */ g(m, {
|
|
60
59
|
variant: "contained",
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
children: /* @__PURE__ */ v(i, {
|
|
65
|
-
addToDownloadListRequest: I,
|
|
66
|
-
onClose: () => {
|
|
67
|
-
g.dismiss(e);
|
|
68
|
-
}
|
|
69
|
-
})
|
|
70
|
-
}), { duration: Infinity });
|
|
71
|
-
},
|
|
72
|
-
startIcon: /* @__PURE__ */ v(b, {}),
|
|
60
|
+
loading: L,
|
|
61
|
+
onClick: () => w ? void I() : O(!0),
|
|
62
|
+
startIcon: /* @__PURE__ */ g(y, {}),
|
|
73
63
|
children: "Add to Download List"
|
|
64
|
+
}),
|
|
65
|
+
D && /* @__PURE__ */ g(f, {
|
|
66
|
+
showModal: D,
|
|
67
|
+
onHide: () => O(!1)
|
|
74
68
|
})
|
|
75
69
|
] })
|
|
76
70
|
});
|
|
77
71
|
}
|
|
78
72
|
//#endregion
|
|
79
|
-
export {
|
|
73
|
+
export { x as RowSelectionControls };
|
|
80
74
|
|
|
81
75
|
//# sourceMappingURL=RowSelectionControls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowSelectionControls.js","names":[],"sources":["../../../../src/components/SynapseTable/RowSelection/RowSelectionControls.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"RowSelectionControls.js","names":[],"sources":["../../../../src/components/SynapseTable/RowSelection/RowSelectionControls.tsx"],"sourcesContent":["import { useAddSelectedRowsToDownloadList } from '@/components/QueryWrapper/useAddSelectedRowsToDownloadList'\nimport { useGetEntity } from '@/synapse-queries'\nimport { canTableQueryBeAddedToDownloadList } from '@/utils/functions/queryUtils'\nimport GetAppTwoTone from '@mui/icons-material/GetAppTwoTone'\nimport { Button } from '@mui/material'\nimport { Table } from '@sage-bionetworks/synapse-types'\nimport { useAtom } from 'jotai'\nimport { useState } from 'react'\nimport { useSynapseContext } from '@/utils'\nimport { useQueryContext } from '../../QueryContext'\nimport { useQueryVisualizationContext } from '../../QueryVisualizationWrapper'\nimport { selectedRowsAtom } from '../../QueryWrapper/TableRowSelectionState'\nimport { useGetQueryMetadata } from '../../QueryWrapper/useGetQueryMetadata'\nimport {\n getFileColumnModelId,\n SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE,\n} from '../SynapseTableUtils'\nimport { CustomControlButton } from '../CustomControls/CustomControlButton'\nimport { CustomControl } from '../TopLevelControls/TopLevelControls'\nimport { RowSelectionUI } from './RowSelectionUI'\nimport { SignInRequiredModal } from '@/components/SignInRequiredModal/SignInRequiredModal'\nimport { DownloadLoginModal } from '../table-top/DownloadLoginModal'\n\nconst SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID =\n 'SendToAnalysisPlatformRowSelectionControlButton'\n\nexport type RowSelectionControlsProps = {\n customControls?: CustomControl[]\n remount?: () => void\n}\n\n/**\n * This component is responsible for rendering the RowSelectionUI and the custom controls. Must be wrapped in a\n * QueryContext and a QueryVisualizationContext.\n * @param props\n * @constructor\n */\nexport function RowSelectionControls(props: RowSelectionControlsProps) {\n const { customControls = [], remount } = props\n const { isAuthenticated } = useSynapseContext()\n const [showLoginModal, setShowLoginModal] = useState(false)\n const [showDownloadLoginModal, setShowDownloadLoginModal] = useState(false)\n const { entityId, versionNumber, getCurrentQueryRequest } = useQueryContext()\n const { data: entity } = useGetEntity<Table>(entityId, versionNumber)\n const { data: queryMetadata } = useGetQueryMetadata()\n const [selectedRows, setSelectedRows] = useAtom(selectedRowsAtom)\n\n const { addSelectedRowsToDownloadList, isPending: isAddingToDownloadList } =\n useAddSelectedRowsToDownloadList()\n\n const {\n setIsShowingExportToAnalysisPlatformModal,\n enabledExternalAnalysisPlatforms,\n } = useQueryVisualizationContext()\n\n const showExportToAnalysisPlatformButton =\n enabledExternalAnalysisPlatforms.length > 0\n\n const refresh = () => {\n // clear selection\n setSelectedRows([])\n if (remount) {\n remount()\n }\n }\n const fileColumnId = getFileColumnModelId(queryMetadata?.columnModels)\n const showAddToDownloadCart = canTableQueryBeAddedToDownloadList(\n entity,\n fileColumnId,\n )\n\n return (\n <RowSelectionUI\n show={selectedRows.length > 0}\n selectedRowCount={selectedRows.length}\n onClearSelection={() => setSelectedRows([])}\n customControls={\n <>\n {customControls.map(customControl => {\n return (\n <CustomControlButton\n key={customControl.buttonText}\n variant=\"contained\"\n callbackData={{\n tableId: entityId!,\n queryMetadata: queryMetadata,\n selectedRows,\n refresh,\n request: getCurrentQueryRequest(),\n }}\n control={customControl}\n startIcon={customControl.icon}\n />\n )\n })}\n {/* TODO: Generic button */}\n {showExportToAnalysisPlatformButton && (\n <Button\n variant=\"outlined\"\n onClick={() => {\n if (isAuthenticated) {\n setIsShowingExportToAnalysisPlatformModal(true)\n } else {\n setShowLoginModal(true)\n }\n }}\n id={SEND_TO_ANALYSIS_PLATFORM_BUTTON_ID}\n >\n Send to Analysis Platform\n </Button>\n )}\n {showLoginModal && (\n <SignInRequiredModal\n onHide={() => setShowLoginModal(false)}\n content={SEND_TO_ANALYSIS_PLATFORM_SIGN_IN_MESSAGE}\n />\n )}\n {showAddToDownloadCart && (\n <Button\n variant=\"contained\"\n loading={isAddingToDownloadList}\n onClick={() =>\n isAuthenticated\n ? void addSelectedRowsToDownloadList()\n : setShowDownloadLoginModal(true)\n }\n startIcon={<GetAppTwoTone />}\n >\n Add to Download List\n </Button>\n )}\n {showDownloadLoginModal && (\n <DownloadLoginModal\n showModal={showDownloadLoginModal}\n onHide={() => setShowDownloadLoginModal(false)}\n />\n )}\n </>\n }\n />\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAM,IACJ;AAaF,SAAgB,EAAqB,GAAkC;CACrE,IAAM,EAAE,oBAAiB,CAAC,GAAG,eAAY,GACnC,EAAE,uBAAoB,EAAkB,GACxC,CAAC,GAAgB,KAAqB,EAAS,EAAK,GACpD,CAAC,GAAwB,KAA6B,EAAS,EAAK,GACpE,EAAE,aAAU,kBAAe,8BAA2B,EAAgB,GACtE,EAAE,MAAM,MAAW,EAAoB,GAAU,CAAa,GAC9D,EAAE,MAAM,MAAkB,EAAoB,GAC9C,CAAC,GAAc,KAAmB,EAAQ,CAAgB,GAE1D,EAAE,kCAA+B,WAAW,MAChD,EAAiC,GAE7B,EACJ,8CACA,wCACE,EAA6B,GAE3B,IACJ,EAAiC,SAAS,GAEtC,UAAgB;EAGpB,AADA,EAAgB,CAAC,CAAC,GACd,KACF,EAAQ;CAEZ,GAEM,IAAwB,EAC5B,GAFmB,EAAqB,GAAe,YAGvD,CACF;CAEA,OACE,kBAAC,GAAD;EACE,MAAM,EAAa,SAAS;EAC5B,kBAAkB,EAAa;EAC/B,wBAAwB,EAAgB,CAAC,CAAC;EAC1C,gBACE,kBAAA,GAAA,EAAA,UAAA;GACG,EAAe,KAAI,MAEhB,kBAAC,GAAD;IAEE,SAAQ;IACR,cAAc;KACZ,SAAS;KACM;KACf;KACA;KACA,SAAS,EAAuB;IAClC;IACA,SAAS;IACT,WAAW,EAAc;GAC1B,GAXM,EAAc,UAWpB,CAEJ;GAEA,KACC,kBAAC,GAAD;IACE,SAAQ;IACR,eAAe;KACb,AAAI,IACF,EAA0C,EAAI,IAE9C,EAAkB,EAAI;IAE1B;IACA,IAAI;cACL;GAEO,CAAA;GAET,KACC,kBAAC,GAAD;IACE,cAAc,EAAkB,EAAK;IACrC,SAAA;GACD,CAAA;GAEF,KACC,kBAAC,GAAD;IACE,SAAQ;IACR,SAAS;IACT,eACE,IACI,KAAK,EAA8B,IACnC,EAA0B,EAAI;IAEpC,WAAW,kBAAC,GAAD,CAAgB,CAAA;cAC5B;GAEO,CAAA;GAET,KACC,kBAAC,GAAD;IACE,WAAW;IACX,cAAc,EAA0B,EAAK;GAC9C,CAAA;EAEH,EAAA,CAAA;CAEL,CAAA;AAEL"}
|
|
@@ -2,12 +2,12 @@ import { isRowSelectionUIFloatingAtom as e } from "../../QueryWrapper/TableRowSe
|
|
|
2
2
|
import { InlineBadge as t } from "../../styled/InlineBadge.js";
|
|
3
3
|
import { Box as n, Button as r, Paper as i, Typography as a } from "@mui/material";
|
|
4
4
|
import { Fragment as o, jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
5
|
-
import
|
|
6
|
-
import u from "
|
|
5
|
+
import l from "pluralize";
|
|
6
|
+
import { useAtomValue as u } from "jotai";
|
|
7
7
|
//#region src/components/SynapseTable/RowSelection/RowSelectionUI.tsx
|
|
8
8
|
var d = "SynapseFloatingRowSelectionBar", f = "var(--synapse-floating-row-selection-bar-height)";
|
|
9
9
|
function p(p) {
|
|
10
|
-
let { show: m = !0, selectedRowCount: h, onClearSelection: g, customControls: _ = /* @__PURE__ */ s(o, {}) } = p, v =
|
|
10
|
+
let { show: m = !0, selectedRowCount: h, onClearSelection: g, customControls: _ = /* @__PURE__ */ s(o, {}) } = p, v = u(e);
|
|
11
11
|
return m ? /* @__PURE__ */ c(i, {
|
|
12
12
|
className: v ? d : void 0,
|
|
13
13
|
sx: {
|
|
@@ -46,7 +46,7 @@ function p(p) {
|
|
|
46
46
|
max: Infinity
|
|
47
47
|
}), /* @__PURE__ */ c(a, {
|
|
48
48
|
variant: "body1",
|
|
49
|
-
children: [
|
|
49
|
+
children: [l("Row", h), " Selected"]
|
|
50
50
|
})]
|
|
51
51
|
}), _]
|
|
52
52
|
})]
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import t from "../
|
|
3
|
-
import
|
|
1
|
+
import { useQueryVisualizationContext as e } from "../QueryVisualizationWrapper/QueryVisualizationContext.js";
|
|
2
|
+
import { HelpPopover as t } from "../HelpPopover/HelpPopover.js";
|
|
3
|
+
import n from "../IconSvg/index.js";
|
|
4
|
+
import { useQueryContext as r } from "../QueryContext/QueryContext.js";
|
|
4
5
|
import "../QueryContext/index.js";
|
|
5
|
-
import { useQueryVisualizationContext as r } from "../QueryVisualizationWrapper/QueryVisualizationContext.js";
|
|
6
6
|
import "../QueryVisualizationWrapper/index.js";
|
|
7
7
|
import { useEffect as i, useMemo as a, useRef as o, useState as s } from "react";
|
|
8
8
|
import { Collapse as c, TextField as l } from "@mui/material";
|
|
@@ -10,7 +10,7 @@ import { jsx as u } from "react/jsx-runtime";
|
|
|
10
10
|
//#region src/components/SynapseTable/SqlEditor.tsx
|
|
11
11
|
var d = "The data within tables and views can be retrieved by using a SQL-like query language either from the web interface or from the programmatic clients.", f = "https://docs.synapse.org/synapse-docs/querying-tables-views-and-datasets#Using-Advanced-Search-Queries";
|
|
12
12
|
function p({ helpMessage: p = d, helpUrl: m = f, resetErrorBoundary: h }) {
|
|
13
|
-
let { executeQueryRequest: g, getCurrentQueryRequest: _ } =
|
|
13
|
+
let { executeQueryRequest: g, getCurrentQueryRequest: _ } = r(), { showSqlEditor: v } = e(), [y, b] = s(""), x = o(null), S = a(() => _(), [_]);
|
|
14
14
|
return i(() => {
|
|
15
15
|
if (v) {
|
|
16
16
|
let e = S.query.sql;
|
|
@@ -38,7 +38,7 @@ function p({ helpMessage: p = d, helpUrl: m = f, resetErrorBoundary: h }) {
|
|
|
38
38
|
type: "text",
|
|
39
39
|
slotProps: {
|
|
40
40
|
input: {
|
|
41
|
-
startAdornment: /* @__PURE__ */ u(
|
|
41
|
+
startAdornment: /* @__PURE__ */ u(n, {
|
|
42
42
|
icon: "search",
|
|
43
43
|
wrap: !1,
|
|
44
44
|
sx: {
|
|
@@ -46,7 +46,7 @@ function p({ helpMessage: p = d, helpUrl: m = f, resetErrorBoundary: h }) {
|
|
|
46
46
|
color: "grey.600"
|
|
47
47
|
}
|
|
48
48
|
}),
|
|
49
|
-
endAdornment: /* @__PURE__ */ u(
|
|
49
|
+
endAdornment: /* @__PURE__ */ u(t, {
|
|
50
50
|
markdownText: p,
|
|
51
51
|
helpUrl: m,
|
|
52
52
|
placement: "right"
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { useQueryVisualizationContext as e } from "../QueryVisualizationWrapper/QueryVisualizationContext.js";
|
|
2
|
+
import { useSynapseContext as t } from "../../utils/context/SynapseContext.js";
|
|
2
3
|
import "../../utils/index.js";
|
|
3
|
-
import { useGetEntity as
|
|
4
|
+
import { useGetEntity as n } from "../../synapse-queries/entity/useEntity.js";
|
|
4
5
|
import "../../synapse-queries/index.js";
|
|
5
|
-
import { isEntityViewOrDatasetOrCollection as
|
|
6
|
-
import { useQueryContext as
|
|
6
|
+
import { isEntityViewOrDatasetOrCollection as ee, isFileViewOrDataset as r, isSortableColumn as i } from "./SynapseTableUtils.js";
|
|
7
|
+
import { useQueryContext as a } from "../QueryContext/QueryContext.js";
|
|
7
8
|
import "../QueryContext/index.js";
|
|
8
|
-
import { useQueryVisualizationContext as a } from "../QueryVisualizationWrapper/QueryVisualizationContext.js";
|
|
9
9
|
import "../QueryVisualizationWrapper/index.js";
|
|
10
10
|
import { isRowSelectionVisibleAtom as o } from "../QueryWrapper/TableRowSelectionState.js";
|
|
11
11
|
import { ModalDownload as s } from "../ModalDownload/ModalDownload.js";
|
|
@@ -41,10 +41,10 @@ function C(e, t) {
|
|
|
41
41
|
}
|
|
42
42
|
var se = S();
|
|
43
43
|
function w(S) {
|
|
44
|
-
let { showDownloadColumn: w, hideDownload: E } = S, { rowSet: D, isLoadingNewPage: O, customColumns: k = oe, showAccessColumn: A, showExternalAccessIcon: j, showAccessColumnHeader: M, showDirectDownloadColumn: N = w, hideAddToDownloadListColumn: P = E, columnLinks: F } = S, { entityId: I, versionNumber: L, getCurrentQueryRequest: R, fileIdColumnName: z, fileVersionColumnName: B } =
|
|
44
|
+
let { showDownloadColumn: w, hideDownload: E } = S, { rowSet: D, isLoadingNewPage: O, customColumns: k = oe, showAccessColumn: A, showExternalAccessIcon: j, showAccessColumnHeader: M, showDirectDownloadColumn: N = w, hideAddToDownloadListColumn: P = E, columnLinks: F } = S, { entityId: I, versionNumber: L, getCurrentQueryRequest: R, fileIdColumnName: z, fileVersionColumnName: B } = a(), V = h(() => R(), [R]), H = D.headers, { data: U } = n(I, L), { columnsToShowInTable: W, NoContentPlaceholder: G } = e(), K = h(() => ({
|
|
45
45
|
columnLinks: F,
|
|
46
46
|
showExternalAccessIcon: j
|
|
47
|
-
}), [F, j]), { isAuthenticated: ce } =
|
|
47
|
+
}), [F, j]), { isAuthenticated: ce } = t(), [le, ue] = g(!1), { sort: de, setSort: fe } = m(), q = x(o), J = !!(A && U && (ee(U) && T(D) || z)), Y = U && ce && (r(U) && T(D) || z), X = !!(Y && N), Z = !!(Y && !P && !q), pe = z ? D.headers.findIndex((e) => e.name == z) : void 0, me = B ? D.headers.findIndex((e) => e.name == B) : void 0, he = h(() => [
|
|
48
48
|
...k,
|
|
49
49
|
f,
|
|
50
50
|
u,
|
|
@@ -55,7 +55,7 @@ function w(S) {
|
|
|
55
55
|
},
|
|
56
56
|
...H.map((e, t) => se.accessor((e) => e.values[t], {
|
|
57
57
|
id: e.name,
|
|
58
|
-
enableSorting:
|
|
58
|
+
enableSorting: i(e.columnType),
|
|
59
59
|
enableResizing: !0,
|
|
60
60
|
minSize: C(e.name, e.columnType),
|
|
61
61
|
header: re,
|