@gen3/frontend 0.11.17 → 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 +436 -296
- 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/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/ArrayCellRenderer.d.ts +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/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 +436 -297
- 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) {
|
|
@@ -11301,160 +11353,6 @@ const CohortManager$1 = ({ index })=>{
|
|
|
11301
11353
|
});
|
|
11302
11354
|
};
|
|
11303
11355
|
|
|
11304
|
-
function isQueryResponse(obj) {
|
|
11305
|
-
// Considering that the data property can be optional
|
|
11306
|
-
return typeof obj === 'object' && (obj.data === undefined || typeof obj.data === 'object');
|
|
11307
|
-
}
|
|
11308
|
-
const ExtractData = (data, index)=>{
|
|
11309
|
-
if (data === undefined || data === null) return {};
|
|
11310
|
-
if (data.data === undefined || data.data === null) return {};
|
|
11311
|
-
return Array.isArray(data.data[index]) && data.data[index].length > 0 ? data.data[index][0] : {};
|
|
11312
|
-
};
|
|
11313
|
-
const QueryRowDetailsPanel = ({ id, index, tableConfig, accessibility })=>{
|
|
11314
|
-
//const [queryGuppy, { data, isLoading, isError }] = useLazyGeneralGQLQuery();
|
|
11315
|
-
const idField = tableConfig.detailsConfig?.idField;
|
|
11316
|
-
const { data, isLoading, isError } = useGeneralGQLQuery({
|
|
11317
|
-
query: `query ($filter: JSON) {
|
|
11318
|
-
${index} (filter: $filter, accessibility: all) {
|
|
11319
|
-
${tableConfig.fields}
|
|
11320
|
-
}
|
|
11321
|
-
}`,
|
|
11322
|
-
variables: {
|
|
11323
|
-
filter: {
|
|
11324
|
-
AND: [
|
|
11325
|
-
{
|
|
11326
|
-
IN: {
|
|
11327
|
-
[idField ?? 0]: [
|
|
11328
|
-
id
|
|
11329
|
-
]
|
|
11330
|
-
}
|
|
11331
|
-
}
|
|
11332
|
-
]
|
|
11333
|
-
}
|
|
11334
|
-
}
|
|
11335
|
-
});
|
|
11336
|
-
if (!idField) {
|
|
11337
|
-
return /*#__PURE__*/ jsx(ErrorCard, {
|
|
11338
|
-
message: 'idField not configure in Tables Details Config'
|
|
11339
|
-
});
|
|
11340
|
-
}
|
|
11341
|
-
if (isError) {
|
|
11342
|
-
return /*#__PURE__*/ jsx(ErrorCard, {
|
|
11343
|
-
message: 'Error occurred while fetching data'
|
|
11344
|
-
});
|
|
11345
|
-
}
|
|
11346
|
-
const queryData = isQueryResponse(data) ? ExtractData(data, index) : {};
|
|
11347
|
-
const rows = Object.entries(queryData).map(([field, value])=>/*#__PURE__*/ jsxs("tr", {
|
|
11348
|
-
children: [
|
|
11349
|
-
/*#__PURE__*/ jsx("td", {
|
|
11350
|
-
children: /*#__PURE__*/ jsx(Text, {
|
|
11351
|
-
fw: "bold",
|
|
11352
|
-
children: field
|
|
11353
|
-
})
|
|
11354
|
-
}),
|
|
11355
|
-
/*#__PURE__*/ jsx("td", {
|
|
11356
|
-
children: /*#__PURE__*/ jsx(Text, {
|
|
11357
|
-
children: value ? value : ''
|
|
11358
|
-
})
|
|
11359
|
-
})
|
|
11360
|
-
]
|
|
11361
|
-
}, field));
|
|
11362
|
-
return /*#__PURE__*/ jsxs(Stack, {
|
|
11363
|
-
children: [
|
|
11364
|
-
/*#__PURE__*/ jsx(LoadingOverlay, {
|
|
11365
|
-
visible: isLoading
|
|
11366
|
-
}),
|
|
11367
|
-
/*#__PURE__*/ jsxs(Text, {
|
|
11368
|
-
c: "primary.4",
|
|
11369
|
-
children: [
|
|
11370
|
-
"Results for ",
|
|
11371
|
-
id
|
|
11372
|
-
]
|
|
11373
|
-
}),
|
|
11374
|
-
/*#__PURE__*/ jsxs(Table, {
|
|
11375
|
-
withTableBorder: true,
|
|
11376
|
-
withColumnBorders: true,
|
|
11377
|
-
children: [
|
|
11378
|
-
/*#__PURE__*/ jsx("thead", {
|
|
11379
|
-
children: /*#__PURE__*/ jsxs("tr", {
|
|
11380
|
-
children: [
|
|
11381
|
-
/*#__PURE__*/ jsx("th", {
|
|
11382
|
-
children: "Field"
|
|
11383
|
-
}),
|
|
11384
|
-
/*#__PURE__*/ jsx("th", {
|
|
11385
|
-
children: "Value"
|
|
11386
|
-
})
|
|
11387
|
-
]
|
|
11388
|
-
})
|
|
11389
|
-
}),
|
|
11390
|
-
/*#__PURE__*/ jsx("tbody", {
|
|
11391
|
-
children: rows
|
|
11392
|
-
})
|
|
11393
|
-
]
|
|
11394
|
-
})
|
|
11395
|
-
]
|
|
11396
|
-
});
|
|
11397
|
-
};
|
|
11398
|
-
|
|
11399
|
-
const RowTableDetailsPanel = ({ row })=>{
|
|
11400
|
-
const rowData = row?.original ?? {};
|
|
11401
|
-
const rows = Object.entries(rowData).map(([field, value])=>/*#__PURE__*/ jsxs(Table.Tr, {
|
|
11402
|
-
children: [
|
|
11403
|
-
/*#__PURE__*/ jsx(Table.Td, {
|
|
11404
|
-
children: /*#__PURE__*/ jsx(Text, {
|
|
11405
|
-
fw: "bold",
|
|
11406
|
-
children: field
|
|
11407
|
-
})
|
|
11408
|
-
}),
|
|
11409
|
-
/*#__PURE__*/ jsx(Table.Td, {
|
|
11410
|
-
children: /*#__PURE__*/ jsx(Text, {
|
|
11411
|
-
children: value ? value : ''
|
|
11412
|
-
})
|
|
11413
|
-
})
|
|
11414
|
-
]
|
|
11415
|
-
}, field));
|
|
11416
|
-
return /*#__PURE__*/ jsxs(Table, {
|
|
11417
|
-
striped: true,
|
|
11418
|
-
highlightOnHover: true,
|
|
11419
|
-
withTableBorder: true,
|
|
11420
|
-
withColumnBorders: true,
|
|
11421
|
-
children: [
|
|
11422
|
-
/*#__PURE__*/ jsx(Table.Thead, {
|
|
11423
|
-
children: /*#__PURE__*/ jsxs(Table.Tr, {
|
|
11424
|
-
children: [
|
|
11425
|
-
/*#__PURE__*/ jsx(Table.Th, {
|
|
11426
|
-
children: "Field"
|
|
11427
|
-
}),
|
|
11428
|
-
/*#__PURE__*/ jsx(Table.Th, {
|
|
11429
|
-
children: "Value"
|
|
11430
|
-
})
|
|
11431
|
-
]
|
|
11432
|
-
})
|
|
11433
|
-
}),
|
|
11434
|
-
/*#__PURE__*/ jsx(Table.Tbody, {
|
|
11435
|
-
children: rows
|
|
11436
|
-
})
|
|
11437
|
-
]
|
|
11438
|
-
});
|
|
11439
|
-
};
|
|
11440
|
-
|
|
11441
|
-
let instance$2;
|
|
11442
|
-
const DefaultRendererCatalog$1 = {
|
|
11443
|
-
tableDetails: {
|
|
11444
|
-
default: RowTableDetailsPanel,
|
|
11445
|
-
queryRowDetails: QueryRowDetailsPanel
|
|
11446
|
-
}
|
|
11447
|
-
};
|
|
11448
|
-
const ExplorerTableDetailsPanelFactory = ()=>{
|
|
11449
|
-
if (!instance$2) {
|
|
11450
|
-
instance$2 = new RenderFactoryTypedInstance();
|
|
11451
|
-
}
|
|
11452
|
-
return instance$2;
|
|
11453
|
-
};
|
|
11454
|
-
const registerCohortBuilderDefaultPreviewRenderers = ()=>{
|
|
11455
|
-
ExplorerTableDetailsPanelFactory().registerRendererCatalog(DefaultRendererCatalog$1);
|
|
11456
|
-
};
|
|
11457
|
-
|
|
11458
11356
|
const DEFAULT_PROPS = {
|
|
11459
11357
|
body: 'bg-base-max',
|
|
11460
11358
|
header: '!bg-primary !pb-9 !mb-9',
|
|
@@ -11597,12 +11495,12 @@ const LinkCellFunctionCatalog = {
|
|
|
11597
11495
|
default: RenderLinkCell,
|
|
11598
11496
|
linkWithValueMap: RenderLinkCellUsingValueMap
|
|
11599
11497
|
};
|
|
11600
|
-
let instance$
|
|
11498
|
+
let instance$2;
|
|
11601
11499
|
const ExplorerTableCellRendererFactory = ()=>{
|
|
11602
|
-
if (!instance$
|
|
11603
|
-
instance$
|
|
11500
|
+
if (!instance$2) {
|
|
11501
|
+
instance$2 = new RenderFactoryTypedInstance();
|
|
11604
11502
|
}
|
|
11605
|
-
return instance$
|
|
11503
|
+
return instance$2;
|
|
11606
11504
|
};
|
|
11607
11505
|
// register default cell renderers
|
|
11608
11506
|
const registerExplorerDefaultCellRenderers = ()=>{
|
|
@@ -11869,6 +11767,91 @@ const SubtableStack = ({ subTables, data })=>{
|
|
|
11869
11767
|
});
|
|
11870
11768
|
};
|
|
11871
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
|
+
|
|
11872
11855
|
const DEFAULT_PAGE_LIMIT_LABEL = 'Rows per Page (Limited to 10,0000):';
|
|
11873
11856
|
const DEFAULT_PAGE_LIMIT = 10000;
|
|
11874
11857
|
/**
|
|
@@ -11887,9 +11870,15 @@ const DEFAULT_PAGE_LIMIT = 10000;
|
|
|
11887
11870
|
const [sorting, setSorting] = useState([]);
|
|
11888
11871
|
const [rowSelection, setRowSelection] = useState({});
|
|
11889
11872
|
const [selectedRow, setSelectedRow] = useState(undefined);
|
|
11890
|
-
const DetailsPanel = useMemo(
|
|
11891
|
-
|
|
11892
|
-
|
|
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, []);
|
|
11893
11882
|
const tableColumns = useDeepCompareMemo(()=>{
|
|
11894
11883
|
return createTableColumns(tableConfig);
|
|
11895
11884
|
}, [
|
|
@@ -11902,7 +11891,18 @@ const DEFAULT_PAGE_LIMIT = 10000;
|
|
|
11902
11891
|
const getRowId = useCallback((tableConfig)=>{
|
|
11903
11892
|
const { detailsConfig } = tableConfig || {};
|
|
11904
11893
|
const idField = detailsConfig?.idField;
|
|
11905
|
-
|
|
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
|
+
};
|
|
11906
11906
|
}, []);
|
|
11907
11907
|
const cohortFilters = useCoreSelector((state)=>selectIndexFilters(state, index));
|
|
11908
11908
|
const { data, isLoading, isError, isFetching } = useGetRawDataAndTotalCountsQuery({
|
|
@@ -12031,29 +12031,31 @@ const DEFAULT_PAGE_LIMIT = 10000;
|
|
|
12031
12031
|
} else return null;
|
|
12032
12032
|
} : undefined
|
|
12033
12033
|
});
|
|
12034
|
-
return /*#__PURE__*/
|
|
12035
|
-
children:
|
|
12036
|
-
|
|
12037
|
-
|
|
12038
|
-
|
|
12039
|
-
|
|
12040
|
-
|
|
12041
|
-
|
|
12042
|
-
|
|
12043
|
-
|
|
12044
|
-
|
|
12045
|
-
|
|
12046
|
-
|
|
12047
|
-
|
|
12048
|
-
|
|
12049
|
-
|
|
12050
|
-
|
|
12051
|
-
|
|
12052
|
-
|
|
12053
|
-
|
|
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
|
+
})
|
|
12054
12056
|
})
|
|
12055
|
-
|
|
12056
|
-
|
|
12057
|
+
]
|
|
12058
|
+
})
|
|
12057
12059
|
});
|
|
12058
12060
|
};
|
|
12059
12061
|
|
|
@@ -12728,6 +12730,25 @@ const EmptyData = {};
|
|
|
12728
12730
|
}, {
|
|
12729
12731
|
skip: chartKeys.length === 0
|
|
12730
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
|
+
]);
|
|
12731
12752
|
const getEnumFacetData = useDeepCompareCallback((field)=>{
|
|
12732
12753
|
let filters = undefined;
|
|
12733
12754
|
let combineMode = 'or';
|
|
@@ -12868,7 +12889,7 @@ const EmptyData = {};
|
|
|
12868
12889
|
}); // TODO: replace with configurable message
|
|
12869
12890
|
}
|
|
12870
12891
|
return /*#__PURE__*/ jsxs("div", {
|
|
12871
|
-
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",
|
|
12872
12893
|
children: [
|
|
12873
12894
|
/*#__PURE__*/ jsx(CohortManager$1, {
|
|
12874
12895
|
index: index
|
|
@@ -12918,24 +12939,21 @@ const EmptyData = {};
|
|
|
12918
12939
|
...chartsSection,
|
|
12919
12940
|
charts: summaryCharts
|
|
12920
12941
|
},
|
|
12921
|
-
data:
|
|
12942
|
+
data: cleanChartData ?? EmptyData,
|
|
12922
12943
|
isSuccess: isChartSuccess
|
|
12923
12944
|
}) : /*#__PURE__*/ jsx(Charts, {
|
|
12924
12945
|
charts: summaryCharts,
|
|
12925
|
-
data:
|
|
12946
|
+
data: cleanChartData ?? EmptyData,
|
|
12926
12947
|
counts: counts,
|
|
12927
12948
|
isSuccess: isChartSuccess,
|
|
12928
12949
|
numCols: numCols
|
|
12929
12950
|
}),
|
|
12930
12951
|
table?.enabled && /*#__PURE__*/ jsx("div", {
|
|
12931
12952
|
className: "mt-2 flex flex-col",
|
|
12932
|
-
children: /*#__PURE__*/ jsx(
|
|
12933
|
-
|
|
12934
|
-
|
|
12935
|
-
|
|
12936
|
-
tableConfig: table,
|
|
12937
|
-
accessibility: accessLevel
|
|
12938
|
-
})
|
|
12953
|
+
children: /*#__PURE__*/ jsx(ExplorerTable, {
|
|
12954
|
+
index: index,
|
|
12955
|
+
tableConfig: table,
|
|
12956
|
+
accessibility: accessLevel
|
|
12939
12957
|
})
|
|
12940
12958
|
})
|
|
12941
12959
|
]
|
|
@@ -12970,16 +12988,20 @@ const TabsLayoutToComponentProp = (tabsLayout)=>{
|
|
|
12970
12988
|
}
|
|
12971
12989
|
};
|
|
12972
12990
|
|
|
12973
|
-
const
|
|
12991
|
+
const useGetCurrentCohort = ()=>{
|
|
12992
|
+
return useCoreSelector((state)=>selectCurrentCohortId$1(state));
|
|
12993
|
+
};
|
|
12994
|
+
const CohortBuilder$1 = ({ explorerConfig, sharedFiltersMap = null, tabsLayout = 'left' })=>{
|
|
12974
12995
|
const dispatch = useCoreDispatch();
|
|
12975
12996
|
dispatch(setSharedFilters(sharedFiltersMap ?? {}));
|
|
12976
12997
|
const configuration = useDeepCompareMemo(()=>explorerConfig, [
|
|
12977
12998
|
explorerConfig
|
|
12978
12999
|
]);
|
|
12979
13000
|
return /*#__PURE__*/ jsx("div", {
|
|
12980
|
-
className: "w-full",
|
|
13001
|
+
className: "w-full mt-2",
|
|
12981
13002
|
children: /*#__PURE__*/ jsxs(Tabs, {
|
|
12982
13003
|
color: "primary.4",
|
|
13004
|
+
variant: explorerConfig[0]?.tabType,
|
|
12983
13005
|
keepMounted: true,
|
|
12984
13006
|
defaultValue: explorerConfig[0].tabTitle,
|
|
12985
13007
|
children: [
|
|
@@ -13010,6 +13032,71 @@ const CohortBuilder = ({ explorerConfig, sharedFiltersMap = null, tabsLayout = '
|
|
|
13010
13032
|
});
|
|
13011
13033
|
};
|
|
13012
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
|
+
|
|
13013
13100
|
const useCustomFacets = ()=>({
|
|
13014
13101
|
data: [],
|
|
13015
13102
|
isSuccess: true
|
|
@@ -14514,12 +14601,39 @@ const StaticNotebookViewer = ({ notebook })=>{
|
|
|
14514
14601
|
|
|
14515
14602
|
const StaticNotebookIFrame = ({ notebook })=>{
|
|
14516
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
|
+
}, []);
|
|
14517
14628
|
return /*#__PURE__*/ jsx("div", {
|
|
14518
14629
|
className: "flex w-full h-full",
|
|
14519
14630
|
children: /*#__PURE__*/ jsx("div", {
|
|
14520
14631
|
className: "flex justify-items-center w-full",
|
|
14521
14632
|
children: /*#__PURE__*/ jsx("iframe", {
|
|
14522
|
-
|
|
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'",
|
|
14523
14637
|
src: `${router.basePath}/${GEN3_STATIC_NOTEBOOK_DIR}/${notebook}`,
|
|
14524
14638
|
width: "100%",
|
|
14525
14639
|
height: "100%",
|
|
@@ -14553,7 +14667,7 @@ class FilesystemContent {
|
|
|
14553
14667
|
try {
|
|
14554
14668
|
const files = myGlob(path.join(this.rootPath, filepath), filter);
|
|
14555
14669
|
return Promise.all(files.map((file)=>this.get(path.join(filepath, file))));
|
|
14556
|
-
} catch (
|
|
14670
|
+
} catch (_err) {
|
|
14557
14671
|
throw new Error(`getAllCannot process ${path.join(this.rootPath, filepath)}/${filter}`);
|
|
14558
14672
|
}
|
|
14559
14673
|
}
|
|
@@ -14608,12 +14722,18 @@ var ContentSource$1 = ContentSource.getInstance();
|
|
|
14608
14722
|
* @returns A Promise resolving to an object containing header and footer props.
|
|
14609
14723
|
*/ const getNavPageLayoutPropsFromConfig = async ()=>{
|
|
14610
14724
|
const navigationConfigJSON = await ContentSource$1.getContentDatabase().get(`${GEN3_COMMONS_NAME}/navigation.json`);
|
|
14611
|
-
|
|
14612
|
-
|
|
14613
|
-
|
|
14614
|
-
|
|
14615
|
-
|
|
14616
|
-
|
|
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
|
+
// }
|
|
14617
14737
|
const { topBar, navigation, type = 'original' } = navigationConfigJSON;
|
|
14618
14738
|
let headerMetadata = {
|
|
14619
14739
|
title: 'Gen3 Frontend Framework Page',
|
|
@@ -15199,8 +15319,9 @@ const cohortsAdapter = createEntityAdapter({
|
|
|
15199
15319
|
const DEFAULT_COHORT_NAME = 'Default';
|
|
15200
15320
|
const loadCohortsFromStorage = createAsyncThunk('cohorts/loadFromStorage', async ()=>{
|
|
15201
15321
|
try {
|
|
15202
|
-
const
|
|
15203
|
-
return Object
|
|
15322
|
+
const results = await cohortStorage.getAllCohorts();
|
|
15323
|
+
if (results.data) return Object.values(results.data);
|
|
15324
|
+
else return [];
|
|
15204
15325
|
} catch (error) {
|
|
15205
15326
|
console.error('Failed to load cohorts:', error);
|
|
15206
15327
|
return [];
|
|
@@ -15242,11 +15363,13 @@ const deleteCohortFromStorage = createAsyncThunk('cohorts/deleteFromStorage', as
|
|
|
15242
15363
|
return cohortId;
|
|
15243
15364
|
});
|
|
15244
15365
|
const emptyInitialState = cohortsAdapter.getInitialState({
|
|
15245
|
-
currentCohortId: '
|
|
15366
|
+
currentCohortId: 'uninitialized',
|
|
15246
15367
|
loading: false,
|
|
15368
|
+
uninitialized: true,
|
|
15247
15369
|
error: null,
|
|
15248
15370
|
autoSaveInProgress: []
|
|
15249
15371
|
});
|
|
15372
|
+
// const initialState = emptyInitialState;
|
|
15250
15373
|
const initialState = cohortsAdapter.addOne(emptyInitialState, createDefaultCohort());
|
|
15251
15374
|
const updateAutoSave = (cohortId, state)=>{
|
|
15252
15375
|
// Add to auto-save queue if not already present
|
|
@@ -15427,16 +15550,24 @@ const cohortManagerSlice = createSlice({
|
|
|
15427
15550
|
extraReducers: (builder)=>{
|
|
15428
15551
|
builder.addCase(loadCohortsFromStorage.pending, (state)=>{
|
|
15429
15552
|
state.loading = true;
|
|
15553
|
+
state.uninitialized = false;
|
|
15430
15554
|
state.error = null;
|
|
15555
|
+
console.log('loadCohortsFromStorage.pending');
|
|
15431
15556
|
}).addCase(loadCohortsFromStorage.fulfilled, (state, action)=>{
|
|
15432
15557
|
state.loading = false;
|
|
15558
|
+
console.log('loadCohortsFromStorage.fulfilled', action.payload);
|
|
15433
15559
|
if (action.payload.length > 0) {
|
|
15434
|
-
if (Object.keys(state.entities).length
|
|
15435
|
-
cohortsAdapter.
|
|
15560
|
+
if (Object.keys(state.entities).length >= 0) {
|
|
15561
|
+
cohortsAdapter.removeAll(state);
|
|
15436
15562
|
}
|
|
15437
15563
|
cohortsAdapter.addMany(state, action.payload);
|
|
15438
15564
|
const sortedCohorts = action.payload.sort((a, b)=>b.modifiedDatetime.localeCompare(a.modifiedDatetime));
|
|
15439
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;
|
|
15440
15571
|
}
|
|
15441
15572
|
}).addCase(loadCohortsFromStorage.rejected, (state, action)=>{
|
|
15442
15573
|
state.loading = false;
|
|
@@ -15493,6 +15624,7 @@ const cohortManagerReducer = cohortManagerSlice.reducer;
|
|
|
15493
15624
|
const getCurrentCohort = (state)=>{
|
|
15494
15625
|
const cohort = state.entities[state.currentCohortId];
|
|
15495
15626
|
if (!cohort) {
|
|
15627
|
+
console.log('creating default cohort');
|
|
15496
15628
|
return createDefaultCohort();
|
|
15497
15629
|
}
|
|
15498
15630
|
return cohort;
|
|
@@ -15602,7 +15734,6 @@ const reducers = combineReducers({
|
|
|
15602
15734
|
filtersExpandedState: filtersExpandedReducer,
|
|
15603
15735
|
facetDefinitionState: facetDefinitionsReducer,
|
|
15604
15736
|
cohorts: cohortManagerReducer,
|
|
15605
|
-
// savedCohorts: saveCohortPersistenceReducer,
|
|
15606
15737
|
dataAccessRequests: dataAccessRequestsReducer
|
|
15607
15738
|
});
|
|
15608
15739
|
const persistedReducers = persistReducer(persistConfig, reducers);
|
|
@@ -15613,6 +15744,10 @@ const { id, AppStore, AppContext, useAppSelector, useAppDispatch } = createAppSt
|
|
|
15613
15744
|
version: '0.0.1'
|
|
15614
15745
|
});
|
|
15615
15746
|
|
|
15747
|
+
process.env.GEN3_COHORT_DISCOVERY_API || `${GEN3_API}/api/auth/analysis/cohortDiscovery`;
|
|
15748
|
+
const UninitializeCohort = {
|
|
15749
|
+
filters: {}};
|
|
15750
|
+
|
|
15616
15751
|
// Selectors
|
|
15617
15752
|
const { selectAll: selectAllCohorts, selectTotal: selectTotalCohorts, selectById: selectCohortById, selectIds: selectCohortIds } = cohortsAdapter.getSelectors((state)=>state.cohorts);
|
|
15618
15753
|
const selectCurrentCohortId = (state)=>state.cohorts.currentCohortId;
|
|
@@ -15620,7 +15755,7 @@ const selectCurrentCohort = (state)=>{
|
|
|
15620
15755
|
const { currentCohortId, entities } = state.cohorts;
|
|
15621
15756
|
const cohort = entities[currentCohortId];
|
|
15622
15757
|
if (!cohort) {
|
|
15623
|
-
return
|
|
15758
|
+
return null;
|
|
15624
15759
|
}
|
|
15625
15760
|
return cohort;
|
|
15626
15761
|
};
|
|
@@ -15642,15 +15777,15 @@ createSelector([
|
|
|
15642
15777
|
], (autoSaveArray, cohortId)=>autoSaveArray.includes(cohortId));
|
|
15643
15778
|
const selectCurrentCohortName = createSelector([
|
|
15644
15779
|
selectCurrentCohort
|
|
15645
|
-
], (cohort)=>cohort
|
|
15780
|
+
], (cohort)=>cohort?.name ?? 'No Cohort Defined');
|
|
15646
15781
|
const selectCurrentCohortFilters = createSelector([
|
|
15647
15782
|
selectCurrentCohort
|
|
15648
|
-
], (cohort)=>cohort.filters);
|
|
15783
|
+
], (cohort)=>cohort ? cohort.filters : UninitializeCohort.filters);
|
|
15649
15784
|
const selectCurrentCohortIndexFilters = createSelector([
|
|
15650
15785
|
selectCurrentCohort,
|
|
15651
15786
|
(state, index)=>index
|
|
15652
15787
|
], (cohort, index)=>{
|
|
15653
|
-
return cohort
|
|
15788
|
+
return cohort?.filters?.[index] ?? EmptyFilterSet;
|
|
15654
15789
|
});
|
|
15655
15790
|
createSelector([
|
|
15656
15791
|
selectAllCohorts,
|
|
@@ -15662,7 +15797,6 @@ createSelector([
|
|
|
15662
15797
|
const trimmedName = params.name.trim().toLowerCase();
|
|
15663
15798
|
return cohorts.some((cohort)=>cohort.id !== params.excludeId && cohort.name.trim().toLowerCase() === trimmedName);
|
|
15664
15799
|
});
|
|
15665
|
-
const selectCohortManagerLoading = (state)=>state.cohorts.loading;
|
|
15666
15800
|
const selectCohortIdToNameMap = createSelector([
|
|
15667
15801
|
selectAllCohorts
|
|
15668
15802
|
], (cohorts)=>{
|
|
@@ -16129,14 +16263,12 @@ const submitCohortRequestAction = async (cohort, values, user, indexResources, r
|
|
|
16129
16263
|
}
|
|
16130
16264
|
};
|
|
16131
16265
|
|
|
16132
|
-
const
|
|
16133
|
-
const
|
|
16266
|
+
const CohortManagerPanel = ({ indexResources, remoteSupportService, size = 'md' })=>{
|
|
16267
|
+
const appDispatch = useAppDispatch();
|
|
16134
16268
|
const [isEditing, setIsEditing] = useState(false);
|
|
16135
16269
|
const [editingLabel, setEditingLabel] = useState('');
|
|
16136
16270
|
const allCohorts = useAppSelector(selectAllCohorts);
|
|
16137
16271
|
const currentCohort = useAppSelector(selectCurrentCohort);
|
|
16138
|
-
const loading = useAppSelector(selectCohortManagerLoading);
|
|
16139
|
-
const appDispatch = useAppDispatch();
|
|
16140
16272
|
const [getGetAggs] = useLazyGetAggsNoFilterSelfQuery();
|
|
16141
16273
|
const [requestQuery] = useCreateRequestMutation();
|
|
16142
16274
|
const user = useCoreSelector(selectUserDetails);
|
|
@@ -16153,7 +16285,7 @@ const CohortManager = ({ indexResources, remoteSupportService, size = 'md' })=>{
|
|
|
16153
16285
|
};
|
|
16154
16286
|
const saveEdit = ()=>{
|
|
16155
16287
|
if (editingLabel.trim() === '' || !currentCohort.name) return;
|
|
16156
|
-
|
|
16288
|
+
appDispatch(updateCohortName({
|
|
16157
16289
|
id: currentCohort.id,
|
|
16158
16290
|
name: editingLabel
|
|
16159
16291
|
}));
|
|
@@ -16161,7 +16293,7 @@ const CohortManager = ({ indexResources, remoteSupportService, size = 'md' })=>{
|
|
|
16161
16293
|
setEditingLabel('');
|
|
16162
16294
|
};
|
|
16163
16295
|
const handleCreateNew = ()=>{
|
|
16164
|
-
|
|
16296
|
+
appDispatch(createNewCohort({
|
|
16165
16297
|
name: 'New Cohort'
|
|
16166
16298
|
}));
|
|
16167
16299
|
};
|
|
@@ -16173,22 +16305,26 @@ const CohortManager = ({ indexResources, remoteSupportService, size = 'md' })=>{
|
|
|
16173
16305
|
}, [
|
|
16174
16306
|
allCohorts
|
|
16175
16307
|
]);
|
|
16308
|
+
useDeepCompareEffect(()=>{
|
|
16309
|
+
if (!currentCohort) {
|
|
16310
|
+
setCurrentCohortId(allCohorts[0].id);
|
|
16311
|
+
}
|
|
16312
|
+
}, [
|
|
16313
|
+
allCohorts,
|
|
16314
|
+
currentCohort,
|
|
16315
|
+
setCurrentCohortId
|
|
16316
|
+
]);
|
|
16176
16317
|
const onSelectCohort = useCallback((_value, option)=>{
|
|
16177
16318
|
if (option) {
|
|
16178
|
-
|
|
16319
|
+
appDispatch(setCurrentCohortId(option.value));
|
|
16179
16320
|
}
|
|
16180
16321
|
}, [
|
|
16181
|
-
|
|
16322
|
+
appDispatch
|
|
16182
16323
|
]);
|
|
16183
16324
|
const handleCohortAccessRequest = async (cohortId, values)=>{
|
|
16184
16325
|
const cohort = allCohorts.find((obj)=>obj.id === cohortId);
|
|
16185
16326
|
if (cohort) await submitCohortRequestAction(cohort, values, user, indexResources, remoteSupportService, appDispatch, getGetAggs, requestQuery);
|
|
16186
16327
|
};
|
|
16187
|
-
if (loading) {
|
|
16188
|
-
return /*#__PURE__*/ jsx("div", {
|
|
16189
|
-
children: "Loading cohorts..."
|
|
16190
|
-
});
|
|
16191
|
-
}
|
|
16192
16328
|
return /*#__PURE__*/ jsxs(Group, {
|
|
16193
16329
|
gap: "xs",
|
|
16194
16330
|
className: "flex pt-4 pl-2",
|
|
@@ -16246,7 +16382,7 @@ const CohortManager = ({ indexResources, remoteSupportService, size = 'md' })=>{
|
|
|
16246
16382
|
onClick: saveEdit,
|
|
16247
16383
|
"data-testid": "completeCohortRenameButton",
|
|
16248
16384
|
"aria-label": "Complete rename cohort",
|
|
16249
|
-
disabled: editingLabel.trim() === '' || editingLabel.trim() === currentCohort
|
|
16385
|
+
disabled: editingLabel.trim() === '' || editingLabel.trim() === currentCohort?.name,
|
|
16250
16386
|
size: `compact-${size}`,
|
|
16251
16387
|
children: /*#__PURE__*/ jsx(Icon, {
|
|
16252
16388
|
icon: "gen3:check",
|
|
@@ -16321,7 +16457,7 @@ const CohortManager = ({ indexResources, remoteSupportService, size = 'md' })=>{
|
|
|
16321
16457
|
color: theme.colors.accent[4]
|
|
16322
16458
|
},
|
|
16323
16459
|
onConfirm: ()=>{
|
|
16324
|
-
|
|
16460
|
+
appDispatch(removeCohort(currentCohort.id));
|
|
16325
16461
|
}
|
|
16326
16462
|
});
|
|
16327
16463
|
},
|
|
@@ -16363,8 +16499,15 @@ const CohortManager = ({ indexResources, remoteSupportService, size = 'md' })=>{
|
|
|
16363
16499
|
]
|
|
16364
16500
|
});
|
|
16365
16501
|
};
|
|
16366
|
-
|
|
16367
|
-
|
|
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
|
+
};
|
|
16368
16511
|
|
|
16369
16512
|
const useGraphQLData = (url, body, skip)=>{
|
|
16370
16513
|
// Create a fetcher function that handles the GraphQL POST request
|
|
@@ -16833,22 +16976,6 @@ const SavedCohortsTable = ({ indexResources, remoteSupportService, size = 'md' }
|
|
|
16833
16976
|
})
|
|
16834
16977
|
})
|
|
16835
16978
|
}),
|
|
16836
|
-
/*#__PURE__*/ jsx(Tooltip, {
|
|
16837
|
-
label: "Select Cohort",
|
|
16838
|
-
withArrow: true,
|
|
16839
|
-
children: /*#__PURE__*/ jsx(ActionIcon, {
|
|
16840
|
-
color: "accent.4",
|
|
16841
|
-
variant: "transparent",
|
|
16842
|
-
"aria-label": "Select cohort",
|
|
16843
|
-
onClick: ()=>{},
|
|
16844
|
-
children: /*#__PURE__*/ jsx(Icon, {
|
|
16845
|
-
icon: "gen3:cohort",
|
|
16846
|
-
height: iconSize,
|
|
16847
|
-
width: iconSize,
|
|
16848
|
-
color: theme.colors.secondary[4]
|
|
16849
|
-
})
|
|
16850
|
-
})
|
|
16851
|
-
}),
|
|
16852
16979
|
/*#__PURE__*/ jsx(Tooltip, {
|
|
16853
16980
|
label: "Delete Cohort",
|
|
16854
16981
|
withArrow: true,
|
|
@@ -19376,6 +19503,7 @@ const MetadataDictionary = ({ schemas })=>{
|
|
|
19376
19503
|
}
|
|
19377
19504
|
return /*#__PURE__*/ jsxs(Tabs, {
|
|
19378
19505
|
defaultValue: schemas[0].schemaID,
|
|
19506
|
+
variant: schemas[0]?.tabType,
|
|
19379
19507
|
className: "w-full",
|
|
19380
19508
|
keepMounted: false,
|
|
19381
19509
|
children: [
|
|
@@ -19715,6 +19843,7 @@ const Discovery = ({ discoveryConfig })=>{
|
|
|
19715
19843
|
children: /*#__PURE__*/ jsxs(Tabs, {
|
|
19716
19844
|
className: "w-full",
|
|
19717
19845
|
defaultValue: metadataIndex,
|
|
19846
|
+
variant: discoveryConfig.metadataConfig[0]?.tabType,
|
|
19718
19847
|
onChange: (v)=>{
|
|
19719
19848
|
setMetadataIndex(v ?? '0');
|
|
19720
19849
|
},
|
|
@@ -20016,6 +20145,9 @@ const LandingPageGetServerSideProps = async ()=>{
|
|
|
20016
20145
|
};
|
|
20017
20146
|
};
|
|
20018
20147
|
|
|
20148
|
+
const CohortBuilder = dynamic(()=>Promise.resolve().then(function () { return CohortBuilder$2; }), {
|
|
20149
|
+
ssr: false
|
|
20150
|
+
});
|
|
20019
20151
|
const ExplorerPage = ({ headerProps, footerProps, explorerConfig, headerMetadata, tabsLayout, sharedFiltersMap })=>{
|
|
20020
20152
|
if (explorerConfig === undefined) {
|
|
20021
20153
|
return /*#__PURE__*/ jsx(Center, {
|
|
@@ -25913,6 +26045,13 @@ const staticNotebookAPI = async (req, res)=>{
|
|
|
25913
26045
|
});
|
|
25914
26046
|
}
|
|
25915
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
|
+
});
|
|
25916
26055
|
const sanitizedContent = DOMPurify.sanitize(rawContent, {
|
|
25917
26056
|
ALLOWED_TAGS: [
|
|
25918
26057
|
'p',
|
|
@@ -25961,5 +26100,5 @@ const staticNotebookAPI = async (req, res)=>{
|
|
|
25961
26100
|
});
|
|
25962
26101
|
};
|
|
25963
26102
|
|
|
25964
|
-
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 };
|
|
25965
26104
|
//# sourceMappingURL=index.js.map
|