@economic/taco 2.41.4 → 2.42.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.
- package/dist/components/AlertDialog/AlertDialog.d.ts +2 -0
- package/dist/components/AlertDialog/components/Content.d.ts +1 -1
- package/dist/components/Table3/util/editing.d.ts +2 -1
- package/dist/esm/packages/taco/src/components/AlertDialog/AlertDialog.js.map +1 -1
- package/dist/esm/packages/taco/src/components/AlertDialog/components/Content.js +31 -3
- package/dist/esm/packages/taco/src/components/AlertDialog/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Card/Card.js +7 -5
- package/dist/esm/packages/taco/src/components/Card/Card.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Popover/Primitives.js +2 -1
- package/dist/esm/packages/taco/src/components/Popover/Primitives.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js +7 -4
- package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/util/editing.js +6 -5
- package/dist/esm/packages/taco/src/components/Table3/util/editing.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/util.js +3 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Cell/util.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/Header.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/util.js +5 -7
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/util.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/types.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js +3 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js +4 -2
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/columns.js +4 -17
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/columns.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js +62 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/dataTypes.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/filtering.js +1 -15
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/filtering.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js +37 -7
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/search.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js +22 -8
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/sorting.js +4 -6
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/sorting.js.map +1 -1
- package/dist/primitives/Table/types.d.ts +1 -1
- package/dist/primitives/Table/useTableManager/util/columns.d.ts +2 -2
- package/dist/primitives/Table/useTableManager/util/dataTypes.d.ts +12 -0
- package/dist/primitives/Table/useTableManager/util/filtering.d.ts +0 -2
- package/dist/primitives/Table/useTableManager/util/search.d.ts +6 -2
- package/dist/primitives/Table/useTableManager/util/setup.d.ts +3 -2
- package/dist/primitives/Table/useTableManager/util/sorting.d.ts +2 -1
- package/dist/taco.cjs.development.js +319 -219
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +2 -2
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dataTypes.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/dataTypes.ts"],"sourcesContent":["import { SortingFnOption as ReactTableSortingFnOption } from '@tanstack/react-table';\nimport { isDate } from 'date-fns';\nimport { format, parseFromISOString } from '../../../../utils/date';\nimport { TableColumnAlignment, TableColumnDataType, TableFilterComparator } from '../../types';\nimport { Localization } from '../../../../components/Provider/Localization';\n\nexport type TableDataType<TType = unknown> = {\n align?: TableColumnAlignment;\n sortingFn: ReactTableSortingFnOption<TType>;\n filterComparators: TableFilterComparator[];\n getDisplayValue?: (value: any, options?: { localization: Localization }) => string;\n};\n\nconst dataTypes: Record<TableColumnDataType | 'auto', TableDataType> = {\n auto: {\n sortingFn: 'auto',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n // base\n text: {\n sortingFn: 'alphanumeric',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n number: {\n sortingFn: 'basic',\n filterComparators: [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n datetime: {\n sortingFn: 'datetime',\n filterComparators: [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n getDisplayValue: (value: string | Date, options) => {\n if (value === undefined) {\n return '';\n }\n\n if (isDate(value)) {\n return format(value as Date, options?.localization?.formatting.date) ?? '';\n } else if (typeof value === 'string') {\n return format(parseFromISOString(value as string), options?.localization?.formatting.date) ?? '';\n }\n\n return String(value);\n },\n },\n boolean: {\n sortingFn: 'basic',\n filterComparators: [TableFilterComparator.IsEqualTo, TableFilterComparator.IsNotEqualTo],\n },\n // advanced\n amount: {\n align: 'right',\n sortingFn: 'basic',\n filterComparators: [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n getDisplayValue: (value: number | bigint | string, options) => {\n if (value === undefined) {\n return '';\n }\n\n return new Intl.NumberFormat(options?.localization?.locale, { minimumFractionDigits: 2 }).format(Number(value));\n },\n },\n};\n\nexport function getDataTypeProperties<TType = unknown>(dataType: TableColumnDataType | undefined): TableDataType<TType> {\n return (dataTypes[dataType ?? 'text'] ?? dataTypes.text) as TableDataType<TType>;\n}\n"],"names":["dataTypes","auto","sortingFn","filterComparators","TableFilterComparator","Contains","DoesNotContain","IsEqualTo","IsNotEqualTo","IsEmpty","IsNotEmpty","text","number","IsGreaterThan","IsLessThan","IsGreaterThanOrEqualTo","IsLessThanOrEqualTo","IsBetween","datetime","getDisplayValue","value","options","undefined","isDate","_format","_options$localization","format","localization","formatting","date","_format2","_options$localization2","parseFromISOString","String","boolean","amount","align","Intl","NumberFormat","_options$localization3","locale","minimumFractionDigits","Number","getDataTypeProperties","dataType","_dataTypes"],"mappings":"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"}
|
@@ -1,6 +1,5 @@
|
|
1
1
|
import { isDate, isBefore, isAfter, isEqual } from 'date-fns';
|
2
2
|
import { isWeakEqual as isWeakEqual$1 } from '../../../../utils/date.js';
|
3
|
-
import { getCellValueAsString } from './columns.js';
|
4
3
|
import { TableFilterComparator } from '../../types.js';
|
5
4
|
|
6
5
|
const toLowerCase = value => String(value !== null && value !== void 0 ? value : '').toLocaleLowerCase();
|
@@ -113,19 +112,6 @@ function columnFilterFn(value, filter) {
|
|
113
112
|
return true;
|
114
113
|
}
|
115
114
|
}
|
116
|
-
function globalFilterFn(row, columnId, searchQuery) {
|
117
|
-
try {
|
118
|
-
if (row.original) {
|
119
|
-
var _row$_getAllCellsByCo, _row$_getAllCellsByCo2;
|
120
|
-
const dataType = (_row$_getAllCellsByCo = row._getAllCellsByColumnId()[columnId]) === null || _row$_getAllCellsByCo === void 0 ? void 0 : (_row$_getAllCellsByCo2 = _row$_getAllCellsByCo.column.columnDef.meta) === null || _row$_getAllCellsByCo2 === void 0 ? void 0 : _row$_getAllCellsByCo2.dataType;
|
121
|
-
const cellValue = getCellValueAsString(row.original[columnId], dataType);
|
122
|
-
return isWeakContains(cellValue, searchQuery);
|
123
|
-
}
|
124
|
-
} catch {
|
125
|
-
// we don't care, just fail silently and return no results
|
126
|
-
}
|
127
|
-
return false;
|
128
|
-
}
|
129
115
|
|
130
|
-
export { columnFilterFn,
|
116
|
+
export { columnFilterFn, isWeakContains, isWeakEqual, toLowerCase };
|
131
117
|
//# sourceMappingURL=filtering.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filtering.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/filtering.ts"],"sourcesContent":["import { Row as ReactTableRow } from '@tanstack/react-table';\nimport { isDate, isAfter as isAfterDate, isBefore as isBeforeDate, isEqual as isEqualDate } from 'date-fns';\nimport { isWeakEqual as isWeakEqualDate } from '../../../../utils/date';\nimport { TableFilterValue, TableFilterComparator } from '../../types';\nimport { getCellValueAsString } from './columns';\n\nexport const toLowerCase = (value: string | number) => String(value ?? '').toLocaleLowerCase();\nexport const isWeakContains = (left: string | number, right: string | number) => toLowerCase(left).includes(toLowerCase(right));\nexport const isWeakEqual = (left: string | number, right: string | number) => toLowerCase(left) === toLowerCase(right);\n\n// the filter type is only settable on the column definition, which would re-render all columns.\n// so instead we store it in the filter value, but that means we also have to destructure that\n// before we filter - that's why this custom filter function exists\nexport function columnFilterFn(value: any, filter: TableFilterValue) {\n try {\n if (filter.comparator === TableFilterComparator.IsEmpty || filter.comparator === TableFilterComparator.IsNotEmpty) {\n const isEmpty = value === undefined || value === null || value === '';\n return filter.comparator === TableFilterComparator.IsEmpty ? isEmpty : !isEmpty;\n }\n\n if (filter.value === undefined || filter.value === null || filter.value === '') {\n return true;\n }\n\n switch (filter.comparator) {\n case TableFilterComparator.Contains:\n return isWeakContains(value, filter.value);\n\n case TableFilterComparator.DoesNotContain:\n return !isWeakContains(value, filter.value);\n\n case TableFilterComparator.IsEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && isWeakEqualDate(value, filter.value);\n } else if (typeof filter.value === 'boolean') {\n return value === filter.value;\n }\n\n return isWeakEqual(value, filter.value);\n }\n\n case TableFilterComparator.IsNotEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && isWeakEqualDate(value, filter.value) === false;\n } else if (typeof filter.value === 'boolean') {\n return value !== filter.value;\n }\n\n return !isWeakEqual(value, filter.value);\n }\n\n case TableFilterComparator.IsGreaterThan: {\n if (isDate(value)) {\n return isDate(filter.value) && isAfterDate(value, filter.value);\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber > filter.value;\n }\n }\n\n case TableFilterComparator.IsLessThan: {\n if (isDate(value)) {\n return isDate(filter.value) && isBeforeDate(value, filter.value);\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber < filter.value;\n }\n }\n\n case TableFilterComparator.IsLessThanOrEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && (isBeforeDate(value, filter.value) || isEqualDate(value, filter.value));\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber <= filter.value;\n }\n }\n\n case TableFilterComparator.IsGreaterThanOrEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && (isAfterDate(value, filter.value) || isEqualDate(value, filter.value));\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber >= filter.value;\n }\n }\n\n case TableFilterComparator.IsBetween: {\n const [fromValue, toValue] = filter.value;\n\n if (isDate(value)) {\n if (isDate(fromValue) && isBeforeDate(value, fromValue)) {\n return false;\n } else if (isDate(toValue) && isAfterDate(value, toValue)) {\n return false;\n }\n\n return true;\n } else {\n const valueAsNumber = parseInt(value);\n\n if (isNaN(valueAsNumber)) {\n return false;\n }\n\n if (fromValue !== undefined && valueAsNumber < fromValue) {\n return false;\n } else if (toValue !== undefined && valueAsNumber > toValue) {\n return false;\n }\n\n return true;\n }\n }\n\n case TableFilterComparator.HasAnyOf:\n return Array.isArray(filter.value) && Array.isArray(value)\n ? filter.value.some(item => value.includes(item))\n : false;\n\n case TableFilterComparator.HasNoneOf:\n return Array.isArray(filter.value) && Array.isArray(value)\n ? filter.value.every(item => value.includes(item) === false)\n : false;\n\n case TableFilterComparator.HasAllOf:\n return Array.isArray(filter.value) && Array.isArray(value)\n ? filter.value.filter(v => value.includes(v)).length === filter.value.length\n : false;\n }\n\n return false;\n } catch (e) {\n console.error(e);\n return true;\n }\n}\n\nexport function globalFilterFn<TType = unknown>(row: ReactTableRow<TType>, columnId: string, searchQuery: string) {\n try {\n if (row.original) {\n const dataType = row._getAllCellsByColumnId()[columnId]?.column.columnDef.meta?.dataType;\n const cellValue = getCellValueAsString(row.original[columnId], dataType);\n return isWeakContains(cellValue, searchQuery);\n }\n } catch {\n // we don't care, just fail silently and return no results\n }\n\n return false;\n}\n"],"names":["toLowerCase","value","String","toLocaleLowerCase","isWeakContains","left","right","includes","isWeakEqual","columnFilterFn","filter","comparator","TableFilterComparator","IsEmpty","IsNotEmpty","isEmpty","undefined","Contains","DoesNotContain","IsEqualTo","isDate","isWeakEqualDate","IsNotEqualTo","IsGreaterThan","isAfterDate","valueAsNumber","parseInt","isNaN","IsLessThan","isBeforeDate","IsLessThanOrEqualTo","isEqualDate","IsGreaterThanOrEqualTo","IsBetween","fromValue","toValue","HasAnyOf","Array","isArray","some","item","HasNoneOf","every","HasAllOf","v","length","e","console","error","globalFilterFn","row","columnId","searchQuery","original","_row$_getAllCellsByCo","_row$_getAllCellsByCo2","dataType","_getAllCellsByColumnId","column","columnDef","meta","cellValue","getCellValueAsString"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"filtering.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/filtering.ts"],"sourcesContent":["import { isDate, isAfter as isAfterDate, isBefore as isBeforeDate, isEqual as isEqualDate } from 'date-fns';\nimport { isWeakEqual as isWeakEqualDate } from '../../../../utils/date';\nimport { TableFilterValue, TableFilterComparator } from '../../types';\n\nexport const toLowerCase = (value: string | number) => String(value ?? '').toLocaleLowerCase();\nexport const isWeakContains = (left: string | number, right: string | number) => toLowerCase(left).includes(toLowerCase(right));\nexport const isWeakEqual = (left: string | number, right: string | number) => toLowerCase(left) === toLowerCase(right);\n\n// the filter type is only settable on the column definition, which would re-render all columns.\n// so instead we store it in the filter value, but that means we also have to destructure that\n// before we filter - that's why this custom filter function exists\nexport function columnFilterFn(value: any, filter: TableFilterValue) {\n try {\n if (filter.comparator === TableFilterComparator.IsEmpty || filter.comparator === TableFilterComparator.IsNotEmpty) {\n const isEmpty = value === undefined || value === null || value === '';\n return filter.comparator === TableFilterComparator.IsEmpty ? isEmpty : !isEmpty;\n }\n\n if (filter.value === undefined || filter.value === null || filter.value === '') {\n return true;\n }\n\n switch (filter.comparator) {\n case TableFilterComparator.Contains:\n return isWeakContains(value, filter.value);\n\n case TableFilterComparator.DoesNotContain:\n return !isWeakContains(value, filter.value);\n\n case TableFilterComparator.IsEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && isWeakEqualDate(value, filter.value);\n } else if (typeof filter.value === 'boolean') {\n return value === filter.value;\n }\n\n return isWeakEqual(value, filter.value);\n }\n\n case TableFilterComparator.IsNotEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && isWeakEqualDate(value, filter.value) === false;\n } else if (typeof filter.value === 'boolean') {\n return value !== filter.value;\n }\n\n return !isWeakEqual(value, filter.value);\n }\n\n case TableFilterComparator.IsGreaterThan: {\n if (isDate(value)) {\n return isDate(filter.value) && isAfterDate(value, filter.value);\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber > filter.value;\n }\n }\n\n case TableFilterComparator.IsLessThan: {\n if (isDate(value)) {\n return isDate(filter.value) && isBeforeDate(value, filter.value);\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber < filter.value;\n }\n }\n\n case TableFilterComparator.IsLessThanOrEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && (isBeforeDate(value, filter.value) || isEqualDate(value, filter.value));\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber <= filter.value;\n }\n }\n\n case TableFilterComparator.IsGreaterThanOrEqualTo: {\n if (isDate(value)) {\n return isDate(filter.value) && (isAfterDate(value, filter.value) || isEqualDate(value, filter.value));\n } else {\n const valueAsNumber = parseInt(value);\n return !isNaN(valueAsNumber) && filter.value !== undefined && valueAsNumber >= filter.value;\n }\n }\n\n case TableFilterComparator.IsBetween: {\n const [fromValue, toValue] = filter.value;\n\n if (isDate(value)) {\n if (isDate(fromValue) && isBeforeDate(value, fromValue)) {\n return false;\n } else if (isDate(toValue) && isAfterDate(value, toValue)) {\n return false;\n }\n\n return true;\n } else {\n const valueAsNumber = parseInt(value);\n\n if (isNaN(valueAsNumber)) {\n return false;\n }\n\n if (fromValue !== undefined && valueAsNumber < fromValue) {\n return false;\n } else if (toValue !== undefined && valueAsNumber > toValue) {\n return false;\n }\n\n return true;\n }\n }\n\n case TableFilterComparator.HasAnyOf:\n return Array.isArray(filter.value) && Array.isArray(value)\n ? filter.value.some(item => value.includes(item))\n : false;\n\n case TableFilterComparator.HasNoneOf:\n return Array.isArray(filter.value) && Array.isArray(value)\n ? filter.value.every(item => value.includes(item) === false)\n : false;\n\n case TableFilterComparator.HasAllOf:\n return Array.isArray(filter.value) && Array.isArray(value)\n ? filter.value.filter(v => value.includes(v)).length === filter.value.length\n : false;\n }\n\n return false;\n } catch (e) {\n console.error(e);\n return true;\n }\n}\n"],"names":["toLowerCase","value","String","toLocaleLowerCase","isWeakContains","left","right","includes","isWeakEqual","columnFilterFn","filter","comparator","TableFilterComparator","IsEmpty","IsNotEmpty","isEmpty","undefined","Contains","DoesNotContain","IsEqualTo","isDate","isWeakEqualDate","IsNotEqualTo","IsGreaterThan","isAfterDate","valueAsNumber","parseInt","isNaN","IsLessThan","isBeforeDate","IsLessThanOrEqualTo","isEqualDate","IsGreaterThanOrEqualTo","IsBetween","fromValue","toValue","HasAnyOf","Array","isArray","some","item","HasNoneOf","every","HasAllOf","v","length","e","console","error"],"mappings":"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"}
|
@@ -1,11 +1,41 @@
|
|
1
1
|
import get from 'lodash-es/get';
|
2
|
-
import {
|
2
|
+
import { getDataTypeProperties } from './dataTypes.js';
|
3
3
|
import { isWeakContains } from './filtering.js';
|
4
4
|
|
5
|
-
function
|
5
|
+
function isMatched(searchQuery, cellValue, dataType, localization) {
|
6
|
+
const cellValueAsString = String(cellValue !== null && cellValue !== void 0 ? cellValue : '');
|
7
|
+
if (cellValueAsString !== undefined && isWeakContains(cellValueAsString, searchQuery)) {
|
8
|
+
return true;
|
9
|
+
} else {
|
10
|
+
const dataTypeProperties = getDataTypeProperties(dataType);
|
11
|
+
if (dataTypeProperties.getDisplayValue) {
|
12
|
+
const cellDisplayValue = dataTypeProperties.getDisplayValue(cellValue, {
|
13
|
+
localization
|
14
|
+
});
|
15
|
+
if (cellDisplayValue !== undefined && isWeakContains(cellDisplayValue, searchQuery)) {
|
16
|
+
return true;
|
17
|
+
}
|
18
|
+
}
|
19
|
+
}
|
20
|
+
return false;
|
21
|
+
}
|
22
|
+
function globalFilterFn(row, columnId, searchQuery, localization) {
|
23
|
+
try {
|
24
|
+
if (row.original) {
|
25
|
+
var _row$_getAllCellsByCo, _row$_getAllCellsByCo2;
|
26
|
+
const cellValue = row.original[columnId];
|
27
|
+
const dataType = (_row$_getAllCellsByCo = row._getAllCellsByColumnId()[columnId]) === null || _row$_getAllCellsByCo === void 0 ? void 0 : (_row$_getAllCellsByCo2 = _row$_getAllCellsByCo.column.columnDef.meta) === null || _row$_getAllCellsByCo2 === void 0 ? void 0 : _row$_getAllCellsByCo2.dataType;
|
28
|
+
return isMatched(searchQuery, cellValue, dataType, localization);
|
29
|
+
}
|
30
|
+
} catch {
|
31
|
+
// we don't care, just fail silently and return no results
|
32
|
+
}
|
33
|
+
return false;
|
34
|
+
}
|
35
|
+
function resetHighlightedColumnIndexes(searchQuery, table, localization) {
|
6
36
|
const tableMeta = table.options.meta;
|
7
37
|
let firstRowIndex;
|
8
|
-
if (
|
38
|
+
if (searchQuery) {
|
9
39
|
const indexes = [];
|
10
40
|
const columns = table.getVisibleLeafColumns();
|
11
41
|
const rowGrouping = table.getState().grouping;
|
@@ -25,9 +55,9 @@ function resetHighlightedColumnIndexes(value, table) {
|
|
25
55
|
}
|
26
56
|
if (column.getIsVisible() && column.columnDef.enableGlobalFilter && allowSearch) {
|
27
57
|
var _column$columnDef$met;
|
28
|
-
const cellValue =
|
29
|
-
|
30
|
-
if (
|
58
|
+
const cellValue = get(row.original, column.id);
|
59
|
+
const dataType = (_column$columnDef$met = column.columnDef.meta) === null || _column$columnDef$met === void 0 ? void 0 : _column$columnDef$met.dataType;
|
60
|
+
if (isMatched(searchQuery, cellValue, dataType, localization)) {
|
31
61
|
indexes.push([rowIndex, columnIndex]);
|
32
62
|
}
|
33
63
|
}
|
@@ -53,5 +83,5 @@ function resetHighlightedColumnIndexes(value, table) {
|
|
53
83
|
return firstRowIndex;
|
54
84
|
}
|
55
85
|
|
56
|
-
export { resetHighlightedColumnIndexes };
|
86
|
+
export { globalFilterFn, isMatched, resetHighlightedColumnIndexes };
|
57
87
|
//# sourceMappingURL=search.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"search.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/search.ts"],"sourcesContent":["import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport get from 'lodash/get';\nimport {
|
1
|
+
{"version":3,"file":"search.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/search.ts"],"sourcesContent":["import { Table as ReactTable, TableMeta as ReactTableMeta, Row as ReactTableRow } from '@tanstack/react-table';\nimport get from 'lodash/get';\nimport { isWeakContains } from './filtering';\nimport { getDataTypeProperties } from './dataTypes';\nimport { TableColumnDataType } from '../../types';\nimport { Localization } from '../../../../components/Provider/Localization';\n\nexport function isMatched<TType = unknown>(\n searchQuery: string,\n cellValue: any,\n dataType: TableColumnDataType | undefined,\n localization: Localization\n) {\n const cellValueAsString = String(cellValue ?? '');\n\n if (cellValueAsString !== undefined && isWeakContains(cellValueAsString, searchQuery)) {\n return true;\n } else {\n const dataTypeProperties = getDataTypeProperties<TType>(dataType);\n\n if (dataTypeProperties.getDisplayValue) {\n const cellDisplayValue = dataTypeProperties.getDisplayValue(cellValue, { localization });\n\n if (cellDisplayValue !== undefined && isWeakContains(cellDisplayValue, searchQuery)) {\n return true;\n }\n }\n }\n\n return false;\n}\n\nexport function globalFilterFn<TType = unknown>(\n row: ReactTableRow<TType>,\n columnId: string,\n searchQuery: string,\n localization: Localization\n) {\n try {\n if (row.original) {\n const cellValue = row.original[columnId];\n const dataType = row._getAllCellsByColumnId()[columnId]?.column.columnDef.meta?.dataType;\n return isMatched(searchQuery, cellValue, dataType, localization);\n }\n } catch {\n // we don't care, just fail silently and return no results\n }\n\n return false;\n}\n\nexport function resetHighlightedColumnIndexes<TType = unknown>(\n searchQuery: string | undefined,\n table: ReactTable<TType>,\n localization: Localization\n) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n let firstRowIndex: undefined | number;\n\n if (searchQuery) {\n const indexes: number[][] = [];\n const columns = table.getVisibleLeafColumns();\n const rowGrouping = table.getState().grouping;\n\n table.getRowModel().rows.forEach((row, rowIndex) => {\n columns.forEach((column, columnIndex) => {\n try {\n let allowSearch = true;\n\n if (rowGrouping?.length) {\n // if it's the grouped row, only allow search of the grouped column - because that's all that's visible\n if (row.getIsGrouped()) {\n allowSearch = column.getIsGrouped();\n }\n // otherwise for other rows, don't search the grouped column - because it isn't visible\n else if (rowGrouping.includes(column.id)) {\n allowSearch = false;\n }\n }\n\n if (column.getIsVisible() && column.columnDef.enableGlobalFilter && allowSearch) {\n const cellValue = get(row.original, column.id);\n const dataType = column.columnDef.meta?.dataType;\n\n if (isMatched(searchQuery, cellValue, dataType, localization)) {\n indexes.push([rowIndex, columnIndex]);\n }\n }\n } catch (e) {\n //\n }\n });\n });\n\n tableMeta.search.setHighlightedColumnIndexes(indexes);\n\n if (indexes.length) {\n firstRowIndex = indexes[0][0];\n tableMeta.search.setCurrentHighlightColumnIndex(0);\n } else {\n tableMeta.search.setCurrentHighlightColumnIndex(undefined);\n }\n } else {\n tableMeta.search.setHighlightedColumnIndexes([]);\n tableMeta.search.setCurrentHighlightColumnIndex(undefined);\n }\n\n if (firstRowIndex !== undefined) {\n tableMeta.rowActive.setRowActiveIndex(firstRowIndex);\n }\n\n return firstRowIndex;\n}\n"],"names":["isMatched","searchQuery","cellValue","dataType","localization","cellValueAsString","String","undefined","isWeakContains","dataTypeProperties","getDataTypeProperties","getDisplayValue","cellDisplayValue","globalFilterFn","row","columnId","original","_row$_getAllCellsByCo","_row$_getAllCellsByCo2","_getAllCellsByColumnId","column","columnDef","meta","resetHighlightedColumnIndexes","table","tableMeta","options","firstRowIndex","indexes","columns","getVisibleLeafColumns","rowGrouping","getState","grouping","getRowModel","rows","forEach","rowIndex","columnIndex","allowSearch","length","getIsGrouped","includes","id","getIsVisible","enableGlobalFilter","_column$columnDef$met","get","push","e","search","setHighlightedColumnIndexes","setCurrentHighlightColumnIndex","rowActive","setRowActiveIndex"],"mappings":"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"}
|
@@ -1,13 +1,15 @@
|
|
1
1
|
import React__default from 'react';
|
2
2
|
import { getExpandedRowModel, getGroupedRowModel, getFilteredRowModel, getSortedRowModel, createColumnHelper } from '@tanstack/react-table';
|
3
3
|
import get from 'lodash-es/get';
|
4
|
+
import { getDataTypeProperties } from './dataTypes.js';
|
4
5
|
import { getSortingFn } from './sorting.js';
|
6
|
+
import { columnFilterFn } from './filtering.js';
|
7
|
+
import { globalFilterFn } from './search.js';
|
5
8
|
import { ensureOrdering, freezeUptoExternalColumn, unfreezeAllExternalColumns, getCellMinWidth } from './columns.js';
|
6
|
-
import { columnFilterFn, globalFilterFn } from './filtering.js';
|
7
9
|
import { ignoreInternalColumns } from './settings.js';
|
8
10
|
|
9
11
|
// mapping children to react-table columns
|
10
|
-
function processChildren(child, columns, defaultSizing, defaultSorting, defaultVisibility, settings, defaultRowGroupColumnId) {
|
12
|
+
function processChildren(child, columns, defaultSizing, defaultSorting, defaultVisibility, settings, defaultRowGroupColumnId, localization) {
|
11
13
|
const columnHelper = createColumnHelper();
|
12
14
|
if (/*#__PURE__*/React__default.isValidElement(child) && child.props.children) {
|
13
15
|
const {
|
@@ -18,11 +20,12 @@ function processChildren(child, columns, defaultSizing, defaultSorting, defaultV
|
|
18
20
|
columns.push(columnHelper.group({
|
19
21
|
id,
|
20
22
|
header,
|
21
|
-
columns: React__default.Children.toArray(children).reduce((columns, child) => processChildren(child, columns, defaultSizing, defaultSorting, defaultVisibility, settings, defaultRowGroupColumnId), []),
|
23
|
+
columns: React__default.Children.toArray(children).reduce((columns, child) => processChildren(child, columns, defaultSizing, defaultSorting, defaultVisibility, settings, defaultRowGroupColumnId, localization), []),
|
22
24
|
// we don't want to let column groups be grouped/aggregrated
|
23
25
|
enableGrouping: false
|
24
26
|
}));
|
25
27
|
} else if (/*#__PURE__*/React__default.isValidElement(child) && (child.props.accessor || child.props.id)) {
|
28
|
+
var _meta$align;
|
26
29
|
const {
|
27
30
|
id: untypedId,
|
28
31
|
accessor: accessorKey = untypedId,
|
@@ -51,6 +54,7 @@ function processChildren(child, columns, defaultSizing, defaultSorting, defaultV
|
|
51
54
|
...meta
|
52
55
|
} = child.props;
|
53
56
|
const id = untypedId;
|
57
|
+
const dataTypeProperties = getDataTypeProperties(child.props.dataType);
|
54
58
|
if (defaultHidden && enableHiding) {
|
55
59
|
defaultVisibility[id] = false;
|
56
60
|
}
|
@@ -83,6 +87,7 @@ function processChildren(child, columns, defaultSizing, defaultSorting, defaultV
|
|
83
87
|
// meta
|
84
88
|
meta: {
|
85
89
|
...meta,
|
90
|
+
align: (_meta$align = meta.align) !== null && _meta$align !== void 0 ? _meta$align : dataTypeProperties.align,
|
86
91
|
defaultWidth,
|
87
92
|
enableOrdering: isGrouped ? false : enableOrdering,
|
88
93
|
enablePrinting,
|
@@ -92,9 +97,18 @@ function processChildren(child, columns, defaultSizing, defaultSorting, defaultV
|
|
92
97
|
renderer
|
93
98
|
}
|
94
99
|
};
|
95
|
-
// renderers
|
100
|
+
// renderers - use defined renderers first, then fall back to data type renderers (if there is one)
|
96
101
|
if (typeof renderer === 'function') {
|
97
102
|
column.cell = info => renderer(info.getValue(), info.row.original);
|
103
|
+
} else if (dataTypeProperties.getDisplayValue) {
|
104
|
+
const dataTypeRenderer = value => {
|
105
|
+
var _dataTypeProperties$g, _dataTypeProperties$g2;
|
106
|
+
return (_dataTypeProperties$g = (_dataTypeProperties$g2 = dataTypeProperties.getDisplayValue) === null || _dataTypeProperties$g2 === void 0 ? void 0 : _dataTypeProperties$g2.call(dataTypeProperties, value, {
|
107
|
+
localization
|
108
|
+
})) !== null && _dataTypeProperties$g !== void 0 ? _dataTypeProperties$g : value;
|
109
|
+
};
|
110
|
+
column.cell = info => dataTypeRenderer(info.getValue());
|
111
|
+
column.meta.renderer = dataTypeRenderer;
|
98
112
|
}
|
99
113
|
if (typeof footer === 'function') {
|
100
114
|
column.footer = info => footer(info.table.getRowModel().rows.flatMap(row => row.original !== undefined ? row.original : []));
|
@@ -148,7 +162,7 @@ function createInternalColumn(id, column, defaultSizing) {
|
|
148
162
|
}
|
149
163
|
};
|
150
164
|
}
|
151
|
-
function mapTableChildrenToColumns(props, settings, options, internalColumns) {
|
165
|
+
function mapTableChildrenToColumns(props, settings, options, internalColumns, localization) {
|
152
166
|
const {
|
153
167
|
children,
|
154
168
|
defaultRowGroupColumnId
|
@@ -156,7 +170,7 @@ function mapTableChildrenToColumns(props, settings, options, internalColumns) {
|
|
156
170
|
const defaultSizing = {};
|
157
171
|
const defaultSorting = [];
|
158
172
|
const defaultVisibility = {};
|
159
|
-
const columns = React__default.Children.toArray(children).reduce((columns, child) => processChildren(child, columns, defaultSizing, defaultSorting, defaultVisibility, settings, defaultRowGroupColumnId), []);
|
173
|
+
const columns = React__default.Children.toArray(children).reduce((columns, child) => processChildren(child, columns, defaultSizing, defaultSorting, defaultVisibility, settings, defaultRowGroupColumnId, localization), []);
|
160
174
|
if (internalColumns) {
|
161
175
|
var _props$rowActions;
|
162
176
|
if (options.enableRowExpansion && props.rowExpansionRenderer && internalColumns.rowExpansion) {
|
@@ -183,7 +197,7 @@ function mapTableChildrenToColumns(props, settings, options, internalColumns) {
|
|
183
197
|
defaultVisibility
|
184
198
|
};
|
185
199
|
}
|
186
|
-
function configureReactTableOptions(options, props) {
|
200
|
+
function configureReactTableOptions(options, props, localization) {
|
187
201
|
var _options$enableFilter, _options$enableColumn, _options$enableRowExp, _options$enableColumn2, _options$enableColumn3, _options$enableSortin;
|
188
202
|
const enableRowSelection = options.enableRowSelection || options.enableRowSelectionSingle;
|
189
203
|
// We don't want to expose internal Tanstack Table row, so we need to wrap enableRowSelection callback into additional function,
|
@@ -230,7 +244,7 @@ function configureReactTableOptions(options, props) {
|
|
230
244
|
if (options.enableSearch) {
|
231
245
|
// always set these because enableGlobalFilter can be toggled on and off by the user
|
232
246
|
tableOptions.getFilteredRowModel = getFilteredRowModel();
|
233
|
-
tableOptions.globalFilterFn = globalFilterFn;
|
247
|
+
tableOptions.globalFilterFn = (row, columnId, searchQuery) => globalFilterFn(row, columnId, searchQuery, localization);
|
234
248
|
tableOptions.getColumnCanGlobalFilter = column => {
|
235
249
|
var _column$columnDef$met, _column$columnDef$met2;
|
236
250
|
return (_column$columnDef$met = (_column$columnDef$met2 = column.columnDef.meta) === null || _column$columnDef$met2 === void 0 ? void 0 : _column$columnDef$met2.enableSearch) !== null && _column$columnDef$met !== void 0 ? _column$columnDef$met : true;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"setup.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/setup.ts"],"sourcesContent":["import React from 'react';\nimport {\n createColumnHelper,\n getExpandedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getSortedRowModel,\n TableOptions as ReactTableOptions,\n Row as ReactTableRow,\n Column as ReactTableColumn,\n ColumnDef as ReactTableColumnDef,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSizingState as ReactTableColumnSizingState,\n ColumnSort as ReactTableColumnSort,\n TableState as ReactTableState,\n VisibilityState as ReactTableVisibilityState,\n} from '@tanstack/react-table';\nimport get from 'lodash/get';\n\nimport { useTableManagerInternalColumns, useTableManagerInternalColumn } from '../types';\nimport { TableColumnProps, TableFeatureProps, TableGroupProps, TableProps, TableSettings } from '../../types';\nimport { getSortingFn } from './sorting';\nimport { ensureOrdering, freezeUptoExternalColumn, getCellMinWidth, unfreezeAllExternalColumns } from './columns';\nimport { columnFilterFn, globalFilterFn } from './filtering';\nimport { ignoreInternalColumns } from './settings';\n\n// mapping children to react-table columns\nfunction processChildren<TType>(\n child: React.ReactChild | React.ReactFragment | React.ReactPortal,\n columns: ReactTableColumnDef<TType>[],\n defaultSizing: ReactTableColumnSizingState,\n defaultSorting: ReactTableColumnSort[],\n defaultVisibility: ReactTableVisibilityState,\n settings: TableSettings,\n defaultRowGroupColumnId?: keyof TType\n): ReactTableColumnDef<TType>[] {\n const columnHelper = createColumnHelper<TType>();\n\n if (React.isValidElement<TableGroupProps>(child) && child.props.children) {\n const { children, id, header } = child.props;\n\n columns.push(\n columnHelper.group({\n id,\n header,\n columns: React.Children.toArray(children).reduce(\n (columns: ReactTableColumnDef<TType>[], child) =>\n processChildren<TType>(\n child,\n columns,\n defaultSizing,\n defaultSorting,\n defaultVisibility,\n settings,\n defaultRowGroupColumnId\n ),\n []\n ),\n // we don't want to let column groups be grouped/aggregrated\n enableGrouping: false,\n })\n );\n } else if (React.isValidElement<TableColumnProps<TType>>(child) && (child.props.accessor || child.props.id)) {\n const {\n id: untypedId,\n accessor: accessorKey = untypedId,\n // renderers\n renderer,\n aggregate,\n footer,\n header,\n // options\n aggregationFn,\n defaultHidden,\n defaultWidth,\n enableEditing = !!child.props.control,\n enableFiltering: enableColumnFilter = true,\n enableGrouping = false,\n enableHiding = true,\n enableOrdering = true,\n enablePrinting = true,\n enableResizing = true,\n enableSearch: enableGlobalFilter = true,\n enableSorting = true,\n enableTruncate = false,\n minWidth: minSize = getCellMinWidth(settings.fontSize),\n sort,\n sortFn,\n ...meta\n } = child.props;\n const id = untypedId as string;\n\n if (defaultHidden && enableHiding) {\n defaultVisibility[id] = false;\n }\n\n if (defaultWidth) {\n defaultSizing[id] = defaultWidth as any;\n }\n\n const isGrouped = defaultRowGroupColumnId === id;\n\n if (child.props.sort !== undefined || isGrouped) {\n defaultSorting.push({\n id,\n desc: sort === 'desc',\n });\n }\n\n const column: ReactTableColumnDef<TType, any> = {\n id,\n accessorKey,\n // To avoid errors caused by undefined row data values, we pass accessorFn as a preventive measure\n // accessorKey can be dot notated strings, so we use lodash.get to access deeply nested children\n accessorFn: row => get(row, accessorKey),\n header: header,\n // features\n enableColumnFilter,\n enableGlobalFilter,\n enableGrouping,\n enableHiding: isGrouped ? false : enableHiding,\n enableResizing,\n enableSorting,\n // config - sizing\n minSize,\n // meta\n meta: {\n ...(meta as any),\n defaultWidth,\n enableOrdering: isGrouped ? false : enableOrdering,\n enablePrinting,\n enableTruncate,\n enableEditing,\n header,\n renderer,\n },\n };\n\n // renderers\n if (typeof renderer === 'function') {\n column.cell = info => renderer(info.getValue(), info.row.original);\n }\n\n if (typeof footer === 'function') {\n column.footer = info =>\n footer(info.table.getRowModel().rows.flatMap(row => (row.original !== undefined ? row.original : [])));\n }\n\n // config - filtering\n if (enableColumnFilter) {\n column.filterFn = 'tacoFilter' as any;\n }\n\n // config - grouping/aggregation\n if (enableGrouping) {\n column.aggregationFn = aggregationFn;\n\n if (typeof aggregate === 'function') {\n column.aggregatedCell = info => aggregate(info.getValue(), info.row.original);\n }\n }\n\n // config - sorting\n if (enableSorting) {\n column.sortingFn = getSortingFn<TType>(child.props.dataType, sortFn);\n column.sortDescFirst = false;\n column.sortUndefined = 1;\n }\n\n columns.push(column);\n }\n\n return columns;\n}\n\nfunction createInternalColumn<TType = unknown>(\n id: string,\n column: useTableManagerInternalColumn<TType>,\n defaultSizing: ReactTableColumnSizingState\n) {\n if (column.size) {\n defaultSizing[id] = column.size;\n }\n\n return {\n id,\n accessorKey: id,\n header: column.header,\n cell: column.renderer,\n // features\n enableColumnFilter: false,\n enableGlobalFilter: false,\n enableGrouping: false,\n enableHiding: false,\n enableResizing: false,\n enableSorting: false,\n // config - sizing\n size: column.size,\n minSize: column.size,\n // meta\n meta: {\n ...(column.meta as any),\n enableOrdering: false,\n enablePrinting: false,\n enableTruncate: false,\n },\n } as ReactTableColumnDef<TType, any>;\n}\n\nexport function mapTableChildrenToColumns<TType = unknown>(\n props: TableProps<TType>,\n settings: TableSettings,\n options: TableFeatureProps<TType>,\n internalColumns?: useTableManagerInternalColumns<TType>\n) {\n const { children, defaultRowGroupColumnId } = props;\n const defaultSizing: ReactTableColumnSizingState = {};\n const defaultSorting: ReactTableColumnSort[] = [];\n const defaultVisibility: ReactTableVisibilityState = {};\n\n const columns = React.Children.toArray(children).reduce(\n (columns: ReactTableColumnDef<TType>[], child) =>\n processChildren<TType>(\n child,\n columns,\n defaultSizing,\n defaultSorting,\n defaultVisibility,\n settings,\n defaultRowGroupColumnId\n ),\n\n []\n );\n\n if (internalColumns) {\n if (options.enableRowExpansion && props.rowExpansionRenderer && internalColumns.rowExpansion) {\n const column = createInternalColumn<TType>('__expansion', internalColumns.rowExpansion, defaultSizing);\n columns.unshift(column);\n }\n\n if ((options.enableRowSelection || options.enableRowSelectionSingle) && internalColumns.rowSelection) {\n const column = createInternalColumn<TType>('__select', internalColumns.rowSelection, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowDrag && props.onRowDrag && internalColumns.rowDrag) {\n const column = createInternalColumn<TType>('__drag', internalColumns.rowDrag, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowActions && props.rowActions?.length && internalColumns.rowActions) {\n const column = createInternalColumn<TType>('__actions', internalColumns.rowActions, defaultSizing);\n columns.push(column);\n }\n }\n\n return { columns, defaultSizing, defaultSorting, defaultVisibility };\n}\n\nexport function configureReactTableOptions<TType = unknown>(options: TableFeatureProps<TType>, props: TableProps<TType>) {\n const enableRowSelection = options.enableRowSelection || options.enableRowSelectionSingle;\n // We don't want to expose internal Tanstack Table row, so we need to wrap enableRowSelection callback into additional function,\n // which receives the React Table Row object and passes row.original to a callback.\n const reactTableEnableRowSelection =\n typeof enableRowSelection === 'function'\n ? (row: ReactTableRow<TType>) => (enableRowSelection as (row: TType) => boolean)(row.original)\n : enableRowSelection;\n\n const tableOptions: Partial<ReactTableOptions<TType>> = {\n defaultColumn: {\n enableColumnFilter: options.enableFiltering || true,\n enableGrouping: false,\n enableHiding: options.enableColumnHiding || true,\n enableResizing: options.enableColumnResizing || true,\n enableGlobalFilter: options.enableSearch || true,\n enableSorting: options.enableSorting || true,\n minSize: 1,\n // the default is 150, which is a bit random\n size: 1,\n },\n enableColumnFilters: options.enableFiltering ?? false,\n enableColumnResizing: options.enableColumnResizing ?? false,\n enableExpanding: options.enableRowExpansion ?? false,\n enableGrouping: true, // users can't customise row grouping, so it can just be always enabled and left to the defaultRowGroupColumnId prop\n enableHiding: options.enableColumnHiding ?? false,\n enablePinning: options.enableColumnFreezing ?? false,\n enableRowSelection: reactTableEnableRowSelection ?? false,\n enableMultiRowSelection: !options.enableRowSelectionSingle && reactTableEnableRowSelection,\n enableSorting: options.enableSorting ?? false,\n // models for default features\n getExpandedRowModel: getExpandedRowModel<TType>(),\n getGroupedRowModel: getGroupedRowModel<TType>(),\n groupedColumnMode: false,\n };\n\n if (tableOptions.enableColumnResizing) {\n tableOptions.columnResizeMode = 'onChange';\n }\n\n if (tableOptions.enableColumnFilters) {\n // enter controlled filter mode (controlled could be local state, but usually the server)\n if (props.onChangeFilter) {\n // tableOptions.manualFiltering = true;\n // we don't set it because it breaks global filtering (used for search, which is fully client side)\n //\n // tableOptions.onColumnFiltersChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onFilter\n } else {\n tableOptions.getFilteredRowModel = getFilteredRowModel<TType>();\n tableOptions.filterFns = {\n tacoFilter: (row: ReactTableRow<TType>, columnId: string, filter: any) =>\n columnFilterFn(row.getValue(columnId), filter),\n };\n }\n }\n\n if (options.enableSearch) {\n // always set these because enableGlobalFilter can be toggled on and off by the user\n tableOptions.getFilteredRowModel = getFilteredRowModel<TType>();\n tableOptions.globalFilterFn = globalFilterFn;\n tableOptions.getColumnCanGlobalFilter = (column: ReactTableColumn<TType>) => column.columnDef.meta?.enableSearch ?? true;\n\n // enter controlled search mode (controlled could be local state, but usually the server)\n if (props.onChangeSearch) {\n // tableOptions.manualFiltering = true;\n // we don't set this because controlled search is not currently supported, search is always client side\n //\n // tableOptions.onGlobalFilterChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onSearch.\n //\n // we also don't always filter when searching, we have the highlight functionality as the default\n // and filtering can be toggled by the user\n }\n }\n\n if (tableOptions.enableSorting) {\n // enter controlled sort mode (controlled could be local state, but usually the server)\n if (props.onChangeSort) {\n tableOptions.manualSorting = true;\n\n // tableOptions.onSortingChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onSort\n } else {\n tableOptions.getSortedRowModel = getSortedRowModel();\n }\n }\n\n return tableOptions;\n}\n\nexport function useReactTableInitialState<TType = unknown>(\n props: TableProps<TType>,\n columns: ReactTableColumnDef<TType>[],\n persistedSettings: TableSettings,\n defaults: {\n defaultSizing: ReactTableColumnSizingState;\n defaultSorting: ReactTableColumnSort[];\n defaultVisibility: ReactTableVisibilityState;\n }\n): Partial<ReactTableState> {\n return React.useMemo(() => {\n const ignoreNotDefinedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);\n\n const columnPinning: ReactTableColumnPinningState =\n persistedSettings.columnPinning ?? props.defaultSettings?.columnPinning ?? {};\n\n const columnOrder = ensureOrdering<TType>(\n columns,\n persistedSettings.columnOrder ?? props.defaultSettings?.columnOrder,\n columnPinning.left\n );\n\n // ensure internal columns are pinned, and are pinned in the correct order\n if (columnPinning?.left?.length) {\n columnPinning.left = freezeUptoExternalColumn(\n columnOrder.indexOf(columnPinning.left[columnPinning.left.length - 1]),\n columnOrder\n );\n } else {\n if (props.defaultColumnFreezingIndex) {\n columnPinning.left = freezeUptoExternalColumn(props.defaultColumnFreezingIndex, columnOrder);\n } else {\n columnPinning.left = unfreezeAllExternalColumns(columnOrder);\n }\n }\n\n const state: Partial<ReactTableState> = {\n columnFilters: persistedSettings.columnFilters ?? props.defaultSettings?.columnFilters ?? [],\n columnOrder,\n columnPinning,\n columnSizing: ignoreInternalColumns(\n persistedSettings.columnSizing ?? props.defaultSettings?.columnSizing ?? defaults.defaultSizing ?? {}\n ),\n columnVisibility:\n persistedSettings.columnVisibility ?? props.defaultSettings?.columnVisibility ?? defaults.defaultVisibility ?? {},\n globalFilter: persistedSettings.searchQuery ?? props.defaultSettings?.searchQuery,\n sorting: persistedSettings.sorting\n ? persistedSettings.sorting.filter(ignoreNotDefinedColumns)\n : props.defaultSettings?.sorting ?? defaults.defaultSorting,\n };\n\n if (props.defaultRowGroupColumnId) {\n state.grouping = [props.defaultRowGroupColumnId as string];\n // row groups should (all) always be expanded by default\n state.expanded = true;\n }\n\n return state;\n }, []);\n}\n"],"names":["processChildren","child","columns","defaultSizing","defaultSorting","defaultVisibility","settings","defaultRowGroupColumnId","columnHelper","createColumnHelper","React","isValidElement","props","children","id","header","push","group","Children","toArray","reduce","enableGrouping","accessor","untypedId","accessorKey","renderer","aggregate","footer","aggregationFn","defaultHidden","defaultWidth","enableEditing","control","enableFiltering","enableColumnFilter","enableHiding","enableOrdering","enablePrinting","enableResizing","enableSearch","enableGlobalFilter","enableSorting","enableTruncate","minWidth","minSize","getCellMinWidth","fontSize","sort","sortFn","meta","isGrouped","undefined","desc","column","accessorFn","row","get","cell","info","getValue","original","table","getRowModel","rows","flatMap","filterFn","aggregatedCell","sortingFn","getSortingFn","dataType","sortDescFirst","sortUndefined","createInternalColumn","size","mapTableChildrenToColumns","options","internalColumns","_props$rowActions","enableRowExpansion","rowExpansionRenderer","rowExpansion","unshift","enableRowSelection","enableRowSelectionSingle","rowSelection","enableRowDrag","onRowDrag","rowDrag","enableRowActions","rowActions","length","configureReactTableOptions","reactTableEnableRowSelection","tableOptions","defaultColumn","enableColumnHiding","enableColumnResizing","enableColumnFilters","_options$enableFilter","_options$enableColumn","enableExpanding","_options$enableRowExp","_options$enableColumn2","enablePinning","_options$enableColumn3","enableColumnFreezing","enableMultiRowSelection","_options$enableSortin","getExpandedRowModel","getGroupedRowModel","groupedColumnMode","columnResizeMode","onChangeFilter","getFilteredRowModel","filterFns","tacoFilter","columnId","filter","columnFilterFn","globalFilterFn","getColumnCanGlobalFilter","_column$columnDef$met","_column$columnDef$met2","columnDef","onChangeSort","manualSorting","getSortedRowModel","useReactTableInitialState","persistedSettings","defaults","useMemo","ignoreNotDefinedColumns","find","definedColumn","columnPinning","_ref","_persistedSettings$co","_props$defaultSetting","defaultSettings","columnOrder","ensureOrdering","_persistedSettings$co2","_props$defaultSetting2","left","_columnPinning$left","freezeUptoExternalColumn","indexOf","defaultColumnFreezingIndex","unfreezeAllExternalColumns","state","columnFilters","_ref2","_persistedSettings$co3","_props$defaultSetting3","columnSizing","ignoreInternalColumns","_ref3","_ref4","_persistedSettings$co4","_props$defaultSetting4","columnVisibility","_ref5","_ref6","_persistedSettings$co5","_props$defaultSetting5","globalFilter","_persistedSettings$se","searchQuery","_props$defaultSetting6","sorting","_props$defaultSetting7","_props$defaultSetting8","grouping","expanded"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"setup.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/setup.ts"],"sourcesContent":["import React from 'react';\nimport {\n createColumnHelper,\n getExpandedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getSortedRowModel,\n TableOptions as ReactTableOptions,\n Row as ReactTableRow,\n Column as ReactTableColumn,\n ColumnDef as ReactTableColumnDef,\n ColumnPinningState as ReactTableColumnPinningState,\n ColumnSizingState as ReactTableColumnSizingState,\n ColumnSort as ReactTableColumnSort,\n TableState as ReactTableState,\n VisibilityState as ReactTableVisibilityState,\n} from '@tanstack/react-table';\nimport get from 'lodash/get';\nimport { useTableManagerInternalColumns, useTableManagerInternalColumn } from '../types';\nimport { TableColumnProps, TableFeatureProps, TableGroupProps, TableProps, TableSettings } from '../../types';\nimport { getSortingFn } from './sorting';\nimport { ensureOrdering, freezeUptoExternalColumn, getCellMinWidth, unfreezeAllExternalColumns } from './columns';\nimport { columnFilterFn } from './filtering';\nimport { globalFilterFn } from './search';\nimport { ignoreInternalColumns } from './settings';\nimport { getDataTypeProperties } from './dataTypes';\nimport { Localization } from '../../../../components/Provider/Localization';\n\n// mapping children to react-table columns\nfunction processChildren<TType>(\n child: React.ReactChild | React.ReactFragment | React.ReactPortal,\n columns: ReactTableColumnDef<TType>[],\n defaultSizing: ReactTableColumnSizingState,\n defaultSorting: ReactTableColumnSort[],\n defaultVisibility: ReactTableVisibilityState,\n settings: TableSettings,\n defaultRowGroupColumnId: keyof TType | undefined,\n localization: Localization\n): ReactTableColumnDef<TType>[] {\n const columnHelper = createColumnHelper<TType>();\n\n if (React.isValidElement<TableGroupProps>(child) && child.props.children) {\n const { children, id, header } = child.props;\n\n columns.push(\n columnHelper.group({\n id,\n header,\n columns: React.Children.toArray(children).reduce(\n (columns: ReactTableColumnDef<TType>[], child) =>\n processChildren<TType>(\n child,\n columns,\n defaultSizing,\n defaultSorting,\n defaultVisibility,\n settings,\n defaultRowGroupColumnId,\n localization\n ),\n []\n ),\n // we don't want to let column groups be grouped/aggregrated\n enableGrouping: false,\n })\n );\n } else if (React.isValidElement<TableColumnProps<TType>>(child) && (child.props.accessor || child.props.id)) {\n const {\n id: untypedId,\n accessor: accessorKey = untypedId,\n // renderers\n renderer,\n aggregate,\n footer,\n header,\n // options\n aggregationFn,\n defaultHidden,\n defaultWidth,\n enableEditing = !!child.props.control,\n enableFiltering: enableColumnFilter = true,\n enableGrouping = false,\n enableHiding = true,\n enableOrdering = true,\n enablePrinting = true,\n enableResizing = true,\n enableSearch: enableGlobalFilter = true,\n enableSorting = true,\n enableTruncate = false,\n minWidth: minSize = getCellMinWidth(settings.fontSize),\n sort,\n sortFn,\n ...meta\n } = child.props;\n const id = untypedId as string;\n const dataTypeProperties = getDataTypeProperties<TType>(child.props.dataType);\n\n if (defaultHidden && enableHiding) {\n defaultVisibility[id] = false;\n }\n\n if (defaultWidth) {\n defaultSizing[id] = defaultWidth as any;\n }\n\n const isGrouped = defaultRowGroupColumnId === id;\n\n if (child.props.sort !== undefined || isGrouped) {\n defaultSorting.push({\n id,\n desc: sort === 'desc',\n });\n }\n\n const column: ReactTableColumnDef<TType, any> = {\n id,\n accessorKey,\n // To avoid errors caused by undefined row data values, we pass accessorFn as a preventive measure\n // accessorKey can be dot notated strings, so we use lodash.get to access deeply nested children\n accessorFn: row => get(row, accessorKey),\n header: header,\n // features\n enableColumnFilter,\n enableGlobalFilter,\n enableGrouping,\n enableHiding: isGrouped ? false : enableHiding,\n enableResizing,\n enableSorting,\n // config - sizing\n minSize,\n // meta\n meta: {\n ...(meta as any),\n align: meta.align ?? dataTypeProperties.align,\n defaultWidth,\n enableOrdering: isGrouped ? false : enableOrdering,\n enablePrinting,\n enableTruncate,\n enableEditing,\n header,\n renderer,\n },\n };\n\n // renderers - use defined renderers first, then fall back to data type renderers (if there is one)\n if (typeof renderer === 'function') {\n column.cell = info => renderer(info.getValue(), info.row.original);\n } else if (dataTypeProperties.getDisplayValue) {\n const dataTypeRenderer = (value: any) => dataTypeProperties.getDisplayValue?.(value, { localization }) ?? value;\n column.cell = info => dataTypeRenderer(info.getValue());\n (column.meta as any).renderer = dataTypeRenderer;\n }\n\n if (typeof footer === 'function') {\n column.footer = info =>\n footer(info.table.getRowModel().rows.flatMap(row => (row.original !== undefined ? row.original : [])));\n }\n\n // config - filtering\n if (enableColumnFilter) {\n column.filterFn = 'tacoFilter' as any;\n }\n\n // config - grouping/aggregation\n if (enableGrouping) {\n column.aggregationFn = aggregationFn;\n\n if (typeof aggregate === 'function') {\n column.aggregatedCell = info => aggregate(info.getValue(), info.row.original);\n }\n }\n\n // config - sorting\n if (enableSorting) {\n column.sortingFn = getSortingFn<TType>(child.props.dataType, sortFn);\n column.sortDescFirst = false;\n column.sortUndefined = 1;\n }\n\n columns.push(column);\n }\n\n return columns;\n}\n\nfunction createInternalColumn<TType = unknown>(\n id: string,\n column: useTableManagerInternalColumn<TType>,\n defaultSizing: ReactTableColumnSizingState\n) {\n if (column.size) {\n defaultSizing[id] = column.size;\n }\n\n return {\n id,\n accessorKey: id,\n header: column.header,\n cell: column.renderer,\n // features\n enableColumnFilter: false,\n enableGlobalFilter: false,\n enableGrouping: false,\n enableHiding: false,\n enableResizing: false,\n enableSorting: false,\n // config - sizing\n size: column.size,\n minSize: column.size,\n // meta\n meta: {\n ...(column.meta as any),\n enableOrdering: false,\n enablePrinting: false,\n enableTruncate: false,\n },\n } as ReactTableColumnDef<TType, any>;\n}\n\nexport function mapTableChildrenToColumns<TType = unknown>(\n props: TableProps<TType>,\n settings: TableSettings,\n options: TableFeatureProps<TType>,\n internalColumns: useTableManagerInternalColumns<TType> | undefined,\n localization: Localization\n) {\n const { children, defaultRowGroupColumnId } = props;\n const defaultSizing: ReactTableColumnSizingState = {};\n const defaultSorting: ReactTableColumnSort[] = [];\n const defaultVisibility: ReactTableVisibilityState = {};\n\n const columns = React.Children.toArray(children).reduce(\n (columns: ReactTableColumnDef<TType>[], child) =>\n processChildren<TType>(\n child,\n columns,\n defaultSizing,\n defaultSorting,\n defaultVisibility,\n settings,\n defaultRowGroupColumnId,\n localization\n ),\n\n []\n );\n\n if (internalColumns) {\n if (options.enableRowExpansion && props.rowExpansionRenderer && internalColumns.rowExpansion) {\n const column = createInternalColumn<TType>('__expansion', internalColumns.rowExpansion, defaultSizing);\n columns.unshift(column);\n }\n\n if ((options.enableRowSelection || options.enableRowSelectionSingle) && internalColumns.rowSelection) {\n const column = createInternalColumn<TType>('__select', internalColumns.rowSelection, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowDrag && props.onRowDrag && internalColumns.rowDrag) {\n const column = createInternalColumn<TType>('__drag', internalColumns.rowDrag, defaultSizing);\n columns.unshift(column);\n }\n\n if (options.enableRowActions && props.rowActions?.length && internalColumns.rowActions) {\n const column = createInternalColumn<TType>('__actions', internalColumns.rowActions, defaultSizing);\n columns.push(column);\n }\n }\n\n return { columns, defaultSizing, defaultSorting, defaultVisibility };\n}\n\nexport function configureReactTableOptions<TType = unknown>(\n options: TableFeatureProps<TType>,\n props: TableProps<TType>,\n localization: Localization\n) {\n const enableRowSelection = options.enableRowSelection || options.enableRowSelectionSingle;\n // We don't want to expose internal Tanstack Table row, so we need to wrap enableRowSelection callback into additional function,\n // which receives the React Table Row object and passes row.original to a callback.\n const reactTableEnableRowSelection =\n typeof enableRowSelection === 'function'\n ? (row: ReactTableRow<TType>) => (enableRowSelection as (row: TType) => boolean)(row.original)\n : enableRowSelection;\n\n const tableOptions: Partial<ReactTableOptions<TType>> = {\n defaultColumn: {\n enableColumnFilter: options.enableFiltering || true,\n enableGrouping: false,\n enableHiding: options.enableColumnHiding || true,\n enableResizing: options.enableColumnResizing || true,\n enableGlobalFilter: options.enableSearch || true,\n enableSorting: options.enableSorting || true,\n minSize: 1,\n // the default is 150, which is a bit random\n size: 1,\n },\n enableColumnFilters: options.enableFiltering ?? false,\n enableColumnResizing: options.enableColumnResizing ?? false,\n enableExpanding: options.enableRowExpansion ?? false,\n enableGrouping: true, // users can't customise row grouping, so it can just be always enabled and left to the defaultRowGroupColumnId prop\n enableHiding: options.enableColumnHiding ?? false,\n enablePinning: options.enableColumnFreezing ?? false,\n enableRowSelection: reactTableEnableRowSelection ?? false,\n enableMultiRowSelection: !options.enableRowSelectionSingle && reactTableEnableRowSelection,\n enableSorting: options.enableSorting ?? false,\n // models for default features\n getExpandedRowModel: getExpandedRowModel<TType>(),\n getGroupedRowModel: getGroupedRowModel<TType>(),\n groupedColumnMode: false,\n };\n\n if (tableOptions.enableColumnResizing) {\n tableOptions.columnResizeMode = 'onChange';\n }\n\n if (tableOptions.enableColumnFilters) {\n // enter controlled filter mode (controlled could be local state, but usually the server)\n if (props.onChangeFilter) {\n // tableOptions.manualFiltering = true;\n // we don't set it because it breaks global filtering (used for search, which is fully client side)\n //\n // tableOptions.onColumnFiltersChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onFilter\n } else {\n tableOptions.getFilteredRowModel = getFilteredRowModel<TType>();\n tableOptions.filterFns = {\n tacoFilter: (row: ReactTableRow<TType>, columnId: string, filter: any) =>\n columnFilterFn(row.getValue(columnId), filter),\n };\n }\n }\n\n if (options.enableSearch) {\n // always set these because enableGlobalFilter can be toggled on and off by the user\n tableOptions.getFilteredRowModel = getFilteredRowModel<TType>();\n tableOptions.globalFilterFn = (row: ReactTableRow<TType>, columnId: string, searchQuery: any) =>\n globalFilterFn(row, columnId, searchQuery, localization);\n tableOptions.getColumnCanGlobalFilter = (column: ReactTableColumn<TType>) => column.columnDef.meta?.enableSearch ?? true;\n\n // enter controlled search mode (controlled could be local state, but usually the server)\n if (props.onChangeSearch) {\n // tableOptions.manualFiltering = true;\n // we don't set this because controlled search is not currently supported, search is always client side\n //\n // tableOptions.onGlobalFilterChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onSearch.\n //\n // we also don't always filter when searching, we have the highlight functionality as the default\n // and filtering can be toggled by the user\n }\n }\n\n if (tableOptions.enableSorting) {\n // enter controlled sort mode (controlled could be local state, but usually the server)\n if (props.onChangeSort) {\n tableOptions.manualSorting = true;\n\n // tableOptions.onSortingChange = ...\n // we don't set this because it expects state to be maintained externally, and we don't want\n // consumers to control state outside the table. instead we have a listener that calls onSort\n } else {\n tableOptions.getSortedRowModel = getSortedRowModel();\n }\n }\n\n return tableOptions;\n}\n\nexport function useReactTableInitialState<TType = unknown>(\n props: TableProps<TType>,\n columns: ReactTableColumnDef<TType>[],\n persistedSettings: TableSettings,\n defaults: {\n defaultSizing: ReactTableColumnSizingState;\n defaultSorting: ReactTableColumnSort[];\n defaultVisibility: ReactTableVisibilityState;\n }\n): Partial<ReactTableState> {\n return React.useMemo(() => {\n const ignoreNotDefinedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);\n\n const columnPinning: ReactTableColumnPinningState =\n persistedSettings.columnPinning ?? props.defaultSettings?.columnPinning ?? {};\n\n const columnOrder = ensureOrdering<TType>(\n columns,\n persistedSettings.columnOrder ?? props.defaultSettings?.columnOrder,\n columnPinning.left\n );\n\n // ensure internal columns are pinned, and are pinned in the correct order\n if (columnPinning?.left?.length) {\n columnPinning.left = freezeUptoExternalColumn(\n columnOrder.indexOf(columnPinning.left[columnPinning.left.length - 1]),\n columnOrder\n );\n } else {\n if (props.defaultColumnFreezingIndex) {\n columnPinning.left = freezeUptoExternalColumn(props.defaultColumnFreezingIndex, columnOrder);\n } else {\n columnPinning.left = unfreezeAllExternalColumns(columnOrder);\n }\n }\n\n const state: Partial<ReactTableState> = {\n columnFilters: persistedSettings.columnFilters ?? props.defaultSettings?.columnFilters ?? [],\n columnOrder,\n columnPinning,\n columnSizing: ignoreInternalColumns(\n persistedSettings.columnSizing ?? props.defaultSettings?.columnSizing ?? defaults.defaultSizing ?? {}\n ),\n columnVisibility:\n persistedSettings.columnVisibility ?? props.defaultSettings?.columnVisibility ?? defaults.defaultVisibility ?? {},\n globalFilter: persistedSettings.searchQuery ?? props.defaultSettings?.searchQuery,\n sorting: persistedSettings.sorting\n ? persistedSettings.sorting.filter(ignoreNotDefinedColumns)\n : props.defaultSettings?.sorting ?? defaults.defaultSorting,\n };\n\n if (props.defaultRowGroupColumnId) {\n state.grouping = [props.defaultRowGroupColumnId as string];\n // row groups should (all) always be expanded by default\n state.expanded = true;\n }\n\n return state;\n }, []);\n}\n"],"names":["processChildren","child","columns","defaultSizing","defaultSorting","defaultVisibility","settings","defaultRowGroupColumnId","localization","columnHelper","createColumnHelper","React","isValidElement","props","children","id","header","push","group","Children","toArray","reduce","enableGrouping","accessor","_meta$align","untypedId","accessorKey","renderer","aggregate","footer","aggregationFn","defaultHidden","defaultWidth","enableEditing","control","enableFiltering","enableColumnFilter","enableHiding","enableOrdering","enablePrinting","enableResizing","enableSearch","enableGlobalFilter","enableSorting","enableTruncate","minWidth","minSize","getCellMinWidth","fontSize","sort","sortFn","meta","dataTypeProperties","getDataTypeProperties","dataType","isGrouped","undefined","desc","column","accessorFn","row","get","align","cell","info","getValue","original","getDisplayValue","dataTypeRenderer","value","_dataTypeProperties$g","_dataTypeProperties$g2","call","table","getRowModel","rows","flatMap","filterFn","aggregatedCell","sortingFn","getSortingFn","sortDescFirst","sortUndefined","createInternalColumn","size","mapTableChildrenToColumns","options","internalColumns","_props$rowActions","enableRowExpansion","rowExpansionRenderer","rowExpansion","unshift","enableRowSelection","enableRowSelectionSingle","rowSelection","enableRowDrag","onRowDrag","rowDrag","enableRowActions","rowActions","length","configureReactTableOptions","reactTableEnableRowSelection","tableOptions","defaultColumn","enableColumnHiding","enableColumnResizing","enableColumnFilters","_options$enableFilter","_options$enableColumn","enableExpanding","_options$enableRowExp","_options$enableColumn2","enablePinning","_options$enableColumn3","enableColumnFreezing","enableMultiRowSelection","_options$enableSortin","getExpandedRowModel","getGroupedRowModel","groupedColumnMode","columnResizeMode","onChangeFilter","getFilteredRowModel","filterFns","tacoFilter","columnId","filter","columnFilterFn","globalFilterFn","searchQuery","getColumnCanGlobalFilter","_column$columnDef$met","_column$columnDef$met2","columnDef","onChangeSort","manualSorting","getSortedRowModel","useReactTableInitialState","persistedSettings","defaults","useMemo","ignoreNotDefinedColumns","find","definedColumn","columnPinning","_ref","_persistedSettings$co","_props$defaultSetting","defaultSettings","columnOrder","ensureOrdering","_persistedSettings$co2","_props$defaultSetting2","left","_columnPinning$left","freezeUptoExternalColumn","indexOf","defaultColumnFreezingIndex","unfreezeAllExternalColumns","state","columnFilters","_ref2","_persistedSettings$co3","_props$defaultSetting3","columnSizing","ignoreInternalColumns","_ref3","_ref4","_persistedSettings$co4","_props$defaultSetting4","columnVisibility","_ref5","_ref6","_persistedSettings$co5","_props$defaultSetting5","globalFilter","_persistedSettings$se","_props$defaultSetting6","sorting","_props$defaultSetting7","_props$defaultSetting8","grouping","expanded"],"mappings":"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"}
|
@@ -1,4 +1,7 @@
|
|
1
|
+
import { getDataTypeProperties } from './dataTypes.js';
|
2
|
+
|
1
3
|
function getSortingFn(dataType, customFnOrBuiltIn) {
|
4
|
+
// custom functions should override any that come from dataType
|
2
5
|
if (typeof customFnOrBuiltIn === 'function') {
|
3
6
|
return (rowA, rowB, columnId) => customFnOrBuiltIn(rowA.original, rowB.original, columnId);
|
4
7
|
}
|
@@ -6,12 +9,7 @@ function getSortingFn(dataType, customFnOrBuiltIn) {
|
|
6
9
|
if (customFnOrBuiltIn) {
|
7
10
|
return customFnOrBuiltIn;
|
8
11
|
}
|
9
|
-
|
10
|
-
if (dataType && dataType !== 'boolean' && dataType !== 'number') {
|
11
|
-
return dataType;
|
12
|
-
}
|
13
|
-
// otherwise fall back to auto
|
14
|
-
return 'auto';
|
12
|
+
return getDataTypeProperties(dataType).sortingFn;
|
15
13
|
}
|
16
14
|
|
17
15
|
export { getSortingFn };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sorting.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/sorting.ts"],"sourcesContent":["import { TableColumnDataType, TableColumnSortFn } from '../../types';\n\nexport function getSortingFn<TType = unknown>(dataType?: TableColumnDataType
|
1
|
+
{"version":3,"file":"sorting.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/sorting.ts"],"sourcesContent":["import { SortingFnOption } from '@tanstack/react-table';\nimport { TableColumnDataType, TableColumnSortFn } from '../../types';\nimport { getDataTypeProperties } from './dataTypes';\n\nexport function getSortingFn<TType = unknown>(\n dataType?: TableColumnDataType,\n customFnOrBuiltIn?: TableColumnSortFn<TType>\n): SortingFnOption<TType> | undefined {\n // custom functions should override any that come from dataType\n if (typeof customFnOrBuiltIn === 'function') {\n return (rowA, rowB, columnId) => customFnOrBuiltIn(rowA.original, rowB.original, columnId);\n }\n\n // if a built in is being used, just return that\n if (customFnOrBuiltIn) {\n return customFnOrBuiltIn;\n }\n\n return getDataTypeProperties<TType>(dataType).sortingFn;\n}\n"],"names":["getSortingFn","dataType","customFnOrBuiltIn","rowA","rowB","columnId","original","getDataTypeProperties","sortingFn"],"mappings":";;SAIgBA,YAAYA,CACxBC,QAA8B,EAC9BC,iBAA4C;;EAG5C,IAAI,OAAOA,iBAAiB,KAAK,UAAU,EAAE;IACzC,OAAO,CAACC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,KAAKH,iBAAiB,CAACC,IAAI,CAACG,QAAQ,EAAEF,IAAI,CAACE,QAAQ,EAAED,QAAQ,CAAC;;;EAI9F,IAAIH,iBAAiB,EAAE;IACnB,OAAOA,iBAAiB;;EAG5B,OAAOK,qBAAqB,CAAQN,QAAQ,CAAC,CAACO,SAAS;AAC3D;;;;"}
|
@@ -36,7 +36,7 @@ export declare type TableFilter = {
|
|
36
36
|
};
|
37
37
|
export declare type TableColumnAlignment = 'left' | 'center' | 'right';
|
38
38
|
export declare type TableColumnClassNameHandler<TType = unknown> = string | ((row: TType) => string | undefined);
|
39
|
-
export declare type TableColumnDataType = '
|
39
|
+
export declare type TableColumnDataType = 'text' | 'number' | 'datetime' | 'boolean' | 'amount';
|
40
40
|
export declare type TableColumnFilter = ReactTableColumnFilter;
|
41
41
|
export declare type TableColumnMenu = ((columnId: string) => React.ReactNode | null)[];
|
42
42
|
export declare type TableColumnRenderer<TType, TValue> = (value: TValue, row: TType) => JSX.Element | string | number | null;
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { ColumnDef as ReactTableColumnDef } from '@tanstack/react-table';
|
2
2
|
import { FontSize } from '../../../../types';
|
3
3
|
import { TableColumnDataType } from '../../types';
|
4
|
+
import { Localization } from '../../../../components/Provider/Localization';
|
4
5
|
export declare function isInternalColumn(id: string | undefined): boolean | undefined;
|
5
6
|
export declare const getCellMinWidth: (fontSize?: FontSize) => 57 | 83 | 72;
|
6
|
-
export declare function isCellHighlighted(query: string, value: unknown, dataType
|
7
|
-
export declare function getCellValueAsString(value: unknown, dataType?: TableColumnDataType): string;
|
7
|
+
export declare function isCellHighlighted(query: string, value: unknown, dataType: TableColumnDataType | undefined, localization: Localization): boolean;
|
8
8
|
export declare function ensureOrdering<TType = unknown>(columns: ReactTableColumnDef<TType>[], settingsOrder: string[] | undefined, pinnedOrder?: string[] | undefined, internalColumnsPinnedToTheRight?: string[]): string[];
|
9
9
|
export declare function unfreezeAllExternalColumns(leftPinnedState?: string[]): string[];
|
10
10
|
export declare function freezeUptoExternalColumn(index: number, columns: string[]): string[];
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { SortingFnOption as ReactTableSortingFnOption } from '@tanstack/react-table';
|
2
|
+
import { TableColumnAlignment, TableColumnDataType, TableFilterComparator } from '../../types';
|
3
|
+
import { Localization } from '../../../../components/Provider/Localization';
|
4
|
+
export declare type TableDataType<TType = unknown> = {
|
5
|
+
align?: TableColumnAlignment;
|
6
|
+
sortingFn: ReactTableSortingFnOption<TType>;
|
7
|
+
filterComparators: TableFilterComparator[];
|
8
|
+
getDisplayValue?: (value: any, options?: {
|
9
|
+
localization: Localization;
|
10
|
+
}) => string;
|
11
|
+
};
|
12
|
+
export declare function getDataTypeProperties<TType = unknown>(dataType: TableColumnDataType | undefined): TableDataType<TType>;
|
@@ -1,7 +1,5 @@
|
|
1
|
-
import { Row as ReactTableRow } from '@tanstack/react-table';
|
2
1
|
import { TableFilterValue } from '../../types';
|
3
2
|
export declare const toLowerCase: (value: string | number) => string;
|
4
3
|
export declare const isWeakContains: (left: string | number, right: string | number) => boolean;
|
5
4
|
export declare const isWeakEqual: (left: string | number, right: string | number) => boolean;
|
6
5
|
export declare function columnFilterFn(value: any, filter: TableFilterValue): boolean;
|
7
|
-
export declare function globalFilterFn<TType = unknown>(row: ReactTableRow<TType>, columnId: string, searchQuery: string): boolean;
|
@@ -1,2 +1,6 @@
|
|
1
|
-
import { Table as ReactTable } from '@tanstack/react-table';
|
2
|
-
|
1
|
+
import { Table as ReactTable, Row as ReactTableRow } from '@tanstack/react-table';
|
2
|
+
import { TableColumnDataType } from '../../types';
|
3
|
+
import { Localization } from '../../../../components/Provider/Localization';
|
4
|
+
export declare function isMatched<TType = unknown>(searchQuery: string, cellValue: any, dataType: TableColumnDataType | undefined, localization: Localization): boolean;
|
5
|
+
export declare function globalFilterFn<TType = unknown>(row: ReactTableRow<TType>, columnId: string, searchQuery: string, localization: Localization): boolean;
|
6
|
+
export declare function resetHighlightedColumnIndexes<TType = unknown>(searchQuery: string | undefined, table: ReactTable<TType>, localization: Localization): number | undefined;
|
@@ -1,13 +1,14 @@
|
|
1
1
|
import { TableOptions as ReactTableOptions, ColumnDef as ReactTableColumnDef, ColumnSizingState as ReactTableColumnSizingState, ColumnSort as ReactTableColumnSort, TableState as ReactTableState, VisibilityState as ReactTableVisibilityState } from '@tanstack/react-table';
|
2
2
|
import { useTableManagerInternalColumns } from '../types';
|
3
3
|
import { TableFeatureProps, TableProps, TableSettings } from '../../types';
|
4
|
-
|
4
|
+
import { Localization } from '../../../../components/Provider/Localization';
|
5
|
+
export declare function mapTableChildrenToColumns<TType = unknown>(props: TableProps<TType>, settings: TableSettings, options: TableFeatureProps<TType>, internalColumns: useTableManagerInternalColumns<TType> | undefined, localization: Localization): {
|
5
6
|
columns: ReactTableColumnDef<TType, unknown>[];
|
6
7
|
defaultSizing: Record<string, number>;
|
7
8
|
defaultSorting: ReactTableColumnSort[];
|
8
9
|
defaultVisibility: Record<string, boolean>;
|
9
10
|
};
|
10
|
-
export declare function configureReactTableOptions<TType = unknown>(options: TableFeatureProps<TType>, props: TableProps<TType
|
11
|
+
export declare function configureReactTableOptions<TType = unknown>(options: TableFeatureProps<TType>, props: TableProps<TType>, localization: Localization): Partial<ReactTableOptions<TType>>;
|
11
12
|
export declare function useReactTableInitialState<TType = unknown>(props: TableProps<TType>, columns: ReactTableColumnDef<TType>[], persistedSettings: TableSettings, defaults: {
|
12
13
|
defaultSizing: ReactTableColumnSizingState;
|
13
14
|
defaultSorting: ReactTableColumnSort[];
|
@@ -1,2 +1,3 @@
|
|
1
|
+
import { SortingFnOption } from '@tanstack/react-table';
|
1
2
|
import { TableColumnDataType, TableColumnSortFn } from '../../types';
|
2
|
-
export declare function getSortingFn<TType = unknown>(dataType?: TableColumnDataType, customFnOrBuiltIn?: TableColumnSortFn<TType>):
|
3
|
+
export declare function getSortingFn<TType = unknown>(dataType?: TableColumnDataType, customFnOrBuiltIn?: TableColumnSortFn<TType>): SortingFnOption<TType> | undefined;
|