synapse-react-client 4.0.46 → 4.0.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.js +1 -1
- package/dist/aridhia-queries/useSubmitAridhiaDar.js +2 -2
- package/dist/aridhia-queries/useSubmitAridhiaDar.js.map +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js +1 -1
- package/dist/components/AccessTokenPage/CreateAccessTokenModal.js.map +1 -1
- package/dist/components/AccountLevelBadges/AccountLevelBadges.js +1 -1
- package/dist/components/AccountLevelBadges/AccountLevelBadges.js.map +1 -1
- package/dist/components/AclEditor/AclEditor.test-utils.js +3 -5
- package/dist/components/AclEditor/AclEditor.test-utils.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.d.ts.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js +43 -30
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts +6 -2
- package/dist/components/Aridhia/AridhiaDarStatusPopover.d.ts.map +1 -1
- package/dist/components/Aridhia/AridhiaDarStatusPopover.js +101 -31
- package/dist/components/Aridhia/AridhiaDarStatusPopover.js.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts +11 -9
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js +24 -13
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
- package/dist/components/Authentication/LastLoginInfo.js +2 -2
- package/dist/components/Authentication/LastLoginInfo.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js +1 -1
- package/dist/components/Authentication/RecoveryCodeForm.js.map +1 -1
- package/dist/components/Authentication/RecoveryCodeGrid.js.map +1 -1
- package/dist/components/Authentication/TOTPForm.d.ts.map +1 -1
- package/dist/components/Authentication/TOTPForm.js +3 -3
- package/dist/components/Authentication/TOTPForm.js.map +1 -1
- package/dist/components/Authentication/index.d.ts +6 -6
- package/dist/components/Authentication/index.d.ts.map +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
- package/dist/components/CardContainer/CardContainer.js +7 -7
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js +1 -1
- package/dist/components/ChallengeRequirementsModal/ChallengeRequirementsModal.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.d.ts.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js +1 -1
- package/dist/components/ChallengeTeamWizard/SelectChallengeTeam.js.map +1 -1
- package/dist/components/CitationPopover/CitationPopoverUtils.js +2 -2
- package/dist/components/CitationPopover/CitationPopoverUtils.js.map +1 -1
- package/dist/components/CohortBuilder/CohortBuilder.css +1 -0
- package/dist/components/CohortBuilder/CohortBuilder.d.ts +35 -0
- package/dist/components/CohortBuilder/CohortBuilder.d.ts.map +1 -0
- package/dist/components/CohortBuilder/CohortBuilder.js +108 -0
- package/dist/components/CohortBuilder/CohortBuilder.js.map +1 -0
- package/dist/components/CohortBuilder/CohortBuilder.module.js +10 -0
- package/dist/components/CohortBuilder/CohortBuilder.module.js.map +1 -0
- package/dist/components/CohortBuilder/CohortBuilder.module.scss +20 -0
- package/dist/components/CohortBuilder/CohortFilesPanel.d.ts +16 -0
- package/dist/components/CohortBuilder/CohortFilesPanel.d.ts.map +1 -0
- package/dist/components/CohortBuilder/CohortFilesPanel.js +124 -0
- package/dist/components/CohortBuilder/CohortFilesPanel.js.map +1 -0
- package/dist/components/CohortBuilder/cohortHandOff.d.ts +25 -0
- package/dist/components/CohortBuilder/cohortHandOff.d.ts.map +1 -0
- package/dist/components/CohortBuilder/cohortHandOff.js +26 -0
- package/dist/components/CohortBuilder/cohortHandOff.js.map +1 -0
- package/dist/components/ColumnFilter/ColumnFilter.d.ts.map +1 -1
- package/dist/components/ColumnFilter/ColumnFilter.js +14 -13
- package/dist/components/ColumnFilter/ColumnFilter.js.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.d.ts.map +1 -1
- package/dist/components/DataExplorer/DataExplorer.js.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts +11 -2
- package/dist/components/DataGrid/columns/AutocompleteColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/AutocompleteColumn.js +115 -109
- package/dist/components/DataGrid/columns/AutocompleteColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/NumberColumn.js +1 -1
- package/dist/components/DataGrid/columns/NumberColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts +20 -0
- package/dist/components/DataGrid/columns/NumberOrEnumColumn.d.ts.map +1 -0
- package/dist/components/DataGrid/columns/NumberOrEnumColumn.js +18 -0
- package/dist/components/DataGrid/columns/NumberOrEnumColumn.js.map +1 -0
- package/dist/components/DataGrid/components/contextMenu.js +3 -3
- package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.d.ts.map +1 -1
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js +9 -7
- package/dist/components/DataGrid/hooks/useGridUndoRedo.js.map +1 -1
- package/dist/components/DataGrid/hooks/useStack.d.ts +1 -1
- package/dist/components/DataGrid/hooks/useStack.js +2 -2
- package/dist/components/DataGrid/hooks/useStack.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js +47 -42
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js +7 -7
- package/dist/components/DataGrid/utils/extractColumnValidationMessages.js.map +1 -1
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js +2 -2
- package/dist/components/DataGrid/utils/json-rx/JsonRx.js.map +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js +1 -1
- package/dist/components/DownloadCart/DownloadIneligibleForPackagingFilesFromListButton.js.map +1 -1
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js +1 -1
- package/dist/components/DownloadCart/MeetAccessRequirementCard.js.map +1 -1
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js +5 -5
- package/dist/components/EntityDownloadConfirmation/EntityDownloadConfirmation.js.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.d.ts.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.js +4 -4
- package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
- package/dist/components/EntityHeaderTable/EntityHeaderTable.js +4 -4
- package/dist/components/EntityHeaderTable/Filter.d.ts.map +1 -1
- package/dist/components/EntityHeaderTable/Filter.js +1 -1
- package/dist/components/EntityHeaderTable/Filter.js.map +1 -1
- package/dist/components/Evaluation/EvaluationRoundEditor.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.d.ts.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +80 -84
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/FormTemplateEditor/FormStructurePanel.js +7 -7
- package/dist/components/FormTemplateEditor/StepCard.js +9 -9
- package/dist/components/FormTemplateEditor/schemaFieldUtils.js +2 -2
- package/dist/components/FormTemplateEditor/schemaFieldUtils.js.map +1 -1
- package/dist/components/FullTextSearch/FullTextSearch.js +8 -8
- package/dist/components/GenericCard/CardUtils.js.map +1 -1
- package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js +1 -1
- package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js.map +1 -1
- package/dist/components/GenericCard/DuoTermTags/duoTerms.js +1 -1
- package/dist/components/GenericCard/DuoTermTags/duoTerms.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +37 -37
- package/dist/components/GoalsV3/GoalsV3.js +1 -1
- package/dist/components/GoalsV3/GoalsV3.js.map +1 -1
- package/dist/components/HexGrid/HexGrid.d.ts +3 -1
- package/dist/components/HexGrid/HexGrid.d.ts.map +1 -1
- package/dist/components/HexGrid/HexGrid.js +14 -13
- package/dist/components/HexGrid/HexGrid.js.map +1 -1
- package/dist/components/IconSvg/index.d.ts +1 -1
- package/dist/components/IconSvg/index.d.ts.map +1 -1
- package/dist/components/IconSvg/index.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js +3 -3
- package/dist/components/JsonSchemaForm/templates/BaseInputTemplate.js.map +1 -1
- package/dist/components/Markdown/MarkdownEditor.js +1 -1
- package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
- package/dist/components/Markdown/widget/index.d.ts +1 -1
- package/dist/components/Markdown/widget/index.d.ts.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.d.ts.map +1 -1
- package/dist/components/ModalDownload/ModalDownload.js +2 -1
- package/dist/components/ModalDownload/ModalDownload.js.map +1 -1
- package/dist/components/Plot/BarPlot.js +1 -1
- package/dist/components/Plot/BarPlot.js.map +1 -1
- package/dist/components/Plot/PlotPanelHeader.d.ts +3 -2
- package/dist/components/Plot/PlotPanelHeader.d.ts.map +1 -1
- package/dist/components/Plot/PlotPanelHeader.js.map +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js +1 -1
- package/dist/components/ProgrammaticTableDownload/ProgrammaticTableDownload.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceExternalIcon.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js +3 -3
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/QueryBuilder/FilterConditionRow.d.ts.map +1 -1
- package/dist/components/QueryBuilder/FilterConditionRow.js +28 -27
- package/dist/components/QueryBuilder/FilterConditionRow.js.map +1 -1
- package/dist/components/QueryBuilder/FilterGroupNode.d.ts.map +1 -1
- package/dist/components/QueryBuilder/FilterGroupNode.js +91 -75
- package/dist/components/QueryBuilder/FilterGroupNode.js.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.css +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.d.ts.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.js +91 -79
- package/dist/components/QueryBuilder/QueryBuilderControls.js.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.module.js +11 -11
- package/dist/components/QueryBuilder/QueryBuilderControls.module.js.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderControls.module.scss +2 -0
- package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts +2 -0
- package/dist/components/QueryBuilder/QueryBuilderInternalContext.d.ts.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderInternalContext.js.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderLimits.d.ts +18 -0
- package/dist/components/QueryBuilder/queryBuilderLimits.d.ts.map +1 -0
- package/dist/components/QueryBuilder/queryBuilderLimits.js +38 -0
- package/dist/components/QueryBuilder/queryBuilderLimits.js.map +1 -0
- package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts +0 -8
- package/dist/components/QueryBuilder/queryBuilderMetadata.d.ts.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderMetadata.js +6 -9
- package/dist/components/QueryBuilder/queryBuilderMetadata.js.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts +5 -4
- package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts.map +1 -1
- package/dist/components/QueryBuilder/queryBuilderTranslation.js +58 -33
- package/dist/components/QueryBuilder/queryBuilderTranslation.js.map +1 -1
- package/dist/components/QueryBuilder/useQBCombinedSql.d.ts.map +1 -1
- package/dist/components/QueryBuilder/useQBCombinedSql.js +4 -4
- package/dist/components/QueryBuilder/useQBCombinedSql.js.map +1 -1
- package/dist/components/QueryBuilder/useQBValueDisplayName.d.ts.map +1 -1
- package/dist/components/QueryBuilder/useQBValueDisplayName.js +5 -5
- package/dist/components/QueryBuilder/useQBValueDisplayName.js.map +1 -1
- package/dist/components/QuerySortSelector.js +5 -5
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js +21 -21
- package/dist/components/QueryVisualizationWrapper/QueryVisualizationWrapper.js.map +1 -1
- package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts +20 -0
- package/dist/components/QueryWrapper/AggregateQueryErrorNotice.d.ts.map +1 -0
- package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js +50 -0
- package/dist/components/QueryWrapper/AggregateQueryErrorNotice.js.map +1 -0
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts +5 -3
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.d.ts.map +1 -1
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js +7 -3
- package/dist/components/QueryWrapper/TableQueryUseQueryOptions.js.map +1 -1
- package/dist/components/QueryWrapper/downloadListFiles.d.ts +25 -0
- package/dist/components/QueryWrapper/downloadListFiles.d.ts.map +1 -0
- package/dist/components/QueryWrapper/downloadListFiles.js +39 -0
- package/dist/components/QueryWrapper/downloadListFiles.js.map +1 -0
- package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts +16 -0
- package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.d.ts.map +1 -0
- package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js +50 -0
- package/dist/components/QueryWrapper/useAddSelectedRowsToDownloadList.js.map +1 -0
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts +4 -1
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.d.ts.map +1 -1
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js +15 -28
- package/dist/components/QueryWrapper/useGetAddToDownloadListRequestForCurrentQuery.js.map +1 -1
- package/dist/components/QueryWrapper/useOnQueryDataChange.d.ts.map +1 -1
- package/dist/components/QueryWrapper/useOnQueryDataChange.js +7 -6
- package/dist/components/QueryWrapper/useOnQueryDataChange.js.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.d.ts +3 -1
- package/dist/components/QueryWrapperErrorBoundary.d.ts.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.js +26 -21
- package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js +7 -7
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +2 -2
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +34 -32
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperSynapsePlot.js +7 -7
- package/dist/components/QueryWrapperPlotNav/UseRowSet.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js +12 -12
- package/dist/components/QueryWrapperPlotNav/UseRowSet.js.map +1 -1
- package/dist/components/RowDataTable/CategorizedRowDataTable.css +1 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts +33 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.d.ts.map +1 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.js +64 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.js.map +1 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.module.js +8 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.module.js.map +1 -0
- package/dist/components/RowDataTable/CategorizedRowDataTable.module.scss +18 -0
- package/dist/components/RowDataTable/RowDataTable.d.ts +13 -0
- package/dist/components/RowDataTable/RowDataTable.d.ts.map +1 -1
- package/dist/components/RowDataTable/RowDataTable.js +25 -8
- package/dist/components/RowDataTable/RowDataTable.js.map +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.js +1 -1
- package/dist/components/RssFeedCards/RssFeedCards.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.d.ts.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js +2 -2
- package/dist/components/SchemaDrivenAnnotationEditor/field/AdditionalPropertiesSchemaField.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/template/ObjectFieldTemplate.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +17 -9
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +39 -30
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js +24 -24
- package/dist/components/SetAccessRequirementCommonFields/SetAccessRequirementCommonFields.js.map +1 -1
- package/dist/components/StandaloneQueryWrapper/StandaloneQueryWrapper.js +8 -8
- package/dist/components/SynapseChat/SynapseChatMessage.js +1 -1
- package/dist/components/SynapseChat/SynapseChatMessage.js.map +1 -1
- package/dist/components/SynapseForm/NavButtons.js.map +1 -1
- package/dist/components/SynapseForm/StepsSideNav.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/HighlightedTypography.js +1 -1
- package/dist/components/SynapseSearchPageResults/HighlightedTypography.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.d.ts.map +1 -1
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js +3 -3
- package/dist/components/SynapseSearchPageResults/SearchFacetPanel/SearchFacetPanelUtils.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.d.ts.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js +38 -44
- package/dist/components/SynapseTable/RowSelection/RowSelectionControls.js.map +1 -1
- package/dist/components/SynapseTable/RowSelection/RowSelectionUI.js +4 -4
- package/dist/components/SynapseTable/SqlEditor.js +7 -7
- package/dist/components/SynapseTable/SynapseTable.js +8 -8
- package/dist/components/SynapseTable/SynapseTable.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.d.ts.map +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js +73 -72
- package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.js +1 -1
- package/dist/components/SynapseTable/SynapseTableUtils.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +44 -45
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js +1 -1
- package/dist/components/SynapseTable/datasets/DatasetEditorVersionCell.js.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.d.ts.map +1 -1
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js +142 -142
- package/dist/components/SynapseTable/datasets/DatasetItemsEditor.js.map +1 -1
- package/dist/components/SynapseTable/export/ExportToAnalysisPlatformDialog.js +4 -4
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js +12 -12
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
- package/dist/components/SynapseTable/table-top/ColumnSelection.js +6 -6
- package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts +0 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js +64 -57
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.d.ts.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js +3 -3
- package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js +1 -1
- package/dist/components/TableColumnSchemaEditor/ColumnModelForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorTestUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js +2 -2
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaEditorUtils.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js +60 -60
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaForm.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js +1 -1
- package/dist/components/TableColumnSchemaEditor/Validators/DatetimeSchema.js.map +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js +1 -1
- package/dist/components/TanStackTable/ColumnHeaderEnumFilter.js.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.d.ts.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.js +1 -4
- package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
- package/dist/components/TotalQueryResults.js +14 -14
- package/dist/components/Webhook/WebhookDashboard.d.ts.map +1 -1
- package/dist/components/Webhook/WebhookDashboard.js +2 -2
- package/dist/components/Webhook/WebhookDashboard.js.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.d.ts +5 -1
- package/dist/components/download_list/DownloadConfirmationUtils.d.ts.map +1 -1
- package/dist/components/download_list/DownloadConfirmationUtils.js +2 -2
- package/dist/components/download_list/DownloadConfirmationUtils.js.map +1 -1
- package/dist/components/error/ErrorBanner.d.ts.map +1 -1
- package/dist/components/error/ErrorBanner.js +49 -46
- package/dist/components/error/ErrorBanner.js.map +1 -1
- package/dist/components/file/upload/MultiFileUploadProgress.js +5 -5
- package/dist/components/row_renderers/Dataset.d.ts.map +1 -1
- package/dist/components/row_renderers/Dataset.js +6 -6
- package/dist/components/row_renderers/Dataset.js.map +1 -1
- package/dist/components/row_renderers/Funder.js +1 -1
- package/dist/components/row_renderers/Funder.js.map +1 -1
- package/dist/components/widgets/ElementWithTooltip.d.ts +6 -1
- package/dist/components/widgets/ElementWithTooltip.d.ts.map +1 -1
- package/dist/components/widgets/ElementWithTooltip.js +22 -14
- package/dist/components/widgets/ElementWithTooltip.js.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.d.ts.map +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js +1 -1
- package/dist/components/widgets/RangeSlider/RangeSlider.js.map +1 -1
- package/dist/components/widgets/SynapseImage.js +1 -1
- package/dist/components/widgets/SynapseImage.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts +16 -5
- package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js +115 -102
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.js +4 -2
- package/dist/components/widgets/facet-nav/FacetPlotLegendList.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendTable.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts +2 -0
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/FacetPlotLegendUtils.js.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.d.ts +7 -0
- package/dist/components/widgets/facet-nav/PlotsContainer.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/PlotsContainer.js +47 -45
- package/dist/components/widgets/facet-nav/PlotsContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/SelectionCriteriaPills.js +4 -4
- package/dist/components/widgets/facet-nav/useFacetPlots.d.ts +3 -2
- package/dist/components/widgets/facet-nav/useFacetPlots.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/useFacetPlots.js +16 -15
- package/dist/components/widgets/facet-nav/useFacetPlots.js.map +1 -1
- package/dist/components/widgets/query-filter/CombinedRangeFacetFilter.js +4 -4
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts +2 -2
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js +62 -60
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts +2 -0
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js +10 -10
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts +1 -0
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js +2 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts +3 -2
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.d.ts +3 -2
- package/dist/components/widgets/query-filter/FacetFilterControls.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js +63 -62
- package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js +30 -29
- package/dist/components/widgets/query-filter/JsonColumnFacetFilters.js.map +1 -1
- package/dist/components/widgets/query-filter/RangeFacetFilter.js +5 -5
- package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts +53 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.d.ts.map +1 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js +391 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockProfiles.js.map +1 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts +41 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.d.ts.map +1 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js +379 -0
- package/dist/mocks/cohortBuilder/cohortBuilderMockQueryEngine.js.map +1 -0
- package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts +26 -0
- package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.d.ts.map +1 -0
- package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js +112 -0
- package/dist/mocks/cohortBuilder/cohortBuilderSyntheticData.js.map +1 -0
- package/dist/mocks/mockAnnotationColumns.d.ts.map +1 -1
- package/dist/mocks/mockAnnotationColumns.js +1 -1
- package/dist/mocks/mockAnnotationColumns.js.map +1 -1
- package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +9 -0
- package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/aridhiaHandlers.js +24 -15
- package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts +21 -2
- package/dist/mocks/msw/handlers/asyncJobHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/asyncJobHandlers.js +30 -22
- package/dist/mocks/msw/handlers/asyncJobHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts +27 -0
- package/dist/mocks/msw/handlers/cohortBuilderHandlers.d.ts.map +1 -0
- package/dist/mocks/msw/handlers/cohortBuilderHandlers.js +158 -0
- package/dist/mocks/msw/handlers/cohortBuilderHandlers.js.map +1 -0
- package/dist/mocks/msw/handlers/subscriptionHandlers.js +1 -1
- package/dist/mocks/msw/handlers/subscriptionHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js +2 -2
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/query/mockColumnCategoryTable.d.ts +19 -0
- package/dist/mocks/query/mockColumnCategoryTable.d.ts.map +1 -0
- package/dist/mocks/query/mockColumnCategoryTable.js +188 -0
- package/dist/mocks/query/mockColumnCategoryTable.js.map +1 -0
- package/dist/stories/ColorPaletteInspector.d.ts.map +1 -1
- package/dist/stories/ColorPaletteInspector.js +2 -2
- package/dist/stories/ColorPaletteInspector.js.map +1 -1
- package/dist/style/components/facet_nav/_facet-nav-panel.scss +8 -0
- package/dist/style/main.css +1 -1
- package/dist/synapse-queries/auth/useOIDC.js +2 -2
- package/dist/synapse-queries/auth/useOIDC.js.map +1 -1
- package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js +2 -2
- package/dist/synapse-queries/auth/useUnbindOAuthProviderIdentity.js.map +1 -1
- package/dist/synapse-queries/challenge/useChallenge.js +2 -2
- package/dist/synapse-queries/challenge/useChallenge.js.map +1 -1
- package/dist/synapse-queries/chat/useChat.js +8 -8
- package/dist/synapse-queries/chat/useChat.js.map +1 -1
- package/dist/synapse-queries/curation/task/useCurationTask.js +10 -10
- package/dist/synapse-queries/curation/task/useCurationTask.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js +24 -24
- package/dist/synapse-queries/dataaccess/useAccessRequirements.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js +4 -4
- package/dist/synapse-queries/dataaccess/useDataAccessSubmission.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useEDuc.js +6 -6
- package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useFormTemplate.js +4 -4
- package/dist/synapse-queries/dataaccess/useFormTemplate.js.map +1 -1
- package/dist/synapse-queries/download/index.js +2 -2
- package/dist/synapse-queries/download/useDownloadList.d.ts +5 -0
- package/dist/synapse-queries/download/useDownloadList.d.ts.map +1 -1
- package/dist/synapse-queries/download/useDownloadList.js +14 -13
- package/dist/synapse-queries/download/useDownloadList.js.map +1 -1
- package/dist/synapse-queries/entity/useEntity.d.ts.map +1 -1
- package/dist/synapse-queries/entity/useEntity.js +20 -20
- package/dist/synapse-queries/entity/useEntity.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.d.ts.map +1 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.js +2 -1
- package/dist/synapse-queries/entity/useExportToADWorkbench.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToCavatica.d.ts.map +1 -1
- package/dist/synapse-queries/entity/useExportToCavatica.js +3 -2
- package/dist/synapse-queries/entity/useExportToCavatica.js.map +1 -1
- package/dist/synapse-queries/entity/useExportToPluto.d.ts.map +1 -1
- package/dist/synapse-queries/entity/useExportToPluto.js +2 -1
- package/dist/synapse-queries/entity/useExportToPluto.js.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.d.ts.map +1 -1
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js +4 -7
- package/dist/synapse-queries/entity/useGetQueryResultBundle.js.map +1 -1
- package/dist/synapse-queries/forum/useReply.js +6 -6
- package/dist/synapse-queries/forum/useReply.js.map +1 -1
- package/dist/synapse-queries/forum/useThread.js +14 -14
- package/dist/synapse-queries/forum/useThread.js.map +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js +1 -1
- package/dist/synapse-queries/grid/useEstablishWebsocketConnection.js.map +1 -1
- package/dist/synapse-queries/grid/useGridSession.js +4 -4
- package/dist/synapse-queries/grid/useGridSession.js.map +1 -1
- package/dist/synapse-queries/index.js +177 -176
- package/dist/synapse-queries/oauth/useOAuthClient.js +9 -9
- package/dist/synapse-queries/oauth/useOAuthClient.js.map +1 -1
- package/dist/synapse-queries/portal/usePortal.js +7 -7
- package/dist/synapse-queries/portal/usePortal.js.map +1 -1
- package/dist/synapse-queries/subscription/useSubscription.js +4 -4
- package/dist/synapse-queries/subscription/useSubscription.js.map +1 -1
- package/dist/synapse-queries/table/useTableUpdateTransaction.js +2 -2
- package/dist/synapse-queries/table/useTableUpdateTransaction.js.map +1 -1
- package/dist/synapse-queries/team/useTeam.js +2 -2
- package/dist/synapse-queries/team/useTeam.js.map +1 -1
- package/dist/synapse-queries/team/useTeamList.d.ts.map +1 -1
- package/dist/synapse-queries/team/useTeamList.js +3 -3
- package/dist/synapse-queries/team/useTeamList.js.map +1 -1
- package/dist/synapse-queries/team/useTeamMembers.js +8 -8
- package/dist/synapse-queries/team/useTeamMembers.js.map +1 -1
- package/dist/synapse-queries/termsOfService/useTermsOfService.js +2 -2
- package/dist/synapse-queries/termsOfService/useTermsOfService.js.map +1 -1
- package/dist/synapse-queries/trash/useTrashCan.js +4 -4
- package/dist/synapse-queries/trash/useTrashCan.js.map +1 -1
- package/dist/synapse-queries/user/useCertificationQuiz.js +2 -2
- package/dist/synapse-queries/user/useCertificationQuiz.js.map +1 -1
- package/dist/synapse-queries/user/useFavorites.js +4 -4
- package/dist/synapse-queries/user/useFavorites.js.map +1 -1
- package/dist/synapse-queries/user/useRevokeCertification.js +2 -2
- package/dist/synapse-queries/user/useRevokeCertification.js.map +1 -1
- package/dist/synapse-queries/wiki/useWiki.js +10 -10
- package/dist/synapse-queries/wiki/useWiki.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/ContentTypeUtils.js +4 -4
- package/dist/utils/ContentTypeUtils.js.map +1 -1
- package/dist/utils/PermissionLevelToAccessType.js +1 -1
- package/dist/utils/PermissionLevelToAccessType.js.map +1 -1
- package/dist/utils/analytics/useGoogleAnalytics.js +1 -1
- package/dist/utils/analytics/useGoogleAnalytics.js.map +1 -1
- package/dist/utils/context/DocumentMetadataContext.js +1 -1
- package/dist/utils/context/DocumentMetadataContext.js.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.d.ts.map +1 -1
- package/dist/utils/functions/AccessControlListUtils.js +3 -3
- package/dist/utils/functions/AccessControlListUtils.js.map +1 -1
- package/dist/utils/functions/ArrayUtils.js +2 -2
- package/dist/utils/functions/ArrayUtils.js.map +1 -1
- package/dist/utils/functions/FileHandleUtils.js +1 -1
- package/dist/utils/functions/FileHandleUtils.js.map +1 -1
- package/dist/utils/functions/RegularExpressions.js +1 -1
- package/dist/utils/functions/RegularExpressions.js.map +1 -1
- package/dist/utils/functions/StringUtils.d.ts.map +1 -1
- package/dist/utils/functions/StringUtils.js +1 -2
- package/dist/utils/functions/StringUtils.js.map +1 -1
- package/dist/utils/functions/deepLinkingUtils.js +2 -2
- package/dist/utils/functions/deepLinkingUtils.js.map +1 -1
- package/dist/utils/functions/enumerationFacet.d.ts +26 -0
- package/dist/utils/functions/enumerationFacet.d.ts.map +1 -0
- package/dist/utils/functions/enumerationFacet.js +27 -0
- package/dist/utils/functions/enumerationFacet.js.map +1 -0
- package/dist/utils/functions/facetCountUtils.d.ts +12 -0
- package/dist/utils/functions/facetCountUtils.d.ts.map +1 -0
- package/dist/utils/functions/facetCountUtils.js +9 -0
- package/dist/utils/functions/facetCountUtils.js.map +1 -0
- package/dist/utils/functions/getEndpoint.js.map +1 -1
- package/dist/utils/functions/getUserData.js +1 -1
- package/dist/utils/functions/getUserData.js.map +1 -1
- package/dist/utils/functions/queryUtils.d.ts +1 -1
- package/dist/utils/functions/queryUtils.d.ts.map +1 -1
- package/dist/utils/functions/queryUtils.js +26 -22
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.d.ts.map +1 -1
- package/dist/utils/functions/testDownloadSpeed.js +17 -26
- package/dist/utils/functions/testDownloadSpeed.js.map +1 -1
- package/dist/utils/functions/unCamelCase.js +1 -1
- package/dist/utils/functions/unCamelCase.js.map +1 -1
- package/dist/utils/hooks/useGetInfoFromIds.js +5 -5
- package/dist/utils/hooks/useGetInfoFromIds.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/TableQueryReducerActions.js.map +1 -1
- package/dist/utils/hooks/useLogin.d.ts.map +1 -1
- package/dist/utils/hooks/useLogin.js +5 -5
- package/dist/utils/hooks/useLogin.js.map +1 -1
- package/dist/utils/hooks/useUploadFileEntity/useCreateFolderPath.js.map +1 -1
- package/dist/utils/jsonschema/collectTopLevelProperties.d.ts +6 -0
- package/dist/utils/jsonschema/collectTopLevelProperties.d.ts.map +1 -1
- package/dist/utils/jsonschema/collectTopLevelProperties.js +1 -1
- package/dist/utils/jsonschema/collectTopLevelProperties.js.map +1 -1
- package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts +22 -0
- package/dist/utils/jsonschema/getNumberOrEnumInfo.d.ts.map +1 -0
- package/dist/utils/jsonschema/getNumberOrEnumInfo.js +39 -0
- package/dist/utils/jsonschema/getNumberOrEnumInfo.js.map +1 -0
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts +1 -0
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.d.ts.map +1 -1
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js +1 -1
- package/dist/utils/jsonschema/getOnlyNonNullOneOfOption.js.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts +5 -0
- package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js +30 -15
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
- package/dist/utils/jsonschema/submissionContext.js +2 -2
- package/dist/utils/jsonschema/submissionContext.js.map +1 -1
- package/package.json +6 -6
|
@@ -1,56 +1,58 @@
|
|
|
1
1
|
import { VALUE_NOT_SET as e } from "../../../../utils/SynapseConstants.js";
|
|
2
2
|
import { isFacetColumnValuesRequest as t } from "../../../../utils/types/IsType.js";
|
|
3
|
-
import n from "
|
|
3
|
+
import { useQueryVisualizationContext as n } from "../../../QueryVisualizationWrapper/QueryVisualizationContext.js";
|
|
4
|
+
import r from "../../../../utils/hooks/useGetInfoFromIds.js";
|
|
4
5
|
import "../../../../utils/index.js";
|
|
5
|
-
import { getCorrespondingColumnForFacet as
|
|
6
|
-
import { useQueryContext as
|
|
6
|
+
import { getCorrespondingColumnForFacet as i, getCorrespondingSelectedFacet as a } from "../../../../utils/functions/queryUtils.js";
|
|
7
|
+
import { useQueryContext as o } from "../../../QueryContext/QueryContext.js";
|
|
7
8
|
import "../../../QueryContext/index.js";
|
|
8
|
-
import { useSuspenseGetQueryMetadata as
|
|
9
|
-
import
|
|
10
|
-
import { useQueryVisualizationContext as c } from "../../../QueryVisualizationWrapper/QueryVisualizationContext.js";
|
|
9
|
+
import { useSuspenseGetQueryMetadata as s } from "../../../QueryWrapper/useGetQueryMetadata.js";
|
|
10
|
+
import c from "../../facet-nav/FacetValueChip.js";
|
|
11
11
|
import "../../../QueryVisualizationWrapper/index.js";
|
|
12
12
|
import l from "./EnumFacetFilterUI.js";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
13
|
+
import { formatFacetValueCount as u } from "../../../../utils/functions/facetCountUtils.js";
|
|
14
|
+
import { EnumFacetFilterSkeleton as d } from "./EnumFacetFilterSkeleton.js";
|
|
15
|
+
import { getAllIsSelected as f, valueToLabel as p } from "./EnumFacetFilterUtils.js";
|
|
16
|
+
import { Suspense as m, useMemo as h } from "react";
|
|
17
|
+
import { cloneDeep as g, partition as _, pick as v, sortBy as y } from "lodash-es";
|
|
18
|
+
import { Fragment as b, jsx as x } from "react/jsx-runtime";
|
|
19
|
+
import { ColumnTypeEnum as S } from "@sage-bionetworks/synapse-types";
|
|
19
20
|
//#region src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.tsx
|
|
20
|
-
function
|
|
21
|
-
let { facet:
|
|
22
|
-
let e =
|
|
21
|
+
function C(d) {
|
|
22
|
+
let { facet: m, containerAs: C = "Collapsible", dropdownType: w = "Icon", hideCollapsible: T = !1, defaultShowAllValues: E = !1, labelId: D } = d, { nextQueryRequest: O, addValueToSelectedFacet: k, removeSelectedFacet: A, removeValueFromSelectedFacet: j, resetDebounceTimer: M } = o(), { data: N } = s(), { getColumnDisplayName: P, renderFacetValue: F } = n(), I = h(() => {
|
|
23
|
+
let e = a(m, g(O.query.selectedFacets));
|
|
23
24
|
if (e && !t(e)) {
|
|
24
|
-
console.error("The facet rendered in EnumFacetFilter is not a FacetColumnValuesRequest",
|
|
25
|
+
console.error("The facet rendered in EnumFacetFilter is not a FacetColumnValuesRequest", m);
|
|
25
26
|
return;
|
|
26
27
|
}
|
|
27
28
|
return e;
|
|
28
|
-
}, [
|
|
29
|
-
switch (
|
|
30
|
-
case
|
|
31
|
-
case
|
|
32
|
-
case
|
|
29
|
+
}, [m, O.query.selectedFacets]), L = f(g(O), m), R = N.columnModels ? i(m, N.columnModels) : void 0, z = h(() => {
|
|
30
|
+
switch (R?.columnType) {
|
|
31
|
+
case S.DOUBLE:
|
|
32
|
+
case S.DATE:
|
|
33
|
+
case S.INTEGER: return !0;
|
|
33
34
|
default: return !1;
|
|
34
35
|
}
|
|
35
|
-
}, [
|
|
36
|
-
ids:
|
|
36
|
+
}, [R]), B = r({
|
|
37
|
+
ids: R?.columnType === S.USERID || R?.columnType === S.USERID_LIST ? m.facetValues.map((e) => e.value) : [],
|
|
37
38
|
type: "USER_PROFILE"
|
|
38
|
-
}),
|
|
39
|
-
ids:
|
|
39
|
+
}), V = r({
|
|
40
|
+
ids: R?.columnType === S.ENTITYID || R?.columnType === S.ENTITYID_LIST ? m.facetValues.map((e) => e.value) : [],
|
|
40
41
|
type: "ENTITY_HEADER"
|
|
41
|
-
}),
|
|
42
|
-
ids:
|
|
42
|
+
}), H = r({
|
|
43
|
+
ids: R?.columnType === S.EVALUATIONID ? m.facetValues.map((e) => e.value) : [],
|
|
43
44
|
type: "EVALUATION_QUEUE"
|
|
44
|
-
}),
|
|
45
|
-
let t =
|
|
46
|
-
let t =
|
|
45
|
+
}), U = h(() => {
|
|
46
|
+
let t = _(m.facetValues.map((e) => {
|
|
47
|
+
let t = p(e, B, V, H);
|
|
47
48
|
return {
|
|
48
49
|
...e,
|
|
49
|
-
isSelected:
|
|
50
|
+
isSelected: I?.facetValues.includes(e.value) ?? !1,
|
|
50
51
|
displayText: t,
|
|
52
|
+
countText: u(e.count, m, N.facetPostProcessingApplied),
|
|
51
53
|
renderedLabel: (() => {
|
|
52
|
-
let t =
|
|
53
|
-
return t ? /* @__PURE__ */
|
|
54
|
+
let t = F?.(m.columnName, e.value);
|
|
55
|
+
return t ? /* @__PURE__ */ x(c, {
|
|
54
56
|
label: t.label,
|
|
55
57
|
icon: t.icon,
|
|
56
58
|
tooltipTitle: t.tooltipTitle,
|
|
@@ -60,51 +62,51 @@ function S(u) {
|
|
|
60
62
|
})()
|
|
61
63
|
};
|
|
62
64
|
}), (t) => t.value === e), n = t[0], r = t[1], i = r;
|
|
63
|
-
return
|
|
65
|
+
return R?.facetSortConfig ?? (i = z ? y(r, (e) => Number(e.value)) : y(r, (e) => e.displayText.toLowerCase())), [...i, ...n];
|
|
64
66
|
}, [
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
z,
|
|
67
|
+
m,
|
|
68
|
+
N.facetPostProcessingApplied,
|
|
69
|
+
R,
|
|
70
|
+
I?.facetValues,
|
|
70
71
|
B,
|
|
71
72
|
V,
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
H,
|
|
74
|
+
z,
|
|
75
|
+
F
|
|
74
76
|
]);
|
|
75
|
-
return
|
|
76
|
-
labelId:
|
|
77
|
-
facetTitle:
|
|
78
|
-
filterIsActive: !
|
|
79
|
-
facetValues:
|
|
80
|
-
containerAs:
|
|
81
|
-
dropdownType:
|
|
82
|
-
hideCollapsible:
|
|
83
|
-
defaultShowAllValues:
|
|
77
|
+
return R ? /* @__PURE__ */ x(l, {
|
|
78
|
+
labelId: D,
|
|
79
|
+
facetTitle: P(m.columnName, m.jsonPath),
|
|
80
|
+
filterIsActive: !L,
|
|
81
|
+
facetValues: U,
|
|
82
|
+
containerAs: C,
|
|
83
|
+
dropdownType: w,
|
|
84
|
+
hideCollapsible: T,
|
|
85
|
+
defaultShowAllValues: E,
|
|
84
86
|
onHoverOverValue: () => {
|
|
85
|
-
|
|
87
|
+
M();
|
|
86
88
|
},
|
|
87
89
|
onAddValueToSelection: (e) => {
|
|
88
|
-
|
|
90
|
+
k(v(m, ["columnName", "jsonPath"]), e, { debounce: !0 });
|
|
89
91
|
},
|
|
90
92
|
onRemoveValueFromSelection: (e) => {
|
|
91
|
-
|
|
93
|
+
j(v(m, ["columnName", "jsonPath"]), e, { debounce: !0 });
|
|
92
94
|
},
|
|
93
|
-
onRemoveAllFacetSelections: () =>
|
|
95
|
+
onRemoveAllFacetSelections: () => A(v(m, ["columnName", "jsonPath"])),
|
|
94
96
|
canMultiSelect: !0
|
|
95
|
-
}) : /* @__PURE__ */ b
|
|
97
|
+
}) : /* @__PURE__ */ x(b, {});
|
|
96
98
|
}
|
|
97
|
-
function
|
|
99
|
+
function w(e) {
|
|
98
100
|
let { containerAs: t = "Collapsible", dropdownType: n = "Icon" } = e;
|
|
99
|
-
return /* @__PURE__ */
|
|
100
|
-
fallback: /* @__PURE__ */
|
|
101
|
+
return /* @__PURE__ */ x(m, {
|
|
102
|
+
fallback: /* @__PURE__ */ x(d, {
|
|
101
103
|
containerAs: t,
|
|
102
104
|
dropdownType: n
|
|
103
105
|
}),
|
|
104
|
-
children: /* @__PURE__ */
|
|
106
|
+
children: /* @__PURE__ */ x(C, { ...e })
|
|
105
107
|
});
|
|
106
108
|
}
|
|
107
109
|
//#endregion
|
|
108
|
-
export {
|
|
110
|
+
export { w as EnumFacetFilter };
|
|
109
111
|
|
|
110
112
|
//# sourceMappingURL=EnumFacetFilter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumFacetFilter.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.tsx"],"sourcesContent":["import { isFacetColumnValuesRequest, SynapseConstants } from '@/utils'\nimport {\n getCorrespondingColumnForFacet,\n getCorrespondingSelectedFacet,\n} from '@/utils/functions/queryUtils'\nimport useGetInfoFromIds from '@/utils/hooks/useGetInfoFromIds'\nimport {\n ColumnTypeEnum,\n EntityHeader,\n Evaluation,\n FacetColumnRequest,\n FacetColumnResultValueCount,\n FacetColumnResultValues,\n FacetColumnValuesRequest,\n QueryBundleRequest,\n UserGroupHeader,\n} from '@sage-bionetworks/synapse-types'\nimport { cloneDeep, partition, pick, sortBy } from 'lodash-es'\nimport { Suspense, useMemo } from 'react'\nimport { useQueryContext } from '../../../QueryContext'\nimport { useQueryVisualizationContext } from '../../../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../../../QueryWrapper/useGetQueryMetadata'\nimport { EnumFacetFilterSkeleton } from './EnumFacetFilterSkeleton'\nimport EnumFacetFilterUI, { RenderedFacetValue } from './EnumFacetFilterUI'\nimport { getAllIsSelected, valueToLabel } from './EnumFacetFilterUtils'\nimport FacetValueChip from '../../facet-nav/FacetValueChip'\n\nexport type EnumFacetFilterProps = {\n labelId?: string\n facet: FacetColumnResultValues\n containerAs?: 'Collapsible' | 'Dropdown'\n dropdownType?: 'Icon' | 'SelectBox'\n hideCollapsible?: boolean\n defaultShowAllValues?: boolean\n}\n\nfunction EnumFacetFilterInternal(props: EnumFacetFilterProps) {\n const {\n facet,\n containerAs = 'Collapsible',\n dropdownType = 'Icon',\n hideCollapsible = false,\n defaultShowAllValues = false,\n labelId,\n } = props\n const {\n nextQueryRequest,\n addValueToSelectedFacet,\n removeSelectedFacet,\n removeValueFromSelectedFacet,\n resetDebounceTimer,\n } = useQueryContext()\n\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n const { getColumnDisplayName, renderFacetValue } =\n useQueryVisualizationContext()\n\n const currentSelectedFacet: FacetColumnValuesRequest | undefined =\n useMemo(() => {\n const facetColumnRequest = getCorrespondingSelectedFacet(\n facet,\n cloneDeep(nextQueryRequest.query.selectedFacets) as\n | FacetColumnRequest[]\n | undefined,\n )\n\n if (\n facetColumnRequest &&\n !isFacetColumnValuesRequest(facetColumnRequest)\n ) {\n console.error(\n `The facet rendered in EnumFacetFilter is not a FacetColumnValuesRequest`,\n facet,\n )\n return undefined\n }\n return facetColumnRequest\n }, [facet, nextQueryRequest.query.selectedFacets])\n\n // Must compare the known facet values to the \"uncommitted\" current query\n const allIsSelected = getAllIsSelected(\n cloneDeep(nextQueryRequest) as QueryBundleRequest,\n facet,\n )\n\n const columnModel = queryMetadata.columnModels\n ? getCorrespondingColumnForFacet(facet, queryMetadata.columnModels)\n : undefined\n\n const isNumberColumnType = useMemo(() => {\n switch (columnModel?.columnType) {\n case ColumnTypeEnum.DOUBLE:\n case ColumnTypeEnum.DATE:\n case ColumnTypeEnum.INTEGER:\n return true\n default:\n return false\n }\n }, [columnModel])\n\n const userIds =\n columnModel?.columnType === ColumnTypeEnum.USERID ||\n columnModel?.columnType === ColumnTypeEnum.USERID_LIST\n ? facet.facetValues.map(facet => facet.value)\n : []\n const userGroupHeaders = useGetInfoFromIds<UserGroupHeader>({\n ids: userIds,\n type: 'USER_PROFILE',\n })\n\n const entityIds =\n columnModel?.columnType === ColumnTypeEnum.ENTITYID ||\n columnModel?.columnType === ColumnTypeEnum.ENTITYID_LIST\n ? facet.facetValues.map(facet => facet.value)\n : []\n const entityHeaders = useGetInfoFromIds<EntityHeader>({\n ids: entityIds,\n type: 'ENTITY_HEADER',\n })\n\n const evaluationIds =\n columnModel?.columnType === ColumnTypeEnum.EVALUATIONID\n ? facet.facetValues.map(facet => facet.value)\n : []\n const evaluations = useGetInfoFromIds<Evaluation>({\n ids: evaluationIds,\n type: 'EVALUATION_QUEUE',\n })\n\n const displayedFacetValues: RenderedFacetValue[] = useMemo(() => {\n const renderedFacetValues = facet.facetValues.map(\n (facetValue: FacetColumnResultValueCount): RenderedFacetValue => {\n const displayText = valueToLabel(\n facetValue,\n userGroupHeaders,\n entityHeaders,\n evaluations,\n )\n return {\n ...facetValue,\n // Selected status should be based on the 'nextQuery', not the result data\n // This ensures the checkboxes respond instantly to user interaction, like while waiting for multiple changes to debounce\n isSelected:\n currentSelectedFacet?.facetValues.includes(facetValue.value) ??\n false,\n displayText,\n renderedLabel: (() => {\n const rendered = renderFacetValue?.(\n facet.columnName,\n facetValue.value,\n )\n return rendered ? (\n <FacetValueChip\n label={rendered.label}\n icon={rendered.icon}\n tooltipTitle={rendered.tooltipTitle}\n placement=\"right\"\n truncate\n />\n ) : undefined\n })(),\n }\n },\n )\n //Abby V's suggestion, always show the VALUE_NOT_SET facet value on the bottom of this sorted list\n const partitions = partition(\n renderedFacetValues,\n facet => facet.value === SynapseConstants.VALUE_NOT_SET,\n )\n const valueNotSetFacetArray = partitions[0]\n const restOfFacetValuesArray = partitions[1]\n\n // Apply client-side sorting if no server-side sort is specified\n let sortedValues: RenderedFacetValue[] = restOfFacetValuesArray\n const isClientSideSort = columnModel?.facetSortConfig == undefined\n if (isClientSideSort) {\n if (isNumberColumnType) {\n sortedValues = sortBy(restOfFacetValuesArray, fv => Number(fv.value))\n } else {\n sortedValues = sortBy(restOfFacetValuesArray, fv =>\n fv.displayText.toLowerCase(),\n )\n }\n }\n\n return [...sortedValues, ...valueNotSetFacetArray]\n }, [\n facet.facetValues,\n facet.columnName,\n columnModel,\n currentSelectedFacet?.facetValues,\n userGroupHeaders,\n entityHeaders,\n evaluations,\n isNumberColumnType,\n renderFacetValue,\n ])\n\n if (!columnModel) {\n return <></>\n }\n\n return (\n <EnumFacetFilterUI\n labelId={labelId}\n facetTitle={getColumnDisplayName(facet.columnName, facet.jsonPath)}\n filterIsActive={!allIsSelected}\n facetValues={displayedFacetValues}\n containerAs={containerAs}\n dropdownType={dropdownType}\n hideCollapsible={hideCollapsible}\n defaultShowAllValues={defaultShowAllValues}\n onHoverOverValue={() => {\n // SWC-6698: delay the query execution (via the debounce) when an item is hovered over\n resetDebounceTimer()\n }}\n onAddValueToSelection={value => {\n addValueToSelectedFacet(\n pick(facet, ['columnName', 'jsonPath']),\n value,\n { debounce: true },\n )\n }}\n onRemoveValueFromSelection={value => {\n removeValueFromSelectedFacet(\n pick(facet, ['columnName', 'jsonPath']),\n value,\n { debounce: true },\n )\n }}\n onRemoveAllFacetSelections={() =>\n removeSelectedFacet(pick(facet, ['columnName', 'jsonPath']))\n }\n canMultiSelect={true}\n />\n )\n}\n\nexport function EnumFacetFilter(props: EnumFacetFilterProps) {\n const { containerAs = 'Collapsible', dropdownType = 'Icon' } = props\n return (\n <Suspense\n fallback={\n <EnumFacetFilterSkeleton\n containerAs={containerAs}\n dropdownType={dropdownType}\n />\n }\n >\n <EnumFacetFilterInternal {...props} />\n </Suspense>\n )\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EnumFacetFilter.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.tsx"],"sourcesContent":["import { isFacetColumnValuesRequest, SynapseConstants } from '@/utils'\nimport { formatFacetValueCount } from '@/utils/functions/facetCountUtils'\nimport {\n getCorrespondingColumnForFacet,\n getCorrespondingSelectedFacet,\n} from '@/utils/functions/queryUtils'\nimport useGetInfoFromIds from '@/utils/hooks/useGetInfoFromIds'\nimport { EnumerationFacet } from '@/utils/functions/enumerationFacet'\nimport {\n ColumnTypeEnum,\n EntityHeader,\n Evaluation,\n FacetColumnRequest,\n FacetColumnResultValueCount,\n FacetColumnValuesRequest,\n QueryBundleRequest,\n UserGroupHeader,\n} from '@sage-bionetworks/synapse-types'\nimport { cloneDeep, partition, pick, sortBy } from 'lodash-es'\nimport { Suspense, useMemo } from 'react'\nimport { useQueryContext } from '../../../QueryContext'\nimport { useQueryVisualizationContext } from '../../../QueryVisualizationWrapper'\nimport { useSuspenseGetQueryMetadata } from '../../../QueryWrapper/useGetQueryMetadata'\nimport { EnumFacetFilterSkeleton } from './EnumFacetFilterSkeleton'\nimport EnumFacetFilterUI, { RenderedFacetValue } from './EnumFacetFilterUI'\nimport { getAllIsSelected, valueToLabel } from './EnumFacetFilterUtils'\nimport FacetValueChip from '../../facet-nav/FacetValueChip'\n\nexport type EnumFacetFilterProps = {\n labelId?: string\n facet: EnumerationFacet\n containerAs?: 'Collapsible' | 'Dropdown'\n dropdownType?: 'Icon' | 'SelectBox'\n hideCollapsible?: boolean\n defaultShowAllValues?: boolean\n}\n\nfunction EnumFacetFilterInternal(props: EnumFacetFilterProps) {\n const {\n facet,\n containerAs = 'Collapsible',\n dropdownType = 'Icon',\n hideCollapsible = false,\n defaultShowAllValues = false,\n labelId,\n } = props\n const {\n nextQueryRequest,\n addValueToSelectedFacet,\n removeSelectedFacet,\n removeValueFromSelectedFacet,\n resetDebounceTimer,\n } = useQueryContext()\n\n const { data: queryMetadata } = useSuspenseGetQueryMetadata()\n const { getColumnDisplayName, renderFacetValue } =\n useQueryVisualizationContext()\n\n const currentSelectedFacet: FacetColumnValuesRequest | undefined =\n useMemo(() => {\n const facetColumnRequest = getCorrespondingSelectedFacet(\n facet,\n cloneDeep(nextQueryRequest.query.selectedFacets) as\n | FacetColumnRequest[]\n | undefined,\n )\n\n if (\n facetColumnRequest &&\n !isFacetColumnValuesRequest(facetColumnRequest)\n ) {\n console.error(\n `The facet rendered in EnumFacetFilter is not a FacetColumnValuesRequest`,\n facet,\n )\n return undefined\n }\n return facetColumnRequest\n }, [facet, nextQueryRequest.query.selectedFacets])\n\n // Must compare the known facet values to the \"uncommitted\" current query\n const allIsSelected = getAllIsSelected(\n cloneDeep(nextQueryRequest) as QueryBundleRequest,\n facet,\n )\n\n const columnModel = queryMetadata.columnModels\n ? getCorrespondingColumnForFacet(facet, queryMetadata.columnModels)\n : undefined\n\n const isNumberColumnType = useMemo(() => {\n switch (columnModel?.columnType) {\n case ColumnTypeEnum.DOUBLE:\n case ColumnTypeEnum.DATE:\n case ColumnTypeEnum.INTEGER:\n return true\n default:\n return false\n }\n }, [columnModel])\n\n const userIds =\n columnModel?.columnType === ColumnTypeEnum.USERID ||\n columnModel?.columnType === ColumnTypeEnum.USERID_LIST\n ? facet.facetValues.map(facet => facet.value)\n : []\n const userGroupHeaders = useGetInfoFromIds<UserGroupHeader>({\n ids: userIds,\n type: 'USER_PROFILE',\n })\n\n const entityIds =\n columnModel?.columnType === ColumnTypeEnum.ENTITYID ||\n columnModel?.columnType === ColumnTypeEnum.ENTITYID_LIST\n ? facet.facetValues.map(facet => facet.value)\n : []\n const entityHeaders = useGetInfoFromIds<EntityHeader>({\n ids: entityIds,\n type: 'ENTITY_HEADER',\n })\n\n const evaluationIds =\n columnModel?.columnType === ColumnTypeEnum.EVALUATIONID\n ? facet.facetValues.map(facet => facet.value)\n : []\n const evaluations = useGetInfoFromIds<Evaluation>({\n ids: evaluationIds,\n type: 'EVALUATION_QUEUE',\n })\n\n const displayedFacetValues: RenderedFacetValue[] = useMemo(() => {\n const renderedFacetValues = facet.facetValues.map(\n (facetValue: FacetColumnResultValueCount): RenderedFacetValue => {\n const displayText = valueToLabel(\n facetValue,\n userGroupHeaders,\n entityHeaders,\n evaluations,\n )\n return {\n ...facetValue,\n // Selected status should be based on the 'nextQuery', not the result data\n // This ensures the checkboxes respond instantly to user interaction, like while waiting for multiple changes to debounce\n isSelected:\n currentSelectedFacet?.facetValues.includes(facetValue.value) ??\n false,\n displayText,\n countText: formatFacetValueCount(\n facetValue.count,\n facet,\n queryMetadata.facetPostProcessingApplied,\n ),\n renderedLabel: (() => {\n const rendered = renderFacetValue?.(\n facet.columnName,\n facetValue.value,\n )\n return rendered ? (\n <FacetValueChip\n label={rendered.label}\n icon={rendered.icon}\n tooltipTitle={rendered.tooltipTitle}\n placement=\"right\"\n truncate\n />\n ) : undefined\n })(),\n }\n },\n )\n //Abby V's suggestion, always show the VALUE_NOT_SET facet value on the bottom of this sorted list\n const partitions = partition(\n renderedFacetValues,\n facet => facet.value === SynapseConstants.VALUE_NOT_SET,\n )\n const valueNotSetFacetArray = partitions[0]\n const restOfFacetValuesArray = partitions[1]\n\n // Apply client-side sorting if no server-side sort is specified\n let sortedValues: RenderedFacetValue[] = restOfFacetValuesArray\n const isClientSideSort = columnModel?.facetSortConfig == undefined\n if (isClientSideSort) {\n if (isNumberColumnType) {\n sortedValues = sortBy(restOfFacetValuesArray, fv => Number(fv.value))\n } else {\n sortedValues = sortBy(restOfFacetValuesArray, fv =>\n fv.displayText.toLowerCase(),\n )\n }\n }\n\n return [...sortedValues, ...valueNotSetFacetArray]\n }, [\n facet,\n queryMetadata.facetPostProcessingApplied,\n columnModel,\n currentSelectedFacet?.facetValues,\n userGroupHeaders,\n entityHeaders,\n evaluations,\n isNumberColumnType,\n renderFacetValue,\n ])\n\n if (!columnModel) {\n return <></>\n }\n\n return (\n <EnumFacetFilterUI\n labelId={labelId}\n facetTitle={getColumnDisplayName(facet.columnName, facet.jsonPath)}\n filterIsActive={!allIsSelected}\n facetValues={displayedFacetValues}\n containerAs={containerAs}\n dropdownType={dropdownType}\n hideCollapsible={hideCollapsible}\n defaultShowAllValues={defaultShowAllValues}\n onHoverOverValue={() => {\n // SWC-6698: delay the query execution (via the debounce) when an item is hovered over\n resetDebounceTimer()\n }}\n onAddValueToSelection={value => {\n addValueToSelectedFacet(\n pick(facet, ['columnName', 'jsonPath']),\n value,\n { debounce: true },\n )\n }}\n onRemoveValueFromSelection={value => {\n removeValueFromSelectedFacet(\n pick(facet, ['columnName', 'jsonPath']),\n value,\n { debounce: true },\n )\n }}\n onRemoveAllFacetSelections={() =>\n removeSelectedFacet(pick(facet, ['columnName', 'jsonPath']))\n }\n canMultiSelect={true}\n />\n )\n}\n\nexport function EnumFacetFilter(props: EnumFacetFilterProps) {\n const { containerAs = 'Collapsible', dropdownType = 'Icon' } = props\n return (\n <Suspense\n fallback={\n <EnumFacetFilterSkeleton\n containerAs={containerAs}\n dropdownType={dropdownType}\n />\n }\n >\n <EnumFacetFilterInternal {...props} />\n </Suspense>\n )\n}\n"],"mappings":"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"}
|
|
@@ -3,6 +3,8 @@ type EnumFacetFilterOptionProps = {
|
|
|
3
3
|
readonly id: string;
|
|
4
4
|
readonly label: ReactNode;
|
|
5
5
|
readonly count?: number;
|
|
6
|
+
/** Display text for the count (e.g. a range or an approximation); defaults to the localized count. */
|
|
7
|
+
readonly countText?: string;
|
|
6
8
|
readonly isDropdown: boolean;
|
|
7
9
|
readonly checked: boolean;
|
|
8
10
|
readonly onChange: (selected: boolean) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumFacetFilterOption.d.ts","sourceRoot":"","sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,KAAK,0BAA0B,GAAG;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAA;CACzC,CAAA;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,
|
|
1
|
+
{"version":3,"file":"EnumFacetFilterOption.d.ts","sourceRoot":"","sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,KAAK,0BAA0B,GAAG;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAA;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,sGAAsG;IACtG,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9C,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAA;IAC5B,QAAQ,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAA;CACzC,CAAA;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,2CA0EtE"}
|
|
@@ -2,20 +2,20 @@ import { Box as e, Checkbox as t, FormControlLabel as n, Radio as r } from "@mui
|
|
|
2
2
|
import { Fragment as i, jsx as a, jsxs as o } from "react/jsx-runtime";
|
|
3
3
|
//#region src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.tsx
|
|
4
4
|
function s(s) {
|
|
5
|
-
let { id: c, label: l, count: u,
|
|
5
|
+
let { id: c, label: l, count: u, countText: d, isDropdown: f, checked: p, onChange: m, onHover: h, inputType: g } = s, _ = a(g === "checkbox" ? t : r, {}), v = d ?? u?.toLocaleString();
|
|
6
6
|
return /* @__PURE__ */ o(e, {
|
|
7
7
|
className: "EnumFacetFilter__checkboxContainer",
|
|
8
8
|
onClick: () => {
|
|
9
|
-
|
|
9
|
+
f && m(!p);
|
|
10
10
|
},
|
|
11
|
-
onMouseEnter:
|
|
11
|
+
onMouseEnter: h,
|
|
12
12
|
sx: {
|
|
13
13
|
display: "flex",
|
|
14
14
|
justifyContent: "space-between",
|
|
15
15
|
alignItems: "center"
|
|
16
16
|
},
|
|
17
17
|
children: [/* @__PURE__ */ a(n, {
|
|
18
|
-
control:
|
|
18
|
+
control: _,
|
|
19
19
|
className: "EnumFacetFilter__checkbox",
|
|
20
20
|
sx: {
|
|
21
21
|
overflowWrap: "anywhere",
|
|
@@ -28,11 +28,11 @@ function s(s) {
|
|
|
28
28
|
},
|
|
29
29
|
onClick: (e) => e.stopPropagation(),
|
|
30
30
|
onChange: (e, t) => {
|
|
31
|
-
|
|
31
|
+
m(t);
|
|
32
32
|
},
|
|
33
|
-
checked:
|
|
33
|
+
checked: p,
|
|
34
34
|
label: l
|
|
35
|
-
}, `${c}`),
|
|
35
|
+
}, `${c}`), v != null && /* @__PURE__ */ o(i, { children: [f && /* @__PURE__ */ o("span", {
|
|
36
36
|
className: "EnumFacetFilter__count",
|
|
37
37
|
style: {
|
|
38
38
|
flexShrink: 0,
|
|
@@ -40,16 +40,16 @@ function s(s) {
|
|
|
40
40
|
},
|
|
41
41
|
children: [
|
|
42
42
|
"(",
|
|
43
|
-
|
|
43
|
+
v,
|
|
44
44
|
")"
|
|
45
45
|
]
|
|
46
|
-
}), !
|
|
46
|
+
}), !f && /* @__PURE__ */ a("div", {
|
|
47
47
|
className: "EnumFacetFilter__count",
|
|
48
48
|
style: {
|
|
49
49
|
flexShrink: 0,
|
|
50
50
|
marginLeft: 8
|
|
51
51
|
},
|
|
52
|
-
children:
|
|
52
|
+
children: v
|
|
53
53
|
})] })]
|
|
54
54
|
});
|
|
55
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumFacetFilterOption.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.tsx"],"sourcesContent":["import { Box, Checkbox, FormControlLabel, Radio } from '@mui/material'\nimport { ReactNode } from 'react'\n\ntype EnumFacetFilterOptionProps = {\n readonly id: string\n readonly label: ReactNode\n readonly count?: number\n readonly isDropdown: boolean\n readonly checked: boolean\n readonly onChange: (selected: boolean) => void\n readonly onHover: () => void\n readonly inputType: 'checkbox' | 'radio'\n}\n\nexport function EnumFacetFilterOption(props: EnumFacetFilterOptionProps) {\n const {\n id,\n label,\n count,\n isDropdown,\n checked,\n onChange,\n onHover,\n inputType,\n } = props\n\n const control = inputType === 'checkbox' ? <Checkbox /> : <Radio />\n\n return (\n <Box\n className=\"EnumFacetFilter__checkboxContainer\"\n onClick={() => {\n // If this is a dropdown option, clicking anywhere in the field should toggle selection\n if (isDropdown) {\n onChange(!checked)\n }\n }}\n onMouseEnter={onHover}\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <FormControlLabel\n control={control}\n className=\"EnumFacetFilter__checkbox\"\n sx={{\n overflowWrap: 'anywhere',\n // Let the label shrink so the count stays in a consistent column\n // (and custom node labels can truncate rather than overflow the row).\n flex: 1,\n minWidth: 0,\n '& .MuiFormControlLabel-label': { minWidth: 0, overflow: 'hidden' },\n }}\n onClick={event => event.stopPropagation()}\n onChange={(_event, newValue) => {\n onChange(newValue)\n }}\n key={`${id}`}\n checked={checked}\n label={label}\n />\n\n {
|
|
1
|
+
{"version":3,"file":"EnumFacetFilterOption.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterOption.tsx"],"sourcesContent":["import { Box, Checkbox, FormControlLabel, Radio } from '@mui/material'\nimport { ReactNode } from 'react'\n\ntype EnumFacetFilterOptionProps = {\n readonly id: string\n readonly label: ReactNode\n readonly count?: number\n /** Display text for the count (e.g. a range or an approximation); defaults to the localized count. */\n readonly countText?: string\n readonly isDropdown: boolean\n readonly checked: boolean\n readonly onChange: (selected: boolean) => void\n readonly onHover: () => void\n readonly inputType: 'checkbox' | 'radio'\n}\n\nexport function EnumFacetFilterOption(props: EnumFacetFilterOptionProps) {\n const {\n id,\n label,\n count,\n countText,\n isDropdown,\n checked,\n onChange,\n onHover,\n inputType,\n } = props\n\n const control = inputType === 'checkbox' ? <Checkbox /> : <Radio />\n const displayedCount = countText ?? count?.toLocaleString()\n\n return (\n <Box\n className=\"EnumFacetFilter__checkboxContainer\"\n onClick={() => {\n // If this is a dropdown option, clicking anywhere in the field should toggle selection\n if (isDropdown) {\n onChange(!checked)\n }\n }}\n onMouseEnter={onHover}\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <FormControlLabel\n control={control}\n className=\"EnumFacetFilter__checkbox\"\n sx={{\n overflowWrap: 'anywhere',\n // Let the label shrink so the count stays in a consistent column\n // (and custom node labels can truncate rather than overflow the row).\n flex: 1,\n minWidth: 0,\n '& .MuiFormControlLabel-label': { minWidth: 0, overflow: 'hidden' },\n }}\n onClick={event => event.stopPropagation()}\n onChange={(_event, newValue) => {\n onChange(newValue)\n }}\n key={`${id}`}\n checked={checked}\n label={label}\n />\n\n {displayedCount != null && (\n <>\n {isDropdown && (\n <span\n className=\"EnumFacetFilter__count\"\n style={{ flexShrink: 0, marginLeft: 8 }}\n >\n ({displayedCount})\n </span>\n )}\n {!isDropdown && (\n <div\n className=\"EnumFacetFilter__count\"\n style={{ flexShrink: 0, marginLeft: 8 }}\n >\n {displayedCount}\n </div>\n )}\n </>\n )}\n </Box>\n )\n}\n"],"mappings":";;;AAgBA,SAAgB,EAAsB,GAAmC;CACvE,IAAM,EACJ,OACA,UACA,UACA,cACA,eACA,YACA,aACA,YACA,iBACE,GAEE,IAAqC,EAA3B,MAAc,aAAc,IAAe,GAAhB,CAAW,CAAY,GAC5D,IAAiB,KAAa,GAAO,eAAe;CAE1D,OACE,kBAAC,GAAD;EACE,WAAU;EACV,eAAe;GAEb,AAAI,KACF,EAAS,CAAC,CAAO;EAErB;EACA,cAAc;EACd,IAAI;GACF,SAAS;GACT,gBAAgB;GAChB,YAAY;EACd;YAbF,CAeE,kBAAC,GAAD;GACW;GACT,WAAU;GACV,IAAI;IACF,cAAc;IAGd,MAAM;IACN,UAAU;IACV,gCAAgC;KAAE,UAAU;KAAG,UAAU;IAAS;GACpE;GACA,UAAS,MAAS,EAAM,gBAAgB;GACxC,WAAW,GAAQ,MAAa;IAC9B,EAAS,CAAQ;GACnB;GAES;GACF;EACR,GAHM,GAAG,GAGT,GAEA,KAAkB,QACjB,kBAAA,GAAA,EAAA,UAAA,CACG,KACC,kBAAC,QAAD;GACE,WAAU;GACV,OAAO;IAAE,YAAY;IAAG,YAAY;GAAE;aAFxC;IAGC;IACG;IAAe;GACb;MAEP,CAAC,KACA,kBAAC,OAAD;GACE,WAAU;GACV,OAAO;IAAE,YAAY;IAAG,YAAY;GAAE;aAErC;EACE,CAAA,CAEP,EAAA,CAAA,CAED;;AAET"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumFacetFilterUI.d.ts","sourceRoot":"","sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAA6B,MAAM,OAAO,CAAA;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAA;AAK7E,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAIvC,MAAM,MAAM,kBAAkB,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CACpD,WAAW,CAAC,2BAA2B,EAAE,OAAO,CAAC,EACjD,OAAO,CACR,GAAG;IACF,KAAK,EAAE,MAAM,CAAA;IAEb,WAAW,EAAE,MAAM,CAAA;IAEnB,aAAa,CAAC,EAAE,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"EnumFacetFilterUI.d.ts","sourceRoot":"","sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,SAAS,EAA6B,MAAM,OAAO,CAAA;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAA;AAK7E,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAIvC,MAAM,MAAM,kBAAkB,CAAC,MAAM,GAAG,MAAM,IAAI,IAAI,CACpD,WAAW,CAAC,2BAA2B,EAAE,OAAO,CAAC,EACjD,OAAO,CACR,GAAG;IACF,KAAK,EAAE,MAAM,CAAA;IAEb,WAAW,EAAE,MAAM,CAAA;IAEnB,aAAa,CAAC,EAAE,SAAS,CAAA;IAEzB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,sBAAsB,CAAC,MAAM,GAAG,MAAM,IAAI;IAEpD,OAAO,CAAC,EAAE,MAAM,CAAA;IAEhB,UAAU,EAAE,MAAM,CAAA;IAElB,WAAW,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAA;IAEzC,cAAc,EAAE,OAAO,CAAA;IAEvB,WAAW,CAAC,EAAE,aAAa,GAAG,UAAU,CAAA;IAExC,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CAAA;IAEnC,eAAe,CAAC,EAAE,OAAO,CAAA;IAEzB,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAE9C,0BAA0B,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAEnD,0BAA0B,EAAE,MAAM,IAAI,CAAA;IAEtC,gBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAEzC,cAAc,EAAE,OAAO,CAAA;IAEvB,oBAAoB,CAAC,EAAE,OAAO,CAAA;CAC/B,CAAA;AAMD,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,MAAM,GAAG,MAAM,EACvD,KAAK,EAAE,sBAAsB,CAAC,MAAM,CAAC,2CAwQtC"}
|
|
@@ -89,7 +89,7 @@ function v(v) {
|
|
|
89
89
|
})]
|
|
90
90
|
}), /* @__PURE__ */ h("div", { children: [
|
|
91
91
|
H.map((e, t) => {
|
|
92
|
-
let { isSelected: r, displayText: i, renderedLabel: a, value: o, count: s } = e;
|
|
92
|
+
let { isSelected: r, displayText: i, renderedLabel: a, value: o, count: s, countText: c } = e;
|
|
93
93
|
return /* @__PURE__ */ m(n, {
|
|
94
94
|
id: [
|
|
95
95
|
_(D),
|
|
@@ -98,6 +98,7 @@ function v(v) {
|
|
|
98
98
|
].join("-"),
|
|
99
99
|
label: a ?? i,
|
|
100
100
|
count: s,
|
|
101
|
+
countText: c,
|
|
101
102
|
isDropdown: W,
|
|
102
103
|
checked: r,
|
|
103
104
|
onHover: () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumFacetFilterUI.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.tsx"],"sourcesContent":["import {\n Checkbox,\n Collapse,\n FormControlLabel,\n IconButton,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport { ReactNode, useMemo, useRef, useState } from 'react'\nimport { FacetColumnResultValueCount } from '@sage-bionetworks/synapse-types'\nimport IconSvg from '../../../IconSvg/IconSvg'\nimport { FacetFilterHeader } from '../FacetFilterHeader'\nimport { EnumFacetFilterOption } from './EnumFacetFilterOption'\nimport EnumFacetFilterDropdown from './EnumFacetFilterDropdown'\nimport { SetOptional } from 'type-fest'\n\nconst MAX_ENUMERATION_VALUES_TO_SHOW = 5\n\nexport type RenderedFacetValue<TValue = string> = Omit<\n SetOptional<FacetColumnResultValueCount, 'count'>,\n 'value'\n> & {\n value: TValue\n /* Text displayed for the option, and also used to filter in search */\n displayText: string\n /* Optional custom node to render in place of the plain-text label. */\n renderedLabel?: ReactNode\n}\n\nexport type EnumFacetFilterUIProps<TValue = string> = {\n /* The ID of the corresponding label, for testing and accessibility */\n labelId?: string\n /* The title of the faceted column to be displayed */\n facetTitle: string\n /* List of all facet values and information associated with each value */\n facetValues: RenderedFacetValue<TValue>[]\n /* Determines how the component is styled and whether the 'All' checkbox should be selected. */\n filterIsActive: boolean // filterIsActive cannot be derived from facetValues[*].isSelected. See PORTALS-2680\n /* The EnumFacetFilter can be rendered as a collapsible panel or a dropdown. Default is `'Collapsible'` */\n containerAs?: 'Collapsible' | 'Dropdown'\n /* If `containerAs` is a dropdown, the dropdown can be either an IconButton or a SelectBox. Default is `'Icon'` */\n dropdownType?: 'Icon' | 'SelectBox'\n /* If true, hides the button to collapse the panel (only shown if `containerAs` is 'Collapsible'). Default is false.*/\n hideCollapsible?: boolean\n /* Called when an unselected value is selected */\n onAddValueToSelection: (value: TValue) => void\n /* Called when a selected value is unselected */\n onRemoveValueFromSelection: (value: TValue) => void\n /* Called when all values should be unselected (e.g. 'All' is clicked) */\n onRemoveAllFacetSelections: () => void\n /* Called when an value is hovered over */\n onHoverOverValue: (value: TValue) => void\n /* Set to true if multiple values can be selected for the filter */\n canMultiSelect: boolean\n /* By default, all values are not shown (defaultShowAllValues = false) */\n defaultShowAllValues?: boolean\n}\n\nfunction removeWhitespace(value: string): string {\n return value.replace(/\\s/g, '').toLowerCase()\n}\n\nexport default function EnumFacetFilterUI<TValue = string>(\n props: EnumFacetFilterUIProps<TValue>,\n) {\n const {\n labelId,\n filterIsActive,\n containerAs = 'Collapsible',\n dropdownType = 'Icon',\n hideCollapsible = false,\n facetValues,\n onAddValueToSelection,\n onRemoveValueFromSelection,\n facetTitle,\n onRemoveAllFacetSelections,\n onHoverOverValue,\n canMultiSelect = true,\n defaultShowAllValues = false,\n } = props\n const [toggleShowAll, setToggleShowAll] =\n useState<boolean>(defaultShowAllValues)\n const [isCollapsed, setIsCollapsed] = useState<boolean>(false)\n const [showSearch, setShowSearch] = useState<boolean>(false)\n const [searchTerm, setSearchText] = useState<string>('')\n\n // e.g. we show a subset of facet values before hiding the rest behind \"Show More\"\n // If the user has selected a value that would normally be hidden, always show all of the values\n const valueIndexedGreaterThanMaxToShowIsSelected =\n facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW &&\n facetValues\n .slice(MAX_ENUMERATION_VALUES_TO_SHOW)\n .some(({ isSelected }) => isSelected)\n const showAll =\n containerAs === 'Dropdown' ||\n toggleShowAll ||\n showSearch ||\n valueIndexedGreaterThanMaxToShowIsSelected\n\n const facetValuesToShow = useMemo(() => {\n if (showSearch && searchTerm.length > 0) {\n return facetValues.filter(({ displayText }) => {\n return (\n displayText.toLowerCase().indexOf(searchTerm.trim().toLowerCase()) >\n -1\n )\n })\n }\n if (showAll) {\n return facetValues\n }\n return facetValues.slice(0, MAX_ENUMERATION_VALUES_TO_SHOW)\n }, [facetValues, searchTerm, showSearch, showAll])\n\n const textInput = useRef<HTMLInputElement>(null)\n\n const isDropdown = containerAs === 'Dropdown'\n const showMoreButtonIsVisible =\n !showAll && facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW\n const showLessButtonIsVisible =\n showAll &&\n !searchTerm &&\n !valueIndexedGreaterThanMaxToShowIsSelected &&\n facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW\n\n const content = (\n <div className={isDropdown ? 'EnumFacetFilter__dropdown_menu' : ''}>\n <div className=\"EnumFacetFilter__checkboxContainer--forAll\">\n <TextField // Search Filter Text\n sx={{\n display: showSearch ? undefined : 'none',\n }}\n size={'small'}\n fullWidth={true}\n slotProps={{\n input: {\n startAdornment: (\n <Tooltip title={'Close search'}>\n <IconButton\n size={'small'}\n onClick={() => {\n setShowSearch(false)\n setToggleShowAll(defaultShowAllValues)\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"arrowBack\"\n />\n </IconButton>\n </Tooltip>\n ),\n endAdornment: searchTerm.length > 0 && (\n <Tooltip title={'Clear'}>\n <IconButton\n size={'small'}\n onClick={() => {\n setSearchText('')\n textInput.current?.focus()\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"close\"\n />\n </IconButton>\n </Tooltip>\n ),\n },\n }}\n type=\"text\"\n placeholder=\"Find values\"\n value={searchTerm}\n ref={textInput}\n onChange={e => {\n setSearchText(e.target.value)\n }}\n />\n {!showSearch && (\n <div className=\"EnumFacetFilter__checkAll\">\n <FormControlLabel\n control={<Checkbox />}\n className=\"EnumFacetFilter__checkbox\"\n onChange={() => {\n if (filterIsActive) {\n onRemoveAllFacetSelections()\n }\n }}\n key=\"select_all\"\n checked={!filterIsActive}\n label=\"All\"\n />\n <Tooltip title={'Search'}>\n <IconButton\n size={'small'}\n sx={{ aspectRatio: '1 / 1' }}\n onClick={() => {\n setSearchText('')\n setShowSearch(true)\n textInput.current?.focus()\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"search\"\n />\n </IconButton>\n </Tooltip>\n </div>\n )}\n </div>\n <div>\n {facetValuesToShow.map((facetValueAndCount, index: number) => {\n const { isSelected, displayText, renderedLabel, value, count } =\n facetValueAndCount\n\n return (\n <EnumFacetFilterOption\n key={String(value)}\n id={[\n removeWhitespace(facetTitle),\n removeWhitespace(String(value)),\n index,\n ].join('-')}\n label={renderedLabel ?? displayText}\n count={count}\n isDropdown={isDropdown}\n checked={isSelected}\n onHover={() => {\n onHoverOverValue(value)\n }}\n onChange={(newIsSelected: boolean) => {\n if (newIsSelected) {\n onAddValueToSelection(value)\n } else {\n onRemoveValueFromSelection(value)\n }\n }}\n inputType={canMultiSelect ? 'checkbox' : 'radio'}\n />\n )\n })}\n {!isDropdown && (\n <>\n {showMoreButtonIsVisible && (\n <button\n className=\"EnumFacetFilter__showMoreFacetsBtn\"\n onClick={() => setToggleShowAll(true)}\n >\n <div className=\"EnumFacetFilter__checkboxContainer\">\n <div className=\"EnumFacetFilter__showMoreFacetsLabel\">\n Show all ({facetValues.length})\n </div>\n </div>\n </button>\n )}\n {showLessButtonIsVisible && (\n <button\n className=\"EnumFacetFilter__showMoreFacetsBtn\"\n onClick={() => setToggleShowAll(false)}\n >\n <div className=\"EnumFacetFilter__checkboxContainer\">\n <div className=\"EnumFacetFilter__showMoreFacetsLabel\">\n Show less\n </div>\n </div>\n </button>\n )}\n </>\n )}\n {facetValuesToShow.length <= 0 && (\n <div className=\"EnumFacetFilter__noMatch\">No match found</div>\n )}\n </div>\n </div>\n )\n\n const menuText = useMemo(() => {\n if (!filterIsActive) {\n return 'All'\n } else if (\n filterIsActive &&\n facetValuesToShow.filter(item => item.isSelected).length === 1\n ) {\n return facetValuesToShow.filter(item => item.isSelected)[0].displayText\n } else {\n return 'Multiple Values Selected'\n }\n }, [filterIsActive, facetValuesToShow])\n\n if (isDropdown) {\n return (\n <EnumFacetFilterDropdown\n facetTitle={facetTitle}\n dropdownType={dropdownType}\n menuText={menuText}\n filterIsActive={filterIsActive}\n labelId={labelId}\n >\n {content}\n </EnumFacetFilterDropdown>\n )\n } else {\n return (\n <>\n <FacetFilterHeader\n hideCollapsible={hideCollapsible}\n isCollapsed={isCollapsed}\n label={facetTitle}\n onClick={(isCollapsed: boolean) => setIsCollapsed(isCollapsed)}\n />\n <Collapse className=\"EnumFacetFilter\" in={!isCollapsed}>\n {content}\n </Collapse>\n </>\n )\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EnumFacetFilterUI.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUI.tsx"],"sourcesContent":["import {\n Checkbox,\n Collapse,\n FormControlLabel,\n IconButton,\n TextField,\n Tooltip,\n} from '@mui/material'\nimport { ReactNode, useMemo, useRef, useState } from 'react'\nimport { FacetColumnResultValueCount } from '@sage-bionetworks/synapse-types'\nimport IconSvg from '../../../IconSvg/IconSvg'\nimport { FacetFilterHeader } from '../FacetFilterHeader'\nimport { EnumFacetFilterOption } from './EnumFacetFilterOption'\nimport EnumFacetFilterDropdown from './EnumFacetFilterDropdown'\nimport { SetOptional } from 'type-fest'\n\nconst MAX_ENUMERATION_VALUES_TO_SHOW = 5\n\nexport type RenderedFacetValue<TValue = string> = Omit<\n SetOptional<FacetColumnResultValueCount, 'count'>,\n 'value'\n> & {\n value: TValue\n /* Text displayed for the option, and also used to filter in search */\n displayText: string\n /* Optional custom node to render in place of the plain-text label. */\n renderedLabel?: ReactNode\n /* Optional display text for the count (e.g. a range or an approximation); defaults to the localized count. */\n countText?: string\n}\n\nexport type EnumFacetFilterUIProps<TValue = string> = {\n /* The ID of the corresponding label, for testing and accessibility */\n labelId?: string\n /* The title of the faceted column to be displayed */\n facetTitle: string\n /* List of all facet values and information associated with each value */\n facetValues: RenderedFacetValue<TValue>[]\n /* Determines how the component is styled and whether the 'All' checkbox should be selected. */\n filterIsActive: boolean // filterIsActive cannot be derived from facetValues[*].isSelected. See PORTALS-2680\n /* The EnumFacetFilter can be rendered as a collapsible panel or a dropdown. Default is `'Collapsible'` */\n containerAs?: 'Collapsible' | 'Dropdown'\n /* If `containerAs` is a dropdown, the dropdown can be either an IconButton or a SelectBox. Default is `'Icon'` */\n dropdownType?: 'Icon' | 'SelectBox'\n /* If true, hides the button to collapse the panel (only shown if `containerAs` is 'Collapsible'). Default is false.*/\n hideCollapsible?: boolean\n /* Called when an unselected value is selected */\n onAddValueToSelection: (value: TValue) => void\n /* Called when a selected value is unselected */\n onRemoveValueFromSelection: (value: TValue) => void\n /* Called when all values should be unselected (e.g. 'All' is clicked) */\n onRemoveAllFacetSelections: () => void\n /* Called when an value is hovered over */\n onHoverOverValue: (value: TValue) => void\n /* Set to true if multiple values can be selected for the filter */\n canMultiSelect: boolean\n /* By default, all values are not shown (defaultShowAllValues = false) */\n defaultShowAllValues?: boolean\n}\n\nfunction removeWhitespace(value: string): string {\n return value.replace(/\\s/g, '').toLowerCase()\n}\n\nexport default function EnumFacetFilterUI<TValue = string>(\n props: EnumFacetFilterUIProps<TValue>,\n) {\n const {\n labelId,\n filterIsActive,\n containerAs = 'Collapsible',\n dropdownType = 'Icon',\n hideCollapsible = false,\n facetValues,\n onAddValueToSelection,\n onRemoveValueFromSelection,\n facetTitle,\n onRemoveAllFacetSelections,\n onHoverOverValue,\n canMultiSelect = true,\n defaultShowAllValues = false,\n } = props\n const [toggleShowAll, setToggleShowAll] =\n useState<boolean>(defaultShowAllValues)\n const [isCollapsed, setIsCollapsed] = useState<boolean>(false)\n const [showSearch, setShowSearch] = useState<boolean>(false)\n const [searchTerm, setSearchText] = useState<string>('')\n\n // e.g. we show a subset of facet values before hiding the rest behind \"Show More\"\n // If the user has selected a value that would normally be hidden, always show all of the values\n const valueIndexedGreaterThanMaxToShowIsSelected =\n facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW &&\n facetValues\n .slice(MAX_ENUMERATION_VALUES_TO_SHOW)\n .some(({ isSelected }) => isSelected)\n const showAll =\n containerAs === 'Dropdown' ||\n toggleShowAll ||\n showSearch ||\n valueIndexedGreaterThanMaxToShowIsSelected\n\n const facetValuesToShow = useMemo(() => {\n if (showSearch && searchTerm.length > 0) {\n return facetValues.filter(({ displayText }) => {\n return (\n displayText.toLowerCase().indexOf(searchTerm.trim().toLowerCase()) >\n -1\n )\n })\n }\n if (showAll) {\n return facetValues\n }\n return facetValues.slice(0, MAX_ENUMERATION_VALUES_TO_SHOW)\n }, [facetValues, searchTerm, showSearch, showAll])\n\n const textInput = useRef<HTMLInputElement>(null)\n\n const isDropdown = containerAs === 'Dropdown'\n const showMoreButtonIsVisible =\n !showAll && facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW\n const showLessButtonIsVisible =\n showAll &&\n !searchTerm &&\n !valueIndexedGreaterThanMaxToShowIsSelected &&\n facetValues.length > MAX_ENUMERATION_VALUES_TO_SHOW\n\n const content = (\n <div className={isDropdown ? 'EnumFacetFilter__dropdown_menu' : ''}>\n <div className=\"EnumFacetFilter__checkboxContainer--forAll\">\n <TextField // Search Filter Text\n sx={{\n display: showSearch ? undefined : 'none',\n }}\n size={'small'}\n fullWidth={true}\n slotProps={{\n input: {\n startAdornment: (\n <Tooltip title={'Close search'}>\n <IconButton\n size={'small'}\n onClick={() => {\n setShowSearch(false)\n setToggleShowAll(defaultShowAllValues)\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"arrowBack\"\n />\n </IconButton>\n </Tooltip>\n ),\n endAdornment: searchTerm.length > 0 && (\n <Tooltip title={'Clear'}>\n <IconButton\n size={'small'}\n onClick={() => {\n setSearchText('')\n textInput.current?.focus()\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"close\"\n />\n </IconButton>\n </Tooltip>\n ),\n },\n }}\n type=\"text\"\n placeholder=\"Find values\"\n value={searchTerm}\n ref={textInput}\n onChange={e => {\n setSearchText(e.target.value)\n }}\n />\n {!showSearch && (\n <div className=\"EnumFacetFilter__checkAll\">\n <FormControlLabel\n control={<Checkbox />}\n className=\"EnumFacetFilter__checkbox\"\n onChange={() => {\n if (filterIsActive) {\n onRemoveAllFacetSelections()\n }\n }}\n key=\"select_all\"\n checked={!filterIsActive}\n label=\"All\"\n />\n <Tooltip title={'Search'}>\n <IconButton\n size={'small'}\n sx={{ aspectRatio: '1 / 1' }}\n onClick={() => {\n setSearchText('')\n setShowSearch(true)\n textInput.current?.focus()\n }}\n >\n <IconSvg\n sx={{ fontSize: 'inherit' }}\n wrap={false}\n icon=\"search\"\n />\n </IconButton>\n </Tooltip>\n </div>\n )}\n </div>\n <div>\n {facetValuesToShow.map((facetValueAndCount, index: number) => {\n const {\n isSelected,\n displayText,\n renderedLabel,\n value,\n count,\n countText,\n } = facetValueAndCount\n\n return (\n <EnumFacetFilterOption\n key={String(value)}\n id={[\n removeWhitespace(facetTitle),\n removeWhitespace(String(value)),\n index,\n ].join('-')}\n label={renderedLabel ?? displayText}\n count={count}\n countText={countText}\n isDropdown={isDropdown}\n checked={isSelected}\n onHover={() => {\n onHoverOverValue(value)\n }}\n onChange={(newIsSelected: boolean) => {\n if (newIsSelected) {\n onAddValueToSelection(value)\n } else {\n onRemoveValueFromSelection(value)\n }\n }}\n inputType={canMultiSelect ? 'checkbox' : 'radio'}\n />\n )\n })}\n {!isDropdown && (\n <>\n {showMoreButtonIsVisible && (\n <button\n className=\"EnumFacetFilter__showMoreFacetsBtn\"\n onClick={() => setToggleShowAll(true)}\n >\n <div className=\"EnumFacetFilter__checkboxContainer\">\n <div className=\"EnumFacetFilter__showMoreFacetsLabel\">\n Show all ({facetValues.length})\n </div>\n </div>\n </button>\n )}\n {showLessButtonIsVisible && (\n <button\n className=\"EnumFacetFilter__showMoreFacetsBtn\"\n onClick={() => setToggleShowAll(false)}\n >\n <div className=\"EnumFacetFilter__checkboxContainer\">\n <div className=\"EnumFacetFilter__showMoreFacetsLabel\">\n Show less\n </div>\n </div>\n </button>\n )}\n </>\n )}\n {facetValuesToShow.length <= 0 && (\n <div className=\"EnumFacetFilter__noMatch\">No match found</div>\n )}\n </div>\n </div>\n )\n\n const menuText = useMemo(() => {\n if (!filterIsActive) {\n return 'All'\n } else if (\n filterIsActive &&\n facetValuesToShow.filter(item => item.isSelected).length === 1\n ) {\n return facetValuesToShow.filter(item => item.isSelected)[0].displayText\n } else {\n return 'Multiple Values Selected'\n }\n }, [filterIsActive, facetValuesToShow])\n\n if (isDropdown) {\n return (\n <EnumFacetFilterDropdown\n facetTitle={facetTitle}\n dropdownType={dropdownType}\n menuText={menuText}\n filterIsActive={filterIsActive}\n labelId={labelId}\n >\n {content}\n </EnumFacetFilterDropdown>\n )\n } else {\n return (\n <>\n <FacetFilterHeader\n hideCollapsible={hideCollapsible}\n isCollapsed={isCollapsed}\n label={facetTitle}\n onClick={(isCollapsed: boolean) => setIsCollapsed(isCollapsed)}\n />\n <Collapse className=\"EnumFacetFilter\" in={!isCollapsed}>\n {content}\n </Collapse>\n </>\n )\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EnumerationFacet } from '@/utils/functions/enumerationFacet';
|
|
2
|
+
import { EntityHeader, Evaluation, FacetColumnResultValueCount, QueryBundleRequest, UserGroupHeader } from '@sage-bionetworks/synapse-types';
|
|
2
3
|
export declare function valueToLabel(facet: FacetColumnResultValueCount, profiles?: UserGroupHeader[], entityHeaders?: EntityHeader[], evaluations?: Evaluation[]): string;
|
|
3
4
|
/**
|
|
4
5
|
* Based on the uncommitted query, should the "All" checkbox be selected?
|
|
@@ -9,5 +10,5 @@ export declare function valueToLabel(facet: FacetColumnResultValueCount, profile
|
|
|
9
10
|
* @param nextQueryRequest
|
|
10
11
|
* @param facet
|
|
11
12
|
*/
|
|
12
|
-
export declare function getAllIsSelected(nextQueryRequest: QueryBundleRequest, facet:
|
|
13
|
+
export declare function getAllIsSelected(nextQueryRequest: QueryBundleRequest, facet: EnumerationFacet): boolean;
|
|
13
14
|
//# sourceMappingURL=EnumFacetFilterUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumFacetFilterUtils.d.ts","sourceRoot":"","sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EACZ,UAAU,EAEV,2BAA2B,EAC3B,
|
|
1
|
+
{"version":3,"file":"EnumFacetFilterUtils.d.ts","sourceRoot":"","sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EACL,YAAY,EACZ,UAAU,EAEV,2BAA2B,EAC3B,kBAAkB,EAClB,eAAe,EAChB,MAAM,iCAAiC,CAAA;AAExC,wBAAgB,YAAY,CAC1B,KAAK,EAAE,2BAA2B,EAClC,QAAQ,GAAE,eAAe,EAAO,EAChC,aAAa,GAAE,YAAY,EAAO,EAClC,WAAW,GAAE,UAAU,EAAO,GAC7B,MAAM,CAsBR;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,gBAAgB,EAAE,kBAAkB,EACpC,KAAK,EAAE,gBAAgB,WAiBxB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EnumFacetFilterUtils.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.ts"],"sourcesContent":["import { SynapseConstants } from '@/utils'\nimport { getCorrespondingSelectedFacet } from '@/utils/functions/queryUtils'\nimport { isFacetColumnValuesRequest } from '@/utils/types/IsType'\nimport {\n EntityHeader,\n Evaluation,\n FacetColumnRequest,\n FacetColumnResultValueCount,\n
|
|
1
|
+
{"version":3,"file":"EnumFacetFilterUtils.js","names":[],"sources":["../../../../../src/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilterUtils.ts"],"sourcesContent":["import { SynapseConstants } from '@/utils'\nimport { getCorrespondingSelectedFacet } from '@/utils/functions/queryUtils'\nimport { isFacetColumnValuesRequest } from '@/utils/types/IsType'\nimport { EnumerationFacet } from '@/utils/functions/enumerationFacet'\nimport {\n EntityHeader,\n Evaluation,\n FacetColumnRequest,\n FacetColumnResultValueCount,\n QueryBundleRequest,\n UserGroupHeader,\n} from '@sage-bionetworks/synapse-types'\n\nexport function valueToLabel(\n facet: FacetColumnResultValueCount,\n profiles: UserGroupHeader[] = [],\n entityHeaders: EntityHeader[] = [],\n evaluations: Evaluation[] = [],\n): string {\n const { value } = facet\n let displayValue = value\n if (value === SynapseConstants.VALUE_NOT_SET) {\n return SynapseConstants.FRIENDLY_VALUE_NOT_SET\n }\n const profile = profiles.find(profile => profile.ownerId === value)\n if (profiles.length) {\n displayValue = profile ? profile.userName : `unknown (${value})`\n }\n\n const eh = entityHeaders.find(eh => eh.id === value)\n if (entityHeaders.length) {\n displayValue = eh ? eh.name : `unknown (${value})`\n }\n\n const evaluation = evaluations.find(evaluation => evaluation.id === value)\n if (evaluation?.name) {\n displayValue = evaluation.name\n }\n\n return displayValue\n}\n\n/**\n * Based on the uncommitted query, should the \"All\" checkbox be selected?\n * This only considers filters applied via selectedFacets. Filters applied via\n * sql or additionalFilters will be ignored.\n *\n * @returns true iff no values have been selected for this facet filter\n * @param nextQueryRequest\n * @param facet\n */\nexport function getAllIsSelected(\n nextQueryRequest: QueryBundleRequest,\n facet: EnumerationFacet,\n) {\n const matchingSelectedFacet: FacetColumnRequest | undefined =\n getCorrespondingSelectedFacet(facet, nextQueryRequest.query.selectedFacets)\n if (!matchingSelectedFacet) {\n return true\n }\n\n if (!isFacetColumnValuesRequest(matchingSelectedFacet)) {\n console.error(\n 'getAllIsSelected: matchingSelectedFacet is not a FacetColumnValuesRequest',\n matchingSelectedFacet,\n )\n return true\n }\n\n return matchingSelectedFacet.facetValues.length === 0\n}\n"],"mappings":";;;;;AAaA,SAAgB,EACd,GACA,IAA8B,CAAC,GAC/B,IAAgC,CAAC,GACjC,IAA4B,CAAC,GACrB;CACR,IAAM,EAAE,aAAU,GACd,IAAe;CACnB,IAAI,MAAU,6CACZ,OAAO;CAET,IAAM,IAAU,EAAS,MAAK,MAAW,EAAQ,YAAY,CAAK;CAClE,AAAI,EAAS,WACX,IAAe,IAAU,EAAQ,WAAW,YAAY,EAAM;CAGhE,IAAM,IAAK,EAAc,MAAK,MAAM,EAAG,OAAO,CAAK;CACnD,AAAI,EAAc,WAChB,IAAe,IAAK,EAAG,OAAO,YAAY,EAAM;CAGlD,IAAM,IAAa,EAAY,MAAK,MAAc,EAAW,OAAO,CAAK;CAKzE,OAJI,GAAY,SACd,IAAe,EAAW,OAGrB;AACT;AAWA,SAAgB,EACd,GACA,GACA;CACA,IAAM,IACJ,EAA8B,GAAO,EAAiB,MAAM,cAAc;CAa5E,OAZK,IAIA,EAA2B,CAAqB,IAQ9C,EAAsB,YAAY,WAAW,KAPlD,QAAQ,MACN,6EACA,CACF,GACO,MARA;AAYX"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EnumerationFacet } from '@/utils/functions/enumerationFacet';
|
|
2
|
+
import { FacetColumnRequest, QueryBundleRequest } from '@sage-bionetworks/synapse-types';
|
|
2
3
|
export type FacetFilterControlsProps = {
|
|
3
4
|
availableFacets?: string[];
|
|
4
5
|
initialExpandedFacetControls?: string[];
|
|
5
6
|
};
|
|
6
|
-
export declare function applyChangesToValuesColumn(lastRequest: QueryBundleRequest | undefined, facet:
|
|
7
|
+
export declare function applyChangesToValuesColumn(lastRequest: QueryBundleRequest | undefined, facet: EnumerationFacet, onChangeFn: (result: FacetColumnRequest[]) => void, facetName?: string, checked?: boolean): void;
|
|
7
8
|
export default function FacetFilterControlsWithSuspense(props: FacetFilterControlsProps): import("react/jsx-runtime").JSX.Element;
|
|
8
9
|
//# sourceMappingURL=FacetFilterControls.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FacetFilterControls.d.ts","sourceRoot":"","sources":["../../../../src/components/widgets/query-filter/FacetFilterControls.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FacetFilterControls.d.ts","sourceRoot":"","sources":["../../../../src/components/widgets/query-filter/FacetFilterControls.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEjB,MAAM,oCAAoC,CAAA;AAM3C,OAAO,EACL,kBAAkB,EAGlB,kBAAkB,EACnB,MAAM,iCAAiC,CAAA;AAgBxC,MAAM,MAAM,wBAAwB,GAAG;IAGrC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;IAC1B,4BAA4B,CAAC,EAAE,MAAM,EAAE,CAAA;CACxC,CAAA;AAwCD,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,kBAAkB,GAAG,SAAS,EAC3C,KAAK,EAAE,gBAAgB,EACvB,UAAU,EAAE,CAAC,MAAM,EAAE,kBAAkB,EAAE,KAAK,IAAI,EAClD,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,GAAE,OAAe,QAqBzB;AA4LD,MAAM,CAAC,OAAO,UAAU,+BAA+B,CACrD,KAAK,EAAE,wBAAwB,2CAOhC"}
|