@raystack/apsara 0.33.1 → 0.34.1
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.
- package/dist/style.css +1 -1
- package/dist/v1/components/calendar/calendar.cjs +2 -2
- package/dist/v1/components/calendar/calendar.cjs.map +1 -1
- package/dist/v1/components/calendar/calendar.d.ts.map +1 -1
- package/dist/v1/components/calendar/calendar.js +2 -2
- package/dist/v1/components/calendar/calendar.js.map +1 -1
- package/dist/v1/components/data-table/components/content.cjs +11 -6
- package/dist/v1/components/data-table/components/content.cjs.map +1 -1
- package/dist/v1/components/data-table/components/content.d.ts.map +1 -1
- package/dist/v1/components/data-table/components/content.js +11 -6
- package/dist/v1/components/data-table/components/content.js.map +1 -1
- package/dist/v1/components/data-table/components/display-properties.cjs +1 -1
- package/dist/v1/components/data-table/components/display-properties.cjs.map +1 -1
- package/dist/v1/components/data-table/components/display-properties.js +1 -1
- package/dist/v1/components/data-table/components/display-properties.js.map +1 -1
- package/dist/v1/components/data-table/components/display-settings.cjs +11 -4
- package/dist/v1/components/data-table/components/display-settings.cjs.map +1 -1
- package/dist/v1/components/data-table/components/display-settings.d.ts.map +1 -1
- package/dist/v1/components/data-table/components/display-settings.js +11 -4
- package/dist/v1/components/data-table/components/display-settings.js.map +1 -1
- package/dist/v1/components/data-table/components/filters.cjs +3 -2
- package/dist/v1/components/data-table/components/filters.cjs.map +1 -1
- package/dist/v1/components/data-table/components/filters.js +3 -2
- package/dist/v1/components/data-table/components/filters.js.map +1 -1
- package/dist/v1/components/data-table/components/grouping.cjs +7 -4
- package/dist/v1/components/data-table/components/grouping.cjs.map +1 -1
- package/dist/v1/components/data-table/components/grouping.d.ts +4 -3
- package/dist/v1/components/data-table/components/grouping.d.ts.map +1 -1
- package/dist/v1/components/data-table/components/grouping.js +7 -4
- package/dist/v1/components/data-table/components/grouping.js.map +1 -1
- package/dist/v1/components/data-table/components/ordering.cjs.map +1 -1
- package/dist/v1/components/data-table/components/ordering.d.ts +2 -2
- package/dist/v1/components/data-table/components/ordering.d.ts.map +1 -1
- package/dist/v1/components/data-table/components/ordering.js.map +1 -1
- package/dist/v1/components/data-table/data-table.cjs +4 -2
- package/dist/v1/components/data-table/data-table.cjs.map +1 -1
- package/dist/v1/components/data-table/data-table.d.ts +1 -1
- package/dist/v1/components/data-table/data-table.d.ts.map +1 -1
- package/dist/v1/components/data-table/data-table.js +4 -2
- package/dist/v1/components/data-table/data-table.js.map +1 -1
- package/dist/v1/components/data-table/data-table.module.css.cjs +1 -1
- package/dist/v1/components/data-table/data-table.module.css.js +1 -1
- package/dist/v1/components/data-table/data-table.types.cjs +7 -0
- package/dist/v1/components/data-table/data-table.types.cjs.map +1 -1
- package/dist/v1/components/data-table/data-table.types.d.ts +26 -11
- package/dist/v1/components/data-table/data-table.types.d.ts.map +1 -1
- package/dist/v1/components/data-table/data-table.types.js +6 -1
- package/dist/v1/components/data-table/data-table.types.js.map +1 -1
- package/dist/v1/components/data-table/hooks/useFilters.cjs +8 -5
- package/dist/v1/components/data-table/hooks/useFilters.cjs.map +1 -1
- package/dist/v1/components/data-table/hooks/useFilters.d.ts.map +1 -1
- package/dist/v1/components/data-table/hooks/useFilters.js +9 -6
- package/dist/v1/components/data-table/hooks/useFilters.js.map +1 -1
- package/dist/v1/components/data-table/index.d.ts +1 -1
- package/dist/v1/components/data-table/index.d.ts.map +1 -1
- package/dist/v1/components/data-table/utils/filter-operations.cjs +56 -1
- package/dist/v1/components/data-table/utils/filter-operations.cjs.map +1 -1
- package/dist/v1/components/data-table/utils/filter-operations.d.ts +17 -2
- package/dist/v1/components/data-table/utils/filter-operations.d.ts.map +1 -1
- package/dist/v1/components/data-table/utils/filter-operations.js +54 -2
- package/dist/v1/components/data-table/utils/filter-operations.js.map +1 -1
- package/dist/v1/components/data-table/utils/index.cjs +38 -36
- package/dist/v1/components/data-table/utils/index.cjs.map +1 -1
- package/dist/v1/components/data-table/utils/index.d.ts +2 -6
- package/dist/v1/components/data-table/utils/index.d.ts.map +1 -1
- package/dist/v1/components/data-table/utils/index.js +36 -33
- package/dist/v1/components/data-table/utils/index.js.map +1 -1
- package/dist/v1/components/filter-chip/filter-chip.cjs +2 -2
- package/dist/v1/components/filter-chip/filter-chip.cjs.map +1 -1
- package/dist/v1/components/filter-chip/filter-chip.js +2 -2
- package/dist/v1/components/filter-chip/filter-chip.js.map +1 -1
- package/dist/v1/components/select/select.cjs +8 -2
- package/dist/v1/components/select/select.cjs.map +1 -1
- package/dist/v1/components/select/select.d.ts +1 -0
- package/dist/v1/components/select/select.d.ts.map +1 -1
- package/dist/v1/components/select/select.js +8 -2
- package/dist/v1/components/select/select.js.map +1 -1
- package/dist/v1/components/table/table.cjs.map +1 -1
- package/dist/v1/components/table/table.d.ts +1 -1
- package/dist/v1/components/table/table.js.map +1 -1
- package/dist/v1/index.cjs +4 -2
- package/dist/v1/index.cjs.map +1 -1
- package/dist/v1/index.d.ts +1 -1
- package/dist/v1/index.d.ts.map +1 -1
- package/dist/v1/index.js +2 -2
- package/dist/v1/style.css +1 -1
- package/dist/v1/types/filters.cjs +2 -2
- package/dist/v1/types/filters.cjs.map +1 -1
- package/dist/v1/types/filters.d.ts +5 -5
- package/dist/v1/types/filters.d.ts.map +1 -1
- package/dist/v1/types/filters.js +2 -2
- package/dist/v1/types/filters.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,30 +1,35 @@
|
|
|
1
1
|
import type { Column, ColumnDef, Table } from "@tanstack/table-core";
|
|
2
|
-
import type { FilterOperatorTypes, FilterSelectOption, FilterTypes } from "~/v1/types/filters";
|
|
2
|
+
import type { FilterOperatorTypes, FilterSelectOption, FilterTypes, FilterValueType } from "~/v1/types/filters";
|
|
3
3
|
export type DataTableMode = "client" | "server";
|
|
4
4
|
export declare const SortOrders: {
|
|
5
5
|
readonly ASC: "asc";
|
|
6
6
|
readonly DESC: "desc";
|
|
7
7
|
};
|
|
8
|
-
export interface
|
|
9
|
-
|
|
8
|
+
export interface RQLFilterValues {
|
|
9
|
+
value: any;
|
|
10
|
+
boolValue?: boolean;
|
|
11
|
+
stringValue?: string;
|
|
12
|
+
numberValue?: number;
|
|
13
|
+
}
|
|
14
|
+
export interface RQLFilter extends RQLFilterValues {
|
|
15
|
+
_type?: FilterTypes;
|
|
16
|
+
_dataType?: FilterValueType;
|
|
10
17
|
name: string;
|
|
11
18
|
operator: FilterOperatorTypes;
|
|
12
|
-
value: any;
|
|
13
19
|
}
|
|
14
20
|
type SortOrdersKeys = keyof typeof SortOrders;
|
|
15
21
|
export type SortOrdersValues = typeof SortOrders[SortOrdersKeys];
|
|
16
|
-
export interface
|
|
22
|
+
export interface DataTableSort {
|
|
17
23
|
name: string;
|
|
18
24
|
order: SortOrdersValues;
|
|
19
25
|
}
|
|
20
26
|
export interface DataTableQuery {
|
|
21
27
|
filters?: RQLFilter[];
|
|
22
|
-
sort?:
|
|
28
|
+
sort?: DataTableSort[];
|
|
23
29
|
group_by?: string[];
|
|
24
30
|
offset?: number;
|
|
25
31
|
limit?: number;
|
|
26
32
|
search?: string;
|
|
27
|
-
__group_by_sort?: SortOrdersValues;
|
|
28
33
|
}
|
|
29
34
|
export type DataTableColumn<TData, TValue> = Omit<Column<TData, TValue>, "columnDef"> & {
|
|
30
35
|
columnDef: DataTableColumnDef<TData, TValue>;
|
|
@@ -32,7 +37,8 @@ export type DataTableColumn<TData, TValue> = Omit<Column<TData, TValue>, "column
|
|
|
32
37
|
export type DataTableColumnDef<TData, TValue> = ColumnDef<TData, TValue> & {
|
|
33
38
|
accessorKey: string;
|
|
34
39
|
header: string;
|
|
35
|
-
|
|
40
|
+
filterType?: FilterTypes;
|
|
41
|
+
dataType?: FilterValueType;
|
|
36
42
|
enableColumnFilter?: boolean;
|
|
37
43
|
enableSorting?: boolean;
|
|
38
44
|
enableHiding?: boolean;
|
|
@@ -47,9 +53,9 @@ export type DataTableColumnDef<TData, TValue> = ColumnDef<TData, TValue> & {
|
|
|
47
53
|
header?: React.CSSProperties;
|
|
48
54
|
};
|
|
49
55
|
enableGrouping?: boolean;
|
|
50
|
-
groupSortOrder?: SortOrdersValues;
|
|
51
56
|
showGroupCount?: boolean;
|
|
52
57
|
groupCountMap?: Record<string, number>;
|
|
58
|
+
groupLabelsMap?: Record<string, string>;
|
|
53
59
|
icon?: React.ReactNode;
|
|
54
60
|
};
|
|
55
61
|
export interface DataTableProps<TData, TValue> {
|
|
@@ -61,8 +67,9 @@ export interface DataTableProps<TData, TValue> {
|
|
|
61
67
|
loadingRowCount?: number;
|
|
62
68
|
tableQuery?: DataTableQuery;
|
|
63
69
|
onTableQueryChange?: (query: DataTableQuery) => void;
|
|
64
|
-
defaultSort:
|
|
70
|
+
defaultSort: DataTableSort;
|
|
65
71
|
onLoadMore?: () => Promise<void>;
|
|
72
|
+
onRowClick?: (row: TData) => void;
|
|
66
73
|
}
|
|
67
74
|
export type DataTableContentProps = {
|
|
68
75
|
emptyState?: React.ReactNode;
|
|
@@ -70,6 +77,7 @@ export type DataTableContentProps = {
|
|
|
70
77
|
table?: string;
|
|
71
78
|
header?: string;
|
|
72
79
|
body?: string;
|
|
80
|
+
row?: string;
|
|
73
81
|
};
|
|
74
82
|
};
|
|
75
83
|
export type TableQueryUpdateFn = (query: DataTableQuery) => DataTableQuery;
|
|
@@ -79,11 +87,12 @@ export type TableContextType<TData, TValue> = {
|
|
|
79
87
|
isLoading?: boolean;
|
|
80
88
|
loadMoreData: () => void;
|
|
81
89
|
mode: DataTableMode;
|
|
82
|
-
defaultSort:
|
|
90
|
+
defaultSort: DataTableSort;
|
|
83
91
|
tableQuery?: DataTableQuery;
|
|
84
92
|
loadingRowCount?: number;
|
|
85
93
|
onDisplaySettingsReset: () => void;
|
|
86
94
|
updateTableQuery: (fn: TableQueryUpdateFn) => void;
|
|
95
|
+
onRowClick?: (row: TData) => void;
|
|
87
96
|
};
|
|
88
97
|
export interface ColumnData {
|
|
89
98
|
label: string;
|
|
@@ -93,10 +102,16 @@ export interface ColumnData {
|
|
|
93
102
|
interface SubRows<T> {
|
|
94
103
|
}
|
|
95
104
|
export interface GroupedData<T> extends SubRows<T> {
|
|
105
|
+
label: string;
|
|
96
106
|
group_key: string;
|
|
97
107
|
subRows: T[];
|
|
98
108
|
count?: number;
|
|
99
109
|
showGroupCount?: boolean;
|
|
100
110
|
}
|
|
111
|
+
export declare const defaultGroupOption: {
|
|
112
|
+
id: string;
|
|
113
|
+
label: string;
|
|
114
|
+
};
|
|
115
|
+
export declare const EmptyFilterValue = "--empty--";
|
|
101
116
|
export {};
|
|
102
117
|
//# sourceMappingURL=data-table.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.types.d.ts","sourceRoot":"","sources":["../../../../v1/components/data-table/data-table.types.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,
|
|
1
|
+
{"version":3,"file":"data-table.types.d.ts","sourceRoot":"","sources":["../../../../v1/components/data-table/data-table.types.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,11 @@ const SortOrders = {
|
|
|
2
2
|
ASC: "asc",
|
|
3
3
|
DESC: "desc",
|
|
4
4
|
};
|
|
5
|
+
const defaultGroupOption = {
|
|
6
|
+
id: "--",
|
|
7
|
+
label: "No grouping",
|
|
8
|
+
};
|
|
9
|
+
const EmptyFilterValue = "--empty--";
|
|
5
10
|
|
|
6
|
-
export { SortOrders };
|
|
11
|
+
export { EmptyFilterValue, SortOrders, defaultGroupOption };
|
|
7
12
|
//# sourceMappingURL=data-table.types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table.types.js","sources":["../../../../v1/components/data-table/data-table.types.tsx"],"sourcesContent":["import type { Column, ColumnDef, Table } from \"@tanstack/table-core\";\nimport type {\n FilterOperatorTypes,\n FilterSelectOption,\n FilterTypes,\n} from \"~/v1/types/filters\";\n\nexport type DataTableMode = \"client\" | \"server\";\n\nexport const SortOrders = {\n ASC: \"asc\",\n DESC: \"desc\",\n} as const;\n\nexport interface RQLFilter {\n _type
|
|
1
|
+
{"version":3,"file":"data-table.types.js","sources":["../../../../v1/components/data-table/data-table.types.tsx"],"sourcesContent":["import type { Column, ColumnDef, Table } from \"@tanstack/table-core\";\nimport type {\n FilterOperatorTypes,\n FilterSelectOption,\n FilterTypes,\n FilterValueType,\n} from \"~/v1/types/filters\";\n\nexport type DataTableMode = \"client\" | \"server\";\n\nexport const SortOrders = {\n ASC: \"asc\",\n DESC: \"desc\",\n} as const;\n\nexport interface RQLFilterValues {\n value: any;\n // Only one of these value fields should be present at a time\n boolValue?: boolean;\n stringValue?: string;\n numberValue?: number;\n}\nexport interface RQLFilter extends RQLFilterValues {\n _type?: FilterTypes;\n _dataType?: FilterValueType;\n name: string;\n operator: FilterOperatorTypes;\n}\n\ntype SortOrdersKeys = keyof typeof SortOrders;\nexport type SortOrdersValues = typeof SortOrders[SortOrdersKeys];\n\nexport interface DataTableSort {\n name: string;\n order: SortOrdersValues;\n}\n\nexport interface DataTableQuery {\n filters?: RQLFilter[];\n sort?: DataTableSort[];\n group_by?: string[];\n offset?: number;\n limit?: number;\n search?: string;\n}\n\nexport type DataTableColumn<TData, TValue> = Omit<\n Column<TData, TValue>,\n \"columnDef\"\n> & {\n columnDef: DataTableColumnDef<TData, TValue>;\n};\n\nexport type DataTableColumnDef<TData, TValue> = ColumnDef<TData, TValue> & {\n accessorKey: string;\n header: string;\n filterType?: FilterTypes;\n dataType?: FilterValueType;\n enableColumnFilter?: boolean;\n enableSorting?: boolean;\n enableHiding?: boolean;\n defaultHidden?: boolean;\n filterOptions?: FilterSelectOption[];\n classNames?: {\n cell?: string;\n header?: string;\n };\n styles?: {\n cell?: React.CSSProperties;\n header?: React.CSSProperties;\n };\n enableGrouping?: boolean;\n showGroupCount?: boolean;\n groupCountMap?: Record<string, number>;\n groupLabelsMap?: Record<string, string>;\n // TODO: implement these\n icon?: React.ReactNode;\n};\n\nexport interface DataTableProps<TData, TValue> {\n columns: DataTableColumnDef<TData, TValue>[];\n data: TData[];\n query?: DataTableQuery;\n mode?: DataTableMode;\n isLoading?: boolean;\n loadingRowCount?: number;\n tableQuery?: DataTableQuery;\n onTableQueryChange?: (query: DataTableQuery) => void;\n defaultSort: DataTableSort;\n onLoadMore?: () => Promise<void>;\n onRowClick?: (row: TData) => void;\n}\n\nexport type DataTableContentProps = {\n emptyState?: React.ReactNode;\n classNames?: {\n table?: string;\n header?: string;\n body?: string;\n row?: string;\n };\n};\n\nexport type TableQueryUpdateFn = (query: DataTableQuery) => DataTableQuery;\n\nexport type TableContextType<TData, TValue> = {\n table: Table<TData>;\n columns: DataTableColumnDef<TData, TValue>[];\n isLoading?: boolean;\n loadMoreData: () => void;\n mode: DataTableMode;\n defaultSort: DataTableSort;\n tableQuery?: DataTableQuery;\n loadingRowCount?: number;\n onDisplaySettingsReset: () => void;\n updateTableQuery: (fn: TableQueryUpdateFn) => void;\n onRowClick?: (row: TData) => void;\n};\n\nexport interface ColumnData {\n label: string;\n id: string;\n isVisible?: boolean;\n}\n\ninterface SubRows<T> {}\n\nexport interface GroupedData<T> extends SubRows<T> {\n label: string;\n group_key: string;\n subRows: T[];\n count?: number;\n showGroupCount?: boolean;\n}\n\nexport const defaultGroupOption = {\n id: \"--\",\n label: \"No grouping\",\n};\n\nexport const EmptyFilterValue = \"--empty--\";\n"],"names":[],"mappings":"AAUa,MAAA,UAAU,GAAG;AACxB,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,IAAI,EAAE,MAAM;EACH;AA0HE,MAAA,kBAAkB,GAAG;AAChC,IAAA,EAAE,EAAE,IAAI;AACR,IAAA,KAAK,EAAE,aAAa;EACpB;AAEK,MAAM,gBAAgB,GAAG;;;;"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var useDataTable = require('./useDataTable.cjs');
|
|
4
4
|
var filters = require('../../../types/filters.cjs');
|
|
5
|
+
var filterOperations = require('../utils/filter-operations.cjs');
|
|
5
6
|
|
|
6
7
|
function useFilters() {
|
|
7
8
|
const { updateTableQuery } = useDataTable.useDataTable();
|
|
@@ -9,11 +10,12 @@ function useFilters() {
|
|
|
9
10
|
const columnDef = column.columnDef;
|
|
10
11
|
const id = columnDef.accessorKey || column.id;
|
|
11
12
|
const options = columnDef.filterOptions || [];
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
13
|
+
const filterType = columnDef.filterType || filters.FilterType.string;
|
|
14
|
+
const dataType = filterOperations.getDataType({ filterType, dataType: columnDef.dataType });
|
|
15
|
+
const defaultFilter = filters.filterOperators[filterType][0];
|
|
16
|
+
const defaultValue = filterType === filters.FilterType.date
|
|
15
17
|
? new Date()
|
|
16
|
-
:
|
|
18
|
+
: filterType === filters.FilterType.select
|
|
17
19
|
? options[0].value
|
|
18
20
|
: "";
|
|
19
21
|
updateTableQuery((query) => {
|
|
@@ -23,7 +25,8 @@ function useFilters() {
|
|
|
23
25
|
...(query.filters || []),
|
|
24
26
|
// TODO: Add default filter value in column definition
|
|
25
27
|
{
|
|
26
|
-
|
|
28
|
+
_dataType: dataType,
|
|
29
|
+
_type: filterType,
|
|
27
30
|
name: id,
|
|
28
31
|
value: defaultValue,
|
|
29
32
|
operator: defaultFilter.value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFilters.cjs","sources":["../../../../../v1/components/data-table/hooks/useFilters.tsx"],"sourcesContent":["import { useDataTable } from \"./useDataTable\";\nimport {\n FilterOperatorTypes,\n FilterType,\n filterOperators,\n} from \"~/v1/types/filters\";\nimport { DataTableColumn } from \"../data-table.types\";\n\nexport function useFilters<TData, TValue>() {\n const { updateTableQuery } = useDataTable();\n\n function onAddFilter(column: DataTableColumn<TData, TValue>) {\n const columnDef = column.columnDef;\n const id = columnDef.accessorKey || column.id;\n const options = columnDef.filterOptions || [];\n const
|
|
1
|
+
{"version":3,"file":"useFilters.cjs","sources":["../../../../../v1/components/data-table/hooks/useFilters.tsx"],"sourcesContent":["import { useDataTable } from \"./useDataTable\";\nimport {\n FilterOperatorTypes,\n FilterType,\n filterOperators,\n} from \"~/v1/types/filters\";\nimport { DataTableColumn } from \"../data-table.types\";\nimport { getDataType } from \"../utils/filter-operations\";\n\nexport function useFilters<TData, TValue>() {\n const { updateTableQuery } = useDataTable();\n\n function onAddFilter(column: DataTableColumn<TData, TValue>) {\n const columnDef = column.columnDef;\n const id = columnDef.accessorKey || column.id;\n const options = columnDef.filterOptions || [];\n const filterType = columnDef.filterType || FilterType.string;\n const dataType = getDataType({ filterType, dataType: columnDef.dataType });\n const defaultFilter = filterOperators[filterType][0];\n const defaultValue =\n filterType === FilterType.date\n ? new Date()\n : filterType === FilterType.select\n ? options[0].value\n : \"\";\n\n updateTableQuery((query) => {\n return {\n ...query,\n filters: [\n ...(query.filters || []),\n // TODO: Add default filter value in column definition\n {\n _dataType: dataType,\n _type: filterType,\n name: id,\n value: defaultValue,\n operator: defaultFilter.value,\n },\n ],\n };\n });\n }\n\n function handleRemoveFilter(columnId: string) {\n updateTableQuery((query) => {\n return {\n ...query,\n filters: query.filters?.filter((filter) => filter.name !== columnId),\n };\n });\n }\n\n function handleFilterValueChange(columnId: string, value: any) {\n updateTableQuery((query) => {\n return {\n ...query,\n filters: query.filters?.map((filter) => {\n if (filter.name === columnId) {\n return { ...filter, value };\n }\n return filter;\n }),\n };\n });\n }\n\n function handleFilterOperationChange(\n columnId: string,\n operator: FilterOperatorTypes\n ) {\n updateTableQuery((query) => {\n return {\n ...query,\n filters: query.filters?.map((filter) => {\n if (filter.name === columnId) {\n return { ...filter, operator };\n }\n return filter;\n }),\n };\n });\n }\n\n return {\n onAddFilter,\n handleRemoveFilter,\n handleFilterValueChange,\n handleFilterOperationChange,\n };\n}\n"],"names":["useDataTable","FilterType","getDataType","filterOperators"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFilters.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/hooks/useFilters.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"useFilters.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/hooks/useFilters.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,EAGpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM;0BAGT,gBAAgB,KAAK,EAAE,MAAM,CAAC;mCAgCrB,MAAM;wCASD,MAAM,SAAS,GAAG;4CAejD,MAAM,YACN,mBAAmB;EAqBhC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { useDataTable } from './useDataTable.js';
|
|
2
|
-
import {
|
|
2
|
+
import { FilterType, filterOperators } from '../../../types/filters.js';
|
|
3
|
+
import { getDataType } from '../utils/filter-operations.js';
|
|
3
4
|
|
|
4
5
|
function useFilters() {
|
|
5
6
|
const { updateTableQuery } = useDataTable();
|
|
@@ -7,11 +8,12 @@ function useFilters() {
|
|
|
7
8
|
const columnDef = column.columnDef;
|
|
8
9
|
const id = columnDef.accessorKey || column.id;
|
|
9
10
|
const options = columnDef.filterOptions || [];
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
11
|
+
const filterType = columnDef.filterType || FilterType.string;
|
|
12
|
+
const dataType = getDataType({ filterType, dataType: columnDef.dataType });
|
|
13
|
+
const defaultFilter = filterOperators[filterType][0];
|
|
14
|
+
const defaultValue = filterType === FilterType.date
|
|
13
15
|
? new Date()
|
|
14
|
-
:
|
|
16
|
+
: filterType === FilterType.select
|
|
15
17
|
? options[0].value
|
|
16
18
|
: "";
|
|
17
19
|
updateTableQuery((query) => {
|
|
@@ -21,7 +23,8 @@ function useFilters() {
|
|
|
21
23
|
...(query.filters || []),
|
|
22
24
|
// TODO: Add default filter value in column definition
|
|
23
25
|
{
|
|
24
|
-
|
|
26
|
+
_dataType: dataType,
|
|
27
|
+
_type: filterType,
|
|
25
28
|
name: id,
|
|
26
29
|
value: defaultValue,
|
|
27
30
|
operator: defaultFilter.value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFilters.js","sources":["../../../../../v1/components/data-table/hooks/useFilters.tsx"],"sourcesContent":["import { useDataTable } from \"./useDataTable\";\nimport {\n FilterOperatorTypes,\n FilterType,\n filterOperators,\n} from \"~/v1/types/filters\";\nimport { DataTableColumn } from \"../data-table.types\";\n\nexport function useFilters<TData, TValue>() {\n const { updateTableQuery } = useDataTable();\n\n function onAddFilter(column: DataTableColumn<TData, TValue>) {\n const columnDef = column.columnDef;\n const id = columnDef.accessorKey || column.id;\n const options = columnDef.filterOptions || [];\n const
|
|
1
|
+
{"version":3,"file":"useFilters.js","sources":["../../../../../v1/components/data-table/hooks/useFilters.tsx"],"sourcesContent":["import { useDataTable } from \"./useDataTable\";\nimport {\n FilterOperatorTypes,\n FilterType,\n filterOperators,\n} from \"~/v1/types/filters\";\nimport { DataTableColumn } from \"../data-table.types\";\nimport { getDataType } from \"../utils/filter-operations\";\n\nexport function useFilters<TData, TValue>() {\n const { updateTableQuery } = useDataTable();\n\n function onAddFilter(column: DataTableColumn<TData, TValue>) {\n const columnDef = column.columnDef;\n const id = columnDef.accessorKey || column.id;\n const options = columnDef.filterOptions || [];\n const filterType = columnDef.filterType || FilterType.string;\n const dataType = getDataType({ filterType, dataType: columnDef.dataType });\n const defaultFilter = filterOperators[filterType][0];\n const defaultValue =\n filterType === FilterType.date\n ? new Date()\n : filterType === FilterType.select\n ? options[0].value\n : \"\";\n\n updateTableQuery((query) => {\n return {\n ...query,\n filters: [\n ...(query.filters || []),\n // TODO: Add default filter value in column definition\n {\n _dataType: dataType,\n _type: filterType,\n name: id,\n value: defaultValue,\n operator: defaultFilter.value,\n },\n ],\n };\n });\n }\n\n function handleRemoveFilter(columnId: string) {\n updateTableQuery((query) => {\n return {\n ...query,\n filters: query.filters?.filter((filter) => filter.name !== columnId),\n };\n });\n }\n\n function handleFilterValueChange(columnId: string, value: any) {\n updateTableQuery((query) => {\n return {\n ...query,\n filters: query.filters?.map((filter) => {\n if (filter.name === columnId) {\n return { ...filter, value };\n }\n return filter;\n }),\n };\n });\n }\n\n function handleFilterOperationChange(\n columnId: string,\n operator: FilterOperatorTypes\n ) {\n updateTableQuery((query) => {\n return {\n ...query,\n filters: query.filters?.map((filter) => {\n if (filter.name === columnId) {\n return { ...filter, operator };\n }\n return filter;\n }),\n };\n });\n }\n\n return {\n onAddFilter,\n handleRemoveFilter,\n handleFilterValueChange,\n handleFilterOperationChange,\n };\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { DataTable } from "./data-table";
|
|
2
|
-
export { DataTableColumnDef, DataTableQuery } from "./data-table.types";
|
|
2
|
+
export { DataTableColumnDef, DataTableQuery, DataTableSort, EmptyFilterValue, } from "./data-table.types";
|
|
3
3
|
export { useDataTable } from "./hooks/useDataTable";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../v1/components/data-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../v1/components/data-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
var dayjs_min = require('../../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/dayjs.min.cjs');
|
|
4
4
|
var isSameOrAfter = require('../../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.cjs');
|
|
5
5
|
var isSameOrBefore = require('../../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.cjs');
|
|
6
|
+
var filters = require('../../../types/filters.cjs');
|
|
7
|
+
var dataTable_types = require('../data-table.types.cjs');
|
|
6
8
|
|
|
7
9
|
dayjs_min.default.extend(isSameOrAfter.default);
|
|
8
10
|
dayjs_min.default.extend(isSameOrBefore.default);
|
|
@@ -27,7 +29,7 @@ const filterOperationsMap = {
|
|
|
27
29
|
return Number(row.getValue(columnId)) >= Number(filterValue.value);
|
|
28
30
|
},
|
|
29
31
|
},
|
|
30
|
-
|
|
32
|
+
string: {
|
|
31
33
|
eq: (row, columnId, filterValue) => {
|
|
32
34
|
return (String(row.getValue(columnId)).toLowerCase() ===
|
|
33
35
|
String(filterValue.value).toLowerCase());
|
|
@@ -64,10 +66,16 @@ const filterOperationsMap = {
|
|
|
64
66
|
},
|
|
65
67
|
select: {
|
|
66
68
|
eq: (row, columnId, filterValue) => {
|
|
69
|
+
if (String(filterValue.value) === dataTable_types.EmptyFilterValue) {
|
|
70
|
+
return row.getValue(columnId) === "";
|
|
71
|
+
}
|
|
67
72
|
// Select only supports string values
|
|
68
73
|
return String(row.getValue(columnId)) === String(filterValue.value);
|
|
69
74
|
},
|
|
70
75
|
neq: (row, columnId, filterValue) => {
|
|
76
|
+
if (String(filterValue.value) === dataTable_types.EmptyFilterValue) {
|
|
77
|
+
return row.getValue(columnId) !== "";
|
|
78
|
+
}
|
|
71
79
|
// Select only supports string values
|
|
72
80
|
return String(row.getValue(columnId)) !== String(filterValue.value);
|
|
73
81
|
},
|
|
@@ -77,7 +85,54 @@ function getFilterFn(type, operator) {
|
|
|
77
85
|
// @ts-expect-error FilterOperatorTypes is union of all possible operators
|
|
78
86
|
return filterOperationsMap[type][operator];
|
|
79
87
|
}
|
|
88
|
+
const handleStringBasedTypes = (filterType, value) => {
|
|
89
|
+
switch (filterType) {
|
|
90
|
+
case filters.FilterType.date:
|
|
91
|
+
return {
|
|
92
|
+
value,
|
|
93
|
+
stringValue: value.toISOString(),
|
|
94
|
+
};
|
|
95
|
+
case filters.FilterType.select:
|
|
96
|
+
return {
|
|
97
|
+
stringValue: value === dataTable_types.EmptyFilterValue ? "" : value,
|
|
98
|
+
value,
|
|
99
|
+
};
|
|
100
|
+
default:
|
|
101
|
+
return {
|
|
102
|
+
stringValue: value,
|
|
103
|
+
value,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
const getFilterOperator = ({ value, filterType, operator, }) => {
|
|
108
|
+
return value === dataTable_types.EmptyFilterValue && filterType === filters.FilterType.select
|
|
109
|
+
? "empty"
|
|
110
|
+
: operator;
|
|
111
|
+
};
|
|
112
|
+
const getFilterValue = ({ value, dataType = "string", filterType = filters.FilterType.string, }) => {
|
|
113
|
+
if (dataType === "boolean") {
|
|
114
|
+
return { boolValue: value, value };
|
|
115
|
+
}
|
|
116
|
+
if (dataType === "number") {
|
|
117
|
+
return { numberValue: value, value };
|
|
118
|
+
}
|
|
119
|
+
// Handle string-based types
|
|
120
|
+
return handleStringBasedTypes(filterType, value);
|
|
121
|
+
};
|
|
122
|
+
const getDataType = ({ filterType = filters.FilterType.string, dataType = "string", }) => {
|
|
123
|
+
switch (filterType) {
|
|
124
|
+
case filters.FilterType.select:
|
|
125
|
+
return dataType;
|
|
126
|
+
case filters.FilterType.date:
|
|
127
|
+
return "string";
|
|
128
|
+
default:
|
|
129
|
+
return filterType;
|
|
130
|
+
}
|
|
131
|
+
};
|
|
80
132
|
|
|
81
133
|
exports.filterOperationsMap = filterOperationsMap;
|
|
134
|
+
exports.getDataType = getDataType;
|
|
82
135
|
exports.getFilterFn = getFilterFn;
|
|
136
|
+
exports.getFilterOperator = getFilterOperator;
|
|
137
|
+
exports.getFilterValue = getFilterValue;
|
|
83
138
|
//# sourceMappingURL=filter-operations.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-operations.cjs","sources":["../../../../../v1/components/data-table/utils/filter-operations.tsx"],"sourcesContent":["import dayjs from \"dayjs\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore\";\n\nimport type { FilterFn } from \"@tanstack/table-core\";\nimport {\n FilterValue,\n NumberFilterOperatorType,\n TextFilterOperatorType,\n DateFilterOperatorType,\n SelectFilterOperatorType,\n FilterOperatorTypes,\n} from \"~/v1/types/filters\";\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\n\nexport type FilterFunctionsMap = {\n number: Record<NumberFilterOperatorType, FilterFn<any>>;\n text: Record<TextFilterOperatorType, FilterFn<any>>;\n date: Record<DateFilterOperatorType, FilterFn<any>>;\n select: Record<SelectFilterOperatorType, FilterFn<any>>;\n};\n\nexport const filterOperationsMap: FilterFunctionsMap = {\n number: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) === Number(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) !== Number(filterValue.value);\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) < Number(filterValue.value);\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) <= Number(filterValue.value);\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) > Number(filterValue.value);\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) >= Number(filterValue.value);\n },\n },\n text: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() ===\n String(filterValue.value).toLowerCase()\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() !==\n String(filterValue.value).toLowerCase()\n );\n },\n like: (row, columnId, filterValue: FilterValue) => {\n const columnValue = (row.getValue(columnId) as string).toLowerCase();\n const filterStr = (filterValue.value as string).toLowerCase();\n return columnValue.includes(filterStr);\n },\n },\n date: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return !dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n },\n select: {\n eq: (row, columnId, filterValue: FilterValue) => {\n // Select only supports string values\n return String(row.getValue(columnId)) === String(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n // Select only supports string values\n return String(row.getValue(columnId)) !== String(filterValue.value);\n },\n },\n} as const;\n\nexport function getFilterFn<T extends keyof FilterFunctionsMap>(\n type: T,\n operator: FilterOperatorTypes\n) {\n // @ts-expect-error FilterOperatorTypes is union of all possible operators\n return filterOperationsMap[type][operator];\n}\n"],"names":["dayjs","isSameOrAfter","isSameOrBefore"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filter-operations.cjs","sources":["../../../../../v1/components/data-table/utils/filter-operations.tsx"],"sourcesContent":["import dayjs from \"dayjs\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore\";\n\nimport type { FilterFn } from \"@tanstack/table-core\";\nimport {\n FilterValue,\n NumberFilterOperatorType,\n StringFilterOperatorType,\n DateFilterOperatorType,\n SelectFilterOperatorType,\n FilterOperatorTypes,\n FilterTypes,\n FilterValueType,\n FilterType,\n} from \"~/v1/types/filters\";\nimport { EmptyFilterValue, RQLFilterValues } from \"../data-table.types\";\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\n\nexport type FilterFunctionsMap = {\n number: Record<NumberFilterOperatorType, FilterFn<any>>;\n string: Record<StringFilterOperatorType, FilterFn<any>>;\n date: Record<DateFilterOperatorType, FilterFn<any>>;\n select: Record<SelectFilterOperatorType, FilterFn<any>>;\n};\n\nexport const filterOperationsMap: FilterFunctionsMap = {\n number: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) === Number(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) !== Number(filterValue.value);\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) < Number(filterValue.value);\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) <= Number(filterValue.value);\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) > Number(filterValue.value);\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) >= Number(filterValue.value);\n },\n },\n string: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() ===\n String(filterValue.value).toLowerCase()\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() !==\n String(filterValue.value).toLowerCase()\n );\n },\n like: (row, columnId, filterValue: FilterValue) => {\n const columnValue = (row.getValue(columnId) as string).toLowerCase();\n const filterStr = (filterValue.value as string).toLowerCase();\n return columnValue.includes(filterStr);\n },\n },\n date: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return !dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n },\n select: {\n eq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) === \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) === String(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) !== \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) !== String(filterValue.value);\n },\n },\n} as const;\n\nexport function getFilterFn<T extends keyof FilterFunctionsMap>(\n type: T,\n operator: FilterOperatorTypes\n) {\n // @ts-expect-error FilterOperatorTypes is union of all possible operators\n return filterOperationsMap[type][operator];\n}\n\nconst handleStringBasedTypes = (\n filterType: FilterTypes,\n value: any\n): RQLFilterValues => {\n switch (filterType) {\n case FilterType.date:\n return {\n value,\n stringValue: (value as Date).toISOString(),\n };\n case FilterType.select:\n return {\n stringValue: value === EmptyFilterValue ? \"\" : value,\n value,\n };\n default:\n return {\n stringValue: value,\n value,\n };\n }\n};\n\nexport const getFilterOperator = ({\n value,\n filterType,\n operator,\n}: {\n value: any;\n filterType?: FilterTypes;\n operator: FilterOperatorTypes;\n}): FilterOperatorTypes => {\n return value === EmptyFilterValue && filterType === FilterType.select\n ? \"empty\"\n : operator;\n};\n\nexport const getFilterValue = ({\n value,\n dataType = \"string\",\n filterType = FilterType.string,\n}: {\n value: any;\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): RQLFilterValues => {\n if (dataType === \"boolean\") {\n return { boolValue: value, value };\n }\n if (dataType === \"number\") {\n return { numberValue: value, value };\n }\n\n // Handle string-based types\n return handleStringBasedTypes(filterType, value);\n};\n\nexport const getDataType = ({\n filterType = FilterType.string,\n dataType = \"string\",\n}: {\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): FilterValueType => {\n switch (filterType) {\n case FilterType.select:\n return dataType;\n case FilterType.date:\n return \"string\";\n default:\n return filterType;\n }\n};\n"],"names":["dayjs","isSameOrAfter","isSameOrBefore","EmptyFilterValue","FilterType"],"mappings":"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"}
|
|
@@ -1,11 +1,26 @@
|
|
|
1
1
|
import type { FilterFn } from "@tanstack/table-core";
|
|
2
|
-
import { NumberFilterOperatorType,
|
|
2
|
+
import { NumberFilterOperatorType, StringFilterOperatorType, DateFilterOperatorType, SelectFilterOperatorType, FilterOperatorTypes, FilterTypes, FilterValueType } from "~/v1/types/filters";
|
|
3
|
+
import { RQLFilterValues } from "../data-table.types";
|
|
3
4
|
export type FilterFunctionsMap = {
|
|
4
5
|
number: Record<NumberFilterOperatorType, FilterFn<any>>;
|
|
5
|
-
|
|
6
|
+
string: Record<StringFilterOperatorType, FilterFn<any>>;
|
|
6
7
|
date: Record<DateFilterOperatorType, FilterFn<any>>;
|
|
7
8
|
select: Record<SelectFilterOperatorType, FilterFn<any>>;
|
|
8
9
|
};
|
|
9
10
|
export declare const filterOperationsMap: FilterFunctionsMap;
|
|
10
11
|
export declare function getFilterFn<T extends keyof FilterFunctionsMap>(type: T, operator: FilterOperatorTypes): any;
|
|
12
|
+
export declare const getFilterOperator: ({ value, filterType, operator, }: {
|
|
13
|
+
value: any;
|
|
14
|
+
filterType?: "string" | "number" | "select" | "date" | undefined;
|
|
15
|
+
operator: FilterOperatorTypes;
|
|
16
|
+
}) => FilterOperatorTypes;
|
|
17
|
+
export declare const getFilterValue: ({ value, dataType, filterType, }: {
|
|
18
|
+
value: any;
|
|
19
|
+
dataType?: FilterValueType | undefined;
|
|
20
|
+
filterType?: "string" | "number" | "select" | "date" | undefined;
|
|
21
|
+
}) => RQLFilterValues;
|
|
22
|
+
export declare const getDataType: ({ filterType, dataType, }: {
|
|
23
|
+
dataType?: FilterValueType | undefined;
|
|
24
|
+
filterType?: "string" | "number" | "select" | "date" | undefined;
|
|
25
|
+
}) => FilterValueType;
|
|
11
26
|
//# sourceMappingURL=filter-operations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-operations.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/utils/filter-operations.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAEL,wBAAwB,EACxB,
|
|
1
|
+
{"version":3,"file":"filter-operations.d.ts","sourceRoot":"","sources":["../../../../../v1/components/data-table/utils/filter-operations.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAEL,wBAAwB,EACxB,wBAAwB,EACxB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,WAAW,EACX,eAAe,EAEhB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAoB,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKxE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACxD,IAAI,EAAE,MAAM,CAAC,sBAAsB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,EAAE,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;CACzD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,kBA8FxB,CAAC;AAEX,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAC5D,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,mBAAmB,OAI9B;AAyBD,eAAO,MAAM,iBAAiB;WAKrB,GAAG;;cAEA,mBAAmB;MAC3B,mBAIH,CAAC;AAEF,eAAO,MAAM,cAAc;WAKlB,GAAG;;;MAGR,eAUH,CAAC;AAEF,eAAO,MAAM,WAAW;;;MAMpB,eASH,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import dayjs from '../../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/dayjs.min.js';
|
|
2
2
|
import isSameOrAfter from '../../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.js';
|
|
3
3
|
import isSameOrBefore from '../../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.js';
|
|
4
|
+
import { FilterType } from '../../../types/filters.js';
|
|
5
|
+
import { EmptyFilterValue } from '../data-table.types.js';
|
|
4
6
|
|
|
5
7
|
dayjs.extend(isSameOrAfter);
|
|
6
8
|
dayjs.extend(isSameOrBefore);
|
|
@@ -25,7 +27,7 @@ const filterOperationsMap = {
|
|
|
25
27
|
return Number(row.getValue(columnId)) >= Number(filterValue.value);
|
|
26
28
|
},
|
|
27
29
|
},
|
|
28
|
-
|
|
30
|
+
string: {
|
|
29
31
|
eq: (row, columnId, filterValue) => {
|
|
30
32
|
return (String(row.getValue(columnId)).toLowerCase() ===
|
|
31
33
|
String(filterValue.value).toLowerCase());
|
|
@@ -62,10 +64,16 @@ const filterOperationsMap = {
|
|
|
62
64
|
},
|
|
63
65
|
select: {
|
|
64
66
|
eq: (row, columnId, filterValue) => {
|
|
67
|
+
if (String(filterValue.value) === EmptyFilterValue) {
|
|
68
|
+
return row.getValue(columnId) === "";
|
|
69
|
+
}
|
|
65
70
|
// Select only supports string values
|
|
66
71
|
return String(row.getValue(columnId)) === String(filterValue.value);
|
|
67
72
|
},
|
|
68
73
|
neq: (row, columnId, filterValue) => {
|
|
74
|
+
if (String(filterValue.value) === EmptyFilterValue) {
|
|
75
|
+
return row.getValue(columnId) !== "";
|
|
76
|
+
}
|
|
69
77
|
// Select only supports string values
|
|
70
78
|
return String(row.getValue(columnId)) !== String(filterValue.value);
|
|
71
79
|
},
|
|
@@ -75,6 +83,50 @@ function getFilterFn(type, operator) {
|
|
|
75
83
|
// @ts-expect-error FilterOperatorTypes is union of all possible operators
|
|
76
84
|
return filterOperationsMap[type][operator];
|
|
77
85
|
}
|
|
86
|
+
const handleStringBasedTypes = (filterType, value) => {
|
|
87
|
+
switch (filterType) {
|
|
88
|
+
case FilterType.date:
|
|
89
|
+
return {
|
|
90
|
+
value,
|
|
91
|
+
stringValue: value.toISOString(),
|
|
92
|
+
};
|
|
93
|
+
case FilterType.select:
|
|
94
|
+
return {
|
|
95
|
+
stringValue: value === EmptyFilterValue ? "" : value,
|
|
96
|
+
value,
|
|
97
|
+
};
|
|
98
|
+
default:
|
|
99
|
+
return {
|
|
100
|
+
stringValue: value,
|
|
101
|
+
value,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
const getFilterOperator = ({ value, filterType, operator, }) => {
|
|
106
|
+
return value === EmptyFilterValue && filterType === FilterType.select
|
|
107
|
+
? "empty"
|
|
108
|
+
: operator;
|
|
109
|
+
};
|
|
110
|
+
const getFilterValue = ({ value, dataType = "string", filterType = FilterType.string, }) => {
|
|
111
|
+
if (dataType === "boolean") {
|
|
112
|
+
return { boolValue: value, value };
|
|
113
|
+
}
|
|
114
|
+
if (dataType === "number") {
|
|
115
|
+
return { numberValue: value, value };
|
|
116
|
+
}
|
|
117
|
+
// Handle string-based types
|
|
118
|
+
return handleStringBasedTypes(filterType, value);
|
|
119
|
+
};
|
|
120
|
+
const getDataType = ({ filterType = FilterType.string, dataType = "string", }) => {
|
|
121
|
+
switch (filterType) {
|
|
122
|
+
case FilterType.select:
|
|
123
|
+
return dataType;
|
|
124
|
+
case FilterType.date:
|
|
125
|
+
return "string";
|
|
126
|
+
default:
|
|
127
|
+
return filterType;
|
|
128
|
+
}
|
|
129
|
+
};
|
|
78
130
|
|
|
79
|
-
export { filterOperationsMap, getFilterFn };
|
|
131
|
+
export { filterOperationsMap, getDataType, getFilterFn, getFilterOperator, getFilterValue };
|
|
80
132
|
//# sourceMappingURL=filter-operations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-operations.js","sources":["../../../../../v1/components/data-table/utils/filter-operations.tsx"],"sourcesContent":["import dayjs from \"dayjs\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore\";\n\nimport type { FilterFn } from \"@tanstack/table-core\";\nimport {\n FilterValue,\n NumberFilterOperatorType,\n TextFilterOperatorType,\n DateFilterOperatorType,\n SelectFilterOperatorType,\n FilterOperatorTypes,\n} from \"~/v1/types/filters\";\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\n\nexport type FilterFunctionsMap = {\n number: Record<NumberFilterOperatorType, FilterFn<any>>;\n text: Record<TextFilterOperatorType, FilterFn<any>>;\n date: Record<DateFilterOperatorType, FilterFn<any>>;\n select: Record<SelectFilterOperatorType, FilterFn<any>>;\n};\n\nexport const filterOperationsMap: FilterFunctionsMap = {\n number: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) === Number(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) !== Number(filterValue.value);\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) < Number(filterValue.value);\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) <= Number(filterValue.value);\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) > Number(filterValue.value);\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) >= Number(filterValue.value);\n },\n },\n text: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() ===\n String(filterValue.value).toLowerCase()\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() !==\n String(filterValue.value).toLowerCase()\n );\n },\n like: (row, columnId, filterValue: FilterValue) => {\n const columnValue = (row.getValue(columnId) as string).toLowerCase();\n const filterStr = (filterValue.value as string).toLowerCase();\n return columnValue.includes(filterStr);\n },\n },\n date: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return !dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n },\n select: {\n eq: (row, columnId, filterValue: FilterValue) => {\n // Select only supports string values\n return String(row.getValue(columnId)) === String(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n // Select only supports string values\n return String(row.getValue(columnId)) !== String(filterValue.value);\n },\n },\n} as const;\n\nexport function getFilterFn<T extends keyof FilterFunctionsMap>(\n type: T,\n operator: FilterOperatorTypes\n) {\n // @ts-expect-error FilterOperatorTypes is union of all possible operators\n return filterOperationsMap[type][operator];\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filter-operations.js","sources":["../../../../../v1/components/data-table/utils/filter-operations.tsx"],"sourcesContent":["import dayjs from \"dayjs\";\nimport isSameOrAfter from \"dayjs/plugin/isSameOrAfter\";\nimport isSameOrBefore from \"dayjs/plugin/isSameOrBefore\";\n\nimport type { FilterFn } from \"@tanstack/table-core\";\nimport {\n FilterValue,\n NumberFilterOperatorType,\n StringFilterOperatorType,\n DateFilterOperatorType,\n SelectFilterOperatorType,\n FilterOperatorTypes,\n FilterTypes,\n FilterValueType,\n FilterType,\n} from \"~/v1/types/filters\";\nimport { EmptyFilterValue, RQLFilterValues } from \"../data-table.types\";\n\ndayjs.extend(isSameOrAfter);\ndayjs.extend(isSameOrBefore);\n\nexport type FilterFunctionsMap = {\n number: Record<NumberFilterOperatorType, FilterFn<any>>;\n string: Record<StringFilterOperatorType, FilterFn<any>>;\n date: Record<DateFilterOperatorType, FilterFn<any>>;\n select: Record<SelectFilterOperatorType, FilterFn<any>>;\n};\n\nexport const filterOperationsMap: FilterFunctionsMap = {\n number: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) === Number(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) !== Number(filterValue.value);\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) < Number(filterValue.value);\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) <= Number(filterValue.value);\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) > Number(filterValue.value);\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return Number(row.getValue(columnId)) >= Number(filterValue.value);\n },\n },\n string: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() ===\n String(filterValue.value).toLowerCase()\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return (\n String(row.getValue(columnId)).toLowerCase() !==\n String(filterValue.value).toLowerCase()\n );\n },\n like: (row, columnId, filterValue: FilterValue) => {\n const columnValue = (row.getValue(columnId) as string).toLowerCase();\n const filterStr = (filterValue.value as string).toLowerCase();\n return columnValue.includes(filterStr);\n },\n },\n date: {\n eq: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n return !dayjs(row.getValue(columnId)).isSame(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n lte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrBefore(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gt: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n gte: (row, columnId, filterValue: FilterValue) => {\n return dayjs(row.getValue(columnId)).isSameOrAfter(\n dayjs(filterValue.date),\n \"day\"\n );\n },\n },\n select: {\n eq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) === \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) === String(filterValue.value);\n },\n neq: (row, columnId, filterValue: FilterValue) => {\n if (String(filterValue.value) === EmptyFilterValue) {\n return row.getValue(columnId) !== \"\";\n }\n // Select only supports string values\n return String(row.getValue(columnId)) !== String(filterValue.value);\n },\n },\n} as const;\n\nexport function getFilterFn<T extends keyof FilterFunctionsMap>(\n type: T,\n operator: FilterOperatorTypes\n) {\n // @ts-expect-error FilterOperatorTypes is union of all possible operators\n return filterOperationsMap[type][operator];\n}\n\nconst handleStringBasedTypes = (\n filterType: FilterTypes,\n value: any\n): RQLFilterValues => {\n switch (filterType) {\n case FilterType.date:\n return {\n value,\n stringValue: (value as Date).toISOString(),\n };\n case FilterType.select:\n return {\n stringValue: value === EmptyFilterValue ? \"\" : value,\n value,\n };\n default:\n return {\n stringValue: value,\n value,\n };\n }\n};\n\nexport const getFilterOperator = ({\n value,\n filterType,\n operator,\n}: {\n value: any;\n filterType?: FilterTypes;\n operator: FilterOperatorTypes;\n}): FilterOperatorTypes => {\n return value === EmptyFilterValue && filterType === FilterType.select\n ? \"empty\"\n : operator;\n};\n\nexport const getFilterValue = ({\n value,\n dataType = \"string\",\n filterType = FilterType.string,\n}: {\n value: any;\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): RQLFilterValues => {\n if (dataType === \"boolean\") {\n return { boolValue: value, value };\n }\n if (dataType === \"number\") {\n return { numberValue: value, value };\n }\n\n // Handle string-based types\n return handleStringBasedTypes(filterType, value);\n};\n\nexport const getDataType = ({\n filterType = FilterType.string,\n dataType = \"string\",\n}: {\n dataType?: FilterValueType;\n filterType?: FilterTypes;\n}): FilterValueType => {\n switch (filterType) {\n case FilterType.select:\n return dataType;\n case FilterType.date:\n return \"string\";\n default:\n return filterType;\n }\n};\n"],"names":[],"mappings":"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"}
|