@economic/taco 2.0.0-alpha.5 → 2.0.0-alpha.7
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/Table3/Table3.d.ts +3 -3
- package/dist/components/Table3/hooks/{useTableData.d.ts → useTableDataLoader.d.ts} +2 -2
- package/dist/components/Table3/types.d.ts +3 -5
- package/dist/esm/packages/taco/src/components/Table3/Table3.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintIFrame.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/{useTableData.js → useTableDataLoader.js} +3 -3
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTableDataLoader.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/types.js.map +1 -1
- package/dist/esm/packages/taco/src/index.js +1 -1
- package/dist/taco.cjs.development.js +3 -3
- 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 -3
- package/types.json +19 -23
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTableData.js.map +0 -1
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@economic/taco",
|
3
|
-
"version": "2.0.0-alpha.
|
3
|
+
"version": "2.0.0-alpha.7",
|
4
4
|
"description": "> TODO: description",
|
5
5
|
"author": "Matt Daly <matthew.daly@visma.com>",
|
6
6
|
"homepage": "https://github.com/e-conomic/taco#readme",
|
@@ -129,6 +129,5 @@
|
|
129
129
|
"Firefox ESR",
|
130
130
|
"not ie < 11"
|
131
131
|
]
|
132
|
-
}
|
133
|
-
"gitHead": "17bed1048b45d7e050bb0da40a65d37232c78d16"
|
132
|
+
}
|
134
133
|
}
|
package/types.json
CHANGED
@@ -7538,7 +7538,7 @@
|
|
7538
7538
|
]
|
7539
7539
|
}
|
7540
7540
|
},
|
7541
|
-
"
|
7541
|
+
"useTableDataLoader": {
|
7542
7542
|
"useTable3AllDataFetcher": {
|
7543
7543
|
"arguments": {
|
7544
7544
|
"sorting": "Table3ColumnSort[]",
|
@@ -7563,16 +7563,7 @@
|
|
7563
7563
|
},
|
7564
7564
|
"returnValue": "Promise<[object Object]>"
|
7565
7565
|
},
|
7566
|
-
"
|
7567
|
-
"props": [
|
7568
|
-
{
|
7569
|
-
"name": "pageSize",
|
7570
|
-
"optional": false,
|
7571
|
-
"type": "number"
|
7572
|
-
}
|
7573
|
-
]
|
7574
|
-
},
|
7575
|
-
"useTableDataValues": {
|
7566
|
+
"useTable3DataFetcherValues": {
|
7576
7567
|
"props": [
|
7577
7568
|
{
|
7578
7569
|
"name": "data",
|
@@ -7618,6 +7609,15 @@
|
|
7618
7609
|
"type": "number"
|
7619
7610
|
}
|
7620
7611
|
]
|
7612
|
+
},
|
7613
|
+
"useTable3DataOptions": {
|
7614
|
+
"props": [
|
7615
|
+
{
|
7616
|
+
"name": "pageSize",
|
7617
|
+
"optional": false,
|
7618
|
+
"type": "number"
|
7619
|
+
}
|
7620
|
+
]
|
7621
7621
|
}
|
7622
7622
|
},
|
7623
7623
|
"Table3": {
|
@@ -7642,7 +7642,10 @@
|
|
7642
7642
|
"name": "TType"
|
7643
7643
|
}
|
7644
7644
|
},
|
7645
|
-
"returnValue":
|
7645
|
+
"returnValue": [
|
7646
|
+
"string",
|
7647
|
+
"undefined"
|
7648
|
+
]
|
7646
7649
|
}
|
7647
7650
|
],
|
7648
7651
|
"Table3ColumnControlProps": {
|
@@ -7918,7 +7921,10 @@
|
|
7918
7921
|
"name": "emptyState",
|
7919
7922
|
"optional": true,
|
7920
7923
|
"type": {
|
7921
|
-
"returnValue":
|
7924
|
+
"returnValue": [
|
7925
|
+
"Element",
|
7926
|
+
"null"
|
7927
|
+
]
|
7922
7928
|
}
|
7923
7929
|
},
|
7924
7930
|
{
|
@@ -8321,11 +8327,6 @@
|
|
8321
8327
|
},
|
8322
8328
|
"Table3Settings": {
|
8323
8329
|
"props": [
|
8324
|
-
{
|
8325
|
-
"name": "columnFilters",
|
8326
|
-
"optional": true,
|
8327
|
-
"type": "ColumnFiltersState"
|
8328
|
-
},
|
8329
8330
|
{
|
8330
8331
|
"name": "columnFreezingIndex",
|
8331
8332
|
"optional": true,
|
@@ -8361,11 +8362,6 @@
|
|
8361
8362
|
"optional": true,
|
8362
8363
|
"type": "Table3FontSize"
|
8363
8364
|
},
|
8364
|
-
{
|
8365
|
-
"name": "rowDensity",
|
8366
|
-
"optional": true,
|
8367
|
-
"type": "DeprecatedRowDensity"
|
8368
|
-
},
|
8369
8365
|
{
|
8370
8366
|
"name": "rowHeight",
|
8371
8367
|
"optional": true,
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"useTableData.js","sources":["../../../../../../../../src/components/Table3/hooks/useTableData.ts"],"sourcesContent":["import React from 'react';\nimport {\n ColumnFilter,\n Table3ColumnSort,\n Table3FilterHandler,\n Table3LoadAllHandler,\n Table3LoadPageHandler,\n Table3SearchHandler,\n Table3SortHandler,\n} from '../types';\n\nexport type useTable3DataFetcher<TType = unknown> = (\n pageIndex: number,\n pageSize: number,\n sorting: Table3ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n) => Promise<{ data: TType[]; length: number }>;\n\nexport type useTable3AllDataFetcher<TType = unknown> = (\n sorting: Table3ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n) => Promise<{ data: TType[]; length: number }>;\n\nexport type useTable3DataOptions = { pageSize: number };\n\nexport type useTableDataValues<TType = unknown> = {\n data: TType[];\n length: number | undefined;\n loadAll: Table3LoadAllHandler;\n loadPage: Table3LoadPageHandler;\n onFilter: Table3FilterHandler;\n onSearch: Table3SearchHandler;\n onSort: Table3SortHandler;\n pageSize: number;\n};\n\nexport function useTableData<TType = unknown>(\n fetch: useTable3DataFetcher<TType>,\n fetchAll: useTable3AllDataFetcher<TType>,\n options: useTable3DataOptions = { pageSize: 100 }\n): useTableDataValues<TType> {\n const { pageSize } = options;\n\n // track the data length, we don't know it until the first request\n const length = React.useRef<number | undefined>(undefined);\n // data will be filled after the first request, then we'll update values in place\n const [data, setData] = React.useState<any[]>([]);\n // track which pages have been loaded to dedupe requests\n const _pendingPageRequests = React.useRef({});\n const lastUsedSorting = React.useRef<Table3ColumnSort[]>([]);\n const lastUsedFilters = React.useRef<ColumnFilter[]>([]);\n const lastUsedSearch = React.useRef<string>();\n\n const loadPage = async (\n pageIndex: number,\n sorting: Table3ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n ) => {\n let reset = false;\n\n // sorting or filters changed, reset everything\n if (\n JSON.stringify(sorting) !== JSON.stringify(lastUsedSorting.current) ||\n JSON.stringify(filters) !== JSON.stringify(lastUsedFilters.current) ||\n search !== lastUsedSearch.current\n ) {\n _pendingPageRequests.current = {};\n // nuke the dataset so that we \"start again\" after sorting\n reset = true;\n }\n\n if (_pendingPageRequests.current[pageIndex]) {\n // if page is already loaded/loading, abort, otherwise mark it as loading\n return;\n } else {\n _pendingPageRequests.current[pageIndex] = true;\n }\n\n // set the sorting so we can track if it changed between loads\n lastUsedSorting.current = sorting;\n // set the filters so we can track if it changed between loads\n lastUsedFilters.current = filters;\n // set the search so we can track if it changed between loads\n lastUsedSearch.current = search;\n\n try {\n const response = await fetch(pageIndex, pageSize, sorting, filters, search);\n\n // update state, here we do some \"magic\" to support \"load in place\"\n setData(currentData => {\n let nextData;\n\n // reset table state if:\n // - the length isn't set at all (first load)\n // - the client length and server length are different (the data changed)\n if (reset || length.current !== response.length) {\n length.current = response.length;\n nextData = Array(length.current).fill(undefined);\n } else {\n nextData = [...currentData];\n }\n\n const startIndex = pageIndex * pageSize;\n nextData.splice(startIndex, pageSize, ...response.data);\n return nextData;\n });\n } catch {\n //\n } finally {\n _pendingPageRequests.current[pageIndex] = false;\n }\n };\n\n const loadAll = async (sorting: Table3ColumnSort[], filters: ColumnFilter[], search: string | undefined) => {\n try {\n const response = await fetchAll(sorting, filters, search);\n length.current = response.length;\n\n setData(() => {\n let nextData;\n\n if (response.data.length !== response.length) {\n nextData = Array(response.length).fill(undefined);\n nextData.splice(0, response.data.length, ...response.data);\n } else {\n nextData = [...response.data];\n }\n\n return nextData;\n });\n } catch {\n //\n }\n };\n\n // we reset the page to 0 whenever sorting, filtering or search changes\n const handleSort = async (sorting: Table3ColumnSort[]) =>\n loadPage(0, sorting, lastUsedFilters.current, lastUsedSearch.current);\n const handleFilter = async (filters: ColumnFilter[]) => loadPage(0, lastUsedSorting.current, filters, lastUsedSearch.current);\n const handleSearch = async (query: string) => loadAll(lastUsedSorting.current, lastUsedFilters.current, query);\n\n return {\n data,\n length: length.current,\n loadAll,\n loadPage,\n onFilter: handleFilter,\n onSearch: handleSearch as any,\n onSort: handleSort,\n pageSize,\n };\n}\n"],"names":["useTableData","fetch","fetchAll","options","pageSize","length","React","useRef","undefined","data","setData","useState","_pendingPageRequests","lastUsedSorting","lastUsedFilters","lastUsedSearch","loadPage","pageIndex","sorting","filters","search","reset","JSON","stringify","current","response","currentData","nextData","Array","fill","startIndex","splice","loadAll","handleSort","handleFilter","handleSearch","query","onFilter","onSearch","onSort"],"mappings":"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"}
|