@devtron-labs/devtron-fe-common-lib 1.16.0-pre-5 → 1.16.0-pre-6

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 (61) hide show
  1. package/dist/{@code-editor-BM7Pz0Tl.js → @code-editor-DTcvYvJ3.js} +8367 -8117
  2. package/dist/{@common-rjsf-Blnhi_42.js → @common-rjsf-82zFxNP8.js} +1 -1
  3. package/dist/Common/Checkbox/Checkbox.d.ts +1 -1
  4. package/dist/Common/Constants.d.ts +2 -0
  5. package/dist/Common/Hooks/UseRegisterShortcut/UseRegisterShortcutProvider.d.ts +1 -1
  6. package/dist/Common/Hooks/UseRegisterShortcut/types.d.ts +19 -0
  7. package/dist/Common/Hooks/UseRegisterShortcut/utils.d.ts +1 -1
  8. package/dist/Common/Hooks/useStateFilters/types.d.ts +2 -2
  9. package/dist/Common/Hooks/useStateFilters/useStateFilters.d.ts +1 -1
  10. package/dist/Common/Hooks/useUrlFilters/index.d.ts +1 -0
  11. package/dist/Common/Hooks/useUrlFilters/types.d.ts +2 -1
  12. package/dist/Common/Hooks/useUrlFilters/useUrlFilters.d.ts +1 -1
  13. package/dist/Common/Modals/VisibleModal.d.ts +1 -0
  14. package/dist/Common/Modals/VisibleModal2.d.ts +1 -0
  15. package/dist/Common/Pagination/constants.d.ts +4 -0
  16. package/dist/Common/Pagination/index.d.ts +1 -0
  17. package/dist/Pages/ResourceBrowser/ResourceBrowser.Types.d.ts +35 -2
  18. package/dist/Pages/ResourceBrowser/constants.d.ts +14 -0
  19. package/dist/Pages/ResourceBrowser/service.d.ts +1 -1
  20. package/dist/Pages/ResourceBrowser/types.d.ts +17 -0
  21. package/dist/Shared/Components/BulkSelection/BulkSelection.d.ts +1 -1
  22. package/dist/Shared/Components/BulkSelection/types.d.ts +4 -9
  23. package/dist/Shared/Components/Button/Button.component.d.ts +376 -2
  24. package/dist/Shared/Components/Button/types.d.ts +4 -1
  25. package/dist/Shared/Components/Icon/Icon.d.ts +13 -0
  26. package/dist/Shared/Components/InfoBlock/constants.d.ts +2 -1
  27. package/dist/Shared/Components/Table/BulkSelectionActionWidget.d.ts +1 -1
  28. package/dist/Shared/Components/Table/InternalTable.d.ts +1 -1
  29. package/dist/Shared/Components/Table/TableContent.d.ts +3 -0
  30. package/dist/Shared/Components/Table/constants.d.ts +1 -0
  31. package/dist/Shared/Components/Table/index.d.ts +1 -1
  32. package/dist/Shared/Components/Table/types.d.ts +47 -20
  33. package/dist/Shared/Components/Table/useTableWithKeyboardShortcuts.d.ts +6 -1
  34. package/dist/Shared/Components/Table/utils.d.ts +5 -0
  35. package/dist/Shared/Components/index.d.ts +1 -0
  36. package/dist/Shared/Helpers.d.ts +2 -1
  37. package/dist/Shared/Providers/MainContextProvider/types.d.ts +2 -2
  38. package/dist/Shared/Services/types.d.ts +1 -0
  39. package/dist/Shared/types.d.ts +11 -1
  40. package/dist/assets/@code-editor.css +1 -1
  41. package/dist/assets/@common-rjsf.css +1 -1
  42. package/dist/assets/ic-bug.8a8dc1fc.svg +3 -0
  43. package/dist/assets/ic-check-all.fdea6b38.svg +5 -0
  44. package/dist/assets/ic-check-square.e355731d.svg +4 -0
  45. package/dist/assets/ic-clean-brush.c21cbe1e.svg +3 -0
  46. package/dist/assets/ic-container.92a4c33a.svg +3 -0
  47. package/dist/assets/ic-download.468a0cb7.svg +3 -0
  48. package/dist/assets/ic-file-code.0926d194.svg +3 -0
  49. package/dist/assets/ic-gavel.a3b064b5.svg +3 -0
  50. package/dist/assets/ic-info-filled-color.47953fcf.svg +8 -0
  51. package/dist/assets/ic-logs.d310db72.svg +3 -0
  52. package/dist/assets/{ic-minus.416da21b.svg → ic-minus.aac464f7.svg} +1 -1
  53. package/dist/assets/ic-pause-circle.f9405070.svg +3 -0
  54. package/dist/assets/ic-speedometer.3ecaae3b.svg +3 -0
  55. package/dist/assets/ic-two-cubes.056d1333.svg +3 -0
  56. package/dist/index.js +768 -755
  57. package/package.json +1 -1
  58. package/dist/Shared/Components/BulkSelection/BulkSelectionDropdownItems.d.ts +0 -3
  59. package/dist/assets/ic-check-all.0376437d.svg +0 -21
  60. package/dist/assets/ic-check-square.2a3d3fb9.svg +0 -20
  61. /package/dist/assets/{ic-container.4e1e6455.svg → ic-container-registry.4e1e6455.svg} +0 -0
@@ -1,7 +1,8 @@
1
- import { Dispatch, FunctionComponent, PropsWithChildren, SetStateAction } from 'react';
1
+ import { Dispatch, FunctionComponent, MouseEvent, PropsWithChildren, SetStateAction } from 'react';
2
2
  import { GenericFilterEmptyStateProps } from '../../../Common/EmptyState/types';
3
- import { UseStateFiltersProps, UseStateFiltersReturnType, UseUrlFiltersProps } from '../../../Common/Hooks';
3
+ import { UseStateFiltersProps, UseStateFiltersReturnType, UseUrlFiltersProps, UseUrlFiltersReturnType } from '../../../Common/Hooks';
4
4
  import { GenericEmptyStateType } from '../../../Common/index';
5
+ import { PageSizeOption } from '../../../Common/Pagination/types';
5
6
  import { SortableTableHeaderCellProps, useResizableTableConfig } from '../../../Common/SortableTableHeaderCell';
6
7
  import { useBulkSelection, UseBulkSelectionProps } from '../BulkSelection';
7
8
  export interface UseFiltersReturnType extends UseStateFiltersReturnType<string> {
@@ -50,11 +51,16 @@ export type RowType = {
50
51
  data: Record<string, unknown>;
51
52
  };
52
53
  export type RowsType = RowType[];
53
- export interface CellComponentProps extends Pick<BaseColumnType, 'field'>, AdditionalProps {
54
+ export declare enum FiltersTypeEnum {
55
+ STATE = "state",
56
+ URL = "url",
57
+ NONE = "none"
58
+ }
59
+ export interface CellComponentProps<T = FiltersTypeEnum.NONE> extends Pick<BaseColumnType, 'field'>, AdditionalProps {
54
60
  signals: SignalsType;
55
61
  value: unknown;
56
62
  row: RowType;
57
- filterData: UseFiltersReturnType;
63
+ filterData: T extends FiltersTypeEnum.NONE ? null : T extends FiltersTypeEnum.STATE ? UseFiltersReturnType : UseUrlFiltersReturnType<string>;
58
64
  isRowActive: boolean;
59
65
  }
60
66
  export type Column = Pick<SortableTableHeaderCellProps, 'showTippyOnTruncate'> & BaseColumnType & {
@@ -71,21 +77,26 @@ export type Column = Pick<SortableTableHeaderCellProps, 'showTippyOnTruncate'> &
71
77
  isSortable?: false;
72
78
  comparator?: never;
73
79
  });
80
+ export interface BulkActionsComponentProps {
81
+ onActionClick: (event: MouseEvent<HTMLButtonElement>) => void;
82
+ bulkActionsData: unknown;
83
+ }
84
+ type BulkSelectionReturnValueType = ReturnType<typeof useBulkSelection>;
85
+ export interface BulkOperationModalProps<T = string> extends Pick<BulkSelectionReturnValueType, 'isBulkSelectionApplied'> {
86
+ action: T;
87
+ onClose: () => void;
88
+ selections: RowsType | null;
89
+ bulkOperationModalData: unknown;
90
+ }
74
91
  type BulkSelectionConfigType = Pick<UseBulkSelectionProps<unknown>, 'getSelectAllDialogStatus'> & {
75
- /** Make sure to wrap it in useCallback */
76
- onBulkSelectionChanged: (selectedRows: RowsType) => void;
77
- BulkActionsComponent: FunctionComponent<{}>;
78
- };
92
+ BulkActionsComponent: FunctionComponent<BulkActionsComponentProps>;
93
+ BulkOperationModal: FunctionComponent<BulkOperationModalProps>;
94
+ } & Pick<BulkActionsComponentProps, 'bulkActionsData'> & Pick<BulkOperationModalProps, 'bulkOperationModalData'>;
79
95
  export declare enum PaginationEnum {
80
96
  PAGINATED = "paginated",
81
97
  INFINITE = "infinite",
82
98
  NOT_PAGINATED = "not-paginated"
83
99
  }
84
- export declare enum FiltersTypeEnum {
85
- STATE = "state",
86
- URL = "url",
87
- NONE = "none"
88
- }
89
100
  export interface ConfigurableColumnsType {
90
101
  allColumns: Column[];
91
102
  visibleColumns: Column[];
@@ -93,14 +104,14 @@ export interface ConfigurableColumnsType {
93
104
  }
94
105
  interface GetRowsProps extends Pick<UseFiltersReturnType, 'offset' | 'pageSize' | 'searchKey' | 'sortBy' | 'sortOrder'> {
95
106
  }
96
- type AdditionalFilterPropsType<T extends Exclude<FiltersTypeEnum, FiltersTypeEnum.NONE>> = T extends FiltersTypeEnum.URL ? Pick<UseUrlFiltersProps<string, unknown>, 'parseSearchParams' | 'localStorageKey' | 'redirectionMethod' | 'initialSortKey'> : Pick<UseStateFiltersProps<string>, 'initialSortKey'>;
97
- export type ViewWrapperProps = PropsWithChildren<Pick<UseFiltersReturnType, 'offset' | 'handleSearch' | 'searchKey' | 'sortBy' | 'sortOrder' | 'clearFilters'> & AdditionalProps & Partial<ConfigurableColumnsType> & {
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> & {
98
109
  areRowsLoading: boolean;
99
- }>;
110
+ filteredRows: RowsType | null;
111
+ } & (T extends FiltersTypeEnum.URL ? Pick<UseUrlFiltersReturnType<string>, 'updateSearchParams'> : {})>;
100
112
  export type InternalTableProps = Required<Pick<ConfigurableColumnsType, 'visibleColumns' | 'setVisibleColumns'>> & {
101
113
  id: `table__${string}`;
102
114
  loading?: boolean;
103
- paginationVariant: PaginationEnum;
104
115
  /**
105
116
  * Memoize columns before passing as props.
106
117
  *
@@ -136,7 +147,7 @@ export type InternalTableProps = Required<Pick<ConfigurableColumnsType, 'visible
136
147
  RowActionsOnHoverComponent?: FunctionComponent<{
137
148
  row: RowType;
138
149
  }>;
139
- bulkSelectionReturnValue: ReturnType<typeof useBulkSelection> | null;
150
+ bulkSelectionReturnValue: BulkSelectionReturnValueType | null;
140
151
  handleClearBulkSelection: () => void;
141
152
  handleToggleBulkSelectionOnRow: (row: RowType) => void;
142
153
  ViewWrapper?: FunctionComponent<ViewWrapperProps>;
@@ -166,28 +177,44 @@ export type InternalTableProps = Required<Pick<ConfigurableColumnsType, 'visible
166
177
  * If filter is only being used for sorting, then send `noop` in this prop
167
178
  */
168
179
  filter: (row: RowType, filterData: UseFiltersReturnType) => boolean;
180
+ clearFilters?: () => void;
169
181
  } | {
170
182
  filtersVariant: FiltersTypeEnum.STATE;
171
183
  additionalFilterProps?: AdditionalFilterPropsType<FiltersTypeEnum.STATE>;
172
184
  filter: (row: RowType, filterData: UseFiltersReturnType) => boolean;
185
+ clearFilters?: never;
173
186
  } | {
174
187
  filtersVariant: FiltersTypeEnum.NONE;
175
188
  additionalFilterProps?: never;
176
189
  filter?: never;
190
+ clearFilters?: never;
191
+ }) & ({
192
+ paginationVariant: PaginationEnum.PAGINATED;
193
+ pageSizeOptions?: PageSizeOption[];
194
+ } | {
195
+ paginationVariant: Omit<PaginationEnum, 'PAGINATED'>;
196
+ pageSizeOptions?: never;
177
197
  });
178
198
  export type UseResizableTableConfigWrapperProps = Omit<InternalTableProps, 'resizableConfig'>;
179
199
  export type TableWithBulkSelectionProps = Omit<UseResizableTableConfigWrapperProps, 'bulkSelectionReturnValue' | 'handleClearBulkSelection' | 'handleToggleBulkSelectionOnRow'>;
180
200
  export type VisibleColumnsWrapperProps = Omit<TableWithBulkSelectionProps, 'visibleColumns' | 'setVisibleColumns'>;
181
201
  export type FilterWrapperProps = Omit<VisibleColumnsWrapperProps, 'filterData'>;
182
- export type TableProps = Pick<FilterWrapperProps, 'additionalFilterProps' | 'bulkSelectionConfig' | 'areColumnsConfigurable' | 'emptyStateConfig' | 'filtersVariant' | 'filter' | 'additionalProps' | 'columns' | 'getRows' | 'rows' | 'paginationVariant' | 'stylesConfig' | 'id' | 'RowActionsOnHoverComponent' | 'loading' | 'ViewWrapper'>;
183
- export interface BulkSelectionActionWidgetProps extends Pick<BulkSelectionConfigType, 'BulkActionsComponent'> {
202
+ export type TableProps = Pick<FilterWrapperProps, 'additionalFilterProps' | 'bulkSelectionConfig' | 'areColumnsConfigurable' | 'emptyStateConfig' | 'filtersVariant' | 'filter' | 'additionalProps' | 'columns' | 'getRows' | 'rows' | 'paginationVariant' | 'stylesConfig' | 'id' | 'RowActionsOnHoverComponent' | 'loading' | 'ViewWrapper' | 'pageSizeOptions' | 'clearFilters'>;
203
+ export type BulkActionStateType = string | null;
204
+ export interface BulkSelectionActionWidgetProps extends Pick<BulkSelectionConfigType, 'BulkActionsComponent' | 'bulkActionsData'> {
184
205
  count: number;
185
206
  handleClearBulkSelection: () => void;
186
207
  parentRef: React.RefObject<HTMLDivElement>;
208
+ /** If it is null, we can say no bulk action has been selected yet */
209
+ setBulkActionState: Dispatch<SetStateAction<BulkActionStateType>>;
187
210
  }
188
211
  export type ConfigurableColumnsConfigType = Record<string, ConfigurableColumnsType['visibleColumns']>;
189
212
  export interface GetFilteringPromiseProps {
190
213
  searchSortTimeoutRef: React.MutableRefObject<number>;
191
214
  callback: () => Promise<RowsType> | RowsType;
192
215
  }
216
+ export interface TableContentProps extends Pick<InternalTableProps, 'filterData' | 'rows' | 'resizableConfig' | 'additionalProps' | 'visibleColumns' | 'stylesConfig' | 'loading' | 'bulkSelectionConfig' | 'bulkSelectionReturnValue' | 'handleClearBulkSelection' | 'handleToggleBulkSelectionOnRow' | 'paginationVariant' | 'RowActionsOnHoverComponent' | 'pageSizeOptions'> {
217
+ filteredRows: RowsType;
218
+ areFilteredRowsLoading: boolean;
219
+ }
193
220
  export {};
@@ -1,6 +1,11 @@
1
1
  import { InternalTableProps, RowsType } from './types';
2
- declare const useTableWithKeyboardShortcuts: ({ bulkSelectionConfig, handleToggleBulkSelectionOnRow, bulkSelectionReturnValue, }: Pick<InternalTableProps, "bulkSelectionConfig" | "bulkSelectionReturnValue" | "handleToggleBulkSelectionOnRow">, visibleRows: RowsType) => {
2
+ declare const useTableWithKeyboardShortcuts: ({ bulkSelectionConfig, handleToggleBulkSelectionOnRow, bulkSelectionReturnValue, }: Pick<InternalTableProps, "bulkSelectionConfig" | "bulkSelectionReturnValue" | "handleToggleBulkSelectionOnRow">, visibleRows: RowsType, showPagination: boolean, bulkSelectionButtonRef: React.RefObject<HTMLLabelElement>) => {
3
3
  activeRowIndex: number;
4
4
  setActiveRowIndex: import('react').Dispatch<import('react').SetStateAction<number>>;
5
+ shortcutContainerProps: {
6
+ onKeyDown: (event: import('react').KeyboardEvent<HTMLElement>) => void;
7
+ onKeyUp: (event: import('react').KeyboardEvent<HTMLElement>) => void;
8
+ onBlur: (event: import('react').FocusEvent<HTMLElement>) => void;
9
+ };
5
10
  };
6
11
  export default useTableWithKeyboardShortcuts;
@@ -4,3 +4,8 @@ export declare const getVisibleColumnsFromLocalStorage: ({ allColumns, id, }: Pi
4
4
  export declare const setVisibleColumnsToLocalStorage: ({ id, visibleColumns, }: Pick<ConfigurableColumnsType, "visibleColumns"> & Pick<TableProps, "id">) => void;
5
5
  export declare const getVisibleColumns: ({ areColumnsConfigurable, columns, id, }: Pick<TableProps, "areColumnsConfigurable" | "columns" | "id">) => Column[];
6
6
  export declare const getFilteringPromise: ({ searchSortTimeoutRef, callback }: GetFilteringPromiseProps) => Promise<RowsType>;
7
+ export declare const getStickyColumnConfig: (gridTemplateColumns: string, columnIndex: number) => {
8
+ className: string;
9
+ left: string;
10
+ };
11
+ export declare const scrollToShowActiveElementIfNeeded: (activeElement: HTMLDivElement, parent: HTMLDivElement, topMargin: number) => void;
@@ -65,6 +65,7 @@ export * from './ModalSidebarPanel';
65
65
  export * from './NumbersCount';
66
66
  export * from './PhoneInput';
67
67
  export * from './Plugin';
68
+ export * from './Popover';
68
69
  export * from './ProgressBar';
69
70
  export { default as QRCode } from './QRCode';
70
71
  export * from './ReactSelect';
@@ -5,7 +5,7 @@ import { Pair } from 'yaml';
5
5
  import { MaterialHistoryType } from './Services/app.types';
6
6
  import { ApprovalConfigDataType, MaterialInfo, SortingOrder, UserApprovalConfigType, UserApprovalInfo } from '../Common';
7
7
  import { AggregatedNodes, PodMetadatum } from './Components';
8
- import { BorderConfigType, GetTimeDifferenceParamsType, GitTriggers, IntersectionChangeHandler, IntersectionOptions, PreventOutsideFocusProps, TargetPlatformItemDTO, TargetPlatformsDTO, WebhookEventNameType } from './types';
8
+ import { BorderConfigType, GetTimeDifferenceParamsType, GitTriggers, IntersectionChangeHandler, IntersectionOptions, Node, PreventOutsideFocusProps, TargetPlatformItemDTO, TargetPlatformsDTO, WebhookEventNameType } from './types';
9
9
  interface HighlightSearchTextProps {
10
10
  /**
11
11
  * The text to be highlighted
@@ -102,4 +102,5 @@ export declare const getClassNameForStickyHeaderWithShadow: (isStuck: boolean, t
102
102
  export declare const clearCookieOnLogout: () => void;
103
103
  export declare const getAppDetailsURL: (appId: number | string, envId?: number | string) => string;
104
104
  export declare const smoothScrollToTop: (scrollContainer: HTMLElement, targetPosition: number) => import('framer-motion').AnimationPlaybackControls;
105
+ export declare const getGroupVersionFromApiVersion: (apiVersion: string) => Pick<Node, "group" | "version">;
105
106
  export {};
@@ -1,6 +1,6 @@
1
1
  import { Dispatch, MutableRefObject, ReactNode, SetStateAction } from 'react';
2
2
  import { SERVER_MODE } from '../../../Common';
3
- import { DevtronLicenseInfo, IntelligenceConfig, LicenseInfoDialogType, ToastManager } from '../..';
3
+ import { DevtronLicenseInfo, EnvironmentDataValuesDTO, IntelligenceConfig, LicenseInfoDialogType, ToastManager } from '../..';
4
4
  import { ServerInfo } from '../../Components/Header/types';
5
5
  export interface ReloadVersionConfigTypes {
6
6
  bgUpdated: boolean;
@@ -66,7 +66,7 @@ type CommonMainContextProps = {
66
66
  setIntelligenceConfig: Dispatch<SetStateAction<IntelligenceConfig>>;
67
67
  setAIAgentContext: (aiAgentContext: AIAgentContextType) => void;
68
68
  setSidePanelConfig: Dispatch<SetStateAction<SidePanelConfig>>;
69
- };
69
+ } & Pick<EnvironmentDataValuesDTO, 'isResourceRecommendationEnabled'>;
70
70
  export type MainContext = CommonMainContextProps & ({
71
71
  isLicenseDashboard?: never;
72
72
  serverMode: SERVER_MODE;
@@ -38,5 +38,6 @@ export interface EnvironmentDataValuesDTO extends Pick<MainContext, 'featureGitO
38
38
  isManifestScanningEnabled: boolean;
39
39
  canOnlyViewPermittedEnvOrgLevel: boolean;
40
40
  devtronManagedLicensingEnabled: boolean;
41
+ isResourceRecommendationEnabled?: boolean;
41
42
  }
42
43
  export {};
@@ -97,7 +97,8 @@ export declare enum Nodes {
97
97
  Node = "Node",
98
98
  Overview = "Overview",
99
99
  MonitoringDashboard = "MonitoringDashboard",
100
- UpgradeCluster = "UpgradeCluster"
100
+ UpgradeCluster = "UpgradeCluster",
101
+ ResourceRecommender = "ResourceRecommender"
101
102
  }
102
103
  export type NodeType = keyof typeof Nodes;
103
104
  export interface Node {
@@ -760,6 +761,15 @@ interface CommonTabArgsType {
760
761
  * @default false
761
762
  */
762
763
  shouldRemainMounted?: boolean;
764
+ /**
765
+ * @default false
766
+ * If true, tab would contain alpha as badge next to the title
767
+ */
768
+ isAlpha?: boolean;
769
+ /**
770
+ * On tab stop, i.e by pressing cross icon on alive tab [fixed tab expanding on click of tab and remains expanded on other tab click], tab will reset the tab to this default URL if provided
771
+ */
772
+ defaultUrl?: string | null;
763
773
  }
764
774
  export type InitTabType = Omit<CommonTabArgsType, 'type'> & ({
765
775
  type: 'fixed';