@gen3/frontend 0.12.30 → 0.12.32

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.
Files changed (96) hide show
  1. package/LICENSE +201 -0
  2. package/dist/dts/components/Content/TextContent.js +3 -3
  3. package/dist/dts/components/Content/TextContent.js.map +1 -1
  4. package/dist/dts/components/Login/LoginPanel.js +2 -2
  5. package/dist/dts/components/Login/LoginPanel.js.map +1 -1
  6. package/dist/dts/components/Login/LoginProvidersPanel.d.ts +1 -1
  7. package/dist/dts/components/Login/LoginProvidersPanel.d.ts.map +1 -1
  8. package/dist/dts/components/Login/LoginProvidersPanel.js +15 -8
  9. package/dist/dts/components/Login/LoginProvidersPanel.js.map +1 -1
  10. package/dist/dts/components/Login/types.d.ts +4 -0
  11. package/dist/dts/components/Login/types.d.ts.map +1 -1
  12. package/dist/dts/components/Login/types.js.map +1 -1
  13. package/dist/dts/components/Providers/Gen3Provider.d.ts +1 -1
  14. package/dist/dts/features/CohortBuilder/ExplorerTable/ArrayCellRenderer.d.ts +1 -1
  15. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.d.ts +2 -1
  16. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.d.ts.map +1 -1
  17. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.js +2 -1
  18. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpression.js.map +1 -1
  19. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.d.ts +1 -0
  20. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.d.ts.map +1 -1
  21. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.js +1 -0
  22. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionContext.js.map +1 -1
  23. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.d.ts +1 -0
  24. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.d.ts.map +1 -1
  25. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.js +1 -1
  26. package/dist/dts/features/CohortBuilder/QueryExpression/QueryExpressionSection.js.map +1 -1
  27. package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.d.ts.map +1 -1
  28. package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.js +12 -6
  29. package/dist/dts/features/CohortBuilder/QueryExpression/QueryRepresentation.js.map +1 -1
  30. package/dist/dts/features/CohortDiscovery/CohortQueryExpression.d.ts +2 -1
  31. package/dist/dts/features/CohortDiscovery/CohortQueryExpression.d.ts.map +1 -1
  32. package/dist/dts/features/CohortDiscovery/CohortQueryExpression.js +2 -1
  33. package/dist/dts/features/CohortDiscovery/CohortQueryExpression.js.map +1 -1
  34. package/dist/dts/features/Discovery/Discovery.d.ts.map +1 -1
  35. package/dist/dts/features/Discovery/Discovery.js +7 -6
  36. package/dist/dts/features/Discovery/Discovery.js.map +1 -1
  37. package/dist/dts/features/Discovery/DiscoveryDropdownTagViewer.d.ts +1 -8
  38. package/dist/dts/features/Discovery/DiscoveryDropdownTagViewer.d.ts.map +1 -1
  39. package/dist/dts/features/Discovery/DiscoveryDropdownTagViewer.js +23 -27
  40. package/dist/dts/features/Discovery/DiscoveryDropdownTagViewer.js.map +1 -1
  41. package/dist/dts/features/Discovery/DiscoveryIndexPanel.d.ts +1 -3
  42. package/dist/dts/features/Discovery/DiscoveryIndexPanel.d.ts.map +1 -1
  43. package/dist/dts/features/Discovery/DiscoveryIndexPanel.js +22 -23
  44. package/dist/dts/features/Discovery/DiscoveryIndexPanel.js.map +1 -1
  45. package/dist/dts/features/Discovery/DiscoveryProvider.d.ts +6 -0
  46. package/dist/dts/features/Discovery/DiscoveryProvider.d.ts.map +1 -1
  47. package/dist/dts/features/Discovery/DiscoveryProvider.js +7 -2
  48. package/dist/dts/features/Discovery/DiscoveryProvider.js.map +1 -1
  49. package/dist/dts/features/Discovery/DiscoveryTable/DiscoveryTable.js +1 -1
  50. package/dist/dts/features/Discovery/DiscoveryTable/DiscoveryTable.js.map +1 -1
  51. package/dist/dts/features/Discovery/DiscoveryTable/TableRenderers/RowDetailPanel.d.ts +1 -3
  52. package/dist/dts/features/Discovery/DiscoveryTable/TableRenderers/RowDetailPanel.d.ts.map +1 -1
  53. package/dist/dts/features/Discovery/DiscoveryTable/TableRenderers/RowDetailPanel.js +6 -3
  54. package/dist/dts/features/Discovery/DiscoveryTable/TableRenderers/RowDetailPanel.js.map +1 -1
  55. package/dist/dts/features/Discovery/DiscoveryTable/TableRenderers/RowDetailPanelTags.d.ts +7 -0
  56. package/dist/dts/features/Discovery/DiscoveryTable/TableRenderers/RowDetailPanelTags.d.ts.map +1 -0
  57. package/dist/dts/features/Discovery/DiscoveryTable/TableRenderers/RowDetailPanelTags.js +39 -0
  58. package/dist/dts/features/Discovery/DiscoveryTable/TableRenderers/RowDetailPanelTags.js.map +1 -0
  59. package/dist/dts/pages/TabbedCohortBuilder/TabbedCohortBuilderPage.d.ts.map +1 -1
  60. package/dist/dts/pages/TabbedCohortBuilder/TabbedCohortBuilderPage.js +1 -1
  61. package/dist/dts/pages/TabbedCohortBuilder/TabbedCohortBuilderPage.js.map +1 -1
  62. package/dist/index/cjs/{QueryPanel-BwtKHbn1.js → QueryPanel-sz-FVioZ.js} +2 -2
  63. package/dist/index/cjs/{QueryPanel-BwtKHbn1.js.map → QueryPanel-sz-FVioZ.js.map} +1 -1
  64. package/dist/index/cjs/{index-BB8seQLc.js → index-Bjn2PM9I.js} +531 -453
  65. package/dist/index/cjs/index-Bjn2PM9I.js.map +1 -0
  66. package/dist/index/cjs/index.js +1 -1
  67. package/dist/index/esm/{QueryPanel-DSqDH3j3.js → QueryPanel-7-YhRPuT.js} +2 -2
  68. package/dist/index/esm/{QueryPanel-DSqDH3j3.js.map → QueryPanel-7-YhRPuT.js.map} +1 -1
  69. package/dist/index/esm/{index-Df-CHhZ4.js → index-DxDRynQA.js} +532 -454
  70. package/dist/index/esm/index-DxDRynQA.js.map +1 -0
  71. package/dist/index/esm/index.js +1 -1
  72. package/dist/index.d.ts +64 -52
  73. package/dist/pages/cjs/{CohortBuilder-BfjTZk0Y.js → CohortBuilder-B-eEUQhE.js} +2 -2
  74. package/dist/pages/cjs/{CohortBuilder-BfjTZk0Y.js.map → CohortBuilder-B-eEUQhE.js.map} +1 -1
  75. package/dist/pages/cjs/{index-DOVSswNr.js → index-4CPJ2OlY.js} +323 -246
  76. package/dist/pages/cjs/index-4CPJ2OlY.js.map +1 -0
  77. package/dist/pages/cjs/index.js +1 -1
  78. package/dist/pages/esm/{CohortBuilder-BFRGbSQX.js → CohortBuilder-DAIbe43z.js} +2 -2
  79. package/dist/pages/esm/{CohortBuilder-BFRGbSQX.js.map → CohortBuilder-DAIbe43z.js.map} +1 -1
  80. package/dist/pages/esm/{index-DkUVZQPS.js → index-Dy9pEhcC.js} +323 -246
  81. package/dist/pages/esm/index-Dy9pEhcC.js.map +1 -0
  82. package/dist/pages/esm/index.js +1 -1
  83. package/dist/pages.d.ts +3 -0
  84. package/package.json +3 -3
  85. package/dist/index/cjs/QueryPanel-D8OUkUib.js +0 -24
  86. package/dist/index/cjs/QueryPanel-D8OUkUib.js.map +0 -1
  87. package/dist/index/cjs/index-BB8seQLc.js.map +0 -1
  88. package/dist/index/cjs/index-DLHpMKGF.js +0 -36786
  89. package/dist/index/cjs/index-DLHpMKGF.js.map +0 -1
  90. package/dist/index/esm/QueryPanel-oIjwIvAE.js +0 -22
  91. package/dist/index/esm/QueryPanel-oIjwIvAE.js.map +0 -1
  92. package/dist/index/esm/index-BBNceIuo.js +0 -36539
  93. package/dist/index/esm/index-BBNceIuo.js.map +0 -1
  94. package/dist/index/esm/index-Df-CHhZ4.js.map +0 -1
  95. package/dist/pages/cjs/index-DOVSswNr.js.map +0 -1
  96. package/dist/pages/esm/index-DkUVZQPS.js.map +0 -1
@@ -6296,6 +6296,7 @@ const OverflowTooltippedLabel = ({ children, label, className = 'flex-grow font-
6296
6296
 
6297
6297
  const QueryExpressionContext = /*#__PURE__*/ React.createContext({
6298
6298
  displayOnly: false,
6299
+ fieldsAreFlat: true,
6299
6300
  cohortId: null,
6300
6301
  cohortName: 'default',
6301
6302
  shouldShowSummary: ()=>false,
@@ -6418,7 +6419,7 @@ const isNestedFilter = (x)=>{
6418
6419
  };
6419
6420
  const IncludeExcludeQueryElement = ({ index, field, path, operator, operands, displayOnly = false })=>{
6420
6421
  const [queryExpressionsExpanded, setQueryExpressionsExpanded] = React.useContext(QueryExpressionsExpandedContext);
6421
- const { cohortId: currentCohortId, useRemoveFilter, useUpdateFilters, shouldShowSummary } = React.useContext(QueryExpressionContext);
6422
+ const { cohortId: currentCohortId, useRemoveFilter, useUpdateFilters, shouldShowSummary, fieldsAreFlat } = React.useContext(QueryExpressionContext);
6422
6423
  const removeCohortFilter = useRemoveFilter();
6423
6424
  const updateCohortFilter = useUpdateFilters();
6424
6425
  useDeepCompare.useDeepCompareEffect(()=>{
@@ -6529,7 +6530,11 @@ const IncludeExcludeQueryElement = ({ index, field, path, operator, operands, di
6529
6530
  });
6530
6531
  removeCohortFilter(index, fieldToUpdate);
6531
6532
  } else {
6532
- updateCohortFilter(index, fieldToUpdate, core$1.buildNestedFilterForOperation(fieldToUpdate, {
6533
+ updateCohortFilter(index, fieldToUpdate, fieldsAreFlat ? {
6534
+ operator: operator,
6535
+ field: field,
6536
+ operands: newOperands
6537
+ } : core$1.buildNestedFilterForOperation(fieldToUpdate, {
6533
6538
  operator: operator,
6534
6539
  field: field,
6535
6540
  operands: newOperands
@@ -7102,7 +7107,7 @@ const reducer = (state, action)=>{
7102
7107
  }
7103
7108
  }
7104
7109
  };
7105
- const QueryExpressionSection = ({ index, showImportExport = false, displayOnly = false, showTitle = true })=>{
7110
+ const QueryExpressionSection = ({ index, showImportExport = false, displayOnly = false, showTitle = true, fieldsAreFlat = true })=>{
7106
7111
  const [expandedState, setExpandedState] = React.useReducer(reducer, {});
7107
7112
  const [filtersSectionCollapsed, setFiltersSectionCollapsed] = React.useState(true);
7108
7113
  const filtersRef = React.useRef(null);
@@ -7875,19 +7880,24 @@ class DiscoveryCellRendererFactory {
7875
7880
  };
7876
7881
 
7877
7882
  const DiscoveryContext = /*#__PURE__*/ React.createContext({
7878
- discoveryConfig: {}
7883
+ discoveryConfig: {},
7884
+ selectedTags: {},
7885
+ setSelectedTags: ()=>{}
7879
7886
  });
7880
7887
  const useDiscoveryContext = ()=>{
7881
7888
  const context = React.useContext(DiscoveryContext);
7882
7889
  if (context === undefined) {
7883
- throw Error('Discovery must be used must be used inside of a DiscoveryContext');
7890
+ throw new Error('Discovery must be used inside of a DiscoveryContext');
7884
7891
  }
7885
7892
  return context;
7886
7893
  };
7887
7894
  const DiscoveryProvider = ({ children, discoveryIndexConfig })=>{
7895
+ const [selectedTags, setSelectedTags] = React.useState({});
7888
7896
  return /*#__PURE__*/ jsxRuntime.jsx(DiscoveryContext.Provider, {
7889
7897
  value: {
7890
- discoveryConfig: discoveryIndexConfig
7898
+ discoveryConfig: discoveryIndexConfig,
7899
+ selectedTags,
7900
+ setSelectedTags
7891
7901
  },
7892
7902
  children: children
7893
7903
  });
@@ -8734,17 +8744,71 @@ const HighlightSearchTerm = (value, searchTerm)=>{
8734
8744
  });
8735
8745
  };
8736
8746
 
8737
- const RowDetailPanel = ({ row, config, searchTerm })=>{
8747
+ const RowDetailPanelTags = ({ rowTags })=>{
8748
+ const { discoveryConfig: config, selectedTags, setSelectedTags } = useDiscoveryContext();
8749
+ return /*#__PURE__*/ jsxRuntime.jsx("div", {
8750
+ className: "flex mt-2",
8751
+ children: rowTags.map((tag)=>{
8752
+ const { color, display, label } = getTagInfo(tag, config.tags);
8753
+ if (!display) return null;
8754
+ const active = Object.keys(selectedTags).includes(tag.name);
8755
+ const handleChange = (e)=>{
8756
+ e.stopPropagation();
8757
+ if (active) {
8758
+ // If already active, remove the tag
8759
+ setSelectedTags((prevTags)=>{
8760
+ const { [tag.name]: _, ...newTags } = prevTags;
8761
+ return newTags;
8762
+ });
8763
+ } else {
8764
+ // Otherwise add the tag
8765
+ setSelectedTags((prevObj)=>({
8766
+ ...prevObj,
8767
+ [tag.name]: true
8768
+ }));
8769
+ }
8770
+ };
8771
+ return /*#__PURE__*/ jsxRuntime.jsx(core.Badge, {
8772
+ className: "mr-2 mt-2 cursor-pointer",
8773
+ onClick: (e)=>{
8774
+ handleChange(e);
8775
+ },
8776
+ role: "button",
8777
+ size: "lg",
8778
+ radius: "sm",
8779
+ variant: "filled",
8780
+ tabIndex: 0,
8781
+ "aria-label": tag.name,
8782
+ style: {
8783
+ backgroundColor: active ? color : 'transparent',
8784
+ borderColor: color,
8785
+ color: active ? '#fff' : 'inherit'
8786
+ },
8787
+ children: label
8788
+ }, tag.name);
8789
+ })
8790
+ });
8791
+ };
8792
+
8793
+ const RowDetailPanel = ({ row, searchTerm })=>{
8794
+ const { discoveryConfig: config } = useDiscoveryContext();
8738
8795
  if (config.studyPreviewField) {
8739
8796
  const studyPreviewData = _.get(row.original, config.studyPreviewField.field);
8740
- return /*#__PURE__*/ jsxRuntime.jsx(core.Box, {
8741
- display: 'flex',
8742
- w: '100%',
8743
- children: /*#__PURE__*/ jsxRuntime.jsx(core.Text, {
8744
- size: "xs",
8745
- lineClamp: 2,
8746
- children: HighlightSearchTerm(studyPreviewData, searchTerm)
8747
- })
8797
+ return /*#__PURE__*/ jsxRuntime.jsxs(jsxRuntime.Fragment, {
8798
+ children: [
8799
+ /*#__PURE__*/ jsxRuntime.jsx(core.Box, {
8800
+ display: 'flex',
8801
+ w: '100%',
8802
+ children: /*#__PURE__*/ jsxRuntime.jsx(core.Text, {
8803
+ size: "xs",
8804
+ lineClamp: 2,
8805
+ children: HighlightSearchTerm(studyPreviewData, searchTerm)
8806
+ })
8807
+ }),
8808
+ /*#__PURE__*/ jsxRuntime.jsx(RowDetailPanelTags, {
8809
+ rowTags: row.original.tags
8810
+ })
8811
+ ]
8748
8812
  });
8749
8813
  } else {
8750
8814
  return undefined;
@@ -8841,7 +8905,6 @@ const DiscoveryTable = ({ data, hits, dataRequestStatus, setSorting, setPaginati
8841
8905
  getRowId: (originalRow)=>config?.minimalFieldMapping?.uid && config.minimalFieldMapping.uid in originalRow ? originalRow[config.minimalFieldMapping.uid] : originalRow?.id ?? undefined,
8842
8906
  renderDetailPanel: ({ row })=>/*#__PURE__*/ jsxRuntime.jsx(RowDetailPanel, {
8843
8907
  row: row,
8844
- config: config,
8845
8908
  searchTerm: searchTerm
8846
8909
  }),
8847
8910
  onRowSelectionChange: setRowSelection,
@@ -12107,47 +12170,44 @@ const renderMultiSelectOption = ({ option }, highlightColor, containerSelections
12107
12170
  })
12108
12171
  });
12109
12172
  };
12110
- const MultiSelectContainer = ({ category, selectedTags, setSelectedTags })=>{
12173
+ const MultiSelectContainer = ({ category })=>{
12174
+ const { discoveryConfig: discoveryConfig, selectedTags, setSelectedTags } = useDiscoveryContext();
12111
12175
  const containerData = category.tags.map((tag)=>({
12112
12176
  value: tag,
12113
12177
  label: tag
12114
12178
  }));
12115
12179
  const [containerSelections, setContainerSelections] = React.useState([]);
12180
+ const prevSelectionsRef = React.useRef([]);
12116
12181
  React.useEffect(()=>{
12117
12182
  const updatedSelections = Object.keys(selectedTags).filter((tag)=>selectedTags[tag]);
12118
12183
  const selectedItemsThatExistInContainer = updatedSelections.filter((item)=>category.tags.includes(item));
12119
12184
  setContainerSelections(selectedItemsThatExistInContainer);
12185
+ prevSelectionsRef.current = selectedItemsThatExistInContainer;
12120
12186
  }, [
12121
12187
  selectedTags
12122
12188
  ]);
12123
- const [previousContainerValues, setPreviousContainerValues] = React.useState([]);
12124
- const handleChange = (category, value)=>{
12125
- setPreviousContainerValues(value);
12126
- setSelectedTags((prevTags)=>{
12127
- // Create a copy of the previous tags
12128
- const updatedTags = {
12129
- ...prevTags
12189
+ const handleChange = (value)=>{
12190
+ const previousValues = prevSelectionsRef.current;
12191
+ const removedTags = previousValues.filter((tag)=>!value.includes(tag));
12192
+ const addedTags = value.filter((tag)=>!previousValues.includes(tag));
12193
+ setSelectedTags((prev)=>{
12194
+ const updated = {
12195
+ ...prev
12130
12196
  };
12131
- if (previousContainerValues.length > value.length) {
12132
- // Need to remove tags since the update removes tags
12133
- const valuesToBeRemoved = previousContainerValues.filter((curr)=>!value.includes(curr));
12134
- valuesToBeRemoved.forEach((valueToBeRemoved)=>delete updatedTags[valueToBeRemoved]);
12135
- } else {
12136
- // Need to add tags
12137
- _.forEach(value, (tag)=>{
12138
- if (!updatedTags[tag]) {
12139
- updatedTags[tag] = true;
12140
- }
12141
- });
12142
- }
12143
- return updatedTags; // Update state with the new tags
12197
+ removedTags.forEach((tag)=>delete updated[tag]);
12198
+ addedTags.forEach((tag)=>{
12199
+ updated[tag] = true;
12200
+ });
12201
+ return updated;
12144
12202
  });
12203
+ setContainerSelections(value);
12204
+ prevSelectionsRef.current = value;
12145
12205
  };
12146
12206
  return /*#__PURE__*/ jsxRuntime.jsx("div", {
12147
12207
  children: /*#__PURE__*/ jsxRuntime.jsx(core.MultiSelect, {
12148
12208
  placeholder: category.categoryDisplayName,
12149
12209
  value: containerSelections,
12150
- onChange: (value)=>handleChange(category.categoryDisplayName, value),
12210
+ onChange: (value)=>handleChange(value),
12151
12211
  clearable: true,
12152
12212
  searchable: true,
12153
12213
  data: containerData,
@@ -12161,20 +12221,16 @@ const MultiSelectContainer = ({ category, selectedTags, setSelectedTags })=>{
12161
12221
  })
12162
12222
  }, category.categoryDisplayName?.toString());
12163
12223
  };
12164
- const DiscoveryDropdownTagViewer = ({ tagCategoryData, selectedTags, setSelectedTags })=>{
12224
+ const DiscoveryDropdownTagViewer = ({ tagCategoryData })=>{
12165
12225
  if (!tagCategoryData || tagCategoryData?.length === 0) return null;
12166
12226
  return /*#__PURE__*/ jsxRuntime.jsx("div", {
12167
- children: /*#__PURE__*/ jsxRuntime.jsx("div", {
12168
- className: `grid sm:grid-cols-1
12227
+ className: `grid sm:grid-cols-1
12169
12228
  ${tagCategoryData.length > 1 && ' md:grid-cols-2 gap-4'}`,
12170
- children: tagCategoryData.map((category, i)=>/*#__PURE__*/ jsxRuntime.jsx("div", {
12171
- children: /*#__PURE__*/ jsxRuntime.jsx(MultiSelectContainer, {
12172
- category: category,
12173
- selectedTags: selectedTags,
12174
- setSelectedTags: setSelectedTags
12175
- })
12176
- }, i))
12177
- })
12229
+ children: tagCategoryData.map((category, i)=>/*#__PURE__*/ jsxRuntime.jsx("div", {
12230
+ children: /*#__PURE__*/ jsxRuntime.jsx(MultiSelectContainer, {
12231
+ category: category
12232
+ })
12233
+ }, i))
12178
12234
  });
12179
12235
  };
12180
12236
 
@@ -12190,7 +12246,8 @@ const DiscoveryDropdownTagViewer = ({ tagCategoryData, selectedTags, setSelected
12190
12246
  * @param {JSX.Element} props.indexSelector - React component for selecting an index in the discovery panel.
12191
12247
  *
12192
12248
  * @return {JSX.Element} A fully featured discovery interface including search functionality, a table, charts, filters, and more.
12193
- */ const DiscoveryIndexPanel = ({ discoveryConfig, indexSelector })=>{
12249
+ */ const DiscoveryIndexPanel = ({ indexSelector })=>{
12250
+ const { discoveryConfig: discoveryConfig, selectedTags, setSelectedTags } = useDiscoveryContext();
12194
12251
  const dataHook = React.useMemo(()=>getDiscoveryDataLoader(discoveryConfig?.features?.dataLoader?.dataFetchFunction) ?? useLoadAllMDSData, [
12195
12252
  discoveryConfig?.features?.dataLoader?.dataFetchFunction
12196
12253
  ]);
@@ -12203,7 +12260,6 @@ const DiscoveryDropdownTagViewer = ({ tagCategoryData, selectedTags, setSelected
12203
12260
  const [debouncedSearchBarTerms] = hooks.useDebouncedValue(searchBarTerms, DEBOUNCE_DELAY_TIME);
12204
12261
  const [selections, setSelections] = React.useState([]); // table selections
12205
12262
  const [sorting, setSorting] = React.useState([]);
12206
- const [selectedTags, setSelectedTags] = React.useState({});
12207
12263
  const [advancedSearchTerms, setAdvancedSearchTerms] = React.useState({
12208
12264
  operation: SearchCombination.and,
12209
12265
  filters: {}
@@ -12251,153 +12307,148 @@ const DiscoveryDropdownTagViewer = ({ tagCategoryData, selectedTags, setSelected
12251
12307
  const enableSearchableTags = discoveryConfig?.features?.search?.tagSearchDropdown?.enabled;
12252
12308
  return /*#__PURE__*/ jsxRuntime.jsx("div", {
12253
12309
  className: "flex flex-col items-center p-4 w-full bg-base-lightest",
12254
- children: /*#__PURE__*/ jsxRuntime.jsx(DiscoveryProvider, {
12255
- discoveryIndexConfig: discoveryConfig,
12256
- children: /*#__PURE__*/ jsxRuntime.jsx(StudyProvider, {
12257
- children: /*#__PURE__*/ jsxRuntime.jsxs("div", {
12258
- className: "w-full",
12259
- children: [
12260
- discoveryConfig.features?.pageTitle && discoveryConfig?.features?.pageTitle.enabled ? /*#__PURE__*/ jsxRuntime.jsx(core.Text, {
12261
- size: "xl",
12262
- children: discoveryConfig?.features?.pageTitle.text
12263
- }) : null,
12264
- discoveryConfig.features?.chartsSection?.enabled && /*#__PURE__*/ jsxRuntime.jsx(CollapsableCharts, {
12265
- config: discoveryConfig.features?.chartsSection,
12266
- data: chartData,
12267
- isSuccess: dataRequestStatus.isSuccess
12268
- }),
12269
- /*#__PURE__*/ jsxRuntime.jsxs("div", {
12270
- className: "flex items-center p-2 mb-4 bg-base-max rounded-lg",
12271
- children: [
12272
- indexSelector,
12273
- /*#__PURE__*/ jsxRuntime.jsx(SummaryStatisticPanel, {
12274
- summaries: summaryStatistics
12275
- }),
12276
- enableSearchBar && /*#__PURE__*/ jsxRuntime.jsxs("div", {
12277
- className: "w-3/4 flex flex-col",
12278
- children: [
12279
- /*#__PURE__*/ jsxRuntime.jsxs(core.Grid, {
12280
- children: [
12281
- /*#__PURE__*/ jsxRuntime.jsx(core.Grid.Col, {
12282
- span: {
12283
- md: enableSearchableTags ? 7 : 10,
12284
- sm: 12
12285
- },
12286
- children: /*#__PURE__*/ jsxRuntime.jsx(SearchInputWithSuggestions, {
12287
- searchBarTerms: searchBarTerms,
12288
- setSearchBarTerms: setSearchBarTerms,
12289
- suggestions: suggestions,
12290
- clearSearch: ()=>{
12291
- setSearchBarTerms([]);
12292
- },
12293
- searchChanged: (v)=>setSearchBarTerms(v.split(' ')),
12294
- placeholder: discoveryConfig?.features?.search?.searchBar?.placeholder ?? 'Search...',
12295
- label: discoveryConfig?.features?.search?.searchBar?.inputSubtitle
12296
- })
12297
- }),
12298
- enableSearchableTags && /*#__PURE__*/ jsxRuntime.jsxs(core.Grid.Col, {
12299
- span: {
12300
- sm: 12,
12301
- md: 5
12310
+ children: /*#__PURE__*/ jsxRuntime.jsx(StudyProvider, {
12311
+ children: /*#__PURE__*/ jsxRuntime.jsxs("div", {
12312
+ className: "w-full",
12313
+ children: [
12314
+ discoveryConfig.features?.pageTitle && discoveryConfig?.features?.pageTitle.enabled ? /*#__PURE__*/ jsxRuntime.jsx(core.Text, {
12315
+ size: "xl",
12316
+ children: discoveryConfig?.features?.pageTitle.text
12317
+ }) : null,
12318
+ discoveryConfig.features?.chartsSection?.enabled && /*#__PURE__*/ jsxRuntime.jsx(CollapsableCharts, {
12319
+ config: discoveryConfig.features?.chartsSection,
12320
+ data: chartData,
12321
+ isSuccess: dataRequestStatus.isSuccess
12322
+ }),
12323
+ /*#__PURE__*/ jsxRuntime.jsxs("div", {
12324
+ className: "flex items-center p-2 mb-4 bg-base-max rounded-lg",
12325
+ children: [
12326
+ indexSelector,
12327
+ /*#__PURE__*/ jsxRuntime.jsx(SummaryStatisticPanel, {
12328
+ summaries: summaryStatistics
12329
+ }),
12330
+ enableSearchBar && /*#__PURE__*/ jsxRuntime.jsxs("div", {
12331
+ className: "w-3/4 flex flex-col",
12332
+ children: [
12333
+ /*#__PURE__*/ jsxRuntime.jsxs(core.Grid, {
12334
+ children: [
12335
+ /*#__PURE__*/ jsxRuntime.jsx(core.Grid.Col, {
12336
+ span: {
12337
+ md: enableSearchableTags ? 7 : 10,
12338
+ sm: 12
12339
+ },
12340
+ children: /*#__PURE__*/ jsxRuntime.jsx(SearchInputWithSuggestions, {
12341
+ searchBarTerms: searchBarTerms,
12342
+ setSearchBarTerms: setSearchBarTerms,
12343
+ suggestions: suggestions,
12344
+ clearSearch: ()=>{
12345
+ setSearchBarTerms([]);
12302
12346
  },
12303
- className: "md:mt-5 sm:mt-1",
12304
- children: [
12305
- /*#__PURE__*/ jsxRuntime.jsx(core.Button, {
12306
- onClick: ()=>setSelectedTags({}),
12307
- variant: "outline",
12308
- leftSection: /*#__PURE__*/ jsxRuntime.jsx(io.IoIosRefresh, {}),
12309
- className: Object.keys(selectedTags).length === 0 ? 'border-gray-400 mr-1 mt-1' : 'mr-1 mt-1',
12310
- "data-disabled": Object.keys(selectedTags).length === 0,
12311
- children: "Reset"
12312
- }),
12313
- /*#__PURE__*/ jsxRuntime.jsx(core.Button, {
12314
- className: "mt-1",
12315
- onClick: ()=>setIsDropdownTagViewerOpen((prev)=>!prev),
12316
- disabled: data.length === 0,
12317
- variant: "outline",
12318
- leftSection: isDropdownTagViewerOpen ? /*#__PURE__*/ jsxRuntime.jsx(io.IoIosArrowUp, {}) : /*#__PURE__*/ jsxRuntime.jsx(io.IoIosArrowDown, {}),
12319
- children: `${discoveryConfig?.features?.search?.tagSearchDropdown?.collapsibleButtonText || 'Tag Panel'}`
12320
- })
12321
- ]
12347
+ searchChanged: (v)=>setSearchBarTerms(v.split(' ')),
12348
+ placeholder: discoveryConfig?.features?.search?.searchBar?.placeholder ?? 'Search...',
12349
+ label: discoveryConfig?.features?.search?.searchBar?.inputSubtitle
12322
12350
  })
12323
- ]
12324
- }),
12325
- /*#__PURE__*/ jsxRuntime.jsx(SearchInputSelectableFields, {
12326
- searchMode: searchMode,
12327
- setSearchMode: setSearchMode,
12328
- searchableTextFields: discoveryConfig?.features?.search?.searchBar?.searchableTextFields,
12329
- searchableAndSelectableTextFields: discoveryConfig?.features?.search?.searchBar?.searchableAndSelectableTextFields,
12330
- setSelectedFieldsForSearchIndexing: setSelectedFieldsForSearchIndexing
12331
- }),
12332
- /*#__PURE__*/ jsxRuntime.jsx("div", {
12333
- ref: tagViewerContentRef,
12334
- className: `transition-all duration-300 ease-in-out mt-2 ${isDropdownTagViewerOpen ? 'max-h-screen opacity-100' : 'max-h-0 opacity-0'} overflow-hidden`,
12335
- style: {
12336
- height: isDropdownTagViewerOpen && tagViewerContentRef.current ? `${tagViewerContentRef.current.scrollHeight}px` : '0px'
12337
- },
12338
- children: /*#__PURE__*/ jsxRuntime.jsx(DiscoveryDropdownTagViewer, {
12339
- tagCategoryData: tagCategoryData,
12340
- selectedTags: selectedTags,
12341
- setSelectedTags: setSelectedTags
12351
+ }),
12352
+ enableSearchableTags && /*#__PURE__*/ jsxRuntime.jsxs(core.Grid.Col, {
12353
+ span: {
12354
+ sm: 12,
12355
+ md: 5
12356
+ },
12357
+ className: "md:mt-5 sm:mt-1",
12358
+ children: [
12359
+ /*#__PURE__*/ jsxRuntime.jsx(core.Button, {
12360
+ onClick: ()=>setSelectedTags({}),
12361
+ variant: "outline",
12362
+ leftSection: /*#__PURE__*/ jsxRuntime.jsx(io.IoIosRefresh, {}),
12363
+ className: Object.keys(selectedTags).length === 0 ? 'border-gray-400 mr-1 mt-1' : 'mr-1 mt-1',
12364
+ "data-disabled": Object.keys(selectedTags).length === 0,
12365
+ children: "Reset"
12366
+ }),
12367
+ /*#__PURE__*/ jsxRuntime.jsx(core.Button, {
12368
+ className: "mt-1",
12369
+ onClick: ()=>setIsDropdownTagViewerOpen((prev)=>!prev),
12370
+ disabled: data.length === 0,
12371
+ variant: "outline",
12372
+ leftSection: isDropdownTagViewerOpen ? /*#__PURE__*/ jsxRuntime.jsx(io.IoIosArrowUp, {}) : /*#__PURE__*/ jsxRuntime.jsx(io.IoIosArrowDown, {}),
12373
+ children: `${discoveryConfig?.features?.search?.tagSearchDropdown?.collapsibleButtonText || 'Tag Panel'}`
12374
+ })
12375
+ ]
12342
12376
  })
12377
+ ]
12378
+ }),
12379
+ /*#__PURE__*/ jsxRuntime.jsx(SearchInputSelectableFields, {
12380
+ searchMode: searchMode,
12381
+ setSearchMode: setSearchMode,
12382
+ searchableTextFields: discoveryConfig?.features?.search?.searchBar?.searchableTextFields,
12383
+ searchableAndSelectableTextFields: discoveryConfig?.features?.search?.searchBar?.searchableAndSelectableTextFields,
12384
+ setSelectedFieldsForSearchIndexing: setSelectedFieldsForSearchIndexing
12385
+ }),
12386
+ /*#__PURE__*/ jsxRuntime.jsx("div", {
12387
+ ref: tagViewerContentRef,
12388
+ className: `transition-all duration-300 ease-in-out mt-2 ${isDropdownTagViewerOpen ? 'max-h-screen opacity-100' : 'max-h-0 opacity-0'} overflow-hidden`,
12389
+ style: {
12390
+ height: isDropdownTagViewerOpen && tagViewerContentRef.current ? `${tagViewerContentRef.current.scrollHeight}px` : '0px'
12391
+ },
12392
+ children: /*#__PURE__*/ jsxRuntime.jsx(DiscoveryDropdownTagViewer, {
12393
+ tagCategoryData: tagCategoryData
12343
12394
  })
12344
- ]
12345
- })
12346
- ]
12347
- }),
12348
- discoveryConfig?.features?.aiSearch && /*#__PURE__*/ jsxRuntime.jsx("div", {
12349
- className: "mb-4",
12350
- children: /*#__PURE__*/ jsxRuntime.jsx("div", {
12351
- className: "flex w-full bg-base-max p-4 rounded-lg",
12352
- children: /*#__PURE__*/ jsxRuntime.jsx(AiSearch, {})
12353
- })
12354
- }),
12355
- /*#__PURE__*/ jsxRuntime.jsxs("div", {
12356
- className: "flex flex-row",
12357
- children: [
12358
- discoveryConfig?.features?.advSearchFilters?.enabled ? /*#__PURE__*/ jsxRuntime.jsx(core.Button, {
12359
- onClick: toggleAdvancedSearch,
12360
- color: "accent",
12361
- children: "Filters"
12362
- }) : false,
12363
- discoveryConfig?.features?.exportFromDiscovery?.enabled ? /*#__PURE__*/ jsxRuntime.jsx(ActionBar, {
12364
- buttons: discoveryConfig.features.exportFromDiscovery.buttons,
12365
- exportDataFields: discoveryConfig.features.exportFromDiscovery.exportDataFields,
12366
- selectedResources: selectedRecords,
12367
- verifyExternalLogins: discoveryConfig.features.exportFromDiscovery.verifyExternalLogins,
12368
- dataLibraryStoreMode: discoveryConfig.features.exportFromDiscovery.dataLibraryStoreMode
12369
- }) : null
12370
- ]
12371
- }),
12372
- /*#__PURE__*/ jsxRuntime.jsxs("div", {
12373
- className: "flex justify-start",
12374
- children: [
12375
- discoveryConfig?.features?.advSearchFilters?.enabled ? /*#__PURE__*/ jsxRuntime.jsx(AdvancedSearchPanel, {
12376
- advSearchFilters: advancedSearchFilterValues,
12377
- opened: showAdvancedSearch,
12378
- setAdvancedSearchFilters: setAdvancedSearchTerms
12379
- }) : false,
12380
- /*#__PURE__*/ jsxRuntime.jsx("div", {
12381
- className: "flex w-full grow-0 bg-base-max border-1 border-base-lighter p-4 rounded-md",
12382
- ref: parentDivRef,
12383
- children: /*#__PURE__*/ jsxRuntime.jsx(DiscoveryTable, {
12384
- data: data,
12385
- hits: hits,
12386
- dataRequestStatus: dataRequestStatus,
12387
- setPagination: setPagination,
12388
- setSorting: setSorting,
12389
- setSelection: setSelections,
12390
- pagination: pagination,
12391
- sorting: sorting,
12392
- searchTerm: debouncedSearchBarTerms.join(' '),
12393
- selectedFieldsForSearchIndexing: selectedFieldsForSearchIndexing,
12394
- discoveryConfig: discoveryConfig
12395
12395
  })
12396
- })
12397
- ]
12396
+ ]
12397
+ })
12398
+ ]
12399
+ }),
12400
+ discoveryConfig?.features?.aiSearch && /*#__PURE__*/ jsxRuntime.jsx("div", {
12401
+ className: "mb-4",
12402
+ children: /*#__PURE__*/ jsxRuntime.jsx("div", {
12403
+ className: "flex w-full bg-base-max p-4 rounded-lg",
12404
+ children: /*#__PURE__*/ jsxRuntime.jsx(AiSearch, {})
12398
12405
  })
12399
- ]
12400
- })
12406
+ }),
12407
+ /*#__PURE__*/ jsxRuntime.jsxs("div", {
12408
+ className: "flex flex-row",
12409
+ children: [
12410
+ discoveryConfig?.features?.advSearchFilters?.enabled ? /*#__PURE__*/ jsxRuntime.jsx(core.Button, {
12411
+ onClick: toggleAdvancedSearch,
12412
+ color: "accent",
12413
+ children: "Filters"
12414
+ }) : false,
12415
+ discoveryConfig?.features?.exportFromDiscovery?.enabled ? /*#__PURE__*/ jsxRuntime.jsx(ActionBar, {
12416
+ buttons: discoveryConfig.features.exportFromDiscovery.buttons,
12417
+ exportDataFields: discoveryConfig.features.exportFromDiscovery.exportDataFields,
12418
+ selectedResources: selectedRecords,
12419
+ verifyExternalLogins: discoveryConfig.features.exportFromDiscovery.verifyExternalLogins,
12420
+ dataLibraryStoreMode: discoveryConfig.features.exportFromDiscovery.dataLibraryStoreMode
12421
+ }) : null
12422
+ ]
12423
+ }),
12424
+ /*#__PURE__*/ jsxRuntime.jsxs("div", {
12425
+ className: "flex justify-start",
12426
+ children: [
12427
+ discoveryConfig?.features?.advSearchFilters?.enabled ? /*#__PURE__*/ jsxRuntime.jsx(AdvancedSearchPanel, {
12428
+ advSearchFilters: advancedSearchFilterValues,
12429
+ opened: showAdvancedSearch,
12430
+ setAdvancedSearchFilters: setAdvancedSearchTerms
12431
+ }) : false,
12432
+ /*#__PURE__*/ jsxRuntime.jsx("div", {
12433
+ className: "flex w-full grow-0 bg-base-max border-1 border-base-lighter p-4 rounded-md",
12434
+ ref: parentDivRef,
12435
+ children: /*#__PURE__*/ jsxRuntime.jsx(DiscoveryTable, {
12436
+ data: data,
12437
+ hits: hits,
12438
+ dataRequestStatus: dataRequestStatus,
12439
+ setPagination: setPagination,
12440
+ setSorting: setSorting,
12441
+ setSelection: setSelections,
12442
+ pagination: pagination,
12443
+ sorting: sorting,
12444
+ searchTerm: debouncedSearchBarTerms.join(' '),
12445
+ selectedFieldsForSearchIndexing: selectedFieldsForSearchIndexing,
12446
+ discoveryConfig: discoveryConfig
12447
+ })
12448
+ })
12449
+ ]
12450
+ })
12451
+ ]
12401
12452
  })
12402
12453
  })
12403
12454
  });
@@ -12443,42 +12494,46 @@ const Discovery = ({ discoveryConfig })=>{
12443
12494
  }
12444
12495
  if (menuItems.length === 1) {
12445
12496
  // no need for tabs
12446
- return /*#__PURE__*/ jsxRuntime.jsx(DiscoveryIndexPanel, {
12447
- discoveryConfig: discoveryConfig.metadataConfig[0],
12448
- indexSelector: null
12497
+ return /*#__PURE__*/ jsxRuntime.jsx(DiscoveryProvider, {
12498
+ discoveryIndexConfig: discoveryConfig.metadataConfig[0],
12499
+ children: /*#__PURE__*/ jsxRuntime.jsx(DiscoveryIndexPanel, {
12500
+ indexSelector: null
12501
+ })
12449
12502
  });
12450
12503
  }
12451
- return /*#__PURE__*/ jsxRuntime.jsx("div", {
12452
- className: "flex flex-col items-center p-4 w-full bg-base-lightest",
12453
- children: /*#__PURE__*/ jsxRuntime.jsxs(core.Tabs, {
12454
- className: "w-full",
12455
- defaultValue: metadataIndex,
12456
- variant: discoveryConfig.metadataConfig[0]?.tabType,
12457
- onChange: (v)=>{
12458
- setMetadataIndex(v ?? '0');
12459
- },
12460
- children: [
12461
- /*#__PURE__*/ jsxRuntime.jsx(core.Tabs.List, {
12462
- children: menuItems.map((item)=>/*#__PURE__*/ jsxRuntime.jsx(core.Tabs.Tab, {
12504
+ return /*#__PURE__*/ jsxRuntime.jsx(DiscoveryProvider, {
12505
+ discoveryIndexConfig: discoveryConfig.metadataConfig[0],
12506
+ children: /*#__PURE__*/ jsxRuntime.jsx("div", {
12507
+ className: "flex flex-col items-center p-4 w-full bg-base-lightest",
12508
+ children: /*#__PURE__*/ jsxRuntime.jsxs(core.Tabs, {
12509
+ className: "w-full",
12510
+ defaultValue: metadataIndex,
12511
+ variant: discoveryConfig.metadataConfig[0]?.tabType,
12512
+ onChange: (v)=>{
12513
+ setMetadataIndex(v ?? '0');
12514
+ },
12515
+ children: [
12516
+ /*#__PURE__*/ jsxRuntime.jsx(core.Tabs.List, {
12517
+ children: menuItems.map((item)=>/*#__PURE__*/ jsxRuntime.jsx(core.Tabs.Tab, {
12518
+ value: item.value,
12519
+ children: item.label
12520
+ }, item.value))
12521
+ }),
12522
+ menuItems.map((item, i)=>/*#__PURE__*/ jsxRuntime.jsx(core.Tabs.Panel, {
12463
12523
  value: item.value,
12464
- children: item.label
12524
+ children: /*#__PURE__*/ jsxRuntime.jsx(DiscoveryIndexPanel, {
12525
+ indexSelector: menuItems.length < 0 ? /*#__PURE__*/ jsxRuntime.jsx(core.Select, {
12526
+ label: "Metadata:",
12527
+ data: menuItems,
12528
+ value: metadataIndex,
12529
+ onChange: (v)=>{
12530
+ setMetadataIndex(v ?? '0');
12531
+ }
12532
+ }) : null
12533
+ })
12465
12534
  }, item.value))
12466
- }),
12467
- menuItems.map((item, i)=>/*#__PURE__*/ jsxRuntime.jsx(core.Tabs.Panel, {
12468
- value: item.value,
12469
- children: /*#__PURE__*/ jsxRuntime.jsx(DiscoveryIndexPanel, {
12470
- discoveryConfig: discoveryConfig.metadataConfig[Number.parseInt(item.value)],
12471
- indexSelector: menuItems.length < 0 ? /*#__PURE__*/ jsxRuntime.jsx(core.Select, {
12472
- label: "Metadata:",
12473
- data: menuItems,
12474
- value: metadataIndex,
12475
- onChange: (v)=>{
12476
- setMetadataIndex(v ?? '0');
12477
- }
12478
- }) : null
12479
- })
12480
- }, item.value))
12481
- ]
12535
+ ]
12536
+ })
12482
12537
  })
12483
12538
  });
12484
12539
  };
@@ -17429,7 +17484,7 @@ const SUMMARY_THRESHOLD = 10;
17429
17484
  */ const DefaultShouldShowSummary = (field, count)=>{
17430
17485
  return count > SUMMARY_THRESHOLD;
17431
17486
  };
17432
- const QueryExpression = ({ index, shouldShowSummary = DefaultShouldShowSummary, hooks })=>{
17487
+ const QueryExpression = ({ index, shouldShowSummary = DefaultShouldShowSummary, hooks, fieldsAreFlat = true })=>{
17433
17488
  const currentCohortId = core$1.useCoreSelector((state)=>core$1.selectCurrentCohortId(state));
17434
17489
  const currentCohortName = core$1.useCoreSelector((state)=>core$1.selectCurrentCohortName(state));
17435
17490
  return /*#__PURE__*/ jsxRuntime.jsx(QueryExpressionContext.Provider, {
@@ -17437,6 +17492,7 @@ const QueryExpression = ({ index, shouldShowSummary = DefaultShouldShowSummary,
17437
17492
  cohortName: currentCohortName,
17438
17493
  cohortId: currentCohortId,
17439
17494
  displayOnly: false,
17495
+ fieldsAreFlat: fieldsAreFlat,
17440
17496
  shouldShowSummary: shouldShowSummary,
17441
17497
  useClearCohortFilters: ()=>{
17442
17498
  const dispatch = core$1.useCoreDispatch();
@@ -17639,7 +17695,7 @@ const getActiveTab = (router)=>{
17639
17695
  else if (typeof activeTab === 'object') return activeTab[0];
17640
17696
  return undefined;
17641
17697
  };
17642
- const CohortBuilder = dynamic(()=>Promise.resolve().then(function () { return require('./CohortBuilder-BfjTZk0Y.js'); }), {
17698
+ const CohortBuilder = dynamic(()=>Promise.resolve().then(function () { return require('./CohortBuilder-B-eEUQhE.js'); }), {
17643
17699
  ssr: false
17644
17700
  });
17645
17701
  const ExplorerPage = ({ headerProps, footerProps, explorerConfig, headerMetadata, tabsLayout, sharedFiltersMap })=>{
@@ -18026,7 +18082,8 @@ function hashCode(str) {
18026
18082
  case "markdown":
18027
18083
  {
18028
18084
  return /*#__PURE__*/ jsxRuntime.jsx(MarkdownContent, {
18029
- content: text
18085
+ content: text,
18086
+ className: className
18030
18087
  });
18031
18088
  }
18032
18089
  case "textWithEmail":
@@ -18302,11 +18359,19 @@ const TexturedSidePanel = ({ url })=>{
18302
18359
  });
18303
18360
  };
18304
18361
 
18305
- const LoginProviderMultipleItems = ({ provider, handleLoginSelected })=>{
18362
+ const logninExtraText = (extra)=>{
18363
+ return extra?.map((content, index)=>/*#__PURE__*/ React.createElement(TextContent, {
18364
+ ...content,
18365
+ key: index
18366
+ }));
18367
+ };
18368
+ const LoginProviderMultipleItems = ({ provider, handleLoginSelected, loginProviderExtra })=>{
18306
18369
  const [value, setValue] = React.useState(null);
18370
+ const extra = loginProviderExtra && loginProviderExtra[provider.name];
18307
18371
  return /*#__PURE__*/ jsxRuntime.jsxs("div", {
18308
18372
  className: "flex flex-col w-full font-medium hover:text-accent-light hover:font-bold",
18309
18373
  children: [
18374
+ extra && logninExtraText(extra),
18310
18375
  /*#__PURE__*/ jsxRuntime.jsx(core.Select, {
18311
18376
  data: provider.urls.map((item)=>({
18312
18377
  value: item.url,
@@ -18340,19 +18405,25 @@ const LoginProviderMultipleItems = ({ provider, handleLoginSelected })=>{
18340
18405
  ]
18341
18406
  }, `${provider.name}-login-item`);
18342
18407
  };
18343
- const LoginProviderSingleItem = ({ provider, handleLoginSelected })=>{
18344
- return /*#__PURE__*/ jsxRuntime.jsxs(core.Button, {
18345
- fullWidth: true,
18346
- color: "accent.3",
18347
- onClick: ()=>handleLoginSelected(provider.urls[0].url),
18408
+ const LoginProviderSingleItem = ({ provider, handleLoginSelected, loginProviderExtra })=>{
18409
+ const extra = loginProviderExtra && loginProviderExtra[provider.name];
18410
+ return /*#__PURE__*/ jsxRuntime.jsxs(React.Fragment, {
18348
18411
  children: [
18349
- ' ',
18350
- provider.name,
18351
- ' '
18412
+ extra && logninExtraText(extra),
18413
+ /*#__PURE__*/ jsxRuntime.jsxs(core.Button, {
18414
+ fullWidth: true,
18415
+ color: "accent.3",
18416
+ onClick: ()=>handleLoginSelected(provider.urls[0].url),
18417
+ children: [
18418
+ ' ',
18419
+ provider.name,
18420
+ ' '
18421
+ ]
18422
+ }, provider.name)
18352
18423
  ]
18353
- }, provider.name);
18424
+ });
18354
18425
  };
18355
- const LoginProvidersPanel = ({ handleLoginSelected })=>{
18426
+ const LoginProvidersPanel = ({ handleLoginSelected, loginProviderExtra })=>{
18356
18427
  const { data, isSuccess, isError, isLoading, isFetching } = core$1.useGetLoginProvidersQuery();
18357
18428
  if (isError) {
18358
18429
  return /*#__PURE__*/ jsxRuntime.jsx(core.Center, {
@@ -18381,17 +18452,21 @@ const LoginProvidersPanel = ({ handleLoginSelected })=>{
18381
18452
  children: [
18382
18453
  data && data.default_provider.urls.length > 1 ? /*#__PURE__*/ jsxRuntime.jsx(LoginProviderMultipleItems, {
18383
18454
  provider: data.default_provider,
18384
- handleLoginSelected: handleLoginSelected
18455
+ handleLoginSelected: handleLoginSelected,
18456
+ loginProviderExtra: loginProviderExtra
18385
18457
  }) : data && /*#__PURE__*/ jsxRuntime.jsx(LoginProviderSingleItem, {
18386
18458
  provider: data.default_provider,
18387
- handleLoginSelected: handleLoginSelected
18459
+ handleLoginSelected: handleLoginSelected,
18460
+ loginProviderExtra: loginProviderExtra
18388
18461
  }),
18389
18462
  data?.providers.filter((x)=>x.name !== data.default_provider.name).map((x)=>x.urls.length > 1 ? /*#__PURE__*/ jsxRuntime.jsx(LoginProviderMultipleItems, {
18390
18463
  provider: x,
18391
- handleLoginSelected: handleLoginSelected
18464
+ handleLoginSelected: handleLoginSelected,
18465
+ loginProviderExtra: loginProviderExtra
18392
18466
  }, x.name) : /*#__PURE__*/ jsxRuntime.jsx(LoginProviderSingleItem, {
18393
18467
  provider: x,
18394
- handleLoginSelected: handleLoginSelected
18468
+ handleLoginSelected: handleLoginSelected,
18469
+ loginProviderExtra: loginProviderExtra
18395
18470
  }, x.name))
18396
18471
  ]
18397
18472
  })
@@ -18561,7 +18636,7 @@ const filterRedirect = (redirect)=>{
18561
18636
  return cleanPath ? `${baseUrl}/${cleanPath}` : baseUrl;
18562
18637
  };
18563
18638
  const LoginPanel = (loginConfig)=>{
18564
- const { image, topContent, bottomContent } = loginConfig;
18639
+ const { image, topContent, loginProviderExtra, bottomContent } = loginConfig;
18565
18640
  const router$1 = router.useRouter();
18566
18641
  const { query: { referer: refererQuery, redirect: redirectQuery } } = router$1;
18567
18642
  const referer = redirectQuery || refererQuery; // either referer or redirect query param
@@ -18602,7 +18677,8 @@ const LoginPanel = (loginConfig)=>{
18602
18677
  key: index
18603
18678
  })),
18604
18679
  /*#__PURE__*/ jsxRuntime.jsx(LoginProvidersPanel, {
18605
- handleLoginSelected: handleFenceLoginSelected
18680
+ handleLoginSelected: handleFenceLoginSelected,
18681
+ loginProviderExtra: loginProviderExtra
18606
18682
  }),
18607
18683
  loginConfig?.showCredentialsLogin && process.env.NODE_ENV === 'development' && /*#__PURE__*/ jsxRuntime.jsx(CredentialsLogin, {
18608
18684
  handleLogin: handleCredentialsLogin
@@ -26423,7 +26499,8 @@ const TabbedCohortBuilderPage = ({ headerProps, footerProps, configuration })=>{
26423
26499
  })
26424
26500
  }),
26425
26501
  /*#__PURE__*/ jsxRuntime.jsx(QueryExpression, {
26426
- index: configuration.index
26502
+ index: configuration.index,
26503
+ fieldsAreFlat: configuration.fieldsAreFlat
26427
26504
  })
26428
26505
  ]
26429
26506
  }),
@@ -27836,4 +27913,4 @@ exports.useGetFacetFilters = useGetFacetFilters;
27836
27913
  exports.useSetCohortFilterCombineState = useSetCohortFilterCombineState;
27837
27914
  exports.useToggleExpandFilter = useToggleExpandFilter;
27838
27915
  exports.useUpdateFilters = useUpdateFilters;
27839
- //# sourceMappingURL=index-DOVSswNr.js.map
27916
+ //# sourceMappingURL=index-4CPJ2OlY.js.map