synapse-react-client 4.0.32 → 4.0.34
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/components/AccessRequirementList/AccessRequirementList.d.ts +5 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/AccessRequirementList.js +152 -85
- package/dist/components/AccessRequirementList/AccessRequirementList.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/CancelRequestDataAccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.d.ts +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js +62 -43
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsEditor.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.d.ts +6 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js +227 -147
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DataAccessRequestAccessorsFilesForm/DataAccessRequestAccessorsFilesForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js +28 -24
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/DocumentTemplate.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts +21 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js +163 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/EDucPreviewStep/EDucPreviewStep.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts +22 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js +264 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ManualUploadDucStep/ManualUploadDucStep.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/RequestDataAccessSuccess.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js +166 -71
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ResearchProjectForm/ResearchProjectForm.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.d.ts +13 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js +122 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewCollaboratorsAndSigningOfficialAccordion.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.d.ts +17 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.js +112 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/ReviewDucStep/ReviewDucStep.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts +22 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js +193 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/SignatureStatusStep/SignatureStatusStep.js.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.d.ts +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.d.ts.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js +7 -7
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/UploadDocumentField.js.map +1 -1
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/styles.d.ts +3 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/styles.d.ts.map +1 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/styles.js +9 -0
- package/dist/components/AccessRequirementList/ManagedACTAccessRequirementRequestFlow/styles.js.map +1 -0
- package/dist/components/CopyToClipboardIcon.d.ts +2 -1
- package/dist/components/CopyToClipboardIcon.d.ts.map +1 -1
- package/dist/components/CopyToClipboardIcon.js +6 -6
- package/dist/components/CopyToClipboardIcon.js.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/SynapseGrid.js +230 -215
- package/dist/components/DataGrid/SynapseGrid.js.map +1 -1
- package/dist/components/DataGrid/SyncGridWithSourceButton.js +3 -3
- package/dist/components/DataGrid/SyncGridWithSourceButton.js.map +1 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.js +1 -1
- package/dist/components/DataGrid/columns/DateTimeColumn.js.map +1 -1
- package/dist/components/DataGrid/components/ReorderColumnsButton.d.ts +10 -0
- package/dist/components/DataGrid/components/ReorderColumnsButton.d.ts.map +1 -0
- package/dist/components/DataGrid/components/ReorderColumnsButton.js +37 -0
- package/dist/components/DataGrid/components/ReorderColumnsButton.js.map +1 -0
- package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts +12 -0
- package/dist/components/DataGrid/components/ReorderColumnsDialog.d.ts.map +1 -0
- package/dist/components/DataGrid/components/ReorderColumnsDialog.js +93 -0
- package/dist/components/DataGrid/components/ReorderColumnsDialog.js.map +1 -0
- package/dist/components/DataGrid/hooks/useGetSchemaForGrid.js +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.d.ts +3 -0
- package/dist/components/DataGrid/utils/applyModelChange.d.ts.map +1 -1
- package/dist/components/DataGrid/utils/applyModelChange.js +5 -0
- package/dist/components/DataGrid/utils/applyModelChange.js.map +1 -1
- package/dist/components/DataGrid/utils/computeDefaultColumnOrder.d.ts +8 -0
- package/dist/components/DataGrid/utils/computeDefaultColumnOrder.d.ts.map +1 -0
- package/dist/components/DataGrid/utils/computeDefaultColumnOrder.js +14 -0
- package/dist/components/DataGrid/utils/computeDefaultColumnOrder.js.map +1 -0
- package/dist/components/EntityBadgeIcons/EntityBadgeIcons.js +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.d.ts.map +1 -1
- package/dist/components/EntityFinder/details/view/DetailsView.js +119 -122
- package/dist/components/EntityFinder/details/view/DetailsView.js.map +1 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.d.ts +5 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.d.ts.map +1 -1
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js +7 -7
- package/dist/components/EntityFinder/details/view/table/AddToDownloadListCell.js.map +1 -1
- package/dist/components/EntityLink.d.ts +2 -0
- package/dist/components/EntityLink.d.ts.map +1 -1
- package/dist/components/EntityLink.js +15 -11
- package/dist/components/EntityLink.js.map +1 -1
- package/dist/components/EntitySidebar/AccessAndPermissions.css +1 -0
- package/dist/components/EntitySidebar/AccessAndPermissions.d.ts +7 -0
- package/dist/components/EntitySidebar/AccessAndPermissions.d.ts.map +1 -0
- package/dist/components/EntitySidebar/AccessAndPermissions.js +75 -0
- package/dist/components/EntitySidebar/AccessAndPermissions.js.map +1 -0
- package/dist/components/EntitySidebar/AccessAndPermissions.module.js +15 -0
- package/dist/components/EntitySidebar/AccessAndPermissions.module.js.map +1 -0
- package/dist/components/EntitySidebar/AccessAndPermissions.module.scss +58 -0
- package/dist/components/EntitySidebar/EntitySidebar.css +1 -1
- package/dist/components/EntitySidebar/EntitySidebar.d.ts.map +1 -1
- package/dist/components/EntitySidebar/EntitySidebar.js +54 -42
- package/dist/components/EntitySidebar/EntitySidebar.js.map +1 -1
- package/dist/components/EntitySidebar/EntitySidebar.module.js +10 -11
- package/dist/components/EntitySidebar/EntitySidebar.module.js.map +1 -1
- package/dist/components/EntitySidebar/EntitySidebar.module.scss +6 -13
- package/dist/components/EntityTreeTable/EntityTreeTable.css +1 -1
- package/dist/components/EntityTreeTable/EntityTreeTable.module.js +1 -1
- package/dist/components/EntityTreeTable/EntityTreeTable.module.js.map +1 -1
- package/dist/components/EntityTreeTable/EntityTreeTable.module.scss +18 -0
- package/dist/components/EntityTreeTable/components/ColumnHeaders.d.ts.map +1 -1
- package/dist/components/EntityTreeTable/components/ColumnHeaders.js +20 -7
- package/dist/components/EntityTreeTable/components/ColumnHeaders.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.d.ts.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.js +3 -1
- package/dist/components/EntityTreeTable/components/EntityNameCell.js.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableView.d.ts.map +1 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableView.js +4 -1
- package/dist/components/EntityTreeTable/components/EntityTreeTableView.js.map +1 -1
- package/dist/components/EntityTreeTable/components/IdColumnHeader.d.ts.map +1 -1
- package/dist/components/EntityTreeTable/components/IdColumnHeader.js +3 -1
- package/dist/components/EntityTreeTable/components/IdColumnHeader.js.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.d.ts.map +1 -1
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js +24 -19
- package/dist/components/EntityTreeTable/hooks/useTableColumns.js.map +1 -1
- package/dist/components/FilePreview/PdfPreview.d.ts.map +1 -1
- package/dist/components/FilePreview/PdfPreview.js +23 -20
- package/dist/components/FilePreview/PdfPreview.js.map +1 -1
- package/dist/components/Forum/DiscussionEmpty.css +1 -1
- package/dist/components/Forum/DiscussionEmpty.module.js +4 -4
- package/dist/components/Forum/DiscussionEmpty.module.js.map +1 -1
- package/dist/components/Forum/DiscussionEmpty.module.scss +3 -6
- package/dist/components/GenericCard/SynapseCardLabel.d.ts.map +1 -1
- package/dist/components/GenericCard/SynapseCardLabel.js +100 -99
- package/dist/components/GenericCard/SynapseCardLabel.js.map +1 -1
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.css +1 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.d.ts +29 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.d.ts.map +1 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.js +229 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.js.map +1 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.module.js +9 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.module.js.map +1 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPicker.module.scss +19 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPickerModal.d.ts +23 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPickerModal.d.ts.map +1 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPickerModal.js +39 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaPickerModal.js.map +1 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaVersionSelectionContext.d.ts +14 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaVersionSelectionContext.d.ts.map +1 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaVersionSelectionContext.js +12 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/JsonSchemaVersionSelectionContext.js.map +1 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/VersionSelectionType.d.ts +17 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/VersionSelectionType.d.ts.map +1 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/VersionSelectionType.js +8 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/VersionSelectionType.js.map +1 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/index.d.ts +6 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/index.d.ts.map +1 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/index.js +4 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaOrganizations.d.ts +20 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaOrganizations.d.ts.map +1 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaOrganizations.js +25 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaOrganizations.js.map +1 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaSelection.d.ts +35 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaSelection.d.ts.map +1 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaSelection.js +60 -0
- package/dist/components/JsonSchema/JsonSchemaPicker/useJsonSchemaSelection.js.map +1 -0
- package/dist/components/ProjectInfo/ProjectInfo.css +1 -1
- package/dist/components/ProjectInfo/ProjectInfo.module.js +5 -5
- package/dist/components/ProjectInfo/ProjectInfo.module.js.map +1 -1
- package/dist/components/ProjectInfo/ProjectInfo.module.scss +2 -4
- package/dist/components/ProjectInfo/ProjectInfoPopover.d.ts.map +1 -1
- package/dist/components/ProjectInfo/ProjectInfoPopover.js +17 -16
- package/dist/components/ProjectInfo/ProjectInfoPopover.js.map +1 -1
- package/dist/components/ProjectStorage/ProjectDataAvailability.d.ts.map +1 -1
- package/dist/components/ProjectStorage/ProjectDataAvailability.js +16 -16
- package/dist/components/ProjectStorage/ProjectDataAvailability.js.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.d.ts.map +1 -1
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js +95 -95
- package/dist/components/ProvenanceGraph/ProvenanceGraph.js.map +1 -1
- package/dist/components/SchemaDrivenAnnotationEditor/SchemaDrivenAnnotationEditor.js +2 -2
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.d.ts.map +1 -1
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js +120 -92
- package/dist/components/SetManagedAccessRequirementFields/SetManagedAccessRequirementFields.js.map +1 -1
- package/dist/components/StorybookComponentWrapper.d.ts.map +1 -1
- package/dist/components/StorybookComponentWrapper.js +1 -3
- package/dist/components/StorybookComponentWrapper.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChat.js +40 -40
- package/dist/components/SynapseChat/SynapseChat.js.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.d.ts +3 -2
- package/dist/components/SynapseChat/SynapseChatInteraction.d.ts.map +1 -1
- package/dist/components/SynapseChat/SynapseChatInteraction.js.map +1 -1
- package/dist/components/SynapseChat/components/AttachmentChip/AttachmentChip.css +1 -1
- package/dist/components/SynapseChat/components/AttachmentChip/AttachmentChip.d.ts.map +1 -1
- package/dist/components/SynapseChat/components/AttachmentChip/AttachmentChip.js +0 -7
- package/dist/components/SynapseChat/components/AttachmentChip/AttachmentChip.js.map +1 -1
- package/dist/components/SynapseChat/components/AttachmentChip/AttachmentChip.module.js +2 -2
- package/dist/components/SynapseChat/components/AttachmentChip/AttachmentChip.module.js.map +1 -1
- package/dist/components/SynapseChat/components/AttachmentChip/AttachmentChip.module.scss +12 -2
- package/dist/components/SynapseChat/components/ChatAttachmentStrip/ChatAttachmentStrip.css +1 -1
- package/dist/components/SynapseChat/components/ChatAttachmentStrip/ChatAttachmentStrip.module.js +3 -3
- package/dist/components/SynapseChat/components/ChatAttachmentStrip/ChatAttachmentStrip.module.js.map +1 -1
- package/dist/components/SynapseChat/components/ChatAttachmentStrip/ChatAttachmentStrip.module.scss +5 -1
- package/dist/components/TanStackTable/ColumnHeader.d.ts +7 -0
- package/dist/components/TanStackTable/ColumnHeader.d.ts.map +1 -1
- package/dist/components/TanStackTable/ColumnHeader.js +10 -9
- package/dist/components/TanStackTable/ColumnHeader.js.map +1 -1
- package/dist/components/TanStackTable/StyledVirtualTanStackTable.d.ts +8 -0
- package/dist/components/TanStackTable/StyledVirtualTanStackTable.d.ts.map +1 -1
- package/dist/components/TanStackTable/StyledVirtualTanStackTable.js +31 -22
- package/dist/components/TanStackTable/StyledVirtualTanStackTable.js.map +1 -1
- package/dist/components/TanStackTable/useFetchNextPageOnScrollToBottom.d.ts +21 -0
- package/dist/components/TanStackTable/useFetchNextPageOnScrollToBottom.d.ts.map +1 -0
- package/dist/components/TanStackTable/useFetchNextPageOnScrollToBottom.js +22 -0
- package/dist/components/TanStackTable/useFetchNextPageOnScrollToBottom.js.map +1 -0
- package/dist/components/dataaccess/AccessRequirementDashboard.d.ts.map +1 -1
- package/dist/components/dataaccess/AccessRequirementDashboard.js +55 -55
- package/dist/components/dataaccess/AccessRequirementDashboard.js.map +1 -1
- package/dist/components/dataaccess/EDucTemplateTable.d.ts +3 -0
- package/dist/components/dataaccess/EDucTemplateTable.d.ts.map +1 -0
- package/dist/components/dataaccess/EDucTemplateTable.js +213 -0
- package/dist/components/dataaccess/EDucTemplateTable.js.map +1 -0
- package/dist/components/dataaccess/ReviewerDashboard.d.ts.map +1 -1
- package/dist/components/dataaccess/ReviewerDashboard.js +44 -34
- package/dist/components/dataaccess/ReviewerDashboard.js.map +1 -1
- package/dist/components/entity/metadata/AnnotationsTable.js +2 -2
- package/dist/components/entity/metadata/AnnotationsTable.js.map +1 -1
- package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.d.ts.map +1 -1
- package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js +8 -8
- package/dist/components/entity/page/breadcrumbs/EntityPageBreadcrumbs.js.map +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.d.ts +0 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.d.ts.map +1 -1
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js +22 -22
- package/dist/components/entity/page/title_bar/EntityPageTitleBar.js.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.d.ts.map +1 -1
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js +62 -68
- package/dist/components/entity/page/title_bar/useGetEntityTitleBarProperties.js.map +1 -1
- package/dist/components/styled/StyledTableContainer.d.ts +1 -0
- package/dist/components/styled/StyledTableContainer.d.ts.map +1 -1
- package/dist/components/styled/StyledTableContainer.js +3 -3
- package/dist/components/styled/StyledTableContainer.js.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts +2 -0
- package/dist/components/widgets/facet-nav/FacetNavPanel.d.ts.map +1 -1
- package/dist/components/widgets/facet-nav/FacetNavPanel.js +35 -40
- package/dist/components/widgets/facet-nav/FacetNavPanel.js.map +1 -1
- package/dist/mocks/eDuc/mockEDucTemplates.d.ts +7 -0
- package/dist/mocks/eDuc/mockEDucTemplates.d.ts.map +1 -0
- package/dist/mocks/eDuc/mockEDucTemplates.js +18 -0
- package/dist/mocks/eDuc/mockEDucTemplates.js.map +1 -0
- package/dist/mocks/jsonschema/mockJsonSchemaListing.d.ts +31 -0
- package/dist/mocks/jsonschema/mockJsonSchemaListing.d.ts.map +1 -0
- package/dist/mocks/jsonschema/mockJsonSchemaListing.js +101 -0
- package/dist/mocks/jsonschema/mockJsonSchemaListing.js.map +1 -0
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js +48 -23
- package/dist/mocks/msw/handlers/dataAccessRequestHandlers.js.map +1 -1
- package/dist/mocks/msw/handlers/eDucTemplateHandlers.d.ts +2 -0
- package/dist/mocks/msw/handlers/eDucTemplateHandlers.d.ts.map +1 -0
- package/dist/mocks/msw/handlers/eDucTemplateHandlers.js +14 -0
- package/dist/mocks/msw/handlers/eDucTemplateHandlers.js.map +1 -0
- package/dist/mocks/msw/handlers/jsonSchemaListingHandlers.d.ts +8 -0
- package/dist/mocks/msw/handlers/jsonSchemaListingHandlers.d.ts.map +1 -0
- package/dist/mocks/msw/handlers/jsonSchemaListingHandlers.js +30 -0
- package/dist/mocks/msw/handlers/jsonSchemaListingHandlers.js.map +1 -0
- package/dist/mocks/msw/handlers.d.ts.map +1 -1
- package/dist/mocks/msw/handlers.js +55 -51
- package/dist/mocks/msw/handlers.js.map +1 -1
- package/dist/style/abstracts/_cssVariables.scss +13 -0
- package/dist/style/components/entity_finder/_details-view.scss +0 -10
- package/dist/style/components/facet_nav/_facet-nav-panel.scss +0 -6
- package/dist/style/main.css +1 -1
- package/dist/synapse-client/SynapseClient.d.ts.map +1 -1
- package/dist/synapse-client/SynapseClient.js +2 -6
- package/dist/synapse-client/SynapseClient.js.map +1 -1
- package/dist/synapse-queries/KeyFactory.d.ts +3 -0
- package/dist/synapse-queries/KeyFactory.d.ts.map +1 -1
- package/dist/synapse-queries/KeyFactory.js +9 -0
- package/dist/synapse-queries/KeyFactory.js.map +1 -1
- package/dist/synapse-queries/dataaccess/useEDuc.d.ts +3 -3
- package/dist/synapse-queries/dataaccess/useEDuc.d.ts.map +1 -1
- package/dist/synapse-queries/dataaccess/useEDuc.js +40 -35
- package/dist/synapse-queries/dataaccess/useEDuc.js.map +1 -1
- package/dist/synapse-queries/entity/index.d.ts +0 -2
- package/dist/synapse-queries/entity/index.d.ts.map +1 -1
- package/dist/synapse-queries/entity/index.js +8 -10
- package/dist/synapse-queries/index.d.ts +1 -0
- package/dist/synapse-queries/index.d.ts.map +1 -1
- package/dist/synapse-queries/index.js +136 -128
- package/dist/synapse-queries/index.js.map +1 -1
- package/dist/synapse-queries/jsonschema/index.d.ts +6 -0
- package/dist/synapse-queries/jsonschema/index.d.ts.map +1 -0
- package/dist/synapse-queries/jsonschema/index.js +6 -0
- package/dist/synapse-queries/jsonschema/useEntityBoundSchema.d.ts.map +1 -0
- package/dist/synapse-queries/{entity → jsonschema}/useEntityBoundSchema.js +1 -1
- package/dist/synapse-queries/jsonschema/useEntityBoundSchema.js.map +1 -0
- package/dist/synapse-queries/jsonschema/useListJsonSchemaVersions.d.ts +26 -0
- package/dist/synapse-queries/jsonschema/useListJsonSchemaVersions.d.ts.map +1 -0
- package/dist/synapse-queries/jsonschema/useListJsonSchemaVersions.js +36 -0
- package/dist/synapse-queries/jsonschema/useListJsonSchemaVersions.js.map +1 -0
- package/dist/synapse-queries/jsonschema/useListJsonSchemasInfinite.d.ts +8 -0
- package/dist/synapse-queries/jsonschema/useListJsonSchemasInfinite.d.ts.map +1 -0
- package/dist/synapse-queries/jsonschema/useListJsonSchemasInfinite.js +21 -0
- package/dist/synapse-queries/jsonschema/useListJsonSchemasInfinite.js.map +1 -0
- package/dist/synapse-queries/jsonschema/useListOrganizations.d.ts +8 -0
- package/dist/synapse-queries/jsonschema/useListOrganizations.d.ts.map +1 -0
- package/dist/synapse-queries/jsonschema/useListOrganizations.js +22 -0
- package/dist/synapse-queries/jsonschema/useListOrganizations.js.map +1 -0
- package/dist/synapse-queries/jsonschema/useSchema.d.ts.map +1 -0
- package/dist/synapse-queries/{entity → jsonschema}/useSchema.js +1 -1
- package/dist/synapse-queries/jsonschema/useSchema.js.map +1 -0
- package/dist/testutils/VirtualizedTableTestUtils.js +17 -0
- package/dist/testutils/VirtualizedTableTestUtils.js.map +1 -0
- package/dist/theme/palette/Palettes.d.ts.map +1 -1
- package/dist/theme/palette/Palettes.js +13 -0
- package/dist/theme/palette/Palettes.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/utils/APIConstants.d.ts +6 -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/hooks/useFetchBlobUrl.d.ts +9 -0
- package/dist/utils/hooks/useFetchBlobUrl.d.ts.map +1 -0
- package/dist/utils/hooks/useFetchBlobUrl.js +19 -0
- package/dist/utils/hooks/useFetchBlobUrl.js.map +1 -0
- package/package.json +3 -3
- package/dist/synapse-queries/entity/useEntityBoundSchema.d.ts.map +0 -1
- package/dist/synapse-queries/entity/useEntityBoundSchema.js.map +0 -1
- package/dist/synapse-queries/entity/useSchema.d.ts.map +0 -1
- package/dist/synapse-queries/entity/useSchema.js.map +0 -1
- /package/dist/synapse-queries/{entity → jsonschema}/useEntityBoundSchema.d.ts +0 -0
- /package/dist/synapse-queries/{entity → jsonschema}/useSchema.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnHeader.js","names":[],"sources":["../../../src/components/TanStackTable/ColumnHeader.tsx"],"sourcesContent":["import { HeaderContext } from '@tanstack/react-table'\nimport { Box, IconButton, Tooltip } from '@mui/material'\nimport { HelpTwoTone } from '@mui/icons-material'\nimport IconSvg from '../IconSvg'\nimport { ReactNode, useCallback } from 'react'\nimport { ColumnHeaderEnumFilter } from './ColumnHeaderEnumFilter'\n\ntype ColumnHeaderProps = {\n title?: string\n helpText?: ReactNode\n additionalButtons?: ReactNode\n wrap?: boolean\n\n // TODO: Replace with props that can be passed to a reusable filter control\n filterControl?: ReactNode\n}\n\n/**\n * Styled table column header component for use with @tanstack/react-table, with extra optional props for additional\n * UI features\n */\nexport default function ColumnHeader<TData = unknown, TValue = unknown>(\n props: ColumnHeaderProps & HeaderContext<TData, TValue>,\n) {\n const {\n column,\n title = props.column.id,\n wrap = false,\n helpText,\n filterControl: filterControlFromProps,\n additionalButtons,\n } = props\n\n const getFilterControl = useCallback(() => {\n if (filterControlFromProps) {\n return filterControlFromProps\n }\n if (column.getCanFilter()) {\n if (column.columnDef.meta?.filterVariant === 'enumeration') {\n return <ColumnHeaderEnumFilter column={column} title={title} />\n }\n // As needed, extend ColumnMeta.filterVariant to support other types of filters\n console.warn(\n `column.getCanFilter() was true for column ID: ${column.id} but no filterControlFromProps was passed and component for filterVariant: ${column.columnDef.meta?.filterVariant} is not implemented`,\n )\n }\n return <></>\n }, [column, filterControlFromProps, title])\n\n const filterControl = getFilterControl()\n\n return (\n <Box\n sx={{\n display: 'flex',\n alignContent: 'center',\n alignItems: 'center',\n justifyContent: 'space-between',\n overflow: 'hidden',\n minWidth: 0,\n }}\n >\n <span\n style={{\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: wrap ? 'pre-wrap' : 'nowrap',\n minWidth: 0,\n }}\n title={title}\n >\n {title}\n </span>\n <Box\n role={'menubar'}\n sx={{\n display: 'flex',\n alignItems: 'center',\n height: '22px',\n ml: 2,\n gap: 0.25,\n }}\n >\n {helpText && (\n <Tooltip title={helpText} placement={'top'}>\n <IconButton size={'small'}>\n <HelpTwoTone fontSize={'inherit'} />\n </IconButton>\n </Tooltip>\n )}\n {column.getCanFilter() && filterControl}\n {column.getCanSort() && (\n <Tooltip title={`Sort by ${title}`} placement={'top'}>\n <IconButton\n role=\"button\"\n size={'small'}\n aria-label={`Sort by ${title}`}\n tabIndex={0}\n onKeyPress={() => column.toggleSorting()}\n onClick={() => column.toggleSorting()}\n >\n <IconSvg\n
|
|
1
|
+
{"version":3,"file":"ColumnHeader.js","names":[],"sources":["../../../src/components/TanStackTable/ColumnHeader.tsx"],"sourcesContent":["import { HeaderContext } from '@tanstack/react-table'\nimport { Box, IconButton, Tooltip } from '@mui/material'\nimport { HelpTwoTone } from '@mui/icons-material'\nimport IconSvg from '../IconSvg'\nimport { ReactNode, useCallback } from 'react'\nimport { ColumnHeaderEnumFilter } from './ColumnHeaderEnumFilter'\n\ntype SortIconRendererParams = {\n isSorted: 'asc' | 'desc' | false\n}\n\ntype ColumnHeaderProps = {\n title?: string\n helpText?: ReactNode\n additionalButtons?: ReactNode\n wrap?: boolean\n sortIconRenderer?: (params: SortIconRendererParams) => ReactNode\n iconPlacement?: 'left' | 'right'\n iconColor?: string\n iconSize?: string | number\n\n // TODO: Replace with props that can be passed to a reusable filter control\n filterControl?: ReactNode\n}\n\n/**\n * Styled table column header component for use with @tanstack/react-table, with extra optional props for additional\n * UI features\n */\nexport default function ColumnHeader<TData = unknown, TValue = unknown>(\n props: ColumnHeaderProps & HeaderContext<TData, TValue>,\n) {\n const {\n column,\n title = props.column.id,\n wrap = false,\n helpText,\n filterControl: filterControlFromProps,\n additionalButtons,\n sortIconRenderer,\n iconPlacement = 'right',\n iconColor,\n iconSize,\n } = props\n\n const getFilterControl = useCallback(() => {\n if (filterControlFromProps) {\n return filterControlFromProps\n }\n if (column.getCanFilter()) {\n if (column.columnDef.meta?.filterVariant === 'enumeration') {\n return <ColumnHeaderEnumFilter column={column} title={title} />\n }\n // As needed, extend ColumnMeta.filterVariant to support other types of filters\n console.warn(\n `column.getCanFilter() was true for column ID: ${column.id} but no filterControlFromProps was passed and component for filterVariant: ${column.columnDef.meta?.filterVariant} is not implemented`,\n )\n }\n return <></>\n }, [column, filterControlFromProps, title])\n\n const filterControl = getFilterControl()\n const isSorted = column.getIsSorted()\n\n return (\n <Box\n sx={{\n display: 'flex',\n alignContent: 'center',\n alignItems: 'center',\n ...(iconPlacement === 'right' && {\n justifyContent: 'space-between',\n }),\n overflow: 'hidden',\n minWidth: 0,\n }}\n >\n <span\n style={{\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: wrap ? 'pre-wrap' : 'nowrap',\n minWidth: 0,\n }}\n title={title}\n >\n {title}\n </span>\n <Box\n role={'menubar'}\n sx={{\n display: 'flex',\n alignItems: 'center',\n height: '22px',\n ml: iconPlacement === 'left' ? 1 : 2,\n gap: 0.25,\n }}\n >\n {helpText && (\n <Tooltip title={helpText} placement={'top'}>\n <IconButton size={'small'}>\n <HelpTwoTone fontSize={'inherit'} />\n </IconButton>\n </Tooltip>\n )}\n {column.getCanFilter() && filterControl}\n {column.getCanSort() && (\n <Tooltip title={`Sort by ${title}`} placement={'top'}>\n <IconButton\n role=\"button\"\n size={'small'}\n aria-label={`Sort by ${title}`}\n tabIndex={0}\n onKeyPress={() => column.toggleSorting()}\n onClick={() => column.toggleSorting()}\n >\n {sortIconRenderer ? (\n sortIconRenderer({ isSorted })\n ) : (\n <IconSvg\n icon={isSorted === 'asc' ? 'sortUp' : 'sortDown'}\n wrap={false}\n sx={{\n color:\n iconColor ?? (isSorted ? 'primary.main' : 'grey.700'),\n backgroundColor: 'none',\n ...(iconSize && { fontSize: iconSize }),\n }}\n />\n )}\n </IconButton>\n </Tooltip>\n )}\n {additionalButtons}\n </Box>\n </Box>\n )\n}\n"],"mappings":";;;;;;;AA6BA,SAAwB,EACtB,GACA;CACA,IAAM,EACJ,WACA,WAAQ,EAAM,OAAO,IACrB,UAAO,IACP,aACA,eAAe,GACf,sBACA,qBACA,mBAAgB,SAChB,cACA,gBACE,GAkBE,IAhBmB,QAAkB;EACzC,IAAI,GACF,OAAO;EAET,IAAI,EAAO,aAAa,GAAG;GACzB,IAAI,EAAO,UAAU,MAAM,kBAAkB,eAC3C,OAAO,kBAAC,GAAD;IAAgC;IAAe;GAAQ,CAAA;GAGhE,QAAQ,KACN,iDAAiD,EAAO,GAAG,6EAA6E,EAAO,UAAU,MAAM,cAAc,oBAC/K;EACF;EACA,OAAO,kBAAA,GAAA,CAAI,CAAA;CACb,GAAG;EAAC;EAAQ;EAAwB;CAAK,CAEnB,EAAiB,GACjC,IAAW,EAAO,YAAY;CAEpC,OACE,kBAAC,GAAD;EACE,IAAI;GACF,SAAS;GACT,cAAc;GACd,YAAY;GACZ,GAAI,MAAkB,WAAW,EAC/B,gBAAgB,gBAClB;GACA,UAAU;GACV,UAAU;EACZ;YAVF,CAYE,kBAAC,QAAD;GACE,OAAO;IACL,UAAU;IACV,cAAc;IACd,YAAY,IAAO,aAAa;IAChC,UAAU;GACZ;GACO;aAEN;EACG,CAAA,GACN,kBAAC,GAAD;GACE,MAAM;GACN,IAAI;IACF,SAAS;IACT,YAAY;IACZ,QAAQ;IACR,IAAI,MAAkB,SAAS,IAAI;IACnC,KAAK;GACP;aARF;IAUG,KACC,kBAAC,GAAD;KAAS,OAAO;KAAU,WAAW;eACnC,kBAAC,GAAD;MAAY,MAAM;gBAChB,kBAAC,GAAD,EAAa,UAAU,UAAY,CAAA;KACzB,CAAA;IACL,CAAA;IAEV,EAAO,aAAa,KAAK;IACzB,EAAO,WAAW,KACjB,kBAAC,GAAD;KAAS,OAAO,WAAW;KAAS,WAAW;eAC7C,kBAAC,GAAD;MACE,MAAK;MACL,MAAM;MACN,cAAY,WAAW;MACvB,UAAU;MACV,kBAAkB,EAAO,cAAc;MACvC,eAAe,EAAO,cAAc;gBAEnC,IACC,EAAiB,EAAE,YAAS,CAAC,IAE7B,kBAAC,GAAD;OACE,MAAM,MAAa,QAAQ,WAAW;OACtC,MAAM;OACN,IAAI;QACF,OACE,MAAc,IAAW,iBAAiB;QAC5C,iBAAiB;QACjB,GAAI,KAAY,EAAE,UAAU,EAAS;OACvC;MACD,CAAA;KAEO,CAAA;IACL,CAAA;IAEV;GACE;IACF;;AAET"}
|
|
@@ -4,6 +4,14 @@ import { TrProps } from './types';
|
|
|
4
4
|
type StyledVirtualTanStackTableProps<T = unknown> = Omit<StyledTanStackTableProps<T, VirtualItem>, 'slots' | 'rows' | 'rowTransform'> & {
|
|
5
5
|
rowVirtualizer: Virtualizer<any, any>;
|
|
6
6
|
onTableContainerScroll?: (target: EventTarget) => void;
|
|
7
|
+
/**
|
|
8
|
+
* When true, alternating rows are given a striped background. Unlike {@link StyledTableContainerProps.noStripedRows},
|
|
9
|
+
* this does not rely on CSS `:nth-of-type`, since a virtualized row's position in the DOM is not
|
|
10
|
+
* guaranteed to match its data index as rows are mounted/unmounted while scrolling. Instead, this
|
|
11
|
+
* stripes rows based on the `data-index` attribute that {@link VirtualizedTr} sets on each `<tr>`.
|
|
12
|
+
* @default false
|
|
13
|
+
*/
|
|
14
|
+
striped?: boolean;
|
|
7
15
|
};
|
|
8
16
|
/**
|
|
9
17
|
* A table row component modified to be used with @tanstack/react-virtual.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyledVirtualTanStackTable.d.ts","sourceRoot":"","sources":["../../../src/components/TanStackTable/StyledVirtualTanStackTable.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"StyledVirtualTanStackTable.d.ts","sourceRoot":"","sources":["../../../src/components/TanStackTable/StyledVirtualTanStackTable.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAGlE,OAA4B,EAC1B,wBAAwB,EACzB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEjC,KAAK,+BAA+B,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,CACtD,wBAAwB,CAAC,CAAC,EAAE,WAAW,CAAC,EACxC,OAAO,GAAG,MAAM,GAAG,cAAc,CAClC,GAAG;IACF,cAAc,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACrC,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAA;IACtD;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAqBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,GAAG,OAAO,EAC3C,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,2CAmBnC;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAAC,CAAC,GAAG,OAAO,EAC5D,KAAK,EAAE,+BAA+B,CAAC,CAAC,CAAC,2CA4E1C"}
|
|
@@ -4,12 +4,18 @@ import n, { useContext as r } from "react";
|
|
|
4
4
|
import { noop as i } from "lodash-es";
|
|
5
5
|
import { jsx as a } from "react/jsx-runtime";
|
|
6
6
|
//#region src/components/TanStackTable/StyledVirtualTanStackTable.tsx
|
|
7
|
-
var o =
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
var o = { [[
|
|
8
|
+
1,
|
|
9
|
+
3,
|
|
10
|
+
5,
|
|
11
|
+
7,
|
|
12
|
+
9
|
|
13
|
+
].map((e) => `&[data-index$="${e}"]:not([aria-selected="true"])`).join(", ")]: { backgroundColor: "var(--synapse-background-color-gray)" } }, s = n.createContext(void 0);
|
|
14
|
+
function c(e) {
|
|
15
|
+
let { row: t, tableRow: n, ...i } = e, o = r(s);
|
|
10
16
|
return /* @__PURE__ */ a("tr", {
|
|
11
17
|
"data-index": t.index,
|
|
12
|
-
ref: (e) =>
|
|
18
|
+
ref: (e) => o?.measureElement(e),
|
|
13
19
|
...i,
|
|
14
20
|
style: {
|
|
15
21
|
...i.style,
|
|
@@ -21,32 +27,35 @@ function s(e) {
|
|
|
21
27
|
}
|
|
22
28
|
});
|
|
23
29
|
}
|
|
24
|
-
function
|
|
25
|
-
let { table: r, styledTableContainerProps:
|
|
26
|
-
return /* @__PURE__ */ a(
|
|
27
|
-
value:
|
|
30
|
+
function l(n) {
|
|
31
|
+
let { table: r, styledTableContainerProps: l, fullWidth: u = !0, rowVirtualizer: d, slotProps: f = {}, onTableContainerScroll: p = i, striped: m = !1 } = n, h = d.getVirtualItems();
|
|
32
|
+
return /* @__PURE__ */ a(s.Provider, {
|
|
33
|
+
value: d,
|
|
28
34
|
children: /* @__PURE__ */ a(t, {
|
|
29
35
|
table: r,
|
|
30
|
-
rows:
|
|
36
|
+
rows: h,
|
|
31
37
|
rowTransform: (e) => r.getRowModel().rows[e.index],
|
|
32
|
-
fullWidth:
|
|
38
|
+
fullWidth: u,
|
|
33
39
|
styledTableContainerProps: {
|
|
34
40
|
noStripedRows: !0,
|
|
35
|
-
...
|
|
41
|
+
...l,
|
|
36
42
|
style: {
|
|
37
43
|
overflow: "auto",
|
|
38
44
|
position: "relative",
|
|
39
|
-
...
|
|
45
|
+
...l?.style
|
|
40
46
|
},
|
|
41
|
-
sx:
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
47
|
+
sx: [
|
|
48
|
+
{ "thead > tr": {
|
|
49
|
+
display: "flex",
|
|
50
|
+
width: "100%"
|
|
51
|
+
} },
|
|
52
|
+
m && { "tbody > tr": o },
|
|
53
|
+
l?.sx
|
|
54
|
+
].flat().filter(Boolean),
|
|
55
|
+
onScroll: (e) => p(e.target)
|
|
46
56
|
},
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
slotProps: e(d, {
|
|
57
|
+
slots: { Tr: c },
|
|
58
|
+
slotProps: e(f, {
|
|
50
59
|
Table: { style: { display: "grid" } },
|
|
51
60
|
Thead: { style: {
|
|
52
61
|
display: "grid",
|
|
@@ -57,7 +66,7 @@ function c(n) {
|
|
|
57
66
|
Th: { style: { display: "flex" } },
|
|
58
67
|
Tbody: { style: {
|
|
59
68
|
display: "grid",
|
|
60
|
-
height: `${
|
|
69
|
+
height: `${d.getTotalSize()}px`,
|
|
61
70
|
position: "relative"
|
|
62
71
|
} }
|
|
63
72
|
})
|
|
@@ -65,6 +74,6 @@ function c(n) {
|
|
|
65
74
|
});
|
|
66
75
|
}
|
|
67
76
|
//#endregion
|
|
68
|
-
export {
|
|
77
|
+
export { c as VirtualizedTr, l as default };
|
|
69
78
|
|
|
70
79
|
//# sourceMappingURL=StyledVirtualTanStackTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StyledVirtualTanStackTable.js","names":[],"sources":["../../../src/components/TanStackTable/StyledVirtualTanStackTable.tsx"],"sourcesContent":["import { mergeSlotProps } from '@/utils/slots/SlotUtils'\nimport { VirtualItem, Virtualizer } from '@tanstack/react-virtual'\nimport { noop } from 'lodash-es'\nimport React, { useContext } from 'react'\nimport StyledTanStackTable, {\n StyledTanStackTableProps,\n} from './StyledTanStackTable'\n\nimport { TrProps } from './types'\n\ntype StyledVirtualTanStackTableProps<T = unknown> = Omit<\n StyledTanStackTableProps<T, VirtualItem>,\n 'slots' | 'rows' | 'rowTransform'\n> & {\n rowVirtualizer: Virtualizer<any, any>\n onTableContainerScroll?: (target: EventTarget) => void\n}\n\n// Context to pass the row virtualizer to the Tr component\nconst RowVirtualizerContext = React.createContext<\n Virtualizer<any, any> | undefined\n>(undefined)\n\n/**\n * A table row component modified to be used with @tanstack/react-virtual.\n */\nexport function VirtualizedTr<TData = unknown>(\n props: TrProps<TData, VirtualItem>,\n) {\n const { row: virtualItem, tableRow: _tableRow, ...rest } = props\n const rowVirtualizer = useContext(RowVirtualizerContext)\n return (\n <tr\n data-index={virtualItem.index} // needed for dynamic row height measurement\n ref={node => rowVirtualizer?.measureElement(node)} //measure dynamic row height\n {...rest}\n style={{\n ...rest.style,\n display: 'flex',\n position: 'absolute',\n transform: `translateY(${virtualItem.start}px)`, //this should always be a `style` as it changes on scroll\n width: '100%',\n alignItems: 'center',\n }}\n />\n )\n}\n\n/**\n * Stylized table component that is compatible with @tanstack/react-table and @tanstack/react-virtual to display a\n * virtualized table, i.e. a table that uses a virtualizer to only render the DOM nodes that contain data that is visible\n * within the viewport. For cases where the table rows do not need to be virtualized, use {@link StyledTanStackTable}.\n */\nexport default function StyledVirtualTanStackTable<T = unknown>(\n props: StyledVirtualTanStackTableProps<T>,\n) {\n const {\n table,\n styledTableContainerProps,\n fullWidth = true,\n rowVirtualizer,\n slotProps = {},\n onTableContainerScroll = noop,\n } = props\n\n const virtualRows = rowVirtualizer.getVirtualItems()\n\n return (\n <RowVirtualizerContext.Provider value={rowVirtualizer}>\n <StyledTanStackTable<T, VirtualItem>\n table={table}\n rows={virtualRows}\n rowTransform={row => table.getRowModel().rows[row.index]}\n fullWidth={fullWidth}\n styledTableContainerProps={{\n noStripedRows: true,\n ...styledTableContainerProps,\n style: {\n overflow: 'auto', //our scrollable table container\n position: 'relative', //needed for sticky header\n ...styledTableContainerProps?.style,\n },\n sx: {\n
|
|
1
|
+
{"version":3,"file":"StyledVirtualTanStackTable.js","names":[],"sources":["../../../src/components/TanStackTable/StyledVirtualTanStackTable.tsx"],"sourcesContent":["import { mergeSlotProps } from '@/utils/slots/SlotUtils'\nimport { SxProps, Theme } from '@mui/material'\nimport { VirtualItem, Virtualizer } from '@tanstack/react-virtual'\nimport { noop } from 'lodash-es'\nimport React, { useContext } from 'react'\nimport StyledTanStackTable, {\n StyledTanStackTableProps,\n} from './StyledTanStackTable'\n\nimport { TrProps } from './types'\n\ntype StyledVirtualTanStackTableProps<T = unknown> = Omit<\n StyledTanStackTableProps<T, VirtualItem>,\n 'slots' | 'rows' | 'rowTransform'\n> & {\n rowVirtualizer: Virtualizer<any, any>\n onTableContainerScroll?: (target: EventTarget) => void\n /**\n * When true, alternating rows are given a striped background. Unlike {@link StyledTableContainerProps.noStripedRows},\n * this does not rely on CSS `:nth-of-type`, since a virtualized row's position in the DOM is not\n * guaranteed to match its data index as rows are mounted/unmounted while scrolling. Instead, this\n * stripes rows based on the `data-index` attribute that {@link VirtualizedTr} sets on each `<tr>`.\n * @default false\n */\n striped?: boolean\n}\n\n// The last digit of a `data-index` that identifies an odd row, e.g. matches indices 1, 3, 11, 23.\nconst ODD_ROW_LAST_DIGITS = [1, 3, 5, 7, 9]\n\nconst stripedRowsSx = {\n // Exclude selected rows so this doesn't outrank a caller's own `[aria-selected=\"true\"]`\n // background rule (emotion's `sx` classes are more specific than a single class+attribute\n // selector, e.g. EntityFinder's `.EntityFinderDetailsViewRow[aria-selected='true']`).\n [ODD_ROW_LAST_DIGITS.map(\n digit => `&[data-index$=\"${digit}\"]:not([aria-selected=\"true\"])`,\n ).join(', ')]: {\n backgroundColor: 'var(--synapse-background-color-gray)',\n },\n}\n\n// Context to pass the row virtualizer to the Tr component\nconst RowVirtualizerContext = React.createContext<\n Virtualizer<any, any> | undefined\n>(undefined)\n\n/**\n * A table row component modified to be used with @tanstack/react-virtual.\n */\nexport function VirtualizedTr<TData = unknown>(\n props: TrProps<TData, VirtualItem>,\n) {\n const { row: virtualItem, tableRow: _tableRow, ...rest } = props\n const rowVirtualizer = useContext(RowVirtualizerContext)\n return (\n <tr\n data-index={virtualItem.index} // needed for dynamic row height measurement\n ref={node => rowVirtualizer?.measureElement(node)} //measure dynamic row height\n {...rest}\n style={{\n ...rest.style,\n display: 'flex',\n position: 'absolute',\n transform: `translateY(${virtualItem.start}px)`, //this should always be a `style` as it changes on scroll\n width: '100%',\n alignItems: 'center',\n }}\n />\n )\n}\n\n/**\n * Stylized table component that is compatible with @tanstack/react-table and @tanstack/react-virtual to display a\n * virtualized table, i.e. a table that uses a virtualizer to only render the DOM nodes that contain data that is visible\n * within the viewport. For cases where the table rows do not need to be virtualized, use {@link StyledTanStackTable}.\n */\nexport default function StyledVirtualTanStackTable<T = unknown>(\n props: StyledVirtualTanStackTableProps<T>,\n) {\n const {\n table,\n styledTableContainerProps,\n fullWidth = true,\n rowVirtualizer,\n slotProps = {},\n onTableContainerScroll = noop,\n striped = false,\n } = props\n\n const virtualRows = rowVirtualizer.getVirtualItems()\n\n return (\n <RowVirtualizerContext.Provider value={rowVirtualizer}>\n <StyledTanStackTable<T, VirtualItem>\n table={table}\n rows={virtualRows}\n rowTransform={row => table.getRowModel().rows[row.index]}\n fullWidth={fullWidth}\n styledTableContainerProps={{\n noStripedRows: true,\n ...styledTableContainerProps,\n style: {\n overflow: 'auto', //our scrollable table container\n position: 'relative', //needed for sticky header\n ...styledTableContainerProps?.style,\n },\n sx: [\n {\n 'thead > tr': {\n display: 'flex',\n width: '100%',\n },\n },\n striped && { 'tbody > tr': stripedRowsSx },\n styledTableContainerProps?.sx,\n ]\n .flat()\n .filter(Boolean) as SxProps<Theme>,\n onScroll: e => onTableContainerScroll(e.target),\n }}\n slots={{\n Tr: VirtualizedTr,\n }}\n slotProps={mergeSlotProps(slotProps, {\n Table: {\n style: {\n display: 'grid',\n },\n },\n Thead: {\n style: {\n display: 'grid',\n position: 'sticky',\n top: 0,\n zIndex: 1,\n },\n },\n Th: {\n style: {\n display: 'flex',\n },\n },\n Tbody: {\n style: {\n display: 'grid',\n height: `${rowVirtualizer.getTotalSize()}px`, //tells scrollbar how big the table is\n position: 'relative', //needed for absolute positioning of rows\n },\n },\n })}\n />\n </RowVirtualizerContext.Provider>\n )\n}\n"],"mappings":";;;;;;AA8BA,IAAM,IAAgB,GAInB;CAN0B;CAAG;CAAG;CAAG;CAAG;AAMtC,EAAoB,KACnB,MAAS,kBAAkB,EAAM,+BACnC,EAAE,KAAK,IAAI,IAAI,EACb,iBAAiB,uCACnB,EACF,GAGM,IAAwB,EAAM,cAElC,KAAA,CAAS;AAKX,SAAgB,EACd,GACA;CACA,IAAM,EAAE,KAAK,GAAa,UAAU,GAAW,GAAG,MAAS,GACrD,IAAiB,EAAW,CAAqB;CACvD,OACE,kBAAC,MAAD;EACE,cAAY,EAAY;EACxB,MAAK,MAAQ,GAAgB,eAAe,CAAI;EAChD,GAAI;EACJ,OAAO;GACL,GAAG,EAAK;GACR,SAAS;GACT,UAAU;GACV,WAAW,cAAc,EAAY,MAAM;GAC3C,OAAO;GACP,YAAY;EACd;CACD,CAAA;AAEL;AAOA,SAAwB,EACtB,GACA;CACA,IAAM,EACJ,UACA,8BACA,eAAY,IACZ,mBACA,eAAY,CAAC,GACb,4BAAyB,GACzB,aAAU,OACR,GAEE,IAAc,EAAe,gBAAgB;CAEnD,OACE,kBAAC,EAAsB,UAAvB;EAAgC,OAAO;YACrC,kBAAC,GAAD;GACS;GACP,MAAM;GACN,eAAc,MAAO,EAAM,YAAY,EAAE,KAAK,EAAI;GACvC;GACX,2BAA2B;IACzB,eAAe;IACf,GAAG;IACH,OAAO;KACL,UAAU;KACV,UAAU;KACV,GAAG,GAA2B;IAChC;IACA,IAAI;KACF,EACE,cAAc;MACZ,SAAS;MACT,OAAO;KACT,EACF;KACA,KAAW,EAAE,cAAc,EAAc;KACzC,GAA2B;IAC7B,EACG,KAAK,EACL,OAAO,OAAO;IACjB,WAAU,MAAK,EAAuB,EAAE,MAAM;GAChD;GACA,OAAO,EACL,IAAI,EACN;GACA,WAAW,EAAe,GAAW;IACnC,OAAO,EACL,OAAO,EACL,SAAS,OACX,EACF;IACA,OAAO,EACL,OAAO;KACL,SAAS;KACT,UAAU;KACV,KAAK;KACL,QAAQ;IACV,EACF;IACA,IAAI,EACF,OAAO,EACL,SAAS,OACX,EACF;IACA,OAAO,EACL,OAAO;KACL,SAAS;KACT,QAAQ,GAAG,EAAe,aAAa,EAAE;KACzC,UAAU;IACZ,EACF;GACF,CAAC;EACF,CAAA;CAC6B,CAAA;AAEpC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/** Once the user has scrolled within this many pixels of the bottom, fetch the next page. */
|
|
2
|
+
export declare const SCROLL_FETCH_THRESHOLD_PX = 500;
|
|
3
|
+
export type UseFetchNextPageOnScrollToBottomParams = {
|
|
4
|
+
containerRef: React.RefObject<HTMLDivElement | null>;
|
|
5
|
+
hasNextPage?: boolean;
|
|
6
|
+
isFetchingNextPage?: boolean;
|
|
7
|
+
fetchNextPage?: () => Promise<unknown>;
|
|
8
|
+
/**
|
|
9
|
+
* Re-checks the scroll position whenever this changes, in case the container is already
|
|
10
|
+
* scrolled to the bottom -- e.g. on mount, or right after a fetch resolves with data that
|
|
11
|
+
* didn't fill the container.
|
|
12
|
+
*/
|
|
13
|
+
data: unknown;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Returns a scroll-event callback that fetches the next page of a paginated/infinite query once
|
|
17
|
+
* `containerRef`'s element is within {@link SCROLL_FETCH_THRESHOLD_PX} of its bottom. Also
|
|
18
|
+
* re-runs that check whenever `data` changes.
|
|
19
|
+
*/
|
|
20
|
+
export declare function useFetchNextPageOnScrollToBottom(params: UseFetchNextPageOnScrollToBottomParams): (containerRefElement?: HTMLDivElement | null) => void;
|
|
21
|
+
//# sourceMappingURL=useFetchNextPageOnScrollToBottom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFetchNextPageOnScrollToBottom.d.ts","sourceRoot":"","sources":["../../../src/components/TanStackTable/useFetchNextPageOnScrollToBottom.ts"],"names":[],"mappings":"AAEA,6FAA6F;AAC7F,eAAO,MAAM,yBAAyB,MAAM,CAAA;AAE5C,MAAM,MAAM,sCAAsC,GAAG;IACnD,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IACpD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,sCAAsC,0BAMrB,cAAc,GAAG,IAAI,UAsB/C"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useCallback as e, useEffect as t } from "react";
|
|
2
|
+
//#region src/components/TanStackTable/useFetchNextPageOnScrollToBottom.ts
|
|
3
|
+
var n = 500;
|
|
4
|
+
function r(n) {
|
|
5
|
+
let { containerRef: r, hasNextPage: i, isFetchingNextPage: a, fetchNextPage: o, data: s } = n, c = e((e) => {
|
|
6
|
+
if (e) {
|
|
7
|
+
let { scrollHeight: t, scrollTop: n, clientHeight: r } = e;
|
|
8
|
+
t - n - r < 500 && !a && i && o && o();
|
|
9
|
+
}
|
|
10
|
+
}, [
|
|
11
|
+
o,
|
|
12
|
+
a,
|
|
13
|
+
i
|
|
14
|
+
]);
|
|
15
|
+
return t(() => {
|
|
16
|
+
c(r.current);
|
|
17
|
+
}, [s, c]), c;
|
|
18
|
+
}
|
|
19
|
+
//#endregion
|
|
20
|
+
export { n as SCROLL_FETCH_THRESHOLD_PX, r as useFetchNextPageOnScrollToBottom };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=useFetchNextPageOnScrollToBottom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFetchNextPageOnScrollToBottom.js","names":[],"sources":["../../../src/components/TanStackTable/useFetchNextPageOnScrollToBottom.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react'\n\n/** Once the user has scrolled within this many pixels of the bottom, fetch the next page. */\nexport const SCROLL_FETCH_THRESHOLD_PX = 500\n\nexport type UseFetchNextPageOnScrollToBottomParams = {\n containerRef: React.RefObject<HTMLDivElement | null>\n hasNextPage?: boolean\n isFetchingNextPage?: boolean\n fetchNextPage?: () => Promise<unknown>\n /**\n * Re-checks the scroll position whenever this changes, in case the container is already\n * scrolled to the bottom -- e.g. on mount, or right after a fetch resolves with data that\n * didn't fill the container.\n */\n data: unknown\n}\n\n/**\n * Returns a scroll-event callback that fetches the next page of a paginated/infinite query once\n * `containerRef`'s element is within {@link SCROLL_FETCH_THRESHOLD_PX} of its bottom. Also\n * re-runs that check whenever `data` changes.\n */\nexport function useFetchNextPageOnScrollToBottom(\n params: UseFetchNextPageOnScrollToBottomParams,\n) {\n const { containerRef, hasNextPage, isFetchingNextPage, fetchNextPage, data } =\n params\n\n const fetchMoreOnBottomReached = useCallback(\n (containerRefElement?: HTMLDivElement | null) => {\n if (containerRefElement) {\n const { scrollHeight, scrollTop, clientHeight } = containerRefElement\n if (\n scrollHeight - scrollTop - clientHeight < SCROLL_FETCH_THRESHOLD_PX &&\n !isFetchingNextPage &&\n hasNextPage &&\n fetchNextPage\n ) {\n void fetchNextPage()\n }\n }\n },\n [fetchNextPage, isFetchingNextPage, hasNextPage],\n )\n\n useEffect(() => {\n fetchMoreOnBottomReached(containerRef.current)\n // oxlint-disable-next-line react-hooks/exhaustive-deps\n }, [data, fetchMoreOnBottomReached])\n\n return fetchMoreOnBottomReached\n}\n"],"mappings":";;AAGA,IAAa,IAA4B;AAoBzC,SAAgB,EACd,GACA;CACA,IAAM,EAAE,iBAAc,gBAAa,uBAAoB,kBAAe,YACpE,GAEI,IAA2B,GAC9B,MAAgD;EAC/C,IAAI,GAAqB;GACvB,IAAM,EAAE,iBAAc,cAAW,oBAAiB;GAClD,AACE,IAAe,IAAY,IAAA,OAC3B,CAAC,KACD,KACA,KAEA,EAAmB;EAEvB;CACF,GACA;EAAC;EAAe;EAAoB;CAAW,CACjD;CAOA,OALA,QAAgB;EACd,EAAyB,EAAa,OAAO;CAE/C,GAAG,CAAC,GAAM,CAAwB,CAAC,GAE5B;AACT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessRequirementDashboard.d.ts","sourceRoot":"","sources":["../../../src/components/dataaccess/AccessRequirementDashboard.tsx"],"names":[],"mappings":"AAcA,eAAO,MAAM,8BAA8B,aAAa,CAAA;AACxD,eAAO,MAAM,mCAAmC,qBAAqB,CAAA;AACrE,eAAO,MAAM,4BAA4B,eAAe,CAAA;AACxD,eAAO,MAAM,wBAAwB,SAAS,CAAA;AAE9C,MAAM,MAAM,+BAA+B,GAAG;IAC5C,mCAAmC,CAAC,EAAE,MAAM,IAAI,CAAA;CACjD,CAAA;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,+BAA+B,
|
|
1
|
+
{"version":3,"file":"AccessRequirementDashboard.d.ts","sourceRoot":"","sources":["../../../src/components/dataaccess/AccessRequirementDashboard.tsx"],"names":[],"mappings":"AAcA,eAAO,MAAM,8BAA8B,aAAa,CAAA;AACxD,eAAO,MAAM,mCAAmC,qBAAqB,CAAA;AACrE,eAAO,MAAM,4BAA4B,eAAe,CAAA;AACxD,eAAO,MAAM,wBAAwB,SAAS,CAAA;AAE9C,MAAM,MAAM,+BAA+B,GAAG;IAC5C,mCAAmC,CAAC,EAAE,MAAM,IAAI,CAAA;CACjD,CAAA;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,+BAA+B,2CA8MvC;AAED,eAAe,0BAA0B,CAAA"}
|
|
@@ -7,86 +7,86 @@ import { AccessRequirementTable as a } from "./AccessRequirementTable.js";
|
|
|
7
7
|
import { useCallback as o, useEffect as s, useMemo as c, useState as l } from "react";
|
|
8
8
|
import { omitBy as u } from "lodash-es";
|
|
9
9
|
import { Grid as d, InputAdornment as f, TextField as p, Typography as m } from "@mui/material";
|
|
10
|
-
import {
|
|
11
|
-
import { EntityType as
|
|
12
|
-
import { SearchOutlined as
|
|
13
|
-
import { useLocation as
|
|
14
|
-
import { useDebouncedState as
|
|
10
|
+
import { Fragment as h, jsx as g, jsxs as _ } from "react/jsx-runtime";
|
|
11
|
+
import { EntityType as v } from "@sage-bionetworks/synapse-client";
|
|
12
|
+
import { SearchOutlined as y } from "@mui/icons-material";
|
|
13
|
+
import { useLocation as b, useNavigate as x } from "react-router";
|
|
14
|
+
import { useDebouncedState as S } from "@react-hookz/web";
|
|
15
15
|
//#region src/components/dataaccess/AccessRequirementDashboard.tsx
|
|
16
|
-
var
|
|
17
|
-
function
|
|
18
|
-
let { onCreateNewAccessRequirementClicked:
|
|
16
|
+
var C = "nameOrID", w = "relatedProjectId", T = "reviewerId", E = "type";
|
|
17
|
+
function D(D) {
|
|
18
|
+
let { onCreateNewAccessRequirementClicked: O } = D, k = b(), A = c(() => new URLSearchParams(k.search), [k.search]), j = x(), [M, N] = S(A.get("nameOrID") ?? "", 500), [P, F] = S(A.get("relatedProjectId") ?? void 0, 500), [I, L] = S(A.get("reviewerId") ?? void 0, 500), [R, z] = l(A.get("type") ?? void 0), B = c(() => !!(P && !e.exec(P)), [P]), [V, H] = l(!1);
|
|
19
19
|
s(() => {
|
|
20
20
|
let e = u({
|
|
21
|
-
[
|
|
22
|
-
[
|
|
23
|
-
[
|
|
24
|
-
[
|
|
21
|
+
[C]: M,
|
|
22
|
+
[w]: P,
|
|
23
|
+
[T]: I,
|
|
24
|
+
[E]: R
|
|
25
25
|
}, (e) => e === void 0 || e === ""), t = new URLSearchParams(e);
|
|
26
|
-
|
|
27
|
-
pathname:
|
|
26
|
+
j({
|
|
27
|
+
pathname: k.pathname,
|
|
28
28
|
search: t.toString()
|
|
29
29
|
}, { replace: !0 });
|
|
30
30
|
}, [
|
|
31
|
+
M,
|
|
32
|
+
P,
|
|
33
|
+
I,
|
|
34
|
+
R,
|
|
31
35
|
j,
|
|
32
|
-
|
|
33
|
-
F,
|
|
34
|
-
L,
|
|
35
|
-
A,
|
|
36
|
-
O.pathname
|
|
36
|
+
k.pathname
|
|
37
37
|
]);
|
|
38
|
-
let
|
|
39
|
-
|
|
40
|
-
}, [
|
|
38
|
+
let U = o((e) => {
|
|
39
|
+
L(e || void 0);
|
|
40
|
+
}, [L]);
|
|
41
41
|
return /* @__PURE__ */ g("div", {
|
|
42
42
|
className: "AccessRequirementDashboard",
|
|
43
|
-
children: [
|
|
44
|
-
/* @__PURE__ */
|
|
43
|
+
children: /* @__PURE__ */ _(h, { children: [
|
|
44
|
+
/* @__PURE__ */ g(i, {
|
|
45
45
|
configuration: {
|
|
46
46
|
initialScope: n.ALL_PROJECTS,
|
|
47
47
|
initialContainer: null,
|
|
48
48
|
selectMultiple: !1,
|
|
49
|
-
selectableTypes: [
|
|
49
|
+
selectableTypes: [v.project],
|
|
50
50
|
treeOnly: !0
|
|
51
51
|
},
|
|
52
|
-
show:
|
|
52
|
+
show: V,
|
|
53
53
|
onCancel: () => {
|
|
54
|
-
|
|
54
|
+
H(!1);
|
|
55
55
|
},
|
|
56
56
|
title: "Select Project to Filter Access Requirements",
|
|
57
57
|
promptCopy: "Select a project to find Access Requirements that are associated with that project. Access Requirements will be found if the Access Requirement is applied to the project, or if it is applied to any item inside the project.",
|
|
58
58
|
onConfirm: (e) => {
|
|
59
|
-
|
|
59
|
+
F(e[0].targetId), H(!1);
|
|
60
60
|
},
|
|
61
61
|
confirmButtonCopy: "Select"
|
|
62
62
|
}),
|
|
63
|
-
/* @__PURE__ */
|
|
63
|
+
/* @__PURE__ */ _(d, {
|
|
64
64
|
component: "form",
|
|
65
65
|
container: !0,
|
|
66
66
|
spacing: 2,
|
|
67
67
|
className: "InputPanel",
|
|
68
68
|
children: [
|
|
69
|
-
/* @__PURE__ */
|
|
69
|
+
/* @__PURE__ */ g(d, {
|
|
70
70
|
size: {
|
|
71
71
|
xs: 12,
|
|
72
72
|
md: 4
|
|
73
73
|
},
|
|
74
|
-
children: /* @__PURE__ */
|
|
74
|
+
children: /* @__PURE__ */ g(p, {
|
|
75
75
|
label: "Filter by Access Requirement Name or ID",
|
|
76
76
|
id: "ar-name-filter",
|
|
77
77
|
type: "text",
|
|
78
78
|
fullWidth: !0,
|
|
79
79
|
placeholder: "Search for an Access Requirement Name or ID",
|
|
80
80
|
onChange: (e) => {
|
|
81
|
-
|
|
81
|
+
N(e.target.value);
|
|
82
82
|
},
|
|
83
|
-
slotProps: { input: { endAdornment: /* @__PURE__ */
|
|
83
|
+
slotProps: { input: { endAdornment: /* @__PURE__ */ g(f, {
|
|
84
84
|
position: "end",
|
|
85
|
-
children: /* @__PURE__ */
|
|
85
|
+
children: /* @__PURE__ */ g(y, {})
|
|
86
86
|
}) } }
|
|
87
87
|
})
|
|
88
88
|
}),
|
|
89
|
-
/* @__PURE__ */
|
|
89
|
+
/* @__PURE__ */ _(d, {
|
|
90
90
|
size: {
|
|
91
91
|
xs: 12,
|
|
92
92
|
md: 4
|
|
@@ -96,58 +96,58 @@ function E(E) {
|
|
|
96
96
|
gap: "5px",
|
|
97
97
|
alignItems: "stretch"
|
|
98
98
|
},
|
|
99
|
-
children: [/* @__PURE__ */
|
|
99
|
+
children: [/* @__PURE__ */ g(p, {
|
|
100
100
|
label: "Filter by Project",
|
|
101
101
|
id: "project-id-filter",
|
|
102
102
|
type: "text",
|
|
103
103
|
fullWidth: !0,
|
|
104
104
|
placeholder: "Enter a project SynID",
|
|
105
|
-
error:
|
|
106
|
-
helperText:
|
|
105
|
+
error: B,
|
|
106
|
+
helperText: B ? "Value must be a Synapse ID, e.g. \"syn1234\"" : void 0,
|
|
107
107
|
onChange: (e) => {
|
|
108
108
|
let t = e.target.value;
|
|
109
|
-
|
|
109
|
+
F(t === "" ? void 0 : t);
|
|
110
110
|
}
|
|
111
|
-
}), /* @__PURE__ */
|
|
111
|
+
}), /* @__PURE__ */ g(r, {
|
|
112
112
|
variant: "outlined",
|
|
113
113
|
color: "primary",
|
|
114
114
|
onClick: () => {
|
|
115
|
-
|
|
115
|
+
H(!0);
|
|
116
116
|
},
|
|
117
117
|
children: "Browse"
|
|
118
118
|
})]
|
|
119
119
|
}),
|
|
120
|
-
/* @__PURE__ */
|
|
120
|
+
/* @__PURE__ */ _(d, {
|
|
121
121
|
size: {
|
|
122
122
|
xs: 12,
|
|
123
123
|
md: 4
|
|
124
124
|
},
|
|
125
|
-
children: [/* @__PURE__ */
|
|
125
|
+
children: [/* @__PURE__ */ g(m, {
|
|
126
126
|
component: "label",
|
|
127
127
|
variant: "smallText2",
|
|
128
128
|
htmlFor: "reviewer-filter",
|
|
129
129
|
children: "Filter by Reviewer"
|
|
130
|
-
}), /* @__PURE__ */
|
|
130
|
+
}), /* @__PURE__ */ g(t, {
|
|
131
131
|
inputId: "reviewer-filter",
|
|
132
132
|
placeholder: "Search for a username or team name",
|
|
133
|
-
defaultValue:
|
|
134
|
-
onChange:
|
|
133
|
+
defaultValue: I,
|
|
134
|
+
onChange: U
|
|
135
135
|
})]
|
|
136
136
|
})
|
|
137
137
|
]
|
|
138
138
|
}),
|
|
139
|
-
/* @__PURE__ */
|
|
140
|
-
nameOrID:
|
|
141
|
-
relatedProjectId:
|
|
142
|
-
reviewerId:
|
|
143
|
-
onCreateNewAccessRequirementClicked:
|
|
144
|
-
typeFilter:
|
|
145
|
-
onTypeFilterChange:
|
|
139
|
+
/* @__PURE__ */ g(a, {
|
|
140
|
+
nameOrID: M,
|
|
141
|
+
relatedProjectId: P,
|
|
142
|
+
reviewerId: I,
|
|
143
|
+
onCreateNewAccessRequirementClicked: O,
|
|
144
|
+
typeFilter: R,
|
|
145
|
+
onTypeFilterChange: z
|
|
146
146
|
})
|
|
147
|
-
]
|
|
147
|
+
] })
|
|
148
148
|
});
|
|
149
149
|
}
|
|
150
150
|
//#endregion
|
|
151
|
-
export {
|
|
151
|
+
export { C as AR_NAME_OR_ID_SEARCH_PARAM_KEY, E as AR_TYPE_SEARCH_PARAM_KEY, D as AccessRequirementDashboard, D as default, w as RELATED_PROJECT_ID_SEARCH_PARAM_KEY, T as REVIEWER_ID_SEARCH_PARAM_KEY };
|
|
152
152
|
|
|
153
153
|
//# sourceMappingURL=AccessRequirementDashboard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessRequirementDashboard.js","names":[],"sources":["../../../src/components/dataaccess/AccessRequirementDashboard.tsx"],"sourcesContent":["import { InputSizedButton } from '@/components/styled/InputSizedButton'\nimport { SYNAPSE_ENTITY_ID_REGEX } from '@/utils/functions/RegularExpressions'\nimport { SearchOutlined } from '@mui/icons-material'\nimport { Grid, InputAdornment, TextField, Typography } from '@mui/material'\nimport { useDebouncedState } from '@react-hookz/web'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport { omitBy } from 'lodash-es'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router'\nimport { EntityFinderModal } from '../EntityFinder/EntityFinderModal'\nimport { FinderScope } from '../EntityFinder/tree/EntityTree'\nimport UserSearchBox from '../UserSearchBox/UserSearchBox'\nimport { AccessRequirementTable } from './AccessRequirementTable'\n\nexport const AR_NAME_OR_ID_SEARCH_PARAM_KEY = 'nameOrID'\nexport const RELATED_PROJECT_ID_SEARCH_PARAM_KEY = 'relatedProjectId'\nexport const REVIEWER_ID_SEARCH_PARAM_KEY = 'reviewerId'\nexport const AR_TYPE_SEARCH_PARAM_KEY = 'type'\n\nexport type AccessRequirementDashboardProps = {\n onCreateNewAccessRequirementClicked?: () => void\n}\n\nexport function AccessRequirementDashboard(\n props: AccessRequirementDashboardProps,\n) {\n // Amount of time to wait after an input value changes before sending a new request\n const INPUT_CHANGE_DEBOUNCE_DELAY_MS = 500\n\n const { onCreateNewAccessRequirementClicked } = props\n\n const location = useLocation()\n const urlSearchParams = useMemo(\n () => new URLSearchParams(location.search),\n [location.search],\n )\n const navigate = useNavigate()\n\n /**\n * When an input changes, update the props passed to the table and update the search params.\n *\n * Debounced to prevent firing many queries while the user is entering text.\n */\n const [nameOrID, setNameOrID] = useDebouncedState<string>(\n urlSearchParams.get(AR_NAME_OR_ID_SEARCH_PARAM_KEY) ?? '',\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [relatedProjectId, setRelatedProjectId] = useDebouncedState<\n string | undefined\n >(\n urlSearchParams.get(RELATED_PROJECT_ID_SEARCH_PARAM_KEY) ?? undefined,\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [reviewerId, setReviewerId] = useDebouncedState<string | undefined>(\n urlSearchParams.get(REVIEWER_ID_SEARCH_PARAM_KEY) ?? undefined,\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [typeFilter, setTypeFilter] = useState<string | undefined>(\n urlSearchParams.get(AR_TYPE_SEARCH_PARAM_KEY) ?? undefined,\n )\n\n const projectFilterFieldIsError: boolean = useMemo(\n () =>\n !!(relatedProjectId && !SYNAPSE_ENTITY_ID_REGEX.exec(relatedProjectId)),\n [relatedProjectId],\n )\n\n const [showEntityFinder, setShowEntityFinder] = useState(false)\n\n // Update the QueryParams when the filter state changes\n useEffect(() => {\n // Don't include undefined/empty parameters\n const params = omitBy(\n {\n // Sync the search params state with the debounced props\n [AR_NAME_OR_ID_SEARCH_PARAM_KEY]: nameOrID,\n [RELATED_PROJECT_ID_SEARCH_PARAM_KEY]: relatedProjectId,\n [REVIEWER_ID_SEARCH_PARAM_KEY]: reviewerId,\n [AR_TYPE_SEARCH_PARAM_KEY]: typeFilter, // typeFilter state is not debounced\n },\n item => item === undefined || item === '',\n ) as Record<string, string>\n\n // Add the new params to the URL\n // Replace history because intuitively, the user has not navigated to a new page\n const paramsObject = new URLSearchParams(params)\n navigate(\n {\n pathname: location.pathname,\n search: paramsObject.toString(),\n },\n { replace: true },\n )\n }, [\n nameOrID,\n relatedProjectId,\n reviewerId,\n typeFilter,\n navigate,\n location.pathname,\n ])\n\n const onReviewerChange = useCallback(\n (selected: string | null) => {\n if (selected) {\n setReviewerId(selected)\n } else {\n setReviewerId(undefined)\n }\n },\n [setReviewerId],\n )\n\n return (\n <div className=\"AccessRequirementDashboard\">\n <EntityFinderModal\n configuration={{\n initialScope: FinderScope.ALL_PROJECTS,\n initialContainer: null,\n selectMultiple: false,\n selectableTypes: [EntityType.project],\n treeOnly: true,\n }}\n show={showEntityFinder}\n onCancel={() => {\n setShowEntityFinder(false)\n }}\n title={'Select Project to Filter Access Requirements'}\n promptCopy={\n 'Select a project to find Access Requirements that are associated with that project. Access Requirements will be found if the Access Requirement is applied to the project, or if it is applied to any item inside the project.'\n }\n onConfirm={selected => {\n setRelatedProjectId(selected[0].targetId)\n setShowEntityFinder(false)\n }}\n confirmButtonCopy={'Select'}\n />\n <Grid component={'form'} container spacing={2} className=\"InputPanel\">\n <Grid size={{ xs: 12, md: 4 }}>\n <TextField\n label=\"Filter by Access Requirement Name or ID\"\n id=\"ar-name-filter\"\n type=\"text\"\n fullWidth\n placeholder=\"Search for an Access Requirement Name or ID\"\n onChange={e => {\n setNameOrID(e.target.value)\n }}\n slotProps={{\n input: {\n endAdornment: (\n <InputAdornment position=\"end\">\n <SearchOutlined />\n </InputAdornment>\n ),\n },\n }}\n />\n </Grid>\n <Grid\n size={{ xs: 12, md: 4 }}\n sx={{\n display: 'flex',\n gap: '5px',\n alignItems: 'stretch',\n }}\n >\n <TextField\n label=\"Filter by Project\"\n id=\"project-id-filter\"\n type=\"text\"\n fullWidth\n placeholder=\"Enter a project SynID\"\n error={projectFilterFieldIsError}\n helperText={\n projectFilterFieldIsError\n ? 'Value must be a Synapse ID, e.g. \"syn1234\"'\n : undefined\n }\n onChange={e => {\n const newValue = e.target.value\n if (newValue === '') {\n setRelatedProjectId(undefined)\n } else {\n setRelatedProjectId(newValue)\n }\n }}\n />\n <InputSizedButton\n variant=\"outlined\"\n color=\"primary\"\n onClick={() => {\n setShowEntityFinder(true)\n }}\n >\n Browse\n </InputSizedButton>\n </Grid>\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"reviewer-filter\"\n >\n Filter by Reviewer\n </Typography>\n <UserSearchBox\n inputId=\"reviewer-filter\"\n placeholder=\"Search for a username or team name\"\n defaultValue={reviewerId}\n onChange={onReviewerChange}\n />\n </Grid>\n </Grid>\n <AccessRequirementTable\n nameOrID={nameOrID}\n relatedProjectId={relatedProjectId}\n reviewerId={reviewerId}\n onCreateNewAccessRequirementClicked={\n onCreateNewAccessRequirementClicked\n }\n typeFilter={typeFilter}\n onTypeFilterChange={setTypeFilter}\n />\n </div>\n )\n}\n\nexport default AccessRequirementDashboard\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AccessRequirementDashboard.js","names":[],"sources":["../../../src/components/dataaccess/AccessRequirementDashboard.tsx"],"sourcesContent":["import { InputSizedButton } from '@/components/styled/InputSizedButton'\nimport { SYNAPSE_ENTITY_ID_REGEX } from '@/utils/functions/RegularExpressions'\nimport { SearchOutlined } from '@mui/icons-material'\nimport { Grid, InputAdornment, TextField, Typography } from '@mui/material'\nimport { useDebouncedState } from '@react-hookz/web'\nimport { EntityType } from '@sage-bionetworks/synapse-client'\nimport { omitBy } from 'lodash-es'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useLocation, useNavigate } from 'react-router'\nimport { EntityFinderModal } from '../EntityFinder/EntityFinderModal'\nimport { FinderScope } from '../EntityFinder/tree/EntityTree'\nimport UserSearchBox from '../UserSearchBox/UserSearchBox'\nimport { AccessRequirementTable } from './AccessRequirementTable'\n\nexport const AR_NAME_OR_ID_SEARCH_PARAM_KEY = 'nameOrID'\nexport const RELATED_PROJECT_ID_SEARCH_PARAM_KEY = 'relatedProjectId'\nexport const REVIEWER_ID_SEARCH_PARAM_KEY = 'reviewerId'\nexport const AR_TYPE_SEARCH_PARAM_KEY = 'type'\n\nexport type AccessRequirementDashboardProps = {\n onCreateNewAccessRequirementClicked?: () => void\n}\n\nexport function AccessRequirementDashboard(\n props: AccessRequirementDashboardProps,\n) {\n // Amount of time to wait after an input value changes before sending a new request\n const INPUT_CHANGE_DEBOUNCE_DELAY_MS = 500\n\n const { onCreateNewAccessRequirementClicked } = props\n\n const location = useLocation()\n const urlSearchParams = useMemo(\n () => new URLSearchParams(location.search),\n [location.search],\n )\n const navigate = useNavigate()\n\n /**\n * When an input changes, update the props passed to the table and update the search params.\n *\n * Debounced to prevent firing many queries while the user is entering text.\n */\n const [nameOrID, setNameOrID] = useDebouncedState<string>(\n urlSearchParams.get(AR_NAME_OR_ID_SEARCH_PARAM_KEY) ?? '',\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [relatedProjectId, setRelatedProjectId] = useDebouncedState<\n string | undefined\n >(\n urlSearchParams.get(RELATED_PROJECT_ID_SEARCH_PARAM_KEY) ?? undefined,\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [reviewerId, setReviewerId] = useDebouncedState<string | undefined>(\n urlSearchParams.get(REVIEWER_ID_SEARCH_PARAM_KEY) ?? undefined,\n INPUT_CHANGE_DEBOUNCE_DELAY_MS,\n )\n const [typeFilter, setTypeFilter] = useState<string | undefined>(\n urlSearchParams.get(AR_TYPE_SEARCH_PARAM_KEY) ?? undefined,\n )\n\n const projectFilterFieldIsError: boolean = useMemo(\n () =>\n !!(relatedProjectId && !SYNAPSE_ENTITY_ID_REGEX.exec(relatedProjectId)),\n [relatedProjectId],\n )\n\n const [showEntityFinder, setShowEntityFinder] = useState(false)\n\n // Update the QueryParams when the filter state changes\n useEffect(() => {\n // Don't include undefined/empty parameters\n const params = omitBy(\n {\n // Sync the search params state with the debounced props\n [AR_NAME_OR_ID_SEARCH_PARAM_KEY]: nameOrID,\n [RELATED_PROJECT_ID_SEARCH_PARAM_KEY]: relatedProjectId,\n [REVIEWER_ID_SEARCH_PARAM_KEY]: reviewerId,\n [AR_TYPE_SEARCH_PARAM_KEY]: typeFilter, // typeFilter state is not debounced\n },\n item => item === undefined || item === '',\n ) as Record<string, string>\n\n // Add the new params to the URL\n // Replace history because intuitively, the user has not navigated to a new page\n const paramsObject = new URLSearchParams(params)\n navigate(\n {\n pathname: location.pathname,\n search: paramsObject.toString(),\n },\n { replace: true },\n )\n }, [\n nameOrID,\n relatedProjectId,\n reviewerId,\n typeFilter,\n navigate,\n location.pathname,\n ])\n\n const onReviewerChange = useCallback(\n (selected: string | null) => {\n if (selected) {\n setReviewerId(selected)\n } else {\n setReviewerId(undefined)\n }\n },\n [setReviewerId],\n )\n\n const accessRequirementsPanel = (\n <>\n <EntityFinderModal\n configuration={{\n initialScope: FinderScope.ALL_PROJECTS,\n initialContainer: null,\n selectMultiple: false,\n selectableTypes: [EntityType.project],\n treeOnly: true,\n }}\n show={showEntityFinder}\n onCancel={() => {\n setShowEntityFinder(false)\n }}\n title={'Select Project to Filter Access Requirements'}\n promptCopy={\n 'Select a project to find Access Requirements that are associated with that project. Access Requirements will be found if the Access Requirement is applied to the project, or if it is applied to any item inside the project.'\n }\n onConfirm={selected => {\n setRelatedProjectId(selected[0].targetId)\n setShowEntityFinder(false)\n }}\n confirmButtonCopy={'Select'}\n />\n <Grid component={'form'} container spacing={2} className=\"InputPanel\">\n <Grid size={{ xs: 12, md: 4 }}>\n <TextField\n label=\"Filter by Access Requirement Name or ID\"\n id=\"ar-name-filter\"\n type=\"text\"\n fullWidth\n placeholder=\"Search for an Access Requirement Name or ID\"\n onChange={e => {\n setNameOrID(e.target.value)\n }}\n slotProps={{\n input: {\n endAdornment: (\n <InputAdornment position=\"end\">\n <SearchOutlined />\n </InputAdornment>\n ),\n },\n }}\n />\n </Grid>\n <Grid\n size={{ xs: 12, md: 4 }}\n sx={{\n display: 'flex',\n gap: '5px',\n alignItems: 'stretch',\n }}\n >\n <TextField\n label=\"Filter by Project\"\n id=\"project-id-filter\"\n type=\"text\"\n fullWidth\n placeholder=\"Enter a project SynID\"\n error={projectFilterFieldIsError}\n helperText={\n projectFilterFieldIsError\n ? 'Value must be a Synapse ID, e.g. \"syn1234\"'\n : undefined\n }\n onChange={e => {\n const newValue = e.target.value\n if (newValue === '') {\n setRelatedProjectId(undefined)\n } else {\n setRelatedProjectId(newValue)\n }\n }}\n />\n <InputSizedButton\n variant=\"outlined\"\n color=\"primary\"\n onClick={() => {\n setShowEntityFinder(true)\n }}\n >\n Browse\n </InputSizedButton>\n </Grid>\n <Grid size={{ xs: 12, md: 4 }}>\n <Typography\n component=\"label\"\n variant=\"smallText2\"\n htmlFor=\"reviewer-filter\"\n >\n Filter by Reviewer\n </Typography>\n <UserSearchBox\n inputId=\"reviewer-filter\"\n placeholder=\"Search for a username or team name\"\n defaultValue={reviewerId}\n onChange={onReviewerChange}\n />\n </Grid>\n </Grid>\n <AccessRequirementTable\n nameOrID={nameOrID}\n relatedProjectId={relatedProjectId}\n reviewerId={reviewerId}\n onCreateNewAccessRequirementClicked={\n onCreateNewAccessRequirementClicked\n }\n typeFilter={typeFilter}\n onTypeFilterChange={setTypeFilter}\n />\n </>\n )\n\n return (\n <div className=\"AccessRequirementDashboard\">{accessRequirementsPanel}</div>\n )\n}\n\nexport default AccessRequirementDashboard\n"],"mappings":";;;;;;;;;;;;;;;AAcA,IAAa,IAAiC,YACjC,IAAsC,oBACtC,IAA+B,cAC/B,IAA2B;AAMxC,SAAgB,EACd,GACA;CAEA,IAEM,EAAE,2CAAwC,GAE1C,IAAW,EAAY,GACvB,IAAkB,QAChB,IAAI,gBAAgB,EAAS,MAAM,GACzC,CAAC,EAAS,MAAM,CAClB,GACM,IAAW,EAAY,GAOvB,CAAC,GAAU,KAAe,EAC9B,EAAgB,IAAA,UAAkC,KAAK,IACvD,GACF,GACM,CAAC,GAAkB,KAAuB,EAG9C,EAAgB,IAAA,kBAAuC,KAAK,KAAA,GAC5D,GACF,GACM,CAAC,GAAY,KAAiB,EAClC,EAAgB,IAAA,YAAgC,KAAK,KAAA,GACrD,GACF,GACM,CAAC,GAAY,KAAiB,EAClC,EAAgB,IAAA,MAA4B,KAAK,KAAA,CACnD,GAEM,IAAqC,QAEvC,CAAC,EAAE,KAAoB,CAAC,EAAwB,KAAK,CAAgB,IACvE,CAAC,CAAgB,CACnB,GAEM,CAAC,GAAkB,KAAuB,EAAS,EAAK;CAG9D,QAAgB;EAEd,IAAM,IAAS,EACb;IAEG,IAAiC;IACjC,IAAsC;IACtC,IAA+B;IAC/B,IAA2B;EAC9B,IACA,MAAQ,MAAS,KAAA,KAAa,MAAS,EACzC,GAIM,IAAe,IAAI,gBAAgB,CAAM;EAC/C,EACE;GACE,UAAU,EAAS;GACnB,QAAQ,EAAa,SAAS;EAChC,GACA,EAAE,SAAS,GAAK,CAClB;CACF,GAAG;EACD;EACA;EACA;EACA;EACA;EACA,EAAS;CACX,CAAC;CAED,IAAM,IAAmB,GACtB,MAA4B;EAC3B,AACE,EADE,KAGY,KAAA,CAAS;CAE3B,GACA,CAAC,CAAa,CAChB;CAoHA,OACE,kBAAC,OAAD;EAAK,WAAU;YAlHf,kBAAA,GAAA,EAAA,UAAA;GACE,kBAAC,GAAD;IACE,eAAe;KACb,cAAc,EAAY;KAC1B,kBAAkB;KAClB,gBAAgB;KAChB,iBAAiB,CAAC,EAAW,OAAO;KACpC,UAAU;IACZ;IACA,MAAM;IACN,gBAAgB;KACd,EAAoB,EAAK;IAC3B;IACA,OAAO;IACP,YACE;IAEF,YAAW,MAAY;KAErB,AADA,EAAoB,EAAS,GAAG,QAAQ,GACxC,EAAoB,EAAK;IAC3B;IACA,mBAAmB;GACpB,CAAA;GACD,kBAAC,GAAD;IAAM,WAAW;IAAQ,WAAA;IAAU,SAAS;IAAG,WAAU;cAAzD;KACE,kBAAC,GAAD;MAAM,MAAM;OAAE,IAAI;OAAI,IAAI;MAAE;gBAC1B,kBAAC,GAAD;OACE,OAAM;OACN,IAAG;OACH,MAAK;OACL,WAAA;OACA,aAAY;OACZ,WAAU,MAAK;QACb,EAAY,EAAE,OAAO,KAAK;OAC5B;OACA,WAAW,EACT,OAAO,EACL,cACE,kBAAC,GAAD;QAAgB,UAAS;kBACvB,kBAAC,GAAD,CAAiB,CAAA;OACH,CAAA,EAEpB,EACF;MACD,CAAA;KACG,CAAA;KACN,kBAAC,GAAD;MACE,MAAM;OAAE,IAAI;OAAI,IAAI;MAAE;MACtB,IAAI;OACF,SAAS;OACT,KAAK;OACL,YAAY;MACd;gBANF,CAQE,kBAAC,GAAD;OACE,OAAM;OACN,IAAG;OACH,MAAK;OACL,WAAA;OACA,aAAY;OACZ,OAAO;OACP,YACE,IACI,iDACA,KAAA;OAEN,WAAU,MAAK;QACb,IAAM,IAAW,EAAE,OAAO;QAC1B,AACE,EADE,MAAa,KACK,KAAA,IAEA,CAAQ;OAEhC;MACD,CAAA,GACD,kBAAC,GAAD;OACE,SAAQ;OACR,OAAM;OACN,eAAe;QACb,EAAoB,EAAI;OAC1B;iBACD;MAEiB,CAAA,CACd;;KACN,kBAAC,GAAD;MAAM,MAAM;OAAE,IAAI;OAAI,IAAI;MAAE;gBAA5B,CACE,kBAAC,GAAD;OACE,WAAU;OACV,SAAQ;OACR,SAAQ;iBACT;MAEW,CAAA,GACZ,kBAAC,GAAD;OACE,SAAQ;OACR,aAAY;OACZ,cAAc;OACd,UAAU;MACX,CAAA,CACG;;IACF;;GACN,kBAAC,GAAD;IACY;IACQ;IACN;IAEV;IAEU;IACZ,oBAAoB;GACrB,CAAA;EACD,EAAA,CAI2C;CAA6B,CAAA;AAE9E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EDucTemplateTable.d.ts","sourceRoot":"","sources":["../../../src/components/dataaccess/EDucTemplateTable.tsx"],"names":[],"mappings":"AAiKA,wBAAgB,iBAAiB,4CAuEhC;AAED,eAAe,iBAAiB,CAAA"}
|