@economic/taco 2.49.0-server.1 → 2.49.0-server.3
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 +2 -2
- 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 +3 -4
- 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/Footer/Summary.js +1 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Summary.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js +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/Toolbar/components/Print/Print.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js +3 -4
- 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/Core/features/useTableGlobalShortcuts.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableGlobalShortcuts.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/useTableDataLoader.js +13 -10
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader2.js +8 -8
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader2.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/useTableRowSelectionListener.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.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/listeners/useTableServerLoadingListener.js +2 -2
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.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/primitives/Table/useTableManager/util/setup.js +2 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.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 +2 -7
- package/dist/primitives/Table/useTableDataLoader.d.ts +2 -2
- package/dist/primitives/Table/useTableDataLoader2.d.ts +2 -2
- package/dist/primitives/Table/useTableManager/features/useTableServerLoading.d.ts +3 -3
- package/dist/taco.cjs.development.js +110 -85
- 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
@@ -3,7 +3,7 @@ import { extends as _extends } from '../../../../../../_virtual/_rollupPluginBab
|
|
3
3
|
import { isTemporaryRow } from '../util/editing.js';
|
4
4
|
import { usePendingChangesState } from './useEditingState.js';
|
5
5
|
|
6
|
-
function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, rowIdentityAccessor, validator) {
|
6
|
+
function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, handleDiscard, rowIdentityAccessor, validator) {
|
7
7
|
var createRow = function createRow(table, scrollToIndex, row) {
|
8
8
|
try {
|
9
9
|
var _temp2 = function _temp2(_result) {
|
@@ -71,7 +71,7 @@ function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, rowI
|
|
71
71
|
var _React$useState3 = React__default.useState(undefined),
|
72
72
|
lastFocusedCellIndex = _React$useState3[0],
|
73
73
|
setLastFocusedCellIndex = _React$useState3[1];
|
74
|
-
var pendingChangesFns = usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, validator);
|
74
|
+
var pendingChangesFns = usePendingChangesState(handleSave, handleChange, handleDiscard, rowIdentityAccessor, validator);
|
75
75
|
function toggleEditing(enabled, table, scrollToIndex, doSave) {
|
76
76
|
if (doSave === void 0) {
|
77
77
|
doSave = true;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useTableEditing.js","sources":["../../../../../../../../src/components/Table3/features/useTableEditing.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport {\n Table3EditingChangeHandler,\n Table3EditingCreateHandler,\n Table3EditingSaveHandler,\n Table3EditingValidatorFn,\n} from '../types';\nimport { usePendingChangesState } from './useEditingState';\nimport { isTemporaryRow } from '../util/editing';\n\nexport function useTableEditing<TType = unknown>(\n isEnabled = false,\n handleSave: Table3EditingSaveHandler<TType> | undefined,\n handleChange: Table3EditingChangeHandler<TType> | undefined,\n handleCreate: Table3EditingCreateHandler<TType> | undefined,\n rowIdentityAccessor: keyof TType | undefined,\n validator: Table3EditingValidatorFn<TType> | undefined\n) {\n // used to switch the table into editing mode\n const [isEditing, setEditing] = React.useState(false);\n\n // used to switch the editing between \"detailed\" mode\n const [isDetailedMode, toggleDetailedMode] = React.useState(false);\n\n // used to contain ref to the create button\n const createRowButtonRef = React.useRef<HTMLButtonElement>(null);\n\n // store the last focused cell, so that up/down arrow key navigation remains in the same column\n const [lastFocusedCellIndex, setLastFocusedCellIndex] = React.useState<number | undefined>(undefined);\n\n const pendingChangesFns = usePendingChangesState<TType>(\n handleSave,\n handleChange,\n rowIdentityAccessor as keyof TType,\n validator\n );\n\n function toggleEditing<T extends TType>(\n enabled: React.SetStateAction<boolean>,\n table: ReactTable<T>,\n scrollToIndex: (index: number) => void,\n doSave = true\n ) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (enabled) {\n const index = tableMeta.rowActive.rowActiveIndex ?? 0;\n\n if (tableMeta.rowActive.rowActiveIndex === undefined) {\n tableMeta.rowActive.setRowActiveIndex(index);\n }\n\n if (!isTemporaryRow(table.getRowModel().rows[index]?.id)) {\n scrollToIndex(index);\n }\n } else if (!enabled) {\n // reset detailed mode\n toggleDetailedMode(false);\n // reset the last index back to the first focusable element, when editing gets turned off\n setLastFocusedCellIndex(undefined);\n }\n\n setEditing(enabled);\n\n if (doSave) {\n pendingChangesFns.saveChanges(table);\n }\n }\n\n async function createRow<T extends TType>(table: ReactTable<T>, scrollToIndex: (index: number) => void, row?: Partial<T>) {\n if (!handleCreate) {\n return;\n }\n\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n const saved = await tableMeta.editing.saveChanges(\n table,\n table.getRowModel().rows[tableMeta.rowActive.rowActiveIndex]?.id\n );\n\n if (!saved) {\n return;\n }\n }\n\n const changeset = row ?? handleCreate();\n\n try {\n if (changeset) {\n // set the active row to the new row before toggling editing on\n const temporaryRows = tableMeta.editing.temporaryRows as TType[];\n const nextRowIndex = temporaryRows.length ? tableMeta.length + 1 : tableMeta.length;\n\n const newRowId = pendingChangesFns.insertTemporaryRow(changeset, nextRowIndex);\n\n // reset before changing row otherwise the cell changes and validation might run\n setLastFocusedCellIndex(undefined);\n // set the active row to the new row before toggling editing on\n tableMeta.rowActive.setRowActiveIndex(nextRowIndex);\n\n // wait until set states have run\n requestAnimationFrame(() => {\n toggleEditing(true, table, scrollToIndex, false);\n table.setRowPinning(currentState => ({\n ...currentState,\n bottom: (currentState.bottom ?? [])?.concat(newRowId),\n }));\n });\n }\n } catch (error) {\n console.error(error);\n }\n }\n\n return {\n isEnabled,\n isEditing,\n isDetailedMode,\n toggleDetailedMode: isEnabled ? toggleDetailedMode : () => undefined,\n toggleEditing: isEnabled ? toggleEditing : () => undefined,\n lastFocusedCellIndex,\n setLastFocusedCellIndex,\n createRow,\n createRowButtonRef,\n ...pendingChangesFns,\n };\n}\n"],"names":["useTableEditing","isEnabled","handleSave","handleChange","handleCreate","rowIdentityAccessor","validator","createRow","table","scrollToIndex","row","changeset","temporaryRows","tableMeta","editing","nextRowIndex","length","newRowId","pendingChangesFns","insertTemporaryRow","setLastFocusedCellIndex","undefined","rowActive","setRowActiveIndex","requestAnimationFrame","toggleEditing","setRowPinning","currentState","_ref","_currentState$bottom","_extends","bottom","concat","error","console","_exit","Promise","resolve","options","meta","_temp","rowActiveIndex","_table$getRowModel$ro2","saveChanges","getRowModel","rows","id","then","saved","_temp2","e","reject","_React$useState","React","useState","isEditing","setEditing","_React$useState2","isDetailedMode","toggleDetailedMode","createRowButtonRef","useRef","_React$useState3","lastFocusedCellIndex","usePendingChangesState","enabled","doSave","_tableMeta$rowActive$","_table$getRowModel$ro","index","isTemporaryRow"],"mappings":";;;;;
|
1
|
+
{"version":3,"file":"useTableEditing.js","sources":["../../../../../../../../src/components/Table3/features/useTableEditing.ts"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport {\n Table3EditingChangeHandler,\n Table3EditingCreateHandler,\n Table3EditingDiscardHandler,\n Table3EditingSaveHandler,\n Table3EditingValidatorFn,\n} from '../types';\nimport { usePendingChangesState } from './useEditingState';\nimport { isTemporaryRow } from '../util/editing';\n\nexport function useTableEditing<TType = unknown>(\n isEnabled = false,\n handleSave: Table3EditingSaveHandler<TType> | undefined,\n handleChange: Table3EditingChangeHandler<TType> | undefined,\n handleCreate: Table3EditingCreateHandler<TType> | undefined,\n handleDiscard: Table3EditingDiscardHandler | undefined,\n rowIdentityAccessor: keyof TType | undefined,\n validator: Table3EditingValidatorFn<TType> | undefined\n) {\n // used to switch the table into editing mode\n const [isEditing, setEditing] = React.useState(false);\n\n // used to switch the editing between \"detailed\" mode\n const [isDetailedMode, toggleDetailedMode] = React.useState(false);\n\n // used to contain ref to the create button\n const createRowButtonRef = React.useRef<HTMLButtonElement>(null);\n\n // store the last focused cell, so that up/down arrow key navigation remains in the same column\n const [lastFocusedCellIndex, setLastFocusedCellIndex] = React.useState<number | undefined>(undefined);\n\n const pendingChangesFns = usePendingChangesState<TType>(\n handleSave,\n handleChange,\n handleDiscard,\n rowIdentityAccessor as keyof TType,\n validator\n );\n\n function toggleEditing<T extends TType>(\n enabled: React.SetStateAction<boolean>,\n table: ReactTable<T>,\n scrollToIndex: (index: number) => void,\n doSave = true\n ) {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (enabled) {\n const index = tableMeta.rowActive.rowActiveIndex ?? 0;\n\n if (tableMeta.rowActive.rowActiveIndex === undefined) {\n tableMeta.rowActive.setRowActiveIndex(index);\n }\n\n if (!isTemporaryRow(table.getRowModel().rows[index]?.id)) {\n scrollToIndex(index);\n }\n } else if (!enabled) {\n // reset detailed mode\n toggleDetailedMode(false);\n // reset the last index back to the first focusable element, when editing gets turned off\n setLastFocusedCellIndex(undefined);\n }\n\n setEditing(enabled);\n\n if (doSave) {\n pendingChangesFns.saveChanges(table);\n }\n }\n\n async function createRow<T extends TType>(table: ReactTable<T>, scrollToIndex: (index: number) => void, row?: Partial<T>) {\n if (!handleCreate) {\n return;\n }\n\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n const saved = await tableMeta.editing.saveChanges(\n table,\n table.getRowModel().rows[tableMeta.rowActive.rowActiveIndex]?.id\n );\n\n if (!saved) {\n return;\n }\n }\n\n const changeset = row ?? handleCreate();\n\n try {\n if (changeset) {\n // set the active row to the new row before toggling editing on\n const temporaryRows = tableMeta.editing.temporaryRows as TType[];\n const nextRowIndex = temporaryRows.length ? tableMeta.length + 1 : tableMeta.length;\n\n const newRowId = pendingChangesFns.insertTemporaryRow(changeset, nextRowIndex);\n\n // reset before changing row otherwise the cell changes and validation might run\n setLastFocusedCellIndex(undefined);\n // set the active row to the new row before toggling editing on\n tableMeta.rowActive.setRowActiveIndex(nextRowIndex);\n\n // wait until set states have run\n requestAnimationFrame(() => {\n toggleEditing(true, table, scrollToIndex, false);\n table.setRowPinning(currentState => ({\n ...currentState,\n bottom: (currentState.bottom ?? [])?.concat(newRowId),\n }));\n });\n }\n } catch (error) {\n console.error(error);\n }\n }\n\n return {\n isEnabled,\n isEditing,\n isDetailedMode,\n toggleDetailedMode: isEnabled ? toggleDetailedMode : () => undefined,\n toggleEditing: isEnabled ? toggleEditing : () => undefined,\n lastFocusedCellIndex,\n setLastFocusedCellIndex,\n createRow,\n createRowButtonRef,\n ...pendingChangesFns,\n };\n}\n"],"names":["useTableEditing","isEnabled","handleSave","handleChange","handleCreate","handleDiscard","rowIdentityAccessor","validator","createRow","table","scrollToIndex","row","changeset","temporaryRows","tableMeta","editing","nextRowIndex","length","newRowId","pendingChangesFns","insertTemporaryRow","setLastFocusedCellIndex","undefined","rowActive","setRowActiveIndex","requestAnimationFrame","toggleEditing","setRowPinning","currentState","_ref","_currentState$bottom","_extends","bottom","concat","error","console","_exit","Promise","resolve","options","meta","_temp","rowActiveIndex","_table$getRowModel$ro2","saveChanges","getRowModel","rows","id","then","saved","_temp2","e","reject","_React$useState","React","useState","isEditing","setEditing","_React$useState2","isDetailedMode","toggleDetailedMode","createRowButtonRef","useRef","_React$useState3","lastFocusedCellIndex","usePendingChangesState","enabled","doSave","_tableMeta$rowActive$","_table$getRowModel$ro","index","isTemporaryRow"],"mappings":"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"}
|
@@ -12,7 +12,7 @@ var RENDERERS = {
|
|
12
12
|
cell: Cell
|
13
13
|
};
|
14
14
|
function useTable3(props, ref) {
|
15
|
-
var editing = useTableEditing(props.enableEditing, props.onEditingSave, props.onEditingChange, props.onEditingCreate, props.rowIdentityAccessor, props.validator);
|
15
|
+
var editing = useTableEditing(props.enableEditing, props.onEditingSave, props.onEditingChange, props.onEditingCreate, props.onEditingDiscard, props.rowIdentityAccessor, props.validator);
|
16
16
|
var creationEnabled = editing.isEnabled && !!props.onEditingCreate;
|
17
17
|
// this gives me the performance heeby jeebies, but can't think of a better way to internalise the state
|
18
18
|
var data = React__default.useMemo(function () {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useTable3.js","sources":["../../../../../../../src/components/Table3/useTable3.tsx"],"sourcesContent":["import React from 'react';\nimport { RowData, Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useTable } from '../../primitives/Table/Core/useTable';\nimport { useTableEditingListener } from './listeners/useTableEditingListener';\nimport { useTableEditing } from './features/useTableEditing';\nimport { Table3Props, Table3Ref } from './types';\nimport { TableRowActionRenderer } from '../../primitives/Table/types';\nimport { Cell } from './components/Columns/Cell/Cell';\nimport { EditingActionsMenu } from './components/Columns/Internal/EditingActionsMenu';\nimport { Row } from './components/Row/Row';\nimport { useTableRenderOptions } from '../../primitives/Table/Core/types';\n\nexport const RENDERERS = {\n row: Row,\n cell: Cell,\n};\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n editing: ReturnType<typeof useTableEditing>;\n }\n}\n\ntype Table3Meta = {\n editing: ReturnType<typeof useTableEditing>;\n};\n\nexport function useTable3<TType>(props: Table3Props<TType>, ref: React.Ref<Table3Ref>) {\n const editing = useTableEditing(\n props.enableEditing,\n props.onEditingSave,\n props.onEditingChange,\n props.onEditingCreate,\n props.rowIdentityAccessor,\n props.validator\n );\n const creationEnabled = editing.isEnabled && !!props.onEditingCreate;\n\n // this gives me the performance heeby jeebies, but can't think of a better way to internalise the state\n const data: TType[] = React.useMemo(() => {\n if (editing.temporaryRows.length) {\n return (props.data ?? []).concat(editing.temporaryRows as TType[]);\n }\n\n return props.data;\n }, [JSON.stringify(props.data), editing.temporaryRows.length]);\n\n const extendedProps: Table3Props<TType> = {\n ...props,\n data,\n enableRowActions: editing.isEditing ? true : props.enableRowActions,\n // Display EditingActionMenu instead of row actions while editing\n rowActions: editing.isEditing\n ? ([\n (_, rowId, table: ReactTable<TType>) => {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n return (\n <EditingActionsMenu\n hasChanges={editing.hasChanges(rowId)}\n hasErrors={editing.hasRowErrors(rowId)}\n onDiscard={() => {\n editing.discardChanges(rowId, table);\n\n if (editing.temporaryRows.length) {\n requestAnimationFrame(() => editing.createRowButtonRef.current?.focus());\n }\n }}\n onEditingSave={async () => {\n await editing.saveChanges(table, rowId);\n }}\n isLastRow={!creationEnabled && tableMeta.rowActive.rowActiveIndex === tableMeta.length - 1}\n />\n );\n },\n ] as TableRowActionRenderer<TType>[])\n : props.rowActions,\n };\n const meta = { editing };\n\n const options: useTableRenderOptions = {\n virtualiserPaddingEndOffset:\n props.enableEditing && props.onEditingCreate ? (editing.hasTemporaryRowErrors() ? 1.4 : 1) : 0,\n };\n\n const table = useTable<TType, Table3Meta>(extendedProps, ref, RENDERERS, meta, options);\n\n // listeners\n useTableEditingListener<TType>(table.instance, table.ref, table.renderer.scrollToIndex);\n\n React.useEffect(() => {\n if (table.ref.current) {\n (table.ref.current as Table3Ref).instance.toggleEditing = (enabled: boolean | undefined) =>\n table.meta.editing.toggleEditing(enabled ?? (editing => !editing), table.instance, table.renderer.scrollToIndex);\n\n if (props.onEditingCreate) {\n (table.ref.current as Table3Ref).instance.createRow = (row: unknown) =>\n table.meta.editing.createRow(table.instance, table.renderer.scrollToIndex, row as Partial<TType>);\n }\n }\n }, [table.ref.current]);\n\n return table;\n}\n"],"names":["RENDERERS","row","Row","cell","Cell","useTable3","props","ref","editing","useTableEditing","enableEditing","onEditingSave","onEditingChange","onEditingCreate","rowIdentityAccessor","validator","creationEnabled","isEnabled","data","React","useMemo","temporaryRows","length","_props$data","concat","JSON","stringify","extendedProps","_extends","enableRowActions","isEditing","rowActions","_","rowId","table","tableMeta","options","meta","EditingActionsMenu","hasChanges","hasErrors","hasRowErrors","onDiscard","discardChanges","requestAnimationFrame","_editing$createRowBut","createRowButtonRef","current","focus","saveChanges","then","e","Promise","reject","isLastRow","rowActive","rowActiveIndex","virtualiserPaddingEndOffset","hasTemporaryRowErrors","useTable","useTableEditingListener","instance","renderer","scrollToIndex","useEffect","toggleEditing","enabled","createRow"],"mappings":";;;;;;;;;IAYaA,SAAS,GAAG;EACrBC,GAAG,EAAEC,GAAG;EACRC,IAAI,EAAEC;;SAaMC,SAASA,CAAQC,KAAyB,EAAEC,GAAyB;EACjF,IAAMC,OAAO,GAAGC,eAAe,CAC3BH,KAAK,CAACI,aAAa,EACnBJ,KAAK,CAACK,aAAa,EACnBL,KAAK,CAACM,eAAe,EACrBN,KAAK,CAACO,eAAe,EACrBP,KAAK,CAACQ,
|
1
|
+
{"version":3,"file":"useTable3.js","sources":["../../../../../../../src/components/Table3/useTable3.tsx"],"sourcesContent":["import React from 'react';\nimport { RowData, Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useTable } from '../../primitives/Table/Core/useTable';\nimport { useTableEditingListener } from './listeners/useTableEditingListener';\nimport { useTableEditing } from './features/useTableEditing';\nimport { Table3Props, Table3Ref } from './types';\nimport { TableRowActionRenderer } from '../../primitives/Table/types';\nimport { Cell } from './components/Columns/Cell/Cell';\nimport { EditingActionsMenu } from './components/Columns/Internal/EditingActionsMenu';\nimport { Row } from './components/Row/Row';\nimport { useTableRenderOptions } from '../../primitives/Table/Core/types';\n\nexport const RENDERERS = {\n row: Row,\n cell: Cell,\n};\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n editing: ReturnType<typeof useTableEditing>;\n }\n}\n\ntype Table3Meta = {\n editing: ReturnType<typeof useTableEditing>;\n};\n\nexport function useTable3<TType>(props: Table3Props<TType>, ref: React.Ref<Table3Ref>) {\n const editing = useTableEditing(\n props.enableEditing,\n props.onEditingSave,\n props.onEditingChange,\n props.onEditingCreate,\n props.onEditingDiscard,\n props.rowIdentityAccessor,\n props.validator\n );\n const creationEnabled = editing.isEnabled && !!props.onEditingCreate;\n\n // this gives me the performance heeby jeebies, but can't think of a better way to internalise the state\n const data: TType[] = React.useMemo(() => {\n if (editing.temporaryRows.length) {\n return (props.data ?? []).concat(editing.temporaryRows as TType[]);\n }\n\n return props.data;\n }, [JSON.stringify(props.data), editing.temporaryRows.length]);\n\n const extendedProps: Table3Props<TType> = {\n ...props,\n data,\n enableRowActions: editing.isEditing ? true : props.enableRowActions,\n // Display EditingActionMenu instead of row actions while editing\n rowActions: editing.isEditing\n ? ([\n (_, rowId, table: ReactTable<TType>) => {\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n return (\n <EditingActionsMenu\n hasChanges={editing.hasChanges(rowId)}\n hasErrors={editing.hasRowErrors(rowId)}\n onDiscard={() => {\n editing.discardChanges(rowId, table);\n\n if (editing.temporaryRows.length) {\n requestAnimationFrame(() => editing.createRowButtonRef.current?.focus());\n }\n }}\n onEditingSave={async () => {\n await editing.saveChanges(table, rowId);\n }}\n isLastRow={!creationEnabled && tableMeta.rowActive.rowActiveIndex === tableMeta.length - 1}\n />\n );\n },\n ] as TableRowActionRenderer<TType>[])\n : props.rowActions,\n };\n const meta = { editing };\n\n const options: useTableRenderOptions = {\n virtualiserPaddingEndOffset:\n props.enableEditing && props.onEditingCreate ? (editing.hasTemporaryRowErrors() ? 1.4 : 1) : 0,\n };\n\n const table = useTable<TType, Table3Meta>(extendedProps, ref, RENDERERS, meta, options);\n\n // listeners\n useTableEditingListener<TType>(table.instance, table.ref, table.renderer.scrollToIndex);\n\n React.useEffect(() => {\n if (table.ref.current) {\n (table.ref.current as Table3Ref).instance.toggleEditing = (enabled: boolean | undefined) =>\n table.meta.editing.toggleEditing(enabled ?? (editing => !editing), table.instance, table.renderer.scrollToIndex);\n\n if (props.onEditingCreate) {\n (table.ref.current as Table3Ref).instance.createRow = (row: unknown) =>\n table.meta.editing.createRow(table.instance, table.renderer.scrollToIndex, row as Partial<TType>);\n }\n }\n }, [table.ref.current]);\n\n return table;\n}\n"],"names":["RENDERERS","row","Row","cell","Cell","useTable3","props","ref","editing","useTableEditing","enableEditing","onEditingSave","onEditingChange","onEditingCreate","onEditingDiscard","rowIdentityAccessor","validator","creationEnabled","isEnabled","data","React","useMemo","temporaryRows","length","_props$data","concat","JSON","stringify","extendedProps","_extends","enableRowActions","isEditing","rowActions","_","rowId","table","tableMeta","options","meta","EditingActionsMenu","hasChanges","hasErrors","hasRowErrors","onDiscard","discardChanges","requestAnimationFrame","_editing$createRowBut","createRowButtonRef","current","focus","saveChanges","then","e","Promise","reject","isLastRow","rowActive","rowActiveIndex","virtualiserPaddingEndOffset","hasTemporaryRowErrors","useTable","useTableEditingListener","instance","renderer","scrollToIndex","useEffect","toggleEditing","enabled","createRow"],"mappings":"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"}
|
@@ -1,11 +1,11 @@
|
|
1
1
|
import React__default from 'react';
|
2
2
|
import { createShortcutKeyDownHandler } from '../utils/keyboard.js';
|
3
3
|
|
4
|
-
var useGlobalKeyDown = function useGlobalKeyDown(shortcut, handler
|
4
|
+
var useGlobalKeyDown = function useGlobalKeyDown(shortcut, handler) {
|
5
5
|
React__default.useEffect(function () {
|
6
6
|
var handleKeyDown;
|
7
7
|
if (shortcut) {
|
8
|
-
handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false
|
8
|
+
handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false);
|
9
9
|
document.addEventListener('keydown', handleKeyDown);
|
10
10
|
}
|
11
11
|
return function () {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useGlobalKeyDown.js","sources":["../../../../../../src/hooks/useGlobalKeyDown.ts"],"sourcesContent":["import React from 'react';\nimport { createShortcutKeyDownHandler, KeyDownHandlerOptions } from '../utils/keyboard';\n\nexport const useGlobalKeyDown = (\n shortcut: string | KeyDownHandlerOptions | undefined,\n handler: (event: KeyboardEvent) => void
|
1
|
+
{"version":3,"file":"useGlobalKeyDown.js","sources":["../../../../../../src/hooks/useGlobalKeyDown.ts"],"sourcesContent":["import React from 'react';\nimport { createShortcutKeyDownHandler, KeyDownHandlerOptions } from '../utils/keyboard';\n\nexport const useGlobalKeyDown = (\n shortcut: string | KeyDownHandlerOptions | undefined,\n handler: (event: KeyboardEvent) => void\n) => {\n React.useEffect(() => {\n let handleKeyDown;\n\n if (shortcut) {\n handleKeyDown = createShortcutKeyDownHandler(\n shortcut,\n handler as (event: KeyboardEvent | React.KeyboardEvent) => void,\n false\n );\n\n document.addEventListener('keydown', handleKeyDown);\n }\n\n return () => {\n if (handleKeyDown) {\n document.removeEventListener('keydown', handleKeyDown);\n }\n };\n }, [shortcut, handler]);\n};\n"],"names":["useGlobalKeyDown","shortcut","handler","React","useEffect","handleKeyDown","createShortcutKeyDownHandler","document","addEventListener","removeEventListener"],"mappings":";;;IAGaA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CACzBC,QAAoD,EACpDC,OAAuC;EAEvCC,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIC,aAAa;IAEjB,IAAIJ,QAAQ,EAAE;MACVI,aAAa,GAAGC,4BAA4B,CACxCL,QAAQ,EACRC,OAA+D,EAC/D,KAAK,CACR;MAEDK,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEH,aAAa,CAAC;;IAGvD,OAAO;MACH,IAAIA,aAAa,EAAE;QACfE,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAEJ,aAAa,CAAC;;KAE7D;GACJ,EAAE,CAACJ,QAAQ,EAAEC,OAAO,CAAC,CAAC;AAC3B;;;;"}
|
@@ -53,7 +53,7 @@ export { Progress } from './components/Progress/Progress.js';
|
|
53
53
|
export { ToastProvider, useToast } from './components/Toast/Toaster.js';
|
54
54
|
export { Provider, TacoContext } from './components/Provider/Provider.js';
|
55
55
|
export { FontSizes, fixedForwardRef } from './types.js';
|
56
|
-
export { TableFilterComparator
|
56
|
+
export { TableFilterComparator } from './primitives/Table/types.js';
|
57
57
|
export { DEFAULT_PAGE_SIZE, useTableDataLoader } from './primitives/Table/useTableDataLoader.js';
|
58
58
|
export { useLazyEffect } from './hooks/useLazyEffect.js';
|
59
59
|
export { SearchInput } from './components/SearchInput/SearchInput.js';
|
@@ -15,8 +15,13 @@ var Button = /*#__PURE__*/forwardRef(function Button(props, ref) {
|
|
15
15
|
useGlobalKeyDown(shortcut, function (event) {
|
16
16
|
var _internalRef$current;
|
17
17
|
event === null || event === void 0 ? void 0 : event.preventDefault();
|
18
|
+
var dialog = document.querySelector('[role="dialog"]');
|
19
|
+
// Don't trigger the click on the button if it is outside of the dialog
|
20
|
+
if (dialog && !(dialog !== null && dialog !== void 0 && dialog.contains(internalRef.current))) {
|
21
|
+
return;
|
22
|
+
}
|
18
23
|
(_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.click();
|
19
|
-
}
|
24
|
+
});
|
20
25
|
var Tag = props.href ? 'a' : 'button';
|
21
26
|
return /*#__PURE__*/createElement(Tag, Object.assign({}, otherProps, {
|
22
27
|
href: disabled ? undefined : props.href,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../../../../../src/primitives/Button.tsx"],"sourcesContent":["import * as React from 'react';\nimport { KeyDownHandlerOptions } from '../utils/keyboard';\nimport { useMergedRef } from '../hooks/useMergedRef';\nimport { useGlobalKeyDown } from '../hooks/useGlobalKeyDown';\n\ntype ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement | HTMLAnchorElement> & {\n /** Content should be a text */\n children: React.ReactNode;\n /** Provides url for buttons being used as a link */\n href?: string;\n shortcut?: string | KeyDownHandlerOptions;\n /** Provides target for buttons being used as a link */\n target?: '_self' | '_blank' | '_parent' | '_top';\n};\n\nconst Button = React.forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>) {\n const { disabled, shortcut, target, type = 'button', ...otherProps } = props;\n const internalRef = useMergedRef<HTMLButtonElement | HTMLAnchorElement>(ref);\n\n useGlobalKeyDown(
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../../../../../src/primitives/Button.tsx"],"sourcesContent":["import * as React from 'react';\nimport { KeyDownHandlerOptions } from '../utils/keyboard';\nimport { useMergedRef } from '../hooks/useMergedRef';\nimport { useGlobalKeyDown } from '../hooks/useGlobalKeyDown';\n\ntype ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement | HTMLAnchorElement> & {\n /** Content should be a text */\n children: React.ReactNode;\n /** Provides url for buttons being used as a link */\n href?: string;\n shortcut?: string | KeyDownHandlerOptions;\n /** Provides target for buttons being used as a link */\n target?: '_self' | '_blank' | '_parent' | '_top';\n};\n\nconst Button = React.forwardRef(function Button(props: ButtonProps, ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>) {\n const { disabled, shortcut, target, type = 'button', ...otherProps } = props;\n const internalRef = useMergedRef<HTMLButtonElement | HTMLAnchorElement>(ref);\n\n useGlobalKeyDown(shortcut, event => {\n event?.preventDefault();\n const dialog = document.querySelector('[role=\"dialog\"]');\n\n // Don't trigger the click on the button if it is outside of the dialog\n if (dialog && !dialog?.contains(internalRef.current)) {\n return;\n }\n\n internalRef.current?.click();\n });\n\n const Tag = props.href ? 'a' : 'button';\n\n return (\n <Tag\n {...otherProps}\n href={disabled ? undefined : props.href}\n aria-disabled={disabled ? 'true' : undefined}\n disabled={disabled}\n target={Tag === 'a' ? target : undefined}\n type={Tag !== 'a' ? type : undefined}\n ref={internalRef as any}>\n {React.Children.count(props.children) > 1\n ? React.Children.map(props.children, child => (typeof child === 'string' ? <span>{child}</span> : child))\n : props.children}\n </Tag>\n );\n});\n\nexport { Button };\nexport type { ButtonProps };\n"],"names":["Button","React","props","ref","disabled","shortcut","target","_props$type","type","otherProps","_objectWithoutPropertiesLoose","_excluded","internalRef","useMergedRef","useGlobalKeyDown","event","preventDefault","dialog","document","querySelector","contains","current","_internalRef$current","click","Tag","href","undefined","count","children","map","child"],"mappings":";;;;;;IAeMA,MAAM,gBAAGC,UAAgB,CAAC,SAASD,MAAMA,CAACE,KAAkB,EAAEC,GAAqD;EACrH,IAAQC,QAAQ,GAAuDF,KAAK,CAApEE,QAAQ;IAAEC,QAAQ,GAA6CH,KAAK,CAA1DG,QAAQ;IAAEC,MAAM,GAAqCJ,KAAK,CAAhDI,MAAM;IAAAC,WAAA,GAAqCL,KAAK,CAAxCM,IAAI;IAAJA,IAAI,GAAAD,WAAA,cAAG,QAAQ,GAAAA,WAAA;IAAKE,UAAU,GAAAC,6BAAA,CAAKR,KAAK,EAAAS,SAAA;EAC5E,IAAMC,WAAW,GAAGC,YAAY,CAAwCV,GAAG,CAAC;EAE5EW,gBAAgB,CAACT,QAAQ,EAAE,UAAAU,KAAK;;IAC5BA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,cAAc,EAAE;IACvB,IAAMC,MAAM,GAAGC,QAAQ,CAACC,aAAa,CAAC,iBAAiB,CAAC;;IAGxD,IAAIF,MAAM,IAAI,EAACA,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEG,QAAQ,CAACR,WAAW,CAACS,OAAO,CAAC,GAAE;MAClD;;IAGJ,CAAAC,oBAAA,GAAAV,WAAW,CAACS,OAAO,cAAAC,oBAAA,uBAAnBA,oBAAA,CAAqBC,KAAK,EAAE;GAC/B,CAAC;EAEF,IAAMC,GAAG,GAAGtB,KAAK,CAACuB,IAAI,GAAG,GAAG,GAAG,QAAQ;EAEvC,oBACIxB,cAACuB,GAAG,oBACIf,UAAU;IACdgB,IAAI,EAAErB,QAAQ,GAAGsB,SAAS,GAAGxB,KAAK,CAACuB,IAAI;qBACxBrB,QAAQ,GAAG,MAAM,GAAGsB,SAAS;IAC5CtB,QAAQ,EAAEA,QAAQ;IAClBE,MAAM,EAAEkB,GAAG,KAAK,GAAG,GAAGlB,MAAM,GAAGoB,SAAS;IACxClB,IAAI,EAAEgB,GAAG,KAAK,GAAG,GAAGhB,IAAI,GAAGkB,SAAS;IACpCvB,GAAG,EAAES;MACJX,QAAc,CAAC0B,KAAK,CAACzB,KAAK,CAAC0B,QAAQ,CAAC,GAAG,CAAC,GACnC3B,QAAc,CAAC4B,GAAG,CAAC3B,KAAK,CAAC0B,QAAQ,EAAE,UAAAE,KAAK;IAAA,OAAK,OAAOA,KAAK,KAAK,QAAQ,gBAAG7B,4BAAO6B,KAAK,CAAQ,GAAGA,KAAK;GAAC,CAAC,GACvG5B,KAAK,CAAC0B,QAAQ,CAClB;AAEd,CAAC;;;;"}
|
package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js
CHANGED
@@ -4,7 +4,6 @@ import { Tooltip } from '../../../../../../components/Tooltip/Tooltip.js';
|
|
4
4
|
import { useLocalization } from '../../../../../../components/Provider/Localization.js';
|
5
5
|
import { Checkbox } from '../../../../../../components/Checkbox/Checkbox.js';
|
6
6
|
import { Shortcut } from '../../../../../../components/Shortcut/Shortcut.js';
|
7
|
-
import { TableServerLoadAllState } from '../../../../types.js';
|
8
7
|
import { getHiddenColumns } from '../../../../useTableManager/util/columns.js';
|
9
8
|
import { RowContext } from '../../Row/RowContext.js';
|
10
9
|
|
@@ -25,7 +24,7 @@ function Header(context) {
|
|
25
24
|
if (tableMeta.server.loadAllIfNeeded) {
|
26
25
|
var hiddenColumns = getHiddenColumns(table.getState().columnVisibility);
|
27
26
|
// don't pass the search query because we need all data - not filtered data
|
28
|
-
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined
|
27
|
+
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, hiddenColumns, tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined)).then(function () {});
|
29
28
|
}
|
30
29
|
}();
|
31
30
|
// load all data if that is possible
|
@@ -41,7 +40,7 @@ function Header(context) {
|
|
41
40
|
className: "hover:border-blue !-mt-px",
|
42
41
|
checked: isAllRowsSelected,
|
43
42
|
indeterminate: isSomeRowsSelected && !isAllRowsSelected,
|
44
|
-
loading: tableMeta.server.
|
43
|
+
loading: tableMeta.server.loading,
|
45
44
|
onChange: handleChange
|
46
45
|
}));
|
47
46
|
}
|
@@ -99,7 +98,7 @@ function Cell(context) {
|
|
99
98
|
if (tableMeta.server.loadAllIfNeeded) {
|
100
99
|
var hiddenColumns = getHiddenColumns(table.getState().columnVisibility);
|
101
100
|
// don't pass the search query because we need all data - not filtered data
|
102
|
-
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined
|
101
|
+
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, hiddenColumns, tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined)).then(function () {});
|
103
102
|
}
|
104
103
|
}();
|
105
104
|
return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Selection.js","sources":["../../../../../../../../../../../src/primitives/Table/Core/components/Columns/Internal/Selection.tsx"],"sourcesContent":["import React from 'react';\nimport {\n HeaderContext as ReactTableHeaderContext,\n CellContext as ReactTableCellContext,\n TableMeta as ReactTableMeta,\n RowSelectionState,\n} from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport { Tooltip } from '../../../../../../components/Tooltip/Tooltip';\nimport { Checkbox } from '../../../../../../components/Checkbox/Checkbox';\nimport { Shortcut } from '../../../../../../components/Shortcut/Shortcut';\nimport { TableServerLoadAllState } from '../../../../types';\nimport { RowContext } from '../../Row/RowContext';\nimport { useTableManagerInternalColumn } from '../../../../useTableManager/types';\nimport { getHiddenColumns } from '../../../../useTableManager/util/columns';\n\nfunction Header<TType = unknown>(context: ReactTableHeaderContext<TType, unknown>) {\n const { texts } = useLocalization();\n const { table } = context;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const isAllRowsSelected = table.getIsAllRowsSelected();\n const isSomeRowsSelected = table.getIsSomeRowsSelected();\n const title = isAllRowsSelected ? texts.table.columns.select.deselectAll : texts.table.columns.select.selectAll;\n\n const handleChange = async (checked: boolean) => {\n // load all data if that is possible\n if (tableMeta.server.loadAllIfNeeded) {\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAllIfNeeded(\n table.getState().sorting,\n table.getState().columnFilters,\n tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined,\n hiddenColumns\n );\n }\n\n table.toggleAllRowsSelected(checked);\n };\n\n return (\n <Tooltip title={title}>\n <Checkbox\n aria-label={title}\n className=\"hover:border-blue !-mt-px\"\n checked={isAllRowsSelected}\n indeterminate={isSomeRowsSelected && !isAllRowsSelected}\n loading={tableMeta.server.loadAllStatus === TableServerLoadAllState.Loading}\n onChange={handleChange}\n />\n </Tooltip>\n );\n}\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\nfunction Cell<TType = unknown>(context: ReactTableCellContext<TType, unknown>) {\n const { texts } = useLocalization();\n const { row, table } = context;\n const { hideInternalColumns, rowIndex } = React.useContext(RowContext);\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (hideInternalColumns || (table.options.enableGrouping && table.getState().grouping?.length && !row.getIsGrouped())) {\n return null;\n }\n\n const isSelected = row.getIsGrouped() ? row.getIsAllSubRowsSelected() : row.getIsSelected();\n const canSelect = row.getCanSelect();\n const title = isSelected ? texts.table.columns.select.deselect : texts.table.columns.select.select;\n\n const handleClick = async (event: React.MouseEvent) => {\n event.stopPropagation();\n\n if (row.getIsGrouped()) {\n row.subRows.forEach(row => row.toggleSelected());\n } else if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(tableMeta.rowSelection.lastSelectedRowIndex.current ?? 0, rowIndex);\n\n if (tableMeta.server.loadAllIfNeeded) {\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAllIfNeeded(\n table.getState().sorting,\n table.getState().columnFilters,\n tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined,\n hiddenColumns\n );\n }\n\n const selectedRows = table.getRowModel().rows.slice(fromIndex, toIndex + 1);\n table.setRowSelection((currentRowSelection: RowSelectionState) => ({\n ...currentRowSelection,\n ...selectedRows.filter(row => row.getCanSelect()).reduce((state, row) => ({ ...state, [row.id]: true }), {}),\n }));\n } else {\n row.toggleSelected();\n }\n\n tableMeta.rowSelection.lastSelectedRowIndex.current = row.index;\n };\n\n return (\n <Tooltip\n hidden={!canSelect}\n title={\n <>\n {title}\n <Shortcut className=\"ml-2\" keys=\"Space\" />\n </>\n }>\n <Checkbox\n aria-label={title}\n className=\"!mt-0\"\n checked={isSelected}\n onClick={handleClick}\n disabled={!canSelect}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n />\n </Tooltip>\n );\n}\n\nexport const renderer: useTableManagerInternalColumn = {\n header: Header,\n renderer: Cell,\n size: 40,\n meta: {\n align: 'center',\n className: '!px-1',\n // TODO: remove when table3 is migrated, this satisfies the legacy table3 type\n enableSearch: false,\n header: '',\n headerClassName: '!px-1',\n },\n};\n"],"names":["Header","context","_useLocalization","useLocalization","texts","table","tableMeta","options","meta","isAllRowsSelected","getIsAllRowsSelected","isSomeRowsSelected","getIsSomeRowsSelected","title","columns","select","deselectAll","selectAll","handleChange","checked","toggleAllRowsSelected","_temp","server","loadAllIfNeeded","hiddenColumns","getHiddenColumns","getState","columnVisibility","Promise","resolve","sorting","columnFilters","search","enableGlobalFilter","globalFilter","undefined","then","_temp2","e","reject","React","Tooltip","Checkbox","className","indeterminate","loading","loadAllStatus","TableServerLoadAllState","Loading","onChange","toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","Cell","_useLocalization2","row","_React$useContext","useContext","RowContext","hideInternalColumns","rowIndex","enableGrouping","_table$getState$group","grouping","length","getIsGrouped","isSelected","getIsAllSubRowsSelected","getIsSelected","canSelect","getCanSelect","deselect","handleClick","event","rowSelection","lastSelectedRowIndex","current","index","stopPropagation","_temp6","subRows","forEach","toggleSelected","_temp8","shiftKey","_tableMeta$rowSelecti","_temp4","selectedRows","getRowModel","rows","slice","setRowSelection","currentRowSelection","_extends","filter","reduce","state","_extends2","id","_toggleBetween","_temp3","_temp7","hidden","Shortcut","keys","onClick","disabled","renderer","header","size","align","enableSearch","headerClassName"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Selection.js","sources":["../../../../../../../../../../../src/primitives/Table/Core/components/Columns/Internal/Selection.tsx"],"sourcesContent":["import React from 'react';\nimport {\n HeaderContext as ReactTableHeaderContext,\n CellContext as ReactTableCellContext,\n TableMeta as ReactTableMeta,\n RowSelectionState,\n} from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../../components/Provider/Localization';\nimport { Tooltip } from '../../../../../../components/Tooltip/Tooltip';\nimport { Checkbox } from '../../../../../../components/Checkbox/Checkbox';\nimport { Shortcut } from '../../../../../../components/Shortcut/Shortcut';\nimport { RowContext } from '../../Row/RowContext';\nimport { useTableManagerInternalColumn } from '../../../../useTableManager/types';\nimport { getHiddenColumns } from '../../../../useTableManager/util/columns';\n\nfunction Header<TType = unknown>(context: ReactTableHeaderContext<TType, unknown>) {\n const { texts } = useLocalization();\n const { table } = context;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const isAllRowsSelected = table.getIsAllRowsSelected();\n const isSomeRowsSelected = table.getIsSomeRowsSelected();\n const title = isAllRowsSelected ? texts.table.columns.select.deselectAll : texts.table.columns.select.selectAll;\n\n const handleChange = async (checked: boolean) => {\n // load all data if that is possible\n if (tableMeta.server.loadAllIfNeeded) {\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAllIfNeeded(\n table.getState().sorting,\n table.getState().columnFilters,\n hiddenColumns,\n tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined\n );\n }\n\n table.toggleAllRowsSelected(checked);\n };\n\n return (\n <Tooltip title={title}>\n <Checkbox\n aria-label={title}\n className=\"hover:border-blue !-mt-px\"\n checked={isAllRowsSelected}\n indeterminate={isSomeRowsSelected && !isAllRowsSelected}\n loading={tableMeta.server.loading}\n onChange={handleChange}\n />\n </Tooltip>\n );\n}\n\nconst toggleBetween = (fromRowIndex: number, toRowIndex: number): [number, number] => {\n const fromIndex = toRowIndex < fromRowIndex ? toRowIndex : fromRowIndex;\n const toIndex = toRowIndex > fromRowIndex ? toRowIndex : fromRowIndex;\n\n return [fromIndex, toIndex];\n};\n\nfunction Cell<TType = unknown>(context: ReactTableCellContext<TType, unknown>) {\n const { texts } = useLocalization();\n const { row, table } = context;\n const { hideInternalColumns, rowIndex } = React.useContext(RowContext);\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (hideInternalColumns || (table.options.enableGrouping && table.getState().grouping?.length && !row.getIsGrouped())) {\n return null;\n }\n\n const isSelected = row.getIsGrouped() ? row.getIsAllSubRowsSelected() : row.getIsSelected();\n const canSelect = row.getCanSelect();\n const title = isSelected ? texts.table.columns.select.deselect : texts.table.columns.select.select;\n\n const handleClick = async (event: React.MouseEvent) => {\n event.stopPropagation();\n\n if (row.getIsGrouped()) {\n row.subRows.forEach(row => row.toggleSelected());\n } else if (event.shiftKey) {\n const [fromIndex, toIndex] = toggleBetween(tableMeta.rowSelection.lastSelectedRowIndex.current ?? 0, rowIndex);\n\n if (tableMeta.server.loadAllIfNeeded) {\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAllIfNeeded(\n table.getState().sorting,\n table.getState().columnFilters,\n hiddenColumns,\n tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined\n );\n }\n\n const selectedRows = table.getRowModel().rows.slice(fromIndex, toIndex + 1);\n table.setRowSelection((currentRowSelection: RowSelectionState) => ({\n ...currentRowSelection,\n ...selectedRows.filter(row => row.getCanSelect()).reduce((state, row) => ({ ...state, [row.id]: true }), {}),\n }));\n } else {\n row.toggleSelected();\n }\n\n tableMeta.rowSelection.lastSelectedRowIndex.current = row.index;\n };\n\n return (\n <Tooltip\n hidden={!canSelect}\n title={\n <>\n {title}\n <Shortcut className=\"ml-2\" keys=\"Space\" />\n </>\n }>\n <Checkbox\n aria-label={title}\n className=\"!mt-0\"\n checked={isSelected}\n onClick={handleClick}\n disabled={!canSelect}\n // this is necessary to remove console spam from eslint\n onChange={() => false}\n />\n </Tooltip>\n );\n}\n\nexport const renderer: useTableManagerInternalColumn = {\n header: Header,\n renderer: Cell,\n size: 40,\n meta: {\n align: 'center',\n className: '!px-1',\n // TODO: remove when table3 is migrated, this satisfies the legacy table3 type\n enableSearch: false,\n header: '',\n headerClassName: '!px-1',\n },\n};\n"],"names":["Header","context","_useLocalization","useLocalization","texts","table","tableMeta","options","meta","isAllRowsSelected","getIsAllRowsSelected","isSomeRowsSelected","getIsSomeRowsSelected","title","columns","select","deselectAll","selectAll","handleChange","checked","toggleAllRowsSelected","_temp","server","loadAllIfNeeded","hiddenColumns","getHiddenColumns","getState","columnVisibility","Promise","resolve","sorting","columnFilters","search","enableGlobalFilter","globalFilter","undefined","then","_temp2","e","reject","React","Tooltip","Checkbox","className","indeterminate","loading","onChange","toggleBetween","fromRowIndex","toRowIndex","fromIndex","toIndex","Cell","_useLocalization2","row","_React$useContext","useContext","RowContext","hideInternalColumns","rowIndex","enableGrouping","_table$getState$group","grouping","length","getIsGrouped","isSelected","getIsAllSubRowsSelected","getIsSelected","canSelect","getCanSelect","deselect","handleClick","event","rowSelection","lastSelectedRowIndex","current","index","stopPropagation","_temp6","subRows","forEach","toggleSelected","_temp8","shiftKey","_tableMeta$rowSelecti","_temp4","selectedRows","getRowModel","rows","slice","setRowSelection","currentRowSelection","_extends","filter","reduce","state","_extends2","id","_toggleBetween","_temp3","_temp7","hidden","Shortcut","keys","onClick","disabled","renderer","header","size","align","enableSearch","headerClassName"],"mappings":"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"}
|
@@ -20,8 +20,7 @@ function Summary(props) {
|
|
20
20
|
count = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(rowsSelectedLength)), "\xA0", texts.table.footer.summary.count, "\xA0", /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(length)));
|
21
21
|
} else if (!tableMeta.server.isEnabled && ((_table$getState$colum = table.getState().columnFilters) !== null && _table$getState$colum !== void 0 && _table$getState$colum.length ||
|
22
22
|
// filtered data
|
23
|
-
!!table.getState().globalFilter && table.options.enableGlobalFilter)
|
24
|
-
) {
|
23
|
+
!!table.getState().globalFilter && table.options.enableGlobalFilter)) {
|
25
24
|
label = texts.table.footer.summary.records;
|
26
25
|
count = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(currentLength)), "\xA0", texts.table.footer.summary.count, "\xA0", /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(length)));
|
27
26
|
} else {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Summary.js","sources":["../../../../../../../../../../src/primitives/Table/Core/components/Footer/Summary.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../components/Provider/Localization';\n\nexport type FooterSummaryProps<TType = unknown> = {\n table: ReactTable<TType>;\n};\n\nexport function Summary<TType = unknown>(props: FooterSummaryProps<TType>) {\n const { table } = props;\n const { locale, texts } = useLocalization();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const length = tableMeta.length;\n const currentLength = table.getRowModel().rows.length;\n\n let label;\n let count;\n\n // row selection\n // use table state and not the selected row model because of the way server loading works\n const rowsSelectedLength = Object.keys(table.getState().rowSelection).length;\n\n if (rowsSelectedLength > 0) {\n label = texts.table.footer.summary.selected;\n count = (\n <>\n <strong>{new Intl.NumberFormat(locale).format(rowsSelectedLength)}</strong> \n {texts.table.footer.summary.count} \n <strong>{new Intl.NumberFormat(locale).format(length)}</strong>\n </>\n );\n } else if (\n !tableMeta.server.isEnabled &&\n (table.getState().columnFilters?.length || // filtered data\n (!!table.getState().globalFilter && table.options.enableGlobalFilter))
|
1
|
+
{"version":3,"file":"Summary.js","sources":["../../../../../../../../../../src/primitives/Table/Core/components/Footer/Summary.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../components/Provider/Localization';\n\nexport type FooterSummaryProps<TType = unknown> = {\n table: ReactTable<TType>;\n};\n\nexport function Summary<TType = unknown>(props: FooterSummaryProps<TType>) {\n const { table } = props;\n const { locale, texts } = useLocalization();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const length = tableMeta.length;\n const currentLength = table.getRowModel().rows.length;\n\n let label;\n let count;\n\n // row selection\n // use table state and not the selected row model because of the way server loading works\n const rowsSelectedLength = Object.keys(table.getState().rowSelection).length;\n\n if (rowsSelectedLength > 0) {\n label = texts.table.footer.summary.selected;\n count = (\n <>\n <strong>{new Intl.NumberFormat(locale).format(rowsSelectedLength)}</strong> \n {texts.table.footer.summary.count} \n <strong>{new Intl.NumberFormat(locale).format(length)}</strong>\n </>\n );\n } else if (\n !tableMeta.server.isEnabled &&\n (table.getState().columnFilters?.length || // filtered data\n (!!table.getState().globalFilter && table.options.enableGlobalFilter))\n ) {\n label = texts.table.footer.summary.records;\n count = (\n <>\n <strong>{new Intl.NumberFormat(locale).format(currentLength)}</strong> \n {texts.table.footer.summary.count} \n <strong>{new Intl.NumberFormat(locale).format(length)}</strong>\n </>\n );\n } else {\n label = texts.table.footer.summary.records;\n count = <strong>{new Intl.NumberFormat(locale).format(length)}</strong>;\n }\n\n return (\n <div\n className=\"sticky left-0 z-20 flex h-full w-fit items-center whitespace-nowrap bg-white pr-1 shadow-[12px_0px_6px_white]\"\n data-taco=\"table-footer-summary\">\n {label} {count}\n </div>\n );\n}\n"],"names":["Summary","props","table","_useLocalization","useLocalization","locale","texts","tableMeta","options","meta","length","currentLength","getRowModel","rows","label","count","rowsSelectedLength","Object","keys","getState","rowSelection","footer","summary","selected","React","Intl","NumberFormat","format","server","isEnabled","_table$getState$colum","columnFilters","globalFilter","enableGlobalFilter","records","className"],"mappings":";;;SAQgBA,OAAOA,CAAkBC,KAAgC;;EACrE,IAAQC,KAAK,GAAKD,KAAK,CAAfC,KAAK;EACb,IAAAC,gBAAA,GAA0BC,eAAe,EAAE;IAAnCC,MAAM,GAAAF,gBAAA,CAANE,MAAM;IAAEC,KAAK,GAAAH,gBAAA,CAALG,KAAK;EACrB,IAAMC,SAAS,GAAGL,KAAK,CAACM,OAAO,CAACC,IAA6B;EAC7D,IAAMC,MAAM,GAAGH,SAAS,CAACG,MAAM;EAC/B,IAAMC,aAAa,GAAGT,KAAK,CAACU,WAAW,EAAE,CAACC,IAAI,CAACH,MAAM;EAErD,IAAII,KAAK;EACT,IAAIC,KAAK;;;EAIT,IAAMC,kBAAkB,GAAGC,MAAM,CAACC,IAAI,CAAChB,KAAK,CAACiB,QAAQ,EAAE,CAACC,YAAY,CAAC,CAACV,MAAM;EAE5E,IAAIM,kBAAkB,GAAG,CAAC,EAAE;IACxBF,KAAK,GAAGR,KAAK,CAACJ,KAAK,CAACmB,MAAM,CAACC,OAAO,CAACC,QAAQ;IAC3CR,KAAK,gBACDS,yEACIA,6CAAS,IAAIC,IAAI,CAACC,YAAY,CAACrB,MAAM,CAAC,CAACsB,MAAM,CAACX,kBAAkB,CAAC,CAAU,UAC1EV,KAAK,CAACJ,KAAK,CAACmB,MAAM,CAACC,OAAO,CAACP,KAAK,uBACjCS,6CAAS,IAAIC,IAAI,CAACC,YAAY,CAACrB,MAAM,CAAC,CAACsB,MAAM,CAACjB,MAAM,CAAC,CAAU,CAEtE;GACJ,MAAM,IACH,CAACH,SAAS,CAACqB,MAAM,CAACC,SAAS,KAC1B,CAAAC,qBAAA,GAAA5B,KAAK,CAACiB,QAAQ,EAAE,CAACY,aAAa,cAAAD,qBAAA,eAA9BA,qBAAA,CAAgCpB,MAAM;;EAClC,CAAC,CAACR,KAAK,CAACiB,QAAQ,EAAE,CAACa,YAAY,IAAI9B,KAAK,CAACM,OAAO,CAACyB,kBAAmB,CAAC,EAC5E;IACEnB,KAAK,GAAGR,KAAK,CAACJ,KAAK,CAACmB,MAAM,CAACC,OAAO,CAACY,OAAO;IAC1CnB,KAAK,gBACDS,yEACIA,6CAAS,IAAIC,IAAI,CAACC,YAAY,CAACrB,MAAM,CAAC,CAACsB,MAAM,CAAChB,aAAa,CAAC,CAAU,UACrEL,KAAK,CAACJ,KAAK,CAACmB,MAAM,CAACC,OAAO,CAACP,KAAK,uBACjCS,6CAAS,IAAIC,IAAI,CAACC,YAAY,CAACrB,MAAM,CAAC,CAACsB,MAAM,CAACjB,MAAM,CAAC,CAAU,CAEtE;GACJ,MAAM;IACHI,KAAK,GAAGR,KAAK,CAACJ,KAAK,CAACmB,MAAM,CAACC,OAAO,CAACY,OAAO;IAC1CnB,KAAK,gBAAGS,6CAAS,IAAIC,IAAI,CAACC,YAAY,CAACrB,MAAM,CAAC,CAACsB,MAAM,CAACjB,MAAM,CAAC,CAAU;;EAG3E,oBACIc;IACIW,SAAS,EAAC,+GAA+G;iBAC/G;KACTrB,KAAK,UAAQC,KAAK,CACjB;AAEd;;;;"}
|
package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js
CHANGED
@@ -29,7 +29,7 @@ function RowWithServerLoading(props) {
|
|
29
29
|
var hiddenColumns = getHiddenColumns(props.table.getState().columnVisibility);
|
30
30
|
timeout = setTimeout(function () {
|
31
31
|
var _tableMeta$server$loa, _tableMeta$server;
|
32
|
-
(_tableMeta$server$loa = (_tableMeta$server = tableMeta.server).loadPage) === null || _tableMeta$server$loa === void 0 ? void 0 : _tableMeta$server$loa.call(_tableMeta$server, pageIndex, sorting, filters, tableMeta.search.enableGlobalFilter ? search : undefined
|
32
|
+
(_tableMeta$server$loa = (_tableMeta$server = tableMeta.server).loadPage) === null || _tableMeta$server$loa === void 0 ? void 0 : _tableMeta$server$loa.call(_tableMeta$server, pageIndex, sorting, filters, hiddenColumns, tableMeta.search.enableGlobalFilter ? search : undefined);
|
33
33
|
}, DELAY_BEFORE_LOAD_MS);
|
34
34
|
}
|
35
35
|
return function () {
|
package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SkeletonRow.js","sources":["../../../../../../../../../../../src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { getHiddenColumns } from '../../../../useTableManager/util/columns';\n\nconst DELAY_BEFORE_LOAD_MS = 150;\n\nexport type RowProps<TType = unknown> = {\n index: number;\n scrollDirection: 'forward' | 'backward' | undefined;\n table: ReactTable<TType>;\n};\n\nexport function SkeletonRow<TType = unknown>(props: RowProps<TType>) {\n const { index, table } = props;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (tableMeta.server.isEnabled) {\n return <RowWithServerLoading {...props} />;\n }\n\n return <Skeleton cellsCount={table.getVisibleFlatColumns().length} index={index} />;\n}\n\nfunction RowWithServerLoading<TType = unknown>(props: RowProps<TType>) {\n const { index, table } = props;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const pageIndex = (Math.floor(index / tableMeta.server.pageSize) * tableMeta.server.pageSize) / tableMeta.server.pageSize;\n\n React.useEffect(() => {\n let timeout;\n\n if (tableMeta.server.isEnabled) {\n const sorting = props.table.getState().sorting;\n const filters = props.table.getState().columnFilters;\n const search = props.table.getState().globalFilter;\n const hiddenColumns = getHiddenColumns(props.table.getState().columnVisibility);\n\n timeout = setTimeout(() => {\n tableMeta.server.loadPage?.(\n pageIndex,\n sorting,\n filters,\n tableMeta.search.enableGlobalFilter ? search : undefined
|
1
|
+
{"version":3,"file":"SkeletonRow.js","sources":["../../../../../../../../../../../src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { getHiddenColumns } from '../../../../useTableManager/util/columns';\n\nconst DELAY_BEFORE_LOAD_MS = 150;\n\nexport type RowProps<TType = unknown> = {\n index: number;\n scrollDirection: 'forward' | 'backward' | undefined;\n table: ReactTable<TType>;\n};\n\nexport function SkeletonRow<TType = unknown>(props: RowProps<TType>) {\n const { index, table } = props;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (tableMeta.server.isEnabled) {\n return <RowWithServerLoading {...props} />;\n }\n\n return <Skeleton cellsCount={table.getVisibleFlatColumns().length} index={index} />;\n}\n\nfunction RowWithServerLoading<TType = unknown>(props: RowProps<TType>) {\n const { index, table } = props;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const pageIndex = (Math.floor(index / tableMeta.server.pageSize) * tableMeta.server.pageSize) / tableMeta.server.pageSize;\n\n React.useEffect(() => {\n let timeout;\n\n if (tableMeta.server.isEnabled) {\n const sorting = props.table.getState().sorting;\n const filters = props.table.getState().columnFilters;\n const search = props.table.getState().globalFilter;\n const hiddenColumns = getHiddenColumns(props.table.getState().columnVisibility);\n\n timeout = setTimeout(() => {\n tableMeta.server.loadPage?.(\n pageIndex,\n sorting,\n filters,\n hiddenColumns,\n tableMeta.search.enableGlobalFilter ? search : undefined\n );\n }, DELAY_BEFORE_LOAD_MS);\n }\n\n return () => {\n clearTimeout(timeout);\n };\n }, []);\n\n const groupedCellCount = table.getState()?.grouping.length ?? 0;\n const ungroupedCellCount = table.getVisibleFlatColumns().length - groupedCellCount;\n\n return <Skeleton cellsCount={ungroupedCellCount} index={index} />;\n}\n\nconst Skeleton = React.forwardRef(function Skeleton(\n props: { cellsCount: number; index: number },\n ref: React.Ref<HTMLTableRowElement>\n) {\n const { cellsCount, index } = props;\n\n return (\n <tr data-row-index={index} ref={ref}>\n {Array(cellsCount)\n .fill(null)\n .map((_, index) => (\n <td key={index}>\n <span className=\"bg-grey-100 text-grey-700 h-4 w-full text-center text-xs\" />\n </td>\n ))}\n </tr>\n );\n});\n"],"names":["DELAY_BEFORE_LOAD_MS","SkeletonRow","props","index","table","tableMeta","options","meta","server","isEnabled","React","RowWithServerLoading","Skeleton","cellsCount","getVisibleFlatColumns","length","pageIndex","Math","floor","pageSize","useEffect","timeout","sorting","getState","filters","columnFilters","search","globalFilter","hiddenColumns","getHiddenColumns","columnVisibility","setTimeout","_tableMeta$server$loa","_tableMeta$server","loadPage","call","enableGlobalFilter","undefined","clearTimeout","groupedCellCount","_table$getState$group","_table$getState","grouping","ungroupedCellCount","forwardRef","ref","Array","fill","map","_","key","className"],"mappings":"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"}
|
@@ -75,7 +75,7 @@ function Print(props) {
|
|
75
75
|
if (tableMeta.server.isEnabled && tableMeta.server.loadAllIfNeeded) {
|
76
76
|
var hiddenColumns = getHiddenColumns(table.getState().columnVisibility);
|
77
77
|
var _temp = _catch(function () {
|
78
|
-
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined
|
78
|
+
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, hiddenColumns, tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined)).then(function () {});
|
79
79
|
}, function (error) {
|
80
80
|
var errorMessage = texts.table.print.error + ": " + error;
|
81
81
|
console.error(errorMessage);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Print.js","sources":["../../../../../../../../../../../../src/primitives/Table/Core/components/Toolbar/components/Print/Print.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { IconButton } from '../../../../../../../components/IconButton/IconButton';\nimport { useLocalization } from '../../../../../../../components/Provider/Localization';\nimport { useToast } from '../../../../../../../components/Toast/Toaster';\nimport { TableRef } from '../../../../../types';\nimport { PrintDialog } from './PrintDialog';\nimport { Shortcut } from '../../../../../../../components/Shortcut/Shortcut';\nimport { getHiddenColumns } from '../../../../../useTableManager/util/columns';\n\nexport type PrintProps<TType = unknown> = {\n table: ReactTable<TType>;\n tableId: string;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Print<TType = unknown>(props: PrintProps<TType>) {\n const { table, tableId, tableRef } = props;\n const { texts } = useLocalization();\n const ref = React.useRef<HTMLButtonElement>(null);\n const lastScrollTopRef = React.useRef<number>();\n const toast = useToast();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const { allRows, orientation, size, splitGroups } = tableMeta.printing.settings;\n\n const togglePrinting = React.useCallback(\n enabled => {\n tableMeta.printing.setIsPrinting(enabled);\n\n if (tableRef.current) {\n if (enabled) {\n lastScrollTopRef.current = tableRef.current.scrollTop;\n } else if (lastScrollTopRef.current !== undefined) {\n tableRef.current.scrollTop = lastScrollTopRef.current;\n lastScrollTopRef.current = undefined;\n }\n }\n },\n [tableRef.current]\n );\n\n React.useEffect(() => {\n const afterPrint = () => {\n togglePrinting(false);\n };\n\n window.addEventListener('afterprint', afterPrint);\n\n return () => {\n window.removeEventListener('afterprint', afterPrint);\n };\n }, []);\n\n const print = async () => {\n const toastRef = toast.loading(texts.table.print.loading);\n\n if (tableMeta.server.isEnabled && tableMeta.server.loadAllIfNeeded) {\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n\n try {\n await tableMeta.server.loadAllIfNeeded(\n table.getState().sorting,\n table.getState().columnFilters,\n tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined,\n hiddenColumns\n );\n } catch (error) {\n const errorMessage = `${texts.table.print.error}: ${error}`;\n console.error(errorMessage);\n toastRef.error(errorMessage);\n }\n }\n\n // this might close immediately if the dataset is small - this is okay\n toastRef.close();\n\n // use a timeout to let the toast close, otherwise it freezes mid animation when the print dialog opens\n setTimeout(() => {\n // do this here because Safari doesn't support the beforeprint event\n togglePrinting(true);\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\n if (isSafari) {\n try {\n // Try using document.execCommand for printing in Safari\n document.execCommand('print', false, undefined);\n } catch (error) {\n // If document.execCommand fails or throws an error, fallback to window.print()\n window.print();\n }\n } else {\n // Execute window.print() for all other browsers\n window.print();\n }\n });\n });\n }, 150);\n };\n\n const printStyle = [`@page { size: ${size} ${orientation}; }`];\n\n if (!allRows) {\n printStyle.push(`table[data-taco^='table']#${tableId} tr:not([data-row-selected=\"true\"]) { display: none; }`);\n }\n\n if (splitGroups) {\n printStyle.push(`table[data-taco^='table']#${tableId} tr[data-row-group]:not(:first-child) { break-before: page; }`);\n }\n\n const shortcut = { key: 'p', meta: true, shift: false };\n const tooltip = (\n <>\n {texts.table.print.tooltip}\n <Shortcut className=\"ml-2\" keys={shortcut} />\n </>\n );\n\n return (\n <>\n <style media=\"print\">{printStyle.join('\\n')}</style>\n <IconButton\n icon=\"print\"\n aria-label={texts.table.print.tooltip}\n dialog={dialogProps => (\n <PrintDialog\n {...dialogProps}\n table={table}\n onAccept={print}\n orientation={orientation}\n setOrientation={value => tableMeta.printing.setSetting('orientation', value)}\n size={size}\n setSize={value => tableMeta.printing.setSetting('size', value)}\n allRows={allRows}\n setAllRows={value => tableMeta.printing.setSetting('allRows', value)}\n splitGroups={splitGroups}\n setSplitGroups={value => tableMeta.printing.setSetting('splitGroups', value)}\n />\n )}\n ref={ref}\n shortcut={shortcut}\n tooltip={tooltip}\n />\n </>\n );\n}\n"],"names":["Print","props","table","tableId","tableRef","_useLocalization","useLocalization","texts","ref","React","useRef","lastScrollTopRef","toast","useToast","tableMeta","options","meta","_tableMeta$printing$s","printing","settings","allRows","orientation","size","splitGroups","togglePrinting","useCallback","enabled","setIsPrinting","current","scrollTop","undefined","useEffect","afterPrint","window","addEventListener","removeEventListener","print","toastRef","close","setTimeout","requestAnimationFrame","isSafari","test","navigator","userAgent","document","execCommand","error","loading","_temp2","server","isEnabled","loadAllIfNeeded","hiddenColumns","getHiddenColumns","getState","columnVisibility","_temp","_catch","Promise","resolve","sorting","columnFilters","search","enableGlobalFilter","globalFilter","then","errorMessage","console","_temp3","e","reject","printStyle","push","shortcut","key","shift","tooltip","Shortcut","className","keys","media","join","IconButton","icon","dialog","dialogProps","PrintDialog","onAccept","setOrientation","value","setSetting","setSize","setAllRows","setSplitGroups"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Print.js","sources":["../../../../../../../../../../../../src/primitives/Table/Core/components/Toolbar/components/Print/Print.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { IconButton } from '../../../../../../../components/IconButton/IconButton';\nimport { useLocalization } from '../../../../../../../components/Provider/Localization';\nimport { useToast } from '../../../../../../../components/Toast/Toaster';\nimport { TableRef } from '../../../../../types';\nimport { PrintDialog } from './PrintDialog';\nimport { Shortcut } from '../../../../../../../components/Shortcut/Shortcut';\nimport { getHiddenColumns } from '../../../../../useTableManager/util/columns';\n\nexport type PrintProps<TType = unknown> = {\n table: ReactTable<TType>;\n tableId: string;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Print<TType = unknown>(props: PrintProps<TType>) {\n const { table, tableId, tableRef } = props;\n const { texts } = useLocalization();\n const ref = React.useRef<HTMLButtonElement>(null);\n const lastScrollTopRef = React.useRef<number>();\n const toast = useToast();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const { allRows, orientation, size, splitGroups } = tableMeta.printing.settings;\n\n const togglePrinting = React.useCallback(\n enabled => {\n tableMeta.printing.setIsPrinting(enabled);\n\n if (tableRef.current) {\n if (enabled) {\n lastScrollTopRef.current = tableRef.current.scrollTop;\n } else if (lastScrollTopRef.current !== undefined) {\n tableRef.current.scrollTop = lastScrollTopRef.current;\n lastScrollTopRef.current = undefined;\n }\n }\n },\n [tableRef.current]\n );\n\n React.useEffect(() => {\n const afterPrint = () => {\n togglePrinting(false);\n };\n\n window.addEventListener('afterprint', afterPrint);\n\n return () => {\n window.removeEventListener('afterprint', afterPrint);\n };\n }, []);\n\n const print = async () => {\n const toastRef = toast.loading(texts.table.print.loading);\n\n if (tableMeta.server.isEnabled && tableMeta.server.loadAllIfNeeded) {\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n\n try {\n await tableMeta.server.loadAllIfNeeded(\n table.getState().sorting,\n table.getState().columnFilters,\n hiddenColumns,\n tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined\n );\n } catch (error) {\n const errorMessage = `${texts.table.print.error}: ${error}`;\n console.error(errorMessage);\n toastRef.error(errorMessage);\n }\n }\n\n // this might close immediately if the dataset is small - this is okay\n toastRef.close();\n\n // use a timeout to let the toast close, otherwise it freezes mid animation when the print dialog opens\n setTimeout(() => {\n // do this here because Safari doesn't support the beforeprint event\n togglePrinting(true);\n\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n\n if (isSafari) {\n try {\n // Try using document.execCommand for printing in Safari\n document.execCommand('print', false, undefined);\n } catch (error) {\n // If document.execCommand fails or throws an error, fallback to window.print()\n window.print();\n }\n } else {\n // Execute window.print() for all other browsers\n window.print();\n }\n });\n });\n }, 150);\n };\n\n const printStyle = [`@page { size: ${size} ${orientation}; }`];\n\n if (!allRows) {\n printStyle.push(`table[data-taco^='table']#${tableId} tr:not([data-row-selected=\"true\"]) { display: none; }`);\n }\n\n if (splitGroups) {\n printStyle.push(`table[data-taco^='table']#${tableId} tr[data-row-group]:not(:first-child) { break-before: page; }`);\n }\n\n const shortcut = { key: 'p', meta: true, shift: false };\n const tooltip = (\n <>\n {texts.table.print.tooltip}\n <Shortcut className=\"ml-2\" keys={shortcut} />\n </>\n );\n\n return (\n <>\n <style media=\"print\">{printStyle.join('\\n')}</style>\n <IconButton\n icon=\"print\"\n aria-label={texts.table.print.tooltip}\n dialog={dialogProps => (\n <PrintDialog\n {...dialogProps}\n table={table}\n onAccept={print}\n orientation={orientation}\n setOrientation={value => tableMeta.printing.setSetting('orientation', value)}\n size={size}\n setSize={value => tableMeta.printing.setSetting('size', value)}\n allRows={allRows}\n setAllRows={value => tableMeta.printing.setSetting('allRows', value)}\n splitGroups={splitGroups}\n setSplitGroups={value => tableMeta.printing.setSetting('splitGroups', value)}\n />\n )}\n ref={ref}\n shortcut={shortcut}\n tooltip={tooltip}\n />\n </>\n );\n}\n"],"names":["Print","props","table","tableId","tableRef","_useLocalization","useLocalization","texts","ref","React","useRef","lastScrollTopRef","toast","useToast","tableMeta","options","meta","_tableMeta$printing$s","printing","settings","allRows","orientation","size","splitGroups","togglePrinting","useCallback","enabled","setIsPrinting","current","scrollTop","undefined","useEffect","afterPrint","window","addEventListener","removeEventListener","print","toastRef","close","setTimeout","requestAnimationFrame","isSafari","test","navigator","userAgent","document","execCommand","error","loading","_temp2","server","isEnabled","loadAllIfNeeded","hiddenColumns","getHiddenColumns","getState","columnVisibility","_temp","_catch","Promise","resolve","sorting","columnFilters","search","enableGlobalFilter","globalFilter","then","errorMessage","console","_temp3","e","reject","printStyle","push","shortcut","key","shift","tooltip","Shortcut","className","keys","media","join","IconButton","icon","dialog","dialogProps","PrintDialog","onAccept","setOrientation","value","setSetting","setSize","setAllRows","setSplitGroups"],"mappings":"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"}
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import React__default from 'react';
|
2
2
|
import { useLocalization } from '../../../../../../../components/Provider/Localization.js';
|
3
3
|
import { Switch } from '../../../../../../../components/Switch/Switch.js';
|
4
|
-
import { TableServerLoadAllState } from '../../../../../types.js';
|
5
4
|
import { getHiddenColumns } from '../../../../../useTableManager/util/columns.js';
|
6
5
|
import { SearchInput2 } from '../../../../../../../components/SearchInput2/SearchInput2.js';
|
7
6
|
|
@@ -31,9 +30,9 @@ function Search(props) {
|
|
31
30
|
var _temp = function () {
|
32
31
|
if (tableMeta.server.loadAllIfNeeded && !tableMeta.server._experimentalDataLoader2) {
|
33
32
|
// don't pass the search query because we need all data - not filtered data
|
34
|
-
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters,
|
33
|
+
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, hiddenColumns,
|
35
34
|
// the old data loader doesn't have server side search
|
36
|
-
undefined
|
35
|
+
undefined)).then(function () {});
|
37
36
|
}
|
38
37
|
}();
|
39
38
|
// load all data if that is possible
|
@@ -116,7 +115,7 @@ function Search(props) {
|
|
116
115
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(SearchInput2, {
|
117
116
|
findCurrent: tableMeta.search.currentHighlightColumnIndex !== undefined ? tableMeta.search.currentHighlightColumnIndex + 1 : null,
|
118
117
|
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,
|
119
|
-
loading: tableMeta.server._experimentalDataLoader2 ? loading : tableMeta.server.
|
118
|
+
loading: tableMeta.server._experimentalDataLoader2 ? loading : tableMeta.server.loading,
|
120
119
|
name: "table-search",
|
121
120
|
onClickFindPrevious: handlePreviousResult,
|
122
121
|
onClickFindNext: handleNextResult,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Search.js","sources":["../../../../../../../../../../../../src/primitives/Table/Core/components/Toolbar/components/Search/Search.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../../../components/Provider/Localization';\nimport { SearchInput2 } from '../../../../../../../components/SearchInput2/SearchInput2';\nimport { Switch } from '../../../../../../../components/Switch/Switch';\nimport { TableRef, TableServerLoadAllState } from '../../../../../types';\nimport { getHiddenColumns } from '../../../../../useTableManager/util/columns';\n\ntype SearchProps<TType = unknown> = {\n scrollToIndex: any;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Search<TType = unknown>(props: SearchProps<TType>) {\n const { scrollToIndex, table, tableRef } = props;\n const { texts } = useLocalization();\n const ref = React.useRef<HTMLInputElement>(null);\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const query = table.getState().globalFilter;\n const scrollTo = (rowIndex: number) => scrollToIndex(rowIndex, { align: 'center' });\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n\n React.useEffect(() => {\n if (tableMeta.search.highlightedColumnIndexes.length) {\n scrollTo(tableMeta.search.highlightedColumnIndexes[0][0]);\n }\n }, [tableMeta.search.highlightedColumnIndexes.length]);\n\n const handleFocus = async () => {\n // load all data if that is possible\n if (tableMeta.server.loadAllIfNeeded && !tableMeta.server._experimentalDataLoader2) {\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAllIfNeeded(\n table.getState().sorting,\n table.getState().columnFilters,\n // the old data loader doesn't have server side search\n undefined,\n hiddenColumns\n );\n }\n };\n\n const [loading, setLoading] = React.useState(false);\n\n const searchTimeoutRef = React.useRef<NodeJS.Timeout>();\n\n const handleChange = (query: any) => {\n table.setGlobalFilter(String(query ?? ''));\n\n if (tableMeta.search.enableGlobalFilter && tableMeta.search.handleSearch) {\n clearTimeout(searchTimeoutRef.current);\n searchTimeoutRef.current = setTimeout(() => {\n setLoading(true);\n tableMeta.search.handleSearch?.(query, hiddenColumns).then(() => {\n setLoading(false);\n });\n }, 150);\n }\n };\n\n const handleToggleExcludeUnmatchedResults = (enabled: boolean) => {\n tableMeta.search.setEnableGlobalFilter(enabled, table);\n requestAnimationFrame(() => ref.current?.focus());\n\n if (tableMeta.search.handleSearch) {\n setLoading(true);\n tableMeta.search.handleSearch(enabled ? query : undefined, hiddenColumns).then(() => {\n setLoading(false);\n });\n }\n };\n\n const handleNextResult = () => {\n if (!tableMeta.search.highlightedColumnIndexes.length) {\n return;\n }\n\n const nextIndex =\n tableMeta.search.currentHighlightColumnIndex === undefined ||\n tableMeta.search.currentHighlightColumnIndex === tableMeta.search.highlightedColumnIndexes.length - 1\n ? 0\n : tableMeta.search.currentHighlightColumnIndex + 1;\n\n tableMeta.search.setCurrentHighlightColumnIndex(nextIndex);\n // we scroll to the row here, the cell scrolls itself into view\n scrollTo(tableMeta.search.highlightedColumnIndexes[nextIndex][0]);\n };\n\n const handlePreviousResult = () => {\n if (!tableMeta.search.highlightedColumnIndexes.length) {\n return;\n }\n\n const nextIndex =\n tableMeta.search.currentHighlightColumnIndex === undefined\n ? 0\n : tableMeta.search.currentHighlightColumnIndex === 0\n ? tableMeta.search.highlightedColumnIndexes.length - 1\n : tableMeta.search.currentHighlightColumnIndex - 1;\n\n tableMeta.search.setCurrentHighlightColumnIndex(nextIndex);\n // we scroll to the row here, the cell scrolls itself into view\n scrollTo(tableMeta.search.highlightedColumnIndexes[nextIndex][0]);\n };\n\n const settings = (\n <Switch\n label={texts.table.search.excludeUnmatchedResults}\n checked={!!table.options.enableGlobalFilter}\n onChange={handleToggleExcludeUnmatchedResults}\n />\n );\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Escape' && tableMeta.search.currentHighlightColumnIndex !== undefined) {\n const [rowIndex, cellIndex] = tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex];\n\n if (rowIndex !== undefined && cellIndex !== undefined) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n `tbody > tr[data-row-index=\"${rowIndex}\"] > td[data-cell-index=\"${cellIndex}\"]`\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n }\n };\n\n return (\n <>\n <SearchInput2\n findCurrent={\n tableMeta.search.currentHighlightColumnIndex !== undefined\n ? tableMeta.search.currentHighlightColumnIndex + 1\n : null\n }\n findTotal={tableMeta.search.highlightedColumnIndexes?.length ?? null}\n loading={\n tableMeta.server._experimentalDataLoader2\n ? loading\n : tableMeta.server.loadAllStatus === TableServerLoadAllState.Loading\n }\n name=\"table-search\"\n onClickFindPrevious={handlePreviousResult}\n onClickFindNext={handleNextResult}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={texts.table.search.placeholder}\n settingsContent={settings}\n ref={ref}\n shortcut={{ key: 'f', meta: true, shift: false }}\n showTotal={!tableMeta.server._experimentalDataLoader2}\n value={query}\n />\n </>\n );\n}\n"],"names":["Search","props","scrollToIndex","table","tableRef","_useLocalization","useLocalization","texts","ref","React","useRef","tableMeta","options","meta","query","getState","globalFilter","scrollTo","rowIndex","align","hiddenColumns","getHiddenColumns","columnVisibility","useEffect","search","highlightedColumnIndexes","length","handleFocus","server","loadAllIfNeeded","_experimentalDataLoader2","Promise","resolve","sorting","columnFilters","undefined","then","_temp","e","reject","_React$useState","useState","loading","setLoading","searchTimeoutRef","handleChange","setGlobalFilter","String","enableGlobalFilter","handleSearch","clearTimeout","current","setTimeout","_tableMeta$search$han","_tableMeta$search","call","handleToggleExcludeUnmatchedResults","enabled","setEnableGlobalFilter","requestAnimationFrame","_ref$current","focus","handleNextResult","nextIndex","currentHighlightColumnIndex","setCurrentHighlightColumnIndex","handlePreviousResult","settings","Switch","label","excludeUnmatchedResults","checked","onChange","handleKeyDown","event","key","_tableMeta$search$hig","cellIndex","rowActive","setRowActiveIndex","cell","_tableRef$current","querySelector","_cell$focus","SearchInput2","findCurrent","findTotal","_tableMeta$search$hig2","_tableMeta$search$hig3","loadAllStatus","TableServerLoadAllState","Loading","name","onClickFindPrevious","onClickFindNext","onFocus","onKeyDown","placeholder","settingsContent","shortcut","shift","showTotal","value"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Search.js","sources":["../../../../../../../../../../../../src/primitives/Table/Core/components/Toolbar/components/Search/Search.tsx"],"sourcesContent":["import React from 'react';\nimport { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport { useLocalization } from '../../../../../../../components/Provider/Localization';\nimport { SearchInput2 } from '../../../../../../../components/SearchInput2/SearchInput2';\nimport { Switch } from '../../../../../../../components/Switch/Switch';\nimport { TableRef } from '../../../../../types';\nimport { getHiddenColumns } from '../../../../../useTableManager/util/columns';\n\ntype SearchProps<TType = unknown> = {\n scrollToIndex: any;\n table: ReactTable<TType>;\n tableRef: React.RefObject<TableRef>;\n};\n\nexport function Search<TType = unknown>(props: SearchProps<TType>) {\n const { scrollToIndex, table, tableRef } = props;\n const { texts } = useLocalization();\n const ref = React.useRef<HTMLInputElement>(null);\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const query = table.getState().globalFilter;\n const scrollTo = (rowIndex: number) => scrollToIndex(rowIndex, { align: 'center' });\n const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);\n\n React.useEffect(() => {\n if (tableMeta.search.highlightedColumnIndexes.length) {\n scrollTo(tableMeta.search.highlightedColumnIndexes[0][0]);\n }\n }, [tableMeta.search.highlightedColumnIndexes.length]);\n\n const handleFocus = async () => {\n // load all data if that is possible\n if (tableMeta.server.loadAllIfNeeded && !tableMeta.server._experimentalDataLoader2) {\n // don't pass the search query because we need all data - not filtered data\n await tableMeta.server.loadAllIfNeeded(\n table.getState().sorting,\n table.getState().columnFilters,\n hiddenColumns,\n // the old data loader doesn't have server side search\n undefined\n );\n }\n };\n\n const [loading, setLoading] = React.useState(false);\n\n const searchTimeoutRef = React.useRef<NodeJS.Timeout>();\n\n const handleChange = (query: any) => {\n table.setGlobalFilter(String(query ?? ''));\n\n if (tableMeta.search.enableGlobalFilter && tableMeta.search.handleSearch) {\n clearTimeout(searchTimeoutRef.current);\n searchTimeoutRef.current = setTimeout(() => {\n setLoading(true);\n tableMeta.search.handleSearch?.(query, hiddenColumns).then(() => {\n setLoading(false);\n });\n }, 150);\n }\n };\n\n const handleToggleExcludeUnmatchedResults = (enabled: boolean) => {\n tableMeta.search.setEnableGlobalFilter(enabled, table);\n requestAnimationFrame(() => ref.current?.focus());\n\n if (tableMeta.search.handleSearch) {\n setLoading(true);\n tableMeta.search.handleSearch(enabled ? query : undefined, hiddenColumns).then(() => {\n setLoading(false);\n });\n }\n };\n\n const handleNextResult = () => {\n if (!tableMeta.search.highlightedColumnIndexes.length) {\n return;\n }\n\n const nextIndex =\n tableMeta.search.currentHighlightColumnIndex === undefined ||\n tableMeta.search.currentHighlightColumnIndex === tableMeta.search.highlightedColumnIndexes.length - 1\n ? 0\n : tableMeta.search.currentHighlightColumnIndex + 1;\n\n tableMeta.search.setCurrentHighlightColumnIndex(nextIndex);\n // we scroll to the row here, the cell scrolls itself into view\n scrollTo(tableMeta.search.highlightedColumnIndexes[nextIndex][0]);\n };\n\n const handlePreviousResult = () => {\n if (!tableMeta.search.highlightedColumnIndexes.length) {\n return;\n }\n\n const nextIndex =\n tableMeta.search.currentHighlightColumnIndex === undefined\n ? 0\n : tableMeta.search.currentHighlightColumnIndex === 0\n ? tableMeta.search.highlightedColumnIndexes.length - 1\n : tableMeta.search.currentHighlightColumnIndex - 1;\n\n tableMeta.search.setCurrentHighlightColumnIndex(nextIndex);\n // we scroll to the row here, the cell scrolls itself into view\n scrollTo(tableMeta.search.highlightedColumnIndexes[nextIndex][0]);\n };\n\n const settings = (\n <Switch\n label={texts.table.search.excludeUnmatchedResults}\n checked={!!table.options.enableGlobalFilter}\n onChange={handleToggleExcludeUnmatchedResults}\n />\n );\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Escape' && tableMeta.search.currentHighlightColumnIndex !== undefined) {\n const [rowIndex, cellIndex] = tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex];\n\n if (rowIndex !== undefined && cellIndex !== undefined) {\n tableMeta.rowActive.setRowActiveIndex(rowIndex);\n\n requestAnimationFrame(() => {\n const cell = tableRef.current?.querySelector(\n `tbody > tr[data-row-index=\"${rowIndex}\"] > td[data-cell-index=\"${cellIndex}\"]`\n );\n\n if (cell) {\n (cell as HTMLElement).focus?.();\n }\n });\n }\n }\n };\n\n return (\n <>\n <SearchInput2\n findCurrent={\n tableMeta.search.currentHighlightColumnIndex !== undefined\n ? tableMeta.search.currentHighlightColumnIndex + 1\n : null\n }\n findTotal={tableMeta.search.highlightedColumnIndexes?.length ?? null}\n loading={tableMeta.server._experimentalDataLoader2 ? loading : tableMeta.server.loading}\n name=\"table-search\"\n onClickFindPrevious={handlePreviousResult}\n onClickFindNext={handleNextResult}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n placeholder={texts.table.search.placeholder}\n settingsContent={settings}\n ref={ref}\n shortcut={{ key: 'f', meta: true, shift: false }}\n showTotal={!tableMeta.server._experimentalDataLoader2}\n value={query}\n />\n </>\n );\n}\n"],"names":["Search","props","scrollToIndex","table","tableRef","_useLocalization","useLocalization","texts","ref","React","useRef","tableMeta","options","meta","query","getState","globalFilter","scrollTo","rowIndex","align","hiddenColumns","getHiddenColumns","columnVisibility","useEffect","search","highlightedColumnIndexes","length","handleFocus","server","loadAllIfNeeded","_experimentalDataLoader2","Promise","resolve","sorting","columnFilters","undefined","then","_temp","e","reject","_React$useState","useState","loading","setLoading","searchTimeoutRef","handleChange","setGlobalFilter","String","enableGlobalFilter","handleSearch","clearTimeout","current","setTimeout","_tableMeta$search$han","_tableMeta$search","call","handleToggleExcludeUnmatchedResults","enabled","setEnableGlobalFilter","requestAnimationFrame","_ref$current","focus","handleNextResult","nextIndex","currentHighlightColumnIndex","setCurrentHighlightColumnIndex","handlePreviousResult","settings","Switch","label","excludeUnmatchedResults","checked","onChange","handleKeyDown","event","key","_tableMeta$search$hig","cellIndex","rowActive","setRowActiveIndex","cell","_tableRef$current","querySelector","_cell$focus","SearchInput2","findCurrent","findTotal","_tableMeta$search$hig2","_tableMeta$search$hig3","name","onClickFindPrevious","onClickFindNext","onFocus","onKeyDown","placeholder","settingsContent","shortcut","shift","showTotal","value"],"mappings":"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"}
|
package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableGlobalShortcuts.js
CHANGED
@@ -23,7 +23,7 @@ function useTableGlobalShortcuts(table, tableRef, scrollToIndex) {
|
|
23
23
|
};
|
24
24
|
},
|
25
25
|
// scrollToIndex function changes when row count changes, so it is important to update handlers
|
26
|
-
[tableRef.current, tableMeta.rowActive.rowActiveIndex, scrollToIndex]);
|
26
|
+
[tableRef.current, tableMeta.length, tableMeta.rowActive.rowActiveIndex, scrollToIndex]);
|
27
27
|
}
|
28
28
|
|
29
29
|
export { useTableGlobalShortcuts };
|