@devtron-labs/devtron-fe-common-lib 1.17.0-pre-11 → 1.17.0-pre-12

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 (29) hide show
  1. package/dist/{@code-editor-DnpYWcPc.js → @code-editor-DFmS2vEy.js} +4175 -4096
  2. package/dist/{@common-rjsf-JwyVYjND.js → @common-rjsf-CCt-MtLa.js} +1 -1
  3. package/dist/Common/EmptyState/GenericEmptyState.d.ts +1 -1
  4. package/dist/Common/Types.d.ts +2 -0
  5. package/dist/Shared/Components/Icon/Icon.d.ts +1 -0
  6. package/dist/Shared/Components/Illustration/Illustration.d.ts +15 -0
  7. package/dist/Shared/Components/Illustration/IllustrationBase.d.ts +2 -0
  8. package/dist/Shared/Components/Illustration/index.d.ts +1 -0
  9. package/dist/Shared/Components/Illustration/types.d.ts +27 -0
  10. package/dist/Shared/Components/PortalContainer/PortalContainer.d.ts +5 -0
  11. package/dist/Shared/Components/PortalContainer/index.d.ts +1 -0
  12. package/dist/Shared/Components/Table/InternalTable.d.ts +2 -2
  13. package/dist/Shared/Components/Table/Table.component.d.ts +2 -2
  14. package/dist/Shared/Components/Table/TableContent.d.ts +2 -2
  15. package/dist/Shared/Components/Table/index.d.ts +1 -1
  16. package/dist/Shared/Components/Table/types.d.ts +56 -67
  17. package/dist/Shared/Components/Table/useTableWithKeyboardShortcuts.d.ts +2 -2
  18. package/dist/Shared/Components/Table/utils.d.ts +6 -6
  19. package/dist/Shared/Components/UserIdentifier/UserIdentifier.d.ts +1 -1
  20. package/dist/Shared/Components/UserIdentifier/types.d.ts +5 -0
  21. package/dist/Shared/Components/index.d.ts +2 -0
  22. package/dist/Shared/Helpers.d.ts +1 -0
  23. package/dist/assets/ic-list-bullets.91aab240.svg +4 -0
  24. package/dist/assets/img-code.fa00ae8e.webp +0 -0
  25. package/dist/assets/img-man-on-rocket.ab6bef97.webp +0 -0
  26. package/dist/assets/img-no-result.51284acb.webp +0 -0
  27. package/dist/index.js +643 -639
  28. package/package.json +3 -2
  29. package/dist/assets/empty-noresult@2x.022ec87c.png +0 -0
@@ -1,7 +1,7 @@
1
1
  import { j as n, at as y, av as k, au as M } from "./@vendor-DbxoIktR.js";
2
2
  import W, { forwardRef as J, useMemo as P } from "react";
3
3
  import V, { getDefaultRegistry as K } from "@rjsf/core";
4
- import { T as N, j as w, c as v, b as F, S as q, i as Y, a as G, d as C, e as z } from "./@code-editor-DnpYWcPc.js";
4
+ import { T as N, j as w, c as v, b as F, S as q, i as Y, a as G, d as C, e as z } from "./@code-editor-DFmS2vEy.js";
5
5
  import { getUiOptions as I, getTemplate as D, getSubmitButtonOptions as Q, ADDITIONAL_PROPERTY_FLAG as B, errorId as X, englishStringTranslator as Z, TranslatableString as ee, titleId as te, canExpand as ne, deepEquals as re } from "@rjsf/utils";
6
6
  import { ReactComponent as se } from "./assets/ic-add.cfaa779b.svg";
7
7
  import { ReactComponent as ae } from "./assets/ic-warning.ecf7ff97.svg";
@@ -1,3 +1,3 @@
1
1
  import { GenericEmptyStateType } from '../Types';
2
- declare const GenericEmptyState: ({ title, image, subTitle, isButtonAvailable, classname, styles, imageType, renderButton, imageClassName, children, SvgImage, noImage, layout, contentClassName, imageStyles, }: GenericEmptyStateType) => JSX.Element;
2
+ declare const GenericEmptyState: ({ title, image, subTitle, isButtonAvailable, classname, styles, imageType, renderButton, imageClassName, children, SvgImage, noImage, layout, contentClassName, imageStyles, imgName, }: GenericEmptyStateType) => JSX.Element;
3
3
  export default GenericEmptyState;
@@ -4,6 +4,7 @@ import { UserGroupDTO } from '../Pages/GlobalConfigurations';
4
4
  import { ImageComment, ReleaseTag } from './ImageTags.Types';
5
5
  import { MandatoryPluginBaseStateType, RegistryType, RuntimePluginVariables, Severity, PolicyBlockInfo, TargetPlatformItemDTO, ComponentLayoutType, StatusType, DocLinkProps, DeploymentStrategyType } from '../Shared';
6
6
  import { ACTION_STATE, DEPLOYMENT_WINDOW_TYPE, DockerConfigOverrideType, RefVariableType, SortingOrder, TaskErrorObj, VariableTypeFormat } from '.';
7
+ import { IllustrationName } from '../Shared/Components';
7
8
  /**
8
9
  * Generic response type object with support for overriding the result type
9
10
  *
@@ -118,6 +119,7 @@ export interface InfoIconTippyProps<T extends boolean = false> extends Pick<Tipp
118
119
  }
119
120
  export interface GenericEmptyStateType {
120
121
  title: ReactNode;
122
+ imgName?: IllustrationName;
121
123
  image?: any;
122
124
  classname?: string;
123
125
  subTitle?: ReactNode;
@@ -134,6 +134,7 @@ export declare const iconMap: {
134
134
  'ic-lightning-fill': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
135
135
  'ic-lightning': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
136
136
  'ic-linked-build-color': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
137
+ 'ic-list-bullets': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
137
138
  'ic-livspace': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
138
139
  'ic-logout': import('react').FunctionComponent<import('react').SVGProps<SVGSVGElement>>;
139
140
  'ic-logs': 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 {};
@@ -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,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;
@@ -1,2 +1,2 @@
1
1
  import { UserIdentifierProps } from './types';
2
- export declare const UserIdentifier: ({ identifier, children, rootClassName, tooltipContent, isUserGroup, }: UserIdentifierProps) => JSX.Element;
2
+ export declare const UserIdentifier: ({ identifier, children, rootClassName, tooltipContent, isUserGroup, displayYouLabelForCurrentUser, }: UserIdentifierProps) => JSX.Element;
@@ -8,4 +8,9 @@ export interface UserIdentifierProps {
8
8
  * @description - If given, would show tooltip on div containing avatar, email and children
9
9
  */
10
10
  tooltipContent?: string;
11
+ /**
12
+ * Controls whether to display "You" text for the current user
13
+ * @default true
14
+ */
15
+ displayYouLabelForCurrentUser?: boolean;
11
16
  }
@@ -50,6 +50,7 @@ export * from './GraphVisualizer';
50
50
  export * from './Header';
51
51
  export * from './Icon';
52
52
  export * from './IframeContainer';
53
+ export * from './Illustration';
53
54
  export * from './ImageCard';
54
55
  export * from './ImageCardAccordion';
55
56
  export * from './ImageChipCell';
@@ -67,6 +68,7 @@ export * from './NumbersCount';
67
68
  export * from './PhoneInput';
68
69
  export * from './Plugin';
69
70
  export * from './Popover';
71
+ export * from './PortalContainer';
70
72
  export * from './ProgressBar';
71
73
  export { default as QRCode } from './QRCode';
72
74
  export * from './ReactSelect';
@@ -29,6 +29,7 @@ export declare const getGitCommitInfo: (materialInfo: MaterialInfo) => GitTrigge
29
29
  export declare const stringComparatorBySortOrder: (a: string, b: string, sortOrder?: SortingOrder, isCaseSensitive?: boolean) => number;
30
30
  export declare const numberComparatorBySortOrder: (a: number, b: number, sortOrder?: SortingOrder) => number;
31
31
  export declare function versionComparatorBySortOrder(a: string, b: string, orderBy?: SortingOrder): number;
32
+ export declare const dateComparatorBySortOrder: (a: string | number | Date, b: string | number | Date, sortOrder?: SortingOrder) => number;
32
33
  export declare const getWebhookEventIcon: (eventName: WebhookEventNameType) => JSX.Element;
33
34
  export declare const yamlComparatorBySortOrder: (a: Pair, b: Pair, sortOrder?: SortingOrder) => number;
34
35
  export declare const useIntersection: (target: React.RefObject<Element> | Element | null, options?: IntersectionOptions, callback?: IntersectionChangeHandler) => boolean;
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="none" viewBox="0 0 24 24">
2
+ <path stroke="#3B444C" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M8.25 6h12m-12 6h12m-12 6h12" vector-effect="non-scaling-stroke"/>
3
+ <path fill="#3B444C" d="M4.125 7.125a1.125 1.125 0 1 0 0-2.25 1.125 1.125 0 0 0 0 2.25Zm0 6a1.125 1.125 0 1 0 0-2.25 1.125 1.125 0 0 0 0 2.25Zm0 6a1.125 1.125 0 1 0 0-2.25 1.125 1.125 0 0 0 0 2.25Z"/>
4
+ </svg>