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
|
@@ -8,10 +8,10 @@ function f(e) {
|
|
|
8
8
|
return e?.endsWith("_LIST") ?? !1;
|
|
9
9
|
}
|
|
10
10
|
function p(e) {
|
|
11
|
-
return e.
|
|
11
|
+
return e.replaceAll(/[\\%_]/g, (e) => "\\" + e);
|
|
12
12
|
}
|
|
13
13
|
function m(e) {
|
|
14
|
-
return e.
|
|
14
|
+
return e.replaceAll(/\\([\\%_])/g, "$1");
|
|
15
15
|
}
|
|
16
16
|
function h(e) {
|
|
17
17
|
let t = e.startsWith("%"), n = /(?<!\\)%$/.test(e), r = m(e.slice(+!!t, n ? -1 : void 0));
|
|
@@ -46,20 +46,20 @@ function _(e) {
|
|
|
46
46
|
if (t === null) return null;
|
|
47
47
|
switch (r) {
|
|
48
48
|
case "is_any_of": return y(t, n, i);
|
|
49
|
-
case "is_all_of": return
|
|
50
|
-
case "between": return
|
|
51
|
-
case "gt": return
|
|
52
|
-
case "gte": return
|
|
53
|
-
case "lt": return
|
|
54
|
-
case "lte": return
|
|
55
|
-
case "equal": return
|
|
56
|
-
case "not_equal": return
|
|
57
|
-
case "has_value": return
|
|
58
|
-
case "no_value": return
|
|
59
|
-
case "contains": return
|
|
60
|
-
case "starts_with": return
|
|
61
|
-
case "ends_with": return
|
|
62
|
-
case "is_exactly": return v(s) ? null :
|
|
49
|
+
case "is_all_of": return b(t, i);
|
|
50
|
+
case "between": return x(t, a, o);
|
|
51
|
+
case "gt": return E(t, a, c.GREATER_THAN);
|
|
52
|
+
case "gte": return E(t, a, c.GREATER_THAN_OR_EQUAL);
|
|
53
|
+
case "lt": return E(t, o, c.LESS_THAN);
|
|
54
|
+
case "lte": return E(t, o, c.LESS_THAN_OR_EQUAL);
|
|
55
|
+
case "equal": return S(t, i, c.EQUAL);
|
|
56
|
+
case "not_equal": return S(t, i, c.NOT_EQUAL);
|
|
57
|
+
case "has_value": return w(t, c.IS_NOT_NULL, []);
|
|
58
|
+
case "no_value": return w(t, c.IS_NULL, []);
|
|
59
|
+
case "contains": return C(t, s, (e) => `%${e}%`);
|
|
60
|
+
case "starts_with": return C(t, s, (e) => `${e}%`);
|
|
61
|
+
case "ends_with": return C(t, s, (e) => `%${e}`);
|
|
62
|
+
case "is_exactly": return v(s) ? null : w(t, c.EQUAL, [s]);
|
|
63
63
|
default: return console.warn(`conditionToApiFilter: unrecognized QB op, skipping condition for column "${t}"`, { op: r }), null;
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -67,18 +67,25 @@ function v(e) {
|
|
|
67
67
|
return e == null || e === "";
|
|
68
68
|
}
|
|
69
69
|
function y(e, t, n) {
|
|
70
|
-
return n.length === 0 ? null : f(t) ?
|
|
70
|
+
return n.length === 0 ? null : f(t) ? T(e, n) : w(e, c.IN, n);
|
|
71
71
|
}
|
|
72
|
-
function b(e, t
|
|
73
|
-
return
|
|
72
|
+
function b(e, t) {
|
|
73
|
+
return t.length === 0 ? null : t.length === 1 ? T(e, t) : {
|
|
74
|
+
concreteType: l,
|
|
75
|
+
operator: "AND",
|
|
76
|
+
children: t.map((t) => T(e, [t]))
|
|
77
|
+
};
|
|
74
78
|
}
|
|
75
79
|
function x(e, t, n) {
|
|
76
|
-
return t
|
|
80
|
+
return v(t) || v(n) ? null : w(e, c.BETWEEN, [t, n]);
|
|
77
81
|
}
|
|
78
82
|
function S(e, t, n) {
|
|
79
|
-
return
|
|
83
|
+
return t.length === 0 ? null : w(e, n, [t[0]]);
|
|
80
84
|
}
|
|
81
85
|
function C(e, t, n) {
|
|
86
|
+
return v(t) ? null : w(e, c.LIKE, [n(p(t))]);
|
|
87
|
+
}
|
|
88
|
+
function w(e, t, n) {
|
|
82
89
|
return {
|
|
83
90
|
concreteType: u,
|
|
84
91
|
columnName: e,
|
|
@@ -86,7 +93,7 @@ function C(e, t, n) {
|
|
|
86
93
|
values: n
|
|
87
94
|
};
|
|
88
95
|
}
|
|
89
|
-
function
|
|
96
|
+
function T(e, t) {
|
|
90
97
|
return {
|
|
91
98
|
concreteType: d,
|
|
92
99
|
columnName: e,
|
|
@@ -95,21 +102,23 @@ function w(e, t) {
|
|
|
95
102
|
values: t
|
|
96
103
|
};
|
|
97
104
|
}
|
|
98
|
-
function
|
|
99
|
-
return t == null || t === "" ? null :
|
|
105
|
+
function E(e, t, n) {
|
|
106
|
+
return t == null || t === "" ? null : w(e, n, [t]);
|
|
100
107
|
}
|
|
101
|
-
function
|
|
108
|
+
function D(n) {
|
|
102
109
|
if (i(n)) {
|
|
103
|
-
let e = (n
|
|
110
|
+
let e = O(n);
|
|
111
|
+
if (e) return e;
|
|
112
|
+
let t = (n.children ?? []).map(D).filter((e) => e !== null);
|
|
104
113
|
return {
|
|
105
114
|
kind: "group",
|
|
106
115
|
id: a(),
|
|
107
116
|
combinator: n.operator ?? "AND",
|
|
108
117
|
not: n.not ?? !1,
|
|
109
|
-
children:
|
|
118
|
+
children: t
|
|
110
119
|
};
|
|
111
120
|
}
|
|
112
|
-
return t(n) ?
|
|
121
|
+
return t(n) ? k(n) : e(n) ? {
|
|
113
122
|
kind: "condition",
|
|
114
123
|
id: a(),
|
|
115
124
|
columnName: n.columnName,
|
|
@@ -121,7 +130,23 @@ function E(n) {
|
|
|
121
130
|
text: null
|
|
122
131
|
} : null;
|
|
123
132
|
}
|
|
124
|
-
function
|
|
133
|
+
function O(t) {
|
|
134
|
+
let n = t.children ?? [];
|
|
135
|
+
if (t.not || (t.operator ?? "AND") !== "AND" || n.length < 2) return null;
|
|
136
|
+
let r = n.filter(e).filter((e) => e.function === s.HAS && e.values.length === 1), i = r[0]?.columnName;
|
|
137
|
+
return r.length !== n.length || r.some((e) => e.columnName !== i) ? null : {
|
|
138
|
+
kind: "condition",
|
|
139
|
+
id: a(),
|
|
140
|
+
columnName: i,
|
|
141
|
+
columnType: null,
|
|
142
|
+
op: "is_all_of",
|
|
143
|
+
values: r.map((e) => e.values[0]),
|
|
144
|
+
rangeMin: null,
|
|
145
|
+
rangeMax: null,
|
|
146
|
+
text: null
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
function k(e) {
|
|
125
150
|
let t = {
|
|
126
151
|
kind: "condition",
|
|
127
152
|
id: a(),
|
|
@@ -196,17 +221,17 @@ function D(e) {
|
|
|
196
221
|
};
|
|
197
222
|
}
|
|
198
223
|
}
|
|
199
|
-
function
|
|
224
|
+
function A(e, t) {
|
|
200
225
|
let n = new Map((t ?? []).map((e) => [e.name, e.columnType]));
|
|
201
226
|
return {
|
|
202
227
|
kind: "group",
|
|
203
228
|
id: a(),
|
|
204
229
|
combinator: "AND",
|
|
205
230
|
not: !1,
|
|
206
|
-
children: e.map((e) =>
|
|
231
|
+
children: e.map((e) => j(e, n.get(e.columnName) ?? null)).filter((e) => e !== null)
|
|
207
232
|
};
|
|
208
233
|
}
|
|
209
|
-
function
|
|
234
|
+
function j(e, t) {
|
|
210
235
|
if (r(e)) return !e.facetValues || e.facetValues.length === 0 ? null : {
|
|
211
236
|
kind: "condition",
|
|
212
237
|
id: a(),
|
|
@@ -249,6 +274,6 @@ function k(e, t) {
|
|
|
249
274
|
return null;
|
|
250
275
|
}
|
|
251
276
|
//#endregion
|
|
252
|
-
export {
|
|
277
|
+
export { D as apiFilterToQBNode, h as classifyLikePattern, p as escapeLike, f as isListColumn, g as qbNodeToApiFilter, A as selectedFacetsToQBGroup, m as unescapeLike };
|
|
253
278
|
|
|
254
279
|
//# sourceMappingURL=queryBuilderTranslation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryBuilderTranslation.js","names":[],"sources":["../../../src/components/QueryBuilder/queryBuilderTranslation.ts"],"sourcesContent":["import {\n ColumnModel,\n ColumnMultiValueFunction,\n ColumnMultiValueFunctionQueryFilter,\n ColumnSingleValueFilterOperator,\n ColumnSingleValueQueryFilter,\n FacetColumnRequest,\n FILTER_GROUP_CONCRETE_TYPE_VALUE,\n FilterGroup,\n QueryFilter,\n} from '@sage-bionetworks/synapse-types'\nimport { ReadonlyDeep } from 'type-fest'\nimport {\n isColumnMultiValueFunctionQueryFilter,\n isColumnSingleValueQueryFilter,\n isFacetColumnRangeRequest,\n isFacetColumnValuesRequest,\n isFilterGroup,\n} from '../../utils/types/IsType'\nimport { isQBGroup, QBCondition, QBGroup, QBNode } from './QueryBuilderTypes'\nimport { newQBNodeId } from './queryBuilderId'\n\nconst COLUMN_SINGLE_VALUE_QUERY_FILTER =\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter' as const\nconst COLUMN_MULTI_VALUE_FUNCTION_QUERY_FILTER =\n 'org.sagebionetworks.repo.model.table.ColumnMultiValueFunctionQueryFilter' as const\n\n// -----------------------------------------------------------------------------\n// Column-kind classification\n// -----------------------------------------------------------------------------\n\n/** A multi-value list column is one whose column type ends in `_LIST`. */\nexport function isListColumn(columnType: string | null): boolean {\n return columnType?.endsWith('_LIST') ?? false\n}\n\n// -----------------------------------------------------------------------------\n// LIKE escaping / classification\n// -----------------------------------------------------------------------------\n\n/**\n * Escape SQL LIKE metacharacters (`%` and `_`) plus the escape character itself\n * (`\\`) so a user's literal `50%` isn't treated as a wildcard match.\n */\nexport function escapeLike(input: string): string {\n return input.replace(/[\\\\%_]/g, ch => '\\\\' + ch)\n}\n\n/**\n * Inverse of {@link escapeLike}: strip the backslash escapes that\n * {@link escapeLike} added.\n */\nexport function unescapeLike(input: string): string {\n return input.replace(/\\\\([\\\\%_])/g, '$1')\n}\n\n/**\n * Classify a LIKE pattern string produced by {@link qbNodeToApiFilter} back\n * into a QB op + un-escaped text. Handles the four wildcard shapes\n * produced by that function (`%val%`, `val%`, `%val`, `val`).\n */\nexport function classifyLikePattern(pattern: string): {\n op: 'contains' | 'starts_with' | 'ends_with' | 'is_exactly'\n text: string\n} {\n const startsPct = pattern.startsWith('%')\n // Only treat a trailing '%' as a wildcard if it isn't itself escaped\n const endsPct = /(?<!\\\\)%$/.test(pattern)\n const core = pattern.slice(startsPct ? 1 : 0, endsPct ? -1 : undefined)\n const text = unescapeLike(core)\n if (startsPct && endsPct) return { op: 'contains', text }\n if (endsPct) return { op: 'starts_with', text }\n if (startsPct) return { op: 'ends_with', text }\n return { op: 'is_exactly', text }\n}\n\n// -----------------------------------------------------------------------------\n// QB → API\n// -----------------------------------------------------------------------------\n\n/**\n * Convert a QB tree node into a `QueryFilter`. Returns `null` when the node\n * (or an entire subtree) has no complete conditions — an incomplete leaf and\n * an empty group are both treated as \"no constraint\" so partial user input\n * never contributes to the outgoing query.\n */\nexport function qbNodeToApiFilter(node: QBNode): QueryFilter | null {\n if (isQBGroup(node)) {\n const children = node.children\n .map(qbNodeToApiFilter)\n .filter((f): f is QueryFilter => f !== null)\n if (children.length === 0) return null\n const filter: FilterGroup = {\n concreteType: FILTER_GROUP_CONCRETE_TYPE_VALUE,\n operator: node.combinator,\n not: node.not || undefined,\n children,\n }\n return filter\n }\n return conditionToApiFilter(node)\n}\n\nfunction conditionToApiFilter(\n node: QBCondition,\n): ColumnSingleValueQueryFilter | ColumnMultiValueFunctionQueryFilter | null {\n const { columnName, columnType, op, values, rangeMin, rangeMax, text } = node\n if (columnName === null) return null\n\n switch (op) {\n case 'is_any_of':\n return anyOfFilter(columnName, columnType, values)\n case 'is_all_of':\n return values.length === 0\n ? null\n : makeMultiValueFilter(columnName, values)\n case 'between':\n return betweenFilter(columnName, rangeMin, rangeMax)\n case 'gt':\n return rangeBoundFilter(\n columnName,\n rangeMin,\n ColumnSingleValueFilterOperator.GREATER_THAN,\n )\n case 'gte':\n return rangeBoundFilter(\n columnName,\n rangeMin,\n ColumnSingleValueFilterOperator.GREATER_THAN_OR_EQUAL,\n )\n case 'lt':\n return rangeBoundFilter(\n columnName,\n rangeMax,\n ColumnSingleValueFilterOperator.LESS_THAN,\n )\n case 'lte':\n return rangeBoundFilter(\n columnName,\n rangeMax,\n ColumnSingleValueFilterOperator.LESS_THAN_OR_EQUAL,\n )\n case 'equal':\n return equalityFilter(\n columnName,\n values,\n ColumnSingleValueFilterOperator.EQUAL,\n )\n case 'not_equal':\n return equalityFilter(\n columnName,\n values,\n ColumnSingleValueFilterOperator.NOT_EQUAL,\n )\n case 'has_value':\n return makeSingleValueFilter(\n columnName,\n ColumnSingleValueFilterOperator.IS_NOT_NULL,\n [],\n )\n case 'no_value':\n return makeSingleValueFilter(\n columnName,\n ColumnSingleValueFilterOperator.IS_NULL,\n [],\n )\n case 'contains':\n return likeFilter(columnName, text, escaped => `%${escaped}%`)\n case 'starts_with':\n return likeFilter(columnName, text, escaped => `${escaped}%`)\n case 'ends_with':\n return likeFilter(columnName, text, escaped => `%${escaped}`)\n case 'is_exactly':\n return isBlank(text)\n ? null\n : makeSingleValueFilter(\n columnName,\n ColumnSingleValueFilterOperator.EQUAL,\n [text!],\n )\n default: {\n // Compile-time exhaustiveness guard; the log fires only if a new op is\n // added to QBConditionOp without a case here.\n op satisfies never\n console.warn(\n `conditionToApiFilter: unrecognized QB op, skipping condition for column \"${columnName}\"`,\n { op },\n )\n return null\n }\n }\n}\n\nfunction isBlank(value: string | null | undefined): boolean {\n return value == null || value === ''\n}\n\nfunction anyOfFilter(\n columnName: string,\n columnType: string | null,\n values: string[],\n): ColumnSingleValueQueryFilter | ColumnMultiValueFunctionQueryFilter | null {\n if (values.length === 0) return null\n if (isListColumn(columnType)) return makeMultiValueFilter(columnName, values)\n return makeSingleValueFilter(\n columnName,\n ColumnSingleValueFilterOperator.IN,\n values,\n )\n}\n\nfunction betweenFilter(\n columnName: string,\n rangeMin: string | null,\n rangeMax: string | null,\n): ColumnSingleValueQueryFilter | null {\n if (isBlank(rangeMin) || isBlank(rangeMax)) return null\n return makeSingleValueFilter(\n columnName,\n ColumnSingleValueFilterOperator.BETWEEN,\n [rangeMin!, rangeMax!],\n )\n}\n\nfunction equalityFilter(\n columnName: string,\n values: string[],\n operator: ColumnSingleValueFilterOperator,\n): ColumnSingleValueQueryFilter | null {\n if (values.length === 0) return null\n return makeSingleValueFilter(columnName, operator, [values[0]])\n}\n\nfunction likeFilter(\n columnName: string,\n text: string | null,\n wrap: (escapedText: string) => string,\n): ColumnSingleValueQueryFilter | null {\n if (isBlank(text)) return null\n return makeSingleValueFilter(\n columnName,\n ColumnSingleValueFilterOperator.LIKE,\n [wrap(escapeLike(text!))],\n )\n}\n\nfunction makeSingleValueFilter(\n columnName: string,\n operator: ColumnSingleValueFilterOperator,\n values: string[],\n): ColumnSingleValueQueryFilter {\n return {\n concreteType: COLUMN_SINGLE_VALUE_QUERY_FILTER,\n columnName,\n operator,\n values,\n }\n}\n\nfunction makeMultiValueFilter(\n columnName: string,\n values: string[],\n): ColumnMultiValueFunctionQueryFilter {\n return {\n concreteType: COLUMN_MULTI_VALUE_FUNCTION_QUERY_FILTER,\n columnName,\n function: ColumnMultiValueFunction.HAS,\n _function: ColumnMultiValueFunction.HAS,\n values,\n }\n}\n\nfunction rangeBoundFilter(\n columnName: string,\n bound: string | null,\n operator: ColumnSingleValueFilterOperator,\n): ColumnSingleValueQueryFilter | null {\n if (bound == null || bound === '') return null\n return makeSingleValueFilter(columnName, operator, [bound])\n}\n\n// -----------------------------------------------------------------------------\n// API → QB (initial hydration)\n// -----------------------------------------------------------------------------\n\n/**\n * Convert an API `QueryFilter` back into a QB node. Used when the initial\n * query already contains a `FilterGroup` (see filterMode auto-detect) so the\n * QB tree can be reconstructed on mount.\n *\n * Some conversions are lossy — `HAS` always deserializes as `is_any_of` (we\n * can't distinguish it from an `is_all_of` at the API layer), and `EQUAL` on\n * text columns deserializes as `equal` (not `is_exactly`) because they share\n * the same wire representation. Users can adjust the operator picker.\n */\nexport function apiFilterToQBNode(filter: QueryFilter): QBNode | null {\n if (isFilterGroup(filter)) {\n const children = (filter.children ?? [])\n .map(apiFilterToQBNode)\n .filter((n): n is QBNode => n !== null)\n return {\n kind: 'group',\n id: newQBNodeId(),\n combinator: filter.operator ?? 'AND',\n not: filter.not ?? false,\n children,\n }\n }\n if (isColumnSingleValueQueryFilter(filter)) {\n return singleValueToCondition(filter)\n }\n if (isColumnMultiValueFunctionQueryFilter(filter)) {\n return {\n kind: 'condition',\n id: newQBNodeId(),\n columnName: filter.columnName,\n columnType: null,\n op: 'is_any_of',\n values: [...filter.values],\n rangeMin: null,\n rangeMax: null,\n text: null,\n }\n }\n // TextMatchesQueryFilter and other non-QB filter types are not part of the\n // QB tree — they belong in the non-QB baseline.\n return null\n}\n\nfunction singleValueToCondition(\n filter: ColumnSingleValueQueryFilter,\n): QBCondition {\n const base = {\n kind: 'condition' as const,\n id: newQBNodeId(),\n columnName: filter.columnName,\n columnType: null,\n values: [] as string[],\n rangeMin: null as string | null,\n rangeMax: null as string | null,\n text: null as string | null,\n }\n const [firstValue] = filter.values\n switch (filter.operator) {\n case ColumnSingleValueFilterOperator.IN:\n return { ...base, op: 'is_any_of', values: [...filter.values] }\n case ColumnSingleValueFilterOperator.EQUAL:\n return { ...base, op: 'equal', values: [...filter.values] }\n case ColumnSingleValueFilterOperator.NOT_EQUAL:\n return { ...base, op: 'not_equal', values: [...filter.values] }\n case ColumnSingleValueFilterOperator.GREATER_THAN:\n return { ...base, op: 'gt', rangeMin: firstValue ?? null }\n case ColumnSingleValueFilterOperator.GREATER_THAN_OR_EQUAL:\n return { ...base, op: 'gte', rangeMin: firstValue ?? null }\n case ColumnSingleValueFilterOperator.LESS_THAN:\n return { ...base, op: 'lt', rangeMax: firstValue ?? null }\n case ColumnSingleValueFilterOperator.LESS_THAN_OR_EQUAL:\n return { ...base, op: 'lte', rangeMax: firstValue ?? null }\n case ColumnSingleValueFilterOperator.BETWEEN:\n return {\n ...base,\n op: 'between',\n rangeMin: filter.values[0] ?? null,\n rangeMax: filter.values[1] ?? null,\n }\n case ColumnSingleValueFilterOperator.IS_NULL:\n return { ...base, op: 'no_value' }\n case ColumnSingleValueFilterOperator.IS_NOT_NULL:\n return { ...base, op: 'has_value' }\n case ColumnSingleValueFilterOperator.LIKE: {\n const classified = classifyLikePattern(firstValue ?? '')\n return { ...base, op: classified.op, text: classified.text }\n }\n default:\n // Compile-time exhaustiveness guard; the log fires only if a new operator\n // is added to ColumnSingleValueFilterOperator without a case here.\n filter.operator satisfies never\n console.warn(\n `singleValueToCondition: unrecognized filter operator, falling back to 'equal' for column \"${filter.columnName}\"`,\n { operator: filter.operator },\n )\n return { ...base, op: 'equal' }\n }\n}\n\n// -----------------------------------------------------------------------------\n// Facets → QB (mode switch)\n// -----------------------------------------------------------------------------\n\n/**\n * Translate `selectedFacets` into a QB group whose children mirror each facet\n * (as an AND-combined, non-negated group). The reverse direction is not\n * generally possible; a QB → facets switch clears the tree.\n */\nexport function selectedFacetsToQBGroup(\n selectedFacets: ReadonlyDeep<FacetColumnRequest[]>,\n columnModels?: ReadonlyDeep<ColumnModel[]>,\n): QBGroup {\n const columnTypeByName = new Map(\n (columnModels ?? []).map(cm => [cm.name, cm.columnType as string]),\n )\n return {\n kind: 'group',\n id: newQBNodeId(),\n combinator: 'AND',\n not: false,\n children: selectedFacets\n .map(facet =>\n facetToQBCondition(\n facet,\n columnTypeByName.get(facet.columnName) ?? null,\n ),\n )\n .filter((c): c is QBCondition => c !== null),\n }\n}\n\nfunction facetToQBCondition(\n facet: ReadonlyDeep<FacetColumnRequest>,\n columnType: string | null,\n): QBCondition | null {\n if (isFacetColumnValuesRequest(facet)) {\n if (!facet.facetValues || facet.facetValues.length === 0) return null\n return {\n kind: 'condition',\n id: newQBNodeId(),\n columnName: facet.columnName,\n columnType,\n op: 'is_any_of',\n values: [...facet.facetValues],\n rangeMin: null,\n rangeMax: null,\n text: null,\n }\n }\n if (isFacetColumnRangeRequest(facet)) {\n const hasMin = facet.min != null && facet.min !== ''\n const hasMax = facet.max != null && facet.max !== ''\n if (!hasMin && !hasMax) return null\n const base = {\n kind: 'condition' as const,\n id: newQBNodeId(),\n columnName: facet.columnName,\n columnType,\n values: [],\n text: null,\n }\n if (hasMin && hasMax) {\n return {\n ...base,\n op: 'between',\n rangeMin: facet.min!,\n rangeMax: facet.max!,\n }\n }\n if (hasMin) {\n return { ...base, op: 'gte', rangeMin: facet.min!, rangeMax: null }\n }\n return { ...base, op: 'lte', rangeMin: null, rangeMax: facet.max! }\n }\n return null\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queryBuilderTranslation.js","names":[],"sources":["../../../src/components/QueryBuilder/queryBuilderTranslation.ts"],"sourcesContent":["import {\n ColumnModel,\n ColumnMultiValueFunction,\n ColumnMultiValueFunctionQueryFilter,\n ColumnSingleValueFilterOperator,\n ColumnSingleValueQueryFilter,\n FacetColumnRequest,\n FILTER_GROUP_CONCRETE_TYPE_VALUE,\n FilterGroup,\n QueryFilter,\n} from '@sage-bionetworks/synapse-types'\nimport { ReadonlyDeep } from 'type-fest'\nimport {\n isColumnMultiValueFunctionQueryFilter,\n isColumnSingleValueQueryFilter,\n isFacetColumnRangeRequest,\n isFacetColumnValuesRequest,\n isFilterGroup,\n} from '../../utils/types/IsType'\nimport { isQBGroup, QBCondition, QBGroup, QBNode } from './QueryBuilderTypes'\nimport { newQBNodeId } from './queryBuilderId'\n\nconst COLUMN_SINGLE_VALUE_QUERY_FILTER =\n 'org.sagebionetworks.repo.model.table.ColumnSingleValueQueryFilter' as const\nconst COLUMN_MULTI_VALUE_FUNCTION_QUERY_FILTER =\n 'org.sagebionetworks.repo.model.table.ColumnMultiValueFunctionQueryFilter' as const\n\n// -----------------------------------------------------------------------------\n// Column-kind classification\n// -----------------------------------------------------------------------------\n\n/** A multi-value list column is one whose column type ends in `_LIST`. */\nexport function isListColumn(columnType: string | null): boolean {\n return columnType?.endsWith('_LIST') ?? false\n}\n\n// -----------------------------------------------------------------------------\n// LIKE escaping / classification\n// -----------------------------------------------------------------------------\n\n/**\n * Escape SQL LIKE metacharacters (`%` and `_`) plus the escape character itself\n * (`\\`) so a user's literal `50%` isn't treated as a wildcard match.\n */\nexport function escapeLike(input: string): string {\n return input.replaceAll(/[\\\\%_]/g, ch => '\\\\' + ch)\n}\n\n/**\n * Inverse of {@link escapeLike}: strip the backslash escapes that\n * {@link escapeLike} added.\n */\nexport function unescapeLike(input: string): string {\n return input.replaceAll(/\\\\([\\\\%_])/g, '$1')\n}\n\n/**\n * Classify a LIKE pattern string produced by {@link qbNodeToApiFilter} back\n * into a QB op + un-escaped text. Handles the four wildcard shapes\n * produced by that function (`%val%`, `val%`, `%val`, `val`).\n */\nexport function classifyLikePattern(pattern: string): {\n op: 'contains' | 'starts_with' | 'ends_with' | 'is_exactly'\n text: string\n} {\n const startsPct = pattern.startsWith('%')\n // Only treat a trailing '%' as a wildcard if it isn't itself escaped\n const endsPct = /(?<!\\\\)%$/.test(pattern)\n const core = pattern.slice(startsPct ? 1 : 0, endsPct ? -1 : undefined)\n const text = unescapeLike(core)\n if (startsPct && endsPct) return { op: 'contains', text }\n if (endsPct) return { op: 'starts_with', text }\n if (startsPct) return { op: 'ends_with', text }\n return { op: 'is_exactly', text }\n}\n\n// -----------------------------------------------------------------------------\n// QB → API\n// -----------------------------------------------------------------------------\n\n/**\n * Convert a QB tree node into a `QueryFilter`. Returns `null` when the node\n * (or an entire subtree) has no complete conditions — an incomplete leaf and\n * an empty group are both treated as \"no constraint\" so partial user input\n * never contributes to the outgoing query.\n */\nexport function qbNodeToApiFilter(node: QBNode): QueryFilter | null {\n if (isQBGroup(node)) {\n const children = node.children\n .map(qbNodeToApiFilter)\n .filter((f): f is QueryFilter => f !== null)\n if (children.length === 0) return null\n const filter: FilterGroup = {\n concreteType: FILTER_GROUP_CONCRETE_TYPE_VALUE,\n operator: node.combinator,\n not: node.not || undefined,\n children,\n }\n return filter\n }\n return conditionToApiFilter(node)\n}\n\nfunction conditionToApiFilter(\n node: QBCondition,\n):\n | ColumnSingleValueQueryFilter\n | ColumnMultiValueFunctionQueryFilter\n | FilterGroup\n | null {\n const { columnName, columnType, op, values, rangeMin, rangeMax, text } = node\n if (columnName === null) return null\n\n switch (op) {\n case 'is_any_of':\n return anyOfFilter(columnName, columnType, values)\n case 'is_all_of':\n return allOfFilter(columnName, values)\n case 'between':\n return betweenFilter(columnName, rangeMin, rangeMax)\n case 'gt':\n return rangeBoundFilter(\n columnName,\n rangeMin,\n ColumnSingleValueFilterOperator.GREATER_THAN,\n )\n case 'gte':\n return rangeBoundFilter(\n columnName,\n rangeMin,\n ColumnSingleValueFilterOperator.GREATER_THAN_OR_EQUAL,\n )\n case 'lt':\n return rangeBoundFilter(\n columnName,\n rangeMax,\n ColumnSingleValueFilterOperator.LESS_THAN,\n )\n case 'lte':\n return rangeBoundFilter(\n columnName,\n rangeMax,\n ColumnSingleValueFilterOperator.LESS_THAN_OR_EQUAL,\n )\n case 'equal':\n return equalityFilter(\n columnName,\n values,\n ColumnSingleValueFilterOperator.EQUAL,\n )\n case 'not_equal':\n return equalityFilter(\n columnName,\n values,\n ColumnSingleValueFilterOperator.NOT_EQUAL,\n )\n case 'has_value':\n return makeSingleValueFilter(\n columnName,\n ColumnSingleValueFilterOperator.IS_NOT_NULL,\n [],\n )\n case 'no_value':\n return makeSingleValueFilter(\n columnName,\n ColumnSingleValueFilterOperator.IS_NULL,\n [],\n )\n case 'contains':\n return likeFilter(columnName, text, escaped => `%${escaped}%`)\n case 'starts_with':\n return likeFilter(columnName, text, escaped => `${escaped}%`)\n case 'ends_with':\n return likeFilter(columnName, text, escaped => `%${escaped}`)\n case 'is_exactly':\n return isBlank(text)\n ? null\n : makeSingleValueFilter(\n columnName,\n ColumnSingleValueFilterOperator.EQUAL,\n [text!],\n )\n default: {\n // Compile-time exhaustiveness guard; the log fires only if a new op is\n // added to QBConditionOp without a case here.\n op satisfies never\n console.warn(\n `conditionToApiFilter: unrecognized QB op, skipping condition for column \"${columnName}\"`,\n { op },\n )\n return null\n }\n }\n}\n\nfunction isBlank(value: string | null | undefined): boolean {\n return value == null || value === ''\n}\n\nfunction anyOfFilter(\n columnName: string,\n columnType: string | null,\n values: string[],\n): ColumnSingleValueQueryFilter | ColumnMultiValueFunctionQueryFilter | null {\n if (values.length === 0) return null\n if (isListColumn(columnType)) return makeMultiValueFilter(columnName, values)\n return makeSingleValueFilter(\n columnName,\n ColumnSingleValueFilterOperator.IN,\n values,\n )\n}\n\nfunction allOfFilter(\n columnName: string,\n values: string[],\n): ColumnMultiValueFunctionQueryFilter | FilterGroup | null {\n if (values.length === 0) return null\n if (values.length === 1) return makeMultiValueFilter(columnName, values)\n // HAS matches rows whose list contains any of its values, so \"all of\" is an AND of single-value HAS predicates.\n return {\n concreteType: FILTER_GROUP_CONCRETE_TYPE_VALUE,\n operator: 'AND',\n children: values.map(value => makeMultiValueFilter(columnName, [value])),\n }\n}\n\nfunction betweenFilter(\n columnName: string,\n rangeMin: string | null,\n rangeMax: string | null,\n): ColumnSingleValueQueryFilter | null {\n if (isBlank(rangeMin) || isBlank(rangeMax)) return null\n return makeSingleValueFilter(\n columnName,\n ColumnSingleValueFilterOperator.BETWEEN,\n [rangeMin!, rangeMax!],\n )\n}\n\nfunction equalityFilter(\n columnName: string,\n values: string[],\n operator: ColumnSingleValueFilterOperator,\n): ColumnSingleValueQueryFilter | null {\n if (values.length === 0) return null\n return makeSingleValueFilter(columnName, operator, [values[0]])\n}\n\nfunction likeFilter(\n columnName: string,\n text: string | null,\n wrap: (escapedText: string) => string,\n): ColumnSingleValueQueryFilter | null {\n if (isBlank(text)) return null\n return makeSingleValueFilter(\n columnName,\n ColumnSingleValueFilterOperator.LIKE,\n [wrap(escapeLike(text!))],\n )\n}\n\nfunction makeSingleValueFilter(\n columnName: string,\n operator: ColumnSingleValueFilterOperator,\n values: string[],\n): ColumnSingleValueQueryFilter {\n return {\n concreteType: COLUMN_SINGLE_VALUE_QUERY_FILTER,\n columnName,\n operator,\n values,\n }\n}\n\nfunction makeMultiValueFilter(\n columnName: string,\n values: string[],\n): ColumnMultiValueFunctionQueryFilter {\n return {\n concreteType: COLUMN_MULTI_VALUE_FUNCTION_QUERY_FILTER,\n columnName,\n function: ColumnMultiValueFunction.HAS,\n _function: ColumnMultiValueFunction.HAS,\n values,\n }\n}\n\nfunction rangeBoundFilter(\n columnName: string,\n bound: string | null,\n operator: ColumnSingleValueFilterOperator,\n): ColumnSingleValueQueryFilter | null {\n if (bound == null || bound === '') return null\n return makeSingleValueFilter(columnName, operator, [bound])\n}\n\n// -----------------------------------------------------------------------------\n// API → QB (initial hydration)\n// -----------------------------------------------------------------------------\n\n/**\n * Convert an API `QueryFilter` back into a QB node. Used when the initial\n * query already contains a `FilterGroup` (see filterMode auto-detect) so the\n * QB tree can be reconstructed on mount.\n *\n * Some conversions are lossy — an AND group of single-value `HAS` predicates\n * on one column (the shape `is_all_of` emits) deserializes as `is_all_of`, any\n * other `HAS` as `is_any_of`, and `EQUAL` on text columns deserializes as\n * `equal` (not `is_exactly`) because they share the same wire representation.\n * Users can adjust the operator picker.\n */\nexport function apiFilterToQBNode(filter: QueryFilter): QBNode | null {\n if (isFilterGroup(filter)) {\n const allOfCondition = allOfGroupToCondition(filter)\n if (allOfCondition) return allOfCondition\n const children = (filter.children ?? [])\n .map(apiFilterToQBNode)\n .filter((n): n is QBNode => n !== null)\n return {\n kind: 'group',\n id: newQBNodeId(),\n combinator: filter.operator ?? 'AND',\n not: filter.not ?? false,\n children,\n }\n }\n if (isColumnSingleValueQueryFilter(filter)) {\n return singleValueToCondition(filter)\n }\n if (isColumnMultiValueFunctionQueryFilter(filter)) {\n return {\n kind: 'condition',\n id: newQBNodeId(),\n columnName: filter.columnName,\n columnType: null,\n op: 'is_any_of',\n values: [...filter.values],\n rangeMin: null,\n rangeMax: null,\n text: null,\n }\n }\n // TextMatchesQueryFilter and other non-QB filter types are not part of the\n // QB tree — they belong in the non-QB baseline.\n return null\n}\n\nfunction allOfGroupToCondition(group: FilterGroup): QBCondition | null {\n const children = group.children ?? []\n if (group.not || (group.operator ?? 'AND') !== 'AND' || children.length < 2) {\n return null\n }\n const hasPredicates = children\n .filter(isColumnMultiValueFunctionQueryFilter)\n .filter(\n child =>\n child.function === ColumnMultiValueFunction.HAS &&\n child.values.length === 1,\n )\n const columnName = hasPredicates[0]?.columnName\n if (\n hasPredicates.length !== children.length ||\n hasPredicates.some(child => child.columnName !== columnName)\n ) {\n return null\n }\n return {\n kind: 'condition',\n id: newQBNodeId(),\n columnName,\n columnType: null,\n op: 'is_all_of',\n values: hasPredicates.map(child => child.values[0]),\n rangeMin: null,\n rangeMax: null,\n text: null,\n }\n}\n\nfunction singleValueToCondition(\n filter: ColumnSingleValueQueryFilter,\n): QBCondition {\n const base = {\n kind: 'condition' as const,\n id: newQBNodeId(),\n columnName: filter.columnName,\n columnType: null,\n values: [] as string[],\n rangeMin: null as string | null,\n rangeMax: null as string | null,\n text: null as string | null,\n }\n const [firstValue] = filter.values\n switch (filter.operator) {\n case ColumnSingleValueFilterOperator.IN:\n return { ...base, op: 'is_any_of', values: [...filter.values] }\n case ColumnSingleValueFilterOperator.EQUAL:\n return { ...base, op: 'equal', values: [...filter.values] }\n case ColumnSingleValueFilterOperator.NOT_EQUAL:\n return { ...base, op: 'not_equal', values: [...filter.values] }\n case ColumnSingleValueFilterOperator.GREATER_THAN:\n return { ...base, op: 'gt', rangeMin: firstValue ?? null }\n case ColumnSingleValueFilterOperator.GREATER_THAN_OR_EQUAL:\n return { ...base, op: 'gte', rangeMin: firstValue ?? null }\n case ColumnSingleValueFilterOperator.LESS_THAN:\n return { ...base, op: 'lt', rangeMax: firstValue ?? null }\n case ColumnSingleValueFilterOperator.LESS_THAN_OR_EQUAL:\n return { ...base, op: 'lte', rangeMax: firstValue ?? null }\n case ColumnSingleValueFilterOperator.BETWEEN:\n return {\n ...base,\n op: 'between',\n rangeMin: filter.values[0] ?? null,\n rangeMax: filter.values[1] ?? null,\n }\n case ColumnSingleValueFilterOperator.IS_NULL:\n return { ...base, op: 'no_value' }\n case ColumnSingleValueFilterOperator.IS_NOT_NULL:\n return { ...base, op: 'has_value' }\n case ColumnSingleValueFilterOperator.LIKE: {\n const classified = classifyLikePattern(firstValue ?? '')\n return { ...base, op: classified.op, text: classified.text }\n }\n default:\n // Compile-time exhaustiveness guard; the log fires only if a new operator\n // is added to ColumnSingleValueFilterOperator without a case here.\n filter.operator satisfies never\n console.warn(\n `singleValueToCondition: unrecognized filter operator, falling back to 'equal' for column \"${filter.columnName}\"`,\n { operator: filter.operator },\n )\n return { ...base, op: 'equal' }\n }\n}\n\n// -----------------------------------------------------------------------------\n// Facets → QB (mode switch)\n// -----------------------------------------------------------------------------\n\n/**\n * Translate `selectedFacets` into a QB group whose children mirror each facet\n * (as an AND-combined, non-negated group). The reverse direction is not\n * generally possible; a QB → facets switch clears the tree.\n */\nexport function selectedFacetsToQBGroup(\n selectedFacets: ReadonlyDeep<FacetColumnRequest[]>,\n columnModels?: ReadonlyDeep<ColumnModel[]>,\n): QBGroup {\n const columnTypeByName = new Map(\n (columnModels ?? []).map(cm => [cm.name, cm.columnType as string]),\n )\n return {\n kind: 'group',\n id: newQBNodeId(),\n combinator: 'AND',\n not: false,\n children: selectedFacets\n .map(facet =>\n facetToQBCondition(\n facet,\n columnTypeByName.get(facet.columnName) ?? null,\n ),\n )\n .filter((c): c is QBCondition => c !== null),\n }\n}\n\nfunction facetToQBCondition(\n facet: ReadonlyDeep<FacetColumnRequest>,\n columnType: string | null,\n): QBCondition | null {\n if (isFacetColumnValuesRequest(facet)) {\n if (!facet.facetValues || facet.facetValues.length === 0) return null\n return {\n kind: 'condition',\n id: newQBNodeId(),\n columnName: facet.columnName,\n columnType,\n op: 'is_any_of',\n values: [...facet.facetValues],\n rangeMin: null,\n rangeMax: null,\n text: null,\n }\n }\n if (isFacetColumnRangeRequest(facet)) {\n const hasMin = facet.min != null && facet.min !== ''\n const hasMax = facet.max != null && facet.max !== ''\n if (!hasMin && !hasMax) return null\n const base = {\n kind: 'condition' as const,\n id: newQBNodeId(),\n columnName: facet.columnName,\n columnType,\n values: [],\n text: null,\n }\n if (hasMin && hasMax) {\n return {\n ...base,\n op: 'between',\n rangeMin: facet.min!,\n rangeMax: facet.max!,\n }\n }\n if (hasMin) {\n return { ...base, op: 'gte', rangeMin: facet.min!, rangeMax: null }\n }\n return { ...base, op: 'lte', rangeMin: null, rangeMax: facet.max! }\n }\n return null\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQBCombinedSql.d.ts","sourceRoot":"","sources":["../../../src/components/QueryBuilder/useQBCombinedSql.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAItD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,OAAO,GAAG,IAAI,GACnB,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"useQBCombinedSql.d.ts","sourceRoot":"","sources":["../../../src/components/QueryBuilder/useQBCombinedSql.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAItD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAE7C;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,OAAO,GAAG,IAAI,GACnB,cAAc,CAAC,MAAM,GAAG,SAAS,CAAC,CA2BpC"}
|
|
@@ -6,14 +6,14 @@ import { qbNodeToApiFilter as n } from "./queryBuilderTranslation.js";
|
|
|
6
6
|
import { useMemo as r } from "react";
|
|
7
7
|
//#region src/components/QueryBuilder/useQBCombinedSql.ts
|
|
8
8
|
function i(i) {
|
|
9
|
-
let {
|
|
9
|
+
let { getCurrentQueryRequest: a } = t();
|
|
10
10
|
return e(r(() => {
|
|
11
|
-
let e = i ? n(i) : null;
|
|
11
|
+
let e = i ? n(i) : null, t = a();
|
|
12
12
|
return {
|
|
13
|
-
...
|
|
13
|
+
...t,
|
|
14
14
|
partMask: 256,
|
|
15
15
|
query: {
|
|
16
|
-
...
|
|
16
|
+
...t.query,
|
|
17
17
|
additionalFilters: e ? [e] : void 0,
|
|
18
18
|
offset: void 0,
|
|
19
19
|
limit: void 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQBCombinedSql.js","names":[],"sources":["../../../src/components/QueryBuilder/useQBCombinedSql.ts"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { BUNDLE_MASK_COMBINED_SQL } from '@/utils/SynapseConstants'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { UseQueryResult } from '@tanstack/react-query'\nimport { useMemo } from 'react'\nimport { useQueryContext } from '../QueryContext'\nimport { qbNodeToApiFilter } from './queryBuilderTranslation'\nimport { QBGroup } from './QueryBuilderTypes'\n\n/**\n * Ask the backend to produce the effective SQL for a given QB tree by firing a\n * `QueryBundleRequest` with `BUNDLE_MASK_COMBINED_SQL` and the tree translated\n * into an `additionalFilters` `FilterGroup`. The QB does not otherwise drive\n * the outgoing query in V1 — this hook exists purely to power the SQL preview\n * tab in the summary bar.\n */\nexport function useQBCombinedSql(\n tree: QBGroup | null,\n): UseQueryResult<string | undefined> {\n const {
|
|
1
|
+
{"version":3,"file":"useQBCombinedSql.js","names":[],"sources":["../../../src/components/QueryBuilder/useQBCombinedSql.ts"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { BUNDLE_MASK_COMBINED_SQL } from '@/utils/SynapseConstants'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { UseQueryResult } from '@tanstack/react-query'\nimport { useMemo } from 'react'\nimport { useQueryContext } from '../QueryContext'\nimport { qbNodeToApiFilter } from './queryBuilderTranslation'\nimport { QBGroup } from './QueryBuilderTypes'\n\n/**\n * Ask the backend to produce the effective SQL for a given QB tree by firing a\n * `QueryBundleRequest` with `BUNDLE_MASK_COMBINED_SQL` and the tree translated\n * into an `additionalFilters` `FilterGroup`. The QB does not otherwise drive\n * the outgoing query in V1 — this hook exists purely to power the SQL preview\n * tab in the summary bar.\n */\nexport function useQBCombinedSql(\n tree: QBGroup | null,\n): UseQueryResult<string | undefined> {\n const { getCurrentQueryRequest } = useQueryContext()\n\n const request: QueryBundleRequest = useMemo(() => {\n const translated = tree ? qbNodeToApiFilter(tree) : null\n const currentQueryRequest = getCurrentQueryRequest()\n // Reuse the current query's SQL + entity so the backend combines the QB\n // filters against the same base view, but ask only for combinedSql.\n return {\n ...currentQueryRequest,\n partMask: BUNDLE_MASK_COMBINED_SQL,\n query: {\n ...currentQueryRequest.query,\n additionalFilters: translated ? [translated] : undefined,\n // combinedSql is unaffected by paging/sort, so drop them to keep the\n // cache key stable across scroll and re-sort.\n offset: undefined,\n limit: undefined,\n sort: undefined,\n selectedFacets: undefined,\n },\n }\n }, [getCurrentQueryRequest, tree])\n\n return useGetQueryResultBundle(request, {\n select: bundle => bundle.combinedSql,\n })\n}\n"],"mappings":";;;;;;;AAgBA,SAAgB,EACd,GACoC;CACpC,IAAM,EAAE,8BAA2B,EAAgB;CAuBnD,OAAO,EArB6B,QAAc;EAChD,IAAM,IAAa,IAAO,EAAkB,CAAI,IAAI,MAC9C,IAAsB,EAAuB;EAGnD,OAAO;GACL,GAAG;GACH,UAAA;GACA,OAAO;IACL,GAAG,EAAoB;IACvB,mBAAmB,IAAa,CAAC,CAAU,IAAI,KAAA;IAG/C,QAAQ,KAAA;IACR,OAAO,KAAA;IACP,MAAM,KAAA;IACN,gBAAgB,KAAA;GAClB;EACF;CACF,GAAG,CAAC,GAAwB,CAAI,CAED,GAAS,EACtC,SAAQ,MAAU,EAAO,YAC3B,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQBValueDisplayName.d.ts","sourceRoot":"","sources":["../../../src/components/QueryBuilder/useQBValueDisplayName.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAIX,iBAAiB,EAElB,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"useQBValueDisplayName.d.ts","sourceRoot":"","sources":["../../../src/components/QueryBuilder/useQBValueDisplayName.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAIX,iBAAiB,EAElB,MAAM,iCAAiC,CAAA;AAOxC;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAAG,CACjC,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,KAAK,EAAE,MAAM,KACV,MAAM,CAAA;AAqBX;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,WAAW,EAAE,EAC3B,YAAY,EAAE,SAAS,iBAAiB,EAAE,GACzC,oBAAoB,CA0EtB;AAED,gFAAgF;AAChF,eAAO,MAAM,qBAAqB,EAAE,oBAGN,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import "../../utils/SynapseConstants.js";
|
|
2
2
|
import e from "../../utils/hooks/useGetInfoFromIds.js";
|
|
3
|
-
import {
|
|
3
|
+
import { getEnumerationFacets as t } from "../../utils/functions/enumerationFacet.js";
|
|
4
|
+
import { labelForFacetValue as n } from "./queryBuilderMetadata.js";
|
|
4
5
|
import { useCallback as r, useMemo as i } from "react";
|
|
5
6
|
import { ColumnTypeEnum as a } from "@sage-bionetworks/synapse-types";
|
|
6
7
|
//#region src/components/QueryBuilder/useQBValueDisplayName.ts
|
|
@@ -28,10 +29,9 @@ function s(a, s) {
|
|
|
28
29
|
USER_PROFILE: [],
|
|
29
30
|
EVALUATION_QUEUE: []
|
|
30
31
|
};
|
|
31
|
-
for (let n of s) {
|
|
32
|
-
|
|
33
|
-
let r
|
|
34
|
-
if (r != null) for (let t of n.facetValues) t.value !== "org.sagebionetworks.UNDEFINED_NULL_NOTSET" && e[r].push(t.value);
|
|
32
|
+
for (let n of t(s)) {
|
|
33
|
+
let t = c.get(n.columnName);
|
|
34
|
+
if (t != null) for (let r of n.facetValues) r.value !== "org.sagebionetworks.UNDEFINED_NULL_NOTSET" && e[t].push(r.value);
|
|
35
35
|
}
|
|
36
36
|
return e;
|
|
37
37
|
}, [s, c]), u = e({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useQBValueDisplayName.js","names":[],"sources":["../../../src/components/QueryBuilder/useQBValueDisplayName.ts"],"sourcesContent":["import {\n ColumnModel,\n ColumnTypeEnum,\n EntityHeader,\n Evaluation,\n FacetColumnResult,\n UserGroupHeader,\n} from '@sage-bionetworks/synapse-types'\nimport { useCallback, useMemo } from 'react'\nimport useGetInfoFromIds from '../../utils/hooks/useGetInfoFromIds'\nimport { VALUE_NOT_SET } from '../../utils/SynapseConstants'\nimport {\
|
|
1
|
+
{"version":3,"file":"useQBValueDisplayName.js","names":[],"sources":["../../../src/components/QueryBuilder/useQBValueDisplayName.ts"],"sourcesContent":["import {\n ColumnModel,\n ColumnTypeEnum,\n EntityHeader,\n Evaluation,\n FacetColumnResult,\n UserGroupHeader,\n} from '@sage-bionetworks/synapse-types'\nimport { useCallback, useMemo } from 'react'\nimport useGetInfoFromIds from '../../utils/hooks/useGetInfoFromIds'\nimport { VALUE_NOT_SET } from '../../utils/SynapseConstants'\nimport { getEnumerationFacets } from '../../utils/functions/enumerationFacet'\nimport { labelForFacetValue } from './queryBuilderMetadata'\n\n/**\n * Resolves the user-facing label for a value stored on a QB condition. Columns\n * whose values are Synapse IDs resolve to the object's name; every other\n * column falls back to {@link labelForFacetValue}.\n */\nexport type QBValueDisplayNameFn = (\n columnName: string | null,\n value: string,\n) => string\n\ntype LookupType = 'ENTITY_HEADER' | 'USER_PROFILE' | 'EVALUATION_QUEUE'\n\nfunction lookupTypeForColumnType(\n columnType: ColumnModel['columnType'] | undefined,\n): LookupType | null {\n switch (columnType) {\n case ColumnTypeEnum.ENTITYID:\n case ColumnTypeEnum.ENTITYID_LIST:\n return 'ENTITY_HEADER'\n case ColumnTypeEnum.USERID:\n case ColumnTypeEnum.USERID_LIST:\n return 'USER_PROFILE'\n case ColumnTypeEnum.EVALUATIONID:\n return 'EVALUATION_QUEUE'\n default:\n return null\n }\n}\n\n/**\n * Builds the labeling function used for every value the QB displays — pill\n * choices and the plain-English summary alike.\n *\n * IDs are looked up in batch for the whole panel rather than per condition, so\n * a value keeps its name whether or not a condition is currently selecting it.\n */\nexport function useQBValueDisplayName(\n columnModels: ColumnModel[],\n facetResults: readonly FacetColumnResult[],\n): QBValueDisplayNameFn {\n const lookupTypeByColumnName = useMemo(() => {\n const map = new Map<string, LookupType>()\n for (const columnModel of columnModels) {\n const lookupType = lookupTypeForColumnType(columnModel.columnType)\n if (lookupType != null) {\n map.set(columnModel.name, lookupType)\n }\n }\n return map\n }, [columnModels])\n\n // Only faceted columns enumerate their values in the UI, so the facet\n // results are the complete set of IDs that need names.\n const idsByLookupType = useMemo(() => {\n const ids: Record<LookupType, string[]> = {\n ENTITY_HEADER: [],\n USER_PROFILE: [],\n EVALUATION_QUEUE: [],\n }\n for (const facet of getEnumerationFacets(facetResults)) {\n const lookupType = lookupTypeByColumnName.get(facet.columnName)\n if (lookupType == null) continue\n for (const facetValue of facet.facetValues) {\n if (facetValue.value !== VALUE_NOT_SET) {\n ids[lookupType].push(facetValue.value)\n }\n }\n }\n return ids\n }, [facetResults, lookupTypeByColumnName])\n\n const entityHeaders = useGetInfoFromIds<EntityHeader>({\n ids: idsByLookupType.ENTITY_HEADER,\n type: 'ENTITY_HEADER',\n })\n const userGroupHeaders = useGetInfoFromIds<UserGroupHeader>({\n ids: idsByLookupType.USER_PROFILE,\n type: 'USER_PROFILE',\n })\n const evaluations = useGetInfoFromIds<Evaluation>({\n ids: idsByLookupType.EVALUATION_QUEUE,\n type: 'EVALUATION_QUEUE',\n })\n\n const labelsByLookupType: Record<LookupType, Map<string, string>> = useMemo(\n () => ({\n ENTITY_HEADER: new Map(entityHeaders.map(h => [h.id, h.name])),\n USER_PROFILE: new Map(userGroupHeaders.map(h => [h.ownerId, h.userName])),\n EVALUATION_QUEUE: new Map(\n evaluations\n .filter(e => e.id != null && e.name != null)\n .map(e => [e.id!, e.name!]),\n ),\n }),\n [entityHeaders, userGroupHeaders, evaluations],\n )\n\n return useCallback(\n (columnName, value) => {\n const lookupType =\n columnName == null ? null : lookupTypeByColumnName.get(columnName)\n if (lookupType == null) return labelForFacetValue(value)\n // Lookups resolve asynchronously, and only faceted values are looked up\n // at all, so the raw value is the best label available until (or unless)\n // a name arrives. An ID the backend won't resolve still gets a label\n // here: `useGetInfoFromIds` substitutes a placeholder header, named\n // after the ID for entities and `Unknown` for users.\n return (\n labelsByLookupType[lookupType].get(value) ?? labelForFacetValue(value)\n )\n },\n [lookupTypeByColumnName, labelsByLookupType],\n )\n}\n\n/** Labeler used when no ID resolution is available (e.g. outside the panel). */\nexport const rawQBValueDisplayName: QBValueDisplayNameFn = (\n _columnName,\n value,\n) => labelForFacetValue(value)\n"],"mappings":";;;;;;;AA0BA,SAAS,EACP,GACmB;CACnB,QAAQ,GAAR;EACE,KAAK,EAAe;EACpB,KAAK,EAAe,eAClB,OAAO;EACT,KAAK,EAAe;EACpB,KAAK,EAAe,aAClB,OAAO;EACT,KAAK,EAAe,cAClB,OAAO;EACT,SACE,OAAO;CACX;AACF;AASA,SAAgB,EACd,GACA,GACsB;CACtB,IAAM,IAAyB,QAAc;EAC3C,IAAM,oBAAM,IAAI,IAAwB;EACxC,KAAK,IAAM,KAAe,GAAc;GACtC,IAAM,IAAa,EAAwB,EAAY,UAAU;GACjE,AAAI,KAAc,QAChB,EAAI,IAAI,EAAY,MAAM,CAAU;EAExC;EACA,OAAO;CACT,GAAG,CAAC,CAAY,CAAC,GAIX,IAAkB,QAAc;EACpC,IAAM,IAAoC;GACxC,eAAe,CAAC;GAChB,cAAc,CAAC;GACf,kBAAkB,CAAC;EACrB;EACA,KAAK,IAAM,KAAS,EAAqB,CAAY,GAAG;GACtD,IAAM,IAAa,EAAuB,IAAI,EAAM,UAAU;GAC1D,SAAc,MAClB,KAAK,IAAM,KAAc,EAAM,aAC7B,AAAI,EAAW,UAAA,+CACb,EAAI,GAAY,KAAK,EAAW,KAAK;EAG3C;EACA,OAAO;CACT,GAAG,CAAC,GAAc,CAAsB,CAAC,GAEnC,IAAgB,EAAgC;EACpD,KAAK,EAAgB;EACrB,MAAM;CACR,CAAC,GACK,IAAmB,EAAmC;EAC1D,KAAK,EAAgB;EACrB,MAAM;CACR,CAAC,GACK,IAAc,EAA8B;EAChD,KAAK,EAAgB;EACrB,MAAM;CACR,CAAC,GAEK,IAA8D,SAC3D;EACL,eAAe,IAAI,IAAI,EAAc,KAAI,MAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;EAC7D,cAAc,IAAI,IAAI,EAAiB,KAAI,MAAK,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;EACxE,kBAAkB,IAAI,IACpB,EACG,QAAO,MAAK,EAAE,MAAM,QAAQ,EAAE,QAAQ,IAAI,EAC1C,KAAI,MAAK,CAAC,EAAE,IAAK,EAAE,IAAK,CAAC,CAC9B;CACF,IACA;EAAC;EAAe;EAAkB;CAAW,CAC/C;CAEA,OAAO,GACJ,GAAY,MAAU;EACrB,IAAM,IACJ,KAAc,OAAO,OAAO,EAAuB,IAAI,CAAU;EAOnE,OANI,KAAc,OAAa,EAAmB,CAAK,IAOrD,EAAmB,GAAY,IAAI,CAAK,KAAK,EAAmB,CAAK;CAEzE,GACA,CAAC,GAAwB,CAAkB,CAC7C;AACF;AAGA,IAAa,KACX,GACA,MACG,EAAmB,CAAK"}
|
|
@@ -4,11 +4,11 @@ import t from "../../synapse-queries/entity/useGetQueryResultBundle.js";
|
|
|
4
4
|
import n from "react";
|
|
5
5
|
import { Box as r, Button as i } from "@mui/material";
|
|
6
6
|
import { jsx as a } from "react/jsx-runtime";
|
|
7
|
-
import {
|
|
8
|
-
import
|
|
7
|
+
import { Link as o, useInRouterContext as s } from "react-router";
|
|
8
|
+
import c from "@mui/icons-material/NavigateNext";
|
|
9
9
|
//#region src/components/QueryCountButton/QueryCountButton.tsx
|
|
10
10
|
function l(l) {
|
|
11
|
-
let { sql: u, href: d, prefixText: f = "", suffixText: p = "", ...m } = l, h = e(u), g =
|
|
11
|
+
let { sql: u, href: d, prefixText: f = "", suffixText: p = "", ...m } = l, h = e(u), g = s(), { data: _, isLoading: v } = t({
|
|
12
12
|
concreteType: "org.sagebionetworks.repo.model.table.QueryBundleRequest",
|
|
13
13
|
query: { sql: u },
|
|
14
14
|
entityId: h,
|
|
@@ -21,7 +21,7 @@ function l(l) {
|
|
|
21
21
|
component: "a"
|
|
22
22
|
} : g ? {
|
|
23
23
|
to: d,
|
|
24
|
-
component:
|
|
24
|
+
component: o
|
|
25
25
|
} : {
|
|
26
26
|
href: d,
|
|
27
27
|
component: "a"
|
|
@@ -44,7 +44,7 @@ function l(l) {
|
|
|
44
44
|
width: 24,
|
|
45
45
|
height: 24
|
|
46
46
|
},
|
|
47
|
-
children: /* @__PURE__ */ a(
|
|
47
|
+
children: /* @__PURE__ */ a(c, { sx: {
|
|
48
48
|
color: "primary.main",
|
|
49
49
|
fontSize: 20
|
|
50
50
|
} })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryCountButton.js","names":[],"sources":["../../../src/components/QueryCountButton/QueryCountButton.tsx"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { BUNDLE_MASK_QUERY_COUNT } from '@/utils/SynapseConstants'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { Box, Button, ButtonProps } from '@mui/material'\nimport
|
|
1
|
+
{"version":3,"file":"QueryCountButton.js","names":[],"sources":["../../../src/components/QueryCountButton/QueryCountButton.tsx"],"sourcesContent":["import useGetQueryResultBundle from '@/synapse-queries/entity/useGetQueryResultBundle'\nimport { BUNDLE_MASK_QUERY_COUNT } from '@/utils/SynapseConstants'\nimport { parseEntityIdFromSqlStatement } from '@/utils/functions/SqlFunctions'\nimport { QueryBundleRequest } from '@sage-bionetworks/synapse-types'\nimport { Box, Button, ButtonProps } from '@mui/material'\nimport NavigateNext from '@mui/icons-material/NavigateNext'\nimport React from 'react'\nimport { Link as RouterLink, useInRouterContext } from 'react-router'\n\nexport type QueryCountButtonProps = {\n /**\n * The SQL query to execute to get the count\n */\n sql: string\n /**\n * The target URL when the button is clicked\n */\n href: string\n /**\n * Text to display before the count (e.g., \"Explore\")\n */\n prefixText?: string\n /**\n * Text to display after the count (e.g., \"files\")\n */\n suffixText?: string\n /**\n * Additional MUI Button props\n */\n} & Omit<ButtonProps, 'children'>\n\n/**\n * A button component that displays text with an inline count.\n * The count is fetched by executing a SQL query against a Synapse table.\n * Example: \"Explore 42 files\"\n */\nexport function QueryCountButton(props: QueryCountButtonProps) {\n const { sql, href, prefixText = '', suffixText = '', ...buttonProps } = props\n const entityId = parseEntityIdFromSqlStatement(sql)\n const inRouterContext = useInRouterContext()\n\n const request: QueryBundleRequest = {\n concreteType: 'org.sagebionetworks.repo.model.table.QueryBundleRequest',\n query: { sql },\n entityId,\n partMask: BUNDLE_MASK_QUERY_COUNT,\n }\n\n const { data: queryResult, isLoading } = useGetQueryResultBundle(request)\n\n const count = queryResult?.queryCount\n\n const isExternalLink =\n href?.startsWith('http://') || href?.startsWith('https://')\n\n // Determine the appropriate link props based on context\n let linkProps: Partial<ButtonProps> & { target?: string; to?: string } = {}\n\n if (isExternalLink) {\n linkProps = {\n href,\n target: '_blank',\n rel: 'noopener noreferrer',\n component: 'a',\n }\n } else if (inRouterContext) {\n // For internal links, if we are in a react-router context, use RouterLink\n linkProps = {\n to: href,\n component: RouterLink,\n }\n } else {\n linkProps = {\n href,\n component: 'a',\n }\n }\n\n // Build the button text: \"prefixText count suffixText\"\n const buttonText = React.useMemo(() => {\n const parts: string[] = []\n\n if (prefixText) {\n parts.push(prefixText)\n }\n\n if (!isLoading && count !== undefined) {\n parts.push(count.toLocaleString())\n }\n\n if (suffixText) {\n parts.push(suffixText)\n }\n\n return parts.join(' ')\n }, [prefixText, count, suffixText, isLoading])\n\n // Icon with theme-aware circular background\n const endIcon = (\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: 'background.paper',\n borderRadius: '50%',\n width: 24,\n height: 24,\n }}\n >\n <NavigateNext sx={{ color: 'primary.main', fontSize: 20 }} />\n </Box>\n )\n\n return (\n <Button\n {...buttonProps}\n {...linkProps}\n endIcon={endIcon}\n loading={isLoading}\n >\n {buttonText}\n </Button>\n )\n}\n\nexport default QueryCountButton\n"],"mappings":";;;;;;;;;AAoCA,SAAgB,EAAiB,GAA8B;CAC7D,IAAM,EAAE,QAAK,SAAM,gBAAa,IAAI,gBAAa,IAAI,GAAG,MAAgB,GAClE,IAAW,EAA8B,CAAG,GAC5C,IAAkB,EAAmB,GASrC,EAAE,MAAM,GAAa,iBAAc,EAAwB;EAN/D,cAAc;EACd,OAAO,EAAE,OAAI;EACb;EACA,UAAA;CAG+D,CAAO,GAElE,IAAQ,GAAa,YAErB,IACJ,GAAM,WAAW,SAAS,KAAK,GAAM,WAAW,UAAU,GAGxD,IAAqE,CAAC;CAE1E,AAcE,IAdE,IACU;EACV;EACA,QAAQ;EACR,KAAK;EACL,WAAW;CACb,IACS,IAEG;EACV,IAAI;EACJ,WAAW;CACb,IAEY;EACV;EACA,WAAW;CACb;CAIF,IAAM,IAAa,EAAM,cAAc;EACrC,IAAM,IAAkB,CAAC;EAczB,OAZI,KACF,EAAM,KAAK,CAAU,GAGnB,CAAC,KAAa,MAAU,KAAA,KAC1B,EAAM,KAAK,EAAM,eAAe,CAAC,GAG/B,KACF,EAAM,KAAK,CAAU,GAGhB,EAAM,KAAK,GAAG;CACvB,GAAG;EAAC;EAAY;EAAO;EAAY;CAAS,CAAC,GAGvC,IACJ,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,YAAY;GACZ,gBAAgB;GAChB,iBAAiB;GACjB,cAAc;GACd,OAAO;GACP,QAAQ;EACV;YAEA,kBAAC,GAAD,EAAc,IAAI;GAAE,OAAO;GAAgB,UAAU;EAAG,EAAI,CAAA;CACzD,CAAA;CAGP,OACE,kBAAC,GAAD;EACE,GAAI;EACJ,GAAI;EACK;EACT,SAAS;YAER;CACK,CAAA;AAEZ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { useQueryVisualizationContext as e } from "./QueryVisualizationWrapper/QueryVisualizationContext.js";
|
|
2
|
+
import { findValueOption as t } from "./JsonSchemaForm/widgets/SelectWidget.js";
|
|
3
|
+
import { useQueryContext as n } from "./QueryContext/QueryContext.js";
|
|
4
4
|
import "./QueryVisualizationWrapper/index.js";
|
|
5
5
|
import { useState as r } from "react";
|
|
6
6
|
import { Typography as i } from "@mui/material";
|
|
@@ -8,7 +8,7 @@ import { jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
|
8
8
|
import s from "react-select";
|
|
9
9
|
//#region src/components/QuerySortSelector.tsx
|
|
10
10
|
function c({ sortConfig: c }) {
|
|
11
|
-
let { defaultColumn: l, defaultDirection: u, sortableColumns: d } = c, { executeQueryRequest: f } =
|
|
11
|
+
let { defaultColumn: l, defaultDirection: u, sortableColumns: d } = c, { executeQueryRequest: f } = n(), { getColumnDisplayName: p } = e(), [m, h] = r(l), [g, _] = r(u), v = d.map((e) => ({
|
|
12
12
|
value: e,
|
|
13
13
|
label: p(e)
|
|
14
14
|
})), y = (e) => {
|
|
@@ -28,7 +28,7 @@ function c({ sortConfig: c }) {
|
|
|
28
28
|
children: "Sort by"
|
|
29
29
|
}), /* @__PURE__ */ a(s, {
|
|
30
30
|
className: "react-select-container SRC-inlineBlock",
|
|
31
|
-
value:
|
|
31
|
+
value: t(m, v),
|
|
32
32
|
options: v,
|
|
33
33
|
onChange: (e) => y(e?.value),
|
|
34
34
|
styles: { control: (e) => ({
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import e from "
|
|
2
|
-
import
|
|
1
|
+
import { QueryVisualizationContextProvider as e } from "./QueryVisualizationContext.js";
|
|
2
|
+
import t from "../../utils/hooks/useMutuallyExclusiveState.js";
|
|
3
|
+
import { useQueryContext as n } from "../QueryContext/QueryContext.js";
|
|
3
4
|
import "../QueryContext/index.js";
|
|
4
|
-
import { getDisplayValue as
|
|
5
|
-
import { unCamelCase as
|
|
6
|
-
import { useGetQueryMetadata as
|
|
5
|
+
import { getDisplayValue as r } from "../../utils/functions/getDataFromFromStorage.js";
|
|
6
|
+
import { unCamelCase as i } from "../../utils/functions/unCamelCase.js";
|
|
7
|
+
import { useGetQueryMetadata as a } from "../QueryWrapper/useGetQueryMetadata.js";
|
|
7
8
|
import { NoContentPlaceholderType as ee } from "../SynapseTable/NoContentPlaceholderType.js";
|
|
8
|
-
import
|
|
9
|
-
import { createDuoFacetValueRenderer as
|
|
10
|
-
import { QueryVisualizationContextProvider as te } from "./QueryVisualizationContext.js";
|
|
9
|
+
import o from "./NoContentPlaceholder.js";
|
|
10
|
+
import { createDuoFacetValueRenderer as te } from "../GenericCard/DuoTermTags/DuoTermTags.js";
|
|
11
11
|
import { useCallback as s, useEffect as c, useMemo as l, useState as u } from "react";
|
|
12
12
|
import { jsx as d } from "react/jsx-runtime";
|
|
13
13
|
import { useQuery as ne } from "@tanstack/react-query";
|
|
@@ -17,20 +17,20 @@ var p = [];
|
|
|
17
17
|
function m(m) {
|
|
18
18
|
let { noContentPlaceholderType: h = ee.INTERACTIVE, defaultShowSearchBar: g = !1, defaultShowPlots: _ = !0, hideCopyToClipboard: v = !1, hideSearchBarControl: y = !1, lockTextMatchesQueryFilterPill: b = !0, unitDescription: x = "result", helpConfiguration: S, hasCustomPlots: C = !1, visibleColumnCount: w = Infinity, enabledExternalAnalysisPlatforms: T = p } = m, E = l(() => m.columnAliases ?? {}, [m.columnAliases]), D = l(() => {
|
|
19
19
|
if (m.renderFacetValue) return m.renderFacetValue;
|
|
20
|
-
if (m.dataUseModifiersColumnName) return
|
|
21
|
-
}, [m.renderFacetValue, m.dataUseModifiersColumnName]), { getCurrentQueryRequest: O, hasFacetedSelectColumn: k, hasResettableFilters: A, rowDataQueryOptions: j } =
|
|
20
|
+
if (m.dataUseModifiersColumnName) return te(m.dataUseModifiersColumnName);
|
|
21
|
+
}, [m.renderFacetValue, m.dataUseModifiersColumnName]), { getCurrentQueryRequest: O, hasFacetedSelectColumn: k, hasResettableFilters: A, rowDataQueryOptions: j } = n(), { data: M } = a(), { data: re } = ne({
|
|
22
22
|
...j,
|
|
23
23
|
select: (e) => e.responseBody?.queryResult?.queryResults.headers,
|
|
24
24
|
placeholderData: (e) => e
|
|
25
|
-
}), { data:
|
|
25
|
+
}), { data: ie } = a({
|
|
26
26
|
select: (e) => e.responseBody?.selectColumns,
|
|
27
27
|
placeholderData: (e) => e
|
|
28
|
-
}),
|
|
28
|
+
}), N = f(re ?? ie ?? []), [P, F] = u(!1), [I, L] = u(_), [R, z] = u(!v), [B, V] = u(!0), [H, U, W, G] = t(g && !y, !1), [K, q] = u(!1), [J, Y] = u([]), ae = l(() => O(), [O]), X = f(m.hiddenColumns ?? []);
|
|
29
29
|
c(() => {
|
|
30
30
|
let e = new Set(X);
|
|
31
|
-
Y(
|
|
31
|
+
Y(N.filter((t) => !e.has(t.name)).slice(0, w).map((e) => e.name));
|
|
32
32
|
}, [
|
|
33
|
-
|
|
33
|
+
N,
|
|
34
34
|
ae.query.sql,
|
|
35
35
|
w,
|
|
36
36
|
X
|
|
@@ -46,10 +46,10 @@ function m(m) {
|
|
|
46
46
|
if (e) return e.name;
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
return
|
|
49
|
+
return i(e);
|
|
50
50
|
}, [E, M?.columnModels]), Q = s((e, t) => {
|
|
51
51
|
if (Array.isArray(S)) return S.find((n) => n.columnName === e && n.jsonPath === t)?.helpText;
|
|
52
|
-
}, [S]), $ = s(() => /* @__PURE__ */ d(
|
|
52
|
+
}, [S]), $ = s(() => /* @__PURE__ */ d(o, {
|
|
53
53
|
type: h,
|
|
54
54
|
hasResettableFilters: A
|
|
55
55
|
}), [h, A]), oe = l(() => ({
|
|
@@ -59,7 +59,7 @@ function m(m) {
|
|
|
59
59
|
unitDescription: x,
|
|
60
60
|
showLastUpdatedOn: m.showLastUpdatedOn,
|
|
61
61
|
getColumnDisplayName: Z,
|
|
62
|
-
getDisplayValue:
|
|
62
|
+
getDisplayValue: r,
|
|
63
63
|
renderFacetValue: D,
|
|
64
64
|
getHelpText: Q,
|
|
65
65
|
NoContentPlaceholder: $,
|
|
@@ -73,8 +73,8 @@ function m(m) {
|
|
|
73
73
|
setShowSearchBar: U,
|
|
74
74
|
showDownloadConfirmation: W,
|
|
75
75
|
setShowDownloadConfirmation: G,
|
|
76
|
-
showSqlEditor:
|
|
77
|
-
setShowSqlEditor:
|
|
76
|
+
showSqlEditor: P,
|
|
77
|
+
setShowSqlEditor: F,
|
|
78
78
|
showPlots: C || k ? I : !1,
|
|
79
79
|
setShowPlots: L,
|
|
80
80
|
showCopyToClipboard: R,
|
|
@@ -96,7 +96,7 @@ function m(m) {
|
|
|
96
96
|
B,
|
|
97
97
|
I,
|
|
98
98
|
H,
|
|
99
|
-
|
|
99
|
+
P,
|
|
100
100
|
x,
|
|
101
101
|
J,
|
|
102
102
|
C,
|
|
@@ -104,7 +104,7 @@ function m(m) {
|
|
|
104
104
|
y,
|
|
105
105
|
b
|
|
106
106
|
]), { children: se } = m;
|
|
107
|
-
return /* @__PURE__ */ d(
|
|
107
|
+
return /* @__PURE__ */ d(e, {
|
|
108
108
|
queryVisualizationContext: oe,
|
|
109
109
|
children: se
|
|
110
110
|
});
|