@gen3/frontend 0.12.65 → 0.12.67
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/dts/components/Content/FormContent.d.ts +2 -1
- package/dist/dts/components/Content/FormContent.d.ts.map +1 -1
- package/dist/dts/components/Content/FormContent.js +2 -2
- package/dist/dts/components/Content/FormContent.js.map +1 -1
- package/dist/dts/components/facets/EnumFacet.js +1 -2
- package/dist/dts/components/facets/EnumFacet.js.map +1 -1
- package/dist/dts/components/facets/FacetControlsHeader.d.ts.map +1 -1
- package/dist/dts/components/facets/FacetControlsHeader.js +2 -2
- package/dist/dts/components/facets/FacetControlsHeader.js.map +1 -1
- package/dist/dts/components/facets/FacetEnumList.d.ts.map +1 -1
- package/dist/dts/components/facets/FacetEnumList.js +18 -7
- package/dist/dts/components/facets/FacetEnumList.js.map +1 -1
- package/dist/dts/components/facets/components.d.ts +1 -1
- package/dist/dts/components/facets/components.d.ts.map +1 -1
- package/dist/dts/components/facets/components.js +1 -1
- package/dist/dts/components/facets/components.js.map +1 -1
- package/dist/dts/components/facets/createFacetCard.d.ts.map +1 -1
- package/dist/dts/components/facets/createFacetCard.js +1 -1
- package/dist/dts/components/facets/createFacetCard.js.map +1 -1
- package/dist/dts/components/facets/createFacetCard.unit.test.d.ts +2 -0
- package/dist/dts/components/facets/createFacetCard.unit.test.d.ts.map +1 -0
- package/dist/dts/components/facets/createFacetCard.unit.test.js +56 -0
- package/dist/dts/components/facets/createFacetCard.unit.test.js.map +1 -0
- package/dist/dts/components/facets/utils.d.ts.map +1 -1
- package/dist/dts/components/facets/utils.js +1 -0
- package/dist/dts/components/facets/utils.js.map +1 -1
- package/dist/dts/components/facets/utils.unit.test.js +40 -2
- package/dist/dts/components/facets/utils.unit.test.js.map +1 -1
- package/dist/dts/features/CohortBuilder/QueryExpression/LogicalOperatorLabel.d.ts +8 -0
- package/dist/dts/features/CohortBuilder/QueryExpression/LogicalOperatorLabel.d.ts.map +1 -0
- package/dist/dts/features/CohortBuilder/QueryExpression/LogicalOperatorLabel.js +4 -0
- package/dist/dts/features/CohortBuilder/QueryExpression/LogicalOperatorLabel.js.map +1 -0
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.d.ts +2 -1
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.d.ts.map +1 -1
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.js +2 -1
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.js.map +1 -1
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.d.ts +1 -0
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.d.ts.map +1 -1
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.js +1 -0
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.js.map +1 -1
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.d.ts.map +1 -1
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.js +4 -3
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.js.map +1 -1
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.unit.test.d.ts +2 -0
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.unit.test.d.ts.map +1 -0
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.unit.test.js +72 -0
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.unit.test.js.map +1 -0
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.d.ts +1 -0
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.d.ts.map +1 -1
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.js +39 -28
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.js.map +1 -1
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.unit.test.d.ts +2 -0
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.unit.test.d.ts.map +1 -0
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.unit.test.js +38 -0
- package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.unit.test.js.map +1 -0
- package/dist/dts/features/DiscoveryForms/{StudyRegistrationAccessRequest → GenericRegistrationAccessRequest}/FormContentViews.d.ts +3 -2
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/FormContentViews.d.ts.map +1 -0
- package/dist/dts/features/DiscoveryForms/{StudyRegistrationAccessRequest → GenericRegistrationAccessRequest}/FormContentViews.js +3 -3
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/FormContentViews.js.map +1 -0
- package/dist/dts/features/DiscoveryForms/{StudyRegistrationAccessRequest → GenericRegistrationAccessRequest}/FormContentViews.stories.d.ts +3 -1
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/FormContentViews.stories.d.ts.map +1 -0
- package/dist/dts/features/DiscoveryForms/{StudyRegistrationAccessRequest → GenericRegistrationAccessRequest}/FormContentViews.stories.js +1 -1
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/FormContentViews.stories.js.map +1 -0
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/GenericRegistrationAccessRequestOutcome.d.ts +7 -0
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/GenericRegistrationAccessRequestOutcome.d.ts.map +1 -0
- package/dist/dts/features/DiscoveryForms/{StudyRegistrationAccessRequest/StudyRegistrationAccessRequestOutcome.js → GenericRegistrationAccessRequest/GenericRegistrationAccessRequestOutcome.js} +3 -3
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/GenericRegistrationAccessRequestOutcome.js.map +1 -0
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/index.d.ts +8 -0
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/index.d.ts.map +1 -0
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/index.js +10 -0
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/index.js.map +1 -0
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/types.d.ts +35 -0
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/types.d.ts.map +1 -0
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/types.js.map +1 -0
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/useGenericRegistration.d.ts +12 -0
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/useGenericRegistration.d.ts.map +1 -0
- package/dist/dts/features/DiscoveryForms/{StudyRegistrationAccessRequest/useStudyRegistration.js → GenericRegistrationAccessRequest/useGenericRegistration.js} +31 -44
- package/dist/dts/features/DiscoveryForms/GenericRegistrationAccessRequest/useGenericRegistration.js.map +1 -0
- package/dist/dts/features/Study/StudyDetails/StudyDetailsHeaderButtons.d.ts.map +1 -1
- package/dist/dts/features/Study/StudyDetails/StudyDetailsHeaderButtons.js +40 -35
- package/dist/dts/features/Study/StudyDetails/StudyDetailsHeaderButtons.js.map +1 -1
- package/dist/dts/features/Workspace/utils.js +1 -1
- package/dist/dts/features/Workspace/utils.js.map +1 -1
- package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/data.d.ts +2 -2
- package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/data.d.ts.map +1 -1
- package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/data.js +3 -3
- package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/data.js.map +1 -1
- package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/index.d.ts +6 -6
- package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/index.d.ts.map +1 -1
- package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/index.js +5 -5
- package/dist/dts/pages/StudyForms/StudyRegistrationAccessRequest/index.js.map +1 -1
- package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/data.d.ts +4 -0
- package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/data.d.ts.map +1 -0
- package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/data.js +32 -0
- package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/data.js.map +1 -0
- package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/index.d.ts +9 -0
- package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/index.d.ts.map +1 -0
- package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/index.js +12 -0
- package/dist/dts/pages/StudyForms/VLMDSubmissionAccessRequest/index.js.map +1 -0
- package/dist/index/cjs/{QueryPanel-DNGXxrpC.js → QueryPanel-aGaJfxNv.js} +2 -2
- package/dist/index/cjs/{QueryPanel-DNGXxrpC.js.map → QueryPanel-aGaJfxNv.js.map} +1 -1
- package/dist/index/cjs/{index-7sUtTikC.js → index-Br1lKHDn.js} +199 -99
- package/dist/index/cjs/index-Br1lKHDn.js.map +1 -0
- package/dist/index/cjs/index.js +1 -1
- package/dist/index/esm/{QueryPanel-C3JVntIb.js → QueryPanel-C0nNrzSx.js} +2 -2
- package/dist/index/esm/{QueryPanel-C3JVntIb.js.map → QueryPanel-C0nNrzSx.js.map} +1 -1
- package/dist/index/esm/{index-B_0ks9Pi.js → index-CDgLCUE3.js} +201 -101
- package/dist/index/esm/index-CDgLCUE3.js.map +1 -0
- package/dist/index/esm/index.js +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/pages/cjs/{CohortBuilder-DircXqXL.js → CohortBuilder-rF69uCsJ.js} +2 -2
- package/dist/pages/cjs/{CohortBuilder-DircXqXL.js.map → CohortBuilder-rF69uCsJ.js.map} +1 -1
- package/dist/pages/cjs/{QueryPanel-qYWbo2Cb.js → QueryPanel-JOL_9n8f.js} +2 -2
- package/dist/pages/cjs/{QueryPanel-qYWbo2Cb.js.map → QueryPanel-JOL_9n8f.js.map} +1 -1
- package/dist/pages/cjs/{index-BQzYPjdE.js → index-Dbd5m3GQ.js} +200 -100
- package/dist/pages/cjs/index-Dbd5m3GQ.js.map +1 -0
- package/dist/pages/cjs/index.js +1 -1
- package/dist/pages/esm/{CohortBuilder-CI9PAFLd.js → CohortBuilder-D3EM-FLr.js} +2 -2
- package/dist/pages/esm/{CohortBuilder-CI9PAFLd.js.map → CohortBuilder-D3EM-FLr.js.map} +1 -1
- package/dist/pages/esm/{QueryPanel-BEqldpr5.js → QueryPanel-0Znj4lFa.js} +2 -2
- package/dist/pages/esm/{QueryPanel-BEqldpr5.js.map → QueryPanel-0Znj4lFa.js.map} +1 -1
- package/dist/pages/esm/{index-BoZwM5wd.js → index-CxrByAhv.js} +202 -102
- package/dist/pages/esm/index-CxrByAhv.js.map +1 -0
- package/dist/pages/esm/index.js +1 -1
- package/dist/pages.d.ts +1 -0
- package/package.json +4 -3
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/FormContentViews.d.ts.map +0 -1
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/FormContentViews.js.map +0 -1
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/FormContentViews.stories.d.ts.map +0 -1
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/FormContentViews.stories.js.map +0 -1
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/StudyRegistrationAccessRequestOutcome.d.ts +0 -7
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/StudyRegistrationAccessRequestOutcome.d.ts.map +0 -1
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/StudyRegistrationAccessRequestOutcome.js.map +0 -1
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/index.d.ts +0 -7
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/index.d.ts.map +0 -1
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/index.js +0 -11
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/index.js.map +0 -1
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/types.d.ts +0 -20
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/types.d.ts.map +0 -1
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/types.js.map +0 -1
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/useStudyRegistration.d.ts +0 -11
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/useStudyRegistration.d.ts.map +0 -1
- package/dist/dts/features/DiscoveryForms/StudyRegistrationAccessRequest/useStudyRegistration.js.map +0 -1
- package/dist/index/cjs/index-7sUtTikC.js.map +0 -1
- package/dist/index/esm/index-B_0ks9Pi.js.map +0 -1
- package/dist/pages/cjs/index-BQzYPjdE.js.map +0 -1
- package/dist/pages/esm/index-BoZwM5wd.js.map +0 -1
- /package/dist/dts/features/DiscoveryForms/{StudyRegistrationAccessRequest → GenericRegistrationAccessRequest}/types.js +0 -0
package/dist/index/cjs/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import 'react';
|
|
|
4
4
|
import { LoadingOverlay } from '@mantine/core';
|
|
5
5
|
|
|
6
6
|
// Wrapper function for displaying loading element before GqlQueryEditor renders
|
|
7
|
-
const GqlQueryEditor = dynamic(()=>import('./index-
|
|
7
|
+
const GqlQueryEditor = dynamic(()=>import('./index-CDgLCUE3.js').then(function (n) { return n.cX; }), {
|
|
8
8
|
loading: ()=>/*#__PURE__*/ jsx(LoadingOverlay, {
|
|
9
9
|
visible: true
|
|
10
10
|
}),
|
|
@@ -34,4 +34,4 @@ const GqlQueryEditor = dynamic(()=>import('./index-B_0ks9Pi.js').then(function (
|
|
|
34
34
|
};
|
|
35
35
|
|
|
36
36
|
export { QueryPanel as default };
|
|
37
|
-
//# sourceMappingURL=QueryPanel-
|
|
37
|
+
//# sourceMappingURL=QueryPanel-C0nNrzSx.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QueryPanel-
|
|
1
|
+
{"version":3,"file":"QueryPanel-C0nNrzSx.js","sources":["../../../src/features/Query/QueryPanel.tsx"],"sourcesContent":["import dynamic from 'next/dynamic';\nimport React from 'react';\nimport { LoadingOverlay } from '@mantine/core';\nimport type { QueryPanelConfiguration } from './types';\n\n// Wrapper function for displaying loading element before GqlQueryEditor renders\nconst GqlQueryEditor = dynamic(() => import('./GqlQueryEditor'), {\n loading: () => <LoadingOverlay visible={true} />,\n ssr: false,\n});\n\n/**\n * Represents the QueryPanel component responsible for rendering a GraphQL query editor.\n *\n * @param {QueryPanelConfiguration} config - The configuration object for the QueryPanel.\n * @param {Array<{ url: string, label: string }>} [config.graphQLEndpoints=[{ url: 'guppy/graphql', label: 'Flat' }]]\n * An array of GraphQL endpoint objects. Each endpoint object contains the following:\n * - `url` (string): The URL of the GraphQL endpoint. Note this should only be the Gen3 service path (e.g., 'guppy/graphql').\n * - `label` (string): A label for the GraphQL endpoint.\n *\n * @returns {React.Element} The rendered GraphQL query editor.\n */\n\nconst QueryPanel = ({\n graphQLEndpoints = [{ url: 'guppy/graphql', label: 'Flat' }],\n}: QueryPanelConfiguration) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return <GqlQueryEditor graphQLEndpoints={graphQLEndpoints} />;\n};\n\nexport default QueryPanel;\n"],"names":["GqlQueryEditor","dynamic","loading","_jsx","LoadingOverlay","visible","ssr","QueryPanel","graphQLEndpoints","url","label"],"mappings":";;;;;AAKA;AACA,MAAMA,cAAAA,GAAiBC,OAAAA,CAAQ,IAAM,OAAO,qBAAA,qCAAA,EAAqB;AAC/DC,IAAAA,OAAAA,EAAS,kBAAMC,GAAA,CAACC,cAAAA,EAAAA;YAAeC,OAAAA,EAAS;;IACxCC,GAAAA,EAAK;AACP,CAAA,CAAA;AAEA;;;;;;;;;;AAUC,IAED,MAAMC,UAAAA,GAAa,CAAC,EAClBC,gBAAAA,GAAmB;AAAC,IAAA;QAAEC,GAAAA,EAAK,eAAA;QAAiBC,KAAAA,EAAO;AAAO;CAAE,EACpC,GAAA;;;AAGxB,IAAA,qBAAOP,GAAA,CAACH,cAAAA,EAAAA;QAAeQ,gBAAAA,EAAkBA;;AAC3C;;;;"}
|
|
@@ -9,7 +9,7 @@ import _, { toString, capitalize as capitalize$1, isArray, omitBy, some, isNumbe
|
|
|
9
9
|
import Link from 'next/link';
|
|
10
10
|
import { FaExternalLinkAlt, FaExclamationTriangle, FaExclamation, FaQuestion, FaAngleDoubleLeft, FaAngleDoubleRight, FaCaretDown, FaEyeSlash, FaEye, FaExclamationCircle, FaPencilAlt, FaUndo, FaPlus, FaChartPie, FaCircle, FaCheck, FaVideo, FaRegQuestionCircle, FaGraduationCap, FaUser, FaRegStopCircle, FaRedo, FaUpload, FaDownload } from 'react-icons/fa';
|
|
11
11
|
import { Icon, addCollection } from '@iconify-icon/react';
|
|
12
|
-
import { useCoreSelector, selectUserDetails, selectUserAuthStatus, isAuthenticated, WorkspaceStatus, useGetWorkspaceStatusQuery, useGetWorkspacePayModelsQuery, useTerminateWorkspaceMutation, selectRequestedWorkspaceStatus, selectRequestedWorkspaceStatusTimestamp, useCoreDispatch, setActiveWorkspaceStatus, RequestedWorkspaceStatus, setRequestedWorkspaceStatus, isTimeGreaterThan as isTimeGreaterThan$1, useGetCSRFQuery, useLazyFetchUserDetailsQuery, GEN3_REDIRECT_URL, showModal, Modals, useGetAuthzResourcesQuery, useGetAggsQuery, Accessibility, useGetStatsAggregationsQuery, fieldNameToLabel, isObject as isObject$1, isIncludes, selectAvailableCohorts, useLazyGetObjectIdsQuery, EmptyFilterSet as EmptyFilterSet$1, selectCurrentCohortFilters as selectCurrentCohortFilters$1, useCustomRangeQuery, usePrevious, selectCohortFilters, filterSetToOperation, selectAllCohorts as selectAllCohorts$1, selectCurrentCohort as selectCurrentCohort$1, setCurrentCohortId as setCurrentCohortId$1, updateCohortName as updateCohortName$1, createNewCohort as createNewCohort$1, duplicateCohort, removeCohort as removeCohort$1, setCohortFilter as setCohortFilter$1, updateCohortFilter as updateCohortFilter$1, removeCohortFilter as removeCohortFilter$1, clearCohortFilters as clearCohortFilters$1, handleOperation, buildNestedFilterForOperation, selectCurrentCohortId as selectCurrentCohortId$1, selectCurrentCohortModified, selectCurrentCohortSaved, setCohortIndexFilters, toggleCohortBuilderCategoryFilter, selectCohortFilterExpanded, setCohortFilterCombineMode, selectCohortFilterCombineMode, selectCurrentCohortName as selectCurrentCohortName$1, selectShouldShareFilters, selectSharedFilters, useLazyGetCountsQuery, selectIndexFilters, GEN3_COMMONS_NAME, isOperationWithField, extractEnumFilterValue, selectIndexedFilterByName, isOperatorWithFieldAndArrayOfOperands, isUnion, trimFirstfieldNameToLabel, setShouldShareFilters, CohortStorage, createAppStore, GEN3_API, getRemoteSupportServiceRegistry, isHttpStatusError, MissingServiceConfigurationError, useLazyGetAggsQuery, useCreateRequestMutation, isIndexedFilterSetEmpty, buildGetAggregationQuery, GEN3_GUPPY_API, processHistogramResponse, roundHistogramResponse, selectCSRFToken, ExtractValueFromObject, GEN3_FENCE_API, useIsUserLoggedIn, GEN3_DOMAIN, DataLibraryStoreMode, useDataLibrary, buildListItemsGroupedByDataset, extractFileDatasetsInRecords, useGetMDSQuery,
|
|
12
|
+
import { useCoreSelector, selectUserDetails, selectUserAuthStatus, isAuthenticated, WorkspaceStatus, useGetWorkspaceStatusQuery, useGetWorkspacePayModelsQuery, useTerminateWorkspaceMutation, selectRequestedWorkspaceStatus, selectRequestedWorkspaceStatusTimestamp, useCoreDispatch, setActiveWorkspaceStatus, RequestedWorkspaceStatus, setRequestedWorkspaceStatus, isTimeGreaterThan as isTimeGreaterThan$1, useGetCSRFQuery, useLazyFetchUserDetailsQuery, GEN3_REDIRECT_URL, showModal, Modals, useGetAuthzResourcesQuery, useGetAggsQuery, Accessibility, useGetStatsAggregationsQuery, fieldNameToLabel, isObject as isObject$1, isIncludes, selectAvailableCohorts, useLazyGetObjectIdsQuery, EmptyFilterSet as EmptyFilterSet$1, selectCurrentCohortFilters as selectCurrentCohortFilters$1, useCustomRangeQuery, usePrevious, selectCohortFilters, filterSetToOperation, selectAllCohorts as selectAllCohorts$1, selectCurrentCohort as selectCurrentCohort$1, setCurrentCohortId as setCurrentCohortId$1, updateCohortName as updateCohortName$1, createNewCohort as createNewCohort$1, duplicateCohort, removeCohort as removeCohort$1, setCohortFilter as setCohortFilter$1, updateCohortFilter as updateCohortFilter$1, removeCohortFilter as removeCohortFilter$1, clearCohortFilters as clearCohortFilters$1, handleOperation, buildNestedFilterForOperation, selectCurrentCohortId as selectCurrentCohortId$1, selectCurrentCohortModified, selectCurrentCohortSaved, setCohortIndexFilters, toggleCohortBuilderCategoryFilter, selectCohortFilterExpanded, setCohortFilterCombineMode, selectCohortFilterCombineMode, selectCurrentCohortName as selectCurrentCohortName$1, selectShouldShareFilters, selectSharedFilters, useLazyGetCountsQuery, selectIndexFilters, GEN3_COMMONS_NAME, isOperationWithField, extractEnumFilterValue, selectIndexedFilterByName, isOperatorWithFieldAndArrayOfOperands, isUnion, trimFirstfieldNameToLabel, setShouldShareFilters, CohortStorage, createAppStore, GEN3_API, getRemoteSupportServiceRegistry, isHttpStatusError, MissingServiceConfigurationError, useLazyGetAggsQuery, useCreateRequestMutation, isIndexedFilterSetEmpty, buildGetAggregationQuery, GEN3_GUPPY_API, processHistogramResponse, roundHistogramResponse, selectCSRFToken, ExtractValueFromObject, GEN3_FENCE_API, selectAuthzMappingData, userHasMethodForServiceOnResource as userHasMethodForServiceOnResource$2, useIsUserLoggedIn, GEN3_DOMAIN, DataLibraryStoreMode, useDataLibrary, buildListItemsGroupedByDataset, extractFileDatasetsInRecords, useGetMDSQuery, useGetAggMDSQuery, useAskQuestionMutation, useGetIndexAggMDSQuery, useGetTagsQuery, useGetRawDataAndTotalCountsQuery, humanify, selectCart, selectCartItem, removeItemsFromCart, CART_LIMIT, addItemsToCart, isJSONValue, downloadFromGuppyToBlob, downloadJSONDataFromGuppy, coreStore, fetchJSONDataFromURL, GEN3_MANIFEST_API, useLazyGetMultipleSowerJobStatusQuery, selectAllCohortFiltersCollapsed, isIntersection, useGetCountsQuery, useSubmitSowerJobMutation, toggleCohortBuilderAllFilters, setSharedFilters, useGeneralGQLQuery, convertFilterSetToGqlFilter, customQueryStrForField, useUserRequestQuery, getGen3AppId, createGen3AppWithOwnStore, createAppApiForRTKQ, useLazyGetIndexObjectQuery, useLazyGetIndexdMetdataQuery, useLazyGetDownloadQuery, createGen3App, useGetDictionaryQuery, useGetMetadataByUrlQuery, useGetMetadataByIdQuery, hideModal, useGetAuthzMappingsQuery, selectCurrentModal, useLazyGetSowerOutputQuery, useGetSowerJobListQuery, selectSowerJobDatetimeCache, CoreProvider, HttpMethod, groupSharedFields, useGetCredentialsQuery, useRemoveCredentialMutation, useAddNewCredentialMutation, useUserAuth, useGetExternalLoginsQuery, useGetLoginProvidersQuery, useGetProjectsDetailsQuery, useGetSubmissionsQuery, useLaunchWorkspaceMutation, selectActiveWorkspaceStatus, isFetchBaseQueryError, isSerializedError, normalizeRtkError, setActiveWorkspace, getCurrentTimestamp as getCurrentTimestamp$1, selectWorkspaceStatusFromService, selectActiveWorkspaceId, useGetWorkspaceOptionsQuery, GEN3_WORKSPACE_API, useSetCurrentPayModelMutation, PodStatus, PodConditionType, isWorkspaceRunningOrStopping, isCohortItem, isFileItem, fetchFencePresignedURL, HTTPError, HTTPUserFriendlyErrorMessages, getFederatedLoginStatus, queryMultipleMDSRecords, extractIndexFromDataLibraryCohort, isFilterSet, getNumberOfItemsInDatalist, isAdditionalDataItem, useLazyGetCrosswalkDataQuery, fetchFence as fetchFence$1, selectHeadersWithCSRFToken, useGetIndexObjectQuery } from '@gen3/core';
|
|
13
13
|
import { usePathname } from 'next/navigation';
|
|
14
14
|
import { useDeepCompareEffect, useDeepCompareMemo, useDeepCompareCallback } from 'use-deep-compare';
|
|
15
15
|
import useSWR from 'swr';
|
|
@@ -21,7 +21,7 @@ import { notifications, showNotification, cleanNotifications, Notifications } fr
|
|
|
21
21
|
import { useThrottledCallback, useResizeObserver, useClickOutside, useScrollIntoView, useDisclosure, useElementSize, useDidUpdate, mergeRefs, useReducedMotion, useDebouncedValue, useViewportSize, useMediaQuery, useLocalStorage, useClipboard, useFullscreenDocument, getHotkeyHandler } from '@mantine/hooks';
|
|
22
22
|
import { modals, openContextModal, ModalsProvider } from '@mantine/modals';
|
|
23
23
|
import Markdown from 'react-markdown';
|
|
24
|
-
import { MdLogin, MdAddCircle, MdRemoveCircle, MdClose, MdSearch, MdKeyboardArrowUp, MdKeyboardArrowDown, MdDownload, MdTrendingDown, MdReplay, MdHorizontalSplit, MdOutlineHorizontalSplit, MdBarChart, MdAdd, MdContentCopy, MdOutlineArrowBack, MdOutlineArrowForward, MdWarning, MdExpandLess, MdExpandMore, MdFlip, MdLockOutline, MdLibraryAdd, MdKeyboardDoubleArrowLeft, MdOutlineWatchLater, MdOutlineLockOpen, MdOutlineLock, MdUndo, MdInfo, MdDragIndicator, MdShoppingCart, MdPerson, MdSave, MdGroup, MdOutlineBarChart, MdOutlineSearch, MdFormatQuote, MdDelete, MdPlayArrow, MdArrowDropDown, MdOutlineRemoveCircle } from 'react-icons/md';
|
|
24
|
+
import { MdLogin, MdAddCircle, MdRemoveCircle, MdClose, MdSearch, MdKeyboardArrowUp, MdKeyboardArrowDown, MdDownload, MdTrendingDown, MdReplay, MdHorizontalSplit, MdOutlineHorizontalSplit, MdBarChart, MdAdd, MdContentCopy, MdOutlineArrowBack, MdOutlineArrowForward, MdWarning, MdExpandLess, MdExpandMore, MdSettings, MdFlip, MdLockOutline, MdLibraryAdd, MdKeyboardDoubleArrowLeft, MdOutlineWatchLater, MdOutlineLockOpen, MdOutlineLock, MdUndo, MdInfo, MdDragIndicator, MdShoppingCart, MdPerson, MdSave, MdGroup, MdOutlineBarChart, MdOutlineSearch, MdFormatQuote, MdDelete, MdPlayArrow, MdArrowDropDown, MdOutlineRemoveCircle } from 'react-icons/md';
|
|
25
25
|
import { AiOutlineLogin, AiOutlineDash } from 'react-icons/ai';
|
|
26
26
|
import { PiDotsThreeCircleThin, PiCaretUpFill, PiCaretDownFill, PiCaretUpDownFill, PiTrash, PiSparkleFill, PiDotsThreeOutlineFill, PiCaretCircleDownFill } from 'react-icons/pi';
|
|
27
27
|
import Head from 'next/head';
|
|
@@ -7863,6 +7863,7 @@ const OverflowTooltippedLabel = ({ children, label, className = 'flex-grow font-
|
|
|
7863
7863
|
|
|
7864
7864
|
const QueryExpressionContext = /*#__PURE__*/ React__default.createContext({
|
|
7865
7865
|
displayOnly: false,
|
|
7866
|
+
showLogicalOperators: false,
|
|
7866
7867
|
fieldsAreFlat: true,
|
|
7867
7868
|
cohortId: null,
|
|
7868
7869
|
cohortName: 'default',
|
|
@@ -7923,6 +7924,12 @@ const QueryExpressionsExpandedContext = /*#__PURE__*/ React__default.createConte
|
|
|
7923
7924
|
()=>null
|
|
7924
7925
|
]);
|
|
7925
7926
|
|
|
7927
|
+
const LogicalOperatorLabel = ({ operator, className = '' })=>/*#__PURE__*/ jsx("span", {
|
|
7928
|
+
className: `flex items-center justify-center px-1 text-xs font-bold uppercase text-base-darkest ${className}`,
|
|
7929
|
+
"data-testid": `query-logical-operator-${operator}`,
|
|
7930
|
+
children: operator
|
|
7931
|
+
});
|
|
7932
|
+
|
|
7926
7933
|
const RemoveButton$1 = ({ value })=>/*#__PURE__*/ jsx(ActionIcon, {
|
|
7927
7934
|
size: "xs",
|
|
7928
7935
|
color: "base.0",
|
|
@@ -7984,9 +7991,23 @@ const isRangeOperation = (x)=>{
|
|
|
7984
7991
|
const isNestedFilter = (x)=>{
|
|
7985
7992
|
return 'path' in x;
|
|
7986
7993
|
};
|
|
7987
|
-
const
|
|
7994
|
+
const buildSetOperation = (field, operator, operands, combineMode)=>combineMode === 'and' ? {
|
|
7995
|
+
operator: 'and',
|
|
7996
|
+
operands: operands.map((value)=>({
|
|
7997
|
+
operator,
|
|
7998
|
+
field,
|
|
7999
|
+
operands: [
|
|
8000
|
+
value
|
|
8001
|
+
]
|
|
8002
|
+
}))
|
|
8003
|
+
} : {
|
|
8004
|
+
operator,
|
|
8005
|
+
field,
|
|
8006
|
+
operands
|
|
8007
|
+
};
|
|
8008
|
+
const IncludeExcludeQueryElement = ({ index, field, path, operator, operands, displayOnly = false, combineMode = 'or' })=>{
|
|
7988
8009
|
const [queryExpressionsExpanded, setQueryExpressionsExpanded] = useContext(QueryExpressionsExpandedContext);
|
|
7989
|
-
const { cohortId: currentCohortId, useRemoveFilter, useUpdateFilters, shouldShowSummary, fieldsAreFlat } = useContext(QueryExpressionContext);
|
|
8010
|
+
const { cohortId: currentCohortId, useRemoveFilter, useUpdateFilters, shouldShowSummary, fieldsAreFlat, showLogicalOperators } = useContext(QueryExpressionContext);
|
|
7990
8011
|
const removeCohortFilter = useRemoveFilter();
|
|
7991
8012
|
const updateCohortFilter = useUpdateFilters();
|
|
7992
8013
|
useDeepCompareEffect(()=>{
|
|
@@ -8077,45 +8098,45 @@ const IncludeExcludeQueryElement = ({ index, field, path, operator, operands, di
|
|
|
8077
8098
|
gap: "xs",
|
|
8078
8099
|
children: operandsArray.map((x, i)=>{
|
|
8079
8100
|
const value = x.toString();
|
|
8080
|
-
return /*#__PURE__*/
|
|
8081
|
-
|
|
8082
|
-
|
|
8083
|
-
|
|
8084
|
-
|
|
8085
|
-
|
|
8086
|
-
|
|
8087
|
-
|
|
8088
|
-
|
|
8089
|
-
|
|
8090
|
-
|
|
8091
|
-
|
|
8092
|
-
|
|
8093
|
-
|
|
8094
|
-
|
|
8095
|
-
|
|
8096
|
-
|
|
8097
|
-
|
|
8098
|
-
|
|
8099
|
-
|
|
8100
|
-
|
|
8101
|
-
|
|
8102
|
-
|
|
8103
|
-
|
|
8104
|
-
|
|
8105
|
-
|
|
8106
|
-
|
|
8107
|
-
|
|
8108
|
-
}
|
|
8109
|
-
|
|
8110
|
-
|
|
8111
|
-
|
|
8112
|
-
|
|
8113
|
-
|
|
8114
|
-
|
|
8115
|
-
|
|
8116
|
-
|
|
8101
|
+
return /*#__PURE__*/ jsxs(React__default.Fragment, {
|
|
8102
|
+
children: [
|
|
8103
|
+
showLogicalOperators && i > 0 && /*#__PURE__*/ jsx(LogicalOperatorLabel, {
|
|
8104
|
+
operator: combineMode
|
|
8105
|
+
}),
|
|
8106
|
+
/*#__PURE__*/ jsx(Badge, {
|
|
8107
|
+
"data-testid": `query-rep-${field}-${value}-${i}`,
|
|
8108
|
+
variant: "filled",
|
|
8109
|
+
color: "accent.5",
|
|
8110
|
+
size: "md",
|
|
8111
|
+
className: `normal-case items-center max-w-[162px] cursor-pointer hover:bg-accent-darker pl-2 ${displayOnly ? 'pr-3' : 'pr-0'}`,
|
|
8112
|
+
rightSection: !displayOnly && /*#__PURE__*/ jsx(RemoveButton$1, {
|
|
8113
|
+
value: value
|
|
8114
|
+
}),
|
|
8115
|
+
onClick: ()=>{
|
|
8116
|
+
if (displayOnly) return;
|
|
8117
|
+
const newOperands = operandsArray.filter((o)=>o !== x);
|
|
8118
|
+
if (currentCohortId && newOperands.length === 0) {
|
|
8119
|
+
setQueryExpressionsExpanded({
|
|
8120
|
+
type: 'clear',
|
|
8121
|
+
cohortId: currentCohortId,
|
|
8122
|
+
field: fieldToUpdate
|
|
8123
|
+
});
|
|
8124
|
+
removeCohortFilter(index, fieldToUpdate);
|
|
8125
|
+
} else {
|
|
8126
|
+
const updatedOperation = buildSetOperation(field, operator, newOperands, combineMode);
|
|
8127
|
+
updateCohortFilter(index, fieldToUpdate, fieldsAreFlat ? updatedOperation : buildNestedFilterForOperation(fieldToUpdate, updatedOperation));
|
|
8128
|
+
}
|
|
8129
|
+
},
|
|
8130
|
+
children: /*#__PURE__*/ jsx(OverflowTooltippedLabel, {
|
|
8131
|
+
label: value,
|
|
8132
|
+
className: "flex-grow text-md font-content",
|
|
8133
|
+
children: /*#__PURE__*/ jsx(QueryRepresentationLabel, {
|
|
8134
|
+
value: value.toString(),
|
|
8135
|
+
field: field
|
|
8136
|
+
})
|
|
8137
|
+
})
|
|
8117
8138
|
})
|
|
8118
|
-
|
|
8139
|
+
]
|
|
8119
8140
|
}, `query-rep-${field}-${value}-${i}`);
|
|
8120
8141
|
})
|
|
8121
8142
|
})
|
|
@@ -8363,6 +8384,25 @@ const QueryElement = ({ index, field, path, children, displayOnly = false })=>{
|
|
|
8363
8384
|
upper: f.operands[1]
|
|
8364
8385
|
}, f.operands[0].field);
|
|
8365
8386
|
}
|
|
8387
|
+
const enumOperands = f.operands.filter(isIncludes);
|
|
8388
|
+
const field = enumOperands[0]?.field;
|
|
8389
|
+
if (enumOperands.length === f.operands.length && field && enumOperands.every((operand)=>operand.field === field)) {
|
|
8390
|
+
return /*#__PURE__*/ jsx(QueryElement, {
|
|
8391
|
+
field: field,
|
|
8392
|
+
index: this.index,
|
|
8393
|
+
path: this.path,
|
|
8394
|
+
displayOnly: this.displayOnly,
|
|
8395
|
+
children: /*#__PURE__*/ jsx(IncludeExcludeQueryElement, {
|
|
8396
|
+
field: field,
|
|
8397
|
+
operator: enumOperands[0].operator,
|
|
8398
|
+
operands: enumOperands.flatMap((operand)=>operand.operands),
|
|
8399
|
+
combineMode: "and",
|
|
8400
|
+
index: this.index,
|
|
8401
|
+
path: this.path,
|
|
8402
|
+
displayOnly: this.displayOnly
|
|
8403
|
+
})
|
|
8404
|
+
}, field);
|
|
8405
|
+
}
|
|
8366
8406
|
// TODO: handle deeper nesting
|
|
8367
8407
|
return null;
|
|
8368
8408
|
};
|
|
@@ -8679,7 +8719,7 @@ const QueryExpressionSection = ({ index, showImportExport = false, displayOnly =
|
|
|
8679
8719
|
const [filtersSectionCollapsed, setFiltersSectionCollapsed] = useState(true);
|
|
8680
8720
|
const filtersRef = useRef(null);
|
|
8681
8721
|
const [QESectionHeight, setQESectionHeight] = useState(0);
|
|
8682
|
-
const { cohortName, cohortId, useClearCohortFilters, useGetFilters } = useContext(QueryExpressionContext);
|
|
8722
|
+
const { cohortName, cohortId, showLogicalOperators, useClearCohortFilters, useGetFilters } = useContext(QueryExpressionContext);
|
|
8683
8723
|
const clearCohortFilters = useClearCohortFilters();
|
|
8684
8724
|
const filters = useGetFilters(index);
|
|
8685
8725
|
useDeepCompareEffect(()=>{
|
|
@@ -8820,8 +8860,16 @@ const QueryExpressionSection = ({ index, showImportExport = false, displayOnly =
|
|
|
8820
8860
|
"data-testid": "text-no-active-cohort-filter",
|
|
8821
8861
|
className: "flex items-center font-content h-10",
|
|
8822
8862
|
children: "No filters currently applied."
|
|
8823
|
-
}) : Object.keys(filters.root).map((k)=>{
|
|
8824
|
-
return
|
|
8863
|
+
}) : Object.keys(filters.root).map((k, indexInFilters)=>{
|
|
8864
|
+
return /*#__PURE__*/ jsxs(React__default.Fragment, {
|
|
8865
|
+
children: [
|
|
8866
|
+
showLogicalOperators && indexInFilters > 0 && /*#__PURE__*/ jsx(LogicalOperatorLabel, {
|
|
8867
|
+
operator: filters.mode,
|
|
8868
|
+
className: "mr-1 mb-2"
|
|
8869
|
+
}),
|
|
8870
|
+
convertFilterToComponent(filters.root[k], index, '.', displayOnly)
|
|
8871
|
+
]
|
|
8872
|
+
}, k);
|
|
8825
8873
|
})
|
|
8826
8874
|
})
|
|
8827
8875
|
]
|
|
@@ -8868,7 +8916,7 @@ const SUMMARY_THRESHOLD = 10;
|
|
|
8868
8916
|
*/ const DefaultShouldShowSummary = (field, count)=>{
|
|
8869
8917
|
return count > SUMMARY_THRESHOLD;
|
|
8870
8918
|
};
|
|
8871
|
-
const QueryExpression = ({ index, shouldShowSummary = DefaultShouldShowSummary, hooks, fieldsAreFlat = true })=>{
|
|
8919
|
+
const QueryExpression = ({ index, shouldShowSummary = DefaultShouldShowSummary, hooks, fieldsAreFlat = true, showLogicalOperators = false })=>{
|
|
8872
8920
|
const currentCohortId = useCoreSelector((state)=>selectCurrentCohortId$1(state));
|
|
8873
8921
|
const currentCohortName = useCoreSelector((state)=>selectCurrentCohortName$1(state));
|
|
8874
8922
|
return /*#__PURE__*/ jsx(QueryExpressionContext.Provider, {
|
|
@@ -8876,6 +8924,7 @@ const QueryExpression = ({ index, shouldShowSummary = DefaultShouldShowSummary,
|
|
|
8876
8924
|
cohortName: currentCohortName,
|
|
8877
8925
|
cohortId: currentCohortId,
|
|
8878
8926
|
displayOnly: false,
|
|
8927
|
+
showLogicalOperators,
|
|
8879
8928
|
fieldsAreFlat: fieldsAreFlat,
|
|
8880
8929
|
shouldShowSummary: shouldShowSummary,
|
|
8881
8930
|
useClearCohortFilters: ()=>{
|
|
@@ -9377,6 +9426,7 @@ const classifyFacets = (data, index, fieldMapping = [], facetDefinitionsFromConf
|
|
|
9377
9426
|
moveValuesToBottom: facetDef?.moveValuesToBottom,
|
|
9378
9427
|
excludeValues: facetDef?.excludeValues,
|
|
9379
9428
|
defaultSort: facetDef?.defaultSort,
|
|
9429
|
+
showMatchModeSelector: facetDef?.showMatchModeSelector,
|
|
9380
9430
|
valueLabel: facetDef?.valueLabel,
|
|
9381
9431
|
range: facetDef?.range ? {
|
|
9382
9432
|
minimum: facetDef.range?.minimum ?? Math.floor(Number(value[0].key[0])),
|
|
@@ -10681,7 +10731,7 @@ inline-flex
|
|
|
10681
10731
|
items-center
|
|
10682
10732
|
hover:text-primary-lightest
|
|
10683
10733
|
`;
|
|
10684
|
-
const controlsIconStyle = 'text-secondary-contrast hover:text-secondary-lighter';
|
|
10734
|
+
const controlsIconStyle = 'text-secondary-contrast hover:text-secondary-contrast-lighter';
|
|
10685
10735
|
const FacetText = tw.div`
|
|
10686
10736
|
text-secondary-contrast font-heading font-semibold text-sm break-words
|
|
10687
10737
|
`;
|
|
@@ -10804,12 +10854,11 @@ flex items-start justify-between items-center flex-nowrap bg-secondary px-1.5 ro
|
|
|
10804
10854
|
if (toggleExpandFilter) toggleExpandFilter(field, true);
|
|
10805
10855
|
if (toggleSettings) toggleSettings();
|
|
10806
10856
|
},
|
|
10807
|
-
"aria-label": "
|
|
10857
|
+
"aria-label": "Filter settings",
|
|
10808
10858
|
className: header.iconStyle,
|
|
10809
|
-
children: /*#__PURE__*/ jsx(
|
|
10810
|
-
|
|
10811
|
-
|
|
10812
|
-
icon: "gen3:settings",
|
|
10859
|
+
children: /*#__PURE__*/ jsx(MdSettings, {
|
|
10860
|
+
size: "1.35em",
|
|
10861
|
+
className: header.iconStyle,
|
|
10813
10862
|
"aria-hidden": "true"
|
|
10814
10863
|
})
|
|
10815
10864
|
})
|
|
@@ -12168,8 +12217,8 @@ const FacetEnumList = ({ field, facetName, hooks, valueLabel, isSettings = false
|
|
|
12168
12217
|
const searchInputRef = useRef(null);
|
|
12169
12218
|
const settingRef = useRef(null);
|
|
12170
12219
|
const [searchTerm, setSearchTerm] = useState('');
|
|
12171
|
-
// const [combineMode, setCombineMode] = useState<'or' | 'and'>('or');
|
|
12172
12220
|
const { data, enumFilters, combineMode, isSuccess, error } = hooks.useGetFacetData(field);
|
|
12221
|
+
const [selectedCombineMode, setSelectedCombineMode] = useState(combineMode ?? 'or');
|
|
12173
12222
|
const [selectedEnums, setSelectedEnums] = useState(enumFilters ?? []);
|
|
12174
12223
|
const totalCount = hooks?.useTotalCounts ? hooks.useTotalCounts() : 1;
|
|
12175
12224
|
const clearFilters = hooks.useClearFilter();
|
|
@@ -12203,6 +12252,17 @@ const FacetEnumList = ({ field, facetName, hooks, valueLabel, isSettings = false
|
|
|
12203
12252
|
}, [
|
|
12204
12253
|
enumFilters
|
|
12205
12254
|
]);
|
|
12255
|
+
useEffect(()=>{
|
|
12256
|
+
// Existing filters are the source of truth when loading or externally
|
|
12257
|
+
// updating a cohort. Keep a user's selected mode when the facet is empty
|
|
12258
|
+
// so they can choose "Match all" before selecting values.
|
|
12259
|
+
if ((enumFilters?.length ?? 0) > 0) {
|
|
12260
|
+
setSelectedCombineMode(combineMode ?? 'or');
|
|
12261
|
+
}
|
|
12262
|
+
}, [
|
|
12263
|
+
combineMode,
|
|
12264
|
+
enumFilters
|
|
12265
|
+
]);
|
|
12206
12266
|
const maxValuesToDisplay = DEFAULT_VISIBLE_ITEMS$2;
|
|
12207
12267
|
// update filters when checkbox is selected
|
|
12208
12268
|
const handleChange = (value, checked)=>{
|
|
@@ -12217,13 +12277,15 @@ const FacetEnumList = ({ field, facetName, hooks, valueLabel, isSettings = false
|
|
|
12217
12277
|
] : [
|
|
12218
12278
|
value
|
|
12219
12279
|
];
|
|
12220
|
-
updateFacetEnum(field, updated, updateFacetFilters, clearFilters,
|
|
12280
|
+
updateFacetEnum(field, updated, updateFacetFilters, clearFilters, selectedCombineMode);
|
|
12221
12281
|
} else {
|
|
12222
12282
|
const updated = selectedEnums?.filter((x)=>x !== value);
|
|
12223
|
-
updateFacetEnum(field, updated ?? [], updateFacetFilters, clearFilters,
|
|
12283
|
+
updateFacetEnum(field, updated ?? [], updateFacetFilters, clearFilters, selectedCombineMode);
|
|
12224
12284
|
}
|
|
12225
12285
|
};
|
|
12226
12286
|
const handleCombineModeChange = (mode)=>{
|
|
12287
|
+
setSelectedCombineMode(mode);
|
|
12288
|
+
if ((selectedEnums?.length ?? 0) === 0) return;
|
|
12227
12289
|
updateFacetEnum(field, selectedEnums ?? [], updateFacetFilters, clearFilters, mode);
|
|
12228
12290
|
};
|
|
12229
12291
|
const [facetChartData, setFacetChartData] = useState({
|
|
@@ -12358,23 +12420,24 @@ const FacetEnumList = ({ field, facetName, hooks, valueLabel, isSettings = false
|
|
|
12358
12420
|
indicator: 'bg-accent text-accent-contrast'
|
|
12359
12421
|
},
|
|
12360
12422
|
ref: settingRef,
|
|
12361
|
-
value:
|
|
12423
|
+
value: selectedCombineMode,
|
|
12424
|
+
"aria-label": "How selected facet values are matched",
|
|
12362
12425
|
onChange: (value)=>{
|
|
12363
12426
|
handleCombineModeChange(value);
|
|
12364
12427
|
},
|
|
12365
12428
|
data: [
|
|
12366
12429
|
{
|
|
12367
|
-
label: '
|
|
12368
|
-
value: '
|
|
12430
|
+
label: 'Match any',
|
|
12431
|
+
value: 'or'
|
|
12369
12432
|
},
|
|
12370
12433
|
{
|
|
12371
|
-
label: '
|
|
12372
|
-
value: '
|
|
12434
|
+
label: 'Match all',
|
|
12435
|
+
value: 'and'
|
|
12373
12436
|
}
|
|
12374
12437
|
]
|
|
12375
12438
|
}),
|
|
12376
12439
|
/*#__PURE__*/ jsx(Tooltip, {
|
|
12377
|
-
label: "
|
|
12440
|
+
label: "Match any includes cases with at least one selected value. Match all requires every selected value.",
|
|
12378
12441
|
children: /*#__PURE__*/ jsx(Icon, {
|
|
12379
12442
|
icon: "gen3:info",
|
|
12380
12443
|
height: 12,
|
|
@@ -13210,6 +13273,7 @@ const createFacetCard = ({ facetDefinition, valueLabel, hooks: dataFunctions, fa
|
|
|
13210
13273
|
width: width,
|
|
13211
13274
|
hooks: dataFunctions,
|
|
13212
13275
|
showPercent: showPercent,
|
|
13276
|
+
showSettings: facetDefinition?.showMatchModeSelector,
|
|
13213
13277
|
sharedWithIndices: facetDefinition?.sharedWithIndices,
|
|
13214
13278
|
defaultSort: facetDefinition?.defaultSort,
|
|
13215
13279
|
moveValuesToBottom: facetDefinition?.moveValuesToBottom ?? [],
|
|
@@ -17436,17 +17500,11 @@ const SinglePageStudyDetailsPanel = ({ data, studyConfig, authorization })=>{
|
|
|
17436
17500
|
});
|
|
17437
17501
|
};
|
|
17438
17502
|
|
|
17439
|
-
const userCanRegisterStudy = (userInfo, studyRegistrationAuthZ)=>{
|
|
17440
|
-
const actions = userInfo?.authz && studyRegistrationAuthZ ? userInfo.authz[studyRegistrationAuthZ] : undefined;
|
|
17441
|
-
const method = 'access';
|
|
17442
|
-
const service = 'study_registration';
|
|
17443
|
-
return actions?.some((x)=>(x.service === service || x.service === '*') && (x.method === method || x.method === '*')) ?? false;
|
|
17444
|
-
};
|
|
17445
|
-
|
|
17446
17503
|
const StudyDetailsHeaderButtons = ({ onClose, permalink })=>{
|
|
17447
17504
|
const userInfo = useCoreSelector((state)=>selectUserDetails(state));
|
|
17448
17505
|
const requiresLogin = !userInfo.active;
|
|
17449
17506
|
const { discoveryConfig: config } = useDiscoveryContext();
|
|
17507
|
+
const router = useRouter();
|
|
17450
17508
|
const index = config.minimalFieldMapping.uid;
|
|
17451
17509
|
const { studyDetails } = useStudyContext();
|
|
17452
17510
|
const studyUID = toString(studyDetails[index]);
|
|
@@ -17454,44 +17512,55 @@ const StudyDetailsHeaderButtons = ({ onClose, permalink })=>{
|
|
|
17454
17512
|
const studyRegistrationAuthZ = studyDetails.registration_authz;
|
|
17455
17513
|
const studyProjectNumber = studyDetails.project_number;
|
|
17456
17514
|
const showSubmitButton = config.detailView.showSubmitButton;
|
|
17457
|
-
const
|
|
17458
|
-
const
|
|
17459
|
-
const
|
|
17515
|
+
const userAuthMapping = useCoreSelector((state)=>selectAuthzMappingData(state));
|
|
17516
|
+
const userHasStudyRegistrationAccess = userHasMethodForServiceOnResource$2('access', 'study_registration', toString(studyRegistrationAuthZ), userAuthMapping);
|
|
17517
|
+
const isStudyRegistered = studyDetails.is_registered;
|
|
17518
|
+
// Study is not yet registered — show register/request-access/login button
|
|
17519
|
+
const showStudyRegistrationButton = showSubmitButton && isStudyRegistered === false;
|
|
17520
|
+
// Study is registered — show appropriate VLMD submission button based on auth state
|
|
17521
|
+
const showSubmitVLMDButton = showSubmitButton && isStudyRegistered && !requiresLogin && userHasStudyRegistrationAccess;
|
|
17522
|
+
const showRequestVLMDAccessButton = showSubmitButton && isStudyRegistered && !requiresLogin && !userHasStudyRegistrationAccess;
|
|
17523
|
+
const showLoginToSubmitVLMDButton = showSubmitButton && isStudyRegistered && requiresLogin;
|
|
17524
|
+
const studyNavQuery = {
|
|
17525
|
+
studyUID,
|
|
17526
|
+
studyName,
|
|
17527
|
+
studyRegistrationAuthZ: toString(studyRegistrationAuthZ),
|
|
17528
|
+
studyProjectNumber
|
|
17529
|
+
};
|
|
17530
|
+
const handleStudyRegistrationClick = ()=>{
|
|
17460
17531
|
if (requiresLogin) {
|
|
17461
17532
|
void router.push('/Login');
|
|
17462
|
-
} else if (
|
|
17533
|
+
} else if (userHasStudyRegistrationAccess) {
|
|
17463
17534
|
void router.push({
|
|
17464
17535
|
pathname: '/study-reg',
|
|
17465
|
-
query:
|
|
17466
|
-
studyUID: studyUID,
|
|
17467
|
-
studyName: studyName,
|
|
17468
|
-
studyRegistrationAuthZ: studyRegistrationAuthZ,
|
|
17469
|
-
studyProjectNumber: studyProjectNumber
|
|
17470
|
-
}
|
|
17536
|
+
query: studyNavQuery
|
|
17471
17537
|
}, '/study-reg');
|
|
17472
17538
|
} else {
|
|
17473
17539
|
void router.push({
|
|
17474
17540
|
pathname: '/study-reg/request-access',
|
|
17475
|
-
query:
|
|
17476
|
-
studyUID: studyUID,
|
|
17477
|
-
studyName: studyName,
|
|
17478
|
-
studyRegistrationAuthZ: studyRegistrationAuthZ,
|
|
17479
|
-
studyProjectNumber: studyProjectNumber
|
|
17480
|
-
}
|
|
17541
|
+
query: studyNavQuery
|
|
17481
17542
|
}, '/study-reg/request-access');
|
|
17482
17543
|
}
|
|
17483
17544
|
};
|
|
17484
|
-
const
|
|
17485
|
-
|
|
17486
|
-
|
|
17487
|
-
|
|
17488
|
-
|
|
17489
|
-
|
|
17490
|
-
|
|
17491
|
-
|
|
17545
|
+
const handleSubmitVLMDClick = ()=>{
|
|
17546
|
+
void router.push({
|
|
17547
|
+
pathname: '/vlmd-submission',
|
|
17548
|
+
query: studyNavQuery
|
|
17549
|
+
}, '/vlmd-submission');
|
|
17550
|
+
};
|
|
17551
|
+
const handleRequestVLMDAccessClick = ()=>{
|
|
17552
|
+
void router.push({
|
|
17553
|
+
pathname: '/vlmd-submission/request-access',
|
|
17554
|
+
query: studyNavQuery
|
|
17555
|
+
}, '/vlmd-submission/request-access');
|
|
17556
|
+
};
|
|
17557
|
+
const studyRegistrationButtonText = useMemo(()=>{
|
|
17558
|
+
if (requiresLogin) return 'Login to Register This Study';
|
|
17559
|
+
if (userHasStudyRegistrationAccess) return 'Register This Study';
|
|
17560
|
+
return 'Request Access to Register This Study';
|
|
17492
17561
|
}, [
|
|
17493
17562
|
requiresLogin,
|
|
17494
|
-
|
|
17563
|
+
userHasStudyRegistrationAccess
|
|
17495
17564
|
]);
|
|
17496
17565
|
return /*#__PURE__*/ jsxs(Fragment, {
|
|
17497
17566
|
children: [
|
|
@@ -17501,15 +17570,45 @@ const StudyDetailsHeaderButtons = ({ onClose, permalink })=>{
|
|
|
17501
17570
|
variant: "outline",
|
|
17502
17571
|
children: "Back"
|
|
17503
17572
|
}),
|
|
17504
|
-
|
|
17573
|
+
showStudyRegistrationButton && /*#__PURE__*/ jsx(Button, {
|
|
17505
17574
|
leftSection: /*#__PURE__*/ jsx(FiLogIn, {
|
|
17506
17575
|
size: 14
|
|
17507
17576
|
}),
|
|
17508
17577
|
variant: "subtle",
|
|
17509
17578
|
color: "black",
|
|
17510
17579
|
size: "xs",
|
|
17511
|
-
onClick:
|
|
17512
|
-
children:
|
|
17580
|
+
onClick: handleStudyRegistrationClick,
|
|
17581
|
+
children: studyRegistrationButtonText
|
|
17582
|
+
}),
|
|
17583
|
+
showSubmitVLMDButton && /*#__PURE__*/ jsx(Button, {
|
|
17584
|
+
leftSection: /*#__PURE__*/ jsx(FiLogIn, {
|
|
17585
|
+
size: 14
|
|
17586
|
+
}),
|
|
17587
|
+
variant: "subtle",
|
|
17588
|
+
color: "black",
|
|
17589
|
+
size: "xs",
|
|
17590
|
+
onClick: handleSubmitVLMDClick,
|
|
17591
|
+
children: "Submit Variable-level Metadata"
|
|
17592
|
+
}),
|
|
17593
|
+
showRequestVLMDAccessButton && /*#__PURE__*/ jsx(Button, {
|
|
17594
|
+
leftSection: /*#__PURE__*/ jsx(FiLogIn, {
|
|
17595
|
+
size: 14
|
|
17596
|
+
}),
|
|
17597
|
+
variant: "subtle",
|
|
17598
|
+
color: "black",
|
|
17599
|
+
size: "xs",
|
|
17600
|
+
onClick: handleRequestVLMDAccessClick,
|
|
17601
|
+
children: "Request Access to Submit Variable-level Metadata"
|
|
17602
|
+
}),
|
|
17603
|
+
showLoginToSubmitVLMDButton && /*#__PURE__*/ jsx(Button, {
|
|
17604
|
+
leftSection: /*#__PURE__*/ jsx(FiLogIn, {
|
|
17605
|
+
size: 14
|
|
17606
|
+
}),
|
|
17607
|
+
variant: "subtle",
|
|
17608
|
+
color: "black",
|
|
17609
|
+
size: "xs",
|
|
17610
|
+
onClick: ()=>void router.push('/Login'),
|
|
17611
|
+
children: "Login to Submit Variable-level Metadata"
|
|
17513
17612
|
}),
|
|
17514
17613
|
/*#__PURE__*/ jsx(CopyButton, {
|
|
17515
17614
|
value: permalink,
|
|
@@ -30018,7 +30117,7 @@ const DiscoveryPageGetServerSideProps = async ()=>{
|
|
|
30018
30117
|
}
|
|
30019
30118
|
};
|
|
30020
30119
|
|
|
30021
|
-
const QueryPanel = dynamic(()=>import('./QueryPanel-
|
|
30120
|
+
const QueryPanel = dynamic(()=>import('./QueryPanel-C0nNrzSx.js'), {
|
|
30022
30121
|
ssr: false
|
|
30023
30122
|
});
|
|
30024
30123
|
const QueryPage = ({ headerProps, footerProps, configuration: queryProps })=>{
|
|
@@ -32733,7 +32832,7 @@ const AdminAuthZPageGetServerSideProps = async ()=>{
|
|
|
32733
32832
|
* @param {string} props.keyString - For mantine form to identify elements
|
|
32734
32833
|
* @param {FormContentProps['form']} props.form - @mantine/form useForm() object
|
|
32735
32834
|
* @returns {JSX.Element} A JSX element that renders the content dynamically based on the input type and properties.
|
|
32736
|
-
*/ const FormContent = ({ text, label, initialValue, dropdownData, description, placeholder, disabled, required, tooltip, className = '', type = ContentType.Text, keyString, form })=>{
|
|
32835
|
+
*/ const FormContent = ({ text, label, initialValue, dropdownData, description, placeholder, disabled, required, tooltip, className = '', autosize = false, type = ContentType.Text, keyString, form })=>{
|
|
32737
32836
|
//code for tooltips on form items
|
|
32738
32837
|
let inputContainer;
|
|
32739
32838
|
if (tooltip) {
|
|
@@ -32859,7 +32958,8 @@ const AdminAuthZPageGetServerSideProps = async ()=>{
|
|
|
32859
32958
|
disabled: disabled || form.submitting,
|
|
32860
32959
|
required: required,
|
|
32861
32960
|
inputContainer: inputContainer,
|
|
32862
|
-
...form.getInputProps(keyString)
|
|
32961
|
+
...form.getInputProps(keyString),
|
|
32962
|
+
autosize: autosize
|
|
32863
32963
|
}, form.key(keyString));
|
|
32864
32964
|
}
|
|
32865
32965
|
default:
|
|
@@ -34005,7 +34105,7 @@ const ExternalLoginsStatus = ()=>{
|
|
|
34005
34105
|
};
|
|
34006
34106
|
|
|
34007
34107
|
const PaymentNumberToString = (x, undefinedValue = 'N/A', precision = 2)=>{
|
|
34008
|
-
if (
|
|
34108
|
+
if (typeof x !== 'number' || Number.isNaN(x)) return undefinedValue;
|
|
34009
34109
|
return x.toFixed(precision);
|
|
34010
34110
|
};
|
|
34011
34111
|
|
|
@@ -41827,4 +41927,4 @@ const FileSummary = ({ guid })=>{
|
|
|
41827
41927
|
};
|
|
41828
41928
|
|
|
41829
41929
|
export { DiscoveryProvider as $, ACTIVITY_CHANNEL as A, BAD_DATA_MESSAGE as B, CardContainer as C, CollapsableCharts as D, CollapsableSidebar as E, ColorThemePage as F, ColorThemePageGetServerSideProps as G, ContentSource as H, CountsValue as I, CreateCredentialsAPIKeyModal as J, CrosswalkPage as K, CrosswalkPageGetServerSideProps as L, Custom403Page as M, Custom403PageGetServerSideProps as N, Custom404Page as O, Custom404PageGetServerSideProps as P, DAYS_IN_YEAR as Q, DEFAULT_MAXIMUM as R, DEFAULT_MINIMUM as S, DEFAULT_VISIBLE_ITEMS$2 as T, DictionaryPage as U, DataLibraryPage as V, DataLibraryPageGetServerSideProps as W, DefaultAuthorizedRoutesConfig as X, DictionaryPageGetServerSideProps as Y, DictionaryWithContext as Z, DiscoveryCellRendererFactory as _, AISearchPageGetServerSideProps as a, ProfileProvider as a$, DiscoveryIndexPanel as a0, DiscoveryPage as a1, DiscoveryPageGetServerSideProps as a2, DownloadButton as a3, DownloadsPanel as a4, DropdownButton as a5, DropdownPanel as a6, DropdownWithIcon as a7, EmptyTableMessage as a8, EnumFacet as a9, HoverLink as aA, IconButton as aB, InfoRolloverButton as aC, JSONObjectDownloadButton as aD, LandingPage as aE, LandingPageGetServerSideProps as aF, LoginButton as aG, LoginPage as aH, LoginPageGetServerSideProps as aI, LoginPanel as aJ, LoginProvidersPanel as aK, MessageCard as aL, MessagePage as aM, MetadataDictionary as aN, MultiSelectValueFacet as aO, NavPageLayout as aP, NavigationBar as aQ, NavigationButton as aR, NavigationRail as aS, NoAccessModal as aT, NotebookLitePage as aU, NotebookLitePageGetStaticProps as aV, OverflowTooltippedLabel as aW, PanelErrorBoundary as aX, Profile as aY, ProfilePage as aZ, ProfilePageGetServerSideProps as a_, EnumFacetChart as aa, ErrorCard as ab, ExactValueFacet as ac, ExplorerPage as ad, ExplorerPageGetServerSideProps as ae, ExplorerPageGetServerSidePropsForConfigId as af, ExplorerTable as ag, ExplorerTableCellRendererFactory as ah, ExplorerTableDetailsPanelFactory as ai, FacetControlsHeader as aj, FacetExpander as ak, FacetSelector as al, FacetSortPanel as am, FacetTabs as an, FileSummary as ao, FiltersPanel as ap, FirstTimeModal as aq, FixedNavPageLayout as ar, Footer as as, Gen3Button as at, Gen3ButtonReverse as au, Gen3Link as av, Gen3ModalsProvider as aw, Gen3Provider as ax, GqlQueryEditor as ay, Header$1 as az, AccessLevel as b, gen3Modals as b$, ProtectedContent as b0, ProtectedContentUI as b1, ProtectedOverlay as b2, QueryExpression as b3, QueryExpressionContext as b4, QueryExpressionSection as b5, QueryPage as b6, QueryPageGetServerSideProps as b7, RangeFacet as b8, ReactECharts as b9, Workspace as bA, WorkspaceNoAccessPage as bB, WorkspaceNoAccessPageServerSideProps as bC, WorkspacePage as bD, WorkspacePageGetServerSideProps as bE, accessibleFieldName as bF, addIntersectionToIncludes as bG, addUnion as bH, analysisApiCohortDiscovery as bI, capitalize as bJ, classifyFacets as bK, compareKeysAscending as bL, compareKeysDescending as bM, computeRowSpan as bN, convertMinutesToMilliseconds as bO, convertPathsToTree as bP, convertSecondsToMilliseconds as bQ, convertToStringArray as bR, createCSSVariables as bS, createLabelFromHistogramData as bT, createMantineTheme as bU, credentialsLogin as bV, credentialsLogout as bW, extractObjectKey as bX, extractRangeValues$1 as bY, filterAggregationsDataKeys as bZ, focusStyles as b_, Repository as ba, RepositoryPage as bb, RepositoryPageGetServerSideProps as bc, ResourcesFilters as bd, SPECIAL_CASE_FIELDS as be, SegmentedControl as bf, SessionExpiredModal as bg, SinglePageStudyDetailsPanel as bh, StaticNotebookIFrame as bi, StudyDetailsPanel as bj, StudyGroup as bk, StudyGroupPanel as bl, StudyProvider as bm, SubmissionPage as bn, SubmissionPageGetServerSideProps as bo, TabbedCohortBuilder as bp, TabbedCohortBuilderPage as bq, TabbedCohortBuilderPageGetServerSideProps as br, TabbedPanel as bs, TableXPositionContext as bt, TagCloud as bu, TailwindConfig as bv, TopBar as bw, UploadJSONButton as bx, User as by, WarningCard as bz, AccordionPanel as c, getAllFieldsFromFilterConfigs as c0, getByPath as c1, getCurrentUnixTimestamp as c2, getFormattedTimestamp$1 as c3, getHighResolutionTimestamp as c4, getNavPageLayoutPropsFromConfig as c5, getParamsValueAsString as c6, getTagInfo as c7, hasOwnProperty as c8, isArrayOfString as c9, removeMultipleSlashes as cA, removeUnion as cB, resourcePathFromProjectID as cC, sessionLogout as cD, handler as cE, stripTrailingSlash as cF, toDisplayName$1 as cG, truncateString as cH, typography as cI, unixTimeToString as cJ, updateFacetEnum as cK, useClearFilters$1 as cL, useDiscoveryContext as cM, useExtractEnumFilterValues as cN, useExtractRangeFilterValues as cO, useFieldNameToLabel as cP, useGetFacetFilters$1 as cQ, useGuppyActionButton as cR, useUpdateFilters$1 as cS, useUpdateFiltersFlat as cT, userHasMethodForServiceOnResource$1 as cU, validateObjectHasRequiredFields as cV, withBasePath as cW, GqlQueryEditor$1 as cX, isEnumFacetResponse as ca, isHeaderMetadata as cb, isPropertyKey as cc, isTextTransform$1 as cd, isTimeGreaterThan as ce, itemsInCart as cf, mapFacetSortToSortType as cg, measureExecutionTime as ch, mergeDefaultTailwindClassnames as ci, minutesToMilliseconds as cj, processBucketData as ck, processDefinedRangeData as cl, processLabel$1 as cm, processRangeData as cn, processRangeKeyLabel as co, registerCohortBuilderDefaultPreviewRenderers as cp, registerCohortDiscoveryApp as cq, registerCohortSimilarityApp as cr, registerDefaultDiscoveryDataLoaders as cs, registerDiscoveryDefaultCellRenderers as ct, registerDownloadButtonAction as cu, registerExplorerDefaultCellRenderers as cv, registerIGVApp as cw, registerMetadataSchemaApp as cx, removeIntersectionFromEnum as cy, removeKey$1 as cz, ActionBar as d, ActionButton as e, AdminAuthZPageGetServerSideProps as f, AiSearch as g, AISearchPage as h, AnalysisCenter as i, AnalysisCenterWithSections as j, AnalysisEditorPage as k, AnalysisEditorPageGetServerSideProps as l, AnalysisPage as m, AnalysisPageGetServerSideProps as n, AnalysisWithCloseButton as o, AuthzPage as p, Banner as q, BaseModal as r, Charts as s, ClinicalDataAnalysisPage as t, ClinicalDataAnalysisServerSideProps as u, CohortActionButton as v, CohortBuilder$1 as w, CohortDropdownActionButton as x, CohortManager$1 as y, CohortManagerAndExpression as z };
|
|
41830
|
-
//# sourceMappingURL=index-
|
|
41930
|
+
//# sourceMappingURL=index-CDgLCUE3.js.map
|