@gen3/frontend 0.11.16 → 0.11.18
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/cjs/index.js +454 -299
- package/dist/cjs/index.js.map +1 -1
- package/dist/dts/components/Content/TextContent.d.ts.map +1 -1
- package/dist/dts/components/Content/TextContent.js +7 -8
- package/dist/dts/components/Content/TextContent.js.map +1 -1
- package/dist/dts/components/Layout/TexturedSidePanel.js +1 -1
- package/dist/dts/components/Layout/TexturedSidePanel.js.map +1 -1
- package/dist/dts/components/Protected/ProtectedContent.d.ts.map +1 -1
- package/dist/dts/components/Protected/ProtectedContent.js +11 -3
- package/dist/dts/components/Protected/ProtectedContent.js.map +1 -1
- package/dist/dts/components/Providers/Gen3Provider.d.ts +21 -21
- package/dist/dts/components/charts/utils.d.ts +16 -0
- package/dist/dts/components/charts/utils.d.ts.map +1 -1
- package/dist/dts/components/charts/utils.js +28 -1
- package/dist/dts/components/charts/utils.js.map +1 -1
- package/dist/dts/features/Analysis/AnalysisCardCompact.stories.d.ts +6 -6
- package/dist/dts/features/CohortBuilder/CohortBuilder.d.ts +2 -1
- package/dist/dts/features/CohortBuilder/CohortBuilder.d.ts.map +1 -1
- package/dist/dts/features/CohortBuilder/CohortBuilder.js +5 -3
- package/dist/dts/features/CohortBuilder/CohortBuilder.js.map +1 -1
- package/dist/dts/features/CohortBuilder/CohortPanel.d.ts.map +1 -1
- package/dist/dts/features/CohortBuilder/CohortPanel.js +24 -2
- package/dist/dts/features/CohortBuilder/CohortPanel.js.map +1 -1
- package/dist/dts/features/CohortBuilder/ExplorerTable/ExploreTableDetails/QueryRowDetailsPanel.d.ts.map +1 -1
- package/dist/dts/features/CohortBuilder/ExplorerTable/ExploreTableDetails/QueryRowDetailsPanel.js +58 -26
- package/dist/dts/features/CohortBuilder/ExplorerTable/ExploreTableDetails/QueryRowDetailsPanel.js.map +1 -1
- package/dist/dts/features/CohortBuilder/ExplorerTable/ExploreTableDetails/types.d.ts +3 -0
- package/dist/dts/features/CohortBuilder/ExplorerTable/ExploreTableDetails/types.d.ts.map +1 -1
- package/dist/dts/features/CohortBuilder/ExplorerTable/ExplorerTable.d.ts.map +1 -1
- package/dist/dts/features/CohortBuilder/ExplorerTable/ExplorerTable.js +39 -26
- package/dist/dts/features/CohortBuilder/ExplorerTable/ExplorerTable.js.map +1 -1
- package/dist/dts/features/CohortBuilder/index.d.ts +1 -1
- package/dist/dts/features/CohortBuilder/index.d.ts.map +1 -1
- package/dist/dts/features/CohortBuilder/index.js +1 -1
- package/dist/dts/features/CohortBuilder/index.js.map +1 -1
- package/dist/dts/features/CohortBuilder/types.d.ts +1 -0
- package/dist/dts/features/CohortBuilder/types.d.ts.map +1 -1
- package/dist/dts/features/CohortBuilder/types.js.map +1 -1
- package/dist/dts/features/CohortDiscovery/CohortManagment/CohortManager.d.ts +1 -1
- package/dist/dts/features/CohortDiscovery/CohortManagment/CohortManager.d.ts.map +1 -1
- package/dist/dts/features/CohortDiscovery/CohortManagment/CohortManager.js +21 -14
- package/dist/dts/features/CohortDiscovery/CohortManagment/CohortManager.js.map +1 -1
- package/dist/dts/features/CohortDiscovery/CohortManagment/CohortManagerMiddleware.d.ts.map +1 -1
- package/dist/dts/features/CohortDiscovery/CohortManagment/CohortManagerMiddleware.js +1 -0
- package/dist/dts/features/CohortDiscovery/CohortManagment/CohortManagerMiddleware.js.map +1 -1
- package/dist/dts/features/CohortDiscovery/CohortManagment/CohortManagerSelectors.d.ts +11 -10
- package/dist/dts/features/CohortDiscovery/CohortManagment/CohortManagerSelectors.d.ts.map +1 -1
- package/dist/dts/features/CohortDiscovery/CohortManagment/CohortManagerSelectors.js +9 -5
- package/dist/dts/features/CohortDiscovery/CohortManagment/CohortManagerSelectors.js.map +1 -1
- package/dist/dts/features/CohortDiscovery/CohortManagment/CohortManagerSlice.d.ts +1 -0
- package/dist/dts/features/CohortDiscovery/CohortManagment/CohortManagerSlice.d.ts.map +1 -1
- package/dist/dts/features/CohortDiscovery/CohortManagment/CohortManagerSlice.js +21 -6
- package/dist/dts/features/CohortDiscovery/CohortManagment/CohortManagerSlice.js.map +1 -1
- package/dist/dts/features/CohortDiscovery/SavedCohorts/SavedCohortsTable.d.ts.map +1 -1
- package/dist/dts/features/CohortDiscovery/SavedCohorts/SavedCohortsTable.js +1 -1
- package/dist/dts/features/CohortDiscovery/SavedCohorts/SavedCohortsTable.js.map +1 -1
- package/dist/dts/features/CohortDiscovery/appApi.js +1 -1
- package/dist/dts/features/CohortDiscovery/appApi.js.map +1 -1
- package/dist/dts/features/CohortDiscovery/constants.d.ts +2 -0
- package/dist/dts/features/CohortDiscovery/constants.d.ts.map +1 -1
- package/dist/dts/features/CohortDiscovery/constants.js +11 -0
- package/dist/dts/features/CohortDiscovery/constants.js.map +1 -1
- package/dist/dts/features/DataLibrary/tables/SelectedItemsTable.d.ts.map +1 -1
- package/dist/dts/features/DataLibrary/tables/SelectedItemsTable.js +4 -2
- package/dist/dts/features/DataLibrary/tables/SelectedItemsTable.js.map +1 -1
- package/dist/dts/features/Dictionary/metadata/MetadataDictionary.d.ts.map +1 -1
- package/dist/dts/features/Dictionary/metadata/MetadataDictionary.js +2 -1
- package/dist/dts/features/Dictionary/metadata/MetadataDictionary.js.map +1 -1
- package/dist/dts/features/Dictionary/metadata/types.d.ts +1 -0
- package/dist/dts/features/Dictionary/metadata/types.d.ts.map +1 -1
- package/dist/dts/features/Discovery/Discovery.d.ts.map +1 -1
- package/dist/dts/features/Discovery/Discovery.js +3 -2
- package/dist/dts/features/Discovery/Discovery.js.map +1 -1
- package/dist/dts/features/Discovery/types.d.ts +1 -0
- package/dist/dts/features/Discovery/types.d.ts.map +1 -1
- package/dist/dts/features/Discovery/types.js.map +1 -1
- package/dist/dts/features/StaticNotebook/StaticNotebookIFrame.d.ts.map +1 -1
- package/dist/dts/features/StaticNotebook/StaticNotebookIFrame.js +28 -1
- package/dist/dts/features/StaticNotebook/StaticNotebookIFrame.js.map +1 -1
- package/dist/dts/features/StaticNotebook/api/staticNotebookAPI.d.ts.map +1 -1
- package/dist/dts/features/StaticNotebook/api/staticNotebookAPI.js +7 -0
- package/dist/dts/features/StaticNotebook/api/staticNotebookAPI.js.map +1 -1
- package/dist/dts/lib/common/staticProps.d.ts.map +1 -1
- package/dist/dts/lib/common/staticProps.js +11 -23
- package/dist/dts/lib/common/staticProps.js.map +1 -1
- package/dist/dts/lib/content/filesystem.js +1 -1
- package/dist/dts/lib/content/filesystem.js.map +1 -1
- package/dist/dts/pages/Explorer/Explorer.d.ts.map +1 -1
- package/dist/dts/pages/Explorer/Explorer.js +4 -1
- package/dist/dts/pages/Explorer/Explorer.js.map +1 -1
- package/dist/esm/index.js +454 -300
- package/dist/esm/index.js.map +1 -1
- package/dist/index.d.ts +220 -200
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
package/dist/esm/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import React__default, { createContext, useState, useMemo, useEffect, useCallback, useContext, useRef, createElement, forwardRef, useReducer } from 'react';
|
|
4
|
-
import { useUserAuth, useCoreSelector, selectUserDetails, useGetAuthzMappingsQuery, fetchFence, isFetchError, WorkspaceStatus, useGetWorkspaceStatusQuery, useGetWorkspacePayModelsQuery, useTerminateWorkspaceMutation, selectRequestedWorkspaceStatus, selectRequestedWorkspaceStatusTimestamp, useCoreDispatch, setActiveWorkspaceStatus, RequestedWorkspaceStatus, setRequestedWorkspaceStatus, isTimeGreaterThan, useGetCSRFQuery, useLazyFetchUserDetailsQuery, selectUserAuthStatus, GEN3_REDIRECT_URL, GEN3_FENCE_API, showModal, Modals, isAuthenticated, useGetLoginProvidersQuery, hideModal, selectCurrentModal, fieldNameToTitle, isOperationWithField, selectShouldShareFilters, selectSharedFilters, updateCohortFilter as updateCohortFilter$1,
|
|
4
|
+
import { useUserAuth, useCoreSelector, selectUserDetails, useGetAuthzMappingsQuery, fetchFence, isFetchError, WorkspaceStatus, useGetWorkspaceStatusQuery, useGetWorkspacePayModelsQuery, useTerminateWorkspaceMutation, selectRequestedWorkspaceStatus, selectRequestedWorkspaceStatusTimestamp, useCoreDispatch, setActiveWorkspaceStatus, RequestedWorkspaceStatus, setRequestedWorkspaceStatus, isTimeGreaterThan, useGetCSRFQuery, useLazyFetchUserDetailsQuery, selectUserAuthStatus, GEN3_REDIRECT_URL, GEN3_FENCE_API, showModal, Modals, isAuthenticated, useGetLoginProvidersQuery, hideModal, selectCurrentModal, fieldNameToTitle, isOperationWithField, extractEnumFilterValue, selectIndexedFilterByName, selectShouldShareFilters, selectSharedFilters, updateCohortFilter as updateCohortFilter$1, isOperatorWithFieldAndArrayOfOperands, isUnion, removeCohortFilter as removeCohortFilter$1, trimFirstFieldNameToTitle, selectAllCohortFiltersCollapsed, Accessibility, toggleCohortBuilderAllFilters, setShouldShareFilters, useIsUserLoggedIn, GEN3_DOMAIN, useDataLibrary, DataLibraryStoreMode, buildListItemsGroupedByDataset, extractFileDatasetsInRecords, useGetMDSQuery, selectAuthzMappingData, useGetAggMDSQuery, useAskQuestionMutation, useGetIndexAggMDSQuery, useGetTagsQuery, setCohortFilter as setCohortFilter$1, clearCohortFilters as clearCohortFilters$1, handleOperation, selectAvailableCohorts, selectCurrentCohortId as selectCurrentCohortId$1, selectCohortFilters, selectCurrentCohortModified, selectCurrentCohortSaved, setCohortIndexFilters, setActiveCohort, toggleCohortBuilderCategoryFilter, selectCohortFilterExpanded, setCohortFilterCombineMode, selectCohortFilterCombineMode, selectCurrentCohortName as selectCurrentCohortName$1, useGetRawDataAndTotalCountsQuery, selectIndexFilters, isJSONValue, downloadFromGuppyToBlob, downloadJSONDataFromGuppy, useGetAggsQuery, useGetAggsNoFilterSelfQuery, isIntersection, useGetCountsQuery, setSharedFilters, usePrevious, selectHeadersWithCSRFToken, GEN3_GUPPY_API, useLaunchWorkspaceMutation, selectActiveWorkspaceStatus, isFetchBaseQueryError, setActiveWorkspace, getCurrentTimestamp, selectWorkspaceStatusFromService, selectActiveWorkspaceId, useGetWorkspaceOptionsQuery, GEN3_WORKSPACE_API, useGetExternalLoginsQuery, useSetCurrentPayModelMutation, PodStatus, PodConditionType, isWorkspaceRunningOrStopping, GEN3_API, GEN3_COMMONS_NAME, getTimestamp, createAppStore, getRemoteSupportServiceRegistry, isHttpStatusError, MissingServiceConfigurationError, useLazyGetAggsNoFilterSelfQuery, useCreateRequestMutation, buildGetAggregationQuery, processHistogramResponse, roundHistogramResponse, selectCSRFToken, useUserRequestQuery, getGen3AppId, createGen3AppWithOwnStore, useGeneralGQLQuery, createAppApiForRTKQ, useGetDictionaryQuery, useGetMetadataByIdQuery, createGen3App, CoreProvider, fetchJSONDataFromURL, HttpMethod, groupSharedFields, useGetCredentialsQuery, useRemoveCredentialMutation, useAddNewCredentialMutation, useGetProjectsDetailsQuery, useGetSubmissionsQuery, isCohortItem, isFileItem, fetchFencePresignedURL, HTTPError, getFederatedLoginStatus, queryMultipleMDSRecords, GEN3_MANIFEST_API, extractIndexFromDataLibraryCohort, isFilterSet, getNumberOfItemsInDatalist, isAdditionalDataItem, useLazyGetCrosswalkDataQuery } from '@gen3/core';
|
|
5
5
|
import { LoadingOverlay, Card, Group, Avatar, Text, Checkbox, Stack, Center, Loader, Tooltip, UnstyledButton, ThemeIcon, Box, Select, Button, Divider, Textarea, FileButton, Anchor, Modal, Grid, Table, ColorSwatch, useMantineTheme, Accordion, Switch, SegmentedControl as SegmentedControl$1, ActionIcon, Badge, TextInput, NumberInput, RangeSlider, MultiSelect, Tabs, SimpleGrid, Highlight, MantineProvider, Flex, Menu, Alert, Drawer, CopyButton, factory, useProps, getStyleObject, Paper, useCombobox, Combobox, ScrollArea, Autocomplete, Title, Transition, rem, Stepper, Spoiler, Image as Image$1, NavLink, List, createTheme, Pagination, FileInput, CloseButton } from '@mantine/core';
|
|
6
6
|
import { useDeepCompareEffect, useDeepCompareMemo, useDeepCompareCallback } from 'use-deep-compare';
|
|
7
7
|
import { useRouter } from 'next/router';
|
|
@@ -1285,11 +1285,11 @@ const LoginProvidersPanel = ({ handleLoginSelected })=>{
|
|
|
1285
1285
|
|
|
1286
1286
|
const TexturedSidePanel = ({ url })=>{
|
|
1287
1287
|
return /*#__PURE__*/ jsx("div", {
|
|
1288
|
-
"aria-
|
|
1288
|
+
"aria-hidden": "true",
|
|
1289
1289
|
style: {
|
|
1290
1290
|
backgroundImage: `url(${url})`
|
|
1291
1291
|
},
|
|
1292
|
-
className: "flex h-
|
|
1292
|
+
className: "bg-contain flex h-full w-full bg-repeat-y last:-scale-x-100"
|
|
1293
1293
|
});
|
|
1294
1294
|
};
|
|
1295
1295
|
|
|
@@ -1459,8 +1459,7 @@ function hashCode(str) {
|
|
|
1459
1459
|
className: className,
|
|
1460
1460
|
dangerouslySetInnerHTML: {
|
|
1461
1461
|
__html: textString
|
|
1462
|
-
}
|
|
1463
|
-
"aria-label": "HTML content"
|
|
1462
|
+
}
|
|
1464
1463
|
});
|
|
1465
1464
|
}
|
|
1466
1465
|
case "textArray":
|
|
@@ -1468,22 +1467,29 @@ function hashCode(str) {
|
|
|
1468
1467
|
const textArray = !Array.isArray(text) ? [
|
|
1469
1468
|
text
|
|
1470
1469
|
] : text;
|
|
1471
|
-
return /*#__PURE__*/
|
|
1470
|
+
return /*#__PURE__*/ jsxs("div", {
|
|
1472
1471
|
className: className,
|
|
1473
1472
|
role: "list",
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1473
|
+
children: [
|
|
1474
|
+
/*#__PURE__*/ jsxs("style", {
|
|
1475
|
+
children: [
|
|
1476
|
+
"@source inline(",
|
|
1477
|
+
className,
|
|
1478
|
+
");"
|
|
1479
|
+
]
|
|
1480
|
+
}),
|
|
1481
|
+
textArray.map((item)=>/*#__PURE__*/ jsx("p", {
|
|
1482
|
+
className: "my-2",
|
|
1483
|
+
role: "listitem",
|
|
1484
|
+
children: item
|
|
1485
|
+
}, hashCode(item)))
|
|
1486
|
+
]
|
|
1480
1487
|
});
|
|
1481
1488
|
}
|
|
1482
1489
|
case "markdown":
|
|
1483
1490
|
{
|
|
1484
1491
|
const textString = Array.isArray(text) ? text.join('') : text;
|
|
1485
1492
|
return /*#__PURE__*/ jsx("div", {
|
|
1486
|
-
"aria-label": "Markdown content",
|
|
1487
1493
|
children: /*#__PURE__*/ jsx(Markdown, {
|
|
1488
1494
|
remarkPlugins: [
|
|
1489
1495
|
remarkGfm
|
|
@@ -1527,21 +1533,29 @@ function hashCode(str) {
|
|
|
1527
1533
|
const DEFAULT_STYLE = 'inline text-base-contrast-max font-medium margin-block-start-1 margin-block-end-1';
|
|
1528
1534
|
const mergedClassname = className ? twMerge(DEFAULT_STYLE, className) : DEFAULT_STYLE;
|
|
1529
1535
|
const textString = Array.isArray(text) ? text.join('') : text;
|
|
1530
|
-
return /*#__PURE__*/
|
|
1536
|
+
return /*#__PURE__*/ jsxs("div", {
|
|
1531
1537
|
className: mergedClassname,
|
|
1532
|
-
children:
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1538
|
+
children: [
|
|
1539
|
+
/*#__PURE__*/ jsxs("style", {
|
|
1540
|
+
children: [
|
|
1541
|
+
"@source inline(",
|
|
1542
|
+
className,
|
|
1543
|
+
");"
|
|
1544
|
+
]
|
|
1545
|
+
}),
|
|
1546
|
+
/*#__PURE__*/ jsxs("span", {
|
|
1547
|
+
children: [
|
|
1548
|
+
textString,
|
|
1549
|
+
email && /*#__PURE__*/ jsx(Anchor, {
|
|
1550
|
+
classNames: {
|
|
1551
|
+
root: mergedClassname
|
|
1552
|
+
},
|
|
1553
|
+
href: `mailto:${email}`,
|
|
1554
|
+
children: ` ${email}.`
|
|
1555
|
+
})
|
|
1556
|
+
]
|
|
1557
|
+
})
|
|
1558
|
+
]
|
|
1545
1559
|
});
|
|
1546
1560
|
}
|
|
1547
1561
|
case "textWithLink":
|
|
@@ -1552,35 +1566,50 @@ function hashCode(str) {
|
|
|
1552
1566
|
if (!link) {
|
|
1553
1567
|
return /*#__PURE__*/ jsx("div", {
|
|
1554
1568
|
className: mergedClassname,
|
|
1555
|
-
"aria-label": "No link defined",
|
|
1556
1569
|
children: "Link is not defined."
|
|
1557
1570
|
});
|
|
1558
1571
|
}
|
|
1559
|
-
return /*#__PURE__*/
|
|
1572
|
+
return /*#__PURE__*/ jsxs("div", {
|
|
1560
1573
|
className: mergedClassname,
|
|
1561
|
-
children:
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
+
children: [
|
|
1575
|
+
/*#__PURE__*/ jsxs("style", {
|
|
1576
|
+
children: [
|
|
1577
|
+
"@source inline(",
|
|
1578
|
+
className,
|
|
1579
|
+
");"
|
|
1580
|
+
]
|
|
1581
|
+
}),
|
|
1582
|
+
/*#__PURE__*/ jsxs("span", {
|
|
1583
|
+
children: [
|
|
1584
|
+
textString,
|
|
1585
|
+
link && /*#__PURE__*/ jsx(Anchor, {
|
|
1586
|
+
classNames: {
|
|
1587
|
+
root: mergedClassname
|
|
1588
|
+
},
|
|
1589
|
+
href: link,
|
|
1590
|
+
children: ` ${linkText ?? link}.`
|
|
1591
|
+
})
|
|
1592
|
+
]
|
|
1593
|
+
})
|
|
1594
|
+
]
|
|
1574
1595
|
});
|
|
1575
1596
|
}
|
|
1576
1597
|
case "text":
|
|
1577
1598
|
default:
|
|
1578
|
-
return /*#__PURE__*/
|
|
1599
|
+
return /*#__PURE__*/ jsxs("div", {
|
|
1579
1600
|
className: className,
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1601
|
+
children: [
|
|
1602
|
+
/*#__PURE__*/ jsxs("style", {
|
|
1603
|
+
children: [
|
|
1604
|
+
"@source inline(",
|
|
1605
|
+
className,
|
|
1606
|
+
");"
|
|
1607
|
+
]
|
|
1608
|
+
}),
|
|
1609
|
+
/*#__PURE__*/ jsx("p", {
|
|
1610
|
+
children: text.toString()
|
|
1611
|
+
})
|
|
1612
|
+
]
|
|
1584
1613
|
});
|
|
1585
1614
|
}
|
|
1586
1615
|
};
|
|
@@ -2074,7 +2103,6 @@ const Gen3ModalsProvider = ({ config, children })=>{
|
|
|
2074
2103
|
});
|
|
2075
2104
|
};
|
|
2076
2105
|
|
|
2077
|
-
// import { BinGuru } from 'binguru';
|
|
2078
2106
|
const capitalize = (original)=>{
|
|
2079
2107
|
if (original === undefined) {
|
|
2080
2108
|
throw new Error('capitalize: original is undefined');
|
|
@@ -2113,6 +2141,30 @@ const processRangeKeyLabel = (key)=>{
|
|
|
2113
2141
|
spans = spans.concat(new Array(numLastRow).fill(Math.floor(12 / numLastRow)));
|
|
2114
2142
|
return spans;
|
|
2115
2143
|
};
|
|
2144
|
+
/**
|
|
2145
|
+
* Filters the keys from the provided aggregation data based on a given list of keys to remove.
|
|
2146
|
+
*
|
|
2147
|
+
* This function processes an `AggregationsData` object by iterating through its properties.
|
|
2148
|
+
* It removes elements from the data that match any of the keys specified in the `keysToRemove` array.
|
|
2149
|
+
* The filtering applies specifically to elements with a valid `key` property of type == string.
|
|
2150
|
+
* If the `key` is empty or matches one of the `keysToRemove`, it is excluded from the resulting object.
|
|
2151
|
+
*
|
|
2152
|
+
* @param {AggregationsData} data - The aggregation data object to filter. Expected to have properties that
|
|
2153
|
+
* are arrays of items containing a `key` property.
|
|
2154
|
+
* @param {Array<string>} keysToRemove - Array of string keys that should be removed from the aggregation data.
|
|
2155
|
+
* @returns {AggregationsData} A new `AggregationsData` object with filtered entries,
|
|
2156
|
+
* omitting the specified keys.
|
|
2157
|
+
*/ const filterAggregationsDataKeys = (data, keysToRemove)=>{
|
|
2158
|
+
if (!data || typeof data !== 'object') {
|
|
2159
|
+
return {};
|
|
2160
|
+
}
|
|
2161
|
+
return Object.entries(data).reduce((acc, [key, chartData])=>{
|
|
2162
|
+
if (Array.isArray(chartData)) {
|
|
2163
|
+
acc[key] = chartData.filter((x)=>x && typeof x.key === 'string' && !keysToRemove.includes(x.key));
|
|
2164
|
+
}
|
|
2165
|
+
return acc;
|
|
2166
|
+
}, {});
|
|
2167
|
+
};
|
|
2116
2168
|
|
|
2117
2169
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
2118
2170
|
function DefaultItemRenderer(_props) {
|
|
@@ -5614,8 +5666,19 @@ const ProtectedContent = ({ children, referer })=>{
|
|
|
5614
5666
|
onUnauthenticated();
|
|
5615
5667
|
}, 2000);
|
|
5616
5668
|
};
|
|
5669
|
+
const [stableStatus, setStableStatus] = useState();
|
|
5617
5670
|
const { status, pending } = useSession(true, delayRedirect);
|
|
5618
|
-
|
|
5671
|
+
useEffect(()=>{
|
|
5672
|
+
if (!pending && stableStatus !== status) {
|
|
5673
|
+
// only update stableStatus if session is not pending
|
|
5674
|
+
// this prevents flickering of the status
|
|
5675
|
+
setStableStatus(status);
|
|
5676
|
+
}
|
|
5677
|
+
}, [
|
|
5678
|
+
status,
|
|
5679
|
+
pending
|
|
5680
|
+
]);
|
|
5681
|
+
if (stableStatus !== 'issued') {
|
|
5619
5682
|
// not logged in
|
|
5620
5683
|
if (pending) return /*#__PURE__*/ jsx("div", {
|
|
5621
5684
|
className: "flex justify-center w-full mt-10",
|
|
@@ -11290,160 +11353,6 @@ const CohortManager$1 = ({ index })=>{
|
|
|
11290
11353
|
});
|
|
11291
11354
|
};
|
|
11292
11355
|
|
|
11293
|
-
function isQueryResponse(obj) {
|
|
11294
|
-
// Considering that the data property can be optional
|
|
11295
|
-
return typeof obj === 'object' && (obj.data === undefined || typeof obj.data === 'object');
|
|
11296
|
-
}
|
|
11297
|
-
const ExtractData = (data, index)=>{
|
|
11298
|
-
if (data === undefined || data === null) return {};
|
|
11299
|
-
if (data.data === undefined || data.data === null) return {};
|
|
11300
|
-
return Array.isArray(data.data[index]) && data.data[index].length > 0 ? data.data[index][0] : {};
|
|
11301
|
-
};
|
|
11302
|
-
const QueryRowDetailsPanel = ({ id, index, tableConfig, accessibility })=>{
|
|
11303
|
-
//const [queryGuppy, { data, isLoading, isError }] = useLazyGeneralGQLQuery();
|
|
11304
|
-
const idField = tableConfig.detailsConfig?.idField;
|
|
11305
|
-
const { data, isLoading, isError } = useGeneralGQLQuery({
|
|
11306
|
-
query: `query ($filter: JSON) {
|
|
11307
|
-
${index} (filter: $filter, accessibility: all) {
|
|
11308
|
-
${tableConfig.fields}
|
|
11309
|
-
}
|
|
11310
|
-
}`,
|
|
11311
|
-
variables: {
|
|
11312
|
-
filter: {
|
|
11313
|
-
AND: [
|
|
11314
|
-
{
|
|
11315
|
-
IN: {
|
|
11316
|
-
[idField ?? 0]: [
|
|
11317
|
-
id
|
|
11318
|
-
]
|
|
11319
|
-
}
|
|
11320
|
-
}
|
|
11321
|
-
]
|
|
11322
|
-
}
|
|
11323
|
-
}
|
|
11324
|
-
});
|
|
11325
|
-
if (!idField) {
|
|
11326
|
-
return /*#__PURE__*/ jsx(ErrorCard, {
|
|
11327
|
-
message: 'idField not configure in Tables Details Config'
|
|
11328
|
-
});
|
|
11329
|
-
}
|
|
11330
|
-
if (isError) {
|
|
11331
|
-
return /*#__PURE__*/ jsx(ErrorCard, {
|
|
11332
|
-
message: 'Error occurred while fetching data'
|
|
11333
|
-
});
|
|
11334
|
-
}
|
|
11335
|
-
const queryData = isQueryResponse(data) ? ExtractData(data, index) : {};
|
|
11336
|
-
const rows = Object.entries(queryData).map(([field, value])=>/*#__PURE__*/ jsxs("tr", {
|
|
11337
|
-
children: [
|
|
11338
|
-
/*#__PURE__*/ jsx("td", {
|
|
11339
|
-
children: /*#__PURE__*/ jsx(Text, {
|
|
11340
|
-
fw: "bold",
|
|
11341
|
-
children: field
|
|
11342
|
-
})
|
|
11343
|
-
}),
|
|
11344
|
-
/*#__PURE__*/ jsx("td", {
|
|
11345
|
-
children: /*#__PURE__*/ jsx(Text, {
|
|
11346
|
-
children: value ? value : ''
|
|
11347
|
-
})
|
|
11348
|
-
})
|
|
11349
|
-
]
|
|
11350
|
-
}, field));
|
|
11351
|
-
return /*#__PURE__*/ jsxs(Stack, {
|
|
11352
|
-
children: [
|
|
11353
|
-
/*#__PURE__*/ jsx(LoadingOverlay, {
|
|
11354
|
-
visible: isLoading
|
|
11355
|
-
}),
|
|
11356
|
-
/*#__PURE__*/ jsxs(Text, {
|
|
11357
|
-
c: "primary.4",
|
|
11358
|
-
children: [
|
|
11359
|
-
"Results for ",
|
|
11360
|
-
id
|
|
11361
|
-
]
|
|
11362
|
-
}),
|
|
11363
|
-
/*#__PURE__*/ jsxs(Table, {
|
|
11364
|
-
withTableBorder: true,
|
|
11365
|
-
withColumnBorders: true,
|
|
11366
|
-
children: [
|
|
11367
|
-
/*#__PURE__*/ jsx("thead", {
|
|
11368
|
-
children: /*#__PURE__*/ jsxs("tr", {
|
|
11369
|
-
children: [
|
|
11370
|
-
/*#__PURE__*/ jsx("th", {
|
|
11371
|
-
children: "Field"
|
|
11372
|
-
}),
|
|
11373
|
-
/*#__PURE__*/ jsx("th", {
|
|
11374
|
-
children: "Value"
|
|
11375
|
-
})
|
|
11376
|
-
]
|
|
11377
|
-
})
|
|
11378
|
-
}),
|
|
11379
|
-
/*#__PURE__*/ jsx("tbody", {
|
|
11380
|
-
children: rows
|
|
11381
|
-
})
|
|
11382
|
-
]
|
|
11383
|
-
})
|
|
11384
|
-
]
|
|
11385
|
-
});
|
|
11386
|
-
};
|
|
11387
|
-
|
|
11388
|
-
const RowTableDetailsPanel = ({ row })=>{
|
|
11389
|
-
const rowData = row?.original ?? {};
|
|
11390
|
-
const rows = Object.entries(rowData).map(([field, value])=>/*#__PURE__*/ jsxs(Table.Tr, {
|
|
11391
|
-
children: [
|
|
11392
|
-
/*#__PURE__*/ jsx(Table.Td, {
|
|
11393
|
-
children: /*#__PURE__*/ jsx(Text, {
|
|
11394
|
-
fw: "bold",
|
|
11395
|
-
children: field
|
|
11396
|
-
})
|
|
11397
|
-
}),
|
|
11398
|
-
/*#__PURE__*/ jsx(Table.Td, {
|
|
11399
|
-
children: /*#__PURE__*/ jsx(Text, {
|
|
11400
|
-
children: value ? value : ''
|
|
11401
|
-
})
|
|
11402
|
-
})
|
|
11403
|
-
]
|
|
11404
|
-
}, field));
|
|
11405
|
-
return /*#__PURE__*/ jsxs(Table, {
|
|
11406
|
-
striped: true,
|
|
11407
|
-
highlightOnHover: true,
|
|
11408
|
-
withTableBorder: true,
|
|
11409
|
-
withColumnBorders: true,
|
|
11410
|
-
children: [
|
|
11411
|
-
/*#__PURE__*/ jsx(Table.Thead, {
|
|
11412
|
-
children: /*#__PURE__*/ jsxs(Table.Tr, {
|
|
11413
|
-
children: [
|
|
11414
|
-
/*#__PURE__*/ jsx(Table.Th, {
|
|
11415
|
-
children: "Field"
|
|
11416
|
-
}),
|
|
11417
|
-
/*#__PURE__*/ jsx(Table.Th, {
|
|
11418
|
-
children: "Value"
|
|
11419
|
-
})
|
|
11420
|
-
]
|
|
11421
|
-
})
|
|
11422
|
-
}),
|
|
11423
|
-
/*#__PURE__*/ jsx(Table.Tbody, {
|
|
11424
|
-
children: rows
|
|
11425
|
-
})
|
|
11426
|
-
]
|
|
11427
|
-
});
|
|
11428
|
-
};
|
|
11429
|
-
|
|
11430
|
-
let instance$2;
|
|
11431
|
-
const DefaultRendererCatalog$1 = {
|
|
11432
|
-
tableDetails: {
|
|
11433
|
-
default: RowTableDetailsPanel,
|
|
11434
|
-
queryRowDetails: QueryRowDetailsPanel
|
|
11435
|
-
}
|
|
11436
|
-
};
|
|
11437
|
-
const ExplorerTableDetailsPanelFactory = ()=>{
|
|
11438
|
-
if (!instance$2) {
|
|
11439
|
-
instance$2 = new RenderFactoryTypedInstance();
|
|
11440
|
-
}
|
|
11441
|
-
return instance$2;
|
|
11442
|
-
};
|
|
11443
|
-
const registerCohortBuilderDefaultPreviewRenderers = ()=>{
|
|
11444
|
-
ExplorerTableDetailsPanelFactory().registerRendererCatalog(DefaultRendererCatalog$1);
|
|
11445
|
-
};
|
|
11446
|
-
|
|
11447
11356
|
const DEFAULT_PROPS = {
|
|
11448
11357
|
body: 'bg-base-max',
|
|
11449
11358
|
header: '!bg-primary !pb-9 !mb-9',
|
|
@@ -11586,12 +11495,12 @@ const LinkCellFunctionCatalog = {
|
|
|
11586
11495
|
default: RenderLinkCell,
|
|
11587
11496
|
linkWithValueMap: RenderLinkCellUsingValueMap
|
|
11588
11497
|
};
|
|
11589
|
-
let instance$
|
|
11498
|
+
let instance$2;
|
|
11590
11499
|
const ExplorerTableCellRendererFactory = ()=>{
|
|
11591
|
-
if (!instance$
|
|
11592
|
-
instance$
|
|
11500
|
+
if (!instance$2) {
|
|
11501
|
+
instance$2 = new RenderFactoryTypedInstance();
|
|
11593
11502
|
}
|
|
11594
|
-
return instance$
|
|
11503
|
+
return instance$2;
|
|
11595
11504
|
};
|
|
11596
11505
|
// register default cell renderers
|
|
11597
11506
|
const registerExplorerDefaultCellRenderers = ()=>{
|
|
@@ -11858,6 +11767,91 @@ const SubtableStack = ({ subTables, data })=>{
|
|
|
11858
11767
|
});
|
|
11859
11768
|
};
|
|
11860
11769
|
|
|
11770
|
+
function isQueryResponse(obj) {
|
|
11771
|
+
// Considering that the data property can be optional
|
|
11772
|
+
return typeof obj === 'object' && (obj.data === undefined || typeof obj.data === 'object');
|
|
11773
|
+
}
|
|
11774
|
+
const ExtractData = (data, index, path)=>{
|
|
11775
|
+
if (data === undefined || data === null) return {};
|
|
11776
|
+
if (data.data === undefined || data.data === null) return {};
|
|
11777
|
+
if (!isArray(data.data[index])) return {};
|
|
11778
|
+
let rowData = data.data[index][0];
|
|
11779
|
+
if (path) {
|
|
11780
|
+
const tmp = JSONPath({
|
|
11781
|
+
path: path,
|
|
11782
|
+
json: data.data[index][0]
|
|
11783
|
+
});
|
|
11784
|
+
if (!isArray(tmp)) {
|
|
11785
|
+
return {};
|
|
11786
|
+
}
|
|
11787
|
+
if (tmp.length > 0) {
|
|
11788
|
+
rowData = tmp[0];
|
|
11789
|
+
}
|
|
11790
|
+
}
|
|
11791
|
+
return rowData;
|
|
11792
|
+
};
|
|
11793
|
+
const QueryRowDetailsPanel = ({ id, index, tableConfig, accessibility })=>{
|
|
11794
|
+
//const [queryGuppy, { data, isLoading, isError }] = useLazyGeneralGQLQuery();
|
|
11795
|
+
const idField = tableConfig.detailsConfig?.idField;
|
|
11796
|
+
const simpleDetailsView = tableConfig.detailsConfig?.simpleDetailsView;
|
|
11797
|
+
const { setStudyDetails } = useStudyContext();
|
|
11798
|
+
const [opened, { open, close }] = useDisclosure(false);
|
|
11799
|
+
const { data, isError, isFetching } = useGetRawDataAndTotalCountsQuery({
|
|
11800
|
+
type: index,
|
|
11801
|
+
fields: tableConfig.fields,
|
|
11802
|
+
filters: {
|
|
11803
|
+
mode: 'and',
|
|
11804
|
+
root: {
|
|
11805
|
+
[idField]: buildNested(idField, {
|
|
11806
|
+
operator: '=',
|
|
11807
|
+
field: idField,
|
|
11808
|
+
operand: id
|
|
11809
|
+
})
|
|
11810
|
+
}
|
|
11811
|
+
},
|
|
11812
|
+
offset: 0,
|
|
11813
|
+
size: 1,
|
|
11814
|
+
accessibility: accessibility
|
|
11815
|
+
}, {
|
|
11816
|
+
skip: !idField || !id
|
|
11817
|
+
});
|
|
11818
|
+
const queryData = useMemo(()=>isQueryResponse(data) ? ExtractData(data, index, tableConfig?.detailsConfig?.dataPath) : {}, [
|
|
11819
|
+
data,
|
|
11820
|
+
index,
|
|
11821
|
+
tableConfig?.detailsConfig?.dataPath
|
|
11822
|
+
]);
|
|
11823
|
+
useEffect(()=>{
|
|
11824
|
+
setStudyDetails(queryData);
|
|
11825
|
+
}, [
|
|
11826
|
+
queryData,
|
|
11827
|
+
setStudyDetails
|
|
11828
|
+
]);
|
|
11829
|
+
if (!idField) {
|
|
11830
|
+
return /*#__PURE__*/ jsx(ErrorCard, {
|
|
11831
|
+
message: 'idField not configure in Tables Details Config'
|
|
11832
|
+
});
|
|
11833
|
+
}
|
|
11834
|
+
if (isError) {
|
|
11835
|
+
return /*#__PURE__*/ jsx(ErrorCard, {
|
|
11836
|
+
message: 'Error occurred while fetching data'
|
|
11837
|
+
});
|
|
11838
|
+
}
|
|
11839
|
+
// Inital attempt at using Study Details component
|
|
11840
|
+
return /*#__PURE__*/ jsxs(Stack, {
|
|
11841
|
+
children: [
|
|
11842
|
+
/*#__PURE__*/ jsx(LoadingOverlay, {
|
|
11843
|
+
visible: isFetching
|
|
11844
|
+
}),
|
|
11845
|
+
simpleDetailsView ? /*#__PURE__*/ jsx(SinglePageStudyDetailsPanel, {
|
|
11846
|
+
data: queryData ?? {},
|
|
11847
|
+
studyConfig: simpleDetailsView
|
|
11848
|
+
}) : /*#__PURE__*/ jsx("div", {
|
|
11849
|
+
children: "Study Details Panel not configured"
|
|
11850
|
+
})
|
|
11851
|
+
]
|
|
11852
|
+
});
|
|
11853
|
+
};
|
|
11854
|
+
|
|
11861
11855
|
const DEFAULT_PAGE_LIMIT_LABEL = 'Rows per Page (Limited to 10,0000):';
|
|
11862
11856
|
const DEFAULT_PAGE_LIMIT = 10000;
|
|
11863
11857
|
/**
|
|
@@ -11876,9 +11870,15 @@ const DEFAULT_PAGE_LIMIT = 10000;
|
|
|
11876
11870
|
const [sorting, setSorting] = useState([]);
|
|
11877
11871
|
const [rowSelection, setRowSelection] = useState({});
|
|
11878
11872
|
const [selectedRow, setSelectedRow] = useState(undefined);
|
|
11879
|
-
const DetailsPanel = useMemo(
|
|
11880
|
-
|
|
11881
|
-
|
|
11873
|
+
// const DetailsPanel = useMemo(
|
|
11874
|
+
// () =>
|
|
11875
|
+
// ExplorerTableDetailsPanelFactory().getRenderer(
|
|
11876
|
+
// 'tableDetails',
|
|
11877
|
+
// tableConfig?.detailsConfig?.panel ?? 'default',
|
|
11878
|
+
// ),
|
|
11879
|
+
// [tableConfig?.detailsConfig?.panel],
|
|
11880
|
+
// );
|
|
11881
|
+
const DetailsPanel = useMemo(()=>QueryRowDetailsPanel, []);
|
|
11882
11882
|
const tableColumns = useDeepCompareMemo(()=>{
|
|
11883
11883
|
return createTableColumns(tableConfig);
|
|
11884
11884
|
}, [
|
|
@@ -11891,7 +11891,18 @@ const DEFAULT_PAGE_LIMIT = 10000;
|
|
|
11891
11891
|
const getRowId = useCallback((tableConfig)=>{
|
|
11892
11892
|
const { detailsConfig } = tableConfig || {};
|
|
11893
11893
|
const idField = detailsConfig?.idField;
|
|
11894
|
-
|
|
11894
|
+
if (!idField) return undefined;
|
|
11895
|
+
return (originalRow)=>{
|
|
11896
|
+
const id = JSONPath({
|
|
11897
|
+
json: originalRow,
|
|
11898
|
+
path: idField
|
|
11899
|
+
});
|
|
11900
|
+
if (id.length > 0) {
|
|
11901
|
+
return id[0];
|
|
11902
|
+
} else {
|
|
11903
|
+
return undefined;
|
|
11904
|
+
}
|
|
11905
|
+
};
|
|
11895
11906
|
}, []);
|
|
11896
11907
|
const cohortFilters = useCoreSelector((state)=>selectIndexFilters(state, index));
|
|
11897
11908
|
const { data, isLoading, isError, isFetching } = useGetRawDataAndTotalCountsQuery({
|
|
@@ -12020,29 +12031,31 @@ const DEFAULT_PAGE_LIMIT = 10000;
|
|
|
12020
12031
|
} else return null;
|
|
12021
12032
|
} : undefined
|
|
12022
12033
|
});
|
|
12023
|
-
return /*#__PURE__*/
|
|
12024
|
-
children:
|
|
12025
|
-
|
|
12026
|
-
|
|
12027
|
-
|
|
12028
|
-
|
|
12029
|
-
|
|
12030
|
-
|
|
12031
|
-
|
|
12032
|
-
|
|
12033
|
-
|
|
12034
|
-
|
|
12035
|
-
|
|
12036
|
-
|
|
12037
|
-
|
|
12038
|
-
|
|
12039
|
-
|
|
12040
|
-
|
|
12041
|
-
|
|
12042
|
-
|
|
12034
|
+
return /*#__PURE__*/ jsx(React__default.Fragment, {
|
|
12035
|
+
children: /*#__PURE__*/ jsxs(StudyProvider, {
|
|
12036
|
+
children: [
|
|
12037
|
+
Object.keys(rowSelection).length > 0 ? /*#__PURE__*/ jsx(DetailsComponent, {
|
|
12038
|
+
title: tableConfig?.detailsConfig?.title,
|
|
12039
|
+
id: Object.keys(rowSelection).length > 0 ? Object.keys(rowSelection).at(0) : undefined,
|
|
12040
|
+
row: selectedRow,
|
|
12041
|
+
onClose: ()=>setRowSelection({}),
|
|
12042
|
+
panel: DetailsPanel,
|
|
12043
|
+
classNames: tableConfig?.detailsConfig?.classNames,
|
|
12044
|
+
panelProps: {
|
|
12045
|
+
index,
|
|
12046
|
+
tableConfig,
|
|
12047
|
+
...tableConfig?.detailsConfig?.params ?? {},
|
|
12048
|
+
accessibility
|
|
12049
|
+
}
|
|
12050
|
+
}) : null,
|
|
12051
|
+
/*#__PURE__*/ jsx("div", {
|
|
12052
|
+
className: "inline-block overflow-x-scroll",
|
|
12053
|
+
children: /*#__PURE__*/ jsx(MantineReactTable, {
|
|
12054
|
+
table: table
|
|
12055
|
+
})
|
|
12043
12056
|
})
|
|
12044
|
-
|
|
12045
|
-
|
|
12057
|
+
]
|
|
12058
|
+
})
|
|
12046
12059
|
});
|
|
12047
12060
|
};
|
|
12048
12061
|
|
|
@@ -12717,6 +12730,25 @@ const EmptyData = {};
|
|
|
12717
12730
|
}, {
|
|
12718
12731
|
skip: chartKeys.length === 0
|
|
12719
12732
|
});
|
|
12733
|
+
const cleanChartData = useDeepCompareMemo(()=>{
|
|
12734
|
+
if (isChartSuccess && chartData) {
|
|
12735
|
+
const cleanedData = {};
|
|
12736
|
+
Object.keys(summaryCharts).forEach((key)=>{
|
|
12737
|
+
// remove empty keys
|
|
12738
|
+
cleanedData[key] = chartData[key].filter((x)=>typeof x.key !== 'string' ? true : x.key !== '');
|
|
12739
|
+
const facetDef = facetDefinitions?.[key];
|
|
12740
|
+
if (facetDef?.excludeValues) {
|
|
12741
|
+
cleanedData[key] = cleanedData[key].filter((x)=>typeof x.key !== 'string' ? true : facetDef?.excludeValues?.includes(String(x.key)) === false);
|
|
12742
|
+
}
|
|
12743
|
+
});
|
|
12744
|
+
return cleanedData;
|
|
12745
|
+
}
|
|
12746
|
+
return chartData;
|
|
12747
|
+
}, [
|
|
12748
|
+
chartData,
|
|
12749
|
+
isChartSuccess,
|
|
12750
|
+
summaryCharts
|
|
12751
|
+
]);
|
|
12720
12752
|
const getEnumFacetData = useDeepCompareCallback((field)=>{
|
|
12721
12753
|
let filters = undefined;
|
|
12722
12754
|
let combineMode = 'or';
|
|
@@ -12857,7 +12889,7 @@ const EmptyData = {};
|
|
|
12857
12889
|
}); // TODO: replace with configurable message
|
|
12858
12890
|
}
|
|
12859
12891
|
return /*#__PURE__*/ jsxs("div", {
|
|
12860
|
-
className: "flex flex-col mt-3 relative px-4 bg-base-
|
|
12892
|
+
className: "flex flex-col mt-3 relative px-4 bg-base-lightest w-full",
|
|
12861
12893
|
children: [
|
|
12862
12894
|
/*#__PURE__*/ jsx(CohortManager$1, {
|
|
12863
12895
|
index: index
|
|
@@ -12907,24 +12939,21 @@ const EmptyData = {};
|
|
|
12907
12939
|
...chartsSection,
|
|
12908
12940
|
charts: summaryCharts
|
|
12909
12941
|
},
|
|
12910
|
-
data:
|
|
12942
|
+
data: cleanChartData ?? EmptyData,
|
|
12911
12943
|
isSuccess: isChartSuccess
|
|
12912
12944
|
}) : /*#__PURE__*/ jsx(Charts, {
|
|
12913
12945
|
charts: summaryCharts,
|
|
12914
|
-
data:
|
|
12946
|
+
data: cleanChartData ?? EmptyData,
|
|
12915
12947
|
counts: counts,
|
|
12916
12948
|
isSuccess: isChartSuccess,
|
|
12917
12949
|
numCols: numCols
|
|
12918
12950
|
}),
|
|
12919
12951
|
table?.enabled && /*#__PURE__*/ jsx("div", {
|
|
12920
12952
|
className: "mt-2 flex flex-col",
|
|
12921
|
-
children: /*#__PURE__*/ jsx(
|
|
12922
|
-
|
|
12923
|
-
|
|
12924
|
-
|
|
12925
|
-
tableConfig: table,
|
|
12926
|
-
accessibility: accessLevel
|
|
12927
|
-
})
|
|
12953
|
+
children: /*#__PURE__*/ jsx(ExplorerTable, {
|
|
12954
|
+
index: index,
|
|
12955
|
+
tableConfig: table,
|
|
12956
|
+
accessibility: accessLevel
|
|
12928
12957
|
})
|
|
12929
12958
|
})
|
|
12930
12959
|
]
|
|
@@ -12959,16 +12988,20 @@ const TabsLayoutToComponentProp = (tabsLayout)=>{
|
|
|
12959
12988
|
}
|
|
12960
12989
|
};
|
|
12961
12990
|
|
|
12962
|
-
const
|
|
12991
|
+
const useGetCurrentCohort = ()=>{
|
|
12992
|
+
return useCoreSelector((state)=>selectCurrentCohortId$1(state));
|
|
12993
|
+
};
|
|
12994
|
+
const CohortBuilder$1 = ({ explorerConfig, sharedFiltersMap = null, tabsLayout = 'left' })=>{
|
|
12963
12995
|
const dispatch = useCoreDispatch();
|
|
12964
12996
|
dispatch(setSharedFilters(sharedFiltersMap ?? {}));
|
|
12965
12997
|
const configuration = useDeepCompareMemo(()=>explorerConfig, [
|
|
12966
12998
|
explorerConfig
|
|
12967
12999
|
]);
|
|
12968
13000
|
return /*#__PURE__*/ jsx("div", {
|
|
12969
|
-
className: "w-full",
|
|
13001
|
+
className: "w-full mt-2",
|
|
12970
13002
|
children: /*#__PURE__*/ jsxs(Tabs, {
|
|
12971
13003
|
color: "primary.4",
|
|
13004
|
+
variant: explorerConfig[0]?.tabType,
|
|
12972
13005
|
keepMounted: true,
|
|
12973
13006
|
defaultValue: explorerConfig[0].tabTitle,
|
|
12974
13007
|
children: [
|
|
@@ -12999,6 +13032,71 @@ const CohortBuilder = ({ explorerConfig, sharedFiltersMap = null, tabsLayout = '
|
|
|
12999
13032
|
});
|
|
13000
13033
|
};
|
|
13001
13034
|
|
|
13035
|
+
var CohortBuilder$2 = /*#__PURE__*/Object.freeze({
|
|
13036
|
+
__proto__: null,
|
|
13037
|
+
default: CohortBuilder$1,
|
|
13038
|
+
useGetCurrentCohort: useGetCurrentCohort
|
|
13039
|
+
});
|
|
13040
|
+
|
|
13041
|
+
const RowTableDetailsPanel = ({ row })=>{
|
|
13042
|
+
const rowData = row?.original ?? {};
|
|
13043
|
+
const rows = Object.entries(rowData).map(([field, value])=>/*#__PURE__*/ jsxs(Table.Tr, {
|
|
13044
|
+
children: [
|
|
13045
|
+
/*#__PURE__*/ jsx(Table.Td, {
|
|
13046
|
+
children: /*#__PURE__*/ jsx(Text, {
|
|
13047
|
+
fw: "bold",
|
|
13048
|
+
children: field
|
|
13049
|
+
})
|
|
13050
|
+
}),
|
|
13051
|
+
/*#__PURE__*/ jsx(Table.Td, {
|
|
13052
|
+
children: /*#__PURE__*/ jsx(Text, {
|
|
13053
|
+
children: value ? value : ''
|
|
13054
|
+
})
|
|
13055
|
+
})
|
|
13056
|
+
]
|
|
13057
|
+
}, field));
|
|
13058
|
+
return /*#__PURE__*/ jsxs(Table, {
|
|
13059
|
+
striped: true,
|
|
13060
|
+
highlightOnHover: true,
|
|
13061
|
+
withTableBorder: true,
|
|
13062
|
+
withColumnBorders: true,
|
|
13063
|
+
children: [
|
|
13064
|
+
/*#__PURE__*/ jsx(Table.Thead, {
|
|
13065
|
+
children: /*#__PURE__*/ jsxs(Table.Tr, {
|
|
13066
|
+
children: [
|
|
13067
|
+
/*#__PURE__*/ jsx(Table.Th, {
|
|
13068
|
+
children: "Field"
|
|
13069
|
+
}),
|
|
13070
|
+
/*#__PURE__*/ jsx(Table.Th, {
|
|
13071
|
+
children: "Value"
|
|
13072
|
+
})
|
|
13073
|
+
]
|
|
13074
|
+
})
|
|
13075
|
+
}),
|
|
13076
|
+
/*#__PURE__*/ jsx(Table.Tbody, {
|
|
13077
|
+
children: rows
|
|
13078
|
+
})
|
|
13079
|
+
]
|
|
13080
|
+
});
|
|
13081
|
+
};
|
|
13082
|
+
|
|
13083
|
+
let instance$1;
|
|
13084
|
+
const DefaultRendererCatalog$1 = {
|
|
13085
|
+
tableDetails: {
|
|
13086
|
+
default: RowTableDetailsPanel,
|
|
13087
|
+
queryRowDetails: QueryRowDetailsPanel
|
|
13088
|
+
}
|
|
13089
|
+
};
|
|
13090
|
+
const ExplorerTableDetailsPanelFactory = ()=>{
|
|
13091
|
+
if (!instance$1) {
|
|
13092
|
+
instance$1 = new RenderFactoryTypedInstance();
|
|
13093
|
+
}
|
|
13094
|
+
return instance$1;
|
|
13095
|
+
};
|
|
13096
|
+
const registerCohortBuilderDefaultPreviewRenderers = ()=>{
|
|
13097
|
+
ExplorerTableDetailsPanelFactory().registerRendererCatalog(DefaultRendererCatalog$1);
|
|
13098
|
+
};
|
|
13099
|
+
|
|
13002
13100
|
const useCustomFacets = ()=>({
|
|
13003
13101
|
data: [],
|
|
13004
13102
|
isSuccess: true
|
|
@@ -14503,12 +14601,39 @@ const StaticNotebookViewer = ({ notebook })=>{
|
|
|
14503
14601
|
|
|
14504
14602
|
const StaticNotebookIFrame = ({ notebook })=>{
|
|
14505
14603
|
const router = useRouter$1();
|
|
14604
|
+
const iframeRef = useRef(null);
|
|
14605
|
+
useEffect(()=>{
|
|
14606
|
+
const iframe = iframeRef.current;
|
|
14607
|
+
const handleLoad = ()=>{
|
|
14608
|
+
try {
|
|
14609
|
+
// Access iframe document
|
|
14610
|
+
if (iframe) {
|
|
14611
|
+
const iframeDoc = iframe.contentDocument || iframe?.contentWindow?.document;
|
|
14612
|
+
// Find all anchor tags and add target="_blank"
|
|
14613
|
+
const links = iframeDoc?.querySelectorAll('a');
|
|
14614
|
+
links?.forEach((link)=>{
|
|
14615
|
+
link.setAttribute('target', '_blank');
|
|
14616
|
+
link.setAttribute('rel', 'noreferrer');
|
|
14617
|
+
});
|
|
14618
|
+
}
|
|
14619
|
+
} catch (error) {
|
|
14620
|
+
console.error('Cannot access iframe content:', error);
|
|
14621
|
+
}
|
|
14622
|
+
};
|
|
14623
|
+
if (iframe) {
|
|
14624
|
+
iframe.addEventListener('load', handleLoad);
|
|
14625
|
+
return ()=>iframe.removeEventListener('load', handleLoad);
|
|
14626
|
+
}
|
|
14627
|
+
}, []);
|
|
14506
14628
|
return /*#__PURE__*/ jsx("div", {
|
|
14507
14629
|
className: "flex w-full h-full",
|
|
14508
14630
|
children: /*#__PURE__*/ jsx("div", {
|
|
14509
14631
|
className: "flex justify-items-center w-full",
|
|
14510
14632
|
children: /*#__PURE__*/ jsx("iframe", {
|
|
14511
|
-
|
|
14633
|
+
ref: iframeRef,
|
|
14634
|
+
sandbox: "allow-same-origin allow-scripts allow-forms allow-popups allow-popups-to-escape-sandbox",
|
|
14635
|
+
referrerPolicy: "strict-origin-when-cross-origin",
|
|
14636
|
+
allow: "geolocation 'none'; microphone 'none'; camera 'none'",
|
|
14512
14637
|
src: `${router.basePath}/${GEN3_STATIC_NOTEBOOK_DIR}/${notebook}`,
|
|
14513
14638
|
width: "100%",
|
|
14514
14639
|
height: "100%",
|
|
@@ -14542,7 +14667,7 @@ class FilesystemContent {
|
|
|
14542
14667
|
try {
|
|
14543
14668
|
const files = myGlob(path.join(this.rootPath, filepath), filter);
|
|
14544
14669
|
return Promise.all(files.map((file)=>this.get(path.join(filepath, file))));
|
|
14545
|
-
} catch (
|
|
14670
|
+
} catch (_err) {
|
|
14546
14671
|
throw new Error(`getAllCannot process ${path.join(this.rootPath, filepath)}/${filter}`);
|
|
14547
14672
|
}
|
|
14548
14673
|
}
|
|
@@ -14597,12 +14722,18 @@ var ContentSource$1 = ContentSource.getInstance();
|
|
|
14597
14722
|
* @returns A Promise resolving to an object containing header and footer props.
|
|
14598
14723
|
*/ const getNavPageLayoutPropsFromConfig = async ()=>{
|
|
14599
14724
|
const navigationConfigJSON = await ContentSource$1.getContentDatabase().get(`${GEN3_COMMONS_NAME}/navigation.json`);
|
|
14600
|
-
|
|
14601
|
-
|
|
14602
|
-
|
|
14603
|
-
|
|
14604
|
-
|
|
14605
|
-
|
|
14725
|
+
const bannerConfigJSON = [];
|
|
14726
|
+
// TODO: enable later
|
|
14727
|
+
// try {
|
|
14728
|
+
// bannerConfigJSON = await ContentSource.getContentDatabase().get(
|
|
14729
|
+
// `${GEN3_COMMONS_NAME}/banner.json`,
|
|
14730
|
+
// );
|
|
14731
|
+
// } catch (error: unknown) {
|
|
14732
|
+
// console.warn(
|
|
14733
|
+
// 'No banner config found at: ',
|
|
14734
|
+
// `${GEN3_COMMONS_NAME}/banner.json`,
|
|
14735
|
+
// );
|
|
14736
|
+
// }
|
|
14606
14737
|
const { topBar, navigation, type = 'original' } = navigationConfigJSON;
|
|
14607
14738
|
let headerMetadata = {
|
|
14608
14739
|
title: 'Gen3 Frontend Framework Page',
|
|
@@ -15188,8 +15319,9 @@ const cohortsAdapter = createEntityAdapter({
|
|
|
15188
15319
|
const DEFAULT_COHORT_NAME = 'Default';
|
|
15189
15320
|
const loadCohortsFromStorage = createAsyncThunk('cohorts/loadFromStorage', async ()=>{
|
|
15190
15321
|
try {
|
|
15191
|
-
const
|
|
15192
|
-
return Object
|
|
15322
|
+
const results = await cohortStorage.getAllCohorts();
|
|
15323
|
+
if (results.data) return Object.values(results.data);
|
|
15324
|
+
else return [];
|
|
15193
15325
|
} catch (error) {
|
|
15194
15326
|
console.error('Failed to load cohorts:', error);
|
|
15195
15327
|
return [];
|
|
@@ -15231,11 +15363,13 @@ const deleteCohortFromStorage = createAsyncThunk('cohorts/deleteFromStorage', as
|
|
|
15231
15363
|
return cohortId;
|
|
15232
15364
|
});
|
|
15233
15365
|
const emptyInitialState = cohortsAdapter.getInitialState({
|
|
15234
|
-
currentCohortId: '
|
|
15366
|
+
currentCohortId: 'uninitialized',
|
|
15235
15367
|
loading: false,
|
|
15368
|
+
uninitialized: true,
|
|
15236
15369
|
error: null,
|
|
15237
15370
|
autoSaveInProgress: []
|
|
15238
15371
|
});
|
|
15372
|
+
// const initialState = emptyInitialState;
|
|
15239
15373
|
const initialState = cohortsAdapter.addOne(emptyInitialState, createDefaultCohort());
|
|
15240
15374
|
const updateAutoSave = (cohortId, state)=>{
|
|
15241
15375
|
// Add to auto-save queue if not already present
|
|
@@ -15416,16 +15550,24 @@ const cohortManagerSlice = createSlice({
|
|
|
15416
15550
|
extraReducers: (builder)=>{
|
|
15417
15551
|
builder.addCase(loadCohortsFromStorage.pending, (state)=>{
|
|
15418
15552
|
state.loading = true;
|
|
15553
|
+
state.uninitialized = false;
|
|
15419
15554
|
state.error = null;
|
|
15555
|
+
console.log('loadCohortsFromStorage.pending');
|
|
15420
15556
|
}).addCase(loadCohortsFromStorage.fulfilled, (state, action)=>{
|
|
15421
15557
|
state.loading = false;
|
|
15558
|
+
console.log('loadCohortsFromStorage.fulfilled', action.payload);
|
|
15422
15559
|
if (action.payload.length > 0) {
|
|
15423
|
-
if (Object.keys(state.entities).length
|
|
15424
|
-
cohortsAdapter.
|
|
15560
|
+
if (Object.keys(state.entities).length >= 0) {
|
|
15561
|
+
cohortsAdapter.removeAll(state);
|
|
15425
15562
|
}
|
|
15426
15563
|
cohortsAdapter.addMany(state, action.payload);
|
|
15427
15564
|
const sortedCohorts = action.payload.sort((a, b)=>b.modifiedDatetime.localeCompare(a.modifiedDatetime));
|
|
15428
15565
|
state.currentCohortId = sortedCohorts[0].id;
|
|
15566
|
+
} else {
|
|
15567
|
+
// No cohorts in storage, create default cohort
|
|
15568
|
+
const defaultCohort = createDefaultCohort();
|
|
15569
|
+
cohortsAdapter.addOne(state, defaultCohort);
|
|
15570
|
+
state.currentCohortId = defaultCohort.id;
|
|
15429
15571
|
}
|
|
15430
15572
|
}).addCase(loadCohortsFromStorage.rejected, (state, action)=>{
|
|
15431
15573
|
state.loading = false;
|
|
@@ -15482,6 +15624,7 @@ const cohortManagerReducer = cohortManagerSlice.reducer;
|
|
|
15482
15624
|
const getCurrentCohort = (state)=>{
|
|
15483
15625
|
const cohort = state.entities[state.currentCohortId];
|
|
15484
15626
|
if (!cohort) {
|
|
15627
|
+
console.log('creating default cohort');
|
|
15485
15628
|
return createDefaultCohort();
|
|
15486
15629
|
}
|
|
15487
15630
|
return cohort;
|
|
@@ -15591,7 +15734,6 @@ const reducers = combineReducers({
|
|
|
15591
15734
|
filtersExpandedState: filtersExpandedReducer,
|
|
15592
15735
|
facetDefinitionState: facetDefinitionsReducer,
|
|
15593
15736
|
cohorts: cohortManagerReducer,
|
|
15594
|
-
// savedCohorts: saveCohortPersistenceReducer,
|
|
15595
15737
|
dataAccessRequests: dataAccessRequestsReducer
|
|
15596
15738
|
});
|
|
15597
15739
|
const persistedReducers = persistReducer(persistConfig, reducers);
|
|
@@ -15602,6 +15744,10 @@ const { id, AppStore, AppContext, useAppSelector, useAppDispatch } = createAppSt
|
|
|
15602
15744
|
version: '0.0.1'
|
|
15603
15745
|
});
|
|
15604
15746
|
|
|
15747
|
+
process.env.GEN3_COHORT_DISCOVERY_API || `${GEN3_API}/api/auth/analysis/cohortDiscovery`;
|
|
15748
|
+
const UninitializeCohort = {
|
|
15749
|
+
filters: {}};
|
|
15750
|
+
|
|
15605
15751
|
// Selectors
|
|
15606
15752
|
const { selectAll: selectAllCohorts, selectTotal: selectTotalCohorts, selectById: selectCohortById, selectIds: selectCohortIds } = cohortsAdapter.getSelectors((state)=>state.cohorts);
|
|
15607
15753
|
const selectCurrentCohortId = (state)=>state.cohorts.currentCohortId;
|
|
@@ -15609,7 +15755,7 @@ const selectCurrentCohort = (state)=>{
|
|
|
15609
15755
|
const { currentCohortId, entities } = state.cohorts;
|
|
15610
15756
|
const cohort = entities[currentCohortId];
|
|
15611
15757
|
if (!cohort) {
|
|
15612
|
-
return
|
|
15758
|
+
return null;
|
|
15613
15759
|
}
|
|
15614
15760
|
return cohort;
|
|
15615
15761
|
};
|
|
@@ -15631,15 +15777,15 @@ createSelector([
|
|
|
15631
15777
|
], (autoSaveArray, cohortId)=>autoSaveArray.includes(cohortId));
|
|
15632
15778
|
const selectCurrentCohortName = createSelector([
|
|
15633
15779
|
selectCurrentCohort
|
|
15634
|
-
], (cohort)=>cohort
|
|
15780
|
+
], (cohort)=>cohort?.name ?? 'No Cohort Defined');
|
|
15635
15781
|
const selectCurrentCohortFilters = createSelector([
|
|
15636
15782
|
selectCurrentCohort
|
|
15637
|
-
], (cohort)=>cohort.filters);
|
|
15783
|
+
], (cohort)=>cohort ? cohort.filters : UninitializeCohort.filters);
|
|
15638
15784
|
const selectCurrentCohortIndexFilters = createSelector([
|
|
15639
15785
|
selectCurrentCohort,
|
|
15640
15786
|
(state, index)=>index
|
|
15641
15787
|
], (cohort, index)=>{
|
|
15642
|
-
return cohort
|
|
15788
|
+
return cohort?.filters?.[index] ?? EmptyFilterSet;
|
|
15643
15789
|
});
|
|
15644
15790
|
createSelector([
|
|
15645
15791
|
selectAllCohorts,
|
|
@@ -15651,7 +15797,6 @@ createSelector([
|
|
|
15651
15797
|
const trimmedName = params.name.trim().toLowerCase();
|
|
15652
15798
|
return cohorts.some((cohort)=>cohort.id !== params.excludeId && cohort.name.trim().toLowerCase() === trimmedName);
|
|
15653
15799
|
});
|
|
15654
|
-
const selectCohortManagerLoading = (state)=>state.cohorts.loading;
|
|
15655
15800
|
const selectCohortIdToNameMap = createSelector([
|
|
15656
15801
|
selectAllCohorts
|
|
15657
15802
|
], (cohorts)=>{
|
|
@@ -16118,14 +16263,12 @@ const submitCohortRequestAction = async (cohort, values, user, indexResources, r
|
|
|
16118
16263
|
}
|
|
16119
16264
|
};
|
|
16120
16265
|
|
|
16121
|
-
const
|
|
16122
|
-
const
|
|
16266
|
+
const CohortManagerPanel = ({ indexResources, remoteSupportService, size = 'md' })=>{
|
|
16267
|
+
const appDispatch = useAppDispatch();
|
|
16123
16268
|
const [isEditing, setIsEditing] = useState(false);
|
|
16124
16269
|
const [editingLabel, setEditingLabel] = useState('');
|
|
16125
16270
|
const allCohorts = useAppSelector(selectAllCohorts);
|
|
16126
16271
|
const currentCohort = useAppSelector(selectCurrentCohort);
|
|
16127
|
-
const loading = useAppSelector(selectCohortManagerLoading);
|
|
16128
|
-
const appDispatch = useAppDispatch();
|
|
16129
16272
|
const [getGetAggs] = useLazyGetAggsNoFilterSelfQuery();
|
|
16130
16273
|
const [requestQuery] = useCreateRequestMutation();
|
|
16131
16274
|
const user = useCoreSelector(selectUserDetails);
|
|
@@ -16142,7 +16285,7 @@ const CohortManager = ({ indexResources, remoteSupportService, size = 'md' })=>{
|
|
|
16142
16285
|
};
|
|
16143
16286
|
const saveEdit = ()=>{
|
|
16144
16287
|
if (editingLabel.trim() === '' || !currentCohort.name) return;
|
|
16145
|
-
|
|
16288
|
+
appDispatch(updateCohortName({
|
|
16146
16289
|
id: currentCohort.id,
|
|
16147
16290
|
name: editingLabel
|
|
16148
16291
|
}));
|
|
@@ -16150,7 +16293,7 @@ const CohortManager = ({ indexResources, remoteSupportService, size = 'md' })=>{
|
|
|
16150
16293
|
setEditingLabel('');
|
|
16151
16294
|
};
|
|
16152
16295
|
const handleCreateNew = ()=>{
|
|
16153
|
-
|
|
16296
|
+
appDispatch(createNewCohort({
|
|
16154
16297
|
name: 'New Cohort'
|
|
16155
16298
|
}));
|
|
16156
16299
|
};
|
|
@@ -16162,22 +16305,26 @@ const CohortManager = ({ indexResources, remoteSupportService, size = 'md' })=>{
|
|
|
16162
16305
|
}, [
|
|
16163
16306
|
allCohorts
|
|
16164
16307
|
]);
|
|
16308
|
+
useDeepCompareEffect(()=>{
|
|
16309
|
+
if (!currentCohort) {
|
|
16310
|
+
setCurrentCohortId(allCohorts[0].id);
|
|
16311
|
+
}
|
|
16312
|
+
}, [
|
|
16313
|
+
allCohorts,
|
|
16314
|
+
currentCohort,
|
|
16315
|
+
setCurrentCohortId
|
|
16316
|
+
]);
|
|
16165
16317
|
const onSelectCohort = useCallback((_value, option)=>{
|
|
16166
16318
|
if (option) {
|
|
16167
|
-
|
|
16319
|
+
appDispatch(setCurrentCohortId(option.value));
|
|
16168
16320
|
}
|
|
16169
16321
|
}, [
|
|
16170
|
-
|
|
16322
|
+
appDispatch
|
|
16171
16323
|
]);
|
|
16172
16324
|
const handleCohortAccessRequest = async (cohortId, values)=>{
|
|
16173
16325
|
const cohort = allCohorts.find((obj)=>obj.id === cohortId);
|
|
16174
16326
|
if (cohort) await submitCohortRequestAction(cohort, values, user, indexResources, remoteSupportService, appDispatch, getGetAggs, requestQuery);
|
|
16175
16327
|
};
|
|
16176
|
-
if (loading) {
|
|
16177
|
-
return /*#__PURE__*/ jsx("div", {
|
|
16178
|
-
children: "Loading cohorts..."
|
|
16179
|
-
});
|
|
16180
|
-
}
|
|
16181
16328
|
return /*#__PURE__*/ jsxs(Group, {
|
|
16182
16329
|
gap: "xs",
|
|
16183
16330
|
className: "flex pt-4 pl-2",
|
|
@@ -16235,7 +16382,7 @@ const CohortManager = ({ indexResources, remoteSupportService, size = 'md' })=>{
|
|
|
16235
16382
|
onClick: saveEdit,
|
|
16236
16383
|
"data-testid": "completeCohortRenameButton",
|
|
16237
16384
|
"aria-label": "Complete rename cohort",
|
|
16238
|
-
disabled: editingLabel.trim() === '' || editingLabel.trim() === currentCohort
|
|
16385
|
+
disabled: editingLabel.trim() === '' || editingLabel.trim() === currentCohort?.name,
|
|
16239
16386
|
size: `compact-${size}`,
|
|
16240
16387
|
children: /*#__PURE__*/ jsx(Icon, {
|
|
16241
16388
|
icon: "gen3:check",
|
|
@@ -16310,7 +16457,7 @@ const CohortManager = ({ indexResources, remoteSupportService, size = 'md' })=>{
|
|
|
16310
16457
|
color: theme.colors.accent[4]
|
|
16311
16458
|
},
|
|
16312
16459
|
onConfirm: ()=>{
|
|
16313
|
-
|
|
16460
|
+
appDispatch(removeCohort(currentCohort.id));
|
|
16314
16461
|
}
|
|
16315
16462
|
});
|
|
16316
16463
|
},
|
|
@@ -16352,8 +16499,15 @@ const CohortManager = ({ indexResources, remoteSupportService, size = 'md' })=>{
|
|
|
16352
16499
|
]
|
|
16353
16500
|
});
|
|
16354
16501
|
};
|
|
16355
|
-
|
|
16356
|
-
|
|
16502
|
+
const CohortManager = ({ indexResources, remoteSupportService, size = 'md' })=>{
|
|
16503
|
+
// TODO: initialize and load cohorts from cohort storage
|
|
16504
|
+
// as right now the redux-persist is handling cohorts
|
|
16505
|
+
return /*#__PURE__*/ jsx(CohortManagerPanel, {
|
|
16506
|
+
indexResources: indexResources,
|
|
16507
|
+
remoteSupportService: remoteSupportService,
|
|
16508
|
+
size: size
|
|
16509
|
+
});
|
|
16510
|
+
};
|
|
16357
16511
|
|
|
16358
16512
|
const useGraphQLData = (url, body, skip)=>{
|
|
16359
16513
|
// Create a fetcher function that handles the GraphQL POST request
|
|
@@ -16822,22 +16976,6 @@ const SavedCohortsTable = ({ indexResources, remoteSupportService, size = 'md' }
|
|
|
16822
16976
|
})
|
|
16823
16977
|
})
|
|
16824
16978
|
}),
|
|
16825
|
-
/*#__PURE__*/ jsx(Tooltip, {
|
|
16826
|
-
label: "Select Cohort",
|
|
16827
|
-
withArrow: true,
|
|
16828
|
-
children: /*#__PURE__*/ jsx(ActionIcon, {
|
|
16829
|
-
color: "accent.4",
|
|
16830
|
-
variant: "transparent",
|
|
16831
|
-
"aria-label": "Select cohort",
|
|
16832
|
-
onClick: ()=>{},
|
|
16833
|
-
children: /*#__PURE__*/ jsx(Icon, {
|
|
16834
|
-
icon: "gen3:cohort",
|
|
16835
|
-
height: iconSize,
|
|
16836
|
-
width: iconSize,
|
|
16837
|
-
color: theme.colors.secondary[4]
|
|
16838
|
-
})
|
|
16839
|
-
})
|
|
16840
|
-
}),
|
|
16841
16979
|
/*#__PURE__*/ jsx(Tooltip, {
|
|
16842
16980
|
label: "Delete Cohort",
|
|
16843
16981
|
withArrow: true,
|
|
@@ -19365,6 +19503,7 @@ const MetadataDictionary = ({ schemas })=>{
|
|
|
19365
19503
|
}
|
|
19366
19504
|
return /*#__PURE__*/ jsxs(Tabs, {
|
|
19367
19505
|
defaultValue: schemas[0].schemaID,
|
|
19506
|
+
variant: schemas[0]?.tabType,
|
|
19368
19507
|
className: "w-full",
|
|
19369
19508
|
keepMounted: false,
|
|
19370
19509
|
children: [
|
|
@@ -19704,6 +19843,7 @@ const Discovery = ({ discoveryConfig })=>{
|
|
|
19704
19843
|
children: /*#__PURE__*/ jsxs(Tabs, {
|
|
19705
19844
|
className: "w-full",
|
|
19706
19845
|
defaultValue: metadataIndex,
|
|
19846
|
+
variant: discoveryConfig.metadataConfig[0]?.tabType,
|
|
19707
19847
|
onChange: (v)=>{
|
|
19708
19848
|
setMetadataIndex(v ?? '0');
|
|
19709
19849
|
},
|
|
@@ -20005,6 +20145,9 @@ const LandingPageGetServerSideProps = async ()=>{
|
|
|
20005
20145
|
};
|
|
20006
20146
|
};
|
|
20007
20147
|
|
|
20148
|
+
const CohortBuilder = dynamic(()=>Promise.resolve().then(function () { return CohortBuilder$2; }), {
|
|
20149
|
+
ssr: false
|
|
20150
|
+
});
|
|
20008
20151
|
const ExplorerPage = ({ headerProps, footerProps, explorerConfig, headerMetadata, tabsLayout, sharedFiltersMap })=>{
|
|
20009
20152
|
if (explorerConfig === undefined) {
|
|
20010
20153
|
return /*#__PURE__*/ jsx(Center, {
|
|
@@ -23622,15 +23765,16 @@ const SelectedItemsTable = ({ validatedItems, rowSelection, setRowSelection, siz
|
|
|
23622
23765
|
const table = useMantineReactTable({
|
|
23623
23766
|
columns,
|
|
23624
23767
|
data: tableRows.rows,
|
|
23625
|
-
enableColumnResizing: false,
|
|
23626
23768
|
icons: TableIcons,
|
|
23627
23769
|
enableTopToolbar: false,
|
|
23628
23770
|
enableRowSelection: true,
|
|
23629
23771
|
enableBottomToolbar: tableRows.rows.length > 10,
|
|
23630
23772
|
enablePagination: tableRows.rows.length > 10,
|
|
23631
23773
|
enableRowActions: false,
|
|
23632
|
-
|
|
23774
|
+
enableColumnResizing: true,
|
|
23775
|
+
enableGrouping: true,
|
|
23633
23776
|
enableStickyHeader: true,
|
|
23777
|
+
enableStickyFooter: true,
|
|
23634
23778
|
enableHiding: true,
|
|
23635
23779
|
onRowSelectionChange: handleRowSelectionChange,
|
|
23636
23780
|
state: {
|
|
@@ -23638,6 +23782,9 @@ const SelectedItemsTable = ({ validatedItems, rowSelection, setRowSelection, siz
|
|
|
23638
23782
|
},
|
|
23639
23783
|
initialState: {
|
|
23640
23784
|
density: 'xs',
|
|
23785
|
+
grouping: [
|
|
23786
|
+
'datasetId'
|
|
23787
|
+
],
|
|
23641
23788
|
columnPinning: {
|
|
23642
23789
|
left: [
|
|
23643
23790
|
'mrt-row-select',
|
|
@@ -25898,6 +26045,13 @@ const staticNotebookAPI = async (req, res)=>{
|
|
|
25898
26045
|
});
|
|
25899
26046
|
}
|
|
25900
26047
|
const rawContent = fs.readFileSync(fullPath, 'utf8');
|
|
26048
|
+
DOMPurify.addHook('afterSanitizeAttributes', function(node) {
|
|
26049
|
+
if (node.tagName === 'a' || node.tagName === 'A') {
|
|
26050
|
+
// Check for anchor tags and target attribute
|
|
26051
|
+
node.setAttribute('target', '_blank');
|
|
26052
|
+
node.setAttribute('rel', 'noopener'); // Prevent window.opener vulnerability
|
|
26053
|
+
}
|
|
26054
|
+
});
|
|
25901
26055
|
const sanitizedContent = DOMPurify.sanitize(rawContent, {
|
|
25902
26056
|
ALLOWED_TAGS: [
|
|
25903
26057
|
'p',
|
|
@@ -25946,5 +26100,5 @@ const staticNotebookAPI = async (req, res)=>{
|
|
|
25946
26100
|
});
|
|
25947
26101
|
};
|
|
25948
26102
|
|
|
25949
|
-
export { AISearchPageGetServerSideProps, AccessLevel, AccordionPanel, ActionBar, ActionButton, AdminAuthZPageGetServerSideProps, AiSearch, AISearchPage as AiSearchPage, AnalysisCenter, AnalysisCenterWithSections, AnalysisEditorPage, AnalysisEditorPageGetServerSideProps, AnalysisPage, AnalysisPageGetServerSideProps, AuthzPage, BAD_DATA_MESSAGE, Banner, BaseModal, Charts, CohortBuilder, CohortManager$1 as CohortManager, CollapsableCharts, CollapsableSidebar, ColorThemePage, ColorThemePageGetServerSideProps, ContentSource$1 as ContentSource, CreateCredentialsAPIKeyModal, CrosswalkPage, CrosswalkPageGetServerSideProps, Custom404Page, DAYS_IN_YEAR, DEFAULT_MAXIMUM, DEFAULT_MINIMUM, DEFAULT_VISIBLE_ITEMS$1 as DEFAULT_VISIBLE_ITEMS, DataLibraryPage, DataLibraryPageGetServerSideProps, DictionaryPage, DictionaryPageGetServerSideProps, DiscoveryCellRendererFactory, DiscoveryProvider as DiscoveryConfigProvider, DiscoveryIndexPanel, DiscoveryPage, DiscoveryPageGetServerSideProps, DiscoveryRowRendererFactory, DropdownButton, DropdownPanel, DropdownWithIcon, EnumFacet, EnumFacetChart, ErrorCard, ExactValueFacet, ExplorerPage, ExplorerPageGetServerSideProps, ExplorerPageGetServerSidePropsForConfigId, ExplorerTableCellRendererFactory, ExplorerTableDetailsPanelFactory, FacetControlsHeader, FacetExpander, FacetSelector, FacetSortPanel, FacetTabs, FiltersPanel, FirstTimeModal, Footer, Gen3Button, Gen3ButtonReverse, Gen3Link, Gen3ModalsProvider, Gen3Provider, GqlQueryEditor$1 as GqlQueryEditor, Header$1 as Header, HoverLink, LandingPage, LandingPageGetServerSideProps, LoginButton$1 as LoginButton, LoginPage, LoginPageGetServerSideProps, LoginPanel, LoginProvidersPanel, MinutesToMilliseconds, MultiSelectValueFacet, NavPageLayout, NavigationBar, NavigationButton, NoAccessModal, NotebookLitePage, NotebookLitePageGetStaticProps, ProfilePage, ProfilePageGetServerSideProps, ProfileProvider, ProtectedContent, QueryExpression, QueryExpressionContext, QueryExpressionSection, QueryPage, QueryPageGetServerSideProps, RangeFacet, ReactECharts, ResourcesFilters, SPECIAL_CASE_FIELDS, SegmentedControl, SessionExpiredModal, SinglePageStudyDetailsPanel, StaticNotebookIFrame, StaticNotebookViewer, StudyDetailsPanel, StudyGroup, StudyGroupPanel, StudyProvider, SubmissionPage, SubmissionPageGetServerSideProps, TabbedCohortBuilder, TabbedCohortBuilderPage, TabbedCohortBuilderPageGetServerSideProps, TabbedPanel, TagCloud, TailwindConfig, TopBar, UploadJSONButton, User, Workspace, WorkspaceNoAccessPage, WorkspaceNoAccessPageServerSideProps, WorkspacePage, WorkspacePageGetServerSideProps, accessibleFieldName, addIntersectionToIncludes, addUnion, analysisApiCohortDiscovery, buildNested, capitalize, classifyFacets, compareKeysAscending, compareKeysDescending, computeRowSpan, convertMinutesToMilliseconds, convertPathsToTree, convertSecondsToMilliseconds, convertToStringArray, create10ColorAccessibleContrast, create10ColorPallet, createMantineTheme, credentialsLogin, credentialsLogout, extractObjectKey, extractRangeValues, focusStyles, getAllFieldsFromFilterConfigs, getCurrentUnixTimestamp, getNavPageLayoutPropsFromConfig, getParamsValueAsString, getTagInfo, hasOwnProperty, isArrayOfString, isEnumFacetResponse, isHeaderMetadata, isPropertyKey, isTextTransform$1 as isTextTransform, mapFacetSortToSortType, processBucketData, processLabel$1 as processLabel, processRangeData, processRangeKeyLabel, registerCohortBuilderDefaultPreviewRenderers, registerCohortDiscoveryApp, registerCohortSimilarityApp, registerDefaultDiscoveryDataLoaders, registerDiscoveryDefaultCellRenderers, registerDiscoveryDefaultStudyPreviewRenderers, registerExplorerDefaultCellRenderers, registerMetadataSchemaApp, removeIntersectionFromEnum, removeKey$1 as removeKey, removeUnion, resourcePathFromProjectID, sessionLogout, sessionToken, staticNotebookAPI, stripTrailingSlash, toCountsString, toDisplayName, truncateString, unixTimeToString, updateFacetEnum, useClearFilters$1 as useClearFilters, useDiscoveryContext, useExtractEnumFilterValues, useExtractRangeFilterValues, useFieldNameToTitle, useGetFacetFilters$1 as useGetFacetFilters, useUpdateFilters$1 as useUpdateFilters, userHasMethodForServiceOnResource$1 as userHasMethodForServiceOnResource };
|
|
26103
|
+
export { AISearchPageGetServerSideProps, AccessLevel, AccordionPanel, ActionBar, ActionButton, AdminAuthZPageGetServerSideProps, AiSearch, AISearchPage as AiSearchPage, AnalysisCenter, AnalysisCenterWithSections, AnalysisEditorPage, AnalysisEditorPageGetServerSideProps, AnalysisPage, AnalysisPageGetServerSideProps, AuthzPage, BAD_DATA_MESSAGE, Banner, BaseModal, Charts, CohortBuilder$1 as CohortBuilder, CohortManager$1 as CohortManager, CollapsableCharts, CollapsableSidebar, ColorThemePage, ColorThemePageGetServerSideProps, ContentSource$1 as ContentSource, CreateCredentialsAPIKeyModal, CrosswalkPage, CrosswalkPageGetServerSideProps, Custom404Page, DAYS_IN_YEAR, DEFAULT_MAXIMUM, DEFAULT_MINIMUM, DEFAULT_VISIBLE_ITEMS$1 as DEFAULT_VISIBLE_ITEMS, DataLibraryPage, DataLibraryPageGetServerSideProps, DictionaryPage, DictionaryPageGetServerSideProps, DiscoveryCellRendererFactory, DiscoveryProvider as DiscoveryConfigProvider, DiscoveryIndexPanel, DiscoveryPage, DiscoveryPageGetServerSideProps, DiscoveryRowRendererFactory, DropdownButton, DropdownPanel, DropdownWithIcon, EnumFacet, EnumFacetChart, ErrorCard, ExactValueFacet, ExplorerPage, ExplorerPageGetServerSideProps, ExplorerPageGetServerSidePropsForConfigId, ExplorerTableCellRendererFactory, ExplorerTableDetailsPanelFactory, FacetControlsHeader, FacetExpander, FacetSelector, FacetSortPanel, FacetTabs, FiltersPanel, FirstTimeModal, Footer, Gen3Button, Gen3ButtonReverse, Gen3Link, Gen3ModalsProvider, Gen3Provider, GqlQueryEditor$1 as GqlQueryEditor, Header$1 as Header, HoverLink, LandingPage, LandingPageGetServerSideProps, LoginButton$1 as LoginButton, LoginPage, LoginPageGetServerSideProps, LoginPanel, LoginProvidersPanel, MinutesToMilliseconds, MultiSelectValueFacet, NavPageLayout, NavigationBar, NavigationButton, NoAccessModal, NotebookLitePage, NotebookLitePageGetStaticProps, ProfilePage, ProfilePageGetServerSideProps, ProfileProvider, ProtectedContent, QueryExpression, QueryExpressionContext, QueryExpressionSection, QueryPage, QueryPageGetServerSideProps, RangeFacet, ReactECharts, ResourcesFilters, SPECIAL_CASE_FIELDS, SegmentedControl, SessionExpiredModal, SinglePageStudyDetailsPanel, StaticNotebookIFrame, StaticNotebookViewer, StudyDetailsPanel, StudyGroup, StudyGroupPanel, StudyProvider, SubmissionPage, SubmissionPageGetServerSideProps, TabbedCohortBuilder, TabbedCohortBuilderPage, TabbedCohortBuilderPageGetServerSideProps, TabbedPanel, TagCloud, TailwindConfig, TopBar, UploadJSONButton, User, Workspace, WorkspaceNoAccessPage, WorkspaceNoAccessPageServerSideProps, WorkspacePage, WorkspacePageGetServerSideProps, accessibleFieldName, addIntersectionToIncludes, addUnion, analysisApiCohortDiscovery, buildNested, capitalize, classifyFacets, compareKeysAscending, compareKeysDescending, computeRowSpan, convertMinutesToMilliseconds, convertPathsToTree, convertSecondsToMilliseconds, convertToStringArray, create10ColorAccessibleContrast, create10ColorPallet, createMantineTheme, credentialsLogin, credentialsLogout, extractObjectKey, extractRangeValues, filterAggregationsDataKeys, focusStyles, getAllFieldsFromFilterConfigs, getCurrentUnixTimestamp, getNavPageLayoutPropsFromConfig, getParamsValueAsString, getTagInfo, hasOwnProperty, isArrayOfString, isEnumFacetResponse, isHeaderMetadata, isPropertyKey, isTextTransform$1 as isTextTransform, mapFacetSortToSortType, processBucketData, processLabel$1 as processLabel, processRangeData, processRangeKeyLabel, registerCohortBuilderDefaultPreviewRenderers, registerCohortDiscoveryApp, registerCohortSimilarityApp, registerDefaultDiscoveryDataLoaders, registerDiscoveryDefaultCellRenderers, registerDiscoveryDefaultStudyPreviewRenderers, registerExplorerDefaultCellRenderers, registerMetadataSchemaApp, removeIntersectionFromEnum, removeKey$1 as removeKey, removeUnion, resourcePathFromProjectID, sessionLogout, sessionToken, staticNotebookAPI, stripTrailingSlash, toCountsString, toDisplayName, truncateString, unixTimeToString, updateFacetEnum, useClearFilters$1 as useClearFilters, useDiscoveryContext, useExtractEnumFilterValues, useExtractRangeFilterValues, useFieldNameToTitle, useGetFacetFilters$1 as useGetFacetFilters, useUpdateFilters$1 as useUpdateFilters, userHasMethodForServiceOnResource$1 as userHasMethodForServiceOnResource };
|
|
25950
26104
|
//# sourceMappingURL=index.js.map
|