@economic/taco 2.45.0-alpha.30 → 2.45.0-alpha.32
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/charts/components/ResponsiveContainer.d.ts +1 -1
- package/dist/components/Input/util.d.ts +5 -9
- package/dist/components/Table3/Table3.d.ts +1 -1
- package/dist/components/Table3/features/useEditingState.d.ts +6 -11
- package/dist/components/Table3/features/useTableEditing.d.ts +6 -10
- package/dist/components/Tour/Tour.d.ts +2 -2
- package/dist/esm/packages/taco/src/charts/components/Bar/BarChart.js +3 -3
- package/dist/esm/packages/taco/src/charts/components/Bar/BarChart.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/Donut/DonutChart.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/ResponsiveContainer.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/Tooltip.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/utils/color.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Accordion/Accordion.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +0 -1
- package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Dialog/components/Content.js +3 -3
- package/dist/esm/packages/taco/src/components/Dialog/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Drawer/components/Content.js +2 -2
- package/dist/esm/packages/taco/src/components/Drawer/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/Agreement/Avatar.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Header/components/AgreementSelector.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Input/util.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Item.js.map +1 -1
- package/dist/esm/packages/taco/src/components/OverflowGroup/OverflowGroup.js.map +1 -1
- package/dist/esm/packages/taco/src/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/esm/packages/taco/src/components/ScrollArea/ScrollArea.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select/useSelect.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Create.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Edit.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowSelect.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/Editing/RowMoveIndicator.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +4 -2
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Internal/EditingActionsMenu.js +1 -2
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Internal/EditingActionsMenu.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js.map +1 -1
- 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 +2 -3
- package/dist/esm/packages/taco/src/components/Table3/util/editing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Tour/Tour.js +2 -2
- package/dist/esm/packages/taco/src/components/Tour/Tour.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useIntersectionObserver.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Sortable/components/Container.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Sortable/components/Container.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Sortable/components/Item.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Expansion.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/Header.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Goto.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Menu.js +1 -3
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Menu.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/Resizer.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/components/SortIndicator.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Header/util.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js +6 -14
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/DisplayRow.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/Row.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Filters/components/FilterValue.js +1 -3
- 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/features/useTableRenderer.js +12 -45
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRenderer.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/useTableDataLoader2.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSettingsListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -1
- 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/settings.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/sorting.js.map +1 -1
- package/dist/primitives/Sortable/components/Container.d.ts +1 -1
- package/dist/primitives/Table/Core/components/Header/components/SortIndicator.d.ts +2 -2
- package/dist/primitives/Table/Core/types.d.ts +1 -1
- package/dist/primitives/Table/useTableManager/util/settings.d.ts +1 -1
- package/dist/taco.cjs.development.js +36 -82
- 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 +3 -4
- package/tailwind.config.js +0 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useTableDataLoader2.js","sources":["../../../../../../../src/primitives/Table/useTableDataLoader2.ts"],"sourcesContent":["import React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport {\n TableColumnFilter,\n TableColumnSort,\n TableFilterHandler,\n TableServerLoadPageHandler,\n TableServerLoadAllHandler,\n TableSortHandler,\n TableSearchHandler,\n} from './types';\nimport { DEFAULT_PAGE_SIZE, useTableDataLoaderOptions } from './useTableDataLoader';\n\nconst DATASET_SIZE_MULTIPLIER = 15;\n\nexport type useTableDataPageFetcher2<TType = unknown> = (\n pageIndex: number,\n pageSize: number,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<{ data: TType[]; length: number }>;\n\nexport type useTableDataAllFetcher2<TType = unknown> = (\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<{ data: TType[]; length: number }>;\n\nexport type useTableDataLoaderValues2<TType = unknown> = {\n data: TType[];\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n onChangeFilter: TableFilterHandler;\n onChangeSearch: TableSearchHandler;\n onChangeSort: TableSortHandler;\n pageSize: number;\n pages: number[];\n _experimentalDataLoader2: boolean;\n};\n\ntype Data<TType = unknown> = {\n rows: TType[];\n pages: number[];\n cache: Record<number, TType[]>;\n lastFetchedPage: number | undefined;\n};\ntype Direction = 'forward' | 'backward' | undefined;\n\nexport function useTableDataLoader2<TType = unknown>(\n fetchPage: useTableDataPageFetcher2<TType>,\n fetchAll: useTableDataAllFetcher2<TType>,\n options: useTableDataLoaderOptions = { pageSize: DEFAULT_PAGE_SIZE }\n): [useTableDataLoaderValues2<TType>, () => void] {\n const { pageSize } = options;\n const DATASET_SIZE = DATASET_SIZE_MULTIPLIER * pageSize;\n\n // track the data length, we don't know it until the first request\n const length = React.useRef<number>(0);\n // data will be filled after the first request\n const [data, setData] = React.useState<Data<TType>>({ rows: [], pages: [], cache: {}, lastFetchedPage: undefined });\n // track which pages have been loaded to dedupe requests\n const _pendingPageRequests = React.useRef<Record<number, boolean>>({});\n // it's possible to spam updates, e.g. sort, so we don't set state if the last request wasn't the current oen\n const _lastRequestId = React.useRef<string | undefined>();\n // store last used properties\n const _lastUsedSorting = React.useRef<TableColumnSort[]>([]);\n const _lastUsedFilters = React.useRef<TableColumnFilter[]>([]);\n const _lastUsedSearch = React.useRef<string | undefined>();\n const _lastUsedHiddenColumns = React.useRef<string[]>([]);\n\n async function loadPage(\n pageIndex: number,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined,\n reset = false\n ) {\n // if a request is already pending for this page (and it's not a reset), skip it\n if (_pendingPageRequests.current[pageIndex] && !reset) {\n return;\n }\n\n const hasChangedData =\n JSON.stringify(sorting) !== JSON.stringify(_lastUsedSorting.current) ||\n JSON.stringify(filters) !== JSON.stringify(_lastUsedFilters.current) ||\n search !== _lastUsedSearch.current;\n\n // if the page is already loaded and has actual rows, abort\n if (data.cache[pageIndex] && data.cache[pageIndex][0] && !hasChangedData && !reset) {\n return;\n }\n\n // create an id to track the update\n const requestId = uuid();\n\n // set the page as loading, so that subsequent requests don't retrigger it\n _pendingPageRequests.current[pageIndex] = true;\n\n try {\n _lastRequestId.current = requestId;\n const response = await fetchPage(pageIndex, pageSize, sorting, filters, hiddenColumns, search);\n length.current = response.length;\n\n // update state, here we do some \"magic\" to support \"load in place\"\n setData(currentData => {\n // if this request wasn't the last one, just return the current state to prevent weird updates\n if (_lastRequestId.current !== requestId) {\n return currentData;\n }\n\n const direction = getDirection(pageIndex, currentData.pages);\n const nextPages = getPages(pageIndex, currentData.lastFetchedPage, reset ? [] : currentData.pages, direction);\n\n // set values so we can track if they changed between loads\n _lastUsedSorting.current = sorting;\n _lastUsedFilters.current = filters;\n _lastUsedSearch.current = search;\n _lastUsedHiddenColumns.current = hiddenColumns;\n\n // cache data as an object to prevent any duplicates for pages\n let nextCache: Record<number, TType[]>;\n\n if (reset || hasChangedData || !direction) {\n nextCache = nextPages.reduce((acc, p) => ({ ...acc, [p]: Array(pageSize).fill(undefined) }), {});\n } else {\n nextCache = { ...currentData.cache };\n }\n\n nextCache[pageIndex] = response.data;\n\n // cleanup \"unloaded\" pages\n if (direction === 'forward' && currentData.rows.length >= DATASET_SIZE) {\n delete nextCache[currentData.pages[0]];\n } else if (direction === 'backward' && currentData.rows.length >= DATASET_SIZE) {\n delete nextCache[currentData.pages[currentData.pages.length - 1]];\n }\n\n // remap rows from the cached data - do it here and not in render to save some performance\n const rows = Object.values(nextCache).reduce((acc, p) => acc.concat(p), []);\n\n return {\n cache: nextCache,\n pages: nextPages,\n rows: rows,\n lastFetchedPage: pageIndex,\n };\n });\n\n // reset pending requests\n delete _pendingPageRequests.current[pageIndex];\n } catch {\n //\n }\n }\n\n const loadAll = async (\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n ) => {\n // set values so we can track if they changed between loads\n _lastUsedSorting.current = sorting;\n _lastUsedFilters.current = filters;\n _lastUsedSearch.current = search;\n _lastUsedHiddenColumns.current = hiddenColumns;\n\n try {\n const response = await fetchAll(sorting, filters, hiddenColumns, search);\n length.current = response.length;\n\n const pages: number[] = [];\n const cache: Record<number, Array<TType>> = {};\n const pageCount = Math.ceil(response.length / pageSize);\n\n Array.from(Array(pageCount).keys()).forEach(index => {\n pages.push(index);\n const startIndex = index * pageSize;\n cache[index] = response.data.slice(startIndex, startIndex + pageSize);\n });\n\n setData({\n cache,\n pages,\n rows: response.data,\n lastFetchedPage: undefined,\n });\n } catch {\n //\n } finally {\n // reset pending requests\n _pendingPageRequests.current = {};\n }\n };\n\n const invalidate = async () => {\n // reset stuff\n _pendingPageRequests.current = {};\n\n // load the current page again\n return loadPage(\n getCurrentPage(data.pages),\n _lastUsedSorting.current,\n _lastUsedFilters.current,\n _lastUsedHiddenColumns.current,\n _lastUsedSearch.current,\n true\n );\n };\n\n const handleSort = async (sorting: TableColumnSort[]) => {\n // reset before loading the current page\n _pendingPageRequests.current = {};\n\n return loadPage(\n getCurrentPage(data.pages),\n sorting,\n _lastUsedFilters.current,\n _lastUsedHiddenColumns.current,\n _lastUsedSearch.current,\n true\n );\n };\n const handleFilter = async (filters: TableColumnFilter[], hiddenColumns: string[]) => {\n // reset before loading the current page\n _pendingPageRequests.current = {};\n return loadPage(0, _lastUsedSorting.current, filters, hiddenColumns, _lastUsedSearch.current, true);\n };\n const handleSearch = async (search: string | undefined, hiddenColumns: string[]) => {\n // reset before loading the current page\n _pendingPageRequests.current = {};\n return loadPage(0, _lastUsedSorting.current, _lastUsedFilters.current, hiddenColumns, search, true);\n };\n\n return [\n {\n data: data.rows,\n pages: data.pages,\n length: length.current,\n loadAll,\n loadPage,\n onChangeFilter: handleFilter,\n onChangeSearch: handleSearch,\n onChangeSort: handleSort,\n pageSize,\n _experimentalDataLoader2: true,\n },\n invalidate,\n ];\n}\n\nfunction getCurrentPage(currentPages: number[]): number {\n if (currentPages.length <= 2) {\n return currentPages[0];\n }\n\n // for even page lengths we can't know which is the current visible page - it could even be both\n // so we load one of them and rely on the \"load next/previous page\" functionality in row\n const middle = Math.floor(currentPages.length / 2);\n return currentPages[middle];\n}\n\nfunction getDirection(pageIndex: number, currentPages: number[]): Direction {\n if (currentPages.length) {\n if (pageIndex === currentPages[currentPages.length - 1] + 1) {\n return 'forward';\n } else if (\n pageIndex === currentPages[0] - 1 ||\n (currentPages.length === 2 && currentPages[0] !== 0 && pageIndex === currentPages[0])\n ) {\n return 'backward';\n }\n }\n\n return undefined;\n}\n\nfunction getPages(pageIndex: number, lastUsedPageIndex: number | undefined, currentPages: number[], direction: Direction) {\n if (currentPages.length && (pageIndex === lastUsedPageIndex || currentPages.includes(pageIndex))) {\n return currentPages;\n }\n\n if (direction === 'forward') {\n const nextPages = currentPages.length === DATASET_SIZE_MULTIPLIER ? currentPages.slice(1) : currentPages;\n return nextPages.concat(pageIndex);\n }\n\n if (direction === 'backward') {\n const nextPages = currentPages.length === DATASET_SIZE_MULTIPLIER ? currentPages.slice(0, -1) : currentPages;\n return [pageIndex].concat(nextPages);\n }\n\n return [pageIndex];\n}\n"],"names":["DATASET_SIZE_MULTIPLIER","useTableDataLoader2","fetchPage","fetchAll","options","pageSize","DEFAULT_PAGE_SIZE","loadPage","pageIndex","sorting","filters","hiddenColumns","search","reset","_pendingPageRequests","current","Promise","resolve","hasChangedData","JSON","stringify","_lastUsedSorting","_lastUsedFilters","_lastUsedSearch","data","cache","requestId","uuid","_temp2","_catch","_lastRequestId","then","response","length","setData","currentData","direction","getDirection","pages","nextPages","getPages","lastFetchedPage","_lastUsedHiddenColumns","nextCache","reduce","acc","p","Array","fill","undefined","rows","DATASET_SIZE","Object","values","concat","e","reject","React","useRef","useState","loadAll","_temp","_finallyRethrows","pageCount","Math","ceil","from","keys","forEach","index","push","startIndex","slice","_wasThrown","_result","invalidate","getCurrentPage","handleSort","handleFilter","handleSearch","onChangeFilter","onChangeSearch","onChangeSort","_experimentalDataLoader2","currentPages","middle","floor","lastUsedPageIndex","includes"],"mappings":";;;;;AAaA,MAAMA,uBAAuB,GAAG,EAAE;SAuClBC,mBAAmBA,CAC/BC,SAA0C,EAC1CC,QAAwC,EACxCC,UAAqC;EAAEC,QAAQ,EAAEC;CAAmB;QAmBrDC,QAAQ,aACnBC,SAAiB,EACjBC,OAA0B,EAC1BC,OAA4B,EAC5BC,aAAuB,EACvBC,MAA0B,EAC1BC,KAAK,GAAG,KAAK;IAAA;;MAGb,IAAIC,oBAAoB,CAACC,OAAO,CAACP,SAAS,CAAC,IAAI,CAACK,KAAK,EAAE;QACnD,OAAAG,OAAA,CAAAC,OAAA;;MAGJ,MAAMC,cAAc,GAChBC,IAAI,CAACC,SAAS,CAACX,OAAO,CAAC,KAAKU,IAAI,CAACC,SAAS,CAACC,gBAAgB,CAACN,OAAO,CAAC,IACpEI,IAAI,CAACC,SAAS,CAACV,OAAO,CAAC,KAAKS,IAAI,CAACC,SAAS,CAACE,gBAAgB,CAACP,OAAO,CAAC,IACpEH,MAAM,KAAKW,eAAe,CAACR,OAAO;;MAGtC,IAAIS,IAAI,CAACC,KAAK,CAACjB,SAAS,CAAC,IAAIgB,IAAI,CAACC,KAAK,CAACjB,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAACU,cAAc,IAAI,CAACL,KAAK,EAAE;QAChF,OAAAG,OAAA,CAAAC,OAAA;;;MAIJ,MAAMS,SAAS,GAAGC,EAAI,EAAE;;MAGxBb,oBAAoB,CAACC,OAAO,CAACP,SAAS,CAAC,GAAG,IAAI;MAAC,MAAAoB,MAAA,GAAAC,MAAA,aAE3C;QACAC,cAAc,CAACf,OAAO,GAAGW,SAAS;QAAC,OAAAV,OAAA,CAAAC,OAAA,CACZf,SAAS,CAACM,SAAS,EAAEH,QAAQ,EAAEI,OAAO,EAAEC,OAAO,EAAEC,aAAa,EAAEC,MAAM,CAAC,EAAAmB,IAAA,WAAxFC,QAAQ;UACdC,MAAM,CAAClB,OAAO,GAAGiB,QAAQ,CAACC,MAAM;;UAGhCC,OAAO,CAACC,WAAW;;YAEf,IAAIL,cAAc,CAACf,OAAO,KAAKW,SAAS,EAAE;cACtC,OAAOS,WAAW;;YAGtB,MAAMC,SAAS,GAAGC,YAAY,CAAC7B,SAAS,EAAE2B,WAAW,CAACG,KAAK,CAAC;YAC5D,MAAMC,SAAS,GAAGC,QAAQ,CAAChC,SAAS,EAAE2B,WAAW,CAACM,eAAe,EAAE5B,KAAK,GAAG,EAAE,GAAGsB,WAAW,CAACG,KAAK,EAAEF,SAAS,CAAC;;YAG7Gf,gBAAgB,CAACN,OAAO,GAAGN,OAAO;YAClCa,gBAAgB,CAACP,OAAO,GAAGL,OAAO;YAClCa,eAAe,CAACR,OAAO,GAAGH,MAAM;YAChC8B,sBAAsB,CAAC3B,OAAO,GAAGJ,aAAa;;YAG9C,IAAIgC,SAAkC;YAEtC,IAAI9B,KAAK,IAAIK,cAAc,IAAI,CAACkB,SAAS,EAAE;cACvCO,SAAS,GAAGJ,SAAS,CAACK,MAAM,CAAC,CAACC,GAAG,EAAEC,CAAC,MAAM;gBAAE,GAAGD,GAAG;gBAAE,CAACC,CAAC,GAAGC,KAAK,CAAC1C,QAAQ,CAAC,CAAC2C,IAAI,CAACC,SAAS;eAAG,CAAC,EAAE,EAAE,CAAC;aACnG,MAAM;cACHN,SAAS,GAAG;gBAAE,GAAGR,WAAW,CAACV;eAAO;;YAGxCkB,SAAS,CAACnC,SAAS,CAAC,GAAGwB,QAAQ,CAACR,IAAI;;YAGpC,IAAIY,SAAS,KAAK,SAAS,IAAID,WAAW,CAACe,IAAI,CAACjB,MAAM,IAAIkB,YAAY,EAAE;cACpE,OAAOR,SAAS,CAACR,WAAW,CAACG,KAAK,CAAC,CAAC,CAAC,CAAC;aACzC,MAAM,IAAIF,SAAS,KAAK,UAAU,IAAID,WAAW,CAACe,IAAI,CAACjB,MAAM,IAAIkB,YAAY,EAAE;cAC5E,OAAOR,SAAS,CAACR,WAAW,CAACG,KAAK,CAACH,WAAW,CAACG,KAAK,CAACL,MAAM,GAAG,CAAC,CAAC,CAAC;;;YAIrE,MAAMiB,IAAI,GAAGE,MAAM,CAACC,MAAM,CAACV,SAAS,CAAC,CAACC,MAAM,CAAC,CAACC,GAAG,EAAEC,CAAC,KAAKD,GAAG,CAACS,MAAM,CAACR,CAAC,CAAC,EAAE,EAAE,CAAC;YAE3E,OAAO;cACHrB,KAAK,EAAEkB,SAAS;cAChBL,KAAK,EAAEC,SAAS;cAChBW,IAAI,EAAEA,IAAI;cACVT,eAAe,EAAEjC;aACpB;WACJ,CAAC;;UAGF,OAAOM,oBAAoB,CAACC,OAAO,CAACP,SAAS,CAAC;;OACjD;MAAA,OAAAQ,OAAA,CAAAC,OAAA,CAAAW,MAAA,IAAAA,MAAA,CAAAG,IAAA,GAAAH,MAAA,CAAAG,IAAA;KAGJ,QAAAwB,CAAA;MAAA,OAAAvC,OAAA,CAAAwC,MAAA,CAAAD,CAAA;;;EArGD,MAAM;IAAElD;GAAU,GAAGD,OAAO;EAC5B,MAAM+C,YAAY,GAAGnD,uBAAuB,GAAGK,QAAQ;;EAGvD,MAAM4B,MAAM,GAAGwB,cAAK,CAACC,MAAM,CAAS,CAAC,CAAC;;EAEtC,MAAM,CAAClC,IAAI,EAAEU,OAAO,CAAC,GAAGuB,cAAK,CAACE,QAAQ,CAAc;IAAET,IAAI,EAAE,EAAE;IAAEZ,KAAK,EAAE,EAAE;IAAEb,KAAK,EAAE,EAAE;IAAEgB,eAAe,EAAEQ;GAAW,CAAC;;EAEnH,MAAMnC,oBAAoB,GAAG2C,cAAK,CAACC,MAAM,CAA0B,EAAE,CAAC;;EAEtE,MAAM5B,cAAc,GAAG2B,cAAK,CAACC,MAAM,EAAsB;;EAEzD,MAAMrC,gBAAgB,GAAGoC,cAAK,CAACC,MAAM,CAAoB,EAAE,CAAC;EAC5D,MAAMpC,gBAAgB,GAAGmC,cAAK,CAACC,MAAM,CAAsB,EAAE,CAAC;EAC9D,MAAMnC,eAAe,GAAGkC,cAAK,CAACC,MAAM,EAAsB;EAC1D,MAAMhB,sBAAsB,GAAGe,cAAK,CAACC,MAAM,CAAW,EAAE,CAAC;EAwFzD,MAAME,OAAO,aACTnD,OAA0B,EAC1BC,OAA4B,EAC5BC,aAAuB,EACvBC,MAA0B;IAAA;;MAG1BS,gBAAgB,CAACN,OAAO,GAAGN,OAAO;MAClCa,gBAAgB,CAACP,OAAO,GAAGL,OAAO;MAClCa,eAAe,CAACR,OAAO,GAAGH,MAAM;MAChC8B,sBAAsB,CAAC3B,OAAO,GAAGJ,aAAa;MAAC,MAAAkD,KAAA,GAAAC,gBAAA;QAAA,OAAAjC,MAAA,aAE3C;UAAA,OAAAb,OAAA,CAAAC,OAAA,CACuBd,QAAQ,CAACM,OAAO,EAAEC,OAAO,EAAEC,aAAa,EAAEC,MAAM,CAAC,EAAAmB,IAAA,WAAlEC,QAAQ;YACdC,MAAM,CAAClB,OAAO,GAAGiB,QAAQ,CAACC,MAAM;YAEhC,MAAMK,KAAK,GAAa,EAAE;YAC1B,MAAMb,KAAK,GAAiC,EAAE;YAC9C,MAAMsC,SAAS,GAAGC,IAAI,CAACC,IAAI,CAACjC,QAAQ,CAACC,MAAM,GAAG5B,QAAQ,CAAC;YAEvD0C,KAAK,CAACmB,IAAI,CAACnB,KAAK,CAACgB,SAAS,CAAC,CAACI,IAAI,EAAE,CAAC,CAACC,OAAO,CAACC,KAAK;cAC7C/B,KAAK,CAACgC,IAAI,CAACD,KAAK,CAAC;cACjB,MAAME,UAAU,GAAGF,KAAK,GAAGhE,QAAQ;cACnCoB,KAAK,CAAC4C,KAAK,CAAC,GAAGrC,QAAQ,CAACR,IAAI,CAACgD,KAAK,CAACD,UAAU,EAAEA,UAAU,GAAGlE,QAAQ,CAAC;aACxE,CAAC;YAEF6B,OAAO,CAAC;cACJT,KAAK;cACLa,KAAK;cACLY,IAAI,EAAElB,QAAQ,CAACR,IAAI;cACnBiB,eAAe,EAAEQ;aACpB,CAAC;;SACL;mBAAAwB,UAAA,EAAAC,OAAA;;QAIG5D,oBAAoB,CAACC,OAAO,GAAG,EAAE;QAAC,IAAA0D,UAAA,QAAAC,OAAA;QAAA,OAAAA,OAAA;;MAAA,OAAA1D,OAAA,CAAAC,OAAA,CAAA4C,KAAA,IAAAA,KAAA,CAAA9B,IAAA,GAAA8B,KAAA,CAAA9B,IAAA;KAEzC,QAAAwB,CAAA;MAAA,OAAAvC,OAAA,CAAAwC,MAAA,CAAAD,CAAA;;;EAED,MAAMoB,UAAU;IAAA;;MAEZ7D,oBAAoB,CAACC,OAAO,GAAG,EAAE;;MAGjC,OAAOR,QAAQ,CACXqE,cAAc,CAACpD,IAAI,CAACc,KAAK,CAAC,EAC1BjB,gBAAgB,CAACN,OAAO,EACxBO,gBAAgB,CAACP,OAAO,EACxB2B,sBAAsB,CAAC3B,OAAO,EAC9BQ,eAAe,CAACR,OAAO,EACvB,IAAI,CACP;KACJ,QAAAwC,CAAA;MAAA,OAAAvC,OAAA,CAAAwC,MAAA,CAAAD,CAAA;;;EAED,MAAMsB,UAAU,aAAUpE,OAA0B;IAAA;;MAEhDK,oBAAoB,CAACC,OAAO,GAAG,EAAE;MAEjC,OAAOR,QAAQ,CACXqE,cAAc,CAACpD,IAAI,CAACc,KAAK,CAAC,EAC1B7B,OAAO,EACPa,gBAAgB,CAACP,OAAO,EACxB2B,sBAAsB,CAAC3B,OAAO,EAC9BQ,eAAe,CAACR,OAAO,EACvB,IAAI,CACP;KACJ,QAAAwC,CAAA;MAAA,OAAAvC,OAAA,CAAAwC,MAAA,CAAAD,CAAA;;;EACD,MAAMuB,YAAY,aAAUpE,OAA4B,EAAEC,aAAuB;IAAA;;MAE7EG,oBAAoB,CAACC,OAAO,GAAG,EAAE;MACjC,OAAOR,QAAQ,CAAC,CAAC,EAAEc,gBAAgB,CAACN,OAAO,EAAEL,OAAO,EAAEC,aAAa,EAAEY,eAAe,CAACR,OAAO,EAAE,IAAI,CAAC;KACtG,QAAAwC,CAAA;MAAA,OAAAvC,OAAA,CAAAwC,MAAA,CAAAD,CAAA;;;EACD,MAAMwB,YAAY,aAAUnE,MAA0B,EAAED,aAAuB;IAAA;;MAE3EG,oBAAoB,CAACC,OAAO,GAAG,EAAE;MACjC,OAAOR,QAAQ,CAAC,CAAC,EAAEc,gBAAgB,CAACN,OAAO,EAAEO,gBAAgB,CAACP,OAAO,EAAEJ,aAAa,EAAEC,MAAM,EAAE,IAAI,CAAC;KACtG,QAAA2C,CAAA;MAAA,OAAAvC,OAAA,CAAAwC,MAAA,CAAAD,CAAA;;;EAED,OAAO,CACH;IACI/B,IAAI,EAAEA,IAAI,CAAC0B,IAAI;IACfZ,KAAK,EAAEd,IAAI,CAACc,KAAK;IACjBL,MAAM,EAAEA,MAAM,CAAClB,OAAO;IACtB6C,OAAO;IACPrD,QAAQ;IACRyE,cAAc,EAAEF,YAAY;IAC5BG,cAAc,EAAEF,YAAY;IAC5BG,YAAY,EAAEL,UAAU;IACxBxE,QAAQ;IACR8E,wBAAwB,EAAE;GAC7B,EACDR,UAAU,CACb;AACL;AAEA,SAASC,cAAcA,CAACQ,YAAsB;EAC1C,IAAIA,YAAY,CAACnD,MAAM,IAAI,CAAC,EAAE;IAC1B,OAAOmD,YAAY,CAAC,CAAC,CAAC;;;;EAK1B,MAAMC,MAAM,GAAGrB,IAAI,CAACsB,KAAK,CAACF,YAAY,CAACnD,MAAM,GAAG,CAAC,CAAC;EAClD,OAAOmD,YAAY,CAACC,MAAM,CAAC;AAC/B;AAEA,SAAShD,YAAYA,CAAC7B,SAAiB,EAAE4E,YAAsB;EAC3D,IAAIA,YAAY,CAACnD,MAAM,EAAE;IACrB,IAAIzB,SAAS,KAAK4E,YAAY,CAACA,YAAY,CAACnD,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE;MACzD,OAAO,SAAS;KACnB,MAAM,IACHzB,SAAS,KAAK4E,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,IAChCA,YAAY,CAACnD,MAAM,KAAK,CAAC,IAAImD,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI5E,SAAS,KAAK4E,YAAY,CAAC,CAAC,CAAE,EACvF;MACE,OAAO,UAAU;;;EAIzB,OAAOnC,SAAS;AACpB;AAEA,SAAST,QAAQA,CAAChC,SAAiB,EAAE+E,iBAAqC,EAAEH,YAAsB,EAAEhD,SAAoB;EACpH,IAAIgD,YAAY,CAACnD,MAAM,KAAKzB,SAAS,KAAK+E,iBAAiB,IAAIH,YAAY,CAACI,QAAQ,CAAChF,SAAS,CAAC,CAAC,EAAE;IAC9F,OAAO4E,YAAY;;EAGvB,IAAIhD,SAAS,KAAK,SAAS,EAAE;IACzB,MAAMG,SAAS,GAAG6C,YAAY,CAACnD,MAAM,KAAKjC,uBAAuB,GAAGoF,YAAY,CAACZ,KAAK,CAAC,CAAC,CAAC,GAAGY,YAAY;IACxG,OAAO7C,SAAS,CAACe,MAAM,CAAC9C,SAAS,CAAC;;EAGtC,IAAI4B,SAAS,KAAK,UAAU,EAAE;IAC1B,MAAMG,SAAS,GAAG6C,YAAY,CAACnD,MAAM,KAAKjC,uBAAuB,GAAGoF,YAAY,CAACZ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAGY,YAAY;IAC5G,OAAO,CAAC5E,SAAS,CAAC,CAAC8C,MAAM,CAACf,SAAS,CAAC;;EAGxC,OAAO,CAAC/B,SAAS,CAAC;AACtB;;;;"}
|
1
|
+
{"version":3,"file":"useTableDataLoader2.js","sources":["../../../../../../../src/primitives/Table/useTableDataLoader2.ts"],"sourcesContent":["import React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport {\n TableColumnFilter,\n TableColumnSort,\n TableFilterHandler,\n TableServerLoadPageHandler,\n TableServerLoadAllHandler,\n TableSortHandler,\n TableSearchHandler,\n} from './types';\nimport { DEFAULT_PAGE_SIZE, useTableDataLoaderOptions } from './useTableDataLoader';\n\nconst DATASET_SIZE_MULTIPLIER = 15;\n\nexport type useTableDataPageFetcher2<TType = unknown> = (\n pageIndex: number,\n pageSize: number,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<{ data: TType[]; length: number }>;\n\nexport type useTableDataAllFetcher2<TType = unknown> = (\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n) => Promise<{ data: TType[]; length: number }>;\n\nexport type useTableDataLoaderValues2<TType = unknown> = {\n data: TType[];\n length: number | undefined;\n loadAll: TableServerLoadAllHandler;\n loadPage: TableServerLoadPageHandler;\n onChangeFilter: TableFilterHandler;\n onChangeSearch: TableSearchHandler;\n onChangeSort: TableSortHandler;\n pageSize: number;\n pages: number[];\n _experimentalDataLoader2: boolean;\n};\n\ntype Data<TType = unknown> = {\n rows: TType[];\n pages: number[];\n cache: Record<number, TType[]>;\n lastFetchedPage: number | undefined;\n};\ntype Direction = 'forward' | 'backward' | undefined;\n\nexport function useTableDataLoader2<TType = unknown>(\n fetchPage: useTableDataPageFetcher2<TType>,\n fetchAll: useTableDataAllFetcher2<TType>,\n options: useTableDataLoaderOptions = { pageSize: DEFAULT_PAGE_SIZE }\n): [useTableDataLoaderValues2<TType>, () => void] {\n const { pageSize } = options;\n const DATASET_SIZE = DATASET_SIZE_MULTIPLIER * pageSize;\n\n // track the data length, we don't know it until the first request\n const length = React.useRef<number>(0);\n // data will be filled after the first request\n const [data, setData] = React.useState<Data<TType>>({ rows: [], pages: [], cache: {}, lastFetchedPage: undefined });\n // track which pages have been loaded to dedupe requests\n const _pendingPageRequests = React.useRef<Record<number, boolean>>({});\n // it's possible to spam updates, e.g. sort, so we don't set state if the last request wasn't the current oen\n const _lastRequestId = React.useRef<string | undefined>();\n // store last used properties\n const _lastUsedSorting = React.useRef<TableColumnSort[]>([]);\n const _lastUsedFilters = React.useRef<TableColumnFilter[]>([]);\n const _lastUsedSearch = React.useRef<string | undefined>();\n const _lastUsedHiddenColumns = React.useRef<string[]>([]);\n\n async function loadPage(\n pageIndex: number,\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined,\n reset = false\n ) {\n // if a request is already pending for this page (and it's not a reset), skip it\n if (_pendingPageRequests.current[pageIndex] && !reset) {\n return;\n }\n\n const hasChangedData =\n JSON.stringify(sorting) !== JSON.stringify(_lastUsedSorting.current) ||\n JSON.stringify(filters) !== JSON.stringify(_lastUsedFilters.current) ||\n search !== _lastUsedSearch.current;\n\n // if the page is already loaded and has actual rows, abort\n if (data.cache[pageIndex] && data.cache[pageIndex][0] && !hasChangedData && !reset) {\n return;\n }\n\n // create an id to track the update\n const requestId = uuid();\n\n // set the page as loading, so that subsequent requests don't retrigger it\n _pendingPageRequests.current[pageIndex] = true;\n\n try {\n _lastRequestId.current = requestId;\n const response = await fetchPage(pageIndex, pageSize, sorting, filters, hiddenColumns, search);\n length.current = response.length;\n\n // update state, here we do some \"magic\" to support \"load in place\"\n setData(currentData => {\n // if this request wasn't the last one, just return the current state to prevent weird updates\n if (_lastRequestId.current !== requestId) {\n return currentData;\n }\n\n const direction = getDirection(pageIndex, currentData.pages);\n const nextPages = getPages(pageIndex, currentData.lastFetchedPage, reset ? [] : currentData.pages, direction);\n\n // set values so we can track if they changed between loads\n _lastUsedSorting.current = sorting;\n _lastUsedFilters.current = filters;\n _lastUsedSearch.current = search;\n _lastUsedHiddenColumns.current = hiddenColumns;\n\n // cache data as an object to prevent any duplicates for pages\n let nextCache: Record<number, TType[]>;\n\n if (reset || hasChangedData || !direction) {\n nextCache = nextPages.reduce((acc, p) => ({ ...acc, [p]: Array(pageSize).fill(undefined) }), {});\n } else {\n nextCache = { ...currentData.cache };\n }\n\n nextCache[pageIndex] = response.data;\n\n // cleanup \"unloaded\" pages\n if (direction === 'forward' && currentData.rows.length >= DATASET_SIZE) {\n delete nextCache[currentData.pages[0]];\n } else if (direction === 'backward' && currentData.rows.length >= DATASET_SIZE) {\n delete nextCache[currentData.pages[currentData.pages.length - 1]];\n }\n\n // remap rows from the cached data - do it here and not in render to save some performance\n const rows = Object.values(nextCache).reduce((acc, p) => acc.concat(p), []);\n\n return {\n cache: nextCache,\n pages: nextPages,\n rows: rows,\n lastFetchedPage: pageIndex,\n };\n });\n\n // reset pending requests\n delete _pendingPageRequests.current[pageIndex];\n } catch {\n //\n }\n }\n\n const loadAll = async (\n sorting: TableColumnSort[],\n filters: TableColumnFilter[],\n hiddenColumns: string[],\n search: string | undefined\n ) => {\n // set values so we can track if they changed between loads\n _lastUsedSorting.current = sorting;\n _lastUsedFilters.current = filters;\n _lastUsedSearch.current = search;\n _lastUsedHiddenColumns.current = hiddenColumns;\n\n try {\n const response = await fetchAll(sorting, filters, hiddenColumns, search);\n length.current = response.length;\n\n const pages: number[] = [];\n const cache = {};\n const pageCount = Math.ceil(response.length / pageSize);\n\n Array.from(Array(pageCount).keys()).forEach(index => {\n pages.push(index);\n const startIndex = index * pageSize;\n cache[index] = response.data.slice(startIndex, startIndex + pageSize);\n });\n\n setData({\n cache,\n pages,\n rows: response.data,\n lastFetchedPage: undefined,\n });\n } catch {\n //\n } finally {\n // reset pending requests\n _pendingPageRequests.current = {};\n }\n };\n\n const invalidate = async () => {\n // reset stuff\n _pendingPageRequests.current = {};\n\n // load the current page again\n return loadPage(\n getCurrentPage(data.pages),\n _lastUsedSorting.current,\n _lastUsedFilters.current,\n _lastUsedHiddenColumns.current,\n _lastUsedSearch.current,\n true\n );\n };\n\n const handleSort = async (sorting: TableColumnSort[]) => {\n // reset before loading the current page\n _pendingPageRequests.current = {};\n\n return loadPage(\n getCurrentPage(data.pages),\n sorting,\n _lastUsedFilters.current,\n _lastUsedHiddenColumns.current,\n _lastUsedSearch.current,\n true\n );\n };\n const handleFilter = async (filters: TableColumnFilter[], hiddenColumns: string[]) => {\n // reset before loading the current page\n _pendingPageRequests.current = {};\n return loadPage(0, _lastUsedSorting.current, filters, hiddenColumns, _lastUsedSearch.current, true);\n };\n const handleSearch = async (search: string | undefined, hiddenColumns: string[]) => {\n // reset before loading the current page\n _pendingPageRequests.current = {};\n return loadPage(0, _lastUsedSorting.current, _lastUsedFilters.current, hiddenColumns, search, true);\n };\n\n return [\n {\n data: data.rows,\n pages: data.pages,\n length: length.current,\n loadAll,\n loadPage,\n onChangeFilter: handleFilter,\n onChangeSearch: handleSearch,\n onChangeSort: handleSort,\n pageSize,\n _experimentalDataLoader2: true,\n },\n invalidate,\n ];\n}\n\nfunction getCurrentPage(currentPages: number[]): number {\n if (currentPages.length <= 2) {\n return currentPages[0];\n }\n\n // for even page lengths we can't know which is the current visible page - it could even be both\n // so we load one of them and rely on the \"load next/previous page\" functionality in row\n const middle = Math.floor(currentPages.length / 2);\n return currentPages[middle];\n}\n\nfunction getDirection(pageIndex: number, currentPages: number[]): Direction {\n if (currentPages.length) {\n if (pageIndex === currentPages[currentPages.length - 1] + 1) {\n return 'forward';\n } else if (\n pageIndex === currentPages[0] - 1 ||\n (currentPages.length === 2 && currentPages[0] !== 0 && pageIndex === currentPages[0])\n ) {\n return 'backward';\n }\n }\n\n return undefined;\n}\n\nfunction getPages(pageIndex: number, lastUsedPageIndex: number | undefined, currentPages: number[], direction: Direction) {\n if (currentPages.length && (pageIndex === lastUsedPageIndex || currentPages.includes(pageIndex))) {\n return currentPages;\n }\n\n if (direction === 'forward') {\n const nextPages = currentPages.length === DATASET_SIZE_MULTIPLIER ? currentPages.slice(1) : currentPages;\n return nextPages.concat(pageIndex);\n }\n\n if (direction === 'backward') {\n const nextPages = currentPages.length === DATASET_SIZE_MULTIPLIER ? currentPages.slice(0, -1) : currentPages;\n return [pageIndex].concat(nextPages);\n }\n\n return [pageIndex];\n}\n"],"names":["DATASET_SIZE_MULTIPLIER","useTableDataLoader2","fetchPage","fetchAll","options","pageSize","DEFAULT_PAGE_SIZE","loadPage","pageIndex","sorting","filters","hiddenColumns","search","reset","_pendingPageRequests","current","Promise","resolve","hasChangedData","JSON","stringify","_lastUsedSorting","_lastUsedFilters","_lastUsedSearch","data","cache","requestId","uuid","_temp2","_catch","_lastRequestId","then","response","length","setData","currentData","direction","getDirection","pages","nextPages","getPages","lastFetchedPage","_lastUsedHiddenColumns","nextCache","reduce","acc","p","Array","fill","undefined","rows","DATASET_SIZE","Object","values","concat","e","reject","React","useRef","useState","loadAll","_temp","_finallyRethrows","pageCount","Math","ceil","from","keys","forEach","index","push","startIndex","slice","_wasThrown","_result","invalidate","getCurrentPage","handleSort","handleFilter","handleSearch","onChangeFilter","onChangeSearch","onChangeSort","_experimentalDataLoader2","currentPages","middle","floor","lastUsedPageIndex","includes"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useTableSettingsListener.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/listeners/useTableSettingsListener.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { TableSettingsHandler } from '../../types';\nimport { getSettings } from '../util/settings';\n\nexport function useTableSettingsListener<TType = unknown>(\n table: ReactTable<TType>,\n onChangeSettings: TableSettingsHandler | undefined\n) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const state = table.getState();\n\n React.useEffect(() => {\n let handler
|
1
|
+
{"version":3,"file":"useTableSettingsListener.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/listeners/useTableSettingsListener.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { TableSettingsHandler } from '../../types';\nimport { getSettings } from '../util/settings';\n\nexport function useTableSettingsListener<TType = unknown>(\n table: ReactTable<TType>,\n onChangeSettings: TableSettingsHandler | undefined\n) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const state = table.getState();\n\n React.useEffect(() => {\n let handler;\n\n if (typeof onChangeSettings === 'function') {\n handler = setTimeout(() => {\n // some settings shouldn't be persisted, but we comment them out here to highlight the intention\n onChangeSettings(getSettings(table));\n }, 250);\n }\n\n return () => clearTimeout(handler);\n }, [\n //state.columnFilters,\n state.columnOrder,\n state.columnPinning,\n state.columnSizing,\n state.columnVisibility,\n table.options.enableGlobalFilter,\n meta.fontSize.size,\n //state.grouping,\n meta.rowHeight.height,\n //state.globalFilter,\n state.sorting,\n ]);\n}\n"],"names":["useTableSettingsListener","table","onChangeSettings","meta","options","state","getState","React","useEffect","handler","setTimeout","getSettings","clearTimeout","columnOrder","columnPinning","columnSizing","columnVisibility","enableGlobalFilter","fontSize","size","rowHeight","height","sorting"],"mappings":";;;SAKgBA,wBAAwBA,CACpCC,KAAwB,EACxBC,gBAAkD;EAElD,MAAMC,IAAI,GAAGF,KAAK,CAACG,OAAO,CAACD,IAA6B;EACxD,MAAME,KAAK,GAAGJ,KAAK,CAACK,QAAQ,EAAE;EAE9BC,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIC,OAAO;IAEX,IAAI,OAAOP,gBAAgB,KAAK,UAAU,EAAE;MACxCO,OAAO,GAAGC,UAAU,CAAC;;QAEjBR,gBAAgB,CAACS,WAAW,CAACV,KAAK,CAAC,CAAC;OACvC,EAAE,GAAG,CAAC;;IAGX,OAAO,MAAMW,YAAY,CAACH,OAAO,CAAC;GACrC,EAAE;;EAECJ,KAAK,CAACQ,WAAW,EACjBR,KAAK,CAACS,aAAa,EACnBT,KAAK,CAACU,YAAY,EAClBV,KAAK,CAACW,gBAAgB,EACtBf,KAAK,CAACG,OAAO,CAACa,kBAAkB,EAChCd,IAAI,CAACe,QAAQ,CAACC,IAAI;;EAElBhB,IAAI,CAACiB,SAAS,CAACC,MAAM;;EAErBhB,KAAK,CAACiB,OAAO,CAChB,CAAC;AACN;;;;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useTableManager.js","sources":["../../../../../../../../src/primitives/Table/useTableManager/useTableManager.ts"],"sourcesContent":["import { useReactTable, TableMeta as ReactTableMeta, RowData, getCoreRowModel } from '@tanstack/react-table';\nimport {\n TableColumnAlignment,\n TableColumnClassNameHandler,\n TableColumnDataType,\n TableColumnMenu,\n TableColumnRenderer,\n TableColumnRendererControl,\n TableEventHandler,\n TableFilterComparator,\n TableProps,\n} from '../types';\nimport { useReactTableInitialState, configureReactTableOptions, mapTableChildrenToColumns } from './util/setup';\nimport { getTableFeaturePreset } from './util/presets';\nimport { useTableColumnFreezing } from './features/useTableColumnFreezing';\nimport { useTableColumnOrdering } from './features/useTableColumnOrdering';\nimport { useTableFooter } from './features/useTableFooter';\nimport { useTableFontSize } from './features/useTableFontSize';\nimport { useTablePrinting } from './features/useTablePrinting';\nimport { useTableRowActions } from './features/useTableRowActions';\nimport { useTableRowActive } from './features/useTableRowActive';\nimport { useTableRowClick } from './features/useTableRowClick';\nimport { useTableRowExpansion } from './features/useTableRowExpansion';\nimport { useTableRowGoto } from './features/useTableRowGoto';\nimport { useTableRowGroups } from './features/useTableRowGroups';\nimport { useTableRowHeight } from './features/useTableRowHeight';\nimport { useTableRowSelection } from './features/useTableRowSelection';\nimport { useTableSearch } from './features/useTableSearch';\nimport { useTableServerLoading } from './features/useTableServerLoading';\nimport { useTableSettings } from './features/useTableSettings';\nimport { useTableDataListener } from './listeners/useTableDataListener';\nimport { useTableFilterListener } from './listeners/useTableFilterListener';\nimport { useTableFontSizeListener } from './listeners/useTableFontSizeListener';\nimport { useTableRowHeightListener } from './listeners/useTableRowHeightListener';\nimport { useTableRowSelectionListener } from './listeners/useTableRowSelectionListener';\nimport { useTableSearchListener } from './listeners/useTableSearchListener';\nimport { useTableSettingsListener } from './listeners/useTableSettingsListener';\nimport { useTableShortcutsListener } from './listeners/useTableShortcutsListener';\nimport { useTableSortingListener } from './listeners/useTableSortingListener';\nimport { useTableServerLoadingListener } from './listeners/useTableServerLoadingListener';\nimport { useTableManagerInternalColumns } from './types';\nimport { useTableRowDrag } from './features/useTableRowDrag';\nimport { useTableRowDrop } from './features/useTableRowDrop';\nimport { useLocalization } from '../../../components/Provider/Localization';\n\n/*\n EDITING THIS FILE? READ ME FIRST!\n\n This is a shared, common hook for multiple tables. It's feature set is specifically chosen to support features\n common across those tables. If you are adding a new feature or changing an existing one, before writing any code\n in this file ask yourself the question - is this specific to a given table, or is it common to all of them.\n If you are unsure, ask your team first.\n*/\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useTableColumnFreezing>;\n columnOrdering: ReturnType<typeof useTableColumnOrdering>;\n fontSize: ReturnType<typeof useTableFontSize>;\n footer: ReturnType<typeof useTableFooter>;\n length: number;\n onEvent: TableEventHandler;\n printing: ReturnType<typeof useTablePrinting>;\n rowActions: ReturnType<typeof useTableRowActions>;\n rowActive: ReturnType<typeof useTableRowActive>;\n rowClick: ReturnType<typeof useTableRowClick>;\n rowDrag: ReturnType<typeof useTableRowDrag>;\n rowDrop: ReturnType<typeof useTableRowDrop>;\n rowExpansion: ReturnType<typeof useTableRowExpansion>;\n rowGoto: ReturnType<typeof useTableRowGoto>;\n rowGroups: ReturnType<typeof useTableRowGroups>;\n rowHeight: ReturnType<typeof useTableRowHeight>;\n rowIdentityAccessor: keyof TData;\n rowSelection: ReturnType<typeof useTableRowSelection>;\n search: ReturnType<typeof useTableSearch>;\n server: ReturnType<typeof useTableServerLoading>;\n }\n\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TData>;\n control?: TableColumnRendererControl<TData>;\n dataType?: TableColumnDataType;\n defaultWidth?: number;\n enableEditing?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableSearch?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n header: string;\n headerClassName?: string;\n menu?: TableColumnMenu;\n renderer?: TableColumnRenderer<TValue, TData>;\n tooltip?: string;\n }\n}\n\n// Placed this array outside the hook to avoid creating a new array reference on each hook re-render\nconst DEFAULT_EMPTY_ARRAY: any[] = [];\n\nexport function useTableManager<TType = unknown, TMeta = {}>(\n props: TableProps<TType>,\n meta?: Partial<ReactTableMeta<TType>> & TMeta,\n internalColumns?: useTableManagerInternalColumns<TType>\n) {\n const localization = useLocalization();\n // CSS.escape would be best here, but it doesn't seem to work very well\n const safeId = props.id.replace('.', '_');\n // configure table options, merging props with presets\n const options = getTableFeaturePreset(props);\n\n // load any persisted table settings and merge them with any defaults\n const [settings, setSettings] = useTableSettings(\n options.enableSaveSettings,\n safeId,\n props.defaultSettings,\n props.onChangeSettings\n );\n\n // ensure data is always valid\n const data = props.data ?? DEFAULT_EMPTY_ARRAY;\n const length = props.length ?? data.length;\n\n // configure common custom features\n const columnFreezing = useTableColumnFreezing(options.enableColumnFreezing);\n const columnOrdering = useTableColumnOrdering(options.enableColumnOrdering);\n const fontSize = useTableFontSize(options.enableFontSize, settings.fontSize);\n const footer = useTableFooter(options.enableFooter);\n const printing = useTablePrinting(options.enablePrinting, safeId);\n const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex);\n const rowActions = useTableRowActions<TType>(options.enableRowActions, props.rowActions, props.rowActionsLength);\n const rowClick = useTableRowClick<TType>(options.enableRowClick, props.onRowClick);\n const rowDrag = useTableRowDrag<TType>(options.enableRowDrag && !meta?.editing?.isEditing, props.onRowDrag);\n const rowDrop = useTableRowDrop<TType>(options.enableRowDrop, props.onRowDrop);\n const rowExpansion = useTableRowExpansion<TType>(\n options.enableRowExpansion,\n options.enableRowExpansionAll,\n props.rowExpansionRenderer\n );\n const rowGoto = useTableRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowGroups = useTableRowGroups(props.rowActionsForGroup);\n const rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);\n const rowSelection = useTableRowSelection(!!options.enableRowSelection);\n const search = useTableSearch(options.enableSearch, props.onChangeSearch, settings.excludeUnmatchedRecordsInSearch);\n const server = useTableServerLoading(\n length,\n data,\n props.loadPage,\n props.loadAll,\n props.pages,\n props.pageSize,\n props._experimentalDataLoader2\n );\n\n // TODO: memoise\n // convert jsx column components into valid table columns\n const { columns, ...defaultState } = mapTableChildrenToColumns<TType>(\n props,\n settings,\n options,\n internalColumns,\n localization\n );\n\n // configure initial table state\n const initialState = useReactTableInitialState<TType>(props, columns, settings, defaultState);\n\n // create a react-table instance\n const instance = useReactTable<TType>({\n data,\n columns,\n // configure initial table state\n initialState,\n getCoreRowModel: getCoreRowModel<TType>(),\n // configure react-table built-in features\n ...configureReactTableOptions<TType>(options, props, localization),\n // settings that can be toggled by the user, and therefore require our own state\n enableGlobalFilter: search.enableGlobalFilter,\n // custom context\n meta: {\n // spread features from specific implementations\n ...meta,\n columnFreezing,\n columnOrdering,\n fontSize,\n footer,\n length,\n onEvent: props.onEvent,\n printing,\n rowActions: rowActions as any, // no other way around ReturnType<typeof X> not supporting generics\n rowActive,\n rowClick: rowClick as any, // no other way around ReturnType<typeof X> not supporting generics\n rowDrag,\n rowDrop: rowDrop as any, // no other way around ReturnType<typeof X> not supporting generics\n rowExpansion: rowExpansion as any, // no other way around ReturnType<typeof X> not supporting generics\n rowIdentityAccessor: props.rowIdentityAccessor,\n rowGoto,\n rowGroups: rowGroups as any, // no other way around ReturnType<typeof X> not supporting generics\n rowHeight,\n rowSelection,\n search,\n server,\n } as ReactTableMeta<TType> & TMeta,\n });\n\n // state listeners - we have these so that we don't have to control state outside the table\n useTableDataListener(instance, length);\n useTableFilterListener(instance, props.onChangeFilter);\n useTableFontSizeListener(instance);\n useTableRowHeightListener(instance);\n useTableRowSelectionListener(instance, props.onRowSelect);\n useTableSearchListener(instance);\n useTableServerLoadingListener(instance, server.loadPage);\n useTableSettingsListener(instance, setSettings);\n useTableShortcutsListener(instance, props.shortcuts);\n useTableSortingListener(instance, props.onChangeSort);\n\n return {\n id: safeId,\n instance,\n meta: (instance.options.meta ?? {}) as ReactTableMeta<TType> & TMeta,\n state: instance.getState(),\n };\n}\n"],"names":["DEFAULT_EMPTY_ARRAY","useTableManager","props","meta","internalColumns","localization","useLocalization","safeId","id","replace","options","getTableFeaturePreset","settings","setSettings","useTableSettings","enableSaveSettings","defaultSettings","onChangeSettings","data","_props$data","length","_props$length","columnFreezing","useTableColumnFreezing","enableColumnFreezing","columnOrdering","useTableColumnOrdering","enableColumnOrdering","fontSize","useTableFontSize","enableFontSize","footer","useTableFooter","enableFooter","printing","useTablePrinting","enablePrinting","rowActive","useTableRowActive","enableRowActive","defaultRowActiveIndex","rowActions","useTableRowActions","enableRowActions","rowActionsLength","rowClick","useTableRowClick","enableRowClick","onRowClick","rowDrag","useTableRowDrag","enableRowDrag","_meta$editing","editing","isEditing","onRowDrag","rowDrop","useTableRowDrop","enableRowDrop","onRowDrop","rowExpansion","useTableRowExpansion","enableRowExpansion","enableRowExpansionAll","rowExpansionRenderer","rowGoto","useTableRowGoto","enableRowGoto","onRowGoto","rowGroups","useTableRowGroups","rowActionsForGroup","rowHeight","useTableRowHeight","enableRowHeight","rowSelection","useTableRowSelection","enableRowSelection","search","useTableSearch","enableSearch","onChangeSearch","excludeUnmatchedRecordsInSearch","server","useTableServerLoading","loadPage","loadAll","pages","pageSize","_experimentalDataLoader2","columns","defaultState","mapTableChildrenToColumns","initialState","useReactTableInitialState","instance","useReactTable","getCoreRowModel","configureReactTableOptions","enableGlobalFilter","onEvent","rowIdentityAccessor","useTableDataListener","useTableFilterListener","onChangeFilter","useTableFontSizeListener","useTableRowHeightListener","useTableRowSelectionListener","onRowSelect","useTableSearchListener","useTableServerLoadingListener","useTableSettingsListener","useTableShortcutsListener","shortcuts","useTableSortingListener","onChangeSort","_instance$options$met","state","getState"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"useTableManager.js","sources":["../../../../../../../../src/primitives/Table/useTableManager/useTableManager.ts"],"sourcesContent":["import { useReactTable, TableMeta as ReactTableMeta, RowData, getCoreRowModel } from '@tanstack/react-table';\nimport {\n TableColumnAlignment,\n TableColumnClassNameHandler,\n TableColumnDataType,\n TableColumnMenu,\n TableColumnRenderer,\n TableColumnRendererControl,\n TableEventHandler,\n TableFilterComparator,\n TableProps,\n} from '../types';\nimport { useReactTableInitialState, configureReactTableOptions, mapTableChildrenToColumns } from './util/setup';\nimport { getTableFeaturePreset } from './util/presets';\nimport { useTableColumnFreezing } from './features/useTableColumnFreezing';\nimport { useTableColumnOrdering } from './features/useTableColumnOrdering';\nimport { useTableFooter } from './features/useTableFooter';\nimport { useTableFontSize } from './features/useTableFontSize';\nimport { useTablePrinting } from './features/useTablePrinting';\nimport { useTableRowActions } from './features/useTableRowActions';\nimport { useTableRowActive } from './features/useTableRowActive';\nimport { useTableRowClick } from './features/useTableRowClick';\nimport { useTableRowExpansion } from './features/useTableRowExpansion';\nimport { useTableRowGoto } from './features/useTableRowGoto';\nimport { useTableRowGroups } from './features/useTableRowGroups';\nimport { useTableRowHeight } from './features/useTableRowHeight';\nimport { useTableRowSelection } from './features/useTableRowSelection';\nimport { useTableSearch } from './features/useTableSearch';\nimport { useTableServerLoading } from './features/useTableServerLoading';\nimport { useTableSettings } from './features/useTableSettings';\nimport { useTableDataListener } from './listeners/useTableDataListener';\nimport { useTableFilterListener } from './listeners/useTableFilterListener';\nimport { useTableFontSizeListener } from './listeners/useTableFontSizeListener';\nimport { useTableRowHeightListener } from './listeners/useTableRowHeightListener';\nimport { useTableRowSelectionListener } from './listeners/useTableRowSelectionListener';\nimport { useTableSearchListener } from './listeners/useTableSearchListener';\nimport { useTableSettingsListener } from './listeners/useTableSettingsListener';\nimport { useTableShortcutsListener } from './listeners/useTableShortcutsListener';\nimport { useTableSortingListener } from './listeners/useTableSortingListener';\nimport { useTableServerLoadingListener } from './listeners/useTableServerLoadingListener';\nimport { useTableManagerInternalColumns } from './types';\nimport { useTableRowDrag } from './features/useTableRowDrag';\nimport { useTableRowDrop } from './features/useTableRowDrop';\nimport { useLocalization } from '../../../components/Provider/Localization';\n\n/*\n EDITING THIS FILE? READ ME FIRST!\n\n This is a shared, common hook for multiple tables. It's feature set is specifically chosen to support features\n common across those tables. If you are adding a new feature or changing an existing one, before writing any code\n in this file ask yourself the question - is this specific to a given table, or is it common to all of them.\n If you are unsure, ask your team first.\n*/\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useTableColumnFreezing>;\n columnOrdering: ReturnType<typeof useTableColumnOrdering>;\n fontSize: ReturnType<typeof useTableFontSize>;\n footer: ReturnType<typeof useTableFooter>;\n length: number;\n onEvent: TableEventHandler;\n printing: ReturnType<typeof useTablePrinting>;\n rowActions: ReturnType<typeof useTableRowActions>;\n rowActive: ReturnType<typeof useTableRowActive>;\n rowClick: ReturnType<typeof useTableRowClick>;\n rowDrag: ReturnType<typeof useTableRowDrag>;\n rowDrop: ReturnType<typeof useTableRowDrop>;\n rowExpansion: ReturnType<typeof useTableRowExpansion>;\n rowGoto: ReturnType<typeof useTableRowGoto>;\n rowGroups: ReturnType<typeof useTableRowGroups>;\n rowHeight: ReturnType<typeof useTableRowHeight>;\n rowIdentityAccessor: keyof TData;\n rowSelection: ReturnType<typeof useTableRowSelection>;\n search: ReturnType<typeof useTableSearch>;\n server: ReturnType<typeof useTableServerLoading>;\n }\n\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TData>;\n control?: TableColumnRendererControl<TData>;\n dataType?: TableColumnDataType;\n defaultWidth?: number;\n enableEditing?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableSearch?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n header: string;\n headerClassName?: string;\n menu?: TableColumnMenu;\n renderer?: TableColumnRenderer<TValue, TData>;\n tooltip?: string;\n }\n}\n\n// Placed this array outside the hook to avoid creating a new array reference on each hook re-render\nconst DEFAULT_EMPTY_ARRAY = [];\n\nexport function useTableManager<TType = unknown, TMeta = {}>(\n props: TableProps<TType>,\n meta?: Partial<ReactTableMeta<TType>> & TMeta,\n internalColumns?: useTableManagerInternalColumns<TType>\n) {\n const localization = useLocalization();\n // CSS.escape would be best here, but it doesn't seem to work very well\n const safeId = props.id.replace('.', '_');\n // configure table options, merging props with presets\n const options = getTableFeaturePreset(props);\n\n // load any persisted table settings and merge them with any defaults\n const [settings, setSettings] = useTableSettings(\n options.enableSaveSettings,\n safeId,\n props.defaultSettings,\n props.onChangeSettings\n );\n\n // ensure data is always valid\n const data = props.data ?? DEFAULT_EMPTY_ARRAY;\n const length = props.length ?? data.length;\n\n // configure common custom features\n const columnFreezing = useTableColumnFreezing(options.enableColumnFreezing);\n const columnOrdering = useTableColumnOrdering(options.enableColumnOrdering);\n const fontSize = useTableFontSize(options.enableFontSize, settings.fontSize);\n const footer = useTableFooter(options.enableFooter);\n const printing = useTablePrinting(options.enablePrinting, safeId);\n const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex);\n const rowActions = useTableRowActions<TType>(options.enableRowActions, props.rowActions, props.rowActionsLength);\n const rowClick = useTableRowClick<TType>(options.enableRowClick, props.onRowClick);\n const rowDrag = useTableRowDrag<TType>(options.enableRowDrag && !meta?.editing?.isEditing, props.onRowDrag);\n const rowDrop = useTableRowDrop<TType>(options.enableRowDrop, props.onRowDrop);\n const rowExpansion = useTableRowExpansion<TType>(\n options.enableRowExpansion,\n options.enableRowExpansionAll,\n props.rowExpansionRenderer\n );\n const rowGoto = useTableRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowGroups = useTableRowGroups(props.rowActionsForGroup);\n const rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);\n const rowSelection = useTableRowSelection(!!options.enableRowSelection);\n const search = useTableSearch(options.enableSearch, props.onChangeSearch, settings.excludeUnmatchedRecordsInSearch);\n const server = useTableServerLoading(\n length,\n data,\n props.loadPage,\n props.loadAll,\n props.pages,\n props.pageSize,\n props._experimentalDataLoader2\n );\n\n // TODO: memoise\n // convert jsx column components into valid table columns\n const { columns, ...defaultState } = mapTableChildrenToColumns<TType>(\n props,\n settings,\n options,\n internalColumns,\n localization\n );\n\n // configure initial table state\n const initialState = useReactTableInitialState<TType>(props, columns, settings, defaultState);\n\n // create a react-table instance\n const instance = useReactTable<TType>({\n data,\n columns,\n // configure initial table state\n initialState,\n getCoreRowModel: getCoreRowModel<TType>(),\n // configure react-table built-in features\n ...configureReactTableOptions<TType>(options, props, localization),\n // settings that can be toggled by the user, and therefore require our own state\n enableGlobalFilter: search.enableGlobalFilter,\n // custom context\n meta: {\n // spread features from specific implementations\n ...meta,\n columnFreezing,\n columnOrdering,\n fontSize,\n footer,\n length,\n onEvent: props.onEvent,\n printing,\n rowActions: rowActions as any, // no other way around ReturnType<typeof X> not supporting generics\n rowActive,\n rowClick: rowClick as any, // no other way around ReturnType<typeof X> not supporting generics\n rowDrag,\n rowDrop: rowDrop as any, // no other way around ReturnType<typeof X> not supporting generics\n rowExpansion: rowExpansion as any, // no other way around ReturnType<typeof X> not supporting generics\n rowIdentityAccessor: props.rowIdentityAccessor,\n rowGoto,\n rowGroups: rowGroups as any, // no other way around ReturnType<typeof X> not supporting generics\n rowHeight,\n rowSelection,\n search,\n server,\n } as ReactTableMeta<TType> & TMeta,\n });\n\n // state listeners - we have these so that we don't have to control state outside the table\n useTableDataListener(instance, length);\n useTableFilterListener(instance, props.onChangeFilter);\n useTableFontSizeListener(instance);\n useTableRowHeightListener(instance);\n useTableRowSelectionListener(instance, props.onRowSelect);\n useTableSearchListener(instance);\n useTableServerLoadingListener(instance, server.loadPage);\n useTableSettingsListener(instance, setSettings);\n useTableShortcutsListener(instance, props.shortcuts);\n useTableSortingListener(instance, props.onChangeSort);\n\n return {\n id: safeId,\n instance,\n meta: (instance.options.meta ?? {}) as ReactTableMeta<TType> & TMeta,\n state: instance.getState(),\n };\n}\n"],"names":["DEFAULT_EMPTY_ARRAY","useTableManager","props","meta","internalColumns","localization","useLocalization","safeId","id","replace","options","getTableFeaturePreset","settings","setSettings","useTableSettings","enableSaveSettings","defaultSettings","onChangeSettings","data","_props$data","length","_props$length","columnFreezing","useTableColumnFreezing","enableColumnFreezing","columnOrdering","useTableColumnOrdering","enableColumnOrdering","fontSize","useTableFontSize","enableFontSize","footer","useTableFooter","enableFooter","printing","useTablePrinting","enablePrinting","rowActive","useTableRowActive","enableRowActive","defaultRowActiveIndex","rowActions","useTableRowActions","enableRowActions","rowActionsLength","rowClick","useTableRowClick","enableRowClick","onRowClick","rowDrag","useTableRowDrag","enableRowDrag","_meta$editing","editing","isEditing","onRowDrag","rowDrop","useTableRowDrop","enableRowDrop","onRowDrop","rowExpansion","useTableRowExpansion","enableRowExpansion","enableRowExpansionAll","rowExpansionRenderer","rowGoto","useTableRowGoto","enableRowGoto","onRowGoto","rowGroups","useTableRowGroups","rowActionsForGroup","rowHeight","useTableRowHeight","enableRowHeight","rowSelection","useTableRowSelection","enableRowSelection","search","useTableSearch","enableSearch","onChangeSearch","excludeUnmatchedRecordsInSearch","server","useTableServerLoading","loadPage","loadAll","pages","pageSize","_experimentalDataLoader2","columns","defaultState","mapTableChildrenToColumns","initialState","useReactTableInitialState","instance","useReactTable","getCoreRowModel","configureReactTableOptions","enableGlobalFilter","onEvent","rowIdentityAccessor","useTableDataListener","useTableFilterListener","onChangeFilter","useTableFontSizeListener","useTableRowHeightListener","useTableRowSelectionListener","onRowSelect","useTableSearchListener","useTableServerLoadingListener","useTableSettingsListener","useTableShortcutsListener","shortcuts","useTableSortingListener","onChangeSort","_instance$options$met","state","getState"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
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\nconst flattenCellValue = (cellValue: object | string)
|
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\nconst flattenCellValue = (cellValue: object | string) => {\n return typeof cellValue === 'object' ? Object.values(cellValue).map(flattenCellValue) : cellValue;\n};\n\nexport function isMatched<TType = unknown>(\n searchQuery: string,\n cellValue: any,\n dataType: TableColumnDataType | undefined,\n localization: Localization\n) {\n if (typeof cellValue === 'object') {\n return flattenCellValue(cellValue)\n .flat(Infinity)\n .find(y => isWeakContains(y, searchQuery));\n } else {\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 (Array.isArray(cellDisplayValue)) {\n for (const displayValue of cellDisplayValue) {\n if (isWeakContains(displayValue, searchQuery)) {\n return true;\n }\n }\n } else if (cellDisplayValue !== undefined && isWeakContains(cellDisplayValue, searchQuery)) {\n return true;\n }\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":["flattenCellValue","cellValue","Object","values","map","isMatched","searchQuery","dataType","localization","flat","Infinity","find","y","isWeakContains","cellValueAsString","String","undefined","dataTypeProperties","getDataTypeProperties","getDisplayValue","cellDisplayValue","Array","isArray","displayValue","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 +1 @@
|
|
1
|
-
{"version":3,"file":"settings.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/settings.ts"],"sourcesContent":["import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { isInternalColumn } from './columns';\n\nexport function getSettings<TType = unknown>(table: ReactTable<TType>) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const state = table.getState();\n\n return {\n // commented out properties are here to highlight things we explicitly don't want them saved\n //columnFilters: table.options.enableColumnFilters ? state.columnFilters : undefined,\n columnOrder: meta.columnOrdering.isEnabled ? state.columnOrder : undefined,\n columnPinning: state.columnPinning,\n columnSizing: ignoreInternalColumns(state.columnSizing),\n columnVisibility: table.options.enableHiding ? state.columnVisibility : undefined,\n excludeUnmatchedRecordsInSearch: table.options.enableGlobalFilter,\n fontSize: meta.fontSize.isEnabled ? meta.fontSize.size : undefined,\n //grouping: table.options.enableGrouping ? state.grouping : undefined,\n rowHeight: meta.rowHeight.isEnabled ? meta.rowHeight.height : undefined,\n //searchQuery: table.options.enableGlobalFilter ? state.globalFilter : undefined,\n sorting: state.sorting,\n };\n}\n\nexport function ignoreInternalColumns(data:
|
1
|
+
{"version":3,"file":"settings.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/util/settings.ts"],"sourcesContent":["import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { isInternalColumn } from './columns';\n\nexport function getSettings<TType = unknown>(table: ReactTable<TType>) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const state = table.getState();\n\n return {\n // commented out properties are here to highlight things we explicitly don't want them saved\n //columnFilters: table.options.enableColumnFilters ? state.columnFilters : undefined,\n columnOrder: meta.columnOrdering.isEnabled ? state.columnOrder : undefined,\n columnPinning: state.columnPinning,\n columnSizing: ignoreInternalColumns(state.columnSizing),\n columnVisibility: table.options.enableHiding ? state.columnVisibility : undefined,\n excludeUnmatchedRecordsInSearch: table.options.enableGlobalFilter,\n fontSize: meta.fontSize.isEnabled ? meta.fontSize.size : undefined,\n //grouping: table.options.enableGrouping ? state.grouping : undefined,\n rowHeight: meta.rowHeight.isEnabled ? meta.rowHeight.height : undefined,\n //searchQuery: table.options.enableGlobalFilter ? state.globalFilter : undefined,\n sorting: state.sorting,\n };\n}\n\nexport function ignoreInternalColumns(data: object) {\n return Object.keys(data).reduce((accum, key) => {\n if (isInternalColumn(key)) {\n return accum;\n }\n\n return {\n ...accum,\n [key]: data[key],\n };\n }, {});\n}\n"],"names":["getSettings","table","meta","options","state","getState","columnOrder","columnOrdering","isEnabled","undefined","columnPinning","columnSizing","ignoreInternalColumns","columnVisibility","enableHiding","excludeUnmatchedRecordsInSearch","enableGlobalFilter","fontSize","size","rowHeight","height","sorting","data","Object","keys","reduce","accum","key","isInternalColumn"],"mappings":";;SAGgBA,WAAWA,CAAkBC,KAAwB;EACjE,MAAMC,IAAI,GAAGD,KAAK,CAACE,OAAO,CAACD,IAA6B;EACxD,MAAME,KAAK,GAAGH,KAAK,CAACI,QAAQ,EAAE;EAE9B,OAAO;;;IAGHC,WAAW,EAAEJ,IAAI,CAACK,cAAc,CAACC,SAAS,GAAGJ,KAAK,CAACE,WAAW,GAAGG,SAAS;IAC1EC,aAAa,EAAEN,KAAK,CAACM,aAAa;IAClCC,YAAY,EAAEC,qBAAqB,CAACR,KAAK,CAACO,YAAY,CAAC;IACvDE,gBAAgB,EAAEZ,KAAK,CAACE,OAAO,CAACW,YAAY,GAAGV,KAAK,CAACS,gBAAgB,GAAGJ,SAAS;IACjFM,+BAA+B,EAAEd,KAAK,CAACE,OAAO,CAACa,kBAAkB;IACjEC,QAAQ,EAAEf,IAAI,CAACe,QAAQ,CAACT,SAAS,GAAGN,IAAI,CAACe,QAAQ,CAACC,IAAI,GAAGT,SAAS;;IAElEU,SAAS,EAAEjB,IAAI,CAACiB,SAAS,CAACX,SAAS,GAAGN,IAAI,CAACiB,SAAS,CAACC,MAAM,GAAGX,SAAS;;IAEvEY,OAAO,EAAEjB,KAAK,CAACiB;GAClB;AACL;SAEgBT,qBAAqBA,CAACU,IAAY;EAC9C,OAAOC,MAAM,CAACC,IAAI,CAACF,IAAI,CAAC,CAACG,MAAM,CAAC,CAACC,KAAK,EAAEC,GAAG;IACvC,IAAIC,gBAAgB,CAACD,GAAG,CAAC,EAAE;MACvB,OAAOD,KAAK;;IAGhB,OAAO;MACH,GAAGA,KAAK;MACR,CAACC,GAAG,GAAGL,IAAI,CAACK,GAAG;KAClB;GACJ,EAAE,EAAE,CAAC;AACV;;;;"}
|
@@ -1 +1 @@
|
|
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
|
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;;;;"}
|
@@ -5,7 +5,7 @@ export declare type SortableContainerProps = {
|
|
5
5
|
move?: (activeId: SortableItemId, overId: SortableItemId, listId: string) => void;
|
6
6
|
reorder: (activeId: SortableItemId, oldListId: string, listId: string) => void;
|
7
7
|
};
|
8
|
-
export declare function Container(externalProps:
|
8
|
+
export declare function Container(externalProps: any): React.JSX.Element;
|
9
9
|
export declare namespace Container {
|
10
10
|
var displayName: string;
|
11
11
|
}
|
@@ -4,12 +4,12 @@ declare type SortIndicatorProps = {
|
|
4
4
|
direction: false | TableColumnSortDirection;
|
5
5
|
};
|
6
6
|
export declare function SortIndicator(props: SortIndicatorProps): React.JSX.Element;
|
7
|
-
export declare const getAriaSort: (direction: TableColumnSortDirection) =>
|
7
|
+
export declare const getAriaSort: (direction: TableColumnSortDirection) => "ascending" | "descending";
|
8
8
|
export declare function getSortAttributes(canSort: boolean, toggleSorting?: (event: unknown) => void, sortDirection?: false | TableColumnSortDirection): {
|
9
9
|
'aria-sort'?: undefined;
|
10
10
|
onClick?: undefined;
|
11
11
|
} | {
|
12
|
-
'aria-sort':
|
12
|
+
'aria-sort': "ascending" | "descending";
|
13
13
|
onClick: (event: React.MouseEvent) => void;
|
14
14
|
};
|
15
15
|
export {};
|
@@ -12,7 +12,7 @@ export declare type TableRowRendererProps<TType = unknown> = {
|
|
12
12
|
hideInternalColumns?: boolean;
|
13
13
|
hideRowActions?: boolean;
|
14
14
|
index: number;
|
15
|
-
measureRow: (size: number
|
15
|
+
measureRow: (size: number) => void;
|
16
16
|
row: ReactTableRow<TType>;
|
17
17
|
table: ReactTable<TType>;
|
18
18
|
};
|
@@ -9,4 +9,4 @@ export declare function getSettings<TType = unknown>(table: ReactTable<TType>):
|
|
9
9
|
rowHeight: "medium" | "short" | "tall" | "extra-tall" | undefined;
|
10
10
|
sorting: import("@tanstack/react-table").SortingState;
|
11
11
|
};
|
12
|
-
export declare function ignoreInternalColumns(data:
|
12
|
+
export declare function ignoreInternalColumns(data: object): {};
|
@@ -6431,7 +6431,6 @@ const useDatepicker = ({
|
|
6431
6431
|
setInternalValue(event.target.value);
|
6432
6432
|
};
|
6433
6433
|
const handleChange = date => {
|
6434
|
-
// Update both the input value and calendar view date when selecting a date
|
6435
6434
|
setInputValueByRef(inputRef.current, format(date, formatting.date), 'focusout');
|
6436
6435
|
};
|
6437
6436
|
const handleKeyDown = event => {
|
@@ -6853,7 +6852,7 @@ const Content$4 = /*#__PURE__*/React.forwardRef(function DialogContent(props, re
|
|
6853
6852
|
}), /*#__PURE__*/React.createElement("div", {
|
6854
6853
|
className: containerClassName,
|
6855
6854
|
"data-taco": "dialog"
|
6856
|
-
},
|
6855
|
+
}, output, dialog.draggable && (/*#__PURE__*/React.createElement("div", Object.assign({}, dragHandleProps, {
|
6857
6856
|
role: "button",
|
6858
6857
|
draggable: true,
|
6859
6858
|
"aria-grabbed": dragging,
|
@@ -6867,7 +6866,7 @@ const Content$4 = /*#__PURE__*/React.forwardRef(function DialogContent(props, re
|
|
6867
6866
|
"aria-label": texts.dialog.close,
|
6868
6867
|
className: "absolute right-0 top-0 mr-2 mt-2 print:hidden",
|
6869
6868
|
icon: "close"
|
6870
|
-
}))) : null)
|
6869
|
+
}))) : null), dialog.elements.drawer, dialog.elements.extra))));
|
6871
6870
|
});
|
6872
6871
|
|
6873
6872
|
const DialogDrawer = /*#__PURE__*/React.forwardRef(function DialogDrawer(props, ref) {
|
@@ -7345,7 +7344,7 @@ const DrawerContent = /*#__PURE__*/React__default.forwardRef(function Content(pr
|
|
7345
7344
|
ref: contentRef,
|
7346
7345
|
"data-taco": "drawer",
|
7347
7346
|
className: containerClassName
|
7348
|
-
},
|
7347
|
+
}, output, /*#__PURE__*/React__default.createElement("div", Object.assign({
|
7349
7348
|
className: dragHandlerClassName
|
7350
7349
|
}, dragHandleProps, {
|
7351
7350
|
"data-testid": "resize-handler",
|
@@ -7358,7 +7357,7 @@ const DrawerContent = /*#__PURE__*/React__default.forwardRef(function Content(pr
|
|
7358
7357
|
"aria-label": texts.drawer.close,
|
7359
7358
|
className: "absolute right-0 top-0 mr-2 mt-4",
|
7360
7359
|
icon: "close"
|
7361
|
-
}))) : null)
|
7360
|
+
}))) : null);
|
7362
7361
|
const styleProp = {
|
7363
7362
|
...style,
|
7364
7363
|
...{
|
@@ -12449,16 +12448,13 @@ function getPaddingEndOffset(table, options) {
|
|
12449
12448
|
const bottomRows = (_table$getBottomRows = table.getBottomRows()) !== null && _table$getBottomRows !== void 0 ? _table$getBottomRows : [];
|
12450
12449
|
return ROW_HEIGHT_ESTIMATES.medium * ((_options$virtualiserP = options === null || options === void 0 ? void 0 : options.virtualiserPaddingEndOffset) !== null && _options$virtualiserP !== void 0 ? _options$virtualiserP : 1) * bottomRows.length;
|
12451
12450
|
}
|
12451
|
+
// A higher number ensure less scroll jumping for dynamic row heights, but too high can reduce performance. 8 worked well
|
12452
|
+
const OVERSCAN_ROW_COUNT = 8;
|
12452
12453
|
function useTableRenderer(renderers, table, tableRef, length, defaultRowActiveIndex, options) {
|
12453
12454
|
var _table$getState$group, _table$getCenterRows, _virtualItems$padding, _virtualItems$padding2, _virtualItems$padding3, _virtualItems$end, _virtualItems;
|
12454
12455
|
const tableMeta = table.options.meta;
|
12455
12456
|
const isTableRowGrouped = !!((_table$getState$group = table.getState().grouping) !== null && _table$getState$group !== void 0 && _table$getState$group.length);
|
12456
12457
|
const rows = (_table$getCenterRows = table.getCenterRows()) !== null && _table$getCenterRows !== void 0 ? _table$getCenterRows : [];
|
12457
|
-
// expanded rows
|
12458
|
-
const {
|
12459
|
-
createRowMeasurer,
|
12460
|
-
estimateSize
|
12461
|
-
} = useRowHeightVirtualisation(table);
|
12462
12458
|
// row groups
|
12463
12459
|
const rangeExtractor = useRowGroupVirtualisation(table);
|
12464
12460
|
// account for thead and tfoot in the scroll area - both are always medium row height
|
@@ -12466,15 +12462,20 @@ function useTableRenderer(renderers, table, tableRef, length, defaultRowActiveIn
|
|
12466
12462
|
const count = tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2 ? length : rows.length;
|
12467
12463
|
const virtualiser = reactVirtual.useVirtualizer({
|
12468
12464
|
count,
|
12469
|
-
estimateSize
|
12465
|
+
estimateSize: () => {
|
12466
|
+
return tableMeta.rowHeight.height ? ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] : ROW_HEIGHT_ESTIMATES.medium;
|
12467
|
+
},
|
12470
12468
|
getScrollElement: () => tableRef.current,
|
12471
|
-
overscan: tableMeta.printing.isPrinting ? count :
|
12469
|
+
overscan: tableMeta.printing.isPrinting ? count : OVERSCAN_ROW_COUNT,
|
12472
12470
|
rangeExtractor,
|
12473
12471
|
// correctly sets the scroll padding offset, e.g. when keyboard navigating rows in the list
|
12474
12472
|
scrollPaddingStart,
|
12475
12473
|
scrollPaddingEnd: getScrollPaddingEndOffset(table),
|
12476
12474
|
paddingEnd: getPaddingEndOffset(table, options)
|
12477
12475
|
});
|
12476
|
+
React__default.useEffect(() => {
|
12477
|
+
virtualiser.measure();
|
12478
|
+
}, [table.getState().expanded]);
|
12478
12479
|
const totalSize = virtualiser.getTotalSize();
|
12479
12480
|
const virtualItems = virtualiser.getVirtualItems();
|
12480
12481
|
const scrollToIndex = React__default.useCallback((index, options = {
|
@@ -12553,7 +12554,9 @@ function useTableRenderer(renderers, table, tableRef, length, defaultRowActiveIn
|
|
12553
12554
|
table: table
|
12554
12555
|
});
|
12555
12556
|
}
|
12556
|
-
const measureRow =
|
12557
|
+
const measureRow = rowHeight => {
|
12558
|
+
virtualiser.resizeItem(virtualRow, rowHeight);
|
12559
|
+
};
|
12557
12560
|
return /*#__PURE__*/React__default.createElement(Row, {
|
12558
12561
|
key: row.id,
|
12559
12562
|
row: row,
|
@@ -12572,43 +12575,6 @@ function useTableRenderer(renderers, table, tableRef, length, defaultRowActiveIn
|
|
12572
12575
|
scrollToIndex
|
12573
12576
|
};
|
12574
12577
|
}
|
12575
|
-
// support varying row heights - variable row heights, row expansion
|
12576
|
-
function useRowHeightVirtualisation(table) {
|
12577
|
-
const tableMeta = table.options.meta;
|
12578
|
-
const rows = table.getRowModel().rows;
|
12579
|
-
const expandedState = table.getState().expanded;
|
12580
|
-
const [expandedRowHeightsCache, setExpandedRowHeightsCache] = React__default.useState({});
|
12581
|
-
// look at all registered expanded row heights and use them to form a more accurate average size
|
12582
|
-
// it might be worth considering if taking the max, or an upper bound, would be better
|
12583
|
-
const averageExpandedRowHeight = React__default.useMemo(() => {
|
12584
|
-
const values = Object.values(expandedRowHeightsCache);
|
12585
|
-
return values.length ? values.reduce((a, b) => a + b, 0) / values.length : 0;
|
12586
|
-
}, [expandedRowHeightsCache]);
|
12587
|
-
// row heights
|
12588
|
-
const estimateSize = React__default.useCallback(index => {
|
12589
|
-
var _rows$index, _rows$index$getIsExpa;
|
12590
|
-
const rowHeight = tableMeta.rowHeight.height ? ROW_HEIGHT_ESTIMATES[tableMeta.rowHeight.height] : ROW_HEIGHT_ESTIMATES.medium;
|
12591
|
-
if (expandedState === true || (_rows$index = rows[index]) !== null && _rows$index !== void 0 && (_rows$index$getIsExpa = _rows$index.getIsExpanded) !== null && _rows$index$getIsExpa !== void 0 && _rows$index$getIsExpa.call(_rows$index)) {
|
12592
|
-
return rowHeight + averageExpandedRowHeight;
|
12593
|
-
}
|
12594
|
-
return rowHeight;
|
12595
|
-
}, [tableMeta.rowHeight.height, averageExpandedRowHeight, expandedState]);
|
12596
|
-
const createRowMeasurer = React__default.useCallback((resizeItem, virtualRow) => (rowHeight, expansionHeight) => {
|
12597
|
-
// register the expansion height so that it can be used to determine an average
|
12598
|
-
if (expansionHeight) {
|
12599
|
-
setExpandedRowHeightsCache(cache => ({
|
12600
|
-
...cache,
|
12601
|
-
[virtualRow.index]: expansionHeight
|
12602
|
-
}));
|
12603
|
-
}
|
12604
|
-
// update the whole row's size to include the expanded height
|
12605
|
-
resizeItem(virtualRow, rowHeight + (expansionHeight !== null && expansionHeight !== void 0 ? expansionHeight : 0));
|
12606
|
-
}, []);
|
12607
|
-
return {
|
12608
|
-
estimateSize,
|
12609
|
-
createRowMeasurer
|
12610
|
-
};
|
12611
|
-
}
|
12612
12578
|
// support virtualised row groups (where the row group headers are sticky)
|
12613
12579
|
function useRowGroupVirtualisation(table) {
|
12614
12580
|
const rows = table.getRowModel().rows;
|
@@ -13295,8 +13261,12 @@ const DisplayRow = /*#__PURE__*/React__default.memo(function DisplayRow(props) {
|
|
13295
13261
|
}
|
13296
13262
|
const ref = React__default.useRef(null);
|
13297
13263
|
const expansionRef = React__default.useRef(null);
|
13298
|
-
|
13299
|
-
|
13264
|
+
React__default.useEffect(() => {
|
13265
|
+
var _ref$current$getBound, _ref$current, _expansionRef$current, _expansionRef$current2;
|
13266
|
+
const rowHeight = (_ref$current$getBound = (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.getBoundingClientRect().height) !== null && _ref$current$getBound !== void 0 ? _ref$current$getBound : 0;
|
13267
|
+
const expansionHeight = (_expansionRef$current = (_expansionRef$current2 = expansionRef.current) === null || _expansionRef$current2 === void 0 ? void 0 : _expansionRef$current2.getBoundingClientRect().height) !== null && _expansionRef$current !== void 0 ? _expansionRef$current : 0;
|
13268
|
+
measureRow(rowHeight + expansionHeight);
|
13269
|
+
}, [expansionRef.current]);
|
13300
13270
|
const className = cn('group/row', otherAttributes.className, {
|
13301
13271
|
'hover:cursor-grab': tableMeta.rowDrag.isEnabled && typeof attributes.onClick !== 'function',
|
13302
13272
|
'hover:cursor-pointer': typeof attributes.onClick === 'function'
|
@@ -13319,18 +13289,6 @@ const DisplayRow = /*#__PURE__*/React__default.memo(function DisplayRow(props) {
|
|
13319
13289
|
className: "col-span-full"
|
13320
13290
|
}, expandedRow))) : null);
|
13321
13291
|
});
|
13322
|
-
function useSetVirtualisedRowHeight(measureRow, rowEl, expansionEl, isExpanded) {
|
13323
|
-
React__default.useEffect(() => {
|
13324
|
-
if (rowEl) {
|
13325
|
-
const height = rowEl.getBoundingClientRect().height;
|
13326
|
-
if (isExpanded && expansionEl) {
|
13327
|
-
measureRow(height, expansionEl.getBoundingClientRect().height);
|
13328
|
-
} else {
|
13329
|
-
measureRow(height);
|
13330
|
-
}
|
13331
|
-
}
|
13332
|
-
}, [isExpanded, rowEl, expansionEl]);
|
13333
|
-
}
|
13334
13292
|
|
13335
13293
|
function DisplayCell(props) {
|
13336
13294
|
const {
|
@@ -13693,9 +13651,7 @@ function HeaderMenu(props) {
|
|
13693
13651
|
return /*#__PURE__*/React__default.createElement(IconButton, {
|
13694
13652
|
className: className,
|
13695
13653
|
icon: "more",
|
13696
|
-
menu: popoverElement ? undefined : menuProps => (/*#__PURE__*/React__default.createElement(Menu$1, Object.assign({}, menuProps), /*#__PURE__*/React__default.createElement(Menu$1.Content,
|
13697
|
-
onFocusOutside: event => event.preventDefault()
|
13698
|
-
}, memoedMenuItems))),
|
13654
|
+
menu: popoverElement ? undefined : menuProps => (/*#__PURE__*/React__default.createElement(Menu$1, Object.assign({}, menuProps), /*#__PURE__*/React__default.createElement(Menu$1.Content, null, memoedMenuItems))),
|
13699
13655
|
popover: popoverElement,
|
13700
13656
|
onClickCapture: event => event.preventDefault(),
|
13701
13657
|
onKeyDown: event => {
|
@@ -14546,7 +14502,7 @@ function Container(externalProps) {
|
|
14546
14502
|
if (!(activeList !== null && activeList !== void 0 && activeList.id) || !(overList !== null && overList !== void 0 && overList.id) || activeList.id === overList.id) {
|
14547
14503
|
return;
|
14548
14504
|
}
|
14549
|
-
move
|
14505
|
+
move(active.id, activeList === null || activeList === void 0 ? void 0 : activeList.id, overList.id);
|
14550
14506
|
}
|
14551
14507
|
function handleDragEnd(event) {
|
14552
14508
|
const {
|
@@ -16899,7 +16855,6 @@ function Control(props) {
|
|
16899
16855
|
const controlRenderer = column === null || column === void 0 ? void 0 : (_column$columnDef$met2 = column.columnDef.meta) === null || _column$columnDef$met2 === void 0 ? void 0 : _column$columnDef$met2.control;
|
16900
16856
|
const dataType = column === null || column === void 0 ? void 0 : (_column$columnDef$met3 = column.columnDef.meta) === null || _column$columnDef$met3 === void 0 ? void 0 : _column$columnDef$met3.dataType;
|
16901
16857
|
const filters = React__default.useContext(FilterContext);
|
16902
|
-
const ref = React__default.useRef(null);
|
16903
16858
|
React.useEffect(() => {
|
16904
16859
|
// Set value to false only after first render of the control (when it's undefined) after setting the FilterColumn value, because we don't want to change then the value every time filter is opened
|
16905
16860
|
if ((controlRenderer === 'switch' || controlRenderer === 'checkbox') && value === undefined) {
|
@@ -16910,8 +16865,7 @@ function Control(props) {
|
|
16910
16865
|
return /*#__PURE__*/React__default.cloneElement(controlRenderer({
|
16911
16866
|
...attributes,
|
16912
16867
|
setValue: value => onChange(value),
|
16913
|
-
value
|
16914
|
-
ref
|
16868
|
+
value
|
16915
16869
|
}, undefined, filters), {
|
16916
16870
|
['data-query-selector']: querySelector,
|
16917
16871
|
className: 'focus:yt-focus'
|
@@ -18885,7 +18839,7 @@ function willRowMoveAfterSorting(cell, change, rowIndex) {
|
|
18885
18839
|
if (rowIndex < rows.length - 1) {
|
18886
18840
|
miniSortRows.push(rows[rowIndex + 1]);
|
18887
18841
|
}
|
18888
|
-
const
|
18842
|
+
const resortedRows = [...miniSortRows].sort((rowA, rowB) => {
|
18889
18843
|
const sortFn = cell.column.getSortingFn();
|
18890
18844
|
const sortUndefined = cell.column.columnDef.sortUndefined;
|
18891
18845
|
if (!table.options.manualSorting && sortUndefined) {
|
@@ -18900,8 +18854,7 @@ function willRowMoveAfterSorting(cell, change, rowIndex) {
|
|
18900
18854
|
}
|
18901
18855
|
}
|
18902
18856
|
return sortFn(rowA, rowB, cell.column.id);
|
18903
|
-
};
|
18904
|
-
const resortedRows = [...miniSortRows].sort(sortRows);
|
18857
|
+
});
|
18905
18858
|
if (cell.column.getIsSorted() === 'desc') {
|
18906
18859
|
resortedRows.reverse();
|
18907
18860
|
}
|
@@ -19063,7 +19016,7 @@ function reducer$2(state, action) {
|
|
19063
19016
|
changes: {
|
19064
19017
|
...state.changes,
|
19065
19018
|
rows: setWith(state.changes.rows, rowId, value, Object),
|
19066
|
-
errors: setWith(state.changes.errors, `${rowId}.cells`, cellErrors !== null && cellErrors !== void 0 ? cellErrors : state.changes.errors[rowId], Object),
|
19019
|
+
errors: setWith(state.changes.errors, `${rowId}.cells`, cellErrors !== null && cellErrors !== void 0 ? cellErrors : state.changes.errors.cells[rowId], Object),
|
19067
19020
|
originals: setWith(state.changes.originals, rowId, original !== null && original !== void 0 ? original : state.changes.originals[rowId], Object),
|
19068
19021
|
moveReasons: setWith(state.changes.moveReasons, rowId, moveReasons !== null && moveReasons !== void 0 ? moveReasons : state.changes.moveReasons[rowId], Object),
|
19069
19022
|
// status can be undefined, so don't use ??
|
@@ -19863,8 +19816,10 @@ function EditingControlCell(props) {
|
|
19863
19816
|
}
|
19864
19817
|
}, [hasNonTextControl, cell.row.id, cell.column.id, cell.row.original, rowIndex, value]);
|
19865
19818
|
const blur = React__default.useCallback(function blur() {
|
19866
|
-
|
19867
|
-
|
19819
|
+
requestAnimationFrame(() => {
|
19820
|
+
tableMeta.editing.toggleDetailedMode(false);
|
19821
|
+
tableMeta.editing.onCellChanged(cell, rowIndex, undefined, !hasNonTextControl);
|
19822
|
+
});
|
19868
19823
|
}, [hasNonTextControl, cell.row.id, cell.column.id, cell.row.original, rowIndex]);
|
19869
19824
|
const handleBlur = React__default.useCallback(event => {
|
19870
19825
|
if (isElementInsideOrTriggeredFromContainer(event.relatedTarget, event.currentTarget)) {
|
@@ -20173,8 +20128,7 @@ function EditingActionsMenu(props) {
|
|
20173
20128
|
icon: "more",
|
20174
20129
|
onKeyDown: handleKeyDown,
|
20175
20130
|
menu: menuProps => (/*#__PURE__*/React__default.createElement(Menu$1, Object.assign({}, menuProps), /*#__PURE__*/React__default.createElement(Menu$1.Content, {
|
20176
|
-
onKeyDown: handleMenuContentKeyDown
|
20177
|
-
onFocusOutside: event => event.preventDefault()
|
20131
|
+
onKeyDown: handleMenuContentKeyDown
|
20178
20132
|
}, /*#__PURE__*/React__default.createElement(Menu$1.Item, {
|
20179
20133
|
icon: "tick",
|
20180
20134
|
disabled: !hasChanges || hasErrors,
|
@@ -20421,7 +20375,7 @@ function Alert$1(props) {
|
|
20421
20375
|
const columnName = (_table$getAllColumns$ = table.getAllColumns().find(column => column.id === firstCellErrorColumnId)) === null || _table$getAllColumns$ === void 0 ? void 0 : (_table$getAllColumns$2 = _table$getAllColumns$.columnDef.meta) === null || _table$getAllColumns$2 === void 0 ? void 0 : _table$getAllColumns$2.header;
|
20422
20376
|
tooltip = `${columnName}: ${pendingChangeWithError.errors.cells[firstCellErrorColumnId]}`;
|
20423
20377
|
}
|
20424
|
-
let row
|
20378
|
+
let row;
|
20425
20379
|
try {
|
20426
20380
|
row = table.getRow(pendingChangeWithError.rowId).original;
|
20427
20381
|
} catch {
|
@@ -21309,8 +21263,8 @@ const BarChart = function BarChart(externalProps) {
|
|
21309
21263
|
...props
|
21310
21264
|
} = externalProps;
|
21311
21265
|
const [activeIndex, setActiveIndex] = React__default.useState(undefined);
|
21312
|
-
const [hoveredBar, setHoveredBar] =
|
21313
|
-
const [activeBars, setActiveBars] =
|
21266
|
+
const [hoveredBar, setHoveredBar] = React.useState(null);
|
21267
|
+
const [activeBars, setActiveBars] = React.useState(() => {
|
21314
21268
|
const keys = {};
|
21315
21269
|
React__default.Children.forEach(children, child => {
|
21316
21270
|
keys[child.props.accessor] = true;
|