synapse-react-client 4.0.35 → 4.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/SWC.index.js +1 -1
- package/dist/aridhia-queries/AridhiaKeyFactory.d.ts +24 -0
- package/dist/aridhia-queries/AridhiaKeyFactory.d.ts.map +1 -0
- package/dist/aridhia-queries/AridhiaKeyFactory.js +49 -0
- package/dist/aridhia-queries/AridhiaKeyFactory.js.map +1 -0
- package/dist/aridhia-queries/FairFormPayload.d.ts +45 -0
- package/dist/aridhia-queries/FairFormPayload.d.ts.map +1 -0
- package/dist/aridhia-queries/FairFormPayload.js +0 -0
- package/dist/aridhia-queries/TransferType.d.ts +10 -0
- package/dist/aridhia-queries/TransferType.d.ts.map +1 -0
- package/dist/aridhia-queries/TransferType.js +0 -0
- package/dist/aridhia-queries/aridhiaTokenExchange.js +6 -6
- package/dist/aridhia-queries/index.d.ts +12 -0
- package/dist/aridhia-queries/index.d.ts.map +1 -1
- package/dist/aridhia-queries/index.js +12 -2
- package/dist/aridhia-queries/useAridhiaQuery.d.ts +38 -0
- package/dist/aridhia-queries/useAridhiaQuery.d.ts.map +1 -0
- package/dist/aridhia-queries/useAridhiaQuery.js +78 -0
- package/dist/aridhia-queries/useAridhiaQuery.js.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.d.ts +6 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.js +13 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetCatalogue.js.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetSettings.d.ts +6 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetSettings.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetSettings.js +13 -0
- package/dist/aridhia-queries/useGetAridhiaDatasetSettings.js.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaDictionaries.d.ts +6 -0
- package/dist/aridhia-queries/useGetAridhiaDictionaries.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaDictionaries.js +13 -0
- package/dist/aridhia-queries/useGetAridhiaDictionaries.js.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaRequests.d.ts +5 -4
- package/dist/aridhia-queries/useGetAridhiaRequests.d.ts.map +1 -1
- package/dist/aridhia-queries/useGetAridhiaRequests.js +11 -18
- package/dist/aridhia-queries/useGetAridhiaRequests.js.map +1 -1
- package/dist/aridhia-queries/useGetAridhiaWorkflow.d.ts +13 -0
- package/dist/aridhia-queries/useGetAridhiaWorkflow.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaWorkflow.js +19 -0
- package/dist/aridhia-queries/useGetAridhiaWorkflow.js.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.d.ts +6 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.js +13 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceLocations.js.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.d.ts +19 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.js +17 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaceRequestForm.js.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaces.d.ts +6 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaces.d.ts.map +1 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaces.js +19 -0
- package/dist/aridhia-queries/useGetAridhiaWorkspaces.js.map +1 -0
- package/dist/aridhia-queries/useSubmitAridhiaDar.d.ts +27 -0
- package/dist/aridhia-queries/useSubmitAridhiaDar.d.ts.map +1 -0
- package/dist/aridhia-queries/useSubmitAridhiaDar.js +38 -0
- package/dist/aridhia-queries/useSubmitAridhiaDar.js.map +1 -0
- package/dist/assets/icons/emailWithNotification.js +15 -15
- package/dist/assets/icons/emailWithNotification.js.map +1 -1
- package/dist/assets/icons/emailWithNotification.svg +13 -13
- package/dist/components/AccessRequirement/EntityActionsRequired.d.ts +0 -1
- package/dist/components/AccessRequirement/EntityActionsRequired.d.ts.map +1 -1
- package/dist/components/AccessRequirement/EntityActionsRequired.js +3 -6
- package/dist/components/AccessRequirement/EntityActionsRequired.js.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +65 -57
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +67 -57
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js +33 -32
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.d.ts.map +1 -1
- package/dist/components/Aridhia/AridhiaAccessStatus.js +39 -18
- package/dist/components/Aridhia/AridhiaAccessStatus.js.map +1 -1
- package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.d.ts +32 -0
- package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.js +285 -0
- package/dist/components/Aridhia/DarWizard/AridhiaDarWizard.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarAboutStep.d.ts +4 -0
- package/dist/components/Aridhia/DarWizard/DarAboutStep.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarAboutStep.js +17 -0
- package/dist/components/Aridhia/DarWizard/DarAboutStep.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarCompleteStep.d.ts +27 -0
- package/dist/components/Aridhia/DarWizard/DarCompleteStep.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarCompleteStep.js +96 -0
- package/dist/components/Aridhia/DarWizard/DarCompleteStep.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarDestinationStep.d.ts +28 -0
- package/dist/components/Aridhia/DarWizard/DarDestinationStep.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarDestinationStep.js +128 -0
- package/dist/components/Aridhia/DarWizard/DarDestinationStep.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarProjectStep.d.ts +4 -0
- package/dist/components/Aridhia/DarWizard/DarProjectStep.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarProjectStep.js +17 -0
- package/dist/components/Aridhia/DarWizard/DarProjectStep.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarSectionForm.d.ts +13 -0
- package/dist/components/Aridhia/DarWizard/DarSectionForm.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarSectionForm.js +23 -0
- package/dist/components/Aridhia/DarWizard/DarSectionForm.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts +11 -0
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js +47 -0
- package/dist/components/Aridhia/DarWizard/DarSubmittedPanel.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.d.ts +16 -0
- package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.js +33 -0
- package/dist/components/Aridhia/DarWizard/DarWorkspaceStep.js.map +1 -0
- package/dist/components/Aridhia/DarWizard/useDarDraft.d.ts +32 -0
- package/dist/components/Aridhia/DarWizard/useDarDraft.d.ts.map +1 -0
- package/dist/components/Aridhia/DarWizard/useDarDraft.js +44 -0
- package/dist/components/Aridhia/DarWizard/useDarDraft.js.map +1 -0
- package/dist/components/Aridhia/FairLabelField.d.ts +8 -0
- package/dist/components/Aridhia/FairLabelField.d.ts.map +1 -0
- package/dist/components/Aridhia/FairLabelField.js +13 -0
- package/dist/components/Aridhia/FairLabelField.js.map +1 -0
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts +3 -3
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.d.ts.map +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js +1 -1
- package/dist/components/Aridhia/aridhiaAccessStatusUtils.js.map +1 -1
- package/dist/components/Aridhia/fairFormToRjsf.d.ts +36 -0
- package/dist/components/Aridhia/fairFormToRjsf.d.ts.map +1 -0
- package/dist/components/Aridhia/fairFormToRjsf.js +137 -0
- package/dist/components/Aridhia/fairFormToRjsf.js.map +1 -0
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.d.ts.map +1 -1
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js +2 -2
- package/dist/components/CannedRejectionDialog/CannedRejectionDialog.js.map +1 -1
- package/dist/components/CardContainer/CardConfiguration.d.ts +8 -0
- package/dist/components/CardContainer/CardConfiguration.d.ts.map +1 -1
- package/dist/components/CardContainer/CardContainer.d.ts.map +1 -1
- package/dist/components/CardContainer/CardContainer.js +1 -1
- package/dist/components/CardContainer/CardContainer.js.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.d.ts.map +1 -1
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js +2 -2
- package/dist/components/ChallengeSubmission/ChallengeSubmission.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.d.ts.map +1 -1
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js +3 -3
- package/dist/components/ChallengeTeamWizard/ChallengeTeamWizard.js.map +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js +1 -1
- package/dist/components/ChallengeTeamWizard/CreateChallengeTeam.js.map +1 -1
- package/dist/components/ChangePassword/ChangePasswordWithToken.d.ts.map +1 -1
- package/dist/components/ChangePassword/ChangePasswordWithToken.js +58 -23
- package/dist/components/ChangePassword/ChangePasswordWithToken.js.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.d.ts.map +1 -1
- package/dist/components/ChangePassword/useChangePasswordFormState.js +13 -3
- package/dist/components/ChangePassword/useChangePasswordFormState.js.map +1 -1
- package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js +2 -2
- package/dist/components/CreateTableViewWizard/CreateTableViewWizard.js.map +1 -1
- package/dist/components/CreateTableViewWizard/TableNameForm.d.ts.map +1 -1
- package/dist/components/CreateTableViewWizard/TableNameForm.js +11 -14
- package/dist/components/CreateTableViewWizard/TableNameForm.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +121 -117
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts +1 -1
- package/dist/components/DataGrid/SyncGridWithSourceButton.d.ts.map +1 -1
- package/dist/components/DataGrid/SyncGridWithSourceButton.js +55 -61
- package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.d.ts +21 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.d.ts.map +1 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.js +73 -29
- package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
- package/dist/components/DataGrid/columns/NumberColumn.d.ts +31 -0
- package/dist/components/DataGrid/columns/NumberColumn.d.ts.map +1 -0
- package/dist/components/DataGrid/columns/NumberColumn.js +27 -0
- package/dist/components/DataGrid/columns/NumberColumn.js.map +1 -0
- package/dist/components/DataGrid/components/ReorderColumnsButton.d.ts +1 -0
- package/dist/components/DataGrid/components/ReorderColumnsButton.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsButton.js +17 -16
- package/dist/components/DataGrid/components/ReorderColumnsButton.js.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts +2 -0
- package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsDialog.js +104 -65
- package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -1
- package/dist/components/DataGrid/components/contextMenu.d.ts.map +1 -1
- package/dist/components/DataGrid/components/contextMenu.js +15 -15
- package/dist/components/DataGrid/components/contextMenu.js.map +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js +1 -1
- package/dist/components/DataGrid/useDataGridWebsocket.js.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.d.ts +1 -5
- package/dist/components/DataGrid/useMergeGridWithSource.d.ts.map +1 -1
- package/dist/components/DataGrid/useMergeGridWithSource.js +21 -28
- package/dist/components/DataGrid/useMergeGridWithSource.js.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/columnFactory.js +55 -51
- package/dist/components/DataGrid/utils/columnFactory.js.map +1 -1
- package/dist/components/DataGrid/utils/computeDefaultColumnOrder.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/computeDefaultColumnOrder.js +9 -8
- package/dist/components/DataGrid/utils/computeDefaultColumnOrder.js.map +1 -1
- package/dist/components/DatasetHosting/DatasetDownloadButton.d.ts +40 -0
- package/dist/components/DatasetHosting/DatasetDownloadButton.d.ts.map +1 -0
- package/dist/components/DatasetHosting/DatasetDownloadButton.js +124 -0
- package/dist/components/DatasetHosting/DatasetDownloadButton.js.map +1 -0
- package/dist/components/DatasetHosting/DatasetHosting.d.ts +97 -0
- package/dist/components/DatasetHosting/DatasetHosting.d.ts.map +1 -0
- package/dist/components/DatasetHosting/DatasetHosting.js +64 -0
- package/dist/components/DatasetHosting/DatasetHosting.js.map +1 -0
- package/dist/components/DatasetHosting/DatasetHostingAdornment.d.ts +15 -0
- package/dist/components/DatasetHosting/DatasetHostingAdornment.d.ts.map +1 -0
- package/dist/components/DatasetHosting/DatasetHostingAdornment.js +23 -0
- package/dist/components/DatasetHosting/DatasetHostingAdornment.js.map +1 -0
- package/dist/components/DatasetHosting/index.d.ts +7 -0
- package/dist/components/DatasetHosting/index.d.ts.map +1 -0
- package/dist/components/DatasetHosting/index.js +4 -0
- package/dist/components/DownloadCart/ActionRequiredListItem.d.ts +0 -2
- package/dist/components/DownloadCart/ActionRequiredListItem.d.ts.map +1 -1
- package/dist/components/DownloadCart/ActionRequiredListItem.js +2 -3
- package/dist/components/DownloadCart/ActionRequiredListItem.js.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.d.ts +1 -2
- package/dist/components/DownloadCart/DownloadCartPage.d.ts.map +1 -1
- package/dist/components/DownloadCart/DownloadCartPage.js +49 -49
- package/dist/components/DownloadCart/DownloadCartPage.js.map +1 -1
- package/dist/components/DownloadCart/DownloadListActionsRequired.d.ts +1 -5
- package/dist/components/DownloadCart/DownloadListActionsRequired.d.ts.map +1 -1
- package/dist/components/DownloadCart/DownloadListActionsRequired.js +5 -6
- package/dist/components/DownloadCart/DownloadListActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/RequestDownloadCard.d.ts +0 -2
- package/dist/components/DownloadCart/RequestDownloadCard.d.ts.map +1 -1
- package/dist/components/DownloadCart/RequestDownloadCard.js +28 -32
- package/dist/components/DownloadCart/RequestDownloadCard.js.map +1 -1
- package/dist/components/DownloadCart/TableQueryActionsRequired.d.ts +0 -2
- package/dist/components/DownloadCart/TableQueryActionsRequired.d.ts.map +1 -1
- package/dist/components/DownloadCart/TableQueryActionsRequired.js +7 -8
- package/dist/components/DownloadCart/TableQueryActionsRequired.js.map +1 -1
- package/dist/components/DownloadCart/index.d.ts +1 -2
- package/dist/components/DownloadCart/index.d.ts.map +1 -1
- package/dist/components/DropdownSelect/DropdownSelect.d.ts.map +1 -1
- package/dist/components/DropdownSelect/DropdownSelect.js +1 -1
- package/dist/components/DropdownSelect/DropdownSelect.js.map +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.d.ts.map +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js +1 -1
- package/dist/components/EntityFinder/tree/EntityTree.js.map +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js +1 -1
- package/dist/components/EntityFinder/tree/VirtualizedTree.js.map +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js +1 -1
- package/dist/components/FeaturedDataTabs/FacetPlotsCard.js.map +1 -1
- package/dist/components/GenericCard/CardActionButtonStyleContext.d.ts +10 -0
- package/dist/components/GenericCard/CardActionButtonStyleContext.d.ts.map +1 -0
- package/dist/components/GenericCard/CardActionButtonStyleContext.js +10 -0
- package/dist/components/GenericCard/CardActionButtonStyleContext.js.map +1 -0
- package/dist/components/GenericCard/DuoTermTags/DuoTermTags.js +41 -41
- package/dist/components/GenericCard/GenericCardActionButton.d.ts +5 -0
- package/dist/components/GenericCard/GenericCardActionButton.d.ts.map +1 -1
- package/dist/components/GenericCard/GenericCardActionButton.js +28 -11
- package/dist/components/GenericCard/GenericCardActionButton.js.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.d.ts +24 -0
- package/dist/components/GenericCard/TableRowGenericCard.d.ts.map +1 -1
- package/dist/components/GenericCard/TableRowGenericCard.js +158 -137
- package/dist/components/GenericCard/TableRowGenericCard.js.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditor.d.ts.map +1 -1
- package/dist/components/JSONArrayEditor/JSONArrayEditor.js +42 -42
- package/dist/components/JSONArrayEditor/JSONArrayEditor.js.map +1 -1
- package/dist/components/JsonSchemaForm/CustomFormContext.d.ts +9 -0
- package/dist/components/JsonSchemaForm/CustomFormContext.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.css +1 -0
- package/dist/components/JsonSchemaForm/JsonSchemaForm.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.js +15 -13
- package/dist/components/JsonSchemaForm/JsonSchemaForm.js.map +1 -1
- package/dist/components/JsonSchemaForm/JsonSchemaForm.module.js +5 -0
- package/dist/components/JsonSchemaForm/JsonSchemaForm.module.js.map +1 -0
- package/dist/components/JsonSchemaForm/JsonSchemaForm.module.scss +109 -0
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js +1 -1
- package/dist/components/JsonSchemaForm/templates/ArrayFieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.d.ts.map +1 -1
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.js +6 -6
- package/dist/components/JsonSchemaForm/templates/FieldTemplate.js.map +1 -1
- package/dist/components/JsonSchemaForm/widgets/DateWidget.d.ts +9 -0
- package/dist/components/JsonSchemaForm/widgets/DateWidget.d.ts.map +1 -0
- package/dist/components/JsonSchemaForm/widgets/DateWidget.js +23 -0
- package/dist/components/JsonSchemaForm/widgets/DateWidget.js.map +1 -0
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.css +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.d.ts +3 -2
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.d.ts.map +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js +10 -12
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.js.map +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.module.js +8 -7
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.module.js.map +1 -1
- package/dist/components/MailchimpSubscribeSection/MailchimpSubscribeSection.module.scss +12 -2
- package/dist/components/Markdown/MarkdownEditor.js +1 -1
- package/dist/components/Markdown/MarkdownEditor.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js +46 -46
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/QueryBuilder/QueryBuilderTypes.d.ts +39 -0
- package/dist/components/QueryBuilder/QueryBuilderTypes.d.ts.map +1 -0
- package/dist/components/QueryBuilder/QueryBuilderTypes.js +11 -0
- package/dist/components/QueryBuilder/QueryBuilderTypes.js.map +1 -0
- package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts +48 -0
- package/dist/components/QueryBuilder/queryBuilderTranslation.d.ts.map +1 -0
- package/dist/components/QueryBuilder/queryBuilderTranslation.js +256 -0
- package/dist/components/QueryBuilder/queryBuilderTranslation.js.map +1 -0
- package/dist/components/QueryContext/QueryContext.d.ts +0 -1
- package/dist/components/QueryContext/QueryContext.d.ts.map +1 -1
- package/dist/components/QueryContext/QueryContext.js.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapper.d.ts +0 -1
- package/dist/components/QueryWrapper/QueryWrapper.d.ts.map +1 -1
- package/dist/components/QueryWrapper/QueryWrapper.js +52 -53
- package/dist/components/QueryWrapper/QueryWrapper.js.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.d.ts.map +1 -1
- package/dist/components/QueryWrapperErrorBoundary.js +4 -11
- package/dist/components/QueryWrapperErrorBoundary.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js +1 -1
- package/dist/components/QueryWrapperPlotNav/LastUpdatedOn.js.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts +1 -2
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.d.ts.map +1 -1
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js +27 -25
- package/dist/components/QueryWrapperPlotNav/QueryWrapperPlotNav.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.d.ts +0 -9
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.d.ts.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js +23 -31
- package/dist/components/SchemaDrivenAnnotationEditor/AnnotationEditorUtils.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.d.ts.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js +126 -125
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.d.ts.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js +6 -5
- package/dist/components/SchemaDrivenAnnotationEditor/field/SynapseAnnotationsRJSFObjectField.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts +2 -0
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js +18 -13
- package/dist/components/SearchQueryWrapper/SearchQueryUseQueryOptions.js.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryWrapper.d.ts.map +1 -1
- package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js +0 -1
- package/dist/components/SearchQueryWrapper/SearchQueryWrapper.js.map +1 -1
- package/dist/components/ShareThisPage/ShareThisPage.js +30 -29
- package/dist/components/ShareThisPage/ShareThisPage.js.map +1 -1
- package/dist/components/StatisticsPlot.d.ts.map +1 -1
- package/dist/components/StatisticsPlot.js +1 -1
- package/dist/components/StatisticsPlot.js.map +1 -1
- package/dist/components/SynapseChat/GridAgentChat.d.ts.map +1 -1
- package/dist/components/SynapseChat/GridAgentChat.js +29 -31
- package/dist/components/SynapseChat/GridAgentChat.js.map +1 -1
- package/dist/components/SynapseForm/SynapseFormWrapper.js +1 -1
- package/dist/components/SynapseForm/SynapseFormWrapper.js.map +1 -1
- package/dist/components/SynapseHomepageV2/HotdropsAndNews.css +1 -1
- package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.js +9 -9
- package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.js.map +1 -1
- package/dist/components/SynapseHomepageV2/HotdropsAndNews.module.scss +14 -0
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js +1 -1
- package/dist/components/SynapseHomepageV2/SynapseHomepageChatSearch.js.map +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js +1 -1
- package/dist/components/SynapseSearchPageResults/SynapseSearchPage.js.map +1 -1
- package/dist/components/SynapseTable/SynapseTable.d.ts.map +1 -1
- package/dist/components/SynapseTable/SynapseTable.js +2 -1
- 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 +1 -1
- package/dist/components/SynapseTable/SynapseTableRenderers.js.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts +4 -0
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.d.ts.map +1 -1
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js +71 -69
- package/dist/components/SynapseTable/TopLevelControls/TopLevelControls.js.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.d.ts.map +1 -1
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js +29 -30
- package/dist/components/SynapseTable/export/ExternalPlatformActionsRequiredPrecheck.js.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts +4 -0
- package/dist/components/SynapseTable/table-top/DownloadOptions.d.ts.map +1 -1
- package/dist/components/SynapseTable/table-top/DownloadOptions.js +14 -13
- package/dist/components/SynapseTable/table-top/DownloadOptions.js.map +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js +1 -1
- package/dist/components/SynapseTable/usePrefetchTableData.js.map +1 -1
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js +4 -4
- package/dist/components/TableColumnSchemaEditor/TableColumnSchemaFormReducer.js.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.d.ts +7 -0
- package/dist/components/TanStackTable/StyledTanStackTable.d.ts.map +1 -1
- package/dist/components/TanStackTable/StyledTanStackTable.js +68 -48
- package/dist/components/TanStackTable/StyledTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/TableCellRenderer.d.ts.map +1 -1
- package/dist/components/TanStackTable/TableCellRenderer.js +1 -1
- package/dist/components/TanStackTable/TableCellRenderer.js.map +1 -1
- package/dist/components/TanStackTable/useSyncedTopScrollbar.d.ts +13 -0
- package/dist/components/TanStackTable/useSyncedTopScrollbar.d.ts.map +1 -0
- package/dist/components/TanStackTable/useSyncedTopScrollbar.js +32 -0
- package/dist/components/TanStackTable/useSyncedTopScrollbar.js.map +1 -0
- package/dist/components/TermsAndConditions/TermsAndConditions.js +1 -1
- package/dist/components/TermsAndConditions/TermsAndConditions.js.map +1 -1
- package/dist/components/Webhook/CreateWebhookModal.d.ts.map +1 -1
- package/dist/components/Webhook/CreateWebhookModal.js +1 -1
- package/dist/components/Webhook/CreateWebhookModal.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js +172 -61
- package/dist/components/dataaccess/UserAccessRequestHistory/InFlightEDucSignaturesTable.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.d.ts +3 -0
- package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.js +2 -2
- package/dist/components/dataaccess/UserAccessRequestHistory/RouteConstants.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js +11 -9
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPage.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js +74 -43
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryPlace.js.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.d.ts.map +1 -1
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js +2 -2
- package/dist/components/dataaccess/UserAccessRequestHistory/UserAccessRequestHistoryTable.js.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.d.ts.map +1 -1
- package/dist/components/doi/CreateOrUpdateDoiModal.js +15 -18
- package/dist/components/doi/CreateOrUpdateDoiModal.js.map +1 -1
- package/dist/components/entity/metadata/EntityModal.js +1 -1
- package/dist/components/entity/metadata/EntityModal.js.map +1 -1
- package/dist/components/entity/page/action_menu/EntityActionMenu.js +2 -2
- package/dist/components/entity/page/action_menu/EntityActionMenu.js.map +1 -1
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +144 -140
- package/dist/components/menu/DropdownMenu.d.ts.map +1 -1
- package/dist/components/menu/DropdownMenu.js +7 -7
- package/dist/components/menu/DropdownMenu.js.map +1 -1
- package/dist/components/row_renderers/Dataset.js +1 -1
- package/dist/components/row_renderers/Dataset.js.map +1 -1
- package/dist/components/styled/LeftRightPanel.d.ts +8 -0
- package/dist/components/styled/LeftRightPanel.d.ts.map +1 -1
- package/dist/components/styled/LeftRightPanel.js +10 -1
- package/dist/components/styled/LeftRightPanel.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.d.ts.map +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js +1 -1
- package/dist/components/widgets/query-filter/EnumFacetFilter/EnumFacetFilter.js.map +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js +1 -1
- package/dist/components/widgets/query-filter/FacetFilterControls.js.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.d.ts.map +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js +1 -1
- package/dist/features/entity/metadata-task/components/CreateOrUpdateCurationTaskDialog.js.map +1 -1
- package/dist/features/entity/metadata-task/components/MetadataTasksPage.js +5 -5
- package/dist/index.js +174 -171
- package/dist/index.js.map +1 -1
- package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts +73 -0
- package/dist/mocks/msw/handlers/aridhiaHandlers.d.ts.map +1 -0
- package/dist/mocks/msw/handlers/aridhiaHandlers.js +119 -0
- package/dist/mocks/msw/handlers/aridhiaHandlers.js.map +1 -0
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js +31 -27
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/entityHandlers.js +4 -4
- package/dist/mocks/msw/handlers/entityHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.d.ts +1 -0
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js +7 -1
- package/dist/mocks/msw/handlers/resetTwoFactorAuthHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/userProfileHandlers.js +6 -2
- package/dist/mocks/msw/handlers/userProfileHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers.js +72 -69
- package/dist/mocks/msw/handlers.js.map +1 -1
- package/dist/style/components/_all.scss +0 -1
- package/dist/style/components/_cards.scss +4 -2
- package/dist/style/components/_terms-and-conditions.scss +25 -3
- package/dist/style/main.css +1 -1
- package/dist/synapse-queries/KeyFactory.d.ts +1 -0
- package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
- package/dist/synapse-queries/KeyFactory.js +3 -0
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/dataaccess/index.js +4 -4
- package/dist/synapse-queries/dataaccess/useEDuc.d.ts +7 -0
- package/dist/synapse-queries/dataaccess/useEDuc.d.ts.map +1 -1
- package/dist/synapse-queries/dataaccess/useEDuc.js +11 -3
- package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
- package/dist/synapse-queries/index.js +190 -189
- package/dist/testutils/RjsfFormTestUtils.js +12 -0
- package/dist/testutils/RjsfFormTestUtils.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.d.ts +1 -0
- package/dist/utils/APIConstants.d.ts.map +1 -1
- package/dist/utils/APIConstants.js +2 -2
- package/dist/utils/APIConstants.js.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.d.ts +2 -4
- package/dist/utils/featureflag/FeatureFlags.d.ts.map +1 -1
- package/dist/utils/featureflag/FeatureFlags.js +1 -1
- package/dist/utils/featureflag/FeatureFlags.js.map +1 -1
- package/dist/utils/functions/QueryFilterUtils.js +1 -1
- package/dist/utils/functions/QueryFilterUtils.js.map +1 -1
- package/dist/utils/functions/RegularExpressions.d.ts +10 -0
- package/dist/utils/functions/RegularExpressions.d.ts.map +1 -1
- package/dist/utils/functions/RegularExpressions.js +7 -1
- package/dist/utils/functions/RegularExpressions.js.map +1 -1
- package/dist/utils/functions/SqlFunctions.d.ts.map +1 -1
- package/dist/utils/functions/SqlFunctions.js +20 -4
- package/dist/utils/functions/SqlFunctions.js.map +1 -1
- package/dist/utils/functions/queryUtils.js +1 -1
- package/dist/utils/functions/queryUtils.js.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.d.ts.map +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js +1 -1
- package/dist/utils/hooks/useDetectSSOCode.js.map +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js +1 -1
- package/dist/utils/hooks/useImmutableTableQuery/useImmutableTableQuery.js.map +1 -1
- package/dist/utils/index.js +16 -16
- package/dist/utils/jsonschema/SchemaAnnotationUtils.js +1 -1
- package/dist/utils/jsonschema/SchemaAnnotationUtils.js.map +1 -1
- package/dist/utils/jsonschema/collectTopLevelProperties.d.ts +22 -0
- package/dist/utils/jsonschema/collectTopLevelProperties.d.ts.map +1 -0
- package/dist/utils/jsonschema/collectTopLevelProperties.js +31 -0
- package/dist/utils/jsonschema/collectTopLevelProperties.js.map +1 -0
- package/dist/utils/jsonschema/getSchemaPropertyInfo.d.ts.map +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js +1 -1
- package/dist/utils/jsonschema/getSchemaPropertyInfo.js.map +1 -1
- package/dist/utils/types/IsType.d.ts +4 -1
- package/dist/utils/types/IsType.d.ts.map +1 -1
- package/dist/utils/types/IsType.js +4 -4
- package/dist/utils/types/IsType.js.map +1 -1
- package/dist/utils/types/index.js +2 -2
- package/package.json +5 -5
- package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts +0 -12
- package/dist/components/DataGrid/useMergeGridWithRecordSet.d.ts.map +0 -1
- package/dist/components/DataGrid/useMergeGridWithRecordSet.js +0 -25
- package/dist/components/DataGrid/useMergeGridWithRecordSet.js.map +0 -1
- package/dist/style/components/_annotations.scss +0 -110
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnFactory.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AAC7E,OAAO,EAGL,MAAM,
|
|
1
|
+
{"version":3,"file":"columnFactory.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAA;AAC7E,OAAO,EAGL,MAAM,EAGP,MAAM,wCAAwC,CAAA;AAwE/C,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAA;IAC7B,gBAAgB,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;IACrD,UAAU,EAAE,OAAO,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC,CAAA;AA0LD,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAGzD"}
|
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { autocompleteColumn as e } from "../columns/AutocompleteColumn.js";
|
|
2
|
+
import { dateTimeColumn as t } from "../columns/DateTimeColumn.js";
|
|
3
3
|
import { autocompleteMultipleEnumColumn as n } from "../columns/AutocompleteMultipleEnumColumn.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
4
|
+
import { getEmptyValue as r } from "./getEmptyValue.js";
|
|
5
|
+
import { numberColumn as i } from "../columns/NumberColumn.js";
|
|
6
|
+
import { calculateDefaultColumnWidth as a } from "./calculateColumnWidth.js";
|
|
7
|
+
import { ColumnHeaderWithTooltip as o } from "../components/ColumnHeaderWithTooltip.js";
|
|
8
|
+
import { wrapPasteValueWithSchemaCoercion as s } from "./schemaAwarePasteValue.js";
|
|
9
|
+
import { Tooltip as c } from "@mui/material";
|
|
10
|
+
import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
|
|
11
|
+
import { SmartToyTwoTone as f } from "@mui/icons-material";
|
|
12
|
+
import { c as p } from "react/compiler-runtime";
|
|
13
|
+
import { createTextColumn as m, keyColumn as h } from "@sage-bionetworks/react-datasheet-grid";
|
|
13
14
|
//#region src/components/DataGrid/utils/columnFactory.tsx
|
|
14
15
|
function g(e, t) {
|
|
15
16
|
function n(n) {
|
|
16
|
-
let r =
|
|
17
|
-
r[0] === n ? o = r[1] : (o = /* @__PURE__ */
|
|
18
|
-
let
|
|
19
|
-
r[2] !== i || r[3] !== a ? (
|
|
17
|
+
let r = p(13), i = n.rowData.__cellChangeInfo?.[t], a = i?.category === "own-agent" || i?.category === "other-agent", o;
|
|
18
|
+
r[0] === n ? o = r[1] : (o = /* @__PURE__ */ u(e, { ...n }), r[0] = n, r[1] = o);
|
|
19
|
+
let s;
|
|
20
|
+
r[2] !== i || r[3] !== a ? (s = i && !a && /* @__PURE__ */ u(c, {
|
|
20
21
|
title: i.tooltipText,
|
|
21
22
|
placement: "top-end",
|
|
22
|
-
children: /* @__PURE__ */
|
|
23
|
+
children: /* @__PURE__ */ u("div", { style: {
|
|
23
24
|
position: "absolute",
|
|
24
25
|
top: 0,
|
|
25
26
|
right: 0,
|
|
@@ -28,12 +29,12 @@ function g(e, t) {
|
|
|
28
29
|
zIndex: 21,
|
|
29
30
|
pointerEvents: "auto"
|
|
30
31
|
} })
|
|
31
|
-
}), r[2] = i, r[3] = a, r[4] =
|
|
32
|
+
}), r[2] = i, r[3] = a, r[4] = s) : s = r[4];
|
|
32
33
|
let m;
|
|
33
|
-
r[5] !== i || r[6] !== a || r[7] !== n.focus ? (m = a && !n.focus && /* @__PURE__ */
|
|
34
|
+
r[5] !== i || r[6] !== a || r[7] !== n.focus ? (m = a && !n.focus && /* @__PURE__ */ u(c, {
|
|
34
35
|
title: i.tooltipText,
|
|
35
36
|
placement: "left",
|
|
36
|
-
children: /* @__PURE__ */
|
|
37
|
+
children: /* @__PURE__ */ u(f, { sx: {
|
|
37
38
|
fontSize: "1em",
|
|
38
39
|
alignSelf: "center",
|
|
39
40
|
flexShrink: 0,
|
|
@@ -45,35 +46,35 @@ function g(e, t) {
|
|
|
45
46
|
} })
|
|
46
47
|
}), r[5] = i, r[6] = a, r[7] = n.focus, r[8] = m) : m = r[8];
|
|
47
48
|
let h;
|
|
48
|
-
return r[9] !== o || r[10] !==
|
|
49
|
+
return r[9] !== o || r[10] !== s || r[11] !== m ? (h = /* @__PURE__ */ d(l, { children: [
|
|
49
50
|
o,
|
|
50
|
-
|
|
51
|
+
s,
|
|
51
52
|
m
|
|
52
|
-
] }), r[9] = o, r[10] =
|
|
53
|
+
] }), r[9] = o, r[10] = s, r[11] = m, r[12] = h) : h = r[12], h;
|
|
53
54
|
}
|
|
54
55
|
return n.displayName = `CellWithTooltip(${t})`, n;
|
|
55
56
|
}
|
|
56
57
|
function _(e, t) {
|
|
57
58
|
return ({ rowData: n }) => ({
|
|
58
59
|
...n,
|
|
59
|
-
[e]:
|
|
60
|
+
[e]: r(t)
|
|
60
61
|
});
|
|
61
62
|
}
|
|
62
63
|
function v(e) {
|
|
63
64
|
return (t) => {
|
|
64
65
|
let n = t.trim();
|
|
65
|
-
return n === "" ?
|
|
66
|
+
return n === "" ? r(e) : n;
|
|
66
67
|
};
|
|
67
68
|
}
|
|
68
69
|
function y(e, t) {
|
|
69
70
|
let n = {
|
|
70
71
|
showPinIcon: e.showPinIcon,
|
|
71
72
|
hasDescription: !!e.description
|
|
72
|
-
},
|
|
73
|
+
}, r = e.customWidth ?? a(e.columnName, void 0, n), i = h(e.columnName, t);
|
|
73
74
|
return {
|
|
74
|
-
...
|
|
75
|
-
component: g(
|
|
76
|
-
title: /* @__PURE__ */
|
|
75
|
+
...i,
|
|
76
|
+
component: g(i.component, e.columnName),
|
|
77
|
+
title: /* @__PURE__ */ u(o, {
|
|
77
78
|
name: e.columnName,
|
|
78
79
|
description: e.description,
|
|
79
80
|
isRequired: e.isRequired,
|
|
@@ -82,13 +83,13 @@ function y(e, t) {
|
|
|
82
83
|
isPinned: e.isPinned,
|
|
83
84
|
onTogglePin: e.onTogglePin
|
|
84
85
|
}),
|
|
85
|
-
minWidth:
|
|
86
|
-
basis:
|
|
86
|
+
minWidth: r,
|
|
87
|
+
basis: r,
|
|
87
88
|
grow: 0,
|
|
88
89
|
shrink: 0,
|
|
89
90
|
disabled: e.disabled,
|
|
90
91
|
deleteValue: _(e.columnName, e.isRequired),
|
|
91
|
-
pasteValue:
|
|
92
|
+
pasteValue: s(i.pasteValue, e.columnName, e.schemaPropertyInfo),
|
|
92
93
|
stickyLeft: e.isPinned
|
|
93
94
|
};
|
|
94
95
|
}
|
|
@@ -97,36 +98,39 @@ var b = {
|
|
|
97
98
|
choices: e.enumeratedValues ?? [],
|
|
98
99
|
colType: e.typeInfo?.type || null,
|
|
99
100
|
limitTags: 3,
|
|
100
|
-
clearValue:
|
|
101
|
+
clearValue: r(e.isRequired)
|
|
101
102
|
})),
|
|
102
|
-
boolean: (
|
|
103
|
+
boolean: (t) => y(t, e({
|
|
103
104
|
choices: [!0, !1],
|
|
104
105
|
colType: "boolean",
|
|
105
|
-
clearValue:
|
|
106
|
+
clearValue: r(t.isRequired)
|
|
106
107
|
})),
|
|
107
|
-
number: (e) => y(e,
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
108
|
+
number: (e) => y(e, i({
|
|
109
|
+
colType: e.typeInfo?.type,
|
|
110
|
+
isRequired: e.isRequired
|
|
111
|
+
})),
|
|
112
|
+
enumerated: (t) => y(t, e({
|
|
113
|
+
choices: t.enumeratedValues ?? [],
|
|
114
|
+
colType: t.typeInfo?.type || null,
|
|
115
|
+
clearValue: r(t.isRequired)
|
|
112
116
|
})),
|
|
113
|
-
"date-time": (
|
|
114
|
-
let n =
|
|
115
|
-
showPinIcon:
|
|
116
|
-
hasDescription: !!
|
|
117
|
-
},
|
|
118
|
-
type:
|
|
119
|
-
isRequired:
|
|
117
|
+
"date-time": (e) => {
|
|
118
|
+
let n = t({ colType: e.typeInfo?.type || null }), r = {
|
|
119
|
+
showPinIcon: e.showPinIcon,
|
|
120
|
+
hasDescription: !!e.description
|
|
121
|
+
}, i = e.customWidth ?? a(e.columnName, {
|
|
122
|
+
type: e.typeInfo ?? void 0,
|
|
123
|
+
isRequired: e.isRequired,
|
|
120
124
|
enumeratedValues: null
|
|
121
|
-
},
|
|
125
|
+
}, r);
|
|
122
126
|
return {
|
|
123
|
-
...y(
|
|
124
|
-
minWidth:
|
|
125
|
-
basis:
|
|
127
|
+
...y(e, n),
|
|
128
|
+
minWidth: i,
|
|
129
|
+
basis: i
|
|
126
130
|
};
|
|
127
131
|
},
|
|
128
132
|
text: (e) => ({
|
|
129
|
-
...y(e,
|
|
133
|
+
...y(e, m({
|
|
130
134
|
continuousUpdates: !1,
|
|
131
135
|
deletedValue: void 0,
|
|
132
136
|
parseUserInput: v(e.isRequired)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"columnFactory.js","names":["dateTimeColumn","EnumeratedValue","FlatTypeInfo","SchemaPropertyInfo","CellComponent","CellProps","Column","createTextColumn","floatColumn","keyColumn","autocompleteColumn","autocompleteMultipleEnumColumn","calculateDefaultColumnWidth","HeaderOptions","ColumnHeaderWithTooltip","Tooltip","SmartToyTwoTone","DataGridRow","wrapPasteValueWithSchemaCoercion","getEmptyValue","withChangeIndicatorTooltip","OriginalComponent","T","C","colName","CellWithTooltip","props","$","_c","changeInfo","rowData","__cellChangeInfo","isAgent","category","t0","t1","tooltipText","position","top","right","width","height","zIndex","pointerEvents","t2","focus","fontSize","alignSelf","flexShrink","mr","color","backgroundColor","t3","displayName","ColumnConfig","columnName","description","disabled","typeInfo","enumeratedValues","isRequired","customWidth","showPinIcon","isPinned","onTogglePin","isUpsertKey","schemaPropertyInfo","createDeleteValue","Record","createParseUserInput","value","trimmedValue","trim","createBaseColumn","config","columnImpl","headerOptions","hasDescription","undefined","keyed","component","title","minWidth","basis","grow","shrink","deleteValue","pasteValue","stickyLeft","COLUMN_FACTORIES","multipleEnum","choices","colType","type","limitTags","clearValue","boolean","number","enumerated","date-time","text","continuousUpdates","deletedValue","parseUserInput","cellClassName","getColumnType","length","format","isArray","createColumn","columnType"],"sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"sourcesContent":["import { dateTimeColumn } from '@/components/DataGrid/columns/DateTimeColumn'\nimport { EnumeratedValue } from '@/utils/jsonschema/getEnumeratedValues'\nimport { FlatTypeInfo } from '@/utils/jsonschema/getType'\nimport { SchemaPropertyInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport {\n CellComponent,\n CellProps,\n Column,\n createTextColumn,\n floatColumn,\n keyColumn,\n} from '@sage-bionetworks/react-datasheet-grid'\nimport { autocompleteColumn } from '../columns/AutocompleteColumn'\nimport { autocompleteMultipleEnumColumn } from '../columns/AutocompleteMultipleEnumColumn'\nimport {\n calculateDefaultColumnWidth,\n HeaderOptions,\n} from './calculateColumnWidth'\nimport { ColumnHeaderWithTooltip } from '../components/ColumnHeaderWithTooltip'\nimport { Tooltip } from '@mui/material'\nimport { SmartToyTwoTone } from '@mui/icons-material'\nimport type { DataGridRow } from '../DataGridTypes'\nimport { wrapPasteValueWithSchemaCoercion } from './schemaAwarePasteValue'\nimport { getEmptyValue } from './getEmptyValue'\n\n/**\n * Wraps a column cell component to overlay change-attribution indicators:\n * - Non-agent changes: invisible 7×7px tooltip trigger over the CSS triangle (top-right).\n * - Agent changes: robot icon (1em, vertically centered on the right) with no triangle.\n */\nfunction withChangeIndicatorTooltip<T, C>(\n OriginalComponent: CellComponent<T, C>,\n colName: string,\n): CellComponent<T, C> {\n function CellWithTooltip(props: CellProps<T, C>) {\n const changeInfo = (props.rowData as DataGridRow).__cellChangeInfo?.[\n colName\n ]\n const isAgent =\n changeInfo?.category === 'own-agent' ||\n changeInfo?.category === 'other-agent'\n return (\n <>\n <OriginalComponent {...props} />\n {changeInfo && !isAgent && (\n <Tooltip title={changeInfo.tooltipText} placement=\"top-end\">\n <div\n style={{\n position: 'absolute',\n top: 0,\n right: 0,\n width: 7,\n height: 7,\n zIndex: 21,\n pointerEvents: 'auto',\n }}\n />\n </Tooltip>\n )}\n {isAgent && !props.focus && (\n <Tooltip title={changeInfo.tooltipText} placement=\"left\">\n <SmartToyTwoTone\n sx={{\n fontSize: '1em',\n alignSelf: 'center',\n flexShrink: 0,\n mr: 0.5,\n zIndex: 21,\n pointerEvents: 'auto',\n color: 'grey.400',\n backgroundColor: 'transparent',\n }}\n />\n </Tooltip>\n )}\n </>\n )\n }\n CellWithTooltip.displayName = `CellWithTooltip(${colName})`\n return CellWithTooltip\n}\n\ntype ColumnConfig = {\n columnName: string\n description?: string\n disabled?: boolean\n typeInfo: FlatTypeInfo | null\n enumeratedValues: EnumeratedValue[] | string[] | null\n isRequired: boolean\n customWidth?: number\n showPinIcon?: boolean\n isPinned?: boolean\n onTogglePin?: () => void\n isUpsertKey?: boolean\n /**\n * Optional column-level schema info. When provided, paste behavior coerces\n * empty pasted cells to the schema-correct blank (undefined for optional\n * columns, null for required columns). Omit to preserve the column impl's\n * default paste behavior.\n */\n schemaPropertyInfo?: SchemaPropertyInfo\n}\n\nfunction createDeleteValue(columnName: string, isRequired?: boolean) {\n return ({ rowData }: { rowData: Record<string, unknown> }) => ({\n ...rowData,\n [columnName]: getEmptyValue(isRequired),\n })\n}\n\nfunction createParseUserInput(isRequired?: boolean) {\n return (value: string) => {\n const trimmedValue = value.trim()\n if (trimmedValue === '') {\n return getEmptyValue(isRequired)\n }\n return trimmedValue\n }\n}\n\nfunction createBaseColumn(config: ColumnConfig, columnImpl: any) {\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n undefined, // propertyInfo is not available here, passed from higher level\n headerOptions,\n )\n\n const keyed = keyColumn(config.columnName, columnImpl)\n return {\n ...keyed,\n component: withChangeIndicatorTooltip(keyed.component!, config.columnName),\n title: (\n <ColumnHeaderWithTooltip\n name={config.columnName}\n description={config.description}\n isRequired={config.isRequired}\n isUpsertKey={config.isUpsertKey}\n showPinIcon={config.showPinIcon}\n isPinned={config.isPinned}\n onTogglePin={config.onTogglePin}\n />\n ),\n minWidth: width,\n basis: width,\n grow: 0,\n shrink: 0,\n disabled: config.disabled,\n deleteValue: createDeleteValue(config.columnName, config.isRequired),\n pasteValue: wrapPasteValueWithSchemaCoercion(\n keyed.pasteValue,\n config.columnName,\n config.schemaPropertyInfo,\n ),\n stickyLeft: config.isPinned,\n }\n}\n\nconst COLUMN_FACTORIES = {\n multipleEnum: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteMultipleEnumColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n limitTags: 3,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n boolean: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: [true, false],\n colType: 'boolean',\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n number: (config: ColumnConfig) => {\n return createBaseColumn(config, floatColumn)\n },\n\n enumerated: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n 'date-time': (config: ColumnConfig) => {\n const columnImpl = dateTimeColumn({\n colType: config.typeInfo?.type || null,\n })\n\n // Date-time needs special width calculation\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n {\n type: config.typeInfo ?? undefined,\n isRequired: config.isRequired,\n enumeratedValues: null,\n },\n headerOptions,\n )\n\n return {\n ...createBaseColumn(config, columnImpl),\n minWidth: width,\n basis: width,\n }\n },\n\n text: (config: ColumnConfig) => {\n const columnImpl = createTextColumn({\n continuousUpdates: false,\n deletedValue: undefined,\n parseUserInput: createParseUserInput(config.isRequired),\n })\n\n return {\n ...createBaseColumn(config, columnImpl),\n cellClassName: 'MuiInputBase-input',\n }\n },\n}\n\nfunction getColumnType(\n typeInfo: FlatTypeInfo | null,\n enumeratedValues?: EnumeratedValue[] | string[] | null,\n): keyof typeof COLUMN_FACTORIES {\n if (!typeInfo) {\n return enumeratedValues && enumeratedValues.length > 0\n ? 'enumerated'\n : 'text'\n }\n\n if (typeInfo.format === 'date-time') {\n return 'date-time'\n }\n\n // Handle arrays - check if it's an array of enums\n if (typeInfo.isArray) {\n return 'multipleEnum'\n }\n\n if (typeInfo.type === 'boolean') {\n return 'boolean'\n }\n\n if (typeInfo.type === 'number' || typeInfo.type === 'integer') {\n return 'number'\n }\n\n if (enumeratedValues && enumeratedValues.length > 0) {\n return 'enumerated'\n }\n\n return 'text'\n}\n\nexport function createColumn(config: ColumnConfig): Column {\n const columnType = getColumnType(config.typeInfo, config.enumeratedValues)\n return COLUMN_FACTORIES[columnType](config)\n}\n"],"mappings":";;;;;;;;;;;;;AA8BA,SAASoB,EACPC,GACAG,GACqB;CACrB,SAAAC,EAAAC,GAAA;EAAA,IAAAC,IAAAC,EAAA,EAAA,GACEC,IAAoBH,EAAKI,QAAuBC,mBAC9CP,IAEFQ,IACEH,GAAUI,aAAe,eACzBJ,GAAUI,aAAe,eAAaC;EAAA,AAAAP,EAAA,OAAAD,IAGJQ,IAAAP,EAAA,MAAhCO,IAAA,kBAAC,GAAD,EAAkB,GAAKR,EAAK,CAAA,GAAIC,EAAA,KAAAD,GAAAC,EAAA,KAAAO;EAAA,IAAAC;EAAA,AAAAR,EAAA,OAAAE,KAAAF,EAAA,OAAAK,KAC/BG,IAAAN,KAAA,CAAeG,KACd,kBAAC,GAAD;GAAgB,OAAAH,EAAUO;GAAwB,WAAA;aAChD,kBAAA,OAAA,EACS,OAAA;IAAAC,UACK;IAAUC,KACf;IAACC,OACC;IAACC,OACD;IAACC,QACA;IAACC,QACD;IAAEC,eACK;GACjB,EAAC,CAAA;EAVG,CAAA,GAaThB,EAAA,KAAAE,GAAAF,EAAA,KAAAK,GAAAL,EAAA,KAAAQ,KAAAA,IAAAR,EAAA;EAAA,IAAAiB;EAAA,AAAAjB,EAAA,OAAAE,KAAAF,EAAA,OAAAK,KAAAL,EAAA,OAAAD,EAAAmB,SACAD,IAAAZ,KAAA,CAAYN,EAAKmB,SAChB,kBAAC,GAAD;GAAgB,OAAAhB,EAAUO;GAAwB,WAAA;aAChD,kBAAC,GAAD,EACM,IAAA;IAAAU,UACQ;IAAKC,WACJ;IAAQC,YACP;IAACC,IACT;IAAGP,QACC;IAAEC,eACK;IAAMO,OACd;IAAUC,iBACA;GACnB,EAAC,CAAA;EAXG,CAAA,GAcTxB,EAAA,KAAAE,GAAAF,EAAA,KAAAK,GAAAL,EAAA,KAAAD,EAAAmB,OAAAlB,EAAA,KAAAiB,KAAAA,IAAAjB,EAAA;EAAA,IAAAyB;EACA,OADAzB,EAAA,OAAAO,KAAAP,EAAA,QAAAQ,KAAAR,EAAA,QAAAiB,KAhCHQ,IAAA,kBAAA,GAAA,EAAA,UAAA;GACElB;GACCC;GAeAS;EAeA,EAAA,CAAA,GACAjB,EAAA,KAAAO,GAAAP,EAAA,MAAAQ,GAAAR,EAAA,MAAAiB,GAAAjB,EAAA,MAAAyB,KAAAA,IAAAzB,EAAA,KAjCHyB;CAiCG;CAIP,OADA3B,EAAgB4B,cAAc,mBAAmB7B,EAAO,IACjDC;AACT;AAuBA,SAAS0C,EAAkBZ,GAAoBK,GAAsB;CACnE,QAAQ,EAAE9B,kBAAqD;EAC7D,GAAGA;GACFyB,IAAapC,EAAcyC,CAAU;CACxC;AACF;AAEA,SAASS,EAAqBT,GAAsB;CAClD,QAAQU,MAAkB;EACxB,IAAMC,IAAeD,EAAME,KAAK;EAIhC,OAHID,MAAiB,KACZpD,EAAcyC,CAAU,IAE1BW;CACT;AACF;AAEA,SAASE,EAAiBC,GAAsBC,GAAiB;CAC/D,IAAMC,IAA+B;EACnCd,aAAaY,EAAOZ;EACpBe,gBAAgB,CAAC,CAACH,EAAOlB;CAC3B,GAEMhB,IACJkC,EAAOb,eACPjD,EACE8D,EAAOnB,YACPuB,KAAAA,GACAF,CACF,GAEIG,IAAQtE,EAAUiE,EAAOnB,YAAYoB,CAAU;CACrD,OAAO;EACL,GAAGI;EACHC,WAAW5D,EAA2B2D,EAAMC,WAAYN,EAAOnB,UAAU;EACzE0B,OACE,kBAAC,GAAD;GACE,MAAMP,EAAOnB;GACb,aAAamB,EAAOlB;GACpB,YAAYkB,EAAOd;GACnB,aAAac,EAAOT;GACpB,aAAaS,EAAOZ;GACpB,UAAUY,EAAOX;GACjB,aAAaW,EAAOV;EAAY,CAAA;EAGpCkB,UAAU1C;EACV2C,OAAO3C;EACP4C,MAAM;EACNC,QAAQ;EACR5B,UAAUiB,EAAOjB;EACjB6B,aAAanB,EAAkBO,EAAOnB,YAAYmB,EAAOd,UAAU;EACnE2B,YAAYrE,EACV6D,EAAMQ,YACNb,EAAOnB,YACPmB,EAAOR,kBACT;EACAsB,YAAYd,EAAOX;CACrB;AACF;AAEA,IAAM0B,IAAmB;CACvBC,eAAehB,MACND,EACLC,GACA/D,EAA+B;EAC7BgF,SAASjB,EAAOf,oBAAoB,CAAA;EACpCiC,SAASlB,EAAOhB,UAAUmC,QAAQ;EAClCC,WAAW;EACXC,YAAY5E,EAAcuD,EAAOd,UAAU;CAC7C,CAAC,CACH;CAGFoC,UAAUtB,MACDD,EACLC,GACAhE,EAAmB;EACjBiF,SAAS,CAAC,IAAM,EAAK;EACrBC,SAAS;EACTG,YAAY5E,EAAcuD,EAAOd,UAAU;CAC7C,CAAC,CACH;CAGFqC,SAASvB,MACAD,EAAiBC,GAAQlE,CAAW;CAG7C0F,aAAaxB,MACJD,EACLC,GACAhE,EAAmB;EACjBiF,SAASjB,EAAOf,oBAAoB,CAAA;EACpCiC,SAASlB,EAAOhB,UAAUmC,QAAQ;EAClCE,YAAY5E,EAAcuD,EAAOd,UAAU;CAC7C,CAAC,CACH;CAGF,cAAcc,MAAyB;EACrC,IAAMC,IAAa3E,EAAe,EAChC4F,SAASlB,EAAOhB,UAAUmC,QAAQ,KACpC,CAAC,GAGKjB,IAA+B;GACnCd,aAAaY,EAAOZ;GACpBe,gBAAgB,CAAC,CAACH,EAAOlB;EAC3B,GAEMhB,IACJkC,EAAOb,eACPjD,EACE8D,EAAOnB,YACP;GACEsC,MAAMnB,EAAOhB,YAAYoB,KAAAA;GACzBlB,YAAYc,EAAOd;GACnBD,kBAAkB;EACpB,GACAiB,CACF;EAEF,OAAO;GACL,GAAGH,EAAiBC,GAAQC,CAAU;GACtCO,UAAU1C;GACV2C,OAAO3C;EACT;CACF;CAEA4D,OAAO1B,OAOE;EACL,GAAGD,EAAiBC,GAPHnE,EAAiB;GAClC8F,mBAAmB;GACnBC,cAAcxB,KAAAA;GACdyB,gBAAgBlC,EAAqBK,EAAOd,UAAU;EACxD,CAG8Be,CAAU;EACtC6B,eAAe;CACjB;AAEJ;AAEA,SAASC,EACP/C,GACAC,GAC+B;CA4B/B,OA3BKD,IAMDA,EAASiD,WAAW,cACf,cAILjD,EAASkD,UACJ,iBAGLlD,EAASmC,SAAS,YACb,YAGLnC,EAASmC,SAAS,YAAYnC,EAASmC,SAAS,YAC3C,WAGLlC,KAAoBA,EAAiB+C,SAAS,IACzC,eAGF,SA1BE/C,KAAoBA,EAAiB+C,SAAS,IACjD,eACA;AAyBR;AAEA,SAAgBG,EAAanC,GAA8B;CAEzD,OAAOe,EADYgB,EAAc/B,EAAOhB,UAAUgB,EAAOf,gBACjCmD,GAAYpC,CAAM;AAC5C"}
|
|
1
|
+
{"version":3,"file":"columnFactory.js","names":["dateTimeColumn","EnumeratedValue","FlatTypeInfo","SchemaPropertyInfo","CellComponent","CellProps","Column","createTextColumn","keyColumn","autocompleteColumn","autocompleteMultipleEnumColumn","numberColumn","calculateDefaultColumnWidth","HeaderOptions","ColumnHeaderWithTooltip","Tooltip","SmartToyTwoTone","DataGridRow","wrapPasteValueWithSchemaCoercion","getEmptyValue","withChangeIndicatorTooltip","OriginalComponent","T","C","colName","CellWithTooltip","props","$","_c","changeInfo","rowData","__cellChangeInfo","isAgent","category","t0","t1","tooltipText","position","top","right","width","height","zIndex","pointerEvents","t2","focus","fontSize","alignSelf","flexShrink","mr","color","backgroundColor","t3","displayName","ColumnConfig","columnName","description","disabled","typeInfo","enumeratedValues","isRequired","customWidth","showPinIcon","isPinned","onTogglePin","isUpsertKey","schemaPropertyInfo","createDeleteValue","Record","createParseUserInput","value","trimmedValue","trim","createBaseColumn","config","columnImpl","headerOptions","hasDescription","undefined","keyed","component","title","minWidth","basis","grow","shrink","deleteValue","pasteValue","stickyLeft","COLUMN_FACTORIES","multipleEnum","choices","colType","type","limitTags","clearValue","boolean","number","enumerated","date-time","text","continuousUpdates","deletedValue","parseUserInput","cellClassName","getColumnType","length","format","isArray","createColumn","columnType"],"sources":["../../../../src/components/DataGrid/utils/columnFactory.tsx"],"sourcesContent":["import { dateTimeColumn } from '@/components/DataGrid/columns/DateTimeColumn'\nimport { EnumeratedValue } from '@/utils/jsonschema/getEnumeratedValues'\nimport { FlatTypeInfo } from '@/utils/jsonschema/getType'\nimport { SchemaPropertyInfo } from '@/utils/jsonschema/getSchemaPropertyInfo'\nimport {\n CellComponent,\n CellProps,\n Column,\n createTextColumn,\n keyColumn,\n} from '@sage-bionetworks/react-datasheet-grid'\nimport { autocompleteColumn } from '../columns/AutocompleteColumn'\nimport { autocompleteMultipleEnumColumn } from '../columns/AutocompleteMultipleEnumColumn'\nimport { numberColumn } from '../columns/NumberColumn'\nimport {\n calculateDefaultColumnWidth,\n HeaderOptions,\n} from './calculateColumnWidth'\nimport { ColumnHeaderWithTooltip } from '../components/ColumnHeaderWithTooltip'\nimport { Tooltip } from '@mui/material'\nimport { SmartToyTwoTone } from '@mui/icons-material'\nimport type { DataGridRow } from '../DataGridTypes'\nimport { wrapPasteValueWithSchemaCoercion } from './schemaAwarePasteValue'\nimport { getEmptyValue } from './getEmptyValue'\n\n/**\n * Wraps a column cell component to overlay change-attribution indicators:\n * - Non-agent changes: invisible 7×7px tooltip trigger over the CSS triangle (top-right).\n * - Agent changes: robot icon (1em, vertically centered on the right) with no triangle.\n */\nfunction withChangeIndicatorTooltip<T, C>(\n OriginalComponent: CellComponent<T, C>,\n colName: string,\n): CellComponent<T, C> {\n function CellWithTooltip(props: CellProps<T, C>) {\n const changeInfo = (props.rowData as DataGridRow).__cellChangeInfo?.[\n colName\n ]\n const isAgent =\n changeInfo?.category === 'own-agent' ||\n changeInfo?.category === 'other-agent'\n return (\n <>\n <OriginalComponent {...props} />\n {changeInfo && !isAgent && (\n <Tooltip title={changeInfo.tooltipText} placement=\"top-end\">\n <div\n style={{\n position: 'absolute',\n top: 0,\n right: 0,\n width: 7,\n height: 7,\n zIndex: 21,\n pointerEvents: 'auto',\n }}\n />\n </Tooltip>\n )}\n {isAgent && !props.focus && (\n <Tooltip title={changeInfo.tooltipText} placement=\"left\">\n <SmartToyTwoTone\n sx={{\n fontSize: '1em',\n alignSelf: 'center',\n flexShrink: 0,\n mr: 0.5,\n zIndex: 21,\n pointerEvents: 'auto',\n color: 'grey.400',\n backgroundColor: 'transparent',\n }}\n />\n </Tooltip>\n )}\n </>\n )\n }\n CellWithTooltip.displayName = `CellWithTooltip(${colName})`\n return CellWithTooltip\n}\n\ntype ColumnConfig = {\n columnName: string\n description?: string\n disabled?: boolean\n typeInfo: FlatTypeInfo | null\n enumeratedValues: EnumeratedValue[] | string[] | null\n isRequired: boolean\n customWidth?: number\n showPinIcon?: boolean\n isPinned?: boolean\n onTogglePin?: () => void\n isUpsertKey?: boolean\n /**\n * Optional column-level schema info. When provided, paste behavior coerces\n * empty pasted cells to the schema-correct blank (undefined for optional\n * columns, null for required columns). Omit to preserve the column impl's\n * default paste behavior.\n */\n schemaPropertyInfo?: SchemaPropertyInfo\n}\n\nfunction createDeleteValue(columnName: string, isRequired?: boolean) {\n return ({ rowData }: { rowData: Record<string, unknown> }) => ({\n ...rowData,\n [columnName]: getEmptyValue(isRequired),\n })\n}\n\nfunction createParseUserInput(isRequired?: boolean) {\n return (value: string) => {\n const trimmedValue = value.trim()\n if (trimmedValue === '') {\n return getEmptyValue(isRequired)\n }\n return trimmedValue\n }\n}\n\nfunction createBaseColumn(config: ColumnConfig, columnImpl: any) {\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n undefined, // propertyInfo is not available here, passed from higher level\n headerOptions,\n )\n\n const keyed = keyColumn(config.columnName, columnImpl)\n return {\n ...keyed,\n component: withChangeIndicatorTooltip(keyed.component!, config.columnName),\n title: (\n <ColumnHeaderWithTooltip\n name={config.columnName}\n description={config.description}\n isRequired={config.isRequired}\n isUpsertKey={config.isUpsertKey}\n showPinIcon={config.showPinIcon}\n isPinned={config.isPinned}\n onTogglePin={config.onTogglePin}\n />\n ),\n minWidth: width,\n basis: width,\n grow: 0,\n shrink: 0,\n disabled: config.disabled,\n deleteValue: createDeleteValue(config.columnName, config.isRequired),\n pasteValue: wrapPasteValueWithSchemaCoercion(\n keyed.pasteValue,\n config.columnName,\n config.schemaPropertyInfo,\n ),\n stickyLeft: config.isPinned,\n }\n}\n\nconst COLUMN_FACTORIES = {\n multipleEnum: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteMultipleEnumColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n limitTags: 3,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n boolean: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: [true, false],\n colType: 'boolean',\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n number: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n numberColumn({\n colType: config.typeInfo?.type,\n isRequired: config.isRequired,\n }),\n )\n },\n\n enumerated: (config: ColumnConfig) => {\n return createBaseColumn(\n config,\n autocompleteColumn({\n choices: config.enumeratedValues ?? [],\n colType: config.typeInfo?.type || null,\n clearValue: getEmptyValue(config.isRequired),\n }),\n )\n },\n\n 'date-time': (config: ColumnConfig) => {\n const columnImpl = dateTimeColumn({\n colType: config.typeInfo?.type || null,\n })\n\n // Date-time needs special width calculation\n const headerOptions: HeaderOptions = {\n showPinIcon: config.showPinIcon,\n hasDescription: !!config.description,\n }\n\n const width =\n config.customWidth ??\n calculateDefaultColumnWidth(\n config.columnName,\n {\n type: config.typeInfo ?? undefined,\n isRequired: config.isRequired,\n enumeratedValues: null,\n },\n headerOptions,\n )\n\n return {\n ...createBaseColumn(config, columnImpl),\n minWidth: width,\n basis: width,\n }\n },\n\n text: (config: ColumnConfig) => {\n const columnImpl = createTextColumn({\n continuousUpdates: false,\n deletedValue: undefined,\n parseUserInput: createParseUserInput(config.isRequired),\n })\n\n return {\n ...createBaseColumn(config, columnImpl),\n cellClassName: 'MuiInputBase-input',\n }\n },\n}\n\nfunction getColumnType(\n typeInfo: FlatTypeInfo | null,\n enumeratedValues?: EnumeratedValue[] | string[] | null,\n): keyof typeof COLUMN_FACTORIES {\n if (!typeInfo) {\n return enumeratedValues && enumeratedValues.length > 0\n ? 'enumerated'\n : 'text'\n }\n\n if (typeInfo.format === 'date-time') {\n return 'date-time'\n }\n\n // Handle arrays - check if it's an array of enums\n if (typeInfo.isArray) {\n return 'multipleEnum'\n }\n\n if (typeInfo.type === 'boolean') {\n return 'boolean'\n }\n\n if (typeInfo.type === 'number' || typeInfo.type === 'integer') {\n return 'number'\n }\n\n if (enumeratedValues && enumeratedValues.length > 0) {\n return 'enumerated'\n }\n\n return 'text'\n}\n\nexport function createColumn(config: ColumnConfig): Column {\n const columnType = getColumnType(config.typeInfo, config.enumeratedValues)\n return COLUMN_FACTORIES[columnType](config)\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeDefaultColumnOrder.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/utils/computeDefaultColumnOrder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"computeDefaultColumnOrder.d.ts","sourceRoot":"","sources":["../../../../src/components/DataGrid/utils/computeDefaultColumnOrder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EAAE,EACrB,UAAU,EAAE,WAAW,GAAG,SAAS,EACnC,oBAAoB,CAAC,EAAE,MAAM,EAAE,GAC9B,MAAM,EAAE,CAuBV"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
+
import { collectTopLevelProperties as e } from "../../../utils/jsonschema/collectTopLevelProperties.js";
|
|
1
2
|
//#region src/components/DataGrid/utils/computeDefaultColumnOrder.ts
|
|
2
|
-
function
|
|
3
|
-
let
|
|
4
|
-
let n =
|
|
5
|
-
n !== -1 && !
|
|
3
|
+
function t(t, n, r) {
|
|
4
|
+
let i = Object.keys(e(n)), a = [], o = /* @__PURE__ */ new Set(), s = (e) => {
|
|
5
|
+
let n = t.indexOf(e);
|
|
6
|
+
n !== -1 && !o.has(n) && (a.push(n), o.add(n));
|
|
6
7
|
};
|
|
7
|
-
return
|
|
8
|
-
|
|
9
|
-
}),
|
|
8
|
+
return r?.forEach(s), i.forEach(s), t.forEach((e, t) => {
|
|
9
|
+
o.has(t) || a.push(t);
|
|
10
|
+
}), a;
|
|
10
11
|
}
|
|
11
12
|
//#endregion
|
|
12
|
-
export {
|
|
13
|
+
export { t as computeDefaultColumnOrder };
|
|
13
14
|
|
|
14
15
|
//# sourceMappingURL=computeDefaultColumnOrder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeDefaultColumnOrder.js","names":["JSONSchema7","computeDefaultColumnOrder","columnNames","jsonSchema","upsertKeyColumnNames","schemaPropertyNames","
|
|
1
|
+
{"version":3,"file":"computeDefaultColumnOrder.js","names":["collectTopLevelProperties","JSONSchema7","computeDefaultColumnOrder","columnNames","jsonSchema","upsertKeyColumnNames","schemaPropertyNames","Object","keys","orderedIndices","seen","Set","addColumnByName","name","index","indexOf","has","push","add","forEach","_"],"sources":["../../../../src/components/DataGrid/utils/computeDefaultColumnOrder.ts"],"sourcesContent":["import { collectTopLevelProperties } from '@/utils/jsonschema/collectTopLevelProperties'\nimport { JSONSchema7 } from 'json-schema'\n\n/**\n * Computes the \"default\" column display order: upsert key columns first (in the order given),\n * then the order properties are defined in the JSON schema, with any remaining columns appended\n * afterward in their identity-index order.\n */\nexport function computeDefaultColumnOrder(\n columnNames: string[],\n jsonSchema: JSONSchema7 | undefined,\n upsertKeyColumnNames?: string[],\n): number[] {\n const schemaPropertyNames = Object.keys(collectTopLevelProperties(jsonSchema))\n const orderedIndices: number[] = []\n const seen = new Set<number>()\n\n const addColumnByName = (name: string) => {\n const index = columnNames.indexOf(name)\n if (index !== -1 && !seen.has(index)) {\n orderedIndices.push(index)\n seen.add(index)\n }\n }\n\n upsertKeyColumnNames?.forEach(addColumnByName)\n schemaPropertyNames.forEach(addColumnByName)\n\n columnNames.forEach((_, index) => {\n if (!seen.has(index)) {\n orderedIndices.push(index)\n }\n })\n\n return orderedIndices\n}\n"],"mappings":";;AAQA,SAAgBE,EACdC,GACAC,GACAC,GACU;CACV,IAAMC,IAAsBC,OAAOC,KAAKR,EAA0BI,CAAU,CAAC,GACvEK,IAA2B,CAAA,GAC3BC,oBAAO,IAAIC,IAAY,GAEvBC,KAAmBC,MAAiB;EACxC,IAAMC,IAAQX,EAAYY,QAAQF,CAAI;EACtC,AAAIC,MAAU,MAAM,CAACJ,EAAKM,IAAIF,CAAK,MACjCL,EAAeQ,KAAKH,CAAK,GACzBJ,EAAKQ,IAAIJ,CAAK;CAElB;CAWA,OATAT,GAAsBc,QAAQP,CAAe,GAC7CN,EAAoBa,QAAQP,CAAe,GAE3CT,EAAYgB,SAASC,GAAGN,MAAU;EAChC,AAAKJ,EAAKM,IAAIF,CAAK,KACjBL,EAAeQ,KAAKH,CAAK;CAE7B,CAAC,GAEML;AACT"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { DatasetHostingType } from './DatasetHosting';
|
|
2
|
+
export type DatasetDownloadButtonProps = {
|
|
3
|
+
/** The dataset entity id (synId); required to offer the download action. */
|
|
4
|
+
entityId?: string;
|
|
5
|
+
/** The dataset name, shown in the download confirmation. */
|
|
6
|
+
name: string;
|
|
7
|
+
/**
|
|
8
|
+
* The dataset's hosting type. Accepts a raw annotation value (possibly blank,
|
|
9
|
+
* null, or unrecognized); anything unrecognized is treated as `synapse`.
|
|
10
|
+
*/
|
|
11
|
+
hosting?: DatasetHostingType | string | null;
|
|
12
|
+
/** Name of the external repository (e.g. "GEO", "dbGaP"), shown in the label/tooltip. */
|
|
13
|
+
repository?: string;
|
|
14
|
+
/** Destination for the action when the dataset is not downloadable (e.g. dbGaP/EGA). */
|
|
15
|
+
externalUrl?: string;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Called when an authenticated user clicks a downloadable-hosting button.
|
|
19
|
+
* Owners of the button render the `EntityDownloadConfirmation` themselves and
|
|
20
|
+
* toggle it from this callback, so the confirmation banner can be shared with
|
|
21
|
+
* other download entry points on the same card (e.g. the customSecondaryLabel
|
|
22
|
+
* "Click here to add to Synapse download list" link).
|
|
23
|
+
*/
|
|
24
|
+
onDownloadClick?: () => void;
|
|
25
|
+
/** Disables the button while an owner-managed download flow is in progress. */
|
|
26
|
+
isDownloading?: boolean;
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* The hosting-aware primary action for a dataset.
|
|
30
|
+
* - downloadable types add the dataset to the user's download list.
|
|
31
|
+
* When signed out, the user is prompted to sign in.
|
|
32
|
+
* - `external-access` swaps in an "Access at {repository}" link-out
|
|
33
|
+
* - `unavailable` is a disabled, non-actionable indicator
|
|
34
|
+
*
|
|
35
|
+
* Its appearance follows the nearest `CardActionButtonStyleContext` (via
|
|
36
|
+
* `GenericCardActionButton`), so it matches the card's other action buttons.
|
|
37
|
+
*/
|
|
38
|
+
export declare function DatasetDownloadButton(props: DatasetDownloadButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
39
|
+
export default DatasetDownloadButton;
|
|
40
|
+
//# sourceMappingURL=DatasetDownloadButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatasetDownloadButton.d.ts","sourceRoot":"","sources":["../../../src/components/DatasetHosting/DatasetDownloadButton.tsx"],"names":[],"mappings":"AAaA,OAAO,EAGL,kBAAkB,EAGnB,MAAM,kBAAkB,CAAA;AAWzB,MAAM,MAAM,0BAA0B,GAAG;IACvC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAA;IACZ;;;OAGG;IACH,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAAA;IAC5C,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAA;IAC5B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB,CAAA;AA8BD;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,0BAA0B,2CAsItE;AAED,eAAe,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { SRC_SIGN_IN_CLASS as e } from "../../utils/SynapseConstants.js";
|
|
2
|
+
import { useSynapseContext as t } from "../../utils/context/SynapseContext.js";
|
|
3
|
+
import "../../utils/index.js";
|
|
4
|
+
import { TargetEnum as n } from "../../utils/html/TargetEnum.js";
|
|
5
|
+
import r from "../GenericCard/GenericCardActionButton.js";
|
|
6
|
+
import { DATASET_HOSTING_CONFIG as i, fillRepository as a, normalizeHosting as o } from "./DatasetHosting.js";
|
|
7
|
+
import { useState as s } from "react";
|
|
8
|
+
import { Tooltip as c, Typography as l } from "@mui/material";
|
|
9
|
+
import { jsx as u } from "react/jsx-runtime";
|
|
10
|
+
import d from "@mui/icons-material/GetAppTwoTone";
|
|
11
|
+
import f from "@mui/icons-material/PublicOutlined";
|
|
12
|
+
import p from "@mui/icons-material/OpenInNew";
|
|
13
|
+
import m from "@mui/icons-material/LayersOutlined";
|
|
14
|
+
import h from "@mui/icons-material/BlockOutlined";
|
|
15
|
+
import g from "@mui/icons-material/AssuredWorkloadOutlined";
|
|
16
|
+
import _ from "@mui/icons-material/LoginOutlined";
|
|
17
|
+
//#region src/components/DatasetHosting/DatasetDownloadButton.tsx
|
|
18
|
+
var v = {
|
|
19
|
+
download: d,
|
|
20
|
+
cloud: g,
|
|
21
|
+
external: f,
|
|
22
|
+
launch: p,
|
|
23
|
+
mixed: m,
|
|
24
|
+
unavailable: h
|
|
25
|
+
};
|
|
26
|
+
function y(e, t) {
|
|
27
|
+
return e.label.includes("{repository}") && !t ? e.labelWithoutRepository ?? e.label : a(e.label, t) ?? e.label;
|
|
28
|
+
}
|
|
29
|
+
var b = "320px", x = {
|
|
30
|
+
overflow: "hidden",
|
|
31
|
+
textOverflow: "ellipsis",
|
|
32
|
+
whiteSpace: "nowrap",
|
|
33
|
+
minWidth: 0,
|
|
34
|
+
textTransform: "none",
|
|
35
|
+
color: "inherit"
|
|
36
|
+
};
|
|
37
|
+
function S(d) {
|
|
38
|
+
let { entityId: f, name: p, hosting: m, repository: h, externalUrl: g, disabled: S, onDownloadClick: C, isDownloading: w } = d, { isAuthenticated: T } = t(), E = i[o(m)], D = y(E, h), O = a(E.tooltip, h), k = v[E.icon], [A, j] = s(!1), M = /* @__PURE__ */ u(l, {
|
|
39
|
+
variant: "buttonLink",
|
|
40
|
+
sx: x,
|
|
41
|
+
children: D
|
|
42
|
+
}), N = `${D}, ${p}`;
|
|
43
|
+
if (E.downloadable && f) {
|
|
44
|
+
if (!T) {
|
|
45
|
+
let t = A ? _ : k, n = A ? "Sign in to download" : D, i = /* @__PURE__ */ u(r, {
|
|
46
|
+
variant: "outlined",
|
|
47
|
+
color: A ? "error" : "primary",
|
|
48
|
+
"aria-label": `${n}, ${p}`,
|
|
49
|
+
className: A ? e : void 0,
|
|
50
|
+
startIcon: /* @__PURE__ */ u(t, { sx: { fontSize: "16px" } }),
|
|
51
|
+
onClick: (e) => {
|
|
52
|
+
A || (e.stopPropagation(), j(!0));
|
|
53
|
+
},
|
|
54
|
+
sx: {
|
|
55
|
+
maxWidth: b,
|
|
56
|
+
textTransform: "none"
|
|
57
|
+
},
|
|
58
|
+
children: /* @__PURE__ */ u(l, {
|
|
59
|
+
variant: "buttonLink",
|
|
60
|
+
sx: x,
|
|
61
|
+
children: n
|
|
62
|
+
})
|
|
63
|
+
});
|
|
64
|
+
return !A && O ? /* @__PURE__ */ u(c, {
|
|
65
|
+
title: O,
|
|
66
|
+
arrow: !0,
|
|
67
|
+
placement: "top",
|
|
68
|
+
children: /* @__PURE__ */ u("span", { children: i })
|
|
69
|
+
}) : i;
|
|
70
|
+
}
|
|
71
|
+
let t = /* @__PURE__ */ u(r, {
|
|
72
|
+
variant: "outlined",
|
|
73
|
+
"aria-label": N,
|
|
74
|
+
startIcon: /* @__PURE__ */ u(k, { sx: { fontSize: "16px" } }),
|
|
75
|
+
onClick: C,
|
|
76
|
+
disabled: S || w,
|
|
77
|
+
sx: {
|
|
78
|
+
maxWidth: b,
|
|
79
|
+
textTransform: "none"
|
|
80
|
+
},
|
|
81
|
+
children: M
|
|
82
|
+
});
|
|
83
|
+
return O ? /* @__PURE__ */ u(c, {
|
|
84
|
+
title: O,
|
|
85
|
+
arrow: !0,
|
|
86
|
+
placement: "top",
|
|
87
|
+
children: /* @__PURE__ */ u("span", { children: t })
|
|
88
|
+
}) : t;
|
|
89
|
+
}
|
|
90
|
+
let P = E.isExternalLink && g ? /* @__PURE__ */ u(r, {
|
|
91
|
+
variant: "outlined",
|
|
92
|
+
"aria-label": N,
|
|
93
|
+
href: g,
|
|
94
|
+
target: n.NEW_WINDOW,
|
|
95
|
+
rel: "noopener noreferrer",
|
|
96
|
+
startIcon: /* @__PURE__ */ u(k, { sx: { fontSize: "16px" } }),
|
|
97
|
+
sx: {
|
|
98
|
+
maxWidth: b,
|
|
99
|
+
textTransform: "none",
|
|
100
|
+
"&:visited": { color: "primary.main" }
|
|
101
|
+
},
|
|
102
|
+
children: M
|
|
103
|
+
}) : /* @__PURE__ */ u(r, {
|
|
104
|
+
variant: "outlined",
|
|
105
|
+
"aria-label": N,
|
|
106
|
+
disabled: !0,
|
|
107
|
+
startIcon: /* @__PURE__ */ u(k, { sx: { fontSize: "16px" } }),
|
|
108
|
+
sx: {
|
|
109
|
+
maxWidth: b,
|
|
110
|
+
textTransform: "none"
|
|
111
|
+
},
|
|
112
|
+
children: M
|
|
113
|
+
});
|
|
114
|
+
return O ? /* @__PURE__ */ u(c, {
|
|
115
|
+
title: O,
|
|
116
|
+
arrow: !0,
|
|
117
|
+
placement: "top",
|
|
118
|
+
children: /* @__PURE__ */ u("span", { children: P })
|
|
119
|
+
}) : P;
|
|
120
|
+
}
|
|
121
|
+
//#endregion
|
|
122
|
+
export { S as DatasetDownloadButton, S as default };
|
|
123
|
+
|
|
124
|
+
//# sourceMappingURL=DatasetDownloadButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatasetDownloadButton.js","names":[],"sources":["../../../src/components/DatasetHosting/DatasetDownloadButton.tsx"],"sourcesContent":["import { Tooltip, Typography } from '@mui/material'\nimport GetAppTwoTone from '@mui/icons-material/GetAppTwoTone'\nimport PublicOutlined from '@mui/icons-material/PublicOutlined'\nimport OpenInNew from '@mui/icons-material/OpenInNew'\nimport LayersOutlined from '@mui/icons-material/LayersOutlined'\nimport BlockOutlined from '@mui/icons-material/BlockOutlined'\nimport AssuredWorkloadOutlined from '@mui/icons-material/AssuredWorkloadOutlined'\nimport LoginOutlined from '@mui/icons-material/LoginOutlined'\nimport { ReactNode, useState } from 'react'\nimport { TargetEnum } from '@/utils/html/TargetEnum'\nimport { SRC_SIGN_IN_CLASS } from '@/utils/SynapseConstants'\nimport { useSynapseContext } from '@/utils'\nimport GenericCardActionButton from '../GenericCard/GenericCardActionButton'\nimport {\n DATASET_HOSTING_CONFIG,\n DatasetHostingConfig,\n DatasetHostingType,\n fillRepository,\n normalizeHosting,\n} from './DatasetHosting'\n\nconst ICONS = {\n download: GetAppTwoTone,\n cloud: AssuredWorkloadOutlined,\n external: PublicOutlined,\n launch: OpenInNew,\n mixed: LayersOutlined,\n unavailable: BlockOutlined,\n} as const\n\nexport type DatasetDownloadButtonProps = {\n /** The dataset entity id (synId); required to offer the download action. */\n entityId?: string\n /** The dataset name, shown in the download confirmation. */\n name: string\n /**\n * The dataset's hosting type. Accepts a raw annotation value (possibly blank,\n * null, or unrecognized); anything unrecognized is treated as `synapse`.\n */\n hosting?: DatasetHostingType | string | null\n /** Name of the external repository (e.g. \"GEO\", \"dbGaP\"), shown in the label/tooltip. */\n repository?: string\n /** Destination for the action when the dataset is not downloadable (e.g. dbGaP/EGA). */\n externalUrl?: string\n disabled?: boolean\n /**\n * Called when an authenticated user clicks a downloadable-hosting button.\n * Owners of the button render the `EntityDownloadConfirmation` themselves and\n * toggle it from this callback, so the confirmation banner can be shared with\n * other download entry points on the same card (e.g. the customSecondaryLabel\n * \"Click here to add to Synapse download list\" link).\n */\n onDownloadClick?: () => void\n /** Disables the button while an owner-managed download flow is in progress. */\n isDownloading?: boolean\n}\n\nfunction resolveLabel(\n config: DatasetHostingConfig,\n repository?: string,\n): string {\n if (config.label.includes('{repository}') && !repository) {\n return config.labelWithoutRepository ?? config.label\n }\n return fillRepository(config.label, repository) ?? config.label\n}\n\nconst MAX_WIDTH = '320px'\n\nconst ELLIPSIS = {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n minWidth: 0,\n} as const\n\n// The composed labels (\"Download from GEO\", \"Access at dbGaP\") are already\n// sentence-cased, so opt out of the theme button's capitalize transform. `color:\n// inherit` lets the label take the button's color so text and icon always match.\nconst LABEL_SX = {\n ...ELLIPSIS,\n textTransform: 'none',\n color: 'inherit',\n} as const\n\n/**\n * The hosting-aware primary action for a dataset.\n * - downloadable types add the dataset to the user's download list.\n * When signed out, the user is prompted to sign in.\n * - `external-access` swaps in an \"Access at {repository}\" link-out\n * - `unavailable` is a disabled, non-actionable indicator\n *\n * Its appearance follows the nearest `CardActionButtonStyleContext` (via\n * `GenericCardActionButton`), so it matches the card's other action buttons.\n */\nexport function DatasetDownloadButton(props: DatasetDownloadButtonProps) {\n const {\n entityId,\n name,\n hosting,\n repository,\n externalUrl,\n disabled,\n onDownloadClick,\n isDownloading,\n } = props\n const { isAuthenticated } = useSynapseContext()\n const config = DATASET_HOSTING_CONFIG[normalizeHosting(hosting)]\n\n const label = resolveLabel(config, repository)\n const caveat = fillRepository(config.tooltip, repository)\n const Icon = ICONS[config.icon]\n\n const [signInPrompt, setSignInPrompt] = useState(false)\n\n const labelEl = (\n <Typography variant=\"buttonLink\" sx={LABEL_SX}>\n {label}\n </Typography>\n )\n // Every card's button shows the same visible label (\"Download\"), so include the\n // dataset name in the accessible name to distinguish them for screen readers.\n const ariaLabel = `${label}, ${name}`\n\n // Downloadable: a single button that adds the dataset to the download list.\n if (config.downloadable && entityId) {\n // Signed out: keep the button clickable as a call to action rather than\n // greying it out. The first click flips it to a red \"Sign in to download\"\n // prompt that opens the app's sign-in modal (SRC_SIGN_IN_CLASS).\n if (!isAuthenticated) {\n const PromptIcon = signInPrompt ? LoginOutlined : Icon\n const promptLabel = signInPrompt ? 'Sign in to download' : label\n const button = (\n <GenericCardActionButton\n variant=\"outlined\"\n color={signInPrompt ? 'error' : 'primary'}\n aria-label={`${promptLabel}, ${name}`}\n className={signInPrompt ? SRC_SIGN_IN_CLASS : undefined}\n startIcon={<PromptIcon sx={{ fontSize: '16px' }} />}\n onClick={event => {\n if (!signInPrompt) {\n // Swallow this first click: React adds SRC_SIGN_IN_CLASS during the\n // flush, before the event bubbles to the window-level sign-in\n // handler, which would otherwise fire on this same click. The next\n // click on the red CTA bubbles through and triggers sign-in.\n event.stopPropagation()\n setSignInPrompt(true)\n }\n }}\n sx={{ maxWidth: MAX_WIDTH, textTransform: 'none' }}\n >\n <Typography variant=\"buttonLink\" sx={LABEL_SX}>\n {promptLabel}\n </Typography>\n </GenericCardActionButton>\n )\n // Before the prompt, keep the hosting caveat tooltip; once prompting, the\n // red label is the notice, so no tooltip.\n return !signInPrompt && caveat ? (\n <Tooltip title={caveat} arrow placement=\"top\">\n <span>{button}</span>\n </Tooltip>\n ) : (\n button\n )\n }\n\n // Signed in: add the dataset to the download list.\n const button = (\n <GenericCardActionButton\n variant=\"outlined\"\n aria-label={ariaLabel}\n startIcon={<Icon sx={{ fontSize: '16px' }} />}\n onClick={onDownloadClick}\n disabled={disabled || isDownloading}\n sx={{ maxWidth: MAX_WIDTH, textTransform: 'none' }}\n >\n {labelEl}\n </GenericCardActionButton>\n )\n return caveat ? (\n <Tooltip title={caveat} arrow placement=\"top\">\n <span>{button}</span>\n </Tooltip>\n ) : (\n button\n )\n }\n\n // Not downloadable: link out to the external repository, or a disabled indicator.\n const control: ReactNode =\n config.isExternalLink && externalUrl ? (\n <GenericCardActionButton\n variant=\"outlined\"\n aria-label={ariaLabel}\n href={externalUrl}\n target={TargetEnum.NEW_WINDOW}\n rel=\"noopener noreferrer\"\n startIcon={<Icon sx={{ fontSize: '16px' }} />}\n sx={{\n maxWidth: MAX_WIDTH,\n textTransform: 'none',\n // As an <a>, a visited link would otherwise darken to primary.dark\n // (theme rule); keep the resting color consistent with the buttons.\n '&:visited': { color: 'primary.main' },\n }}\n >\n {labelEl}\n </GenericCardActionButton>\n ) : (\n <GenericCardActionButton\n variant=\"outlined\"\n aria-label={ariaLabel}\n disabled\n startIcon={<Icon sx={{ fontSize: '16px' }} />}\n sx={{ maxWidth: MAX_WIDTH, textTransform: 'none' }}\n >\n {labelEl}\n </GenericCardActionButton>\n )\n\n return caveat ? (\n <Tooltip title={caveat} arrow placement=\"top\">\n {/* span lets the tooltip work even when the control is disabled */}\n <span>{control}</span>\n </Tooltip>\n ) : (\n control\n )\n}\n\nexport default DatasetDownloadButton\n"],"mappings":";;;;;;;;;;;;;;;;;AAqBA,IAAM,IAAQ;CACZ,UAAU;CACV,OAAO;CACP,UAAU;CACV,QAAQ;CACR,OAAO;CACP,aAAa;AACf;AA6BA,SAAS,EACP,GACA,GACQ;CAIR,OAHI,EAAO,MAAM,SAAS,cAAc,KAAK,CAAC,IACrC,EAAO,0BAA0B,EAAO,QAE1C,EAAe,EAAO,OAAO,CAAU,KAAK,EAAO;AAC5D;AAEA,IAAM,IAAY,SAYZ,IAAW;CATf,UAAU;CACV,cAAc;CACd,YAAY;CACZ,UAAU;CAQV,eAAe;CACf,OAAO;AACT;AAYA,SAAgB,EAAsB,GAAmC;CACvE,IAAM,EACJ,aACA,SACA,YACA,eACA,gBACA,aACA,oBACA,qBACE,GACE,EAAE,uBAAoB,EAAkB,GACxC,IAAS,EAAuB,EAAiB,CAAO,IAExD,IAAQ,EAAa,GAAQ,CAAU,GACvC,IAAS,EAAe,EAAO,SAAS,CAAU,GAClD,IAAO,EAAM,EAAO,OAEpB,CAAC,GAAc,KAAmB,EAAS,EAAK,GAEhD,IACJ,kBAAC,GAAD;EAAY,SAAQ;EAAa,IAAI;YAClC;CACS,CAAA,GAIR,IAAY,GAAG,EAAM,IAAI;CAG/B,IAAI,EAAO,gBAAgB,GAAU;EAInC,IAAI,CAAC,GAAiB;GACpB,IAAM,IAAa,IAAe,IAAgB,GAC5C,IAAc,IAAe,wBAAwB,GACrD,IACJ,kBAAC,GAAD;IACE,SAAQ;IACR,OAAO,IAAe,UAAU;IAChC,cAAY,GAAG,EAAY,IAAI;IAC/B,WAAW,IAAe,IAAoB,KAAA;IAC9C,WAAW,kBAAC,GAAD,EAAY,IAAI,EAAE,UAAU,OAAO,EAAI,CAAA;IAClD,UAAS,MAAS;KAChB,AAAK,MAKH,EAAM,gBAAgB,GACtB,EAAgB,EAAI;IAExB;IACA,IAAI;KAAE,UAAU;KAAW,eAAe;IAAO;cAEjD,kBAAC,GAAD;KAAY,SAAQ;KAAa,IAAI;eAClC;IACS,CAAA;GACW,CAAA;GAI3B,OAAO,CAAC,KAAgB,IACtB,kBAAC,GAAD;IAAS,OAAO;IAAQ,OAAA;IAAM,WAAU;cACtC,kBAAC,QAAD,EAAA,UAAO,EAAa,CAAA;GACb,CAAA,IAET;EAEJ;EAGA,IAAM,IACJ,kBAAC,GAAD;GACE,SAAQ;GACR,cAAY;GACZ,WAAW,kBAAC,GAAD,EAAM,IAAI,EAAE,UAAU,OAAO,EAAI,CAAA;GAC5C,SAAS;GACT,UAAU,KAAY;GACtB,IAAI;IAAE,UAAU;IAAW,eAAe;GAAO;aAEhD;EACsB,CAAA;EAE3B,OAAO,IACL,kBAAC,GAAD;GAAS,OAAO;GAAQ,OAAA;GAAM,WAAU;aACtC,kBAAC,QAAD,EAAA,UAAO,EAAa,CAAA;EACb,CAAA,IAET;CAEJ;CAGA,IAAM,IACJ,EAAO,kBAAkB,IACvB,kBAAC,GAAD;EACE,SAAQ;EACR,cAAY;EACZ,MAAM;EACN,QAAQ,EAAW;EACnB,KAAI;EACJ,WAAW,kBAAC,GAAD,EAAM,IAAI,EAAE,UAAU,OAAO,EAAI,CAAA;EAC5C,IAAI;GACF,UAAU;GACV,eAAe;GAGf,aAAa,EAAE,OAAO,eAAe;EACvC;YAEC;CACsB,CAAA,IAEzB,kBAAC,GAAD;EACE,SAAQ;EACR,cAAY;EACZ,UAAA;EACA,WAAW,kBAAC,GAAD,EAAM,IAAI,EAAE,UAAU,OAAO,EAAI,CAAA;EAC5C,IAAI;GAAE,UAAU;GAAW,eAAe;EAAO;YAEhD;CACsB,CAAA;CAG7B,OAAO,IACL,kBAAC,GAAD;EAAS,OAAO;EAAQ,OAAA;EAAM,WAAU;YAEtC,kBAAC,QAAD,EAAA,UAAO,EAAc,CAAA;CACd,CAAA,IAET;AAEJ"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Classifies a dataset by where its files are hosted and whether they can be
|
|
3
|
+
* downloaded through Synapse clients. Portals supply this value from a dataset
|
|
4
|
+
* annotation column (e.g. `hostingType`) since dataset cards are query/annotation
|
|
5
|
+
* driven and do not have access to the underlying file handles.
|
|
6
|
+
*
|
|
7
|
+
* The four values map onto two orthogonal realities:
|
|
8
|
+
* - WHERE the files live (Synapse-managed storage vs. a third-party location)
|
|
9
|
+
* - WHETHER Synapse clients can download them (yes vs. access is handled elsewhere)
|
|
10
|
+
*
|
|
11
|
+
* They are collapsed into a single enum so a card can show one predictable,
|
|
12
|
+
* scannable signal.
|
|
13
|
+
*/
|
|
14
|
+
export type DatasetHostingType =
|
|
15
|
+
/** Files are in Synapse/Sage-managed storage (S3/GCP). Standard, fast download. The default. */
|
|
16
|
+
'synapse'
|
|
17
|
+
/**
|
|
18
|
+
* Files are in a cloud bucket owned by a third party (non-Sage S3/GCP, external
|
|
19
|
+
* object store). Downloadable identically to Synapse-hosted files, but the bucket
|
|
20
|
+
* owner could remove them.
|
|
21
|
+
*/
|
|
22
|
+
| 'external-cloud'
|
|
23
|
+
/**
|
|
24
|
+
* Dataset links to files in an external repository (e.g. GEO, ENA) that are
|
|
25
|
+
* directly downloadable through Synapse clients, but served from an external
|
|
26
|
+
* server — so downloads may be slow or links could become dead over time.
|
|
27
|
+
*/
|
|
28
|
+
| 'external-download'
|
|
29
|
+
/**
|
|
30
|
+
* Dataset links to data that is NOT downloadable through Synapse (e.g. dbGaP,
|
|
31
|
+
* EGA). Records are placeholders for data held behind an external access
|
|
32
|
+
* process. No download is offered; the user is sent to the external repository.
|
|
33
|
+
*/
|
|
34
|
+
| 'external-access'
|
|
35
|
+
/**
|
|
36
|
+
* Files in the dataset span more than one location — some are downloadable
|
|
37
|
+
* through Synapse and some are hosted/controlled externally. Download is still
|
|
38
|
+
* offered (it retrieves the Synapse-available subset), but the label and tooltip
|
|
39
|
+
* flag that the rest must be obtained separately.
|
|
40
|
+
*/
|
|
41
|
+
| 'mixed'
|
|
42
|
+
/**
|
|
43
|
+
* The dataset is a record/placeholder whose data is not downloadable through
|
|
44
|
+
* Synapse, and there is no external repository to send the user to either
|
|
45
|
+
* (unlike `external-access`). No download or link action is offered — the card
|
|
46
|
+
* just signals that the data isn't available for download.
|
|
47
|
+
*/
|
|
48
|
+
| 'unavailable';
|
|
49
|
+
export type DatasetHostingConfig = {
|
|
50
|
+
/** Whether the dataset's files can be downloaded through Synapse clients. */
|
|
51
|
+
downloadable: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* If true (and not downloadable), the primary action links out to an external
|
|
54
|
+
* repository (uses externalUrl). If false/absent and not downloadable, the card
|
|
55
|
+
* shows a non-actionable "not available" chip instead of a link.
|
|
56
|
+
*/
|
|
57
|
+
isExternalLink?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Label shown on the chip-style action button. `{repository}` is substituted
|
|
60
|
+
* with the repository name when provided; if the template references
|
|
61
|
+
* `{repository}` but none is given, `labelWithoutRepository` is used instead.
|
|
62
|
+
*/
|
|
63
|
+
label: string;
|
|
64
|
+
/** Fallback label when the template needs a repository but none was provided. */
|
|
65
|
+
labelWithoutRepository?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Short, scannable label shown as a chip adornment next to the dataset title,
|
|
68
|
+
* summarizing WHERE the data lives (independent of any repository name). Not
|
|
69
|
+
* templated — never mentions a specific repository.
|
|
70
|
+
*/
|
|
71
|
+
chipLabel: string;
|
|
72
|
+
/** Tooltip summarizing the hosting/download caveat. `{repository}` is substituted. */
|
|
73
|
+
tooltip?: string;
|
|
74
|
+
/** MUI Chip color used for the button. `default` = neutral/non-actionable. */
|
|
75
|
+
color: 'primary' | 'warning' | 'default';
|
|
76
|
+
/**
|
|
77
|
+
* Icon shown on the button, encoding where the data lives relative to Synapse:
|
|
78
|
+
* - `download`: native, stored in Synapse
|
|
79
|
+
* - `cloud`: third-party managed cloud bucket
|
|
80
|
+
* - `external`: hosted outside Synapse but still downloadable
|
|
81
|
+
* - `launch`: not downloadable here — the user leaves Synapse to access it
|
|
82
|
+
* - `mixed`: files live in more than one location
|
|
83
|
+
* - `unavailable`: not available for download, with no external destination
|
|
84
|
+
*/
|
|
85
|
+
icon: 'download' | 'cloud' | 'external' | 'launch' | 'mixed' | 'unavailable';
|
|
86
|
+
};
|
|
87
|
+
export declare const DATASET_HOSTING_CONFIG: Record<DatasetHostingType, DatasetHostingConfig>;
|
|
88
|
+
/**
|
|
89
|
+
* Coerces a raw annotation value (which is frequently blank, null, or absent for
|
|
90
|
+
* Synapse-hosted/legacy datasets, and could be an unrecognized string) into a
|
|
91
|
+
* valid hosting type. Anything not explicitly recognized falls back to
|
|
92
|
+
* `synapse` — the safe default, which shows a standard Download button and no badge.
|
|
93
|
+
*/
|
|
94
|
+
export declare function normalizeHosting(value?: string | null): DatasetHostingType;
|
|
95
|
+
/** Substitutes the `{repository}` token, falling back to a generic phrase. */
|
|
96
|
+
export declare function fillRepository(template: string | undefined, repository?: string): string | undefined;
|
|
97
|
+
//# sourceMappingURL=DatasetHosting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DatasetHosting.d.ts","sourceRoot":"","sources":["../../../src/components/DatasetHosting/DatasetHosting.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,kBAAkB;AAC5B,gGAAgG;AAC9F,SAAS;AACX;;;;GAIG;GACD,gBAAgB;AAClB;;;;GAIG;GACD,mBAAmB;AACrB;;;;GAIG;GACD,iBAAiB;AACnB;;;;;GAKG;GACD,OAAO;AACT;;;;;GAKG;GACD,aAAa,CAAA;AAEjB,MAAM,MAAM,oBAAoB,GAAG;IACjC,6EAA6E;IAC7E,YAAY,EAAE,OAAO,CAAA;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;OAIG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,iFAAiF;IACjF,sBAAsB,CAAC,EAAE,MAAM,CAAA;IAC/B;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB,sFAAsF;IACtF,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,8EAA8E;IAC9E,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;IACxC;;;;;;;;OAQG;IACH,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,CAAA;CAC7E,CAAA;AAED,eAAO,MAAM,sBAAsB,EAAE,MAAM,CACzC,kBAAkB,EAClB,oBAAoB,CA0DrB,CAAA;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,kBAAkB,CAM1E;AAED,8EAA8E;AAC9E,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,GAAG,SAAS,CAQpB"}
|