isp-ui-kit 1.2.4 → 2.0.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.
@@ -1,4 +1,4 @@
1
1
  import { ColumnProps } from './column.type';
2
2
  import './column.scss';
3
- declare const Column: <T extends object>({ title, extraTitle, tooltipTitle, searchPlaceholder, items, onAddItem, onUpdateItem, onRemoveItem, showRemoveBtn, showUpdateBtn, showAddBtn, sortableFields, selectedItemId, setSelectedItemId, searchValue, onChangeSearchValue, renderItems, columnKey, sortValue, onChangeSortValue, directionValue, onChangeDirectionValue, loadingRemove, groupBy, renderHeaderGroup, sortGroups, isLoading, removeConfirmDescription, onOpenChange, }: ColumnProps<T>) => import("react/jsx-runtime").JSX.Element;
3
+ declare const Column: <T extends object>({ title, extraTitle, tooltipTitle, searchPlaceholder, items, onAddItem, onUpdateItem, onRemoveItem, showRemoveBtn, showUpdateBtn, showAddBtn, sortableFields, selectedItemId, setSelectedItemId, searchValue, onChangeSearchValue, renderItems, columnKey, sortValue, onChangeSortValue, directionValue, onChangeDirectionValue, loadingRemove, groupBy, renderHeaderGroup, sortGroups, isLoading, removeConfirmDescription, onOpenChange, disableRemovePopconfirm, }: ColumnProps<T>) => import("react/jsx-runtime").JSX.Element;
4
4
  export default Column;
@@ -0,0 +1,3 @@
1
+ import { ColumnActionsProps } from './column.type';
2
+ declare const ColumnActions: ({ searchPlaceholder, searchValue, onChangeSearchValue, showAddBtn, showUpdateBtn, showRemoveBtn, isDisabled, selectedItemId, onAddItem, onUpdateItem, onRemoveItem, loadingRemove, disableRemovePopconfirm, removeConfirmDescription, onOpenChange, }: ColumnActionsProps) => import("react/jsx-runtime").JSX.Element;
3
+ export default ColumnActions;
@@ -0,0 +1,14 @@
1
+ import { ReactNode } from 'react';
2
+ import { ColumnItem, GroupedItems } from './column.type';
3
+ type ColumnContentProps<T extends object> = {
4
+ shouldShowGroups: boolean;
5
+ sortedGroupedItems: GroupedItems<T>;
6
+ activeGroupKeys: string[];
7
+ onCollapseChange: (keys: string | string[]) => void;
8
+ renderHeaderGroup?: (groupKey: string, items: ColumnItem<T>[]) => ReactNode;
9
+ renderItem: (item: ColumnItem<T>) => ReactNode;
10
+ isLoading?: boolean;
11
+ hasItems: boolean;
12
+ };
13
+ declare const ColumnContent: <T extends object>({ shouldShowGroups, sortedGroupedItems, activeGroupKeys, onCollapseChange, renderHeaderGroup, renderItem, isLoading, hasItems, }: ColumnContentProps<T>) => import("react/jsx-runtime").JSX.Element | null;
14
+ export default ColumnContent;
@@ -0,0 +1,3 @@
1
+ import { ColumnHeaderTitleProps } from './column.type';
2
+ declare const ColumnHeaderTitle: ({ title, extraTitle, tooltipTitle, itemsCount, }: ColumnHeaderTitleProps) => import("react/jsx-runtime").JSX.Element | null;
3
+ export default ColumnHeaderTitle;
@@ -0,0 +1,3 @@
1
+ import { ColumnSortControlsProps } from './column.type';
2
+ declare const ColumnSortControls: <T extends object>({ sortableFields, sortValue, directionValue, sortOptions, onChangeDirectionValue, onSortChange, }: ColumnSortControlsProps<T>) => import("react/jsx-runtime").JSX.Element | null;
3
+ export default ColumnSortControls;
@@ -29,6 +29,7 @@ export interface ColumnProps<T extends object> {
29
29
  isLoading?: boolean;
30
30
  removeConfirmDescription?: ReactNode;
31
31
  onOpenChange?: (open: boolean) => void;
32
+ disableRemovePopconfirm?: boolean;
32
33
  }
33
34
  export type ColumnItem<T extends {}> = T & {
34
35
  name: string;
@@ -39,3 +40,41 @@ export type SortItemType<T> = {
39
40
  value: keyof T;
40
41
  label: string;
41
42
  };
43
+ export type ColumnHeaderTitleProps = {
44
+ title?: ReactNode;
45
+ extraTitle?: ReactNode;
46
+ tooltipTitle?: ReactNode;
47
+ itemsCount: number;
48
+ };
49
+ export type ColumnActionsProps = {
50
+ searchPlaceholder: string;
51
+ searchValue: string;
52
+ onChangeSearchValue: (value: string, event: ChangeEvent<HTMLInputElement>) => void;
53
+ showAddBtn: boolean;
54
+ showUpdateBtn: boolean;
55
+ showRemoveBtn: boolean;
56
+ isDisabled: boolean;
57
+ selectedItemId: string;
58
+ onAddItem: () => void;
59
+ onUpdateItem: (id: string) => void;
60
+ onRemoveItem: (id: string) => void;
61
+ loadingRemove: boolean;
62
+ disableRemovePopconfirm: boolean;
63
+ removeConfirmDescription?: ReactNode;
64
+ onOpenChange?: (open: boolean) => void;
65
+ };
66
+ export type ColumnSortControlsProps<T extends object> = {
67
+ sortableFields?: SortItemType<T>[];
68
+ sortValue?: keyof T;
69
+ directionValue?: string;
70
+ sortOptions: {
71
+ value: string | keyof T;
72
+ label: string;
73
+ }[];
74
+ onChangeDirectionValue?: (value: string | undefined) => void;
75
+ onSortChange: (value: string) => void;
76
+ };
77
+ export type GroupedItems<T extends object> = {
78
+ grouped: Record<string, ColumnItem<T>[]>;
79
+ ungrouped: ColumnItem<T>[];
80
+ };
@@ -0,0 +1,11 @@
1
+ import { ColumnItem } from './column.type';
2
+ export declare const NO_GROUP_KEY = "noGroup";
3
+ export declare const hasValue: (value: unknown) => boolean;
4
+ export declare const toStorageKey: (columnKey?: string) => string;
5
+ export declare const getAllGroupKeys: <T extends object>(grouped: Record<string, ColumnItem<T>[]>, hasUngrouped: boolean) => string[];
6
+ export declare const areSameStringSets: (left: string[], right: string[]) => boolean;
7
+ export declare const sortItemsByField: <T extends object>(arr: ColumnItem<T>[], sortValue?: keyof T, directionValue?: string) => ColumnItem<T>[];
8
+ export declare const groupItems: <T extends object>(items: ColumnItem<T>[], groupBy?: keyof T) => {
9
+ grouped: Record<string, ColumnItem<T>[]>;
10
+ ungrouped: ColumnItem<T>[];
11
+ };
@@ -0,0 +1,19 @@
1
+ import { ColumnItem, GroupedItems } from './column.type';
2
+ type UseColumnGroupingParams<T extends object> = {
3
+ items: ColumnItem<T>[];
4
+ groupBy?: keyof T;
5
+ searchValue: string;
6
+ selectedItemId: string;
7
+ sortValue?: keyof T;
8
+ directionValue?: string;
9
+ sortGroups?: (a: string, b: string) => number;
10
+ };
11
+ type UseColumnGroupingResult<T extends object> = {
12
+ groupedItems: GroupedItems<T>;
13
+ sortedGroupedItems: GroupedItems<T>;
14
+ shouldShowGroups: boolean;
15
+ activeGroupKeys: string[];
16
+ handleCollapseChange: (keys: string | string[]) => void;
17
+ };
18
+ export declare const useColumnGrouping: <T extends object>({ items, groupBy, searchValue, selectedItemId, sortValue, directionValue, sortGroups, }: UseColumnGroupingParams<T>) => UseColumnGroupingResult<T>;
19
+ export {};