@gen3/frontend 0.10.97 → 0.10.98

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 (162) hide show
  1. package/dist/cjs/index.js +8894 -8123
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/dts/components/Login/LoginPanel.js +0 -1
  4. package/dist/dts/components/Login/LoginPanel.js.map +1 -1
  5. package/dist/dts/components/SegmentedControl.d.ts +8 -0
  6. package/dist/dts/components/SegmentedControl.d.ts.map +1 -0
  7. package/dist/dts/components/SegmentedControl.js +23 -0
  8. package/dist/dts/components/SegmentedControl.js.map +1 -0
  9. package/dist/dts/components/charts/CollapsableCharts.d.ts +9 -0
  10. package/dist/dts/components/charts/CollapsableCharts.d.ts.map +1 -0
  11. package/dist/dts/components/charts/CollapsableCharts.js +24 -0
  12. package/dist/dts/components/charts/CollapsableCharts.js.map +1 -0
  13. package/dist/dts/components/facets/EnumFacet.js +2 -2
  14. package/dist/dts/components/facets/EnumFacet.js.map +1 -1
  15. package/dist/dts/components/facets/ExactValueFacet.d.ts.map +1 -1
  16. package/dist/dts/components/facets/ExactValueFacet.js +3 -3
  17. package/dist/dts/components/facets/ExactValueFacet.js.map +1 -1
  18. package/dist/dts/components/facets/FacetSelectionModal.d.ts +22 -0
  19. package/dist/dts/components/facets/FacetSelectionModal.d.ts.map +1 -0
  20. package/dist/dts/components/facets/FacetSelectionModal.js +77 -0
  21. package/dist/dts/components/facets/FacetSelectionModal.js.map +1 -0
  22. package/dist/dts/components/facets/FacetTabs.d.ts +38 -0
  23. package/dist/dts/components/facets/FacetTabs.d.ts.map +1 -0
  24. package/dist/dts/components/facets/FacetTabs.js +166 -0
  25. package/dist/dts/components/facets/FacetTabs.js.map +1 -0
  26. package/dist/dts/components/facets/MultiSelectValueFacet.d.ts.map +1 -1
  27. package/dist/dts/components/facets/MultiSelectValueFacet.js +3 -3
  28. package/dist/dts/components/facets/MultiSelectValueFacet.js.map +1 -1
  29. package/dist/dts/components/facets/NumericRangeFacet/DaysOrYears.d.ts +5 -0
  30. package/dist/dts/components/facets/NumericRangeFacet/DaysOrYears.d.ts.map +1 -0
  31. package/dist/dts/components/facets/NumericRangeFacet/DaysOrYears.js +29 -0
  32. package/dist/dts/components/facets/NumericRangeFacet/DaysOrYears.js.map +1 -0
  33. package/dist/dts/components/facets/NumericRangeFacet/FromTo.d.ts +32 -0
  34. package/dist/dts/components/facets/NumericRangeFacet/FromTo.d.ts.map +1 -0
  35. package/dist/dts/components/facets/NumericRangeFacet/FromTo.js +168 -0
  36. package/dist/dts/components/facets/NumericRangeFacet/FromTo.js.map +1 -0
  37. package/dist/dts/components/facets/NumericRangeFacet/NumericRangePanel.d.ts +5 -0
  38. package/dist/dts/components/facets/NumericRangeFacet/NumericRangePanel.d.ts.map +1 -0
  39. package/dist/dts/components/facets/NumericRangeFacet/NumericRangePanel.js +30 -0
  40. package/dist/dts/components/facets/NumericRangeFacet/NumericRangePanel.js.map +1 -0
  41. package/dist/dts/components/facets/NumericRangeFacet/PercentRange.d.ts +5 -0
  42. package/dist/dts/components/facets/NumericRangeFacet/PercentRange.d.ts.map +1 -0
  43. package/dist/dts/components/facets/NumericRangeFacet/PercentRange.js +11 -0
  44. package/dist/dts/components/facets/NumericRangeFacet/PercentRange.js.map +1 -0
  45. package/dist/dts/components/facets/NumericRangeFacet/RangeInputWithPrefixedRanges.d.ts +12 -0
  46. package/dist/dts/components/facets/NumericRangeFacet/RangeInputWithPrefixedRanges.d.ts.map +1 -0
  47. package/dist/dts/components/facets/NumericRangeFacet/RangeInputWithPrefixedRanges.js +113 -0
  48. package/dist/dts/components/facets/NumericRangeFacet/RangeInputWithPrefixedRanges.js.map +1 -0
  49. package/dist/dts/components/facets/NumericRangeFacet/RangeValueSelector.d.ts +26 -0
  50. package/dist/dts/components/facets/NumericRangeFacet/RangeValueSelector.d.ts.map +1 -0
  51. package/dist/dts/components/facets/NumericRangeFacet/RangeValueSelector.js +63 -0
  52. package/dist/dts/components/facets/NumericRangeFacet/RangeValueSelector.js.map +1 -0
  53. package/dist/dts/components/facets/NumericRangeFacet/Year.d.ts +5 -0
  54. package/dist/dts/components/facets/NumericRangeFacet/Year.d.ts.map +1 -0
  55. package/dist/dts/components/facets/NumericRangeFacet/Year.js +23 -0
  56. package/dist/dts/components/facets/NumericRangeFacet/Year.js.map +1 -0
  57. package/dist/dts/components/facets/NumericRangeFacet/Years.d.ts +5 -0
  58. package/dist/dts/components/facets/NumericRangeFacet/Years.d.ts.map +1 -0
  59. package/dist/dts/components/facets/NumericRangeFacet/Years.js +24 -0
  60. package/dist/dts/components/facets/NumericRangeFacet/Years.js.map +1 -0
  61. package/dist/dts/components/facets/NumericRangeFacet/index.d.ts +19 -0
  62. package/dist/dts/components/facets/NumericRangeFacet/index.d.ts.map +1 -0
  63. package/dist/dts/components/facets/NumericRangeFacet/index.js +65 -0
  64. package/dist/dts/components/facets/NumericRangeFacet/index.js.map +1 -0
  65. package/dist/dts/components/facets/NumericRangeFacet/types.d.ts +27 -0
  66. package/dist/dts/components/facets/NumericRangeFacet/types.d.ts.map +1 -0
  67. package/dist/dts/components/facets/NumericRangeFacet/types.js +2 -0
  68. package/dist/dts/components/facets/NumericRangeFacet/types.js.map +1 -0
  69. package/dist/dts/components/facets/NumericRangeFacet/utils.d.ts +52 -0
  70. package/dist/dts/components/facets/NumericRangeFacet/utils.d.ts.map +1 -0
  71. package/dist/dts/components/facets/NumericRangeFacet/utils.js +288 -0
  72. package/dist/dts/components/facets/NumericRangeFacet/utils.js.map +1 -0
  73. package/dist/dts/components/facets/RangeFacet.d.ts +1 -6
  74. package/dist/dts/components/facets/RangeFacet.d.ts.map +1 -1
  75. package/dist/dts/components/facets/RangeFacet.js +3 -3
  76. package/dist/dts/components/facets/RangeFacet.js.map +1 -1
  77. package/dist/dts/components/facets/constants.d.ts +1 -0
  78. package/dist/dts/components/facets/constants.d.ts.map +1 -1
  79. package/dist/dts/components/facets/constants.js +1 -0
  80. package/dist/dts/components/facets/constants.js.map +1 -1
  81. package/dist/dts/components/facets/createFacetCard.d.ts +16 -2
  82. package/dist/dts/components/facets/createFacetCard.d.ts.map +1 -1
  83. package/dist/dts/components/facets/createFacetCard.js +13 -10
  84. package/dist/dts/components/facets/createFacetCard.js.map +1 -1
  85. package/dist/dts/components/facets/createFacetCards.d.ts +10 -0
  86. package/dist/dts/components/facets/createFacetCards.d.ts.map +1 -0
  87. package/dist/dts/components/facets/createFacetCards.js +19 -0
  88. package/dist/dts/components/facets/createFacetCards.js.map +1 -0
  89. package/dist/dts/components/facets/hooks.d.ts +1 -0
  90. package/dist/dts/components/facets/hooks.d.ts.map +1 -1
  91. package/dist/dts/components/facets/hooks.js +10 -1
  92. package/dist/dts/components/facets/hooks.js.map +1 -1
  93. package/dist/dts/components/facets/index.d.ts +11 -1
  94. package/dist/dts/components/facets/index.d.ts.map +1 -1
  95. package/dist/dts/components/facets/index.js +11 -1
  96. package/dist/dts/components/facets/index.js.map +1 -1
  97. package/dist/dts/components/facets/types.d.ts +97 -3
  98. package/dist/dts/components/facets/types.d.ts.map +1 -1
  99. package/dist/dts/components/facets/types.js.map +1 -1
  100. package/dist/dts/features/Analysis/AnalysisCardCompact.stories.d.ts +6 -6
  101. package/dist/dts/features/CohortBuilder/CohortPanel.d.ts.map +1 -1
  102. package/dist/dts/features/CohortBuilder/CohortPanel.js +6 -2
  103. package/dist/dts/features/CohortBuilder/CohortPanel.js.map +1 -1
  104. package/dist/dts/features/CohortBuilder/ExplorerTable/ArrayCellRenderer.d.ts.map +1 -1
  105. package/dist/dts/features/CohortBuilder/ExplorerTable/ArrayCellRenderer.js +0 -4
  106. package/dist/dts/features/CohortBuilder/ExplorerTable/ArrayCellRenderer.js.map +1 -1
  107. package/dist/dts/features/CohortBuilder/FiltersPanel.d.ts.map +1 -1
  108. package/dist/dts/features/CohortBuilder/FiltersPanel.js +9 -1
  109. package/dist/dts/features/CohortBuilder/FiltersPanel.js.map +1 -1
  110. package/dist/dts/features/CohortBuilder/TabbedCohortBuilder.d.ts +16 -0
  111. package/dist/dts/features/CohortBuilder/TabbedCohortBuilder.d.ts.map +1 -0
  112. package/dist/dts/features/CohortBuilder/TabbedCohortBuilder.js +185 -0
  113. package/dist/dts/features/CohortBuilder/TabbedCohortBuilder.js.map +1 -0
  114. package/dist/dts/features/CohortBuilder/index.d.ts +3 -2
  115. package/dist/dts/features/CohortBuilder/index.d.ts.map +1 -1
  116. package/dist/dts/features/CohortBuilder/index.js +3 -2
  117. package/dist/dts/features/CohortBuilder/index.js.map +1 -1
  118. package/dist/dts/features/CohortDiscovery/ChartsAndFacetsPanel.d.ts.map +1 -1
  119. package/dist/dts/features/CohortDiscovery/ChartsAndFacetsPanel.js +5 -1
  120. package/dist/dts/features/CohortDiscovery/ChartsAndFacetsPanel.js.map +1 -1
  121. package/dist/dts/features/CohortDiscovery/IndexPanel.d.ts.map +1 -1
  122. package/dist/dts/features/CohortDiscovery/IndexPanel.js +5 -4
  123. package/dist/dts/features/CohortDiscovery/IndexPanel.js.map +1 -1
  124. package/dist/dts/features/Discovery/Charts/CollapsableChartsPanel.d.ts +9 -0
  125. package/dist/dts/features/Discovery/Charts/CollapsableChartsPanel.d.ts.map +1 -0
  126. package/dist/dts/features/Discovery/Charts/CollapsableChartsPanel.js +24 -0
  127. package/dist/dts/features/Discovery/Charts/CollapsableChartsPanel.js.map +1 -0
  128. package/dist/dts/features/Navigation/Header.js +1 -1
  129. package/dist/dts/features/Navigation/Header.js.map +1 -1
  130. package/dist/dts/index.d.ts +6 -3
  131. package/dist/dts/index.d.ts.map +1 -1
  132. package/dist/dts/index.js +5 -2
  133. package/dist/dts/index.js.map +1 -1
  134. package/dist/dts/pages/TabbedCohortBuilder/TabbedCohortBuilderPage.d.ts +4 -0
  135. package/dist/dts/pages/TabbedCohortBuilder/TabbedCohortBuilderPage.d.ts.map +1 -0
  136. package/dist/dts/pages/TabbedCohortBuilder/TabbedCohortBuilderPage.js +24 -0
  137. package/dist/dts/pages/TabbedCohortBuilder/TabbedCohortBuilderPage.js.map +1 -0
  138. package/dist/dts/pages/TabbedCohortBuilder/data.d.ts +4 -0
  139. package/dist/dts/pages/TabbedCohortBuilder/data.d.ts.map +1 -0
  140. package/dist/dts/pages/TabbedCohortBuilder/data.js +81 -0
  141. package/dist/dts/pages/TabbedCohortBuilder/data.js.map +1 -0
  142. package/dist/dts/pages/TabbedCohortBuilder/index.d.ts +3 -0
  143. package/dist/dts/pages/TabbedCohortBuilder/index.d.ts.map +1 -0
  144. package/dist/dts/pages/TabbedCohortBuilder/index.js +3 -0
  145. package/dist/dts/pages/TabbedCohortBuilder/index.js.map +1 -0
  146. package/dist/dts/pages/TabbedCohortBuilder/types.d.ts +6 -0
  147. package/dist/dts/pages/TabbedCohortBuilder/types.d.ts.map +1 -0
  148. package/dist/dts/pages/TabbedCohortBuilder/types.js +2 -0
  149. package/dist/dts/pages/TabbedCohortBuilder/types.js.map +1 -0
  150. package/dist/dts/types/icons.d.ts +4 -2
  151. package/dist/dts/types/icons.d.ts.map +1 -1
  152. package/dist/dts/types/icons.js +4 -2
  153. package/dist/dts/types/icons.js.map +1 -1
  154. package/dist/dts/utils/useScrollToHash.d.ts +8 -0
  155. package/dist/dts/utils/useScrollToHash.d.ts.map +1 -0
  156. package/dist/dts/utils/useScrollToHash.js +25 -0
  157. package/dist/dts/utils/useScrollToHash.js.map +1 -0
  158. package/dist/esm/index.js +8831 -8099
  159. package/dist/esm/index.js.map +1 -1
  160. package/dist/index.d.ts +684 -232
  161. package/dist/tsconfig.tsbuildinfo +1 -1
  162. package/package.json +3 -3
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { JSONObject, HistogramDataArray, AggregationsData, EnumFilterValue, ServiceAndMethod, DataLibraryStoreMode, ExportDatasetFields, Accessibility, SharedFieldMapping, FacetDefinition, Operation, FilterSet, CohortItem, FileItem } from '@gen3/core';
2
+ import { JSONObject, HistogramDataArray, AggregationsData, EnumFilterValue, FacetDefinition, IndexAndField, Operation, CombineMode, DataFetchingResult, Accessibility, SharedFieldMapping, Includes, Intersection, OperatorWithFieldAndArrayOfOperands, ServiceAndMethod, DataLibraryStoreMode, ExportDatasetFields, FilterSet, CohortItem, FileItem } from '@gen3/core';
3
3
  import * as React$1 from 'react';
4
- import React__default, { ReactElement, ReactNode, CSSProperties, PropsWithChildren, RefObject } from 'react';
4
+ import React__default, { ReactElement, ReactNode, CSSProperties, ComponentType, RefObject, PropsWithChildren } from 'react';
5
5
  import { EChartsOption, SetOptionOpts } from 'echarts';
6
+ import { MRT_Row, MRT_RowData, MRT_Cell, MRT_Column, MRT_TableInstance } from 'mantine-react-table';
6
7
  import * as _mantine_core from '@mantine/core';
7
8
  import { ButtonProps, BoxProps, TitleOrder } from '@mantine/core';
8
- import { MRT_RowData, MRT_Cell, MRT_Row, MRT_Column, MRT_TableInstance } from 'mantine-react-table';
9
9
  import * as tailwind_styled_components_dist_tailwind from 'tailwind-styled-components/dist/tailwind';
10
10
  import * as type_fest_source_partial_deep from 'type-fest/source/partial-deep';
11
11
  import { GetServerSideProps, NextPage, GetStaticProps, NextApiRequest, NextApiResponse } from 'next';
@@ -403,6 +403,662 @@ interface FacetChartProps {
403
403
  }
404
404
  declare const EnumFacetChart: React__default.FC<FacetChartProps>;
405
405
 
406
+ interface NumericFromTo {
407
+ readonly from: number;
408
+ readonly to: number;
409
+ }
410
+
411
+ type QueryOptions = Record<string, unknown>;
412
+ interface FacetCardProps<T extends FacetCommonHooks> {
413
+ readonly field: string;
414
+ readonly hooks: T;
415
+ readonly valueLabel: string;
416
+ readonly description?: string;
417
+ readonly facetName?: string;
418
+ readonly facetBtnToolTip?: string;
419
+ readonly showSearch?: boolean;
420
+ readonly showFlip?: boolean;
421
+ readonly showSettings?: boolean;
422
+ readonly isFacetView?: boolean;
423
+ readonly showPercent?: boolean;
424
+ readonly startShowingData?: boolean;
425
+ readonly hideIfEmpty?: boolean;
426
+ readonly width?: string;
427
+ readonly dismissCallback?: (arg0: string) => void;
428
+ readonly sharedWithIndices?: Array<IndexAndField>;
429
+ readonly Chart?: React__default.FC<EnumChartProps>;
430
+ readonly queryOptions?: QueryOptions;
431
+ readonly header?: {
432
+ readonly Panel: ComponentType<{
433
+ children: ReactNode;
434
+ }>;
435
+ readonly Label: ComponentType<{
436
+ children: ReactNode;
437
+ }>;
438
+ readonly iconStyle?: string;
439
+ };
440
+ }
441
+ type FacetType = 'enum' | 'exact' | 'range' | 'age' | 'year' | 'years' | 'days' | 'percent' | 'datetime' | 'toggle' | 'multiselect';
442
+ type ClearFacetFunction = (field: string) => void;
443
+ type ClearIndexedFacetFunction = (index: string, field: string) => void;
444
+ type GetTotalCountsFunction = () => number;
445
+ type UpdateFacetFilterFunction = (field: string, filter: Operation) => void;
446
+ type SelectFacetFilterFunction = (field: string) => Operation;
447
+ interface EnumFacetData {
448
+ readonly data?: Record<string, number>;
449
+ readonly isSuccess: boolean;
450
+ readonly enumValues?: Array<string>;
451
+ }
452
+ type ClearFacetHook = () => ClearFacetFunction;
453
+ type UpdateFacetFilterHook = () => UpdateFacetFilterFunction;
454
+ type GetFacetDataFunction = (field: string) => EnumFacetResponse | RangeFacetResponse;
455
+ type GetEnumFacetDataFunction = (field: string) => EnumFacetResponse;
456
+ type GetRangeFacetDataFunction = (field: string) => RangeFacetResponse;
457
+ type GetRangeFacetWithDefinedRangesDataFunction = (field: string, ranges: ReadonlyArray<NumericFromTo>) => RangeFacetResponse;
458
+ type FieldNameToTitleFunction = (field: string, sections?: number) => string;
459
+ type GetFacetCombineModeFunction = (field: string) => CombineMode;
460
+ type SetFacetCombineModeFunction = (field: string, combineMode: CombineMode) => void;
461
+ type EnumOperandValue = ReadonlyArray<string | number>;
462
+ type EnumFacetDataChangedFunction = (data: Array<[string | number, number]>) => void;
463
+ interface FacetCommonHooks {
464
+ useClearFilter: ClearFacetHook;
465
+ /**
466
+ * Hook that takes the API field and returns a human readable field name
467
+ */
468
+ useFieldNameToTitle: () => (field: string, sections?: number) => string;
469
+ useToggleExpandFilter?: () => (field: string, expanded: boolean) => void;
470
+ useFilterExpanded?: (field: string) => boolean;
471
+ usePopulateFacetData?: (facets: FacetDefinition[], queryOptions?: QueryOptions) => void;
472
+ }
473
+ interface FacetDataHooks extends FacetCommonHooks {
474
+ useUpdateFacetFilters: UpdateFacetFilterHook;
475
+ useGetFacetFilters: SelectFacetFilterFunction;
476
+ useGetFacetData: GetFacetDataFunction;
477
+ useTotalCounts?: GetTotalCountsFunction;
478
+ }
479
+ interface EnumFacetDataHooks extends FacetDataHooks {
480
+ useGetCombineMode: GetFacetCombineModeFunction;
481
+ useUpdateCombineMode: SetFacetCombineModeFunction;
482
+ }
483
+ interface RangeFacetHooks extends FacetCommonHooks {
484
+ useUpdateFacetFilters: UpdateFacetFilterHook;
485
+ useGetFacetData: GetRangeFacetDataFunction;
486
+ }
487
+ type AdvancedRangeFacetHooks = FacetCommonHooks & {
488
+ /**
489
+ * Hook that returns range values and counts
490
+ */
491
+ useGetRangeFacetData: GetRangeFacetDataFunction;
492
+ /**
493
+ * Hook that returns the currently selected filters
494
+ */
495
+ useGetFacetFilters: SelectFacetFilterFunction;
496
+ };
497
+ interface CustomFacetHooks {
498
+ /**
499
+ * Hook that returns a list of a user's currently selected custom facets
500
+ */
501
+ readonly useCustomFacets: () => DataFetchingResult<FacetDefinition[]>;
502
+ /**
503
+ * Hook that returns facets available for a user to add to their custom facets, option to return only facets
504
+ * with data
505
+ */
506
+ readonly useAvailableCustomFacets: (usedFacets: readonly string[], onlyFiltersWithValues: boolean, queryOptions?: QueryOptions) => {
507
+ data: Record<string, FacetDefinition>;
508
+ };
509
+ /**
510
+ * Hook to add a custom filter to a user's panel
511
+ */
512
+ readonly useAddCustomFilter: () => (filter: string) => void;
513
+ /**
514
+ * Hook to remove a custom filter to a user's panel
515
+ */
516
+ readonly useRemoveCustomFilter: () => (filter: string) => void;
517
+ }
518
+ interface FacetResponse {
519
+ readonly data?: Record<string, number>;
520
+ readonly isSuccess: boolean;
521
+ readonly isFetching: boolean;
522
+ readonly error?: unknown;
523
+ }
524
+ interface EnumFacetResponse extends FacetResponse {
525
+ readonly enumFilters?: EnumFilterValue;
526
+ readonly combineMode?: CombineMode;
527
+ }
528
+ declare function isEnumFacetResponse(facetResponse: FacetResponse): facetResponse is EnumFacetResponse;
529
+ interface RangeFacetResponse extends FacetResponse {
530
+ readonly rangeFilters?: FromToRange<number>;
531
+ }
532
+ type RangeFromOp = '>' | '>=';
533
+ type RangeToOp = '<' | '<=';
534
+ interface FromToRangeValues<T> {
535
+ readonly from?: T;
536
+ readonly to?: T;
537
+ }
538
+ interface FromToRange<T> extends FromToRangeValues<T> {
539
+ readonly fromOp?: RangeFromOp;
540
+ readonly toOp?: RangeToOp;
541
+ }
542
+ interface FieldToName {
543
+ readonly field: string;
544
+ readonly name: string;
545
+ }
546
+ type NumericRangeFacetHooks = FacetDataHooks & {
547
+ /**
548
+ * Hook that returns range values and counts
549
+ */
550
+ useGetRangeFacetData: GetRangeFacetWithDefinedRangesDataFunction;
551
+ /**
552
+ * Hook that returns the currently selected filters
553
+ */
554
+ useGetFacetFilters: SelectFacetFilterFunction;
555
+ };
556
+ type NumericFacetCardProps = FacetCardProps<NumericRangeFacetHooks> & {
557
+ readonly rangeDatatype?: string;
558
+ readonly minimum: number | undefined;
559
+ readonly maximum: number | undefined;
560
+ readonly clearValues?: boolean;
561
+ };
562
+ type FacetSortType = 'value-asc' | 'value-dsc' | 'label-asc' | 'label-desc';
563
+ /**
564
+ * Sort type for enum buckets
565
+ */
566
+ interface SortType {
567
+ type: 'value' | 'alpha';
568
+ direction: 'asc' | 'dsc';
569
+ }
570
+ interface SelectedFields$1 {
571
+ category: string;
572
+ fields: Array<FacetDefinition>;
573
+ selectedFields: Array<string>;
574
+ updateSelectedField: (facet: string) => void;
575
+ }
576
+ interface AllowableRange {
577
+ readonly minimum: number;
578
+ readonly maximum: number;
579
+ }
580
+ interface CohortBuilderCategoryConfig {
581
+ readonly label: string;
582
+ readonly facets: ReadonlyArray<string>;
583
+ readonly queryOptions?: QueryOptions;
584
+ }
585
+ type FacetRequiredHooks = EnumFacetDataHooks | RangeFacetHooks;
586
+ interface EnumChartProps {
587
+ readonly field: string;
588
+ readonly data: Record<string, number>;
589
+ readonly selectedEnums: readonly string[];
590
+ readonly isSuccess: boolean;
591
+ readonly showTitle: boolean;
592
+ readonly maxBins: number;
593
+ readonly height: number;
594
+ readonly valueLabel?: string;
595
+ }
596
+ interface EnumChartProps {
597
+ readonly field: string;
598
+ readonly data: Record<string, number>;
599
+ readonly selectedEnums: readonly string[];
600
+ readonly isSuccess: boolean;
601
+ readonly showTitle: boolean;
602
+ readonly maxBins: number;
603
+ readonly height: number;
604
+ readonly valueLabel?: string;
605
+ }
606
+
607
+ type RendererFunction<T> = (props: T, ...params: any[]) => ReactNode;
608
+ interface RendererFunctionCatalogEntry<T> {
609
+ [key: string]: RendererFunction<T>;
610
+ }
611
+ interface RendererFactoryInterface<T> {
612
+ getRenderer(type: string, functionName: string): RendererFunction<T>;
613
+ registerRenderer(type: string, functionName: string, func: RendererFunction<T>): void;
614
+ registerRendererCatalog(catalog: Record<string, RendererFunctionCatalogEntry<T>>): void;
615
+ }
616
+ declare class RenderFactoryTypedInstance<T> implements RendererFactoryInterface<T> {
617
+ private catalog;
618
+ private defaultRenderer;
619
+ constructor();
620
+ /**
621
+ * Sets the default renderer function for the specified type.
622
+ *
623
+ * @param {RendererFunction<T>} func - The renderer function to set as the default.
624
+ * @return {void}
625
+ */
626
+ setDefaultRenderer(func: RendererFunction<T>): void;
627
+ getRenderer(type: string, functionName: string): RendererFunction<T>;
628
+ /**
629
+ * Check if a renderer exists for a given type and function name
630
+ * @param type
631
+ * @param functionName
632
+ * @returns boolean indicating if the renderer exists
633
+ */
634
+ rendererExists(type: string, functionName: string): boolean;
635
+ /**
636
+ * Registers a renderer function for a given type and function name.
637
+ *
638
+ * @param {string} type - The type of the renderer function.
639
+ * @param {string} functionName - The name of the renderer function.
640
+ * @param {RendererFunction<T>} func - The renderer function to register.
641
+ * @returns {boolean} - True if the registration is successful, false otherwise.
642
+ * @throws {Error} - If any of the input parameters are missing or if the renderer function already exists.
643
+ */
644
+ registerRenderer(type: string, functionName: string, func: RendererFunction<T>): boolean;
645
+ /**
646
+ * Registers a renderer catalog.
647
+ *
648
+ * @param {Record<string, RendererFunctionCatalogEntry<T>>} catalog - The catalog object containing the renderers.
649
+ * @returns {boolean} - True if the catalog was registered successfully, otherwise false.
650
+ */
651
+ registerRendererCatalog(catalog: Record<string, RendererFunctionCatalogEntry<T>>): boolean;
652
+ }
653
+
654
+ interface DetailsPanelComponentProps extends Record<string, unknown> {
655
+ id?: string;
656
+ onClose?: (id?: string) => void;
657
+ row?: MRT_Row<Record<string, any>>;
658
+ }
659
+
660
+ interface TableDetailsPanelProps extends DetailsPanelComponentProps {
661
+ index: string;
662
+ tableConfig: SummaryTable;
663
+ accessibility: Accessibility;
664
+ }
665
+ /**
666
+ * Represents the configuration for the Explorer details.
667
+ *
668
+ * @interface ExplorerDetailsConfig
669
+ * @property {('click' | 'doubleclick' | 'expand')} [mode] - The interaction mode for the Explorer details. Default is 'click'.
670
+ * @property {string} [title] - The title of the Explorer details.
671
+ * @property {string} panel - The panel name for the Explorer details that has been registered with the appropriate factory
672
+ * @property {Record<string, unknown>} [params] - Additional parameters for the Explorer details panel.
673
+ * @property {Record<string, string>} [classNames] - Additional CSS class names for the Explorer modal | drawer.
674
+ * @property {string} [idField] - The field used as an identifier for the Explorer details.
675
+ */
676
+ interface ExplorerDetailsConfig {
677
+ mode?: 'click' | 'doubleclick' | 'expand';
678
+ title?: string;
679
+ panel: string;
680
+ params?: Record<string, unknown>;
681
+ classNames?: Record<string, string>;
682
+ idField?: string;
683
+ }
684
+
685
+ declare const ExplorerTableCellRendererFactory: () => RenderFactoryTypedInstance<CellRendererFunctionProps>;
686
+ declare const registerExplorerDefaultCellRenderers: () => void;
687
+
688
+ type SummaryTableColumnType = 'string' | 'number' | 'date' | 'array' | 'link' | 'boolean' | 'paragraphs';
689
+ interface SummaryTableColumn {
690
+ field: string;
691
+ title: string;
692
+ accessorPath?: string;
693
+ type?: SummaryTableColumnType;
694
+ cellRenderFunction?: string;
695
+ params?: Record<string, any>;
696
+ width?: number;
697
+ sortable?: boolean;
698
+ visible?: boolean;
699
+ }
700
+ interface SummaryTablePageLimit {
701
+ limit?: number;
702
+ label?: string;
703
+ }
704
+ interface TableColumnsAndFields {
705
+ fields: ReadonlyArray<string>;
706
+ columns: Record<string, SummaryTableColumn>;
707
+ }
708
+ interface FieldSubtableClassnames extends Record<string, string> {
709
+ header: string;
710
+ columnLabel: string;
711
+ }
712
+ interface FieldSubtable extends TableColumnsAndFields {
713
+ root: string;
714
+ label: string;
715
+ classNames?: Partial<FieldSubtableClassnames>;
716
+ }
717
+ interface SummaryTable extends TableColumnsAndFields {
718
+ enabled: boolean;
719
+ subTables?: ReadonlyArray<FieldSubtable>;
720
+ pageLimit?: SummaryTablePageLimit;
721
+ detailsConfig?: ExplorerDetailsConfig;
722
+ selectableRows?: boolean;
723
+ }
724
+ /**
725
+ * Represents the props required for a cell renderer function.
726
+ */
727
+ interface CellRendererFunctionProps<T extends MRT_RowData = JSONObject> {
728
+ cell: MRT_Cell<T>;
729
+ renderedCellValue: ReactNode;
730
+ column: MRT_Column<T>;
731
+ row: MRT_Row<T>;
732
+ rowRef?: RefObject<HTMLTableRowElement> | undefined;
733
+ table: MRT_TableInstance<T>;
734
+ params?: Record<string, unknown>;
735
+ }
736
+
737
+ interface DownloadButtonProps {
738
+ enabled?: boolean;
739
+ type?: string;
740
+ title: string;
741
+ actionTitle?: string;
742
+ leftIcon?: string;
743
+ rightIcon?: string;
744
+ tooltipText?: string;
745
+ action?: string;
746
+ actionArgs?: Record<string, string>;
747
+ classNames?: StylingOverride;
748
+ }
749
+ interface DropdownButtonProps extends Omit<DownloadButtonProps, 'action' | 'actionArgs'> {
750
+ dropdownItems: ReadonlyArray<Partial<DownloadButtonProps>>;
751
+ }
752
+
753
+ declare const DropdownButton: ({ title, dropdownItems, }: DropdownButtonProps) => JSX.Element;
754
+ //# sourceMappingURL=DropdownButton.d.ts.map
755
+
756
+ interface TabConfig {
757
+ title: string;
758
+ fields: ReadonlyArray<string>;
759
+ fieldsConfig: Record<string, FacetDefinition>;
760
+ classNames?: StylingOverride;
761
+ defaultSort?: FacetSortType;
762
+ }
763
+ interface TabsConfig {
764
+ readonly tabs: ReadonlyArray<TabConfig>;
765
+ }
766
+ interface ManifestFieldsConfig {
767
+ resourceIndexType: string;
768
+ resourceIdField: string;
769
+ referenceIdFieldInResourceIndex: string;
770
+ referenceIdFieldInDataIndex: string;
771
+ }
772
+ interface DataTypeConfig {
773
+ dataType: string;
774
+ nodeCountTitle?: string;
775
+ accessibleFieldCheckList?: string[];
776
+ accessibleValidationField?: string;
777
+ tierAccessLevel?: 'libre' | 'regular' | 'private';
778
+ tierAccessLimit?: number;
779
+ }
780
+ interface DataTypeConfigWithManifest extends DataTypeConfig {
781
+ manifestMapping?: ManifestFieldsConfig;
782
+ fieldMapping?: ReadonlyArray<FieldToName>;
783
+ }
784
+ interface DownloadButtonConfig extends DownloadButtonProps {
785
+ dropdownId?: string;
786
+ }
787
+ interface DropdownButtonsConfig {
788
+ readonly title: string;
789
+ }
790
+ interface DropdownsWithButtonsProps extends DropdownButtonsConfig {
791
+ dropdownItems: ReadonlyArray<DownloadButtonProps>;
792
+ }
793
+ interface CohortPanelConfiguration {
794
+ guppyConfig: DataTypeConfigWithManifest;
795
+ tabTitle: string;
796
+ charts?: Record<string, SummaryChart>;
797
+ table?: SummaryTable;
798
+ filters?: TabsConfig;
799
+ dropdowns?: Record<string, DropdownsWithButtonsProps>;
800
+ buttons?: ReadonlyArray<DownloadButtonConfig>;
801
+ loginForDownload?: boolean;
802
+ sharedFiltersMap?: SharedFieldMapping;
803
+ }
804
+ interface SharedFieldConfiguration {
805
+ defined?: SharedFieldMapping;
806
+ autoCreate?: boolean;
807
+ }
808
+ declare enum GuppyDataAccessMode {
809
+ REGULAR = "regular",
810
+ LIBRE = "libre",
811
+ PRIVATE = "private"
812
+ }
813
+ interface AccessControlConfiguration {
814
+ dataMode: GuppyDataAccessMode;
815
+ tierLimit?: number;
816
+ showAccessLevelControl?: boolean;
817
+ }
818
+ interface CohortBuilderConfiguration extends Gen3AppConfigData {
819
+ tabsLayout?: 'left' | 'right' | 'center';
820
+ sharedFilters?: SharedFieldConfiguration;
821
+ explorerConfig: Array<CohortPanelConfiguration>;
822
+ accessControl?: AccessControlConfiguration;
823
+ }
824
+ interface CohortBuilderProps extends Omit<CohortBuilderConfiguration, 'sharedFilters'> {
825
+ sharedFiltersMap: SharedFieldMapping | null;
826
+ }
827
+
828
+ declare const getAllFieldsFromFilterConfigs: (filterTabConfigs: ReadonlyArray<TabConfig>) => string[];
829
+ declare const processBucketData: (data?: HistogramDataArray) => Record<string, number>;
830
+ declare const processRangeData: (data?: HistogramDataArray) => Record<string, number>;
831
+ /**
832
+ * Update the facet filter for an enumeration facet
833
+ * @param fieldName - the name of the field
834
+ * @param values - the values to filter on
835
+ * @param updateFacetFilters - the function to update the facet filters
836
+ * @param clearFilters
837
+ */
838
+ declare const updateFacetEnum: (fieldName: string, values: EnumFilterValue, updateFacetFilters: UpdateFacetFilterFunction, clearFilters: ClearFacetFunction, combineMode?: CombineMode) => void;
839
+ declare const classifyFacets: (data: AggregationsData, index: string, fieldMapping?: ReadonlyArray<FieldToName>, facetDefinitionsFromConfig?: Record<string, FacetDefinition>, sharedFieldMapping?: SharedFieldMapping) => Record<string, FacetDefinition>;
840
+ /**
841
+ * Constructs a nested operation object based on the provided field and leaf operand.
842
+ * If the field does not contain a dot '.', it either assigns the field to the leaf operand (if applicable)
843
+ * or returns the leaf operand as is. When the field contains dots, it splits the field into parts,
844
+ * creates a "nested" operation for the root field, and recursively constructs the nested structure
845
+ * for the remaining portion of the field.
846
+ *
847
+ * @param {string} field - The hierarchical field path, with segments separated by dots (e.g., "root.child").
848
+ * @param {Operation} leafOperand - The operation to be nested within the specified path.
849
+ * @returns {Operation} A nested operation object that represents the structured path and operand.
850
+ */
851
+ declare const buildNested: (field: string, leafOperand: Operation) => Operation;
852
+ /**
853
+ * Update Guppy filters: process nested fields and have the final
854
+ * leaf be filtered
855
+ * @param index
856
+ */
857
+ declare const useUpdateFilters: (index: string) => (field: string, filter: Operation) => void;
858
+ declare const useGetFacetFilters: (index: string, field: string) => Operation;
859
+ /**
860
+ * Given an operation, determine if range is open or closed and extract
861
+ * the range values and operands as a NumericRange
862
+ * @param filter - operation to test
863
+ */
864
+ declare const extractRangeValues: <T extends string | number>(filter?: Operation) => FromToRange<T> | undefined;
865
+ declare const convertToStringArray: (inputArray: (string | number)[]) => string[];
866
+ /**
867
+ * This function creates a new operation by combining the provided filter
868
+ * with an 'and' logical operator. The resulting operation contains the filter
869
+ * as its sole operand initially.
870
+ *
871
+ * @param {Operation} filter - The operation to be added as the first operand.
872
+ * @returns {Operation} A new operation object with an 'and' operator and the given filter as its operand.
873
+ */
874
+ declare const addUnion: (filter: Operation) => Operation;
875
+ /**
876
+ * Removes a union operation and returns the sole operand if the union
877
+ * operation contains only one operand. If the union operation has multiple
878
+ * operands or if the input is not a union, returns undefined.
879
+ *
880
+ * @param {Operation} filter - The operation to evaluate and possibly modify, expected to be a union.
881
+ * @returns {Operation | undefined} The sole operand of the union if it contains only one, or undefined otherwise.
882
+ */
883
+ declare const removeUnion: (filter: Operation) => Operation | undefined;
884
+ /**
885
+ * Represents a function that adds an intersection filter operation.
886
+ *
887
+ * @param {Operation} filter - The filter operation to be intersected with.
888
+ * @returns {Operation} An object representing a new operation that combines
889
+ * the provided filter with an "and" logical operator.
890
+ */
891
+ declare const addIntersectionToIncludes: (filter: Includes) => Operation;
892
+ /**
893
+ * Removes the intersection from a filter operation if the intersection contains only one operand.
894
+ *
895
+ * @param {Operation} filter - The filter operation to be evaluated.
896
+ * @returns {Operation|undefined} The single operand of the intersection if the intersection has only one operand, otherwise undefined.
897
+ */
898
+ declare const removeIntersectionFromEnum: (filter: Intersection) => OperatorWithFieldAndArrayOfOperands | undefined;
899
+ /**
900
+ * Maps a facet sort type to a corresponding sort type.
901
+ *
902
+ * @param {FacetSortType} facetSort - The facet sort type represented as a string in the format "type-direction".
903
+ * @returns {SortType} - The mapped sort type object containing type and direction.
904
+ */
905
+ declare const mapFacetSortToSortType: (facetSort: FacetSortType) => SortType;
906
+ declare const compareKeysAscending: (a: string | number, b: string | number) => number;
907
+ declare const compareKeysDescending: (a: string | number, b: string | number) => number;
908
+
909
+ declare const useClearFilters: (index: string) => (field: string) => void;
910
+ /**
911
+ * Selector for the facet values (if any) from the current cohort
912
+ * @param index - index of filter
913
+ * @param field - field name to find filter for
914
+ * @return Value of Filters or undefined
915
+ */
916
+ declare const useExtractEnumFilterValues: (index: string, field: string) => EnumFilterValue;
917
+ declare const useExtractRangeFilterValues: (index: string, field: string) => FromToRange<string | number> | undefined;
918
+ declare const useFieldNameToTitle: () => (field: string, sections?: number) => string;
919
+
920
+ declare const DEFAULT_VISIBLE_ITEMS = 6;
921
+ declare const DEFAULT_MINIMUM = 0;
922
+ declare const DEFAULT_MAXIMUM = 100;
923
+ declare const BAD_DATA_MESSAGE = "No data for this field";
924
+ declare const DAYS_IN_YEAR = 365.25;
925
+
926
+ interface EnumFacetHooks extends FacetDataHooks {
927
+ useGetFacetData: GetEnumFacetDataFunction;
928
+ updateVisibleValues?: EnumFacetDataChangedFunction;
929
+ }
930
+ declare const EnumFacet: ({ field, hooks, valueLabel, description, facetName, showPercent, hideIfEmpty, showSearch, showFlip, showSettings, startShowingData, dismissCallback, width, sharedWithIndices, header, }: FacetCardProps<EnumFacetHooks>) => react_jsx_runtime.JSX.Element;
931
+
932
+ type ExactValueProps$1 = Omit<FacetCardProps<FacetDataHooks>, 'showSearch' | 'showFlip' | 'showPercent' | 'valueLabel'>;
933
+ /**
934
+ * Exact value facet component
935
+ * @param field - field to facet on
936
+ * @param description - description of the facet
937
+ * @param facetName - name of the facet
938
+ * @param dismissCallback - callback function to dismiss the facet
939
+ * @param width - width of the facet
940
+ * @param hooks - hooks to use for the facet
941
+ * @param header - header components
942
+ * @category Facets
943
+ */
944
+ declare const ExactValueFacet: React__default.FC<ExactValueProps$1>;
945
+ //# sourceMappingURL=ExactValueFacet.d.ts.map
946
+
947
+ interface RangeFacetCardProps extends FacetCardProps<RangeFacetHooks> {
948
+ minimum?: number;
949
+ maximum?: number;
950
+ }
951
+ declare const RangeFacet: ({ field, hooks, valueLabel, description, facetName, minimum, maximum, showSearch, showFlip, showSettings, dismissCallback, width, header, }: RangeFacetCardProps) => react_jsx_runtime.JSX.Element;
952
+
953
+ type ExactValueProps = Omit<FacetCardProps<FacetDataHooks>, 'showSearch' | 'showFlip' | 'showPercent' | 'valueLabel'>;
954
+ /**
955
+ * Exact value facet component
956
+ * @param field - field to facet on
957
+ * @param description - description of the facet
958
+ * @param facetName - name of the facet
959
+ * @param dismissCallback - callback function to dismiss the facet
960
+ * @param width - width of the facet
961
+ * @param hooks - hooks to use for the facet
962
+ * @param header - header components
963
+ * @category Facets
964
+ */
965
+ declare const MultiSelectValueFacet: React__default.FC<ExactValueProps>;
966
+ //# sourceMappingURL=MultiSelectValueFacet.d.ts.map
967
+
968
+ type FacetTabProps = {
969
+ readonly activeTab: string | null | undefined;
970
+ readonly setActiveTab: (tab: string | null) => void;
971
+ hooks: Record<FacetType, FacetDataHooks>;
972
+ readonly facetDefinitions: Record<string, FacetDefinition>;
973
+ readonly tabsConfig: Record<string, CohortBuilderCategoryConfig>;
974
+ readonly usedFacets: string[];
975
+ readonly customFacetHooks?: CustomFacetHooks;
976
+ readonly getFacetLabel: (queryOptions?: QueryOptions) => string;
977
+ readonly cardScrollMargin?: number;
978
+ readonly Chart?: React__default.FC<EnumChartProps>;
979
+ readonly useFieldNameToTitle: () => (field: string, sections?: number) => string;
980
+ };
981
+ /**
982
+ * Component for rendering a tabbed facet selection view
983
+ * @param activeTab - which tab is currently active
984
+ * @param setActiveTab - function to set the active tab
985
+ * @param hooks - Hooks for retrieving data, modifying cohort, etc. for the various facet types
986
+ * @param facetDefinitions - Description of facets and their properties
987
+ * @param tabsConfig - Configuration for tab sections, which fields they contain and any additional fields needed to query data for that tab
988
+ * @param customFacetHooks - Hooks for custom facet selection
989
+ * @param getFacetLabel - Callback for determining the data label
990
+ * @param cardScrollMargin - Scroll margin for cards, used for positioning cards on the page when scrolled to
991
+ * @param Chart - Component for rendering a Chart view of the data
992
+ */
993
+ declare const FacetTabs: React__default.FC<FacetTabProps>;
994
+
995
+ interface SelectedFields {
996
+ category: string;
997
+ fields: Array<FacetDefinition>;
998
+ selectedFields: Array<string>;
999
+ updateSelectedField: (facet: string, checked: boolean) => void;
1000
+ }
1001
+ type FacetSelectorCardProps = Omit<FacetCardProps<FacetCommonHooks>, 'field' | 'valueLabel'> & SelectedFields;
1002
+ declare const FacetSelector: React__default.FC<FacetSelectorCardProps>;
1003
+ //# sourceMappingURL=FacetSelector.d.ts.map
1004
+
1005
+ type FacetHeaderProps = Pick<FacetCardProps<FacetCommonHooks>, 'field' | 'description' | 'hooks' | 'facetName' | 'showSearch' | 'showFlip' | 'dismissCallback' | 'isFacetView' | 'header' | 'sharedWithIndices'> & {
1006
+ showSettings?: boolean;
1007
+ showClearSelection?: boolean;
1008
+ toggleFlip?: () => void;
1009
+ toggleSearch?: () => void;
1010
+ toggleSettings?: () => void;
1011
+ };
1012
+ /**
1013
+ * Component for the common controls on the header of different type facet cards
1014
+ * @param field - filter this FacetCard manages
1015
+ * @param description - describes information about the facet
1016
+ * @param hooks - object defining the hooks required by this facet component
1017
+ * @param facetName - name of the Facet in human-readable form
1018
+ * @param showSettings - show filter settings AND/OR
1019
+ * @param showSearch - if the search icon show be displayed
1020
+ * @param showFlip - if the flip icon should be displayed
1021
+ * @param showClearSelection - if the clear selection icon should be displayed
1022
+ * @param isFacetView - if the facet selection view (and not the chart view) is displayed
1023
+ * @param toggleSettings - toggle is setting button is visible
1024
+ * @param toggleFlip - function to switch the facet/chart view
1025
+ * @param toggleSearch - function to switch if the search bart is displayed
1026
+ * @param dismissCallback - if facet can be removed, supply a function which will ensure the "dismiss" control will be visible
1027
+ * @param sharedWithIndices
1028
+ * @param header - object containing the display components to use for the header
1029
+ */
1030
+ declare const FacetControlsHeader: ({ field, description, hooks, facetName, showSettings, showSearch, showFlip, showClearSelection, isFacetView, toggleSettings, toggleFlip, toggleSearch, dismissCallback, sharedWithIndices, header, }: FacetHeaderProps) => react_jsx_runtime.JSX.Element;
1031
+ //# sourceMappingURL=FacetControlsHeader.d.ts.map
1032
+
1033
+ interface FacetSortPanelProps {
1034
+ sortType: SortType;
1035
+ valueLabel: string;
1036
+ setSort: (sort: SortType) => void;
1037
+ field: string;
1038
+ }
1039
+ /**
1040
+ * FacetCards "sort" header supporting sort by A-Z or by Value both ascending and descending
1041
+ * @param sortType - current sort type
1042
+ * @param valueLabel - Value labels, typically "case" "file"
1043
+ * @param setSort - sets the sort type and direction
1044
+ * @param field - specifies the facet table name
1045
+ */
1046
+ declare const FacetSortPanel: React__default.FC<FacetSortPanelProps>;
1047
+ //# sourceMappingURL=FacetSortPanel.d.ts.map
1048
+
1049
+ interface FacetExpanderProps {
1050
+ readonly remainingValues: number;
1051
+ readonly isGroupExpanded: boolean;
1052
+ readonly onShowChanged: (v: boolean) => void;
1053
+ }
1054
+ /**
1055
+ * Component which manages the compact/expanded state of a FacetCard
1056
+ * @param remainingValues - number of remaining values when compact "show 4"
1057
+ * @param isGroupExpanded - true if expanded, false if compact
1058
+ * @param onShowChanged - callback to call when the expand/compact button is clicked
1059
+ */
1060
+ declare const FacetExpander: React__default.FC<FacetExpanderProps>;
1061
+
406
1062
  interface ProtectedContentProps {
407
1063
  children?: ReactNode;
408
1064
  referer?: string;
@@ -936,233 +1592,6 @@ interface TagInfo {
936
1592
  }
937
1593
  declare const getTagInfo: (tagData: TagData, tagsConfig?: TagsConfig) => TagInfo;
938
1594
 
939
- type RendererFunction<T> = (props: T, ...params: any[]) => ReactNode;
940
- interface RendererFunctionCatalogEntry<T> {
941
- [key: string]: RendererFunction<T>;
942
- }
943
- interface RendererFactoryInterface<T> {
944
- getRenderer(type: string, functionName: string): RendererFunction<T>;
945
- registerRenderer(type: string, functionName: string, func: RendererFunction<T>): void;
946
- registerRendererCatalog(catalog: Record<string, RendererFunctionCatalogEntry<T>>): void;
947
- }
948
- declare class RenderFactoryTypedInstance<T> implements RendererFactoryInterface<T> {
949
- private catalog;
950
- private defaultRenderer;
951
- constructor();
952
- /**
953
- * Sets the default renderer function for the specified type.
954
- *
955
- * @param {RendererFunction<T>} func - The renderer function to set as the default.
956
- * @return {void}
957
- */
958
- setDefaultRenderer(func: RendererFunction<T>): void;
959
- getRenderer(type: string, functionName: string): RendererFunction<T>;
960
- /**
961
- * Check if a renderer exists for a given type and function name
962
- * @param type
963
- * @param functionName
964
- * @returns boolean indicating if the renderer exists
965
- */
966
- rendererExists(type: string, functionName: string): boolean;
967
- /**
968
- * Registers a renderer function for a given type and function name.
969
- *
970
- * @param {string} type - The type of the renderer function.
971
- * @param {string} functionName - The name of the renderer function.
972
- * @param {RendererFunction<T>} func - The renderer function to register.
973
- * @returns {boolean} - True if the registration is successful, false otherwise.
974
- * @throws {Error} - If any of the input parameters are missing or if the renderer function already exists.
975
- */
976
- registerRenderer(type: string, functionName: string, func: RendererFunction<T>): boolean;
977
- /**
978
- * Registers a renderer catalog.
979
- *
980
- * @param {Record<string, RendererFunctionCatalogEntry<T>>} catalog - The catalog object containing the renderers.
981
- * @returns {boolean} - True if the catalog was registered successfully, otherwise false.
982
- */
983
- registerRendererCatalog(catalog: Record<string, RendererFunctionCatalogEntry<T>>): boolean;
984
- }
985
-
986
- interface DetailsPanelComponentProps extends Record<string, unknown> {
987
- id?: string;
988
- onClose?: (id?: string) => void;
989
- row?: MRT_Row<Record<string, any>>;
990
- }
991
-
992
- interface TableDetailsPanelProps extends DetailsPanelComponentProps {
993
- index: string;
994
- tableConfig: SummaryTable;
995
- accessibility: Accessibility;
996
- }
997
- /**
998
- * Represents the configuration for the Explorer details.
999
- *
1000
- * @interface ExplorerDetailsConfig
1001
- * @property {('click' | 'doubleclick' | 'expand')} [mode] - The interaction mode for the Explorer details. Default is 'click'.
1002
- * @property {string} [title] - The title of the Explorer details.
1003
- * @property {string} panel - The panel name for the Explorer details that has been registered with the appropriate factory
1004
- * @property {Record<string, unknown>} [params] - Additional parameters for the Explorer details panel.
1005
- * @property {Record<string, string>} [classNames] - Additional CSS class names for the Explorer modal | drawer.
1006
- * @property {string} [idField] - The field used as an identifier for the Explorer details.
1007
- */
1008
- interface ExplorerDetailsConfig {
1009
- mode?: 'click' | 'doubleclick' | 'expand';
1010
- title?: string;
1011
- panel: string;
1012
- params?: Record<string, unknown>;
1013
- classNames?: Record<string, string>;
1014
- idField?: string;
1015
- }
1016
-
1017
- declare const ExplorerTableCellRendererFactory: () => RenderFactoryTypedInstance<CellRendererFunctionProps>;
1018
- declare const registerExplorerDefaultCellRenderers: () => void;
1019
-
1020
- type SummaryTableColumnType = 'string' | 'number' | 'date' | 'array' | 'link' | 'boolean' | 'paragraphs';
1021
- interface SummaryTableColumn {
1022
- field: string;
1023
- title: string;
1024
- accessorPath?: string;
1025
- type?: SummaryTableColumnType;
1026
- cellRenderFunction?: string;
1027
- params?: Record<string, any>;
1028
- width?: number;
1029
- sortable?: boolean;
1030
- visible?: boolean;
1031
- }
1032
- interface SummaryTablePageLimit {
1033
- limit?: number;
1034
- label?: string;
1035
- }
1036
- interface TableColumnsAndFields {
1037
- fields: ReadonlyArray<string>;
1038
- columns: Record<string, SummaryTableColumn>;
1039
- }
1040
- interface FieldSubtableClassnames extends Record<string, string> {
1041
- header: string;
1042
- columnLabel: string;
1043
- }
1044
- interface FieldSubtable extends TableColumnsAndFields {
1045
- root: string;
1046
- label: string;
1047
- classNames?: Partial<FieldSubtableClassnames>;
1048
- }
1049
- interface SummaryTable extends TableColumnsAndFields {
1050
- enabled: boolean;
1051
- subTables?: ReadonlyArray<FieldSubtable>;
1052
- pageLimit?: SummaryTablePageLimit;
1053
- detailsConfig?: ExplorerDetailsConfig;
1054
- selectableRows?: boolean;
1055
- }
1056
- /**
1057
- * Represents the props required for a cell renderer function.
1058
- */
1059
- interface CellRendererFunctionProps<T extends MRT_RowData = JSONObject> {
1060
- cell: MRT_Cell<T>;
1061
- renderedCellValue: ReactNode;
1062
- column: MRT_Column<T>;
1063
- row: MRT_Row<T>;
1064
- rowRef?: RefObject<HTMLTableRowElement> | undefined;
1065
- table: MRT_TableInstance<T>;
1066
- params?: Record<string, unknown>;
1067
- }
1068
-
1069
- interface FieldToName {
1070
- readonly field: string;
1071
- readonly name: string;
1072
- }
1073
- type FacetSortType = 'value-asc' | 'value-dsc' | 'label-asc' | 'label-desc';
1074
-
1075
- interface DownloadButtonProps {
1076
- enabled?: boolean;
1077
- type?: string;
1078
- title: string;
1079
- actionTitle?: string;
1080
- leftIcon?: string;
1081
- rightIcon?: string;
1082
- tooltipText?: string;
1083
- action?: string;
1084
- actionArgs?: Record<string, string>;
1085
- classNames?: StylingOverride;
1086
- }
1087
- interface DropdownButtonProps extends Omit<DownloadButtonProps, 'action' | 'actionArgs'> {
1088
- dropdownItems: ReadonlyArray<Partial<DownloadButtonProps>>;
1089
- }
1090
-
1091
- declare const DropdownButton: ({ title, dropdownItems, }: DropdownButtonProps) => JSX.Element;
1092
- //# sourceMappingURL=DropdownButton.d.ts.map
1093
-
1094
- interface TabConfig {
1095
- title: string;
1096
- fields: ReadonlyArray<string>;
1097
- fieldsConfig: Record<string, FacetDefinition>;
1098
- classNames?: StylingOverride;
1099
- defaultSort?: FacetSortType;
1100
- }
1101
- interface TabsConfig {
1102
- readonly tabs: ReadonlyArray<TabConfig>;
1103
- }
1104
- interface ManifestFieldsConfig {
1105
- resourceIndexType: string;
1106
- resourceIdField: string;
1107
- referenceIdFieldInResourceIndex: string;
1108
- referenceIdFieldInDataIndex: string;
1109
- }
1110
- interface DataTypeConfig {
1111
- dataType: string;
1112
- nodeCountTitle?: string;
1113
- accessibleFieldCheckList?: string[];
1114
- accessibleValidationField?: string;
1115
- tierAccessLevel?: 'libre' | 'regular' | 'private';
1116
- tierAccessLimit?: number;
1117
- }
1118
- interface DataTypeConfigWithManifest extends DataTypeConfig {
1119
- manifestMapping?: ManifestFieldsConfig;
1120
- fieldMapping?: ReadonlyArray<FieldToName>;
1121
- }
1122
- interface DownloadButtonConfig extends DownloadButtonProps {
1123
- dropdownId?: string;
1124
- }
1125
- interface DropdownButtonsConfig {
1126
- readonly title: string;
1127
- }
1128
- interface DropdownsWithButtonsProps extends DropdownButtonsConfig {
1129
- dropdownItems: ReadonlyArray<DownloadButtonProps>;
1130
- }
1131
- interface CohortPanelConfiguration {
1132
- guppyConfig: DataTypeConfigWithManifest;
1133
- tabTitle: string;
1134
- charts?: Record<string, SummaryChart>;
1135
- table?: SummaryTable;
1136
- filters?: TabsConfig;
1137
- dropdowns?: Record<string, DropdownsWithButtonsProps>;
1138
- buttons?: ReadonlyArray<DownloadButtonConfig>;
1139
- loginForDownload?: boolean;
1140
- sharedFiltersMap?: SharedFieldMapping;
1141
- }
1142
- interface SharedFieldConfiguration {
1143
- defined?: SharedFieldMapping;
1144
- autoCreate?: boolean;
1145
- }
1146
- declare enum GuppyDataAccessMode {
1147
- REGULAR = "regular",
1148
- LIBRE = "libre",
1149
- PRIVATE = "private"
1150
- }
1151
- interface AccessControlConfiguration {
1152
- dataMode: GuppyDataAccessMode;
1153
- tierLimit?: number;
1154
- showAccessLevelControl?: boolean;
1155
- }
1156
- interface CohortBuilderConfiguration extends Gen3AppConfigData {
1157
- tabsLayout?: 'left' | 'right' | 'center';
1158
- sharedFilters?: SharedFieldConfiguration;
1159
- explorerConfig: Array<CohortPanelConfiguration>;
1160
- accessControl?: AccessControlConfiguration;
1161
- }
1162
- interface CohortBuilderProps extends Omit<CohortBuilderConfiguration, 'sharedFilters'> {
1163
- sharedFiltersMap: SharedFieldMapping | null;
1164
- }
1165
-
1166
1595
  declare const CohortBuilder: ({ explorerConfig, sharedFiltersMap, tabsLayout, }: CohortBuilderProps) => react_jsx_runtime.JSX.Element;
1167
1596
 
1168
1597
  declare const ExplorerTableDetailsPanelFactory: () => RenderFactoryTypedInstance<TableDetailsPanelProps>;
@@ -1203,6 +1632,20 @@ interface CohortManagerProps {
1203
1632
  declare const CohortManager: ({ index }: CohortManagerProps) => react_jsx_runtime.JSX.Element;
1204
1633
  //# sourceMappingURL=CohortManager.d.ts.map
1205
1634
 
1635
+ interface CohortBuilderTabCategoryConfig {
1636
+ readonly label: string;
1637
+ readonly queryOptions: {
1638
+ readonly indexType: string;
1639
+ };
1640
+ readonly facets: ReadonlyArray<string>;
1641
+ }
1642
+ type TabbedCohortBuilderFacetConfig = Record<string, CohortBuilderTabCategoryConfig>;
1643
+ interface TabbedCohortBuilderConfiguration {
1644
+ tabsConfiguration: TabbedCohortBuilderFacetConfig;
1645
+ index: string;
1646
+ }
1647
+ declare const TabbedCohortBuilder: ({ index, tabsConfiguration, }: TabbedCohortBuilderConfiguration) => react_jsx_runtime.JSX.Element;
1648
+
1206
1649
  interface GqlQueryEndpointProps {
1207
1650
  graphQLEndpoint?: string;
1208
1651
  }
@@ -1778,6 +2221,15 @@ declare const CrosswalkPage: ({ headerProps, footerProps, config, }: CrosswalkPa
1778
2221
 
1779
2222
  declare const CrosswalkPageGetServerSideProps: GetServerSideProps<NavPageLayoutProps>;
1780
2223
 
2224
+ interface TabbedCohortBuilderPageProps extends NavPageLayoutProps {
2225
+ configuration: TabbedCohortBuilderConfiguration;
2226
+ }
2227
+
2228
+ declare const TabbedCohortBuilderPage: ({ headerProps, footerProps, configuration, }: TabbedCohortBuilderPageProps) => JSX.Element;
2229
+ //# sourceMappingURL=TabbedCohortBuilderPage.d.ts.map
2230
+
2231
+ declare const TabbedCohortBuilderPageGetServerSideProps: GetServerSideProps<TabbedCohortBuilderPageProps>;
2232
+
1781
2233
  declare const TailwindConfig: (themer: any) => {
1782
2234
  important: string;
1783
2235
  content: string[];
@@ -1848,5 +2300,5 @@ declare function export_default$1(req: NextApiRequest, res: NextApiResponse): Pr
1848
2300
 
1849
2301
  declare function export_default(req: NextApiRequest, res: NextApiResponse): Promise<void>;
1850
2302
 
1851
- export { AISearchPageGetServerSideProps, AccessLevel, ActionBar, ActionButton, AdminAuthZPageGetServerSideProps, AiSearch, AISearchPage as AiSearchPage, AnalysisCenter, AnalysisCenterWithSections, AnalysisEditorPage, AnalysisEditorPageGetServerSideProps, AnalysisPage, AnalysisPageGetServerSideProps, AuthzPage, Banner, BaseModal, Charts, CohortBuilder, CohortManager, CollapsableSidebar, ColorThemePage, ColorThemePageGetServerSideProps, _default as ContentSource, CreateCredentialsAPIKeyModal, CrosswalkPage, CrosswalkPageGetServerSideProps, Custom404Page, DataLibraryPage, DataLibraryPageGetServerSideProps, DictionaryPage, DictionaryPageGetServerSideProps, DiscoveryCellRendererFactory, DiscoveryProvider as DiscoveryConfigProvider, DiscoveryIndexPanel, DiscoveryPage, DiscoveryPageGetServerSideProps, DiscoveryRowRendererFactory, DropdownButton, EnumFacetChart, ErrorCard, ExplorerPage, ExplorerPageGetServerSideProps, ExplorerPageGetServerSidePropsForConfigId, ExplorerTableCellRendererFactory, ExplorerTableDetailsPanelFactory, FirstTimeModal, Footer, Gen3Button, Gen3ButtonReverse, Gen3Link, Gen3ModalsProvider, Gen3Provider, GqlQueryEditor, Header, HoverLink, LandingPage, LandingPageGetServerSideProps, LoginButton, LoginPage, LoginPageGetServerSideProps, LoginPanel, LoginProvidersPanel, MinutesToMilliseconds, NavPageLayout, NavigationBar, NavigationButton, NoAccessModal, NotebookLitePage, NotebookLitePageGetStaticProps, ProfilePage, ProfilePageGetServerSideProps, ProfileProvider, ProtectedContent, QueryExpression, QueryExpressionContext, QueryExpressionSection, QueryPage, QueryPageGetServerSideProps, ReactECharts, ResourcesFilters, SPECIAL_CASE_FIELDS, SessionExpiredModal, StudyGroup, SubmissionPage, SubmissionPageGetServerSideProps, TagCloud, TailwindConfig, TopBar, UploadJSONButton, User$1 as User, Workspace, WorkspaceNoAccessPage, WorkspaceNoAccessPageServerSideProps, WorkspacePage, WorkspacePageGetServerSideProps, accessibleFieldName, export_default as analysisApiCohortDiscovery, capitalize, computeRowSpan, convertMinutesToMilliseconds, convertPathsToTree, convertSecondsToMilliseconds, create10ColorAccessibleContrast, create10ColorPallet, createMantineTheme, export_default$2 as credentialsLogin, export_default$1 as credentialsLogout, extractObjectKey, focusStyles, getCurrentUnixTimestamp, getNavPageLayoutPropsFromConfig, getParamsValueAsString, getTagInfo, hasOwnProperty, isArrayOfString, isPropertyKey, isTextTransform, processLabel, processRangeKeyLabel, registerCohortBuilderDefaultPreviewRenderers, registerCohortDiscoveryApp, registerCohortSimilarityApp, registerDefaultDiscoveryDataLoaders, registerDiscoveryDefaultCellRenderers, registerDiscoveryDefaultStudyPreviewRenderers, registerExplorerDefaultCellRenderers, registerMetadataSchemaApp, removeKey, resourcePathFromProjectID, export_default$3 as sessionLogout, export_default$4 as sessionToken, stripTrailingSlash, toDisplayName, truncateString, unixTimeToString, useDiscoveryContext, userHasMethodForServiceOnResource };
1852
- export type { AnalysisCenterSection, AnalysisCenterWithSectionsConfiguration, AnalysisPageLayoutProps, AnalysisToolConfiguration, AuthorizationValues, BannerLevelCategories, BannerProps, CellRenderFunctionProps, CellRendererFunctionProps, ChartProps, CohortBuilderConfiguration, CohortBuilderProps, CohortPanelConfiguration, DataAuthorization, DiscoveryConfig, ExplorerPageProps, Fonts, FooterProps, HeaderProps, LoginConfig, ModalsConfig, NavPageLayoutProps, NavigationProps, ProfileConfig, ReactEChartsProps, RegisteredIcons, RowRenderFunctionParams, SessionConfiguration, StudyDetailsField, SummaryChart, TableDetailsPanelProps, TagData, TagsConfig, TenStringArray, TopBarProps, UserAuthMapping, WorkspaceConfig };
2303
+ export { AISearchPageGetServerSideProps, AccessLevel, ActionBar, ActionButton, AdminAuthZPageGetServerSideProps, AiSearch, AISearchPage as AiSearchPage, AnalysisCenter, AnalysisCenterWithSections, AnalysisEditorPage, AnalysisEditorPageGetServerSideProps, AnalysisPage, AnalysisPageGetServerSideProps, AuthzPage, BAD_DATA_MESSAGE, Banner, BaseModal, Charts, CohortBuilder, CohortManager, CollapsableSidebar, ColorThemePage, ColorThemePageGetServerSideProps, _default as ContentSource, CreateCredentialsAPIKeyModal, CrosswalkPage, CrosswalkPageGetServerSideProps, Custom404Page, DAYS_IN_YEAR, DEFAULT_MAXIMUM, DEFAULT_MINIMUM, DEFAULT_VISIBLE_ITEMS, DataLibraryPage, DataLibraryPageGetServerSideProps, DictionaryPage, DictionaryPageGetServerSideProps, DiscoveryCellRendererFactory, DiscoveryProvider as DiscoveryConfigProvider, DiscoveryIndexPanel, DiscoveryPage, DiscoveryPageGetServerSideProps, DiscoveryRowRendererFactory, DropdownButton, EnumFacet, EnumFacetChart, ErrorCard, ExactValueFacet, ExplorerPage, ExplorerPageGetServerSideProps, ExplorerPageGetServerSidePropsForConfigId, ExplorerTableCellRendererFactory, ExplorerTableDetailsPanelFactory, FacetControlsHeader, FacetExpander, FacetSelector, FacetSortPanel, FacetTabs, FirstTimeModal, Footer, Gen3Button, Gen3ButtonReverse, Gen3Link, Gen3ModalsProvider, Gen3Provider, GqlQueryEditor, Header, HoverLink, LandingPage, LandingPageGetServerSideProps, 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, SessionExpiredModal, StudyGroup, SubmissionPage, SubmissionPageGetServerSideProps, TabbedCohortBuilder, TabbedCohortBuilderPage, TabbedCohortBuilderPageGetServerSideProps, TagCloud, TailwindConfig, TopBar, UploadJSONButton, User$1 as User, Workspace, WorkspaceNoAccessPage, WorkspaceNoAccessPageServerSideProps, WorkspacePage, WorkspacePageGetServerSideProps, accessibleFieldName, addIntersectionToIncludes, addUnion, export_default as analysisApiCohortDiscovery, buildNested, capitalize, classifyFacets, compareKeysAscending, compareKeysDescending, computeRowSpan, convertMinutesToMilliseconds, convertPathsToTree, convertSecondsToMilliseconds, convertToStringArray, create10ColorAccessibleContrast, create10ColorPallet, createMantineTheme, export_default$2 as credentialsLogin, export_default$1 as credentialsLogout, extractObjectKey, extractRangeValues, focusStyles, getAllFieldsFromFilterConfigs, getCurrentUnixTimestamp, getNavPageLayoutPropsFromConfig, getParamsValueAsString, getTagInfo, hasOwnProperty, isArrayOfString, isEnumFacetResponse, isPropertyKey, isTextTransform, mapFacetSortToSortType, processBucketData, processLabel, processRangeData, processRangeKeyLabel, registerCohortBuilderDefaultPreviewRenderers, registerCohortDiscoveryApp, registerCohortSimilarityApp, registerDefaultDiscoveryDataLoaders, registerDiscoveryDefaultCellRenderers, registerDiscoveryDefaultStudyPreviewRenderers, registerExplorerDefaultCellRenderers, registerMetadataSchemaApp, removeIntersectionFromEnum, removeKey, removeUnion, resourcePathFromProjectID, export_default$3 as sessionLogout, export_default$4 as sessionToken, stripTrailingSlash, toDisplayName, truncateString, unixTimeToString, updateFacetEnum, useClearFilters, useDiscoveryContext, useExtractEnumFilterValues, useExtractRangeFilterValues, useFieldNameToTitle, useGetFacetFilters, useUpdateFilters, userHasMethodForServiceOnResource };
2304
+ export type { AdvancedRangeFacetHooks, AllowableRange, AnalysisCenterSection, AnalysisCenterWithSectionsConfiguration, AnalysisPageLayoutProps, AnalysisToolConfiguration, AuthorizationValues, BannerLevelCategories, BannerProps, CellRenderFunctionProps, CellRendererFunctionProps, ChartProps, ClearFacetFunction, ClearFacetHook, ClearIndexedFacetFunction, CohortBuilderCategoryConfig, CohortBuilderConfiguration, CohortBuilderProps, CohortBuilderTabCategoryConfig, CohortPanelConfiguration, CustomFacetHooks, DataAuthorization, DiscoveryConfig, EnumChartProps, EnumFacetData, EnumFacetDataChangedFunction, EnumFacetDataHooks, EnumFacetResponse, EnumOperandValue, ExplorerPageProps, FacetCardProps, FacetCommonHooks, FacetDataHooks, FacetRequiredHooks, FacetResponse, FacetSortType, FacetType, FieldNameToTitleFunction, FieldToName, Fonts, FooterProps, FromToRange, FromToRangeValues, GetEnumFacetDataFunction, GetFacetCombineModeFunction, GetFacetDataFunction, GetRangeFacetDataFunction, GetRangeFacetWithDefinedRangesDataFunction, GetTotalCountsFunction, HeaderProps, LoginConfig, ModalsConfig, NavPageLayoutProps, NavigationProps, NumericFacetCardProps, NumericRangeFacetHooks, ProfileConfig, QueryOptions, RangeFacetHooks, RangeFacetResponse, RangeFromOp, RangeToOp, ReactEChartsProps, RegisteredIcons, RowRenderFunctionParams, SelectFacetFilterFunction, SelectedFields$1 as SelectedFields, SessionConfiguration, SetFacetCombineModeFunction, SortType, StudyDetailsField, SummaryChart, TabbedCohortBuilderConfiguration, TabbedCohortBuilderFacetConfig, TableDetailsPanelProps, TagData, TagsConfig, TenStringArray, TopBarProps, UpdateFacetFilterFunction, UpdateFacetFilterHook, UserAuthMapping, WorkspaceConfig };