@layers-app/shared 0.0.36 → 0.0.37

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 (39) hide show
  1. package/dist/{KanbanLayout-B8RukpT8.js → KanbanLayout-VHRhOh9W.js} +1 -1
  2. package/dist/{TimeLine--HywOpKf.js → TimeLine-BByQEycM.js} +3 -3
  3. package/dist/components/ColorPicker/ColorPicker.d.ts +1 -0
  4. package/dist/components/table/FrontTable.d.ts +35 -0
  5. package/dist/components/table/api.d.ts +33 -0
  6. package/dist/components/table/components/Table.d.ts +1 -0
  7. package/dist/components/table/components/TableAggregation.d.ts +1 -0
  8. package/dist/components/table/components/TableCell.d.ts +11 -0
  9. package/dist/components/table/components/TableHeaderCell.d.ts +17 -0
  10. package/dist/components/table/components/TableHeaders.d.ts +1 -0
  11. package/dist/components/table/components/TableMenu.d.ts +4 -0
  12. package/dist/components/table/components/TablePagination.d.ts +1 -0
  13. package/dist/components/table/components/TablePanel.d.ts +1 -0
  14. package/dist/components/table/components/TableRow.d.ts +15 -0
  15. package/dist/components/table/components/TableRows.d.ts +15 -0
  16. package/dist/components/table/components/TableSearch.d.ts +1 -0
  17. package/dist/components/table/components/TableSkeleton.d.ts +11 -0
  18. package/dist/components/table/components/TableTitle.d.ts +16 -0
  19. package/dist/components/table/constants.d.ts +25 -0
  20. package/dist/components/table/export.d.ts +9 -0
  21. package/dist/components/table/helpers/columns.d.ts +35 -0
  22. package/dist/components/table/helpers/filter.d.ts +52 -0
  23. package/dist/components/table/helpers/formatters.d.ts +76 -0
  24. package/dist/components/table/hooks/TableProvider.d.ts +59 -0
  25. package/dist/components/table/hooks/useColumnsResizing.d.ts +5 -0
  26. package/dist/components/table/hooks/useCreateTable.d.ts +54 -0
  27. package/dist/components/table/hooks/useSaveRowCount.d.ts +1 -0
  28. package/dist/components/table/hooks/useSorting.d.ts +2 -0
  29. package/dist/components/table/hooks/useTableStore.d.ts +53 -0
  30. package/dist/components/table/selectors.d.ts +4042 -0
  31. package/dist/components/table/store.d.ts +98 -0
  32. package/dist/components/table/types.d.ts +104 -0
  33. package/dist/index-De7pQ4GG.js +66447 -0
  34. package/dist/index.d.ts +7 -0
  35. package/dist/{index.esm-DbeiBKnb.js → index.esm-CKK13a1d.js} +1 -1
  36. package/dist/index.js +180 -119
  37. package/dist/index.umd.cjs +464 -84
  38. package/package.json +1 -1
  39. package/dist/index-D_nxhqe0.js +0 -39586
@@ -11,7 +11,7 @@ import "@mantine/form";
11
11
  import "@mantine/dropzone";
12
12
  import "@mantine/notifications";
13
13
  import "lodash-es";
14
- import { u as F, S as z } from "./index-D_nxhqe0.js";
14
+ import { u as F, S as z } from "./index-De7pQ4GG.js";
15
15
  import "react-dom";
16
16
  import "draggable-ui";
17
17
  import "@mantine/modals";
@@ -11,7 +11,7 @@ import "@mantine/form";
11
11
  import "@mantine/dropzone";
12
12
  import "@mantine/notifications";
13
13
  import "lodash-es";
14
- import { u as L } from "./index-D_nxhqe0.js";
14
+ import { u as L } from "./index-De7pQ4GG.js";
15
15
  import "react-dom";
16
16
  import "draggable-ui";
17
17
  import "@mantine/modals";
@@ -19,7 +19,7 @@ import "i18next";
19
19
  import "framer-motion";
20
20
  import "@mantine/dates";
21
21
  const R = S(
22
- () => import("./index.esm-DbeiBKnb.js").then((r) => ({ default: r.default }))
22
+ () => import("./index.esm-CKK13a1d.js").then((r) => ({ default: r.default }))
23
23
  );
24
24
  function d(r, l) {
25
25
  const o = new Date(r);
@@ -169,7 +169,7 @@ const u = () => /* @__PURE__ */ a(
169
169
  }
170
170
  ], [h, w] = C(null);
171
171
  return x(() => {
172
- import("./index.esm-DbeiBKnb.js").then((n) => w(n.enUS));
172
+ import("./index.esm-CKK13a1d.js").then((n) => w(n.enUS));
173
173
  }, []), h ? /* @__PURE__ */ e(t, { h: 700, w: "100%", direction: "column", children: /* @__PURE__ */ e(z, { children: /* @__PURE__ */ e(
174
174
  R,
175
175
  {
@@ -3,6 +3,7 @@ interface ColorCircleProps extends Omit<ColorSwatchProps, 'color'>, Omit<React.C
3
3
  value?: string | null;
4
4
  isActive?: boolean;
5
5
  }
6
+ export declare const ColorCircle: import('react').ForwardRefExoticComponent<ColorCircleProps & import('react').RefAttributes<HTMLDivElement>>;
6
7
  export declare const ColorPicker: import('react').ForwardRefExoticComponent<{
7
8
  value?: string | null;
8
9
  onChange?: (v: string) => void;
@@ -0,0 +1,35 @@
1
+ export declare const FrontTable: import('react').NamedExoticComponent<unknown> & {
2
+ readonly type: () => import("react/jsx-runtime").JSX.Element;
3
+ } & {
4
+ Header: import('@emotion/styled').StyledComponent<{
5
+ theme?: import('@emotion/react').Theme;
6
+ as?: React.ElementType;
7
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
8
+ Title: import('@emotion/styled').StyledComponent<{
9
+ theme?: import('@emotion/react').Theme;
10
+ as?: React.ElementType;
11
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
12
+ Desc: import('@emotion/styled').StyledComponent<{
13
+ theme?: import('@emotion/react').Theme;
14
+ as?: React.ElementType;
15
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
16
+ Pagination: import('react').MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
17
+ Search: import('react').MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
18
+ Root: import('@emotion/styled').StyledComponent<{
19
+ theme?: import('@emotion/react').Theme;
20
+ as?: React.ElementType;
21
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
22
+ Provider: <ITEM extends import('./types').TableRowModel>({ children, store, rows, columns, loading, pageSizeOptions, rowHeight, headerHeight, rowCount, exportFileName, pagination, virtualization, searching, selection, sorting, expanding, }: import('react').PropsWithChildren<{
23
+ store: import('./store').CreateTableReturn;
24
+ } & import('./types').TableProps<ITEM>>) => import("react/jsx-runtime").JSX.Element;
25
+ Menu: import('react').MemoExoticComponent<({ onExport, isLoading, }: {
26
+ onExport?: (format: "csv" | "xlsx") => void;
27
+ isLoading?: boolean;
28
+ }) => import("react/jsx-runtime").JSX.Element>;
29
+ };
30
+ export * from './hooks/useCreateTable';
31
+ export * from './hooks/useSaveRowCount';
32
+ export * from './types';
33
+ export * from './helpers/columns';
34
+ export * from './components/TableSearch';
35
+ export * from './components/TablePagination';
@@ -0,0 +1,33 @@
1
+ import { TableFilterRow, UseStore } from './store';
2
+ import { TableSortModel } from './types';
3
+ export type TableAPI = ReturnType<typeof createApi>;
4
+ export declare const createApi: (store: UseStore) => {
5
+ setPageSize: (v: number) => void;
6
+ setPage: (v: number) => void;
7
+ setSort: (v: TableSortModel | null) => void;
8
+ downloadCSV: () => void;
9
+ downloadExcel: () => void;
10
+ setSelected: (selected: string[]) => void;
11
+ toggleColumn: (v: string) => void;
12
+ setVisibleColumns: (v: string[]) => void;
13
+ setSearch: (v: string) => void;
14
+ setPrevPage: () => void;
15
+ setNextPage: () => void;
16
+ setColumnWidth: (field: string, setWidth: number) => void;
17
+ toggleRowExpand: (id: string) => void;
18
+ setHeaderWidth: (id: string, width: number) => void;
19
+ setRootRef: (rootRef: HTMLDivElement) => void;
20
+ setScrollRef: (scrollRef: HTMLDivElement) => void;
21
+ calculateColumnWidths: (clear?: boolean) => void;
22
+ selectVisibleRows: () => void;
23
+ unselectVisibleRows: () => void;
24
+ unselectRow: (id: string) => void;
25
+ selectRow: (id: string) => void;
26
+ addFilterRow: (field?: string) => void;
27
+ removeFilterRow: (id: string) => void;
28
+ changeFilterRow: ({ id, ...newRow }: Pick<TableFilterRow, "id"> & Partial<Omit<TableFilterRow, "id">>) => void;
29
+ setFilterCombiner: (combiner: "and" | "or") => void;
30
+ clearFilter: () => void;
31
+ setAutosize: () => void;
32
+ removeAutosize: () => void;
33
+ };
@@ -0,0 +1 @@
1
+ export declare const Table: import('react').MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
@@ -0,0 +1 @@
1
+ export declare const TableAggregation: () => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,11 @@
1
+ import { TableColumnDef, TableRowModel } from '../types';
2
+ interface TableCellProps {
3
+ column: TableColumnDef;
4
+ row: TableRowModel;
5
+ }
6
+ export declare const TableCell: import('react').MemoExoticComponent<({ column, row }: TableCellProps) => import("react/jsx-runtime").JSX.Element>;
7
+ export declare const CellRoot: import('@emotion/styled').StyledComponent<{
8
+ theme?: import('@emotion/react').Theme;
9
+ as?: React.ElementType;
10
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
11
+ export {};
@@ -0,0 +1,17 @@
1
+ import { CSSProperties } from 'react';
2
+ import { TableColumnDef, TableSortModel } from '../types';
3
+ interface TableHeaderCellProps {
4
+ column: TableColumnDef;
5
+ sort?: TableSortModel | null;
6
+ style?: CSSProperties;
7
+ }
8
+ export declare const TableHeaderCell: ({ column, sort, style, }: TableHeaderCellProps) => import("react/jsx-runtime").JSX.Element;
9
+ export declare const HeaderCellRoot: import('@emotion/styled').StyledComponent<{
10
+ theme?: import('@emotion/react').Theme;
11
+ as?: React.ElementType;
12
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
13
+ export declare const HeaderCellContent: import('@emotion/styled').StyledComponent<{
14
+ theme?: import('@emotion/react').Theme;
15
+ as?: React.ElementType;
16
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
17
+ export {};
@@ -0,0 +1 @@
1
+ export declare const TableHeaders: import('react').MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
@@ -0,0 +1,4 @@
1
+ export declare const TableMenu: import('react').MemoExoticComponent<({ onExport, isLoading, }: {
2
+ onExport?: (format: "csv" | "xlsx") => void;
3
+ isLoading?: boolean;
4
+ }) => import("react/jsx-runtime").JSX.Element>;
@@ -0,0 +1 @@
1
+ export declare const TablePagination: import('react').MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
@@ -0,0 +1 @@
1
+ export declare const TablePanel: import('react').MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element | null>;
@@ -0,0 +1,15 @@
1
+ import { calculatePanelData } from '../selectors';
2
+ import { RowMeta, TableRowModel } from '../types';
3
+ interface TableRowProps {
4
+ start: number;
5
+ row: TableRowModel;
6
+ selected: string[];
7
+ meta: Partial<Record<string, RowMeta>>;
8
+ columns: {
9
+ left: ReturnType<typeof calculatePanelData>;
10
+ base: ReturnType<typeof calculatePanelData>;
11
+ right: ReturnType<typeof calculatePanelData>;
12
+ };
13
+ }
14
+ export declare const TableRow: import('react').MemoExoticComponent<({ row, meta, columns, selected, start }: TableRowProps) => import("react/jsx-runtime").JSX.Element>;
15
+ export {};
@@ -0,0 +1,15 @@
1
+ import { calculatePanelData } from '../selectors';
2
+ import { RowMeta, TableRowModel } from '../types';
3
+ type RenderRowsProps = {
4
+ rows: TableRowModel[];
5
+ meta: Partial<Record<string, RowMeta>>;
6
+ selected: string[];
7
+ virtual?: boolean;
8
+ columns: {
9
+ left: ReturnType<typeof calculatePanelData>;
10
+ base: ReturnType<typeof calculatePanelData>;
11
+ right: ReturnType<typeof calculatePanelData>;
12
+ };
13
+ };
14
+ export declare const TableRows: import('react').MemoExoticComponent<({ rows, meta, columns, selected, virtual }: RenderRowsProps) => import("react/jsx-runtime").JSX.Element>;
15
+ export {};
@@ -0,0 +1 @@
1
+ export declare const TableSearch: import('react').MemoExoticComponent<() => import("react/jsx-runtime").JSX.Element>;
@@ -0,0 +1,11 @@
1
+ import { calculatePanelData } from '../selectors';
2
+ type TableSkeletonProps = {
3
+ count: number;
4
+ columns: {
5
+ left: ReturnType<typeof calculatePanelData>;
6
+ base: ReturnType<typeof calculatePanelData>;
7
+ right: ReturnType<typeof calculatePanelData>;
8
+ };
9
+ };
10
+ export declare const TableSkeleton: import('react').MemoExoticComponent<({ count, columns }: TableSkeletonProps) => import("react/jsx-runtime").JSX.Element>;
11
+ export {};
@@ -0,0 +1,16 @@
1
+ export declare const TableTitle: import('@emotion/styled').StyledComponent<{
2
+ theme?: import('@emotion/react').Theme;
3
+ as?: React.ElementType;
4
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
5
+ export declare const TableHeader: import('@emotion/styled').StyledComponent<{
6
+ theme?: import('@emotion/react').Theme;
7
+ as?: React.ElementType;
8
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
9
+ export declare const TableRoot: import('@emotion/styled').StyledComponent<{
10
+ theme?: import('@emotion/react').Theme;
11
+ as?: React.ElementType;
12
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
13
+ export declare const TableDesc: import('@emotion/styled').StyledComponent<{
14
+ theme?: import('@emotion/react').Theme;
15
+ as?: React.ElementType;
16
+ }, import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
@@ -0,0 +1,25 @@
1
+ export declare const TABLE_ATTRIBUTES: {
2
+ readonly ROW: "data-row";
3
+ readonly CELL: "data-cell";
4
+ readonly ROOT: "data-root";
5
+ readonly COLUMN_ALIGN: "data-al";
6
+ readonly SCROLLED: "data-scrolled";
7
+ readonly SORTABLE: "data-sortable";
8
+ readonly RESIZER: "data-resizer";
9
+ readonly RESIZER_SIDE: "data-side";
10
+ readonly ROW_SELECTED: "data-sel";
11
+ readonly ROW_CHILD: "data-child";
12
+ readonly SORTED: "data-sorted";
13
+ readonly HEADER_CELL: "data-header";
14
+ readonly INNER: "data-inner";
15
+ readonly AUTOSIZE: "data-autosize";
16
+ readonly PANEL_SIDE: "data-side";
17
+ readonly HEADER_GRID: "data-header-grid";
18
+ readonly VIRTUAL_CONTAINER: "data-virtual";
19
+ readonly BASE: "data-base";
20
+ readonly HEADERS: "data-headers";
21
+ readonly HEADER_GROUP: "data-header-group";
22
+ };
23
+ export declare const SELECT_COLUMN_FIELD = "__checkbox__";
24
+ export declare const EXPAND_COLUMN_FIELD = "__expand__";
25
+ export declare const TABLE_AGGREGATION_ROW_ID = "__aggregation__";
@@ -0,0 +1,9 @@
1
+ import { TableColumnDef, TableRowModel } from './types';
2
+ type ExportProps<T extends TableRowModel> = {
3
+ rows: T[];
4
+ columns: TableColumnDef<T>[];
5
+ fileName: string;
6
+ };
7
+ export declare const exportToExcel: <T extends TableRowModel>({ rows, columns, fileName, }: ExportProps<T>) => Promise<void>;
8
+ export declare const exportToCSV: <T extends TableRowModel>({ rows, columns, fileName, }: ExportProps<T>) => Promise<void>;
9
+ export {};
@@ -0,0 +1,35 @@
1
+ import { CSSProperties } from 'react';
2
+ import { TableAPI } from '../api';
3
+ import { DateColumnProps, TableColumnDef, TableColumnGroupDef, TableColumnPin, TableColumnState, TableColumnsProp, TableRowModel } from '../types';
4
+ import { Numbers } from './formatters';
5
+ export declare const getDateColumn: (props?: DateColumnProps) => Partial<TableColumnDef>;
6
+ export declare const getNumberColumn: (props?: Numbers.FormatterProps) => Partial<TableColumnDef>;
7
+ export declare const getRatioColumn: (props?: Numbers.FormatterProps) => Partial<TableColumnDef>;
8
+ export declare const getPercentColumn: (props?: Omit<Numbers.FormatterProps, "value">) => Partial<TableColumnDef>;
9
+ export declare const getCurrencyColumn: (props?: Omit<Numbers.FormatterProps, "value">) => Partial<TableColumnDef>;
10
+ export declare const getColumnId: (str: string) => string;
11
+ export declare const getColumnsProps: <T extends TableRowModel>(type: TableColumnDef<T>["type"]) => Partial<TableColumnDef>;
12
+ export declare const isColumnGroup: <T extends TableRowModel>(v: TableColumnsProp<T>[number]) => v is TableColumnGroupDef<T>;
13
+ export declare const isTechnicalColumn: <T extends TableRowModel, COL extends TableColumnDef<T>>(col: COL) => boolean;
14
+ export declare const getLeafColumns: <T extends TableRowModel, COL extends TableColumnDef<T>>(items: TableColumnsProp<T, COL>) => COL[];
15
+ export declare function getMaxDepth(columns: TableColumnsProp, depth?: number): number;
16
+ export declare function buildColumnMap(columns: TableColumnsProp): Record<string, TableColumnsProp[number]>;
17
+ export type GridAreaMap = Record<string, string>;
18
+ export declare function computeGridAreas(columns: TableColumnsProp, maxDepth: number): GridAreaMap;
19
+ export declare function filterPinnedColumns(columns: TableColumnsProp, pinnedSide?: TableColumnPin): TableColumnsProp;
20
+ export declare function mapColumnsRecursive<ITEM extends TableRowModel, COL extends TableColumnDef<ITEM>>(columns: TableColumnsProp<ITEM, COL>, transform: (col: TableColumnsProp[number] | TableColumnsProp<ITEM, COL>[number]) => TableColumnsProp<ITEM, COL>[number]): (COL | TableColumnGroupDef<ITEM, COL>)[];
21
+ export declare const mergeColumn: (current: TableColumnDef, update?: Partial<TableColumnState>) => TableColumnState;
22
+ export declare function filterVisibleColumns(columns: TableColumnsProp): TableColumnsProp;
23
+ export declare const getHeaderStyles: (columns: TableColumnDef[]) => CSSProperties;
24
+ export declare const getExpandingColumn: ({ expanded, api, pinned, }: {
25
+ expanded: string[];
26
+ api: TableAPI;
27
+ pinned: boolean;
28
+ }) => TableColumnState;
29
+ export declare const getSelectionColumn: ({ selected, api, pinned, }: {
30
+ selected: string[];
31
+ api: TableAPI;
32
+ pinned: boolean;
33
+ }) => TableColumnState;
34
+ export declare const getAggregationColumns: (columns: TableColumnDef[], aggregatedRow: TableRowModel, rows: TableRowModel[]) => TableColumnDef[];
35
+ export declare const getAggregateValue: (column: TableColumnDef, rows: TableRowModel[]) => number | null;
@@ -0,0 +1,52 @@
1
+ import { TableColumnType } from '../types';
2
+ export type TableFilterValue = Date | string | number | boolean | null | undefined;
3
+ export type TableFilterComparisonFunction = (a: TableFilterValue, b: TableFilterValue) => boolean;
4
+ export interface TableFilterComparisonOption {
5
+ value: string;
6
+ label: string;
7
+ function: TableFilterComparisonFunction;
8
+ }
9
+ export type TableFilterSettings = {
10
+ default: TableFilterComparisonOption;
11
+ options: TableFilterComparisonOption[];
12
+ formatter: (value: TableFilterValue) => string;
13
+ };
14
+ export declare const dateComparisonSettings: {
15
+ readonly is: {
16
+ readonly label: "is";
17
+ readonly function: (a: Date | null, b: Date | null) => boolean;
18
+ };
19
+ readonly isNot: {
20
+ readonly label: "is not";
21
+ readonly function: (a: Date | null, b: Date | null) => boolean;
22
+ };
23
+ readonly isAfter: {
24
+ readonly label: "is after";
25
+ readonly function: (a: Date | null, b: Date | null) => boolean;
26
+ };
27
+ readonly isOnOrAfter: {
28
+ readonly label: "is on or after";
29
+ readonly function: (a: Date | null, b: Date | null) => boolean;
30
+ };
31
+ readonly isBefore: {
32
+ readonly label: "is before";
33
+ readonly function: (a: Date | null, b: Date | null) => boolean;
34
+ };
35
+ readonly isOnOrBefore: {
36
+ readonly label: "is on or before";
37
+ readonly function: (a: Date | null, b: Date | null) => boolean;
38
+ };
39
+ readonly isEmpty: {
40
+ readonly label: "is empty";
41
+ readonly function: (a: Date | null) => a is null;
42
+ };
43
+ readonly isNotEmpty: {
44
+ readonly label: "is not empty";
45
+ readonly function: (a: Date | null) => a is Date;
46
+ };
47
+ };
48
+ export declare const dateComparativeOptions: {
49
+ value: string;
50
+ label: "is" | "is not empty" | "is not" | "is empty" | "is after" | "is on or after" | "is before" | "is on or before";
51
+ }[];
52
+ export declare const getTableFilterSettings: (columnType?: TableColumnType) => TableFilterSettings;
@@ -0,0 +1,76 @@
1
+ /**
2
+ * A namespace containing utility functions for number parsing, validation, and formatting
3
+ */
4
+ export declare namespace Numbers {
5
+ type AcceptableValue = number | string | null | undefined;
6
+ /**
7
+ * Parses a value into a number, handling various input types
8
+ * @param value - The value to parse (can be number, string, or null/undefined)
9
+ * @returns The parsed number or NaN if parsing fails
10
+ */
11
+ const parse: (value: AcceptableValue) => number;
12
+ /**
13
+ * Checks if a value is a positive number
14
+ * @param value - The value to check
15
+ * @returns True if the value is a positive number, false otherwise
16
+ */
17
+ const isPositive: (value: AcceptableValue) => boolean;
18
+ /**
19
+ * Checks if a value is a negative number
20
+ * @param v - The value to check
21
+ * @returns True if the value is a negative number, false otherwise
22
+ */
23
+ const isNegative: (value: AcceptableValue) => boolean;
24
+ const getDynamic: (v: AcceptableValue, invert?: boolean) => DynamicType | null;
25
+ /**
26
+ * Checks if a value is a valid number
27
+ * @param v - The value to check
28
+ * @returns True if the value is a valid number, false otherwise
29
+ */
30
+ const isNumber: (value: AcceptableValue) => value is number;
31
+ /**
32
+ * Type definition for number formatting styles
33
+ */
34
+ type NumberType = 'number' | 'percent' | 'currency';
35
+ /**
36
+ * Configuration options for number formatting
37
+ */
38
+ type FormatterProps = Intl.NumberFormatOptions & {
39
+ /** The locale to use for formatting */
40
+ locale?: Intl.LocalesArgument;
41
+ /** Whether to force decimal places */
42
+ decimal?: boolean;
43
+ /** The value to return when formatting fails */
44
+ invalidValue?: string;
45
+ /** Whether to divide the value by 100 */
46
+ divide?: boolean;
47
+ /** Whether to use short formatting */
48
+ short?: boolean;
49
+ };
50
+ /**
51
+ * Formats a number according to the specified options
52
+ * @param v - The value to format
53
+ * @param _options
54
+ * @returns The formatted string or the invalidValue if formatting fails
55
+ */
56
+ const format: (v: AcceptableValue, _options?: FormatterProps) => string;
57
+ /**
58
+ * Formats a number as currency
59
+ * @param v - The value to format
60
+ * @param options - Formatting options including locale and currency
61
+ * @returns The formatted currency string
62
+ */
63
+ const formatCurrency: (v: AcceptableValue, options?: FormatterProps) => string;
64
+ /**
65
+ * Formats a number as a percentage
66
+ * @param v - The value to format
67
+ * @param options - Formatting options including locale
68
+ * @returns The formatted percentage string
69
+ */
70
+ const formatPercents: (v: AcceptableValue, options?: FormatterProps) => string;
71
+ const dynamicTypesList: readonly ["positive", "negative", "neutral"];
72
+ type DynamicType = (typeof dynamicTypesList)[number];
73
+ const round: (value: string | number, exp?: number, type?: "round" | "floor" | "ceil") => number;
74
+ const formatByType: (type: NumberType, v: AcceptableValue, options?: FormatterProps) => string;
75
+ const getCurrencySymbol: (currency: Intl.NumberFormatOptions["currency"], locale?: Intl.LocalesArgument) => string;
76
+ }
@@ -0,0 +1,59 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { CreateTableReturn } from '../store';
3
+ import { TableProps, TableRowModel } from '../types';
4
+ export declare const TableContext: import('react').Context<{
5
+ useStore: import('zustand').UseBoundStore<Omit<import('zustand').StoreApi<import('../store').Store>, "persist"> & {
6
+ persist: {
7
+ setOptions: (options: Partial<import('zustand/middleware').PersistOptions<import('../store').Store, {
8
+ page: number;
9
+ sort: import('../types').TableSortModel | null;
10
+ search: string;
11
+ pageSize: number;
12
+ }>>) => void;
13
+ clearStorage: () => void;
14
+ rehydrate: () => Promise<void> | void;
15
+ hasHydrated: () => boolean;
16
+ onHydrate: (fn: (state: import('../store').Store) => void) => () => void;
17
+ onFinishHydration: (fn: (state: import('../store').Store) => void) => () => void;
18
+ getOptions: () => Partial<import('zustand/middleware').PersistOptions<import('../store').Store, {
19
+ page: number;
20
+ sort: import('../types').TableSortModel | null;
21
+ search: string;
22
+ pageSize: number;
23
+ }>>;
24
+ };
25
+ }>;
26
+ api: {
27
+ setPageSize: (v: number) => void;
28
+ setPage: (v: number) => void;
29
+ setSort: (v: import('../types').TableSortModel | null) => void;
30
+ downloadCSV: () => void;
31
+ downloadExcel: () => void;
32
+ setSelected: (selected: string[]) => void;
33
+ toggleColumn: (v: string) => void;
34
+ setVisibleColumns: (v: string[]) => void;
35
+ setSearch: (v: string) => void;
36
+ setPrevPage: () => void;
37
+ setNextPage: () => void;
38
+ setColumnWidth: (field: string, setWidth: number) => void;
39
+ toggleRowExpand: (id: string) => void;
40
+ setHeaderWidth: (id: string, width: number) => void;
41
+ setRootRef: (rootRef: HTMLDivElement) => void;
42
+ setScrollRef: (scrollRef: HTMLDivElement) => void;
43
+ calculateColumnWidths: (clear?: boolean) => void;
44
+ selectVisibleRows: () => void;
45
+ unselectVisibleRows: () => void;
46
+ unselectRow: (id: string) => void;
47
+ selectRow: (id: string) => void;
48
+ addFilterRow: (field?: string) => void;
49
+ removeFilterRow: (id: string) => void;
50
+ changeFilterRow: ({ id, ...newRow }: Pick<import('../store').TableFilterRow, "id"> & Partial<Omit<import('../store').TableFilterRow, "id">>) => void;
51
+ setFilterCombiner: (combiner: "and" | "or") => void;
52
+ clearFilter: () => void;
53
+ setAutosize: () => void;
54
+ removeAutosize: () => void;
55
+ };
56
+ }>;
57
+ export declare const TableProvider: <ITEM extends TableRowModel>({ children, store, rows, columns, loading, pageSizeOptions, rowHeight, headerHeight, rowCount, exportFileName, pagination, virtualization, searching, selection, sorting, expanding, }: PropsWithChildren<{
58
+ store: CreateTableReturn;
59
+ } & TableProps<ITEM>>) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { MutableRefObject } from 'react';
2
+ export declare const useColumnsResizing: (resizing: MutableRefObject<boolean>) => {
3
+ onPointerDown: (...args: any) => any;
4
+ onDragStart: import('react').DragEventHandler;
5
+ };
@@ -0,0 +1,54 @@
1
+ import { CreateTableStoreProps } from '../store';
2
+ export declare const useCreateTable: (props?: CreateTableStoreProps) => {
3
+ useStore: import('zustand').UseBoundStore<Omit<import('zustand').StoreApi<import('../store').Store>, "persist"> & {
4
+ persist: {
5
+ setOptions: (options: Partial<import('zustand/middleware').PersistOptions<import('../store').Store, {
6
+ page: number;
7
+ sort: import('../types').TableSortModel | null;
8
+ search: string;
9
+ pageSize: number;
10
+ }>>) => void;
11
+ clearStorage: () => void;
12
+ rehydrate: () => Promise<void> | void;
13
+ hasHydrated: () => boolean;
14
+ onHydrate: (fn: (state: import('../store').Store) => void) => () => void;
15
+ onFinishHydration: (fn: (state: import('../store').Store) => void) => () => void;
16
+ getOptions: () => Partial<import('zustand/middleware').PersistOptions<import('../store').Store, {
17
+ page: number;
18
+ sort: import('../types').TableSortModel | null;
19
+ search: string;
20
+ pageSize: number;
21
+ }>>;
22
+ };
23
+ }>;
24
+ api: {
25
+ setPageSize: (v: number) => void;
26
+ setPage: (v: number) => void;
27
+ setSort: (v: import('../types').TableSortModel | null) => void;
28
+ downloadCSV: () => void;
29
+ downloadExcel: () => void;
30
+ setSelected: (selected: string[]) => void;
31
+ toggleColumn: (v: string) => void;
32
+ setVisibleColumns: (v: string[]) => void;
33
+ setSearch: (v: string) => void;
34
+ setPrevPage: () => void;
35
+ setNextPage: () => void;
36
+ setColumnWidth: (field: string, setWidth: number) => void;
37
+ toggleRowExpand: (id: string) => void;
38
+ setHeaderWidth: (id: string, width: number) => void;
39
+ setRootRef: (rootRef: HTMLDivElement) => void;
40
+ setScrollRef: (scrollRef: HTMLDivElement) => void;
41
+ calculateColumnWidths: (clear?: boolean) => void;
42
+ selectVisibleRows: () => void;
43
+ unselectVisibleRows: () => void;
44
+ unselectRow: (id: string) => void;
45
+ selectRow: (id: string) => void;
46
+ addFilterRow: (field?: string) => void;
47
+ removeFilterRow: (id: string) => void;
48
+ changeFilterRow: ({ id, ...newRow }: Pick<import('../store').TableFilterRow, "id"> & Partial<Omit<import('../store').TableFilterRow, "id">>) => void;
49
+ setFilterCombiner: (combiner: "and" | "or") => void;
50
+ clearFilter: () => void;
51
+ setAutosize: () => void;
52
+ removeAutosize: () => void;
53
+ };
54
+ };
@@ -0,0 +1 @@
1
+ export declare const useSaveRowCount: (total?: number) => number;
@@ -0,0 +1,2 @@
1
+ import { MouseEventHandler, MutableRefObject } from 'react';
2
+ export declare const useSorting: (resizing: MutableRefObject<boolean>) => MouseEventHandler<HTMLDivElement>;
@@ -0,0 +1,53 @@
1
+ export declare const useTableStore: () => {
2
+ useStore: import('zustand').UseBoundStore<Omit<import('zustand').StoreApi<import('../store').Store>, "persist"> & {
3
+ persist: {
4
+ setOptions: (options: Partial<import('zustand/middleware').PersistOptions<import('../store').Store, {
5
+ page: number;
6
+ sort: import('../types').TableSortModel | null;
7
+ search: string;
8
+ pageSize: number;
9
+ }>>) => void;
10
+ clearStorage: () => void;
11
+ rehydrate: () => Promise<void> | void;
12
+ hasHydrated: () => boolean;
13
+ onHydrate: (fn: (state: import('../store').Store) => void) => () => void;
14
+ onFinishHydration: (fn: (state: import('../store').Store) => void) => () => void;
15
+ getOptions: () => Partial<import('zustand/middleware').PersistOptions<import('../store').Store, {
16
+ page: number;
17
+ sort: import('../types').TableSortModel | null;
18
+ search: string;
19
+ pageSize: number;
20
+ }>>;
21
+ };
22
+ }>;
23
+ api: {
24
+ setPageSize: (v: number) => void;
25
+ setPage: (v: number) => void;
26
+ setSort: (v: import('../types').TableSortModel | null) => void;
27
+ downloadCSV: () => void;
28
+ downloadExcel: () => void;
29
+ setSelected: (selected: string[]) => void;
30
+ toggleColumn: (v: string) => void;
31
+ setVisibleColumns: (v: string[]) => void;
32
+ setSearch: (v: string) => void;
33
+ setPrevPage: () => void;
34
+ setNextPage: () => void;
35
+ setColumnWidth: (field: string, setWidth: number) => void;
36
+ toggleRowExpand: (id: string) => void;
37
+ setHeaderWidth: (id: string, width: number) => void;
38
+ setRootRef: (rootRef: HTMLDivElement) => void;
39
+ setScrollRef: (scrollRef: HTMLDivElement) => void;
40
+ calculateColumnWidths: (clear?: boolean) => void;
41
+ selectVisibleRows: () => void;
42
+ unselectVisibleRows: () => void;
43
+ unselectRow: (id: string) => void;
44
+ selectRow: (id: string) => void;
45
+ addFilterRow: (field?: string) => void;
46
+ removeFilterRow: (id: string) => void;
47
+ changeFilterRow: ({ id, ...newRow }: Pick<import('../store').TableFilterRow, "id"> & Partial<Omit<import('../store').TableFilterRow, "id">>) => void;
48
+ setFilterCombiner: (combiner: "and" | "or") => void;
49
+ clearFilter: () => void;
50
+ setAutosize: () => void;
51
+ removeAutosize: () => void;
52
+ };
53
+ };