@economic/taco 2.49.0-server.1 → 2.49.0-server.2
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/Table3/features/useEditingState.d.ts +3 -3
- package/dist/components/Table3/features/useTableEditing.d.ts +3 -3
- package/dist/components/Table3/types.d.ts +2 -0
- package/dist/esm/packages/taco/src/components/Menu/components/Content.js +6 -1
- package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +6 -6
- 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/Editing/Alert.js +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js +29 -18
- 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 +6 -7
- package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/useTable3.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/useTable3.js.map +1 -1
- package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js +2 -2
- package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js.map +1 -1
- package/dist/esm/packages/taco/src/index.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Button.js +6 -1
- package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js +1 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js +1 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/types.js +1 -7
- package/dist/esm/packages/taco/src/primitives/Table/types.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js +17 -10
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/keyboard.js +2 -5
- package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -1
- package/dist/hooks/useGlobalKeyDown.d.ts +1 -1
- package/dist/primitives/Table/types.d.ts +0 -5
- package/dist/primitives/Table/useTableManager/features/useTableServerLoading.d.ts +3 -3
- package/dist/taco.cjs.development.js +80 -59
- 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/dist/utils/keyboard.d.ts +1 -1
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useTableServerLoading.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/features/useTableServerLoading.ts"],"sourcesContent":["import React from 'react';\nimport { TableServerLoadAllHandler,
|
1
|
+
{"version":3,"file":"useTableServerLoading.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/features/useTableServerLoading.ts"],"sourcesContent":["import React from 'react';\nimport { TableServerLoadAllHandler, TableServerLoadPageHandler } from '../../types';\nimport { DEFAULT_PAGE_SIZE } from '../../useTableDataLoader';\n\nexport function useTableServerLoading<TType = unknown>(\n length: number,\n data: TType[],\n loadPage?: TableServerLoadPageHandler,\n loadAll?: TableServerLoadAllHandler,\n pages?: number[],\n pageSize = DEFAULT_PAGE_SIZE,\n _experimentalDataLoader2 = false\n) {\n const isEnabled = !!loadPage && !!loadAll;\n const [isReady, setReady] = React.useState(false);\n const [loading, setLoading] = React.useState<boolean>(false);\n\n const hasLoadedAll = React.useMemo(() => {\n if (data.length !== length || !!data.some?.(x => x === undefined)) {\n return false;\n }\n\n return true;\n }, [data, length]);\n\n let _loadPage: TableServerLoadPageHandler | undefined;\n let _loadAll: TableServerLoadAllHandler | undefined;\n let _loadAllIfNeeded: TableServerLoadAllHandler | undefined;\n\n if (typeof loadPage === 'function') {\n _loadPage = async (...args) => {\n if (typeof loadPage === 'function') {\n await loadPage(...args);\n setReady(true);\n }\n };\n }\n\n if (typeof loadAll === 'function') {\n _loadAll = async (...args) => {\n if (typeof loadAll === 'function') {\n setLoading(true);\n await loadAll(...args);\n setLoading(false);\n setReady(true);\n }\n };\n\n _loadAllIfNeeded = async (...args) => {\n if (!hasLoadedAll) {\n await _loadAll?.(...args);\n }\n };\n }\n\n const pageCount = Math.ceil(length / pageSize);\n\n return {\n pages,\n isEnabled,\n isReady,\n loadPage: _loadPage,\n loadAll: _loadAll,\n loadAllIfNeeded: _loadAllIfNeeded,\n loading,\n pageSize,\n pageCount,\n _experimentalDataLoader2,\n };\n}\n"],"names":["useTableServerLoading","length","data","loadPage","loadAll","pages","pageSize","_experimentalDataLoader2","DEFAULT_PAGE_SIZE","isEnabled","_React$useState","React","useState","isReady","setReady","_React$useState2","loading","setLoading","hasLoadedAll","useMemo","_data$some","some","call","x","undefined","_loadPage","_loadAll","_loadAllIfNeeded","_len","arguments","args","Array","_key","Promise","resolve","apply","then","_temp","e","reject","_len2","_key2","_temp2","_len3","_key3","_loadAll2","_temp3","pageCount","Math","ceil","loadAllIfNeeded"],"mappings":"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"}
|
@@ -26,7 +26,7 @@ function useTableSearchListener(table) {
|
|
26
26
|
if (meta.search.isEnabled) {
|
27
27
|
resetHighlightedColumnIndexes(query, table, localization);
|
28
28
|
}
|
29
|
-
}, [meta.server.
|
29
|
+
}, [meta.server.loading, meta.search.isEnabled, meta.search.enableGlobalFilter, table.getRowModel().rows.length, query, JSON.stringify(table.getState().sorting)]);
|
30
30
|
}
|
31
31
|
|
32
32
|
export { useTableSearchListener };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useTableSearchListener.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/listeners/useTableSearchListener.ts"],"sourcesContent":["import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { resetHighlightedColumnIndexes } from '../util/search';\nimport { useLocalization } from '../../../../components/Provider/Localization';\nimport { useLazyEffect } from '../../../../hooks/useLazyEffect';\nimport { getHiddenColumns } from '../util/columns';\n\nexport function useTableSearchListener<TType = unknown>(table: ReactTable<TType>) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const localization = useLocalization();\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n const query = table.getState().globalFilter;\n\n // Need to re-run search when columns are getting shown/hidden.\n useLazyEffect(() => {\n if (meta.search.isEnabled) {\n const currentFilter = query;\n requestAnimationFrame(() => {\n table.resetGlobalFilter();\n table.setGlobalFilter(currentFilter);\n });\n\n if (meta.search.handleSearch && meta.search.enableGlobalFilter && query) {\n meta.search.handleSearch(query, hiddenColumns);\n }\n }\n }, [hiddenColumns.length]);\n\n // recalculates highlighted indexes whenever something important changes\n useLazyEffect(() => {\n if (meta.search.isEnabled) {\n resetHighlightedColumnIndexes(query, table, localization);\n }\n }, [\n meta.server.
|
1
|
+
{"version":3,"file":"useTableSearchListener.js","sources":["../../../../../../../../../src/primitives/Table/useTableManager/listeners/useTableSearchListener.ts"],"sourcesContent":["import { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { resetHighlightedColumnIndexes } from '../util/search';\nimport { useLocalization } from '../../../../components/Provider/Localization';\nimport { useLazyEffect } from '../../../../hooks/useLazyEffect';\nimport { getHiddenColumns } from '../util/columns';\n\nexport function useTableSearchListener<TType = unknown>(table: ReactTable<TType>) {\n const meta = table.options.meta as ReactTableMeta<TType>;\n const localization = useLocalization();\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n const query = table.getState().globalFilter;\n\n // Need to re-run search when columns are getting shown/hidden.\n useLazyEffect(() => {\n if (meta.search.isEnabled) {\n const currentFilter = query;\n requestAnimationFrame(() => {\n table.resetGlobalFilter();\n table.setGlobalFilter(currentFilter);\n });\n\n if (meta.search.handleSearch && meta.search.enableGlobalFilter && query) {\n meta.search.handleSearch(query, hiddenColumns);\n }\n }\n }, [hiddenColumns.length]);\n\n // recalculates highlighted indexes whenever something important changes\n useLazyEffect(() => {\n if (meta.search.isEnabled) {\n resetHighlightedColumnIndexes(query, table, localization);\n }\n }, [\n meta.server.loading,\n meta.search.isEnabled,\n meta.search.enableGlobalFilter,\n table.getRowModel().rows.length,\n query,\n JSON.stringify(table.getState().sorting),\n ]);\n}\n"],"names":["useTableSearchListener","table","meta","options","localization","useLocalization","hiddenColumns","getHiddenColumns","getState","columnVisibility","query","globalFilter","useLazyEffect","search","isEnabled","currentFilter","requestAnimationFrame","resetGlobalFilter","setGlobalFilter","handleSearch","enableGlobalFilter","length","resetHighlightedColumnIndexes","server","loading","getRowModel","rows","JSON","stringify","sorting"],"mappings":";;;;;SAMgBA,sBAAsBA,CAAkBC,KAAwB;EAC5E,IAAMC,IAAI,GAAGD,KAAK,CAACE,OAAO,CAACD,IAA6B;EACxD,IAAME,YAAY,GAAGC,eAAe,EAAE;EACtC,IAAMC,aAAa,GAAGC,gBAAgB,CAACN,KAAK,CAACO,QAAQ,EAAE,CAACC,gBAAgB,CAAC;EACzE,IAAMC,KAAK,GAAGT,KAAK,CAACO,QAAQ,EAAE,CAACG,YAAY;;EAG3CC,aAAa,CAAC;IACV,IAAIV,IAAI,CAACW,MAAM,CAACC,SAAS,EAAE;MACvB,IAAMC,aAAa,GAAGL,KAAK;MAC3BM,qBAAqB,CAAC;QAClBf,KAAK,CAACgB,iBAAiB,EAAE;QACzBhB,KAAK,CAACiB,eAAe,CAACH,aAAa,CAAC;OACvC,CAAC;MAEF,IAAIb,IAAI,CAACW,MAAM,CAACM,YAAY,IAAIjB,IAAI,CAACW,MAAM,CAACO,kBAAkB,IAAIV,KAAK,EAAE;QACrER,IAAI,CAACW,MAAM,CAACM,YAAY,CAACT,KAAK,EAAEJ,aAAa,CAAC;;;GAGzD,EAAE,CAACA,aAAa,CAACe,MAAM,CAAC,CAAC;;EAG1BT,aAAa,CAAC;IACV,IAAIV,IAAI,CAACW,MAAM,CAACC,SAAS,EAAE;MACvBQ,6BAA6B,CAACZ,KAAK,EAAET,KAAK,EAAEG,YAAY,CAAC;;GAEhE,EAAE,CACCF,IAAI,CAACqB,MAAM,CAACC,OAAO,EACnBtB,IAAI,CAACW,MAAM,CAACC,SAAS,EACrBZ,IAAI,CAACW,MAAM,CAACO,kBAAkB,EAC9BnB,KAAK,CAACwB,WAAW,EAAE,CAACC,IAAI,CAACL,MAAM,EAC/BX,KAAK,EACLiB,IAAI,CAACC,SAAS,CAAC3B,KAAK,CAACO,QAAQ,EAAE,CAACqB,OAAO,CAAC,CAC3C,CAAC;AACN;;;;"}
|
@@ -66,7 +66,7 @@ function useTableManager(props, meta, internalColumns) {
|
|
66
66
|
var rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);
|
67
67
|
var rowSelection = useTableRowSelection(!!options.enableRowSelection);
|
68
68
|
var search = useTableSearch(options.enableSearch, props.onChangeSearch, settings.excludeUnmatchedRecordsInSearch);
|
69
|
-
var server = useTableServerLoading(length, props.loadPage, props.loadAll, props.pages, props.pageSize, props._experimentalDataLoader2);
|
69
|
+
var server = useTableServerLoading(length, data, props.loadPage, props.loadAll, props.pages, props.pageSize, props._experimentalDataLoader2);
|
70
70
|
// TODO: memoise
|
71
71
|
// convert jsx column components into valid table columns
|
72
72
|
var _mapTableChildrenToCo = mapTableChildrenToColumns(props, settings, options, internalColumns, localization),
|
@@ -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 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 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 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 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);\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","_useTableSettings","useTableSettings","enableSaveSettings","defaultSettings","onChangeSettings","settings","setSettings","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","_mapTableChildrenToCo","mapTableChildrenToColumns","columns","defaultState","_objectWithoutPropertiesLoose","_excluded","initialState","useReactTableInitialState","instance","useReactTable","_extends","getCoreRowModel","configureReactTableOptions","enableGlobalFilter","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 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 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 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);\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","_useTableSettings","useTableSettings","enableSaveSettings","defaultSettings","onChangeSettings","settings","setSettings","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","_mapTableChildrenToCo","mapTableChildrenToColumns","columns","defaultState","_objectWithoutPropertiesLoose","_excluded","initialState","useReactTableInitialState","instance","useReactTable","_extends","getCoreRowModel","configureReactTableOptions","enableGlobalFilter","rowIdentityAccessor","useTableDataListener","useTableFilterListener","onChangeFilter","useTableFontSizeListener","useTableRowHeightListener","useTableRowSelectionListener","onRowSelect","useTableSearchListener","useTableServerLoadingListener","useTableSettingsListener","useTableShortcutsListener","shortcuts","useTableSortingListener","onChangeSort","_instance$options$met","state","getState"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgGA;AACA,IAAMA,mBAAmB,GAAG,EAAE;SAEdC,eAAeA,CAC3BC,KAAwB,EACxBC,IAA6C,EAC7CC,eAAuD;;EAEvD,IAAMC,YAAY,GAAGC,eAAe,EAAE;;EAEtC,IAAMC,MAAM,GAAGL,KAAK,CAACM,EAAE,CAACC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;;EAEzC,IAAMC,OAAO,GAAGC,qBAAqB,CAACT,KAAK,CAAC;;EAG5C,IAAAU,iBAAA,GAAgCC,gBAAgB,CAC5CH,OAAO,CAACI,kBAAkB,EAC1BP,MAAM,EACNL,KAAK,CAACa,eAAe,EACrBb,KAAK,CAACc,gBAAgB,CACzB;IALMC,QAAQ,GAAAL,iBAAA;IAAEM,WAAW,GAAAN,iBAAA;;EAQ5B,IAAMO,IAAI,IAAAC,WAAA,GAAGlB,KAAK,CAACiB,IAAI,cAAAC,WAAA,cAAAA,WAAA,GAAIpB,mBAAmB;EAC9C,IAAMqB,MAAM,IAAAC,aAAA,GAAGpB,KAAK,CAACmB,MAAM,cAAAC,aAAA,cAAAA,aAAA,GAAIH,IAAI,CAACE,MAAM;;EAG1C,IAAME,cAAc,GAAGC,sBAAsB,CAACd,OAAO,CAACe,oBAAoB,CAAC;EAC3E,IAAMC,cAAc,GAAGC,sBAAsB,CAACjB,OAAO,CAACkB,oBAAoB,CAAC;EAC3E,IAAMC,QAAQ,GAAGC,gBAAgB,CAACpB,OAAO,CAACqB,cAAc,EAAEd,QAAQ,CAACY,QAAQ,CAAC;EAC5E,IAAMG,MAAM,GAAGC,cAAc,CAACvB,OAAO,CAACwB,YAAY,CAAC;EACnD,IAAMC,QAAQ,GAAGC,gBAAgB,CAAC1B,OAAO,CAAC2B,cAAc,EAAE9B,MAAM,CAAC;EACjE,IAAM+B,SAAS,GAAGC,iBAAiB,CAAC7B,OAAO,CAAC8B,eAAe,EAAEtC,KAAK,CAACuC,qBAAqB,CAAC;EACzF,IAAMC,UAAU,GAAGC,kBAAkB,CAAQjC,OAAO,CAACkC,gBAAgB,EAAE1C,KAAK,CAACwC,UAAU,EAAExC,KAAK,CAAC2C,gBAAgB,CAAC;EAChH,IAAMC,QAAQ,GAAGC,gBAAgB,CAAQrC,OAAO,CAACsC,cAAc,EAAE9C,KAAK,CAAC+C,UAAU,CAAC;EAClF,IAAMC,OAAO,GAAGC,eAAe,CAAQzC,OAAO,CAAC0C,aAAa,IAAI,EAACjD,IAAI,aAAJA,IAAI,gBAAAkD,aAAA,GAAJlD,IAAI,CAAEmD,OAAO,cAAAD,aAAA,eAAbA,aAAA,CAAeE,SAAS,GAAErD,KAAK,CAACsD,SAAS,CAAC;EAC3G,IAAMC,OAAO,GAAGC,eAAe,CAAQhD,OAAO,CAACiD,aAAa,EAAEzD,KAAK,CAAC0D,SAAS,CAAC;EAC9E,IAAMC,YAAY,GAAGC,oBAAoB,CACrCpD,OAAO,CAACqD,kBAAkB,EAC1BrD,OAAO,CAACsD,qBAAqB,EAC7B9D,KAAK,CAAC+D,oBAAoB,CAC7B;EACD,IAAMC,OAAO,GAAGC,eAAe,CAACzD,OAAO,CAAC0D,aAAa,EAAElE,KAAK,CAACmE,SAAS,CAAC;EACvE,IAAMC,SAAS,GAAGC,iBAAiB,CAACrE,KAAK,CAACsE,kBAAkB,CAAC;EAC7D,IAAMC,SAAS,GAAGC,iBAAiB,CAAChE,OAAO,CAACiE,eAAe,EAAE1D,QAAQ,CAACwD,SAAS,CAAC;EAChF,IAAMG,YAAY,GAAGC,oBAAoB,CAAC,CAAC,CAACnE,OAAO,CAACoE,kBAAkB,CAAC;EACvE,IAAMC,MAAM,GAAGC,cAAc,CAACtE,OAAO,CAACuE,YAAY,EAAE/E,KAAK,CAACgF,cAAc,EAAEjE,QAAQ,CAACkE,+BAA+B,CAAC;EACnH,IAAMC,MAAM,GAAGC,qBAAqB,CAChChE,MAAM,EACNF,IAAI,EACJjB,KAAK,CAACoF,QAAQ,EACdpF,KAAK,CAACqF,OAAO,EACbrF,KAAK,CAACsF,KAAK,EACXtF,KAAK,CAACuF,QAAQ,EACdvF,KAAK,CAACwF,wBAAwB,CACjC;;;EAID,IAAAC,qBAAA,GAAqCC,yBAAyB,CAC1D1F,KAAK,EACLe,QAAQ,EACRP,OAAO,EACPN,eAAe,EACfC,YAAY,CACf;IANOwF,OAAO,GAAAF,qBAAA,CAAPE,OAAO;IAAKC,YAAY,GAAAC,6BAAA,CAAAJ,qBAAA,EAAAK,SAAA;;EAShC,IAAMC,YAAY,GAAGC,yBAAyB,CAAQhG,KAAK,EAAE2F,OAAO,EAAE5E,QAAQ,EAAE6E,YAAY,CAAC;;EAG7F,IAAMK,QAAQ,GAAGC,aAAa,CAAAC,QAAA;IAC1BlF,IAAI,EAAJA,IAAI;IACJ0E,OAAO,EAAPA,OAAO;;IAEPI,YAAY,EAAZA,YAAY;IACZK,eAAe,EAAEA,eAAe;KAE7BC,0BAA0B,CAAQ7F,OAAO,EAAER,KAAK,EAAEG,YAAY,CAAC;;IAElEmG,kBAAkB,EAAEzB,MAAM,CAACyB,kBAAkB;;IAE7CrG,IAAI,EAAAkG,QAAA,KAEGlG,IAAI;MACPoB,cAAc,EAAdA,cAAc;MACdG,cAAc,EAAdA,cAAc;MACdG,QAAQ,EAARA,QAAQ;MACRG,MAAM,EAANA,MAAM;MACNX,MAAM,EAANA,MAAM;MACNc,QAAQ,EAARA,QAAQ;MACRO,UAAU,EAAEA,UAAiB;MAC7BJ,SAAS,EAATA,SAAS;MACTQ,QAAQ,EAAEA,QAAe;MACzBI,OAAO,EAAPA,OAAO;MACPO,OAAO,EAAEA,OAAc;MACvBI,YAAY,EAAEA,YAAmB;MACjC4C,mBAAmB,EAAEvG,KAAK,CAACuG,mBAAmB;MAC9CvC,OAAO,EAAPA,OAAO;MACPI,SAAS,EAAEA,SAAgB;MAC3BG,SAAS,EAATA,SAAS;MACTG,YAAY,EAAZA,YAAY;MACZG,MAAM,EAANA,MAAM;MACNK,MAAM,EAANA;;IAEP,CAAC;;EAGFsB,oBAAoB,CAACP,QAAQ,CAAC;EAC9BQ,sBAAsB,CAACR,QAAQ,EAAEjG,KAAK,CAAC0G,cAAc,CAAC;EACtDC,wBAAwB,CAACV,QAAQ,CAAC;EAClCW,yBAAyB,CAACX,QAAQ,CAAC;EACnCY,4BAA4B,CAACZ,QAAQ,EAAEjG,KAAK,CAAC8G,WAAW,CAAC;EACzDC,sBAAsB,CAACd,QAAQ,CAAC;EAChCe,6BAA6B,CAACf,QAAQ,EAAEf,MAAM,CAACE,QAAQ,CAAC;EACxD6B,wBAAwB,CAAChB,QAAQ,EAAEjF,WAAW,CAAC;EAC/CkG,yBAAyB,CAACjB,QAAQ,EAAEjG,KAAK,CAACmH,SAAS,CAAC;EACpDC,uBAAuB,CAACnB,QAAQ,EAAEjG,KAAK,CAACqH,YAAY,CAAC;EAErD,OAAO;IACH/G,EAAE,EAAED,MAAM;IACV4F,QAAQ,EAARA,QAAQ;IACRhG,IAAI,GAAAqH,qBAAA,GAAGrB,QAAQ,CAACzF,OAAO,CAACP,IAAI,cAAAqH,qBAAA,cAAAA,qBAAA,GAAI,EAAoC;IACpEC,KAAK,EAAEtB,QAAQ,CAACuB,QAAQ;GAC3B;AACL;;;;"}
|
@@ -17,15 +17,12 @@ function shouldTriggerShortcut(event, key) {
|
|
17
17
|
}
|
18
18
|
return event.key.toLowerCase() === keyOptions.key.toLowerCase();
|
19
19
|
}
|
20
|
-
function createShortcutKeyDownHandler(key, handler, stopPropagation
|
20
|
+
function createShortcutKeyDownHandler(key, handler, stopPropagation) {
|
21
21
|
if (stopPropagation === void 0) {
|
22
22
|
stopPropagation = true;
|
23
23
|
}
|
24
24
|
return function (event) {
|
25
|
-
|
26
|
-
var isOutsideDialog = element && dialog && !dialog.contains(element);
|
27
|
-
if (event.target !== event.currentTarget && isElementInteractive(event.target) && !isPressingMetaKey(event) || isOutsideDialog // Avoid triggering shortcut if dialog is open and element is outside the dialog
|
28
|
-
) {
|
25
|
+
if (event.target !== event.currentTarget && isElementInteractive(event.target) && !isPressingMetaKey(event)) {
|
29
26
|
return;
|
30
27
|
}
|
31
28
|
var condition = shouldTriggerShortcut(event, key);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"keyboard.js","sources":["../../../../../../src/utils/keyboard.ts"],"sourcesContent":["import React from 'react';\nimport { isElementInteractive } from './dom';\n\nexport type KeyDownHandlerOptions = { key: string; meta?: boolean; shift?: boolean };\n\nexport function isPressingMetaKey<T = Element>(event: KeyboardEvent | React.KeyboardEvent<T>) {\n return isMacOs() ? event.metaKey : event.ctrlKey;\n}\n\nexport function shouldTriggerShortcut<T = Element>(\n event: KeyboardEvent | React.KeyboardEvent<T>,\n key: string | KeyDownHandlerOptions\n) {\n const keyOptions: KeyDownHandlerOptions = typeof key === 'string' ? { key, meta: false, shift: false } : key;\n\n if (\n (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey)) ||\n (!keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey))\n ) {\n return false;\n }\n\n if ((keyOptions.shift && !event.shiftKey) || (keyOptions.shift === false && event.shiftKey)) {\n return false;\n }\n\n return event.key.toLowerCase() === keyOptions.key.toLowerCase();\n}\n\nexport function createShortcutKeyDownHandler<T = Element>(\n key: string | KeyDownHandlerOptions,\n handler: (event: KeyboardEvent | React.KeyboardEvent<T>) => void,\n stopPropagation = true
|
1
|
+
{"version":3,"file":"keyboard.js","sources":["../../../../../../src/utils/keyboard.ts"],"sourcesContent":["import React from 'react';\nimport { isElementInteractive } from './dom';\n\nexport type KeyDownHandlerOptions = { key: string; meta?: boolean; shift?: boolean };\n\nexport function isPressingMetaKey<T = Element>(event: KeyboardEvent | React.KeyboardEvent<T>) {\n return isMacOs() ? event.metaKey : event.ctrlKey;\n}\n\nexport function shouldTriggerShortcut<T = Element>(\n event: KeyboardEvent | React.KeyboardEvent<T>,\n key: string | KeyDownHandlerOptions\n) {\n const keyOptions: KeyDownHandlerOptions = typeof key === 'string' ? { key, meta: false, shift: false } : key;\n\n if (\n (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey)) ||\n (!keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey))\n ) {\n return false;\n }\n\n if ((keyOptions.shift && !event.shiftKey) || (keyOptions.shift === false && event.shiftKey)) {\n return false;\n }\n\n return event.key.toLowerCase() === keyOptions.key.toLowerCase();\n}\n\nexport function createShortcutKeyDownHandler<T = Element>(\n key: string | KeyDownHandlerOptions,\n handler: (event: KeyboardEvent | React.KeyboardEvent<T>) => void,\n stopPropagation = true\n) {\n return function (event: KeyboardEvent | React.KeyboardEvent<T>) {\n if (\n event.target !== event.currentTarget &&\n isElementInteractive(event.target as HTMLElement) &&\n !isPressingMetaKey(event)\n ) {\n return;\n }\n\n const condition = shouldTriggerShortcut(event, key);\n\n if (condition) {\n if (stopPropagation) {\n // stops react handlers bubbling up to global\n event.stopPropagation();\n // stops global handlers bubbling up to other global\n (event as KeyboardEvent).stopImmediatePropagation?.();\n }\n\n handler(event);\n }\n };\n}\n\nexport const isMacOs = () => window?.navigator.userAgent.includes('Mac');\n"],"names":["isPressingMetaKey","event","isMacOs","metaKey","ctrlKey","shouldTriggerShortcut","key","keyOptions","meta","shift","shiftKey","toLowerCase","createShortcutKeyDownHandler","handler","stopPropagation","target","currentTarget","isElementInteractive","condition","_event$stopImmediateP","stopImmediatePropagation","call","_window","window","navigator","userAgent","includes"],"mappings":";;SAKgBA,iBAAiBA,CAAcC,KAA6C;EACxF,OAAOC,OAAO,EAAE,GAAGD,KAAK,CAACE,OAAO,GAAGF,KAAK,CAACG,OAAO;AACpD;SAEgBC,qBAAqBA,CACjCJ,KAA6C,EAC7CK,GAAmC;EAEnC,IAAMC,UAAU,GAA0B,OAAOD,GAAG,KAAK,QAAQ,GAAG;IAAEA,GAAG,EAAHA,GAAG;IAAEE,IAAI,EAAE,KAAK;IAAEC,KAAK,EAAE;GAAO,GAAGH,GAAG;EAE5G,IACKC,UAAU,CAACC,IAAI,KAAKN,OAAO,EAAE,GAAG,CAACD,KAAK,CAACE,OAAO,GAAG,CAACF,KAAK,CAACG,OAAO,CAAC,IAChE,CAACG,UAAU,CAACC,IAAI,KAAKN,OAAO,EAAE,GAAGD,KAAK,CAACE,OAAO,GAAGF,KAAK,CAACG,OAAO,CAAE,EACnE;IACE,OAAO,KAAK;;EAGhB,IAAKG,UAAU,CAACE,KAAK,IAAI,CAACR,KAAK,CAACS,QAAQ,IAAMH,UAAU,CAACE,KAAK,KAAK,KAAK,IAAIR,KAAK,CAACS,QAAS,EAAE;IACzF,OAAO,KAAK;;EAGhB,OAAOT,KAAK,CAACK,GAAG,CAACK,WAAW,EAAE,KAAKJ,UAAU,CAACD,GAAG,CAACK,WAAW,EAAE;AACnE;SAEgBC,4BAA4BA,CACxCN,GAAmC,EACnCO,OAAgE,EAChEC,eAAe;MAAfA,eAAe;IAAfA,eAAe,GAAG,IAAI;;EAEtB,OAAO,UAAUb,KAA6C;IAC1D,IACIA,KAAK,CAACc,MAAM,KAAKd,KAAK,CAACe,aAAa,IACpCC,oBAAoB,CAAChB,KAAK,CAACc,MAAqB,CAAC,IACjD,CAACf,iBAAiB,CAACC,KAAK,CAAC,EAC3B;MACE;;IAGJ,IAAMiB,SAAS,GAAGb,qBAAqB,CAACJ,KAAK,EAAEK,GAAG,CAAC;IAEnD,IAAIY,SAAS,EAAE;MACX,IAAIJ,eAAe,EAAE;QAAA,IAAAK,qBAAA;;QAEjBlB,KAAK,CAACa,eAAe,EAAE;;QAEtB,CAAAK,qBAAA,GAAAlB,KAAuB,CAACmB,wBAAwB,cAAAD,qBAAA,uBAAhDA,qBAAA,CAAAE,IAAA,CAAApB,MAAoD;;MAGzDY,OAAO,CAACZ,KAAK,CAAC;;GAErB;AACL;IAEaC,OAAO,GAAG,SAAVA,OAAOA;EAAA,IAAAoB,OAAA;EAAA,QAAAA,OAAA,GAASC,MAAM,cAAAD,OAAA,uBAANA,OAAA,CAAQE,SAAS,CAACC,SAAS,CAACC,QAAQ,CAAC,KAAK,CAAC;AAAA;;;;"}
|
@@ -1,2 +1,2 @@
|
|
1
1
|
import { KeyDownHandlerOptions } from '../utils/keyboard';
|
2
|
-
export declare const useGlobalKeyDown: (shortcut: string | KeyDownHandlerOptions | undefined, handler: (event: KeyboardEvent) => void
|
2
|
+
export declare const useGlobalKeyDown: (shortcut: string | KeyDownHandlerOptions | undefined, handler: (event: KeyboardEvent) => void) => void;
|
@@ -90,11 +90,6 @@ export declare type TableScrollToIndexHandler = (index: number, options?: {
|
|
90
90
|
}) => void;
|
91
91
|
export declare type TableServerLoadPageHandler = (pageIndex: number, sorting: TableColumnSort[], filters: TableColumnFilter[], search: string | undefined, hiddenColumns: string[]) => Promise<void>;
|
92
92
|
export declare type TableServerLoadAllHandler = (sorting: TableColumnSort[], filters: TableColumnFilter[], search: string | undefined, hiddenColumns: string[]) => Promise<void>;
|
93
|
-
export declare enum TableServerLoadAllState {
|
94
|
-
Incomplete = 0,
|
95
|
-
Loading = 1,
|
96
|
-
Completed = 2
|
97
|
-
}
|
98
93
|
export declare type TableSettingsHandler = (settings: TableSettings) => void | Promise<void>;
|
99
94
|
export declare type TableShortcuts<TType = unknown> = Record<string, TableShortcutHandlerFn<TType> | TableShortcutHandlerObject<TType>>;
|
100
95
|
export declare type TableCustomSettingsRenderer = (props: TableSettings) => React.ReactElement<MenuItemProps>[];
|
@@ -1,12 +1,12 @@
|
|
1
|
-
import { TableServerLoadAllHandler,
|
2
|
-
export declare function useTableServerLoading(length: number, loadPage?: TableServerLoadPageHandler, loadAll?: TableServerLoadAllHandler, pages?: number[], pageSize?: number, _experimentalDataLoader2?: boolean): {
|
1
|
+
import { TableServerLoadAllHandler, TableServerLoadPageHandler } from '../../types';
|
2
|
+
export declare function useTableServerLoading<TType = unknown>(length: number, data: TType[], loadPage?: TableServerLoadPageHandler, loadAll?: TableServerLoadAllHandler, pages?: number[], pageSize?: number, _experimentalDataLoader2?: boolean): {
|
3
3
|
pages: number[] | undefined;
|
4
4
|
isEnabled: boolean;
|
5
5
|
isReady: boolean;
|
6
6
|
loadPage: TableServerLoadPageHandler | undefined;
|
7
7
|
loadAll: TableServerLoadAllHandler | undefined;
|
8
8
|
loadAllIfNeeded: TableServerLoadAllHandler | undefined;
|
9
|
-
|
9
|
+
loading: boolean;
|
10
10
|
pageSize: number;
|
11
11
|
pageCount: number;
|
12
12
|
_experimentalDataLoader2: boolean;
|
@@ -4453,15 +4453,12 @@ function shouldTriggerShortcut(event, key) {
|
|
4453
4453
|
}
|
4454
4454
|
return event.key.toLowerCase() === keyOptions.key.toLowerCase();
|
4455
4455
|
}
|
4456
|
-
function createShortcutKeyDownHandler(key, handler, stopPropagation
|
4456
|
+
function createShortcutKeyDownHandler(key, handler, stopPropagation) {
|
4457
4457
|
if (stopPropagation === void 0) {
|
4458
4458
|
stopPropagation = true;
|
4459
4459
|
}
|
4460
4460
|
return function (event) {
|
4461
|
-
|
4462
|
-
var isOutsideDialog = element && dialog && !dialog.contains(element);
|
4463
|
-
if (event.target !== event.currentTarget && isElementInteractive(event.target) && !isPressingMetaKey(event) || isOutsideDialog // Avoid triggering shortcut if dialog is open and element is outside the dialog
|
4464
|
-
) {
|
4461
|
+
if (event.target !== event.currentTarget && isElementInteractive(event.target) && !isPressingMetaKey(event)) {
|
4465
4462
|
return;
|
4466
4463
|
}
|
4467
4464
|
var condition = shouldTriggerShortcut(event, key);
|
@@ -4482,11 +4479,11 @@ var isMacOs = function isMacOs() {
|
|
4482
4479
|
return (_window = window) === null || _window === void 0 ? void 0 : _window.navigator.userAgent.includes('Mac');
|
4483
4480
|
};
|
4484
4481
|
|
4485
|
-
var useGlobalKeyDown = function useGlobalKeyDown(shortcut, handler
|
4482
|
+
var useGlobalKeyDown = function useGlobalKeyDown(shortcut, handler) {
|
4486
4483
|
React__default.useEffect(function () {
|
4487
4484
|
var handleKeyDown;
|
4488
4485
|
if (shortcut) {
|
4489
|
-
handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false
|
4486
|
+
handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false);
|
4490
4487
|
document.addEventListener('keydown', handleKeyDown);
|
4491
4488
|
}
|
4492
4489
|
return function () {
|
@@ -4509,8 +4506,13 @@ var Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
|
|
4509
4506
|
useGlobalKeyDown(shortcut, function (event) {
|
4510
4507
|
var _internalRef$current;
|
4511
4508
|
event === null || event === void 0 ? void 0 : event.preventDefault();
|
4509
|
+
var dialog = document.querySelector('[role="dialog"]');
|
4510
|
+
// Don't trigger the click on the button if it is outside of the dialog
|
4511
|
+
if (dialog && !(dialog !== null && dialog !== void 0 && dialog.contains(internalRef.current))) {
|
4512
|
+
return;
|
4513
|
+
}
|
4512
4514
|
(_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.click();
|
4513
|
-
}
|
4515
|
+
});
|
4514
4516
|
var Tag = props.href ? 'a' : 'button';
|
4515
4517
|
return /*#__PURE__*/React.createElement(Tag, Object.assign({}, otherProps, {
|
4516
4518
|
href: disabled ? undefined : props.href,
|
@@ -8537,12 +8539,17 @@ var Content$8 = /*#__PURE__*/React.forwardRef(function MenuContent(props, ref) {
|
|
8537
8539
|
if (child.props.shortcut) {
|
8538
8540
|
shortcuts.push(createShortcutKeyDownHandler(child.props.shortcut, function (event) {
|
8539
8541
|
event.preventDefault();
|
8542
|
+
var dialog = document.querySelector('[role="dialog"]');
|
8543
|
+
// Don't trigger the shortcut if it is outside of the dialog
|
8544
|
+
if (dialog && !(dialog !== null && dialog !== void 0 && dialog.contains(internalRef.current))) {
|
8545
|
+
return;
|
8546
|
+
}
|
8540
8547
|
menu === null || menu === void 0 ? void 0 : menu.open();
|
8541
8548
|
setTimeout(function () {
|
8542
8549
|
var _childrenRefs$current, _childrenRefs$current2;
|
8543
8550
|
return (_childrenRefs$current = childrenRefs.current[index]) === null || _childrenRefs$current === void 0 ? void 0 : (_childrenRefs$current2 = _childrenRefs$current.current) === null || _childrenRefs$current2 === void 0 ? void 0 : _childrenRefs$current2.click();
|
8544
8551
|
}, 1);
|
8545
|
-
}
|
8552
|
+
}));
|
8546
8553
|
}
|
8547
8554
|
});
|
8548
8555
|
shortcuts.forEach(function (handler) {
|
@@ -10235,11 +10242,6 @@ var fixedForwardRef = React__default.forwardRef;
|
|
10235
10242
|
TableFilterComparator[TableFilterComparator["HasAllOf"] = 12] = "HasAllOf";
|
10236
10243
|
TableFilterComparator[TableFilterComparator["HasNoneOf"] = 13] = "HasNoneOf";
|
10237
10244
|
})(exports.TableFilterComparator || (exports.TableFilterComparator = {}));
|
10238
|
-
(function (TableServerLoadAllState) {
|
10239
|
-
TableServerLoadAllState[TableServerLoadAllState["Incomplete"] = 0] = "Incomplete";
|
10240
|
-
TableServerLoadAllState[TableServerLoadAllState["Loading"] = 1] = "Loading";
|
10241
|
-
TableServerLoadAllState[TableServerLoadAllState["Completed"] = 2] = "Completed";
|
10242
|
-
})(exports.TableServerLoadAllState || (exports.TableServerLoadAllState = {}));
|
10243
10245
|
|
10244
10246
|
var dataTypes = {
|
10245
10247
|
auto: {
|
@@ -11973,7 +11975,7 @@ function useTableDataLoader(fetchPage, fetchAll, options) {
|
|
11973
11975
|
}, invalidate];
|
11974
11976
|
}
|
11975
11977
|
|
11976
|
-
function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _experimentalDataLoader2) {
|
11978
|
+
function useTableServerLoading(length, data, loadPage, loadAll, pages, pageSize, _experimentalDataLoader2) {
|
11977
11979
|
if (pageSize === void 0) {
|
11978
11980
|
pageSize = DEFAULT_PAGE_SIZE;
|
11979
11981
|
}
|
@@ -11984,9 +11986,18 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
|
|
11984
11986
|
var _React$useState = React__default.useState(false),
|
11985
11987
|
isReady = _React$useState[0],
|
11986
11988
|
setReady = _React$useState[1];
|
11987
|
-
var _React$useState2 = React__default.useState(
|
11988
|
-
|
11989
|
-
|
11989
|
+
var _React$useState2 = React__default.useState(false),
|
11990
|
+
loading = _React$useState2[0],
|
11991
|
+
setLoading = _React$useState2[1];
|
11992
|
+
var hasLoadedAll = React__default.useMemo(function () {
|
11993
|
+
var _data$some;
|
11994
|
+
if (data.length !== length || !!((_data$some = data.some) !== null && _data$some !== void 0 && _data$some.call(data, function (x) {
|
11995
|
+
return x === undefined;
|
11996
|
+
}))) {
|
11997
|
+
return false;
|
11998
|
+
}
|
11999
|
+
return true;
|
12000
|
+
}, [data, length]);
|
11990
12001
|
var _loadPage;
|
11991
12002
|
var _loadAll;
|
11992
12003
|
var _loadAllIfNeeded;
|
@@ -11999,7 +12010,6 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
|
|
11999
12010
|
var _temp = function () {
|
12000
12011
|
if (typeof loadPage === 'function') {
|
12001
12012
|
return Promise.resolve(loadPage.apply(void 0, args)).then(function () {
|
12002
|
-
setLoadedStatus(exports.TableServerLoadAllState.Incomplete);
|
12003
12013
|
setReady(true);
|
12004
12014
|
});
|
12005
12015
|
}
|
@@ -12018,9 +12028,9 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
|
|
12018
12028
|
try {
|
12019
12029
|
var _temp2 = function () {
|
12020
12030
|
if (typeof loadAll === 'function') {
|
12021
|
-
|
12031
|
+
setLoading(true);
|
12022
12032
|
return Promise.resolve(loadAll.apply(void 0, args)).then(function () {
|
12023
|
-
|
12033
|
+
setLoading(false);
|
12024
12034
|
setReady(true);
|
12025
12035
|
});
|
12026
12036
|
}
|
@@ -12036,7 +12046,7 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
|
|
12036
12046
|
}
|
12037
12047
|
try {
|
12038
12048
|
var _temp3 = function () {
|
12039
|
-
if (
|
12049
|
+
if (!hasLoadedAll) {
|
12040
12050
|
var _loadAll2;
|
12041
12051
|
return Promise.resolve((_loadAll2 = _loadAll) === null || _loadAll2 === void 0 ? void 0 : _loadAll2.apply(void 0, args)).then(function () {});
|
12042
12052
|
}
|
@@ -12055,7 +12065,7 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
|
|
12055
12065
|
loadPage: _loadPage,
|
12056
12066
|
loadAll: _loadAll,
|
12057
12067
|
loadAllIfNeeded: _loadAllIfNeeded,
|
12058
|
-
|
12068
|
+
loading: loading,
|
12059
12069
|
pageSize: pageSize,
|
12060
12070
|
pageCount: pageCount,
|
12061
12071
|
_experimentalDataLoader2: _experimentalDataLoader2
|
@@ -12269,7 +12279,7 @@ function useTableSearchListener(table) {
|
|
12269
12279
|
if (meta.search.isEnabled) {
|
12270
12280
|
resetHighlightedColumnIndexes(query, table, localization);
|
12271
12281
|
}
|
12272
|
-
}, [meta.server.
|
12282
|
+
}, [meta.server.loading, meta.search.isEnabled, meta.search.enableGlobalFilter, table.getRowModel().rows.length, query, JSON.stringify(table.getState().sorting)]);
|
12273
12283
|
}
|
12274
12284
|
|
12275
12285
|
function useTableSettingsListener(table, onChangeSettings) {
|
@@ -12427,7 +12437,7 @@ function useTableManager(props, meta, internalColumns) {
|
|
12427
12437
|
var rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);
|
12428
12438
|
var rowSelection = useTableRowSelection(!!options.enableRowSelection);
|
12429
12439
|
var search = useTableSearch(options.enableSearch, props.onChangeSearch, settings.excludeUnmatchedRecordsInSearch);
|
12430
|
-
var server = useTableServerLoading(length, props.loadPage, props.loadAll, props.pages, props.pageSize, props._experimentalDataLoader2);
|
12440
|
+
var server = useTableServerLoading(length, data, props.loadPage, props.loadAll, props.pages, props.pageSize, props._experimentalDataLoader2);
|
12431
12441
|
// TODO: memoise
|
12432
12442
|
// convert jsx column components into valid table columns
|
12433
12443
|
var _mapTableChildrenToCo = mapTableChildrenToColumns(props, settings, options, internalColumns, localization),
|
@@ -13332,7 +13342,7 @@ function Header$4(context) {
|
|
13332
13342
|
className: "hover:border-blue !-mt-px",
|
13333
13343
|
checked: isAllRowsSelected,
|
13334
13344
|
indeterminate: isSomeRowsSelected && !isAllRowsSelected,
|
13335
|
-
loading: tableMeta.server.
|
13345
|
+
loading: tableMeta.server.loading,
|
13336
13346
|
onChange: handleChange
|
13337
13347
|
}));
|
13338
13348
|
}
|
@@ -14974,7 +14984,7 @@ function Search$1(props) {
|
|
14974
14984
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(SearchInput2, {
|
14975
14985
|
findCurrent: tableMeta.search.currentHighlightColumnIndex !== undefined ? tableMeta.search.currentHighlightColumnIndex + 1 : null,
|
14976
14986
|
findTotal: (_tableMeta$search$hig2 = (_tableMeta$search$hig3 = tableMeta.search.highlightedColumnIndexes) === null || _tableMeta$search$hig3 === void 0 ? void 0 : _tableMeta$search$hig3.length) !== null && _tableMeta$search$hig2 !== void 0 ? _tableMeta$search$hig2 : null,
|
14977
|
-
loading: tableMeta.server._experimentalDataLoader2 ? loading : tableMeta.server.
|
14987
|
+
loading: tableMeta.server._experimentalDataLoader2 ? loading : tableMeta.server.loading,
|
14978
14988
|
name: "table-search",
|
14979
14989
|
onClickFindPrevious: handlePreviousResult,
|
14980
14990
|
onClickFindNext: handleNextResult,
|
@@ -19823,7 +19833,28 @@ function reducer$2(state, action) {
|
|
19823
19833
|
return state;
|
19824
19834
|
}
|
19825
19835
|
}
|
19826
|
-
function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, validator) {
|
19836
|
+
function usePendingChangesState(handleSave, handleChange, handleDiscard, rowIdentityAccessor, validator) {
|
19837
|
+
var discardChanges = function discardChanges(rowId, table) {
|
19838
|
+
try {
|
19839
|
+
// remove any new rows from pinned state before discarding them
|
19840
|
+
table.resetRowPinning(true);
|
19841
|
+
dispatch({
|
19842
|
+
type: 'removeRow',
|
19843
|
+
rowId: rowId,
|
19844
|
+
payload: {
|
19845
|
+
rowIdentityAccessor: rowIdentityAccessor
|
19846
|
+
}
|
19847
|
+
});
|
19848
|
+
var _temp8 = function () {
|
19849
|
+
if (typeof handleDiscard === 'function') {
|
19850
|
+
return Promise.resolve(handleDiscard()).then(function () {});
|
19851
|
+
}
|
19852
|
+
}();
|
19853
|
+
return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(function () {}) : void 0);
|
19854
|
+
} catch (e) {
|
19855
|
+
return Promise.reject(e);
|
19856
|
+
}
|
19857
|
+
};
|
19827
19858
|
var saveChanges = function saveChanges(table, rowId) {
|
19828
19859
|
if (rowId === void 0) {
|
19829
19860
|
rowId = undefined;
|
@@ -19845,12 +19876,13 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
19845
19876
|
function _temp6(_result) {
|
19846
19877
|
return _exit ? _result : Promise.resolve(handleSave(changeSet)).then(function () {
|
19847
19878
|
// cleanup changes, we don't need them after saving
|
19848
|
-
discardChanges(rowId, table)
|
19849
|
-
|
19850
|
-
|
19851
|
-
|
19852
|
-
|
19853
|
-
|
19879
|
+
return Promise.resolve(discardChanges(rowId, table)).then(function () {
|
19880
|
+
// show the saved status, then remove it after a delay
|
19881
|
+
setRowStatus(rowId, 'saved');
|
19882
|
+
setTimeout(function () {
|
19883
|
+
setRowStatus(rowId, undefined);
|
19884
|
+
}, DELAY_BEFORE_REMOVING_SAVE_STATUS);
|
19885
|
+
});
|
19854
19886
|
});
|
19855
19887
|
}
|
19856
19888
|
var rowChanges = (_changes$rowId = changes[rowId]) !== null && _changes$rowId !== void 0 ? _changes$rowId : {};
|
@@ -20128,17 +20160,6 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
20128
20160
|
function hasChanges(rowId) {
|
20129
20161
|
return rowId ? !!state.changes.rows[rowId] : !!Object.keys(state.changes.rows).length;
|
20130
20162
|
}
|
20131
|
-
function discardChanges(rowId, table) {
|
20132
|
-
// remove any new rows from pinned state before discarding them
|
20133
|
-
table.resetRowPinning(true);
|
20134
|
-
dispatch({
|
20135
|
-
type: 'removeRow',
|
20136
|
-
rowId: rowId,
|
20137
|
-
payload: {
|
20138
|
-
rowIdentityAccessor: rowIdentityAccessor
|
20139
|
-
}
|
20140
|
-
});
|
20141
|
-
}
|
20142
20163
|
return {
|
20143
20164
|
// row
|
20144
20165
|
getRowValue: getRowValue,
|
@@ -20165,7 +20186,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
20165
20186
|
};
|
20166
20187
|
}
|
20167
20188
|
|
20168
|
-
function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, rowIdentityAccessor, validator) {
|
20189
|
+
function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, handleDiscard, rowIdentityAccessor, validator) {
|
20169
20190
|
var createRow = function createRow(table, scrollToIndex, row) {
|
20170
20191
|
try {
|
20171
20192
|
var _temp2 = function _temp2(_result) {
|
@@ -20184,12 +20205,11 @@ function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, rowI
|
|
20184
20205
|
// wait until set states have run
|
20185
20206
|
requestAnimationFrame(function () {
|
20186
20207
|
toggleEditing(true, table, scrollToIndex, false);
|
20187
|
-
|
20188
|
-
|
20189
|
-
|
20190
|
-
bottom: (_ref = (_currentState$bottom = currentState.bottom) !== null && _currentState$bottom !== void 0 ? _currentState$bottom : []) === null || _ref === void 0 ? void 0 : _ref.concat(newRowId)
|
20208
|
+
setTimeout(function () {
|
20209
|
+
requestAnimationFrame(function () {
|
20210
|
+
return table.getRow(newRowId).pin('bottom');
|
20191
20211
|
});
|
20192
|
-
});
|
20212
|
+
}, 150);
|
20193
20213
|
});
|
20194
20214
|
}
|
20195
20215
|
} catch (error) {
|
@@ -20233,7 +20253,7 @@ function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, rowI
|
|
20233
20253
|
var _React$useState3 = React__default.useState(undefined),
|
20234
20254
|
lastFocusedCellIndex = _React$useState3[0],
|
20235
20255
|
setLastFocusedCellIndex = _React$useState3[1];
|
20236
|
-
var pendingChangesFns = usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, validator);
|
20256
|
+
var pendingChangesFns = usePendingChangesState(handleSave, handleChange, handleDiscard, rowIdentityAccessor, validator);
|
20237
20257
|
function toggleEditing(enabled, table, scrollToIndex, doSave) {
|
20238
20258
|
if (doSave === void 0) {
|
20239
20259
|
doSave = true;
|
@@ -20518,7 +20538,7 @@ function EditingControlCell(props) {
|
|
20518
20538
|
var _cellRef$current;
|
20519
20539
|
return typeof type === 'function' && !!((_cellRef$current = cellRef.current) !== null && _cellRef$current !== void 0 && _cellRef$current.querySelector('[data-taco="Select2"],[data-taco="switch"],[data-taco="checkbox"]'));
|
20520
20540
|
}, [cellRef.current]);
|
20521
|
-
var handleChange = function
|
20541
|
+
var handleChange = React__default.useCallback(function (nextValue) {
|
20522
20542
|
if (nextValue !== value) {
|
20523
20543
|
tableMeta.editing.setCellValue(cell, rowIndex, nextValue);
|
20524
20544
|
if (hasNonTextControl) {
|
@@ -20527,17 +20547,17 @@ function EditingControlCell(props) {
|
|
20527
20547
|
});
|
20528
20548
|
}
|
20529
20549
|
}
|
20530
|
-
};
|
20531
|
-
function blur() {
|
20550
|
+
}, [hasNonTextControl, cell.row.id, cell.column.id, cell.row.original, rowIndex, value]);
|
20551
|
+
var blur = React__default.useCallback(function blur() {
|
20532
20552
|
tableMeta.editing.toggleDetailedMode(false);
|
20533
20553
|
tableMeta.editing.onCellChanged(cell, rowIndex, undefined, !hasNonTextControl);
|
20534
|
-
}
|
20535
|
-
var handleBlur = function
|
20554
|
+
}, [hasNonTextControl, cell.row.id, cell.column.id, cell.row.original, rowIndex]);
|
20555
|
+
var handleBlur = React__default.useCallback(function (event) {
|
20536
20556
|
if (isElementInsideOrTriggeredFromContainer(event.relatedTarget, event.currentTarget)) {
|
20537
20557
|
return;
|
20538
20558
|
}
|
20539
20559
|
blur();
|
20540
|
-
};
|
20560
|
+
}, [blur]);
|
20541
20561
|
// ensure that blur runs when the cell gets unmounted (when vertically arrow key navigating)
|
20542
20562
|
React__default.useEffect(function () {
|
20543
20563
|
var ref = cellRef.current;
|
@@ -20935,7 +20955,7 @@ var RENDERERS$1 = {
|
|
20935
20955
|
cell: Cell$5
|
20936
20956
|
};
|
20937
20957
|
function useTable3(props, ref) {
|
20938
|
-
var editing = useTableEditing(props.enableEditing, props.onEditingSave, props.onEditingChange, props.onEditingCreate, props.rowIdentityAccessor, props.validator);
|
20958
|
+
var editing = useTableEditing(props.enableEditing, props.onEditingSave, props.onEditingChange, props.onEditingCreate, props.onEditingDiscard, props.rowIdentityAccessor, props.validator);
|
20939
20959
|
var creationEnabled = editing.isEnabled && !!props.onEditingCreate;
|
20940
20960
|
// this gives me the performance heeby jeebies, but can't think of a better way to internalise the state
|
20941
20961
|
var data = React__default.useMemo(function () {
|
@@ -21048,6 +21068,7 @@ function Alert$1(props) {
|
|
21048
21068
|
// Add space before and after `messageAnd` text
|
21049
21069
|
links.push(" " + validationTexts.alert.messageAnd + " ");
|
21050
21070
|
}
|
21071
|
+
// note: if this row click functionality is removed, indexes can be removed from useEditingState
|
21051
21072
|
var handleClick = function handleClick() {
|
21052
21073
|
// if row is visible
|
21053
21074
|
if (pendingChangeWithError.index > -1) {
|