@devtron-labs/devtron-fe-common-lib 1.17.0 → 1.18.0-pre-0

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 (112) hide show
  1. package/dist/{@code-editor-IalENjkh.js → @code-editor-BDktoNH9.js} +11049 -10196
  2. package/dist/@common-rjsf-B-rBhlAg.js +598 -0
  3. package/dist/{@framer-motion-j6RIjEIR.js → @framer-motion-BcOlP2tv.js} +1 -1
  4. package/dist/{@react-dates-BVyHiOGU.js → @react-dates-BkJF0N9I.js} +213 -213
  5. package/dist/{@react-select-BQNFZu0Y.js → @react-select-Dw-yFFvz.js} +1 -1
  6. package/dist/{@react-virtualized-sticky-tree-CuElh0mS.js → @react-virtualized-sticky-tree-YTxUTwpg.js} +1 -1
  7. package/dist/{@vendor-DbxoIktR.js → @vendor-Dkf3d5cm.js} +17434 -14725
  8. package/dist/Common/API/CoreAPI.d.ts +11 -0
  9. package/dist/Common/API/QueryClientProvider.d.ts +2 -0
  10. package/dist/Common/API/index.d.ts +2 -0
  11. package/dist/Common/API/reactQueryHooks.d.ts +6 -0
  12. package/dist/Common/Drawer/Drawer.d.ts +3 -2
  13. package/dist/Common/EmptyState/GenericEmptyState.d.ts +1 -1
  14. package/dist/Common/Hooks/UseIsTextTruncated/UseIsTextTruncated.d.ts +5 -0
  15. package/dist/Common/Hooks/UseIsTextTruncated/constants.d.ts +1 -0
  16. package/dist/Common/Hooks/UseIsTextTruncated/index.d.ts +1 -0
  17. package/dist/Common/Hooks/index.d.ts +1 -0
  18. package/dist/Common/Modals/Modal.d.ts +1 -2
  19. package/dist/Common/Modals/VisibleModal.d.ts +6 -8
  20. package/dist/Common/Modals/VisibleModal2.d.ts +4 -7
  21. package/dist/Common/RJSF/Form.d.ts +1 -1
  22. package/dist/Common/RJSF/constants.d.ts +1 -0
  23. package/dist/Common/RJSF/utils.d.ts +1 -1
  24. package/dist/Common/Tooltip/constants.d.ts +0 -1
  25. package/dist/Common/Types.d.ts +2 -0
  26. package/dist/Pages/ResourceBrowser/ResourceBrowser.Types.d.ts +0 -1
  27. package/dist/Shared/Components/ActionMenu/types.d.ts +2 -33
  28. package/dist/Shared/Components/Backdrop/Backdrop.d.ts +1 -1
  29. package/dist/Shared/Components/Backdrop/types.d.ts +2 -10
  30. package/dist/Shared/Components/Button/Button.component.d.ts +24 -12
  31. package/dist/Shared/Components/Button/types.d.ts +4 -0
  32. package/dist/Shared/Components/CollapsibleList/CollapsibleList.component.d.ts +3 -0
  33. package/dist/Shared/Components/ContextSwitcher/ContextSwitcher.d.ts +2 -0
  34. package/dist/Shared/Components/ContextSwitcher/index.d.ts +3 -0
  35. package/dist/Shared/Components/ContextSwitcher/types.d.ts +14 -0
  36. package/dist/Shared/Components/ContextSwitcher/utils.d.ts +5 -0
  37. package/dist/Shared/Components/DTFocusTrap/DTFocusTrap.d.ts +3 -0
  38. package/dist/Shared/Components/DTFocusTrap/index.d.ts +2 -0
  39. package/dist/Shared/Components/DTFocusTrap/types.d.ts +33 -0
  40. package/dist/Shared/Components/DocLink/types.d.ts +4 -0
  41. package/dist/Shared/Components/DocLink/utils.d.ts +2 -1
  42. package/dist/Shared/Components/Header/PageHeader.d.ts +1 -1
  43. package/dist/Shared/Components/Header/types.d.ts +2 -0
  44. package/dist/Shared/Components/Icon/Icon.d.ts +5 -0
  45. package/dist/Shared/Components/Illustration/Illustration.d.ts +15 -0
  46. package/dist/Shared/Components/Illustration/IllustrationBase.d.ts +2 -0
  47. package/dist/Shared/Components/Illustration/index.d.ts +1 -0
  48. package/dist/Shared/Components/Illustration/types.d.ts +27 -0
  49. package/dist/Shared/Components/Popover/types.d.ts +4 -0
  50. package/dist/Shared/Components/Popover/usePopover.hook.d.ts +1 -1
  51. package/dist/Shared/Components/Popover/utils.d.ts +1 -1
  52. package/dist/Shared/Components/PortalContainer/PortalContainer.d.ts +5 -0
  53. package/dist/Shared/Components/PortalContainer/index.d.ts +1 -0
  54. package/dist/Shared/Components/Security/SecurityModal/config/Sidebar.d.ts +6 -3
  55. package/dist/Shared/Components/Security/SecurityModal/config/index.d.ts +1 -1
  56. package/dist/Shared/Components/Security/SecurityModal/index.d.ts +2 -2
  57. package/dist/Shared/Components/Security/SecurityModal/types.d.ts +0 -6
  58. package/dist/Shared/Components/Security/types.d.ts +5 -1
  59. package/dist/Shared/Components/SelectPicker/GroupedFilterSelectPicker.d.ts +2 -0
  60. package/dist/Shared/Components/SelectPicker/SelectPicker.component.d.ts +1 -1
  61. package/dist/Shared/Components/SelectPicker/index.d.ts +1 -0
  62. package/dist/Shared/Components/SelectPicker/type.d.ts +7 -2
  63. package/dist/Shared/Components/Table/InternalTable.d.ts +2 -2
  64. package/dist/Shared/Components/Table/Table.component.d.ts +2 -2
  65. package/dist/Shared/Components/Table/TableContent.d.ts +2 -2
  66. package/dist/Shared/Components/Table/index.d.ts +1 -1
  67. package/dist/Shared/Components/Table/types.d.ts +56 -67
  68. package/dist/Shared/Components/Table/useTableWithKeyboardShortcuts.d.ts +2 -2
  69. package/dist/Shared/Components/Table/utils.d.ts +6 -6
  70. package/dist/Shared/Components/TempAppWindow/TempAppWindow.d.ts +1 -0
  71. package/dist/Shared/Components/TempAppWindow/index.d.ts +1 -0
  72. package/dist/Shared/Components/TrailingItem/TrailingItem.component.d.ts +3 -0
  73. package/dist/Shared/Components/TrailingItem/index.d.ts +2 -0
  74. package/dist/Shared/Components/TrailingItem/types.d.ts +39 -0
  75. package/dist/Shared/Components/TreeView/TreeView.component.d.ts +3 -0
  76. package/dist/Shared/Components/TreeView/TreeViewNodeContent.d.ts +3 -0
  77. package/dist/Shared/Components/TreeView/constants.d.ts +4 -0
  78. package/dist/Shared/Components/TreeView/index.d.ts +2 -0
  79. package/dist/Shared/Components/TreeView/types.d.ts +204 -0
  80. package/dist/Shared/Components/TreeView/utils.d.ts +22 -0
  81. package/dist/Shared/Components/UserIdentifier/UserIdentifier.d.ts +1 -1
  82. package/dist/Shared/Components/UserIdentifier/types.d.ts +5 -0
  83. package/dist/Shared/Components/index.d.ts +5 -0
  84. package/dist/Shared/Helpers.d.ts +2 -2
  85. package/dist/Shared/Hooks/index.d.ts +1 -0
  86. package/dist/Shared/Hooks/useIsSecureConnection/index.d.ts +1 -0
  87. package/dist/Shared/Hooks/useIsSecureConnection/useIsSecureConnection.d.ts +1 -0
  88. package/dist/Shared/Hooks/useUserPreferences/constants.d.ts +2 -0
  89. package/dist/Shared/Hooks/useUserPreferences/index.d.ts +1 -1
  90. package/dist/Shared/Hooks/useUserPreferences/service.d.ts +22 -2
  91. package/dist/Shared/Hooks/useUserPreferences/types.d.ts +24 -11
  92. package/dist/Shared/Hooks/useUserPreferences/useUserPrefrences.d.ts +5 -3
  93. package/dist/Shared/Hooks/useUserPreferences/utils.d.ts +3 -4
  94. package/dist/Shared/Providers/MainContextProvider/index.d.ts +1 -1
  95. package/dist/Shared/Providers/MainContextProvider/types.d.ts +18 -0
  96. package/dist/Shared/types.d.ts +0 -8
  97. package/dist/assets/@code-editor.css +1 -1
  98. package/dist/assets/@common-rjsf.css +1 -1
  99. package/dist/assets/ic-activity.abf111c7.svg +3 -0
  100. package/dist/assets/ic-folder.8038c019.svg +3 -0
  101. package/dist/assets/ic-helm-app.a20cfeb3.svg +4 -0
  102. package/dist/assets/ic-list-bullets.91aab240.svg +4 -0
  103. package/dist/assets/ic-namespace.8980221f.svg +3 -0
  104. package/dist/assets/img-code.fa00ae8e.webp +0 -0
  105. package/dist/assets/img-man-on-rocket.ab6bef97.webp +0 -0
  106. package/dist/assets/img-no-result.51284acb.webp +0 -0
  107. package/dist/index.d.ts +22 -0
  108. package/dist/index.js +811 -792
  109. package/package.json +7 -3
  110. package/dist/@common-rjsf-ChkYseh5.js +0 -609
  111. package/dist/assets/empty-noresult@2x.022ec87c.png +0 -0
  112. package/dist/assets/ic-errorInfo.d8d674b8.svg +0 -23
@@ -2,6 +2,7 @@ import { IconBaseProps } from './types';
2
2
  export declare const iconMap: {
3
3
  'ic-73strings': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
4
4
  'ic-aborted': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
5
+ 'ic-activity': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
5
6
  'ic-add': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
6
7
  'ic-amazon-eks': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
7
8
  'ic-apica': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -92,6 +93,7 @@ export declare const iconMap: {
92
93
  'ic-flask': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
93
94
  'ic-folder-color': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
94
95
  'ic-folder-user': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
96
+ 'ic-folder': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
95
97
  'ic-gavel': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
96
98
  'ic-gear': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
97
99
  'ic-gift-gradient': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -109,6 +111,7 @@ export declare const iconMap: {
109
111
  'ic-heart-green': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
110
112
  'ic-heart-red-animated': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
111
113
  'ic-heart-red': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
114
+ 'ic-helm-app': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
112
115
  'ic-helm': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
113
116
  'ic-help-filled': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
114
117
  'ic-help-outline': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -131,6 +134,7 @@ export declare const iconMap: {
131
134
  'ic-lightning-fill': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
132
135
  'ic-lightning': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
133
136
  'ic-linked-build-color': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
137
+ 'ic-list-bullets': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
134
138
  'ic-livspace': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
135
139
  'ic-logout': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
136
140
  'ic-logs': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -147,6 +151,7 @@ export declare const iconMap: {
147
151
  'ic-mobile': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
148
152
  'ic-monitoring': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
149
153
  'ic-more-vertical': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
154
+ 'ic-namespace': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
150
155
  'ic-new': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
151
156
  'ic-node-script': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
152
157
  'ic-oidc': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
@@ -0,0 +1,15 @@
1
+ import { IllustrationBaseProps } from './types';
2
+ export declare const illustrationMap: {
3
+ 'img-code': string;
4
+ 'img-man-on-rocket': string;
5
+ 'img-no-result': string;
6
+ };
7
+ export type IllustrationName = keyof typeof illustrationMap;
8
+ export interface IllustrationProps extends Omit<IllustrationBaseProps, 'name' | 'illustrationMap'> {
9
+ /**
10
+ * The name of the illustration to render.
11
+ * @note The component will return either an img component or an SVG component based on the type of illustration (.svg, .webp)
12
+ */
13
+ name: keyof typeof illustrationMap;
14
+ }
15
+ export declare const Illustration: (props: IllustrationProps) => JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { IllustrationBaseProps } from './types';
2
+ export declare const IllustrationBase: ({ name, illustrationMap, dataTestId, imageProps, svgProps, }: IllustrationBaseProps) => JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './Illustration';
@@ -0,0 +1,27 @@
1
+ import { FC, SVGProps } from 'react';
2
+ type IllustrationMap = Record<string, FC<SVGProps<SVGSVGElement>> | string>;
3
+ export interface IllustrationBaseProps {
4
+ /**
5
+ * The name of the illustration to render.
6
+ * @note The component will return either an img component or an SVG component based on the type of illustration (.svg, .webp)
7
+ */
8
+ name: keyof IllustrationMap;
9
+ /**
10
+ * A map containing all available illustrations.
11
+ */
12
+ illustrationMap: IllustrationMap;
13
+ /**
14
+ * A unique identifier for testing purposes, typically used in test automation.
15
+ */
16
+ dataTestId?: string;
17
+ /**
18
+ * Additional props to pass to the image element.
19
+ * @note This prop is only used when the illustration is a .webp image.
20
+ */
21
+ imageProps?: Omit<React.ImgHTMLAttributes<HTMLImageElement>, 'src'>;
22
+ /**
23
+ * Additional props to pass to the SVG element.
24
+ */
25
+ svgProps?: React.SVGProps<SVGSVGElement>;
26
+ }
27
+ export {};
@@ -56,6 +56,10 @@ export interface UsePopoverProps {
56
56
  * @default 'menu'
57
57
  */
58
58
  variant?: 'menu' | 'overlay';
59
+ /**
60
+ * Disable popover close
61
+ */
62
+ disableClose?: boolean;
59
63
  }
60
64
  /**
61
65
  * Represents the return type of the `usePopover` hook, providing properties and methods
@@ -1,2 +1,2 @@
1
1
  import { UsePopoverProps, UsePopoverReturnType } from './types';
2
- export declare const usePopover: ({ id, position, alignment, width, variant, onOpen, onPopoverKeyDown, onTriggerKeyDown, }: UsePopoverProps) => UsePopoverReturnType;
2
+ export declare const usePopover: ({ id, position, alignment, width, variant, onOpen, onPopoverKeyDown, onTriggerKeyDown, disableClose, }: UsePopoverProps) => UsePopoverReturnType;
@@ -88,5 +88,5 @@ export declare const getPopoverActualPositionAlignment: ({ position, alignment,
88
88
  popoverRect: DOMRect;
89
89
  }) => {
90
90
  fallbackPosition: "top" | "bottom" | "right" | "left";
91
- fallbackAlignment: "middle" | "end" | "start";
91
+ fallbackAlignment: "start" | "middle" | "end";
92
92
  };
@@ -0,0 +1,5 @@
1
+ import { PropsWithChildren } from 'react';
2
+ export declare const PortalContainer: ({ condition, portalParentId, children, }: PropsWithChildren<{
3
+ condition?: boolean;
4
+ portalParentId: string;
5
+ }>) => import('react').ReactPortal;
@@ -0,0 +1 @@
1
+ export * from './PortalContainer';
@@ -1,3 +1,6 @@
1
- import { ScanCategoriesWithLicense } from '../../types';
2
- import { SidebarDataType } from '../types';
3
- export declare const getSidebarData: (categoriesConfig: Record<ScanCategoriesWithLicense, boolean>) => SidebarDataType[];
1
+ import { TreeViewProps } from '../../../TreeView';
2
+ import { GetSidebarDataParamsType } from '../../types';
3
+ import { SidebarDataChildType } from '../types';
4
+ export declare const getSecurityModalSidebarId: ({ category, subCategory }: SidebarDataChildType["value"]) => string;
5
+ export declare const getSecurityModalSidebarChildFromId: (id: string) => SidebarDataChildType["value"];
6
+ export declare const getSidebarData: ({ imageScan, codeScan, kubernetesManifest, imageScanLicenseRisks, selectedId, scanResult, }: GetSidebarDataParamsType) => TreeViewProps["nodes"];
@@ -1,4 +1,4 @@
1
1
  export { getProgressingStateForStatus } from './ImageScan';
2
2
  export { getInfoCardData } from './InfoCard';
3
- export { getSidebarData } from './Sidebar';
3
+ export { getSecurityModalSidebarChildFromId, getSecurityModalSidebarId, getSidebarData } from './Sidebar';
4
4
  export { getTableData } from './Table';
@@ -1,7 +1,7 @@
1
- export { getProgressingStateForStatus, getSidebarData } from './config';
1
+ export { getProgressingStateForStatus, getSecurityModalSidebarChildFromId, getSecurityModalSidebarId, getSidebarData, } from './config';
2
2
  export { CATEGORY_LABELS } from './constants';
3
3
  export { default as SecurityModal } from './SecurityModal';
4
4
  export { getSecurityScan } from './service';
5
- export type { GetResourceScanDetailsPayloadType, GetResourceScanDetailsResponseType, ScanResultDTO, SidebarDataChildType, SidebarDataType, SidebarPropsType, } from './types';
5
+ export type { GetResourceScanDetailsPayloadType, GetResourceScanDetailsResponseType, ScanResultDTO, SidebarDataChildType, SidebarPropsType, } from './types';
6
6
  export { SeveritiesDTO } from './types';
7
7
  export { getSecurityScanSeveritiesCount, getTotalVulnerabilityCount, parseGetResourceScanDetailsResponse, } from './utils';
@@ -224,12 +224,6 @@ export type SidebarDataChildType = {
224
224
  subCategory: ScanSubCategories;
225
225
  };
226
226
  };
227
- export type SidebarDataType = {
228
- label: string;
229
- isExpanded: boolean;
230
- children: NonNullable<SidebarDataChildType[]>;
231
- hideInHelmApp?: boolean;
232
- };
233
227
  export type EmptyStateType = Pick<GenericEmptyStateType, 'image' | 'SvgImage' | 'subTitle' | 'title' | 'children'>;
234
228
  export declare const VulnerabilityState: {
235
229
  readonly [-1]: "Failed";
@@ -1,4 +1,4 @@
1
- import { CATEGORIES, SUB_CATEGORIES } from './SecurityModal/types';
1
+ import { CATEGORIES, ScanResultDTO, SUB_CATEGORIES } from './SecurityModal/types';
2
2
  export type ScanCategories = (typeof CATEGORIES)[keyof typeof CATEGORIES];
3
3
  export type ScanSubCategories = (typeof SUB_CATEGORIES)[keyof typeof SUB_CATEGORIES];
4
4
  export type ScanCategoriesWithLicense = ScanCategories | 'imageScanLicenseRisks';
@@ -16,4 +16,8 @@ export interface SecurityConfigType {
16
16
  codeScan?: SecurityConfigCategoryType;
17
17
  kubernetesManifest?: SecurityConfigCategoryType;
18
18
  }
19
+ export interface GetSidebarDataParamsType extends Record<ScanCategoriesWithLicense, boolean> {
20
+ selectedId: string;
21
+ scanResult: ScanResultDTO;
22
+ }
19
23
  export {};
@@ -0,0 +1,2 @@
1
+ import { GroupedFilterSelectPickerProps } from './type';
2
+ export declare const GroupedFilterSelectPicker: <T extends string | number>({ id, filterSelectPickerPropsMap, isFilterApplied, ...restProps }: GroupedFilterSelectPickerProps<T>) => JSX.Element;
@@ -133,5 +133,5 @@ import { SelectPickerProps } from './type';
133
133
  * />
134
134
  * ```
135
135
  */
136
- declare const SelectPicker: <OptionValue, IsMulti extends boolean>({ error, icon, helperText, placeholder, label, showSelectedOptionIcon, size, disabledTippyContent, showSelectedOptionsCount, menuSize, optionListError, reloadOptionList, menuPosition, variant, disableDescriptionEllipsis, multiSelectProps, isMulti, name, classNamePrefix, shouldRenderCustomOptions, isSearchable, selectRef: refFromConsumer, shouldMenuAlignRight, fullWidth, customSelectedOptionsCount, menuListFooterConfig, isCreatable, onCreateOption, closeMenuOnSelect, shouldShowNoOptionsMessage, shouldRenderTextArea, onKeyDown, shouldHideMenu, warningText, layout, ariaLabel, borderConfig, borderRadiusConfig, labelTippyCustomizedConfig, labelTooltipConfig, hideFormFieldInfo, ...props }: SelectPickerProps<OptionValue, IsMulti>) => JSX.Element;
136
+ declare const SelectPicker: <OptionValue, IsMulti extends boolean>({ error, icon, helperText, placeholder, label, showSelectedOptionIcon, size, disabledTippyContent, showSelectedOptionsCount, menuSize, optionListError, reloadOptionList, menuPosition, variant, disableDescriptionEllipsis, multiSelectProps, isMulti, name, classNamePrefix, shouldRenderCustomOptions, isSearchable, selectRef: refFromConsumer, shouldMenuAlignRight, fullWidth, customSelectedOptionsCount, menuListFooterConfig, isCreatable, onCreateOption, closeMenuOnSelect, shouldShowNoOptionsMessage, shouldRenderTextArea, onKeyDown, shouldHideMenu, warningText, layout, ariaLabel, borderConfig, borderRadiusConfig, labelTippyCustomizedConfig, labelTooltipConfig, hideFormFieldInfo, autoFocus, ...props }: SelectPickerProps<OptionValue, IsMulti>) => JSX.Element;
137
137
  export default SelectPicker;
@@ -1,5 +1,6 @@
1
1
  export { ValueContainerWithLoadingShimmer } from './common';
2
2
  export { default as FilterSelectPicker } from './FilterSelectPicker';
3
+ export * from './GroupedFilterSelectPicker';
3
4
  export { default as SelectPicker } from './SelectPicker.component';
4
5
  export * from './SelectPickerTextArea.component';
5
6
  export * from './type';
@@ -6,6 +6,7 @@ import { ServerErrors } from '../../../Common/ServerError';
6
6
  import { TooltipProps } from '../../../Common/Tooltip';
7
7
  import { OptionType } from '../../../Common/Types';
8
8
  import { ComponentSizeType } from '../../constants';
9
+ import { ActionMenuProps } from '../ActionMenu';
9
10
  import { ButtonComponentType, ButtonProps, ButtonVariantType } from '../Button';
10
11
  import { FormFieldWrapperProps } from '../FormFieldWrapper/types';
11
12
  export interface SelectPickerOptionType<OptionValue = string | number> extends OptionType<OptionValue, ReactNode> {
@@ -100,7 +101,7 @@ export declare enum SelectPickerVariantType {
100
101
  BORDER_LESS = "border-less",
101
102
  COMPACT = "compact"
102
103
  }
103
- export type SelectPickerProps<OptionValue = number | string, IsMulti extends boolean = false> = Pick<SelectProps<OptionValue, IsMulti>, 'name' | 'classNamePrefix' | 'options' | 'value' | 'onChange' | 'isSearchable' | 'isClearable' | 'hideSelectedOptions' | 'controlShouldRenderValue' | 'closeMenuOnSelect' | 'isDisabled' | 'isLoading' | 'required' | 'isOptionDisabled' | 'placeholder' | 'menuPosition' | 'getOptionLabel' | 'getOptionValue' | 'isOptionSelected' | 'menuIsOpen' | 'onMenuOpen' | 'onMenuClose' | 'autoFocus' | 'onBlur' | 'onKeyDown' | 'formatOptionLabel' | 'onInputChange' | 'inputValue' | 'filterOption' | 'noOptionsMessage' | 'defaultMenuIsOpen'> & Partial<Pick<SelectProps<OptionValue, IsMulti>, 'shouldRenderCustomOptions' | 'renderCustomOptions' | 'icon' | 'showSelectedOptionIcon' | 'renderOptionsFooter' | 'shouldRenderTextArea'>> & Required<Pick<SelectProps<OptionValue, IsMulti>, 'inputId'>> & Partial<Pick<CreatableProps<SelectPickerOptionType<OptionValue>, IsMulti, GroupBase<SelectPickerOptionType<OptionValue>>>, 'onCreateOption' | 'formatCreateLabel' | 'menuPortalTarget'>> & Omit<FormFieldWrapperProps, 'children'> & {
104
+ export type SelectPickerProps<OptionValue = number | string, IsMulti extends boolean = false> = Pick<SelectProps<OptionValue, IsMulti>, 'name' | 'classNamePrefix' | 'options' | 'value' | 'onChange' | 'isSearchable' | 'isClearable' | 'hideSelectedOptions' | 'controlShouldRenderValue' | 'closeMenuOnSelect' | 'isDisabled' | 'isLoading' | 'required' | 'isOptionDisabled' | 'placeholder' | 'menuPosition' | 'getOptionLabel' | 'getOptionValue' | 'isOptionSelected' | 'menuIsOpen' | 'onMenuOpen' | 'onMenuClose' | 'autoFocus' | 'onBlur' | 'onKeyDown' | 'formatOptionLabel' | 'onInputChange' | 'inputValue' | 'filterOption' | 'noOptionsMessage' | 'defaultMenuIsOpen' | 'onFocus'> & Partial<Pick<SelectProps<OptionValue, IsMulti>, 'shouldRenderCustomOptions' | 'renderCustomOptions' | 'icon' | 'showSelectedOptionIcon' | 'renderOptionsFooter' | 'shouldRenderTextArea'>> & Required<Pick<SelectProps<OptionValue, IsMulti>, 'inputId'>> & Partial<Pick<CreatableProps<SelectPickerOptionType<OptionValue>, IsMulti, GroupBase<SelectPickerOptionType<OptionValue>>>, 'onCreateOption' | 'formatCreateLabel' | 'menuPortalTarget'>> & Omit<FormFieldWrapperProps, 'children'> & {
104
105
  /**
105
106
  * Config for the footer at the bottom of menu list. It is sticky by default
106
107
  *
@@ -215,9 +216,13 @@ export type SelectPickerProps<OptionValue = number | string, IsMulti extends boo
215
216
  export type SelectPickerGroupHeadingProps<OptionValue> = GroupHeadingProps<SelectPickerOptionType<OptionValue>> & {
216
217
  isGroupHeadingSelectable: boolean;
217
218
  };
218
- export interface FilterSelectPickerProps extends Required<Pick<SelectPickerProps<number | string, true>, 'options' | 'isDisabled' | 'placeholder' | 'isLoading'>>, Pick<SelectPickerProps<number | string, true>, 'selectRef' | 'inputId' | 'menuPosition' | 'autoFocus' | 'shouldMenuAlignRight' | 'optionListError' | 'reloadOptionList' | 'getOptionValue' | 'isOptionDisabled'> {
219
+ export interface FilterSelectPickerProps extends Required<Pick<SelectPickerProps<number | string, true>, 'options' | 'isDisabled' | 'placeholder' | 'isLoading'>>, Pick<SelectPickerProps<number | string, true>, 'selectRef' | 'inputId' | 'menuPosition' | 'autoFocus' | 'shouldMenuAlignRight' | 'optionListError' | 'reloadOptionList' | 'getOptionValue' | 'isOptionDisabled' | 'onMenuClose' | 'menuIsOpen' | 'onKeyDown'> {
219
220
  appliedFilterOptions: SelectPickerOptionType[];
220
221
  handleApplyFilter: (filtersToApply: SelectPickerOptionType<number | string>[]) => void;
221
222
  }
222
223
  export type SelectPickerTextAreaProps = Omit<SelectPickerProps<string, false>, 'selectRef' | 'inputValue' | 'onInputChange' | 'controlShouldRenderValue' | 'onKeyDown' | 'onCreateOption' | 'shouldRenderTextArea'> & Pick<ResizableTagTextAreaProps, 'maxHeight' | 'minHeight' | 'refVar' | 'dependentRefs'>;
224
+ export interface GroupedFilterSelectPickerProps<T extends string | number = string | number> extends Omit<ActionMenuProps<T>, 'onClick' | 'disableDescriptionEllipsis' | 'children' | 'buttonProps' | 'isSearchable'> {
225
+ isFilterApplied?: boolean;
226
+ filterSelectPickerPropsMap: Record<T, Omit<FilterSelectPickerProps, 'autoFocus' | 'menuIsOpen' | 'onMenuClose' | 'onKeyDown'>>;
227
+ }
223
228
  export {};
@@ -1,3 +1,3 @@
1
- import { InternalTableProps } from './types';
2
- declare const InternalTable: ({ filtersVariant, filterData, rows, getRows, columns, ViewWrapper, resizableConfig, emptyStateConfig, additionalProps, areColumnsConfigurable, filter, setVisibleColumns, visibleColumns, stylesConfig, loading, bulkSelectionConfig, bulkSelectionReturnValue, handleClearBulkSelection, handleToggleBulkSelectionOnRow, paginationVariant, RowActionsOnHoverComponent, pageSizeOptions, clearFilters: userGivenUrlClearFilters, }: InternalTableProps) => JSX.Element;
1
+ import { FiltersTypeEnum, InternalTableProps } from './types';
2
+ declare const InternalTable: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>({ filtersVariant, filterData, rows, getRows, columns, ViewWrapper, resizableConfig, emptyStateConfig, additionalProps, areColumnsConfigurable, filter, setVisibleColumns, visibleColumns, stylesConfig, loading, bulkSelectionConfig, bulkSelectionReturnValue, handleClearBulkSelection, handleToggleBulkSelectionOnRow, paginationVariant, RowActionsOnHoverComponent, pageSizeOptions, clearFilters: userGivenUrlClearFilters, }: InternalTableProps<RowData, FilterVariant, AdditionalProps>) => JSX.Element;
3
3
  export default InternalTable;
@@ -1,3 +1,3 @@
1
- import { TableProps } from './types';
2
- declare const TableWrapper: (tableProps: TableProps) => JSX.Element;
1
+ import { FiltersTypeEnum, TableProps } from './types';
2
+ declare const TableWrapper: <RowData extends unknown = unknown, FilterVariant extends FiltersTypeEnum = FiltersTypeEnum.NONE, AdditionalProps extends Record<string, any> = {}>(tableProps: TableProps<RowData, FilterVariant, AdditionalProps>) => JSX.Element;
3
3
  export default TableWrapper;
@@ -1,3 +1,3 @@
1
- import { TableContentProps } from './types';
2
- declare const TableContent: ({ filterData, rows, resizableConfig, additionalProps, visibleColumns, stylesConfig, loading, bulkSelectionConfig, bulkSelectionReturnValue, handleClearBulkSelection, handleToggleBulkSelectionOnRow, paginationVariant, RowActionsOnHoverComponent, pageSizeOptions, filteredRows, areFilteredRowsLoading, }: TableContentProps) => JSX.Element;
1
+ import { FiltersTypeEnum, TableContentProps } from './types';
2
+ declare const TableContent: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>({ filterData, rows, resizableConfig, additionalProps, visibleColumns, stylesConfig, loading, bulkSelectionConfig, bulkSelectionReturnValue, handleClearBulkSelection, handleToggleBulkSelectionOnRow, paginationVariant, RowActionsOnHoverComponent, pageSizeOptions, filteredRows, areFilteredRowsLoading, }: TableContentProps<RowData, FilterVariant, AdditionalProps>) => JSX.Element;
3
3
  export default TableContent;
@@ -1,3 +1,3 @@
1
1
  export { default as Table } from './Table.component';
2
- export type { BulkActionsComponentProps as TableBulkActionsComponentProps, BulkOperationModalProps as TableBulkOperationModalProps, CellComponentProps as TableCellComponentProps, Column as TableColumnType, TableProps, ViewWrapperProps as TableViewWrapperProps, } from './types';
2
+ export type { BulkActionsComponentProps as TableBulkActionsComponentProps, BulkOperationModalProps as TableBulkOperationModalProps, CellComponentProps as TableCellComponentProps, Column as TableColumnType, TableProps, RowActionsOnHoverComponentProps as TableRowActionsOnHoverComponentProps, ViewWrapperProps as TableViewWrapperProps, } from './types';
3
3
  export { FiltersTypeEnum, PaginationEnum, SignalEnum as TableSignalEnum } from './types';
@@ -43,28 +43,28 @@ type BaseColumnType = {
43
43
  size: SizeType;
44
44
  horizontallySticky?: boolean;
45
45
  };
46
- interface AdditionalProps {
47
- [key: string]: unknown;
48
- }
49
- export type RowType = {
46
+ export type RowType<Data extends unknown> = {
50
47
  id: string;
51
- data: Record<string, unknown>;
48
+ data: Data;
52
49
  };
53
- export type RowsType = RowType[];
50
+ export type RowsType<Data extends unknown> = RowType<Data>[];
54
51
  export declare enum FiltersTypeEnum {
55
52
  STATE = "state",
56
53
  URL = "url",
57
54
  NONE = "none"
58
55
  }
59
- export interface CellComponentProps<T = FiltersTypeEnum.NONE> extends Pick<BaseColumnType, 'field'>, AdditionalProps {
56
+ export type CellComponentProps<RowData extends unknown = unknown, FilterVariant extends FiltersTypeEnum = FiltersTypeEnum.NONE, AdditionalProps extends Record<string, any> = {}> = Pick<BaseColumnType, 'field'> & AdditionalProps & {
60
57
  signals: SignalsType;
61
58
  value: unknown;
62
- row: RowType;
63
- filterData: T extends FiltersTypeEnum.NONE ? null : T extends FiltersTypeEnum.STATE ? UseFiltersReturnType : UseUrlFiltersReturnType<string>;
59
+ row: RowType<RowData>;
60
+ filterData: FilterVariant extends FiltersTypeEnum.NONE ? null : FilterVariant extends FiltersTypeEnum.STATE ? UseFiltersReturnType : UseUrlFiltersReturnType<string>;
64
61
  isRowActive: boolean;
65
- }
66
- export type Column = Pick<SortableTableHeaderCellProps, 'showTippyOnTruncate'> & BaseColumnType & {
67
- CellComponent?: FunctionComponent<CellComponentProps>;
62
+ };
63
+ export type RowActionsOnHoverComponentProps<RowData extends unknown = unknown, AdditionalProps extends Record<string, any> = {}> = {
64
+ row: RowType<RowData>;
65
+ } & AdditionalProps;
66
+ export type Column<RowData extends unknown = unknown, FilterVariant extends FiltersTypeEnum = FiltersTypeEnum.NONE, AdditionalProps extends Record<string, any> = {}> = Pick<SortableTableHeaderCellProps, 'showTippyOnTruncate'> & BaseColumnType & {
67
+ CellComponent?: FunctionComponent<CellComponentProps<RowData, FilterVariant, AdditionalProps>>;
68
68
  } & ({
69
69
  isSortable: true;
70
70
  /**
@@ -82,10 +82,10 @@ export interface BulkActionsComponentProps {
82
82
  bulkActionsData: unknown;
83
83
  }
84
84
  type BulkSelectionReturnValueType = ReturnType<typeof useBulkSelection>;
85
- export interface BulkOperationModalProps<T = string> extends Pick<BulkSelectionReturnValueType, 'isBulkSelectionApplied'> {
85
+ export interface BulkOperationModalProps<T extends string = string, RowData extends Record<string, any> = Record<string, any>> extends Pick<BulkSelectionReturnValueType, 'isBulkSelectionApplied'> {
86
86
  action: T;
87
87
  onClose: () => void;
88
- selections: RowsType | null;
88
+ selections: RowsType<RowData> | null;
89
89
  bulkOperationModalData: unknown;
90
90
  }
91
91
  type BulkSelectionConfigType = Pick<UseBulkSelectionProps<unknown>, 'getSelectAllDialogStatus'> & {
@@ -97,19 +97,34 @@ export declare enum PaginationEnum {
97
97
  INFINITE = "infinite",
98
98
  NOT_PAGINATED = "not-paginated"
99
99
  }
100
- export interface ConfigurableColumnsType {
101
- allColumns: Column[];
102
- visibleColumns: Column[];
103
- setVisibleColumns: Dispatch<SetStateAction<ConfigurableColumnsType['visibleColumns']>>;
100
+ export interface ConfigurableColumnsType<RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>> {
101
+ allColumns: Column<RowData, FilterVariant, AdditionalProps>[];
102
+ visibleColumns: Column<RowData, FilterVariant, AdditionalProps>[];
103
+ setVisibleColumns: Dispatch<SetStateAction<Column<RowData, FilterVariant, AdditionalProps>[]>>;
104
104
  }
105
105
  interface GetRowsProps extends Pick<UseFiltersReturnType, 'offset' | 'pageSize' | 'searchKey' | 'sortBy' | 'sortOrder'> {
106
106
  }
107
- type AdditionalFilterPropsType<T extends Exclude<FiltersTypeEnum, FiltersTypeEnum.NONE>> = T extends FiltersTypeEnum.URL ? Pick<UseUrlFiltersProps<string, unknown>, 'parseSearchParams' | 'localStorageKey' | 'redirectionMethod' | 'initialSortKey' | 'defaultPageSize'> : Pick<UseStateFiltersProps<string>, 'initialSortKey' | 'defaultPageSize'>;
108
- export type ViewWrapperProps<T = FiltersTypeEnum.STATE> = PropsWithChildren<(T extends FiltersTypeEnum.NONE ? {} : Pick<UseFiltersReturnType, 'offset' | 'handleSearch' | 'searchKey' | 'sortBy' | 'sortOrder' | 'clearFilters'>) & AdditionalProps & Partial<ConfigurableColumnsType> & {
107
+ type AdditionalFilterPropsType<T extends FiltersTypeEnum> = T extends FiltersTypeEnum.URL ? Pick<UseUrlFiltersProps<string, unknown>, 'parseSearchParams' | 'localStorageKey' | 'redirectionMethod' | 'initialSortKey' | 'defaultPageSize'> : T extends FiltersTypeEnum.STATE ? Pick<UseStateFiltersProps<string>, 'initialSortKey' | 'defaultPageSize'> : never;
108
+ export type ViewWrapperProps<RowData extends unknown = unknown, FilterVariant extends FiltersTypeEnum = FiltersTypeEnum.NONE, AdditionalProps extends Record<string, any> = {}> = PropsWithChildren<(FilterVariant extends FiltersTypeEnum.NONE ? {} : Pick<UseFiltersReturnType, 'offset' | 'handleSearch' | 'searchKey' | 'sortBy' | 'sortOrder' | 'clearFilters'>) & AdditionalProps & Partial<ConfigurableColumnsType<RowData, FilterVariant, AdditionalProps>> & {
109
109
  areRowsLoading: boolean;
110
- filteredRows: RowsType | null;
111
- } & (T extends FiltersTypeEnum.URL ? Pick<UseUrlFiltersReturnType<string>, 'updateSearchParams'> : {})>;
112
- export type InternalTableProps = Required<Pick<ConfigurableColumnsType, 'visibleColumns' | 'setVisibleColumns'>> & {
110
+ filteredRows: RowsType<RowData> | null;
111
+ } & (FilterVariant extends FiltersTypeEnum.URL ? Pick<UseUrlFiltersReturnType<string>, 'updateSearchParams'> : {})>;
112
+ type FilterConfig<FilterVariant extends FiltersTypeEnum, RowData extends unknown> = {
113
+ filtersVariant: FilterVariant;
114
+ /**
115
+ * Props for useUrlFilters/useStateFilters hooks
116
+ */
117
+ additionalFilterProps?: AdditionalFilterPropsType<FilterVariant>;
118
+ /**
119
+ * This func is used to filter the rows based on filter data.
120
+ * Only applicable if filtersVariant is NOT set to NONE
121
+ *
122
+ * If filter is only being used for sorting, then send `noop` in this prop
123
+ */
124
+ filter: FilterVariant extends FiltersTypeEnum.NONE ? null : (row: RowType<RowData>, filterData: UseFiltersReturnType) => boolean;
125
+ clearFilters?: FilterVariant extends FiltersTypeEnum.URL ? () => void : FilterVariant extends FiltersTypeEnum.STATE ? never : never;
126
+ };
127
+ export type InternalTableProps<RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>> = Required<Pick<ConfigurableColumnsType<RowData, FilterVariant, AdditionalProps>, 'visibleColumns' | 'setVisibleColumns'>> & {
113
128
  id: `table__${string}`;
114
129
  loading?: boolean;
115
130
  /**
@@ -118,13 +133,13 @@ export type InternalTableProps = Required<Pick<ConfigurableColumnsType, 'visible
118
133
  * For columns from backend: initialize as empty array and set loading
119
134
  * to true until API call completes.
120
135
  */
121
- columns: Column[];
136
+ columns: Column<RowData, FilterVariant, AdditionalProps>[];
122
137
  /** If bulk selections are not a concern omit this prop */
123
138
  bulkSelectionConfig?: BulkSelectionConfigType;
124
139
  emptyStateConfig: {
125
140
  noRowsConfig: Omit<GenericEmptyStateType, 'children'>;
126
141
  noRowsForFilterConfig?: Pick<GenericFilterEmptyStateProps, 'title' | 'subTitle'> & {
127
- clearFilters: () => void;
142
+ clearFilters?: () => void;
128
143
  };
129
144
  };
130
145
  filterData: UseFiltersReturnType | null;
@@ -144,18 +159,16 @@ export type InternalTableProps = Required<Pick<ConfigurableColumnsType, 'visible
144
159
  /**
145
160
  * Use this component to display additional content at the end of a row when it is hovered over.
146
161
  */
147
- RowActionsOnHoverComponent?: FunctionComponent<{
148
- row: RowType;
149
- }>;
162
+ RowActionsOnHoverComponent?: FunctionComponent<RowActionsOnHoverComponentProps<RowData, AdditionalProps>>;
150
163
  bulkSelectionReturnValue: BulkSelectionReturnValueType | null;
151
164
  handleClearBulkSelection: () => void;
152
- handleToggleBulkSelectionOnRow: (row: RowType) => void;
153
- ViewWrapper?: FunctionComponent<ViewWrapperProps>;
165
+ handleToggleBulkSelectionOnRow: (row: RowType<RowData>) => void;
166
+ ViewWrapper?: FunctionComponent<ViewWrapperProps<RowData, FilterVariant, AdditionalProps>>;
154
167
  } & ({
155
168
  /**
156
169
  * Direct rows data for frontend-only datasets like resource browser.
157
170
  */
158
- rows: RowsType;
171
+ rows: RowsType<RowData>;
159
172
  /**
160
173
  * Use `getRows` function instead for data that needs to be fetched from backend with pagination/sorting/filtering.
161
174
  */
@@ -163,43 +176,19 @@ export type InternalTableProps = Required<Pick<ConfigurableColumnsType, 'visible
163
176
  } | {
164
177
  rows?: never;
165
178
  /** NOTE: Sorting on frontend is only handled if rows is provided instead of getRows */
166
- getRows: (props: GetRowsProps) => Promise<RowsType>;
167
- }) & ({
168
- filtersVariant: FiltersTypeEnum.URL;
169
- /**
170
- * props for useUrlFilters/useStateFilters hooks
171
- */
172
- additionalFilterProps?: AdditionalFilterPropsType<FiltersTypeEnum.URL>;
173
- /**
174
- * This func is used to filter the rows based on filter data.
175
- * Only applicable if filtersVariant is NOT set to NONE
176
- *
177
- * If filter is only being used for sorting, then send `noop` in this prop
178
- */
179
- filter: (row: RowType, filterData: UseFiltersReturnType) => boolean;
180
- clearFilters?: () => void;
181
- } | {
182
- filtersVariant: FiltersTypeEnum.STATE;
183
- additionalFilterProps?: AdditionalFilterPropsType<FiltersTypeEnum.STATE>;
184
- filter: (row: RowType, filterData: UseFiltersReturnType) => boolean;
185
- clearFilters?: never;
186
- } | {
187
- filtersVariant: FiltersTypeEnum.NONE;
188
- additionalFilterProps?: never;
189
- filter?: never;
190
- clearFilters?: never;
179
+ getRows: (props: GetRowsProps) => Promise<RowsType<RowData>>;
191
180
  }) & ({
192
181
  paginationVariant: PaginationEnum.PAGINATED;
193
182
  pageSizeOptions?: PageSizeOption[];
194
183
  } | {
195
184
  paginationVariant: Omit<PaginationEnum, 'PAGINATED'>;
196
185
  pageSizeOptions?: never;
197
- });
198
- export type UseResizableTableConfigWrapperProps = Omit<InternalTableProps, 'resizableConfig'>;
199
- export type TableWithBulkSelectionProps = Omit<UseResizableTableConfigWrapperProps, 'bulkSelectionReturnValue' | 'handleClearBulkSelection' | 'handleToggleBulkSelectionOnRow'>;
200
- export type VisibleColumnsWrapperProps = Omit<TableWithBulkSelectionProps, 'visibleColumns' | 'setVisibleColumns'>;
201
- export type FilterWrapperProps = Omit<VisibleColumnsWrapperProps, 'filterData'>;
202
- export type TableProps = Pick<FilterWrapperProps, 'additionalFilterProps' | 'bulkSelectionConfig' | 'areColumnsConfigurable' | 'emptyStateConfig' | 'filtersVariant' | 'filter' | 'additionalProps' | 'columns' | 'getRows' | 'rows' | 'paginationVariant' | 'stylesConfig' | 'id' | 'RowActionsOnHoverComponent' | 'loading' | 'ViewWrapper' | 'pageSizeOptions' | 'clearFilters'>;
186
+ }) & FilterConfig<FilterVariant, RowData>;
187
+ export type UseResizableTableConfigWrapperProps<RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>> = Omit<InternalTableProps<RowData, FilterVariant, AdditionalProps>, 'resizableConfig'>;
188
+ export type TableWithBulkSelectionProps<RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>> = Omit<UseResizableTableConfigWrapperProps<RowData, FilterVariant, AdditionalProps>, 'bulkSelectionReturnValue' | 'handleClearBulkSelection' | 'handleToggleBulkSelectionOnRow'>;
189
+ export type VisibleColumnsWrapperProps<RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>> = Omit<TableWithBulkSelectionProps<RowData, FilterVariant, AdditionalProps>, 'visibleColumns' | 'setVisibleColumns'>;
190
+ export type FilterWrapperProps<RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>> = Omit<VisibleColumnsWrapperProps<RowData, FilterVariant, AdditionalProps>, 'filterData'>;
191
+ export type TableProps<RowData extends unknown = unknown, FilterVariant extends FiltersTypeEnum = FiltersTypeEnum.NONE, AdditionalProps extends Record<string, any> = {}> = Pick<FilterWrapperProps<RowData, FilterVariant, AdditionalProps>, 'additionalFilterProps' | 'bulkSelectionConfig' | 'areColumnsConfigurable' | 'emptyStateConfig' | 'filtersVariant' | 'filter' | 'additionalProps' | 'columns' | 'getRows' | 'rows' | 'paginationVariant' | 'stylesConfig' | 'id' | 'RowActionsOnHoverComponent' | 'loading' | 'ViewWrapper' | 'pageSizeOptions' | 'clearFilters'>;
203
192
  export type BulkActionStateType = string | null;
204
193
  export interface BulkSelectionActionWidgetProps extends Pick<BulkSelectionConfigType, 'BulkActionsComponent' | 'bulkActionsData'> {
205
194
  count: number;
@@ -208,13 +197,13 @@ export interface BulkSelectionActionWidgetProps extends Pick<BulkSelectionConfig
208
197
  /** If it is null, we can say no bulk action has been selected yet */
209
198
  setBulkActionState: Dispatch<SetStateAction<BulkActionStateType>>;
210
199
  }
211
- export type ConfigurableColumnsConfigType = Record<string, ConfigurableColumnsType['visibleColumns']>;
212
- export interface GetFilteringPromiseProps {
200
+ export type ConfigurableColumnsConfigType<RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>> = Record<string, ConfigurableColumnsType<RowData, FilterVariant, AdditionalProps>['visibleColumns']>;
201
+ export interface GetFilteringPromiseProps<RowData extends unknown> {
213
202
  searchSortTimeoutRef: React.MutableRefObject<number>;
214
- callback: () => Promise<RowsType> | RowsType;
203
+ callback: () => Promise<RowsType<RowData>> | RowsType<RowData>;
215
204
  }
216
- export interface TableContentProps extends Pick<InternalTableProps, 'filterData' | 'rows' | 'resizableConfig' | 'additionalProps' | 'visibleColumns' | 'stylesConfig' | 'loading' | 'bulkSelectionConfig' | 'bulkSelectionReturnValue' | 'handleClearBulkSelection' | 'handleToggleBulkSelectionOnRow' | 'paginationVariant' | 'RowActionsOnHoverComponent' | 'pageSizeOptions'> {
217
- filteredRows: RowsType;
205
+ export interface TableContentProps<RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>> extends Pick<InternalTableProps<RowData, FilterVariant, AdditionalProps>, 'filterData' | 'rows' | 'resizableConfig' | 'additionalProps' | 'visibleColumns' | 'stylesConfig' | 'loading' | 'bulkSelectionConfig' | 'bulkSelectionReturnValue' | 'handleClearBulkSelection' | 'handleToggleBulkSelectionOnRow' | 'paginationVariant' | 'RowActionsOnHoverComponent' | 'pageSizeOptions'> {
206
+ filteredRows: RowsType<RowData>;
218
207
  areFilteredRowsLoading: boolean;
219
208
  }
220
209
  export {};
@@ -1,5 +1,5 @@
1
- import { InternalTableProps, RowsType } from './types';
2
- declare const useTableWithKeyboardShortcuts: ({ bulkSelectionConfig, handleToggleBulkSelectionOnRow, bulkSelectionReturnValue, }: Pick<InternalTableProps, "bulkSelectionConfig" | "bulkSelectionReturnValue" | "handleToggleBulkSelectionOnRow">, visibleRows: RowsType, showPagination: boolean, bulkSelectionButtonRef: React.RefObject<HTMLLabelElement>) => {
1
+ import { FiltersTypeEnum, InternalTableProps, RowsType } from './types';
2
+ declare const useTableWithKeyboardShortcuts: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>({ bulkSelectionConfig, handleToggleBulkSelectionOnRow, bulkSelectionReturnValue, }: Pick<InternalTableProps<RowData, FilterVariant, AdditionalProps>, "bulkSelectionConfig" | "bulkSelectionReturnValue" | "handleToggleBulkSelectionOnRow">, visibleRows: RowsType<RowData>, showPagination: boolean, bulkSelectionButtonRef: React.RefObject<HTMLLabelElement>) => {
3
3
  activeRowIndex: number;
4
4
  setActiveRowIndex: import('react').Dispatch<import('react').SetStateAction<number>>;
5
5
  shortcutContainerProps: {
@@ -1,9 +1,9 @@
1
- import { Column, ConfigurableColumnsType, GetFilteringPromiseProps, RowsType, TableProps, UseFiltersReturnType } from './types';
2
- export declare const searchAndSortRows: (rows: TableProps["rows"], filter: TableProps["filter"], filterData: UseFiltersReturnType, comparator?: Column["comparator"]) => RowsType;
3
- export declare const getVisibleColumnsFromLocalStorage: ({ allColumns, id, }: Pick<ConfigurableColumnsType, "allColumns"> & Pick<TableProps, "id">) => Column[];
4
- export declare const setVisibleColumnsToLocalStorage: ({ id, visibleColumns, }: Pick<ConfigurableColumnsType, "visibleColumns"> & Pick<TableProps, "id">) => void;
5
- export declare const getVisibleColumns: ({ areColumnsConfigurable, columns, id, }: Pick<TableProps, "areColumnsConfigurable" | "columns" | "id">) => Column[];
6
- export declare const getFilteringPromise: ({ searchSortTimeoutRef, callback }: GetFilteringPromiseProps) => Promise<RowsType>;
1
+ import { Column, ConfigurableColumnsType, FiltersTypeEnum, GetFilteringPromiseProps, RowsType, TableProps, UseFiltersReturnType } from './types';
2
+ export declare const searchAndSortRows: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>(rows: TableProps<RowData, FilterVariant, AdditionalProps>["rows"], filter: TableProps<RowData, FilterVariant, AdditionalProps>["filter"], filterData: UseFiltersReturnType, comparator?: Column<RowData, FilterVariant, AdditionalProps>["comparator"]) => RowsType<RowData>;
3
+ export declare const getVisibleColumnsFromLocalStorage: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>({ allColumns, id, }: Pick<ConfigurableColumnsType<RowData, FilterVariant, AdditionalProps>, "allColumns"> & Pick<TableProps<RowData, FilterVariant, AdditionalProps>, "id">) => Column<RowData, FilterVariant, AdditionalProps>[];
4
+ export declare const setVisibleColumnsToLocalStorage: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>({ id, visibleColumns, }: Pick<ConfigurableColumnsType<RowData, FilterVariant, AdditionalProps>, "visibleColumns"> & Pick<TableProps<RowData, FilterVariant, AdditionalProps>, "id">) => void;
5
+ export declare const getVisibleColumns: <RowData extends unknown, FilterVariant extends FiltersTypeEnum, AdditionalProps extends Record<string, any>>({ areColumnsConfigurable, columns, id, }: Pick<TableProps<RowData, FilterVariant, AdditionalProps>, "areColumnsConfigurable" | "columns" | "id">) => Column<RowData, FilterVariant, AdditionalProps>[];
6
+ export declare const getFilteringPromise: <RowData extends unknown>({ searchSortTimeoutRef, callback, }: GetFilteringPromiseProps<RowData>) => Promise<RowsType<RowData>>;
7
7
  export declare const getStickyColumnConfig: (gridTemplateColumns: string, columnIndex: number) => {
8
8
  className: string;
9
9
  left: string;
@@ -0,0 +1 @@
1
+ export declare const TempAppWindow: () => JSX.Element;
@@ -0,0 +1 @@
1
+ export * from './TempAppWindow';
@@ -0,0 +1,3 @@
1
+ import { TrailingItemProps } from './types';
2
+ declare const TrailingItem: ({ type, config, variant }: TrailingItemProps) => JSX.Element;
3
+ export default TrailingItem;
@@ -0,0 +1,2 @@
1
+ export { default as TrailingItem } from './TrailingItem.component';
2
+ export * from './types';
@@ -0,0 +1,39 @@
1
+ import { ReactElement } from 'react';
2
+ import { OmitNever } from '../../types';
3
+ import { ButtonProps } from '../Button';
4
+ import { IconsProps } from '../Icon';
5
+ import { NumbersCountProps } from '../NumbersCount';
6
+ import { DTSwitchProps } from '../Switch';
7
+ export type ActionMenuItemIconType = Pick<IconsProps, 'name'> & {
8
+ /** @default 'N800' */
9
+ color?: IconsProps['color'];
10
+ };
11
+ export type TrailingItemType = {
12
+ type: 'icon';
13
+ config: ActionMenuItemIconType;
14
+ } | {
15
+ type: 'text';
16
+ config: {
17
+ value: string;
18
+ icon?: ActionMenuItemIconType;
19
+ };
20
+ } | {
21
+ type: 'counter';
22
+ config: {
23
+ value: NumbersCountProps['count'];
24
+ } & Pick<NumbersCountProps, 'isSelected'>;
25
+ } | {
26
+ type: 'switch';
27
+ config: Pick<DTSwitchProps, 'ariaLabel' | 'isChecked' | 'indeterminate' | 'isDisabled' | 'isLoading' | 'name' | 'onChange' | 'tooltipContent'>;
28
+ } | {
29
+ type: 'button';
30
+ config: OmitNever<Omit<Extract<ButtonProps, {
31
+ icon: ReactElement;
32
+ }>, 'size' | 'variant'>>;
33
+ };
34
+ export type TrailingItemProps = TrailingItemType & {
35
+ /**
36
+ * @default 'neutral'
37
+ */
38
+ variant?: 'neutral' | 'negative';
39
+ };
@@ -0,0 +1,3 @@
1
+ import { TreeViewProps } from './types';
2
+ declare const TreeView: <DataAttributeType = null>({ nodes, isControlled, expandedMap: expandedMapProp, selectedId, onToggle: onToggleProp, onSelect, depth, mode, flatNodeList: flatNodeListProp, getUpdateItemsRefMap: getUpdateItemsRefMapProp, variant, defaultExpandedMap, }: TreeViewProps<DataAttributeType>) => JSX.Element;
3
+ export default TreeView;
@@ -0,0 +1,3 @@
1
+ import { TreeViewNodeContentProps } from './types';
2
+ declare const TreeViewNodeContent: ({ startIconConfig, title, subtitle, type, customTooltipConfig, strikeThrough, isSelected, }: TreeViewNodeContentProps) => JSX.Element;
3
+ export default TreeViewNodeContent;
@@ -0,0 +1,4 @@
1
+ import { TreeViewProps } from './types';
2
+ export declare const DEFAULT_NO_ITEMS_TEXT = "No items found";
3
+ export declare const VARIANT_TO_BG_CLASS_MAP: Record<TreeViewProps['variant'], string>;
4
+ export declare const VARIANT_TO_HOVER_CLASS_MAP: Record<TreeViewProps['variant'], string>;
@@ -0,0 +1,2 @@
1
+ export { default as TreeView } from './TreeView.component';
2
+ export * from './types';