@economic/taco 2.1.3 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/Provider/Localization.d.ts +7 -0
- package/dist/components/Table3/components/toolbar/PrintButton/WarningDialog.d.ts +8 -0
- package/dist/components/Table3/hooks/features/usePrinting.d.ts +4 -1
- package/dist/components/Table3/types.d.ts +8 -0
- package/dist/esm/packages/taco/src/components/Provider/Localization.js +8 -1
- package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintButton.js +48 -6
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/PrintButton.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/WarningDialog.js +56 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/WarningDialog.js.map +1 -0
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.js +2 -2
- package/dist/esm/packages/taco/src/components/Table3/components/toolbar/PrintButton/hooks/useParentStylesheets.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePrinting.js +7 -2
- package/dist/esm/packages/taco/src/components/Table3/hooks/features/usePrinting.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js +2 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/listeners/useSettingsStateListener.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js +9 -9
- package/dist/esm/packages/taco/src/components/Table3/hooks/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/types.js.map +1 -1
- package/dist/esm/packages/taco/src/utils/keyboard.js +11 -11
- package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -1
- package/dist/taco.cjs.development.js +130 -32
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +2 -2
- package/types.json +6075 -5317
@@ -28,7 +28,7 @@ import { useEditingStateListener } from './listeners/useEditingStateListener.js'
|
|
28
28
|
import { useSearch } from './features/useSearch.js';
|
29
29
|
|
30
30
|
function useTable(props) {
|
31
|
-
var _ref, _props$defaultSetting, _props$defaultSetting2, _props$defaultSetting3, _props$defaultSetting4, _props$defaultSetting5, _props$defaultSetting6, _props$defaultSetting7, _props$defaultSetting8, _props$length;
|
31
|
+
var _ref, _props$defaultSetting, _props$defaultSetting2, _props$defaultSetting3, _props$defaultSetting4, _props$defaultSetting5, _props$defaultSetting6, _props$defaultSetting7, _props$defaultSetting8, _props$defaultSetting9, _props$length;
|
32
32
|
// options
|
33
33
|
const options = useTablePreset(props);
|
34
34
|
const tableOptions = {
|
@@ -84,15 +84,15 @@ function useTable(props) {
|
|
84
84
|
const editing = useEditing(options.enableEditing, props.onSave);
|
85
85
|
const fontSize = useFontSize(options.enableFontSize, (_props$defaultSetting4 = props.defaultSettings) === null || _props$defaultSetting4 === void 0 ? void 0 : _props$defaultSetting4.fontSize);
|
86
86
|
const hoverState = usePauseHoverState();
|
87
|
-
const printing = usePrinting(options.enablePrinting, props.loadAll);
|
87
|
+
const printing = usePrinting(options.enablePrinting, props.loadAll, (_props$defaultSetting5 = props.defaultSettings) === null || _props$defaultSetting5 === void 0 ? void 0 : _props$defaultSetting5.showWarningWhenPrintingLargeDataset);
|
88
88
|
const rowClick = useRowClick(props.onRowClick);
|
89
89
|
const rowDrag = useRowDrag(options.enableRowDrag);
|
90
90
|
const rowDrop = useRowDrop(options.enableRowDrop, props.onRowDrop);
|
91
91
|
const rowGoto = useRowGoto(options.enableRowGoto, props.onRowGoto);
|
92
92
|
const rowHeight = useRowHeight(options.enableRowHeight, // temporarily see if deprecated rowDensity is there
|
93
|
-
(_props$
|
93
|
+
(_props$defaultSetting6 = (_props$defaultSetting7 = props.defaultSettings) === null || _props$defaultSetting7 === void 0 ? void 0 : _props$defaultSetting7.rowHeight) !== null && _props$defaultSetting6 !== void 0 ? _props$defaultSetting6 : (_props$defaultSetting8 = props.defaultSettings) === null || _props$defaultSetting8 === void 0 ? void 0 : _props$defaultSetting8.rowDensity);
|
94
94
|
const rowSelection = useRowSelection();
|
95
|
-
const search = useSearch(options.enableSearch, (_props$
|
95
|
+
const search = useSearch(options.enableSearch, (_props$defaultSetting9 = props.defaultSettings) === null || _props$defaultSetting9 === void 0 ? void 0 : _props$defaultSetting9.excludeUnmatchedRecordsInSearch, props.loadAll);
|
96
96
|
// columns
|
97
97
|
const {
|
98
98
|
columns,
|
@@ -102,13 +102,13 @@ function useTable(props) {
|
|
102
102
|
} = useConvertChildrenToColumns(props, options, editing);
|
103
103
|
// built-in features
|
104
104
|
const initialState = React__default.useMemo(() => {
|
105
|
-
var _props$
|
105
|
+
var _props$defaultSetting10, _props$defaultSetting11, _props$defaultSetting12, _props$defaultSetting13, _props$defaultSetting14, _props$defaultSetting15, _props$defaultSetting16;
|
106
106
|
const sanitizeSortedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);
|
107
107
|
return {
|
108
|
-
columnOrder: ensureOrdering(columns, (_props$
|
109
|
-
columnSizing: (_props$
|
110
|
-
columnVisibility: (_props$
|
111
|
-
sorting: (_props$
|
108
|
+
columnOrder: ensureOrdering(columns, (_props$defaultSetting10 = props.defaultSettings) === null || _props$defaultSetting10 === void 0 ? void 0 : _props$defaultSetting10.columnOrder),
|
109
|
+
columnSizing: (_props$defaultSetting11 = (_props$defaultSetting12 = props.defaultSettings) === null || _props$defaultSetting12 === void 0 ? void 0 : _props$defaultSetting12.columnSizing) !== null && _props$defaultSetting11 !== void 0 ? _props$defaultSetting11 : defaultColumnSizing,
|
110
|
+
columnVisibility: (_props$defaultSetting13 = (_props$defaultSetting14 = props.defaultSettings) === null || _props$defaultSetting14 === void 0 ? void 0 : _props$defaultSetting14.columnVisibility) !== null && _props$defaultSetting13 !== void 0 ? _props$defaultSetting13 : defaultColumnVisibility,
|
111
|
+
sorting: (_props$defaultSetting15 = props.defaultSettings) !== null && _props$defaultSetting15 !== void 0 && _props$defaultSetting15.sorting ? (_props$defaultSetting16 = props.defaultSettings) === null || _props$defaultSetting16 === void 0 ? void 0 : _props$defaultSetting16.sorting.filter(sanitizeSortedColumns) : defaultSorting
|
112
112
|
};
|
113
113
|
}, []);
|
114
114
|
const table = useReactTable({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useTable.js","sources":["../../../../../../../../src/components/Table3/hooks/useTable.tsx"],"sourcesContent":["import React from 'react';\nimport {\n getCoreRowModel,\n useReactTable,\n Row as RTRow,\n RowData,\n TableOptions as RTableOptions,\n TableState,\n getSortedRowModel,\n getFilteredRowModel,\n} from '@tanstack/react-table';\nimport {\n Table3ColumnAlignment,\n Table3ColumnRenderer,\n Table3Props,\n Table3ColumnHeaderMenu,\n Table3ColumnControlRenderer,\n Table3ColumnDataType,\n Table3ColumnClassNameHandler,\n Table3ColumnFooterRenderer,\n TableStrategy,\n} from '../types';\nimport { useCurrentRow } from './features/useCurrentRow';\nimport { usePauseHoverState } from './features/usePauseHoverState';\nimport { useTablePreset } from './useTablePreset';\nimport { useRowHeight } from './features/useRowHeight';\nimport { useFontSize } from './features/useFontSize';\nimport { useRowSelectionListener } from './listeners/useRowSelectionListener';\nimport { useRowDrag } from './features/useRowDrag';\nimport { useSettingsStateListener } from './listeners/useSettingsStateListener';\nimport { columnFilterFn, globalFilterFn } from '../util/filtering';\nimport { useSortingStateListener } from './listeners/useSortingStateListener';\nimport { useFilteringStateListener } from './listeners/useFilteringStateListener';\nimport { useCurrentRowListener } from './listeners/useCurrentRowListener';\nimport { useColumnFreezing } from './features/useColumnFreezing';\nimport { useRowSelection } from './features/useRowSelection';\nimport { useRowClick } from './features/useRowClick';\nimport { useSearchStateListener } from './listeners/useSearchStateListener';\nimport { ensureOrdering, useColumnOrdering } from './features/useColumnOrdering';\nimport { useRowDrop } from './features/useRowDrop';\nimport { useConvertChildrenToColumns } from './useConvertChildrenToColumns';\nimport { useEditing } from './features/useEditing';\nimport { usePrinting } from './features/usePrinting';\nimport { useShortcutsListener } from './listeners/useShortcutsListener';\nimport { useRowGoto } from './features/useRowGoto';\nimport { useServerLoadingListener } from './listeners/useServerLoadingListener';\nimport { useEditingStateListener } from './listeners/useEditingStateListener';\nimport { useSearch } from './features/useSearch';\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useColumnFreezing>;\n columnOrdering: ReturnType<typeof useColumnOrdering>;\n currentRow: ReturnType<typeof useCurrentRow>;\n editing: ReturnType<typeof useEditing>;\n fontSize: ReturnType<typeof useFontSize>;\n hoverState: ReturnType<typeof usePauseHoverState>;\n isUsingServer: boolean;\n printing: ReturnType<typeof usePrinting>;\n rowClick: ReturnType<typeof useRowClick>;\n rowDrag: ReturnType<typeof useRowDrag>;\n rowDrop: ReturnType<typeof useRowDrop>;\n rowGoto: ReturnType<typeof useRowGoto>;\n rowHeight: ReturnType<typeof useRowHeight>;\n rowSelection: ReturnType<typeof useRowSelection>;\n search: ReturnType<typeof useSearch>;\n }\n\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: Table3ColumnAlignment;\n // @ts-expect-error -- we ignore it because it conflicts with Table2 also overridding ColumnMeta\n className?: Table3ColumnClassNameHandler<TData>;\n // @ts-expect-error -- we ignore it because it conflicts with Table2 also overridding ColumnMeta\n control?: Table3ColumnControlRenderer<TData>;\n dataType?: Table3ColumnDataType;\n // @ts-expect-error -- we ignore it because it conflicts with Table2 also overridding ColumnMeta\n defaultWidth?: number;\n enableOrdering: boolean;\n enableSearch: boolean;\n enableTruncate: boolean;\n footer?: Table3ColumnFooterRenderer;\n header: string;\n headerClassName?: string;\n menu?: Table3ColumnHeaderMenu;\n renderer?: Table3ColumnRenderer<TValue, TData>;\n tooltip?: string;\n }\n\n interface CellContext<TData extends RowData, TValue> {\n index: number;\n tableRef: React.RefObject<HTMLDivElement>;\n }\n\n interface HeaderContext<TData extends RowData, TValue> {\n scrollToIndex: TableStrategy['scrollToIndex'];\n }\n}\n\nexport function useTable<TType = unknown>(props: Table3Props<TType>) {\n // options\n const options = useTablePreset(props);\n\n const tableOptions: Partial<RTableOptions<TType>> = {\n enableColumnFilters: options.enableFiltering,\n enableColumnResizing: options.enableColumnResizing,\n enableExpanding: options.enableRowExpansion,\n enableGlobalFilter: options.enableSearch,\n enableHiding: options.enableColumnHiding,\n enableRowSelection: options.enableRowSelection,\n enableMultiRowSelection: !options.enableRowSelectionSingle,\n enableSorting: options.enableSorting,\n };\n\n // resizing\n if (tableOptions.enableColumnResizing) {\n tableOptions.columnResizeMode = 'onChange';\n }\n\n // filtering\n if (tableOptions.enableColumnFilters) {\n if (props.onFilter) {\n tableOptions.manualFiltering = true;\n // onFilter is called as a listener to let the consumer update their data, so we don't use onColumnFiltersChange\n } else {\n tableOptions.filterFns = {\n tacoFilter: (row: RTRow<TType>, columnId: string, filter: any) => columnFilterFn(row.getValue(columnId), filter),\n };\n tableOptions.getFilteredRowModel = getFilteredRowModel();\n }\n }\n\n // search\n if (tableOptions.enableGlobalFilter) {\n if (props.onSearch) {\n tableOptions.manualFiltering = true;\n // onSearch is called as a listener to let the consumer update their data, so we don't use onColumnFiltersChange\n } else {\n tableOptions.globalFilterFn = (row: RTRow<TType>, columnId: string, searchQuery: string) =>\n globalFilterFn(row.getValue(columnId), searchQuery);\n tableOptions.getFilteredRowModel = getFilteredRowModel();\n }\n }\n\n // sorting\n if (options.enableSorting) {\n if (props.onSort) {\n tableOptions.manualSorting = true;\n // onSort is called as a listener to let the consumer update their data, so we don't use onSortingChange\n } else {\n tableOptions.getSortedRowModel = getSortedRowModel();\n }\n }\n\n // custom features\n const columnFreezing = useColumnFreezing(\n // temporarily see if deprecated frozenColumnCount is there\n props.defaultSettings?.columnFreezingIndex ??\n (props.defaultSettings as any)?.frozenColumnCount ??\n props.defaultColumnFreezingIndex,\n options\n );\n const columnOrdering = useColumnOrdering(options);\n const currentRow = useCurrentRow(props.defaultCurrentRowIndex);\n const editing = useEditing(options.enableEditing, props.onSave);\n const fontSize = useFontSize(options.enableFontSize, props.defaultSettings?.fontSize);\n const hoverState = usePauseHoverState();\n const printing = usePrinting(options.enablePrinting, props.loadAll);\n const rowClick = useRowClick<TType>(props.onRowClick);\n const rowDrag = useRowDrag(options.enableRowDrag);\n const rowDrop = useRowDrop(options.enableRowDrop, props.onRowDrop);\n const rowGoto = useRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowHeight = useRowHeight(\n options.enableRowHeight,\n // temporarily see if deprecated rowDensity is there\n props.defaultSettings?.rowHeight ?? (props.defaultSettings as any)?.rowDensity\n );\n const rowSelection = useRowSelection();\n const search = useSearch(options.enableSearch, props.defaultSettings?.excludeUnmatchedRecordsInSearch, props.loadAll);\n\n // columns\n const { columns, defaultColumnSizing, defaultColumnVisibility, defaultSorting } = useConvertChildrenToColumns<TType>(\n props,\n options,\n editing\n );\n\n // built-in features\n const initialState: Partial<TableState> = React.useMemo(() => {\n const sanitizeSortedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);\n\n return {\n columnOrder: ensureOrdering<TType>(columns, props.defaultSettings?.columnOrder),\n columnSizing: props.defaultSettings?.columnSizing ?? defaultColumnSizing,\n columnVisibility: props.defaultSettings?.columnVisibility ?? defaultColumnVisibility,\n sorting: props.defaultSettings?.sorting\n ? props.defaultSettings?.sorting.filter(sanitizeSortedColumns)\n : defaultSorting,\n };\n }, []);\n\n const table = useReactTable<TType>({\n data: props.data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n initialState,\n ...tableOptions,\n //debugAll: true,\n meta: {\n columnFreezing,\n columnOrdering,\n currentRow,\n editing,\n fontSize,\n hoverState,\n isUsingServer: !!props.loadPage,\n printing,\n rowClick: rowClick as any,\n rowDrag,\n rowDrop,\n rowGoto,\n rowHeight,\n rowSelection,\n search,\n },\n });\n\n // listeners\n useCurrentRowListener(table);\n useEditingStateListener(table);\n useFilteringStateListener(table, props.onFilter);\n useRowSelectionListener(table, props.onRowSelect);\n useSearchStateListener(table, props.onSearch);\n useSettingsStateListener(table, props.onChangeSettings);\n useShortcutsListener(table, props.shortcuts);\n useServerLoadingListener(table, props.loadPage);\n useSortingStateListener(table, props.onSort);\n\n return { table, length: props.length ?? props.data.length };\n}\n"],"names":["useTable","props","options","useTablePreset","tableOptions","enableColumnFilters","enableFiltering","enableColumnResizing","enableExpanding","enableRowExpansion","enableGlobalFilter","enableSearch","enableHiding","enableColumnHiding","enableRowSelection","enableMultiRowSelection","enableRowSelectionSingle","enableSorting","columnResizeMode","onFilter","manualFiltering","filterFns","tacoFilter","row","columnId","filter","columnFilterFn","getValue","getFilteredRowModel","onSearch","globalFilterFn","searchQuery","onSort","manualSorting","getSortedRowModel","columnFreezing","useColumnFreezing","defaultSettings","columnFreezingIndex","frozenColumnCount","defaultColumnFreezingIndex","columnOrdering","useColumnOrdering","currentRow","useCurrentRow","defaultCurrentRowIndex","editing","useEditing","enableEditing","onSave","fontSize","useFontSize","enableFontSize","hoverState","usePauseHoverState","printing","usePrinting","enablePrinting","loadAll","rowClick","useRowClick","onRowClick","rowDrag","useRowDrag","enableRowDrag","rowDrop","useRowDrop","enableRowDrop","onRowDrop","rowGoto","useRowGoto","enableRowGoto","onRowGoto","rowHeight","useRowHeight","enableRowHeight","rowDensity","rowSelection","useRowSelection","search","useSearch","excludeUnmatchedRecordsInSearch","columns","defaultColumnSizing","defaultColumnVisibility","defaultSorting","useConvertChildrenToColumns","initialState","React","useMemo","sanitizeSortedColumns","column","find","definedColumn","id","columnOrder","ensureOrdering","columnSizing","columnVisibility","sorting","table","useReactTable","data","getCoreRowModel","meta","isUsingServer","loadPage","useCurrentRowListener","useEditingStateListener","useFilteringStateListener","useRowSelectionListener","onRowSelect","useSearchStateListener","useSettingsStateListener","onChangeSettings","useShortcutsListener","shortcuts","useServerLoadingListener","useSortingStateListener","length"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"useTable.js","sources":["../../../../../../../../src/components/Table3/hooks/useTable.tsx"],"sourcesContent":["import React from 'react';\nimport {\n getCoreRowModel,\n useReactTable,\n Row as RTRow,\n RowData,\n TableOptions as RTableOptions,\n TableState,\n getSortedRowModel,\n getFilteredRowModel,\n} from '@tanstack/react-table';\nimport {\n Table3ColumnAlignment,\n Table3ColumnRenderer,\n Table3Props,\n Table3ColumnHeaderMenu,\n Table3ColumnControlRenderer,\n Table3ColumnDataType,\n Table3ColumnClassNameHandler,\n Table3ColumnFooterRenderer,\n TableStrategy,\n} from '../types';\nimport { useCurrentRow } from './features/useCurrentRow';\nimport { usePauseHoverState } from './features/usePauseHoverState';\nimport { useTablePreset } from './useTablePreset';\nimport { useRowHeight } from './features/useRowHeight';\nimport { useFontSize } from './features/useFontSize';\nimport { useRowSelectionListener } from './listeners/useRowSelectionListener';\nimport { useRowDrag } from './features/useRowDrag';\nimport { useSettingsStateListener } from './listeners/useSettingsStateListener';\nimport { columnFilterFn, globalFilterFn } from '../util/filtering';\nimport { useSortingStateListener } from './listeners/useSortingStateListener';\nimport { useFilteringStateListener } from './listeners/useFilteringStateListener';\nimport { useCurrentRowListener } from './listeners/useCurrentRowListener';\nimport { useColumnFreezing } from './features/useColumnFreezing';\nimport { useRowSelection } from './features/useRowSelection';\nimport { useRowClick } from './features/useRowClick';\nimport { useSearchStateListener } from './listeners/useSearchStateListener';\nimport { ensureOrdering, useColumnOrdering } from './features/useColumnOrdering';\nimport { useRowDrop } from './features/useRowDrop';\nimport { useConvertChildrenToColumns } from './useConvertChildrenToColumns';\nimport { useEditing } from './features/useEditing';\nimport { usePrinting } from './features/usePrinting';\nimport { useShortcutsListener } from './listeners/useShortcutsListener';\nimport { useRowGoto } from './features/useRowGoto';\nimport { useServerLoadingListener } from './listeners/useServerLoadingListener';\nimport { useEditingStateListener } from './listeners/useEditingStateListener';\nimport { useSearch } from './features/useSearch';\n\ndeclare module '@tanstack/table-core' {\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useColumnFreezing>;\n columnOrdering: ReturnType<typeof useColumnOrdering>;\n currentRow: ReturnType<typeof useCurrentRow>;\n editing: ReturnType<typeof useEditing>;\n fontSize: ReturnType<typeof useFontSize>;\n hoverState: ReturnType<typeof usePauseHoverState>;\n isUsingServer: boolean;\n printing: ReturnType<typeof usePrinting>;\n rowClick: ReturnType<typeof useRowClick>;\n rowDrag: ReturnType<typeof useRowDrag>;\n rowDrop: ReturnType<typeof useRowDrop>;\n rowGoto: ReturnType<typeof useRowGoto>;\n rowHeight: ReturnType<typeof useRowHeight>;\n rowSelection: ReturnType<typeof useRowSelection>;\n search: ReturnType<typeof useSearch>;\n }\n\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: Table3ColumnAlignment;\n // @ts-expect-error -- we ignore it because it conflicts with Table2 also overridding ColumnMeta\n className?: Table3ColumnClassNameHandler<TData>;\n // @ts-expect-error -- we ignore it because it conflicts with Table2 also overridding ColumnMeta\n control?: Table3ColumnControlRenderer<TData>;\n dataType?: Table3ColumnDataType;\n // @ts-expect-error -- we ignore it because it conflicts with Table2 also overridding ColumnMeta\n defaultWidth?: number;\n enableOrdering: boolean;\n enableSearch: boolean;\n enableTruncate: boolean;\n footer?: Table3ColumnFooterRenderer;\n header: string;\n headerClassName?: string;\n menu?: Table3ColumnHeaderMenu;\n renderer?: Table3ColumnRenderer<TValue, TData>;\n tooltip?: string;\n }\n\n interface CellContext<TData extends RowData, TValue> {\n index: number;\n tableRef: React.RefObject<HTMLDivElement>;\n }\n\n interface HeaderContext<TData extends RowData, TValue> {\n scrollToIndex: TableStrategy['scrollToIndex'];\n }\n}\n\nexport function useTable<TType = unknown>(props: Table3Props<TType>) {\n // options\n const options = useTablePreset(props);\n\n const tableOptions: Partial<RTableOptions<TType>> = {\n enableColumnFilters: options.enableFiltering,\n enableColumnResizing: options.enableColumnResizing,\n enableExpanding: options.enableRowExpansion,\n enableGlobalFilter: options.enableSearch,\n enableHiding: options.enableColumnHiding,\n enableRowSelection: options.enableRowSelection,\n enableMultiRowSelection: !options.enableRowSelectionSingle,\n enableSorting: options.enableSorting,\n };\n\n // resizing\n if (tableOptions.enableColumnResizing) {\n tableOptions.columnResizeMode = 'onChange';\n }\n\n // filtering\n if (tableOptions.enableColumnFilters) {\n if (props.onFilter) {\n tableOptions.manualFiltering = true;\n // onFilter is called as a listener to let the consumer update their data, so we don't use onColumnFiltersChange\n } else {\n tableOptions.filterFns = {\n tacoFilter: (row: RTRow<TType>, columnId: string, filter: any) => columnFilterFn(row.getValue(columnId), filter),\n };\n tableOptions.getFilteredRowModel = getFilteredRowModel();\n }\n }\n\n // search\n if (tableOptions.enableGlobalFilter) {\n if (props.onSearch) {\n tableOptions.manualFiltering = true;\n // onSearch is called as a listener to let the consumer update their data, so we don't use onColumnFiltersChange\n } else {\n tableOptions.globalFilterFn = (row: RTRow<TType>, columnId: string, searchQuery: string) =>\n globalFilterFn(row.getValue(columnId), searchQuery);\n tableOptions.getFilteredRowModel = getFilteredRowModel();\n }\n }\n\n // sorting\n if (options.enableSorting) {\n if (props.onSort) {\n tableOptions.manualSorting = true;\n // onSort is called as a listener to let the consumer update their data, so we don't use onSortingChange\n } else {\n tableOptions.getSortedRowModel = getSortedRowModel();\n }\n }\n\n // custom features\n const columnFreezing = useColumnFreezing(\n // temporarily see if deprecated frozenColumnCount is there\n props.defaultSettings?.columnFreezingIndex ??\n (props.defaultSettings as any)?.frozenColumnCount ??\n props.defaultColumnFreezingIndex,\n options\n );\n const columnOrdering = useColumnOrdering(options);\n const currentRow = useCurrentRow(props.defaultCurrentRowIndex);\n const editing = useEditing(options.enableEditing, props.onSave);\n const fontSize = useFontSize(options.enableFontSize, props.defaultSettings?.fontSize);\n const hoverState = usePauseHoverState();\n const printing = usePrinting(\n options.enablePrinting,\n props.loadAll,\n props.defaultSettings?.showWarningWhenPrintingLargeDataset\n );\n const rowClick = useRowClick<TType>(props.onRowClick);\n const rowDrag = useRowDrag(options.enableRowDrag);\n const rowDrop = useRowDrop(options.enableRowDrop, props.onRowDrop);\n const rowGoto = useRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowHeight = useRowHeight(\n options.enableRowHeight,\n // temporarily see if deprecated rowDensity is there\n props.defaultSettings?.rowHeight ?? (props.defaultSettings as any)?.rowDensity\n );\n const rowSelection = useRowSelection();\n const search = useSearch(options.enableSearch, props.defaultSettings?.excludeUnmatchedRecordsInSearch, props.loadAll);\n\n // columns\n const { columns, defaultColumnSizing, defaultColumnVisibility, defaultSorting } = useConvertChildrenToColumns<TType>(\n props,\n options,\n editing\n );\n\n // built-in features\n const initialState: Partial<TableState> = React.useMemo(() => {\n const sanitizeSortedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);\n\n return {\n columnOrder: ensureOrdering<TType>(columns, props.defaultSettings?.columnOrder),\n columnSizing: props.defaultSettings?.columnSizing ?? defaultColumnSizing,\n columnVisibility: props.defaultSettings?.columnVisibility ?? defaultColumnVisibility,\n sorting: props.defaultSettings?.sorting\n ? props.defaultSettings?.sorting.filter(sanitizeSortedColumns)\n : defaultSorting,\n };\n }, []);\n\n const table = useReactTable<TType>({\n data: props.data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n initialState,\n ...tableOptions,\n //debugAll: true,\n meta: {\n columnFreezing,\n columnOrdering,\n currentRow,\n editing,\n fontSize,\n hoverState,\n isUsingServer: !!props.loadPage,\n printing,\n rowClick: rowClick as any,\n rowDrag,\n rowDrop,\n rowGoto,\n rowHeight,\n rowSelection,\n search,\n },\n });\n\n // listeners\n useCurrentRowListener(table);\n useEditingStateListener(table);\n useFilteringStateListener(table, props.onFilter);\n useRowSelectionListener(table, props.onRowSelect);\n useSearchStateListener(table, props.onSearch);\n useSettingsStateListener(table, props.onChangeSettings);\n useShortcutsListener(table, props.shortcuts);\n useServerLoadingListener(table, props.loadPage);\n useSortingStateListener(table, props.onSort);\n\n return { table, length: props.length ?? props.data.length };\n}\n"],"names":["useTable","props","options","useTablePreset","tableOptions","enableColumnFilters","enableFiltering","enableColumnResizing","enableExpanding","enableRowExpansion","enableGlobalFilter","enableSearch","enableHiding","enableColumnHiding","enableRowSelection","enableMultiRowSelection","enableRowSelectionSingle","enableSorting","columnResizeMode","onFilter","manualFiltering","filterFns","tacoFilter","row","columnId","filter","columnFilterFn","getValue","getFilteredRowModel","onSearch","globalFilterFn","searchQuery","onSort","manualSorting","getSortedRowModel","columnFreezing","useColumnFreezing","defaultSettings","columnFreezingIndex","frozenColumnCount","defaultColumnFreezingIndex","columnOrdering","useColumnOrdering","currentRow","useCurrentRow","defaultCurrentRowIndex","editing","useEditing","enableEditing","onSave","fontSize","useFontSize","enableFontSize","hoverState","usePauseHoverState","printing","usePrinting","enablePrinting","loadAll","showWarningWhenPrintingLargeDataset","rowClick","useRowClick","onRowClick","rowDrag","useRowDrag","enableRowDrag","rowDrop","useRowDrop","enableRowDrop","onRowDrop","rowGoto","useRowGoto","enableRowGoto","onRowGoto","rowHeight","useRowHeight","enableRowHeight","rowDensity","rowSelection","useRowSelection","search","useSearch","excludeUnmatchedRecordsInSearch","columns","defaultColumnSizing","defaultColumnVisibility","defaultSorting","useConvertChildrenToColumns","initialState","React","useMemo","sanitizeSortedColumns","column","find","definedColumn","id","columnOrder","ensureOrdering","columnSizing","columnVisibility","sorting","table","useReactTable","data","getCoreRowModel","meta","isUsingServer","loadPage","useCurrentRowListener","useEditingStateListener","useFilteringStateListener","useRowSelectionListener","onRowSelect","useSearchStateListener","useSettingsStateListener","onChangeSettings","useShortcutsListener","shortcuts","useServerLoadingListener","useSortingStateListener","length"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../../../../src/components/Table3/types.ts"],"sourcesContent":["import {\n ColumnFilter as RTColumnFilter,\n ColumnOrderState,\n ColumnPinningState,\n ColumnSizingState,\n ColumnSort as RTTableColumnSort,\n SortingState,\n VisibilityState,\n BuiltInSortingFn,\n} from '@tanstack/react-table';\nimport { MenuProps } from '../Menu/Menu';\n\nexport type Table3SortDirection = 'asc' | 'desc';\nexport type Table3SortFn<TType = unknown> =\n | ((rowA: TType, rowB: TType, columnId: string) => -1 | 0 | 1)\n | BuiltInSortingFn\n | 'auto';\n\n// columns\nexport type Table3ColumnRenderer<TValue = unknown, TType = unknown> = (\n value: TValue,\n row: TType\n) => JSX.Element | string | number | null;\nexport type Table3ColumnFooterRenderer<TValue = unknown> = (values: TValue[]) => JSX.Element | string | number | null;\nexport type Table3ColumnClassNameHandler<TType = unknown> = string | ((row: TType) => string | undefined);\nexport type Table3ColumnAlignment = 'left' | 'center' | 'right';\nexport type Table3ColumnDataType = 'auto' | 'alphanumeric' | 'alphanumericCaseSensitive' | 'datetime' | 'boolean';\nexport type Table3ColumnHeaderMenu = (props: Partial<MenuProps>) => JSX.Element;\n\nexport type Table3ColumnControlProps = {\n className?: string;\n disabled?: boolean;\n invalid?: boolean;\n onBlur?: (value: any) => void;\n onFocus?: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.RefObject<HTMLElement>;\n setValue: (value: any) => void;\n value: any;\n};\nexport type Table3ColumnControlRenderer<TType = unknown> =\n | ((props: Table3ColumnControlProps, row?: TType) => JSX.Element)\n | 'datepicker'\n | 'input'\n | 'switch';\n\ntype ValueOf<T> = T[keyof T];\n\nexport type Table3ColumnProps<TType = unknown> = ValueOf<{\n [K in keyof TType]: {\n accessor: K;\n } & {\n align?: Table3ColumnAlignment;\n className?: Table3ColumnClassNameHandler<TType>;\n control?: Table3ColumnControlRenderer<TType>;\n dataType?: Table3ColumnDataType;\n defaultHidden?: boolean;\n defaultWidth?: number | 'grow';\n enableFiltering?: boolean;\n enableHiding?: boolean;\n enableOrdering?: boolean;\n enableResizing?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableTruncate?: boolean;\n footer?: Table3ColumnFooterRenderer;\n header: string;\n headerClassName?: string;\n menu?: Table3ColumnHeaderMenu;\n minWidth?: number;\n renderer?: Table3ColumnRenderer<TType[K], TType>;\n sort?: Table3SortDirection;\n sortFn?: Table3SortFn<TType>;\n tooltip?: string;\n };\n}>;\n\n// rows\nexport type DeprecatedRowDensity = 'compact' | 'normal' | 'comfortable' | 'spacious';\nexport type Table3RowHeight = 'short' | 'medium' | 'tall' | 'extra-tall';\nexport type Table3FontSize = 'small' | 'medium' | 'large';\nexport type Table3RowClickHandler<TType = unknown> = (row: TType) => void;\nexport type Table3RowDragHandler<TType = unknown> = (\n rows: TType[],\n showPlaceholder: (string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type Table3RowDropHandler<TType = any> = (event: React.DragEvent, row: TType) => void;\nexport type Table3RowExpansionRenderer<TType = unknown> = (row: TType) => (() => JSX.Element) | null;\nexport type Table3RowSelectionHandler<TType = unknown> = (rows: TType[]) => void;\nexport type Table3RowActionRenderer<TType = unknown> = (row: TType) => JSX.Element | null;\n\n// table\nexport type Table3Preset = 'display' | 'editable';\nexport type Table3Settings = {\n columnFreezingIndex?: number;\n columnOrder?: ColumnOrderState;\n columnPinning?: ColumnPinningState;\n columnSizing?: ColumnSizingState;\n columnVisibility?: VisibilityState;\n excludeUnmatchedRecordsInSearch?: boolean;\n fontSize?: Table3FontSize;\n rowHeight?: Table3RowHeight;\n sorting?: SortingState;\n};\nexport type Table3SettingsAdapter = (settings: Table3Settings) => void;\n\nexport enum Table3FilterComparator {\n Contains,\n DoesNotContain,\n IsEqualTo,\n IsNotEqualTo,\n IsGreaterThan,\n IsLessThan,\n IsBetween,\n IsOneOf,\n IsNoneOf,\n IsAllOf,\n IsEmpty,\n IsNotEmpty,\n}\n\nexport type Table3FilterValue = {\n comparator: Table3FilterComparator;\n value: any;\n};\n\nexport type Table3Filter = { id: string; value: Table3FilterValue };\n\nexport type ColumnFilter = RTColumnFilter;\nexport type Table3FilterHandler = (filters: ColumnFilter[]) => void;\nexport type Table3SearchHandler = (query: string | undefined) => Promise<void>;\nexport type Table3LoadPageHandler = (\n pageIndex: number,\n sorting: Table3ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n) => Promise<void>;\nexport type Table3LoadAllHandler = (\n sorting: Table3ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n) => Promise<void>;\nexport type Table3RowGotoHandler = (\n column: string,\n query: string,\n sorting: Table3ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n) => Promise<number>;\nexport type Table3ColumnSort = RTTableColumnSort;\nexport type Table3SortHandler = (sorting: Table3ColumnSort[]) => void;\nexport type TableStrategy = {\n renderBody: () => JSX.Element | JSX.Element[] | null;\n scrollToIndex: (index: number, options?: { align: 'start' | 'center' | 'end' | 'auto' }) => void;\n};\nexport type Table3ShortcutHandlerFn<TType = unknown> = (row: TType) => void;\nexport type Table3ShortcutHandlerObject<TType = unknown> = {\n handler: Table3ShortcutHandlerFn<TType>;\n meta?: boolean;\n shift?: boolean;\n};\nexport type Table3Shortcuts<TType = unknown> = Record<\n string,\n Table3ShortcutHandlerFn<TType> | Table3ShortcutHandlerObject<TType>\n>;\nexport type Table3SaveHandler<TType = unknown> = (data: TType) => Promise<void>;\n\nexport type Table3Options = {\n enableColumnFreezing: boolean;\n enableColumnHiding: boolean;\n enableColumnOrdering: boolean;\n enableColumnResizing: boolean;\n enableFontSize: boolean;\n enablePrinting: boolean;\n enableRowDrag: boolean;\n enableRowDrop: boolean;\n enableRowExpansion: boolean;\n enableRowGoto: boolean;\n enableRowHeight: boolean;\n enableRowSelection: boolean;\n enableRowSelectionSingle: boolean;\n enableEditing: boolean;\n enableFiltering: boolean;\n enableSearch: boolean;\n enableSorting: boolean;\n};\n\nexport type Table3CommonProps<TType = unknown> = Partial<Table3Options> & {\n actionsForRow?: Table3RowActionRenderer<TType>[];\n actionsForRowLength?: number;\n autoFocus?: boolean;\n children: (JSX.Element | boolean | null | undefined)[];\n data: TType[];\n defaultColumnFreezingIndex?: number;\n defaultCurrentRowIndex?: number;\n defaultSettings?: Table3Settings;\n emptyState?: () => JSX.Element | null;\n expandedRowRenderer?: Table3RowExpansionRenderer<TType>;\n id: string;\n onChangeSettings?: Table3SettingsAdapter;\n onRowClick?: Table3RowClickHandler<TType>;\n onRowDrag?: Table3RowDragHandler<TType>;\n onRowDrop?: Table3RowDropHandler<TType>;\n onRowGoto?: Table3RowGotoHandler;\n onRowSelect?: Table3RowSelectionHandler<TType>;\n onFilter?: Table3FilterHandler;\n onSave?: Table3SaveHandler<TType>;\n onSearch?: Table3SearchHandler;\n onSort?: Table3SortHandler;\n preset?: Table3Preset;\n shortcuts?: Table3Shortcuts<TType>;\n toolbarLeft?: JSX.Element;\n toolbarRight?: JSX.Element;\n};\n\ninterface Table3ClientProps<TType = unknown> extends Table3CommonProps<TType> {\n length?: never;\n loadPage?: never;\n loadAll?: never;\n pageSize?: never;\n}\n\ninterface Table3ServerProps<TType = unknown> extends Table3CommonProps<TType> {\n length: number | undefined;\n loadPage: Table3LoadPageHandler;\n loadAll: Table3LoadAllHandler;\n pageSize?: number;\n}\n\nexport type Table3Props<TType = unknown> = Table3ClientProps<TType> | Table3ServerProps<TType>;\n\nexport type Table3Ref = HTMLDivElement & {\n instance: {\n resetFiltering: () => void;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n toggleEditing: (enabled: boolean | undefined) => void;\n };\n};\n\nexport type Table3Texts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n menu: {\n freezeFirstColumn: string;\n freezeUptoColumn: string;\n gotoRow: string;\n hideColumn: string;\n unfreezeColumns: string;\n };\n resize: {\n tooltip: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n button: string;\n noResults: string;\n search: string;\n tooltip: string;\n };\n editing: {\n actions: {\n tooltip: string;\n save: string;\n clear: string;\n exit: string;\n };\n buttons: {\n edit: {\n text: string;\n tooltip: string;\n };\n };\n rowIndicator: {\n rowWillMove: string;\n rowWillBeHidden: string;\n rowWillMoveReasonSearch: string;\n rowWillMoveReasonFilter: string;\n rowWillMoveReasonSorting: string;\n };\n saving: {\n progress: string;\n complete: string;\n };\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isAllOf: string;\n isEmpty: string;\n isNotEmpty: string;\n };\n conditions: {\n and: string;\n where: string;\n };\n emptyFilter: {\n condition: string;\n value: string;\n };\n tooltip: string;\n total: string;\n };\n fontSize: {\n tooltip: string;\n sizes: {\n small: string;\n medium: string;\n large: string;\n };\n };\n footer: {\n summary: {\n count: string;\n records: string;\n selected: string;\n };\n };\n print: {\n error: string;\n loading: string;\n tooltip: string;\n };\n rowHeight: {\n tooltip: string;\n sizes: {\n short: string;\n medium: string;\n tall: string;\n extraTall: string;\n };\n };\n search: {\n excludeUnmatchedResults: string;\n placeholder: string;\n };\n};\n"],"names":["Table3FilterComparator"],"mappings":"IA2GYA;AAAZ,WAAYA,sBAAsB;EAC9BA,2EAAQ;EACRA,uFAAc;EACdA,6EAAS;EACTA,mFAAY;EACZA,qFAAa;EACbA,+EAAU;EACVA,6EAAS;EACTA,yEAAO;EACPA,2EAAQ;EACRA,yEAAO;EACPA,0EAAO;EACPA,gFAAU;AACd,CAAC,EAbWA,sBAAsB,KAAtBA,sBAAsB;;;;"}
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../../../src/components/Table3/types.ts"],"sourcesContent":["import {\n ColumnFilter as RTColumnFilter,\n ColumnOrderState,\n ColumnPinningState,\n ColumnSizingState,\n ColumnSort as RTTableColumnSort,\n SortingState,\n VisibilityState,\n BuiltInSortingFn,\n} from '@tanstack/react-table';\nimport { MenuProps } from '../Menu/Menu';\n\nexport type Table3SortDirection = 'asc' | 'desc';\nexport type Table3SortFn<TType = unknown> =\n | ((rowA: TType, rowB: TType, columnId: string) => -1 | 0 | 1)\n | BuiltInSortingFn\n | 'auto';\n\n// columns\nexport type Table3ColumnRenderer<TValue = unknown, TType = unknown> = (\n value: TValue,\n row: TType\n) => JSX.Element | string | number | null;\nexport type Table3ColumnFooterRenderer<TValue = unknown> = (values: TValue[]) => JSX.Element | string | number | null;\nexport type Table3ColumnClassNameHandler<TType = unknown> = string | ((row: TType) => string | undefined);\nexport type Table3ColumnAlignment = 'left' | 'center' | 'right';\nexport type Table3ColumnDataType = 'auto' | 'alphanumeric' | 'alphanumericCaseSensitive' | 'datetime' | 'boolean';\nexport type Table3ColumnHeaderMenu = (props: Partial<MenuProps>) => JSX.Element;\n\nexport type Table3ColumnControlProps = {\n className?: string;\n disabled?: boolean;\n invalid?: boolean;\n onBlur?: (value: any) => void;\n onFocus?: React.FocusEventHandler;\n readOnly?: boolean;\n ref: React.RefObject<HTMLElement>;\n setValue: (value: any) => void;\n value: any;\n};\nexport type Table3ColumnControlRenderer<TType = unknown> =\n | ((props: Table3ColumnControlProps, row?: TType) => JSX.Element)\n | 'datepicker'\n | 'input'\n | 'switch';\n\ntype ValueOf<T> = T[keyof T];\n\nexport type Table3ColumnProps<TType = unknown> = ValueOf<{\n [K in keyof TType]: {\n accessor: K;\n } & {\n align?: Table3ColumnAlignment;\n className?: Table3ColumnClassNameHandler<TType>;\n control?: Table3ColumnControlRenderer<TType>;\n dataType?: Table3ColumnDataType;\n defaultHidden?: boolean;\n defaultWidth?: number | 'grow';\n enableFiltering?: boolean;\n enableHiding?: boolean;\n enableOrdering?: boolean;\n enableResizing?: boolean;\n enableSearch?: boolean;\n enableSorting?: boolean;\n enableTruncate?: boolean;\n footer?: Table3ColumnFooterRenderer;\n header: string;\n headerClassName?: string;\n menu?: Table3ColumnHeaderMenu;\n minWidth?: number;\n renderer?: Table3ColumnRenderer<TType[K], TType>;\n sort?: Table3SortDirection;\n sortFn?: Table3SortFn<TType>;\n tooltip?: string;\n };\n}>;\n\n// rows\nexport type DeprecatedRowDensity = 'compact' | 'normal' | 'comfortable' | 'spacious';\nexport type Table3RowHeight = 'short' | 'medium' | 'tall' | 'extra-tall';\nexport type Table3FontSize = 'small' | 'medium' | 'large';\nexport type Table3RowClickHandler<TType = unknown> = (row: TType) => void;\nexport type Table3RowDragHandler<TType = unknown> = (\n rows: TType[],\n showPlaceholder: (string) => void,\n setDataTransfer: (data: string) => void\n) => void;\nexport type Table3RowDropHandler<TType = any> = (event: React.DragEvent, row: TType) => void;\nexport type Table3RowExpansionRenderer<TType = unknown> = (row: TType) => (() => JSX.Element) | null;\nexport type Table3RowSelectionHandler<TType = unknown> = (rows: TType[]) => void;\nexport type Table3RowActionRenderer<TType = unknown> = (row: TType) => JSX.Element | null;\n\n// table\nexport type Table3Preset = 'display' | 'editable';\nexport type Table3Settings = {\n columnFreezingIndex?: number;\n columnOrder?: ColumnOrderState;\n columnPinning?: ColumnPinningState;\n columnSizing?: ColumnSizingState;\n columnVisibility?: VisibilityState;\n excludeUnmatchedRecordsInSearch?: boolean;\n showWarningWhenPrintingLargeDataset?: boolean;\n fontSize?: Table3FontSize;\n rowHeight?: Table3RowHeight;\n sorting?: SortingState;\n};\nexport type Table3SettingsAdapter = (settings: Table3Settings) => void;\n\nexport enum Table3FilterComparator {\n Contains,\n DoesNotContain,\n IsEqualTo,\n IsNotEqualTo,\n IsGreaterThan,\n IsLessThan,\n IsBetween,\n IsOneOf,\n IsNoneOf,\n IsAllOf,\n IsEmpty,\n IsNotEmpty,\n}\n\nexport type Table3FilterValue = {\n comparator: Table3FilterComparator;\n value: any;\n};\n\nexport type Table3Filter = { id: string; value: Table3FilterValue };\n\nexport type ColumnFilter = RTColumnFilter;\nexport type Table3FilterHandler = (filters: ColumnFilter[]) => void;\nexport type Table3SearchHandler = (query: string | undefined) => Promise<void>;\nexport type Table3LoadPageHandler = (\n pageIndex: number,\n sorting: Table3ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n) => Promise<void>;\nexport type Table3LoadAllHandler = (\n sorting: Table3ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n) => Promise<void>;\nexport type Table3RowGotoHandler = (\n column: string,\n query: string,\n sorting: Table3ColumnSort[],\n filters: ColumnFilter[],\n search: string | undefined\n) => Promise<number>;\nexport type Table3ColumnSort = RTTableColumnSort;\nexport type Table3SortHandler = (sorting: Table3ColumnSort[]) => void;\nexport type TableStrategy = {\n renderBody: () => JSX.Element | JSX.Element[] | null;\n scrollToIndex: (index: number, options?: { align: 'start' | 'center' | 'end' | 'auto' }) => void;\n};\nexport type Table3ShortcutHandlerFn<TType = unknown> = (row: TType) => void;\nexport type Table3ShortcutHandlerObject<TType = unknown> = {\n handler: Table3ShortcutHandlerFn<TType>;\n meta?: boolean;\n shift?: boolean;\n};\nexport type Table3Shortcuts<TType = unknown> = Record<\n string,\n Table3ShortcutHandlerFn<TType> | Table3ShortcutHandlerObject<TType>\n>;\nexport type Table3SaveHandler<TType = unknown> = (data: TType) => Promise<void>;\n\nexport type Table3Options = {\n enableColumnFreezing: boolean;\n enableColumnHiding: boolean;\n enableColumnOrdering: boolean;\n enableColumnResizing: boolean;\n enableFontSize: boolean;\n enablePrinting: boolean;\n enableRowDrag: boolean;\n enableRowDrop: boolean;\n enableRowExpansion: boolean;\n enableRowGoto: boolean;\n enableRowHeight: boolean;\n enableRowSelection: boolean;\n enableRowSelectionSingle: boolean;\n enableEditing: boolean;\n enableFiltering: boolean;\n enableSearch: boolean;\n enableSorting: boolean;\n};\n\nexport type Table3CommonProps<TType = unknown> = Partial<Table3Options> & {\n actionsForRow?: Table3RowActionRenderer<TType>[];\n actionsForRowLength?: number;\n autoFocus?: boolean;\n children: (JSX.Element | boolean | null | undefined)[];\n data: TType[];\n defaultColumnFreezingIndex?: number;\n defaultCurrentRowIndex?: number;\n defaultSettings?: Table3Settings;\n emptyState?: () => JSX.Element | null;\n expandedRowRenderer?: Table3RowExpansionRenderer<TType>;\n id: string;\n onChangeSettings?: Table3SettingsAdapter;\n onRowClick?: Table3RowClickHandler<TType>;\n onRowDrag?: Table3RowDragHandler<TType>;\n onRowDrop?: Table3RowDropHandler<TType>;\n onRowGoto?: Table3RowGotoHandler;\n onRowSelect?: Table3RowSelectionHandler<TType>;\n onFilter?: Table3FilterHandler;\n onSave?: Table3SaveHandler<TType>;\n onSearch?: Table3SearchHandler;\n onSort?: Table3SortHandler;\n preset?: Table3Preset;\n shortcuts?: Table3Shortcuts<TType>;\n toolbarLeft?: JSX.Element;\n toolbarRight?: JSX.Element;\n};\n\ninterface Table3ClientProps<TType = unknown> extends Table3CommonProps<TType> {\n length?: never;\n loadPage?: never;\n loadAll?: never;\n pageSize?: never;\n}\n\ninterface Table3ServerProps<TType = unknown> extends Table3CommonProps<TType> {\n length: number | undefined;\n loadPage: Table3LoadPageHandler;\n loadAll: Table3LoadAllHandler;\n pageSize?: number;\n}\n\nexport type Table3Props<TType = unknown> = Table3ClientProps<TType> | Table3ServerProps<TType>;\n\nexport type Table3Ref = HTMLDivElement & {\n instance: {\n resetFiltering: () => void;\n resetRowExpansion: () => void;\n resetRowSelection: () => void;\n resetSorting: () => void;\n toggleEditing: (enabled: boolean | undefined) => void;\n };\n};\n\nexport type Table3Texts = {\n columns: {\n actions: {\n tooltip: string;\n };\n drag: {\n tooltip: string;\n };\n expansion: {\n collapse: string;\n collapseAll: string;\n expand: string;\n expandAll: string;\n };\n menu: {\n freezeFirstColumn: string;\n freezeUptoColumn: string;\n gotoRow: string;\n hideColumn: string;\n unfreezeColumns: string;\n };\n resize: {\n tooltip: string;\n };\n select: {\n deselect: string;\n deselectAll: string;\n select: string;\n selectAll: string;\n };\n };\n columnSettings: {\n button: string;\n noResults: string;\n search: string;\n tooltip: string;\n };\n editing: {\n actions: {\n tooltip: string;\n save: string;\n clear: string;\n exit: string;\n };\n buttons: {\n edit: {\n text: string;\n tooltip: string;\n };\n };\n rowIndicator: {\n rowWillMove: string;\n rowWillBeHidden: string;\n rowWillMoveReasonSearch: string;\n rowWillMoveReasonFilter: string;\n rowWillMoveReasonSorting: string;\n };\n saving: {\n progress: string;\n complete: string;\n };\n };\n filters: {\n button: string;\n buttons: {\n addFilter: string;\n clearFilters: string;\n };\n comparators: {\n contains: string;\n doesNotContain: string;\n isEqualTo: string;\n isNotEqualTo: string;\n isGreaterThan: string;\n isLessThan: string;\n isBetween: string;\n isOneOf: string;\n isNoneOf: string;\n isAllOf: string;\n isEmpty: string;\n isNotEmpty: string;\n };\n conditions: {\n and: string;\n where: string;\n };\n emptyFilter: {\n condition: string;\n value: string;\n };\n tooltip: string;\n total: string;\n };\n fontSize: {\n tooltip: string;\n sizes: {\n small: string;\n medium: string;\n large: string;\n };\n };\n footer: {\n summary: {\n count: string;\n records: string;\n selected: string;\n };\n };\n print: {\n error: string;\n loading: string;\n tooltip: string;\n warningDialog: {\n title: string;\n description: string;\n checkboxVisibilityLabel: string;\n cancelButtonText: string;\n printButtonText: string;\n };\n };\n rowHeight: {\n tooltip: string;\n sizes: {\n short: string;\n medium: string;\n tall: string;\n extraTall: string;\n };\n };\n search: {\n excludeUnmatchedResults: string;\n placeholder: string;\n };\n};\n"],"names":["Table3FilterComparator"],"mappings":"IA4GYA;AAAZ,WAAYA,sBAAsB;EAC9BA,2EAAQ;EACRA,uFAAc;EACdA,6EAAS;EACTA,mFAAY;EACZA,qFAAa;EACbA,+EAAU;EACVA,6EAAS;EACTA,yEAAO;EACPA,2EAAQ;EACRA,yEAAO;EACPA,0EAAO;EACPA,gFAAU;AACd,CAAC,EAbWA,sBAAsB,KAAtBA,sBAAsB;;;;"}
|
@@ -1,21 +1,21 @@
|
|
1
1
|
const WHITELISTED_ELEMENTS = ['INPUT', 'TEXTAREA', 'SELECT'];
|
2
2
|
function createShortcutKeyDownHandler(key, handler) {
|
3
3
|
return function (event) {
|
4
|
-
|
4
|
+
const keyOptions = typeof key === 'string' ? {
|
5
|
+
key,
|
6
|
+
meta: false,
|
7
|
+
shift: false
|
8
|
+
} : key;
|
5
9
|
if (event.target !== event.currentTarget && WHITELISTED_ELEMENTS.includes(event.target.tagName)) {
|
6
10
|
return;
|
7
11
|
}
|
8
|
-
if (
|
9
|
-
|
10
|
-
}
|
11
|
-
|
12
|
-
|
13
|
-
}
|
14
|
-
if (key.shift && !event.shiftKey || key.shift === false && event.shiftKey) {
|
15
|
-
return;
|
16
|
-
}
|
17
|
-
condition = event.key.toLowerCase() === key.key.toLowerCase();
|
12
|
+
if (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey) || !keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey)) {
|
13
|
+
return;
|
14
|
+
}
|
15
|
+
if (keyOptions.shift && !event.shiftKey || keyOptions.shift === false && event.shiftKey) {
|
16
|
+
return;
|
18
17
|
}
|
18
|
+
const condition = event.key.toLowerCase() === keyOptions.key.toLowerCase();
|
19
19
|
if (condition) {
|
20
20
|
var _event$stopImmediateP;
|
21
21
|
// stops react handlers bubbling up to global
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"keyboard.js","sources":["../../../../../../src/utils/keyboard.ts"],"sourcesContent":["import React from 'react';\n\nexport type KeyDownHandlerOptions = { key: string; meta?: boolean; shift?: boolean };\n\nconst WHITELISTED_ELEMENTS = ['INPUT', 'TEXTAREA', 'SELECT'];\n\nexport function createShortcutKeyDownHandler<T = Element>(\n key: string | KeyDownHandlerOptions,\n handler: (event: KeyboardEvent | React.KeyboardEvent<T>) => void\n) {\n return function (event: KeyboardEvent | React.KeyboardEvent<T>) {\n
|
1
|
+
{"version":3,"file":"keyboard.js","sources":["../../../../../../src/utils/keyboard.ts"],"sourcesContent":["import React from 'react';\n\nexport type KeyDownHandlerOptions = { key: string; meta?: boolean; shift?: boolean };\n\nconst WHITELISTED_ELEMENTS = ['INPUT', 'TEXTAREA', 'SELECT'];\n\nexport function createShortcutKeyDownHandler<T = Element>(\n key: string | KeyDownHandlerOptions,\n handler: (event: KeyboardEvent | React.KeyboardEvent<T>) => void\n) {\n return function (event: KeyboardEvent | React.KeyboardEvent<T>) {\n const keyOptions: KeyDownHandlerOptions = typeof key === 'string' ? { key, meta: false, shift: false } : key;\n\n if (event.target !== event.currentTarget && WHITELISTED_ELEMENTS.includes((event.target as HTMLElement).tagName)) {\n return;\n }\n\n if (\n (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey)) ||\n (!keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey))\n ) {\n return;\n }\n\n if ((keyOptions.shift && !event.shiftKey) || (keyOptions.shift === false && event.shiftKey)) {\n return;\n }\n\n const condition = event.key.toLowerCase() === keyOptions.key.toLowerCase();\n\n if (condition) {\n // stops react handlers bubbling up to global\n event.stopPropagation();\n // stops global handlers bubbling up to other global\n (event as KeyboardEvent).stopImmediatePropagation?.();\n handler(event);\n }\n };\n}\n\nexport const isMacOs = () => window?.navigator.userAgent.includes('Mac');\n"],"names":["WHITELISTED_ELEMENTS","createShortcutKeyDownHandler","key","handler","event","keyOptions","meta","shift","target","currentTarget","includes","tagName","isMacOs","metaKey","ctrlKey","shiftKey","condition","toLowerCase","stopPropagation","stopImmediatePropagation","window","navigator","userAgent"],"mappings":"AAIA,MAAMA,oBAAoB,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;SAE5CC,4BAA4B,CACxCC,GAAmC,EACnCC,OAAgE;EAEhE,OAAO,UAAUC,KAA6C;IAC1D,MAAMC,UAAU,GAA0B,OAAOH,GAAG,KAAK,QAAQ,GAAG;MAAEA,GAAG;MAAEI,IAAI,EAAE,KAAK;MAAEC,KAAK,EAAE;KAAO,GAAGL,GAAG;IAE5G,IAAIE,KAAK,CAACI,MAAM,KAAKJ,KAAK,CAACK,aAAa,IAAIT,oBAAoB,CAACU,QAAQ,CAAEN,KAAK,CAACI,MAAsB,CAACG,OAAO,CAAC,EAAE;MAC9G;;IAGJ,IACKN,UAAU,CAACC,IAAI,KAAKM,OAAO,EAAE,GAAG,CAACR,KAAK,CAACS,OAAO,GAAG,CAACT,KAAK,CAACU,OAAO,CAAC,IAChE,CAACT,UAAU,CAACC,IAAI,KAAKM,OAAO,EAAE,GAAGR,KAAK,CAACS,OAAO,GAAGT,KAAK,CAACU,OAAO,CAAE,EACnE;MACE;;IAGJ,IAAKT,UAAU,CAACE,KAAK,IAAI,CAACH,KAAK,CAACW,QAAQ,IAAMV,UAAU,CAACE,KAAK,KAAK,KAAK,IAAIH,KAAK,CAACW,QAAS,EAAE;MACzF;;IAGJ,MAAMC,SAAS,GAAGZ,KAAK,CAACF,GAAG,CAACe,WAAW,EAAE,KAAKZ,UAAU,CAACH,GAAG,CAACe,WAAW,EAAE;IAE1E,IAAID,SAAS,EAAE;MAAA;;MAEXZ,KAAK,CAACc,eAAe,EAAE;;MAEtB,yBAAAd,KAAuB,CAACe,wBAAwB,0DAAhD,2BAAAf,KAAuB,CAA6B;MACrDD,OAAO,CAACC,KAAK,CAAC;;GAErB;AACL;MAEaQ,OAAO,GAAG;EAAA;EAAA,kBAAMQ,MAAM,4CAAN,QAAQC,SAAS,CAACC,SAAS,CAACZ,QAAQ,CAAC,KAAK,CAAC;AAAA;;;;"}
|
@@ -3710,21 +3710,21 @@ const useMergedRef = ref => {
|
|
3710
3710
|
const WHITELISTED_ELEMENTS = ['INPUT', 'TEXTAREA', 'SELECT'];
|
3711
3711
|
function createShortcutKeyDownHandler(key, handler) {
|
3712
3712
|
return function (event) {
|
3713
|
-
|
3713
|
+
const keyOptions = typeof key === 'string' ? {
|
3714
|
+
key,
|
3715
|
+
meta: false,
|
3716
|
+
shift: false
|
3717
|
+
} : key;
|
3714
3718
|
if (event.target !== event.currentTarget && WHITELISTED_ELEMENTS.includes(event.target.tagName)) {
|
3715
3719
|
return;
|
3716
3720
|
}
|
3717
|
-
if (
|
3718
|
-
|
3719
|
-
} else {
|
3720
|
-
if (key.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey) || !key.meta && (isMacOs() ? event.metaKey : event.ctrlKey)) {
|
3721
|
-
return;
|
3722
|
-
}
|
3723
|
-
if (key.shift && !event.shiftKey || key.shift === false && event.shiftKey) {
|
3724
|
-
return;
|
3725
|
-
}
|
3726
|
-
condition = event.key.toLowerCase() === key.key.toLowerCase();
|
3721
|
+
if (keyOptions.meta && (isMacOs() ? !event.metaKey : !event.ctrlKey) || !keyOptions.meta && (isMacOs() ? event.metaKey : event.ctrlKey)) {
|
3722
|
+
return;
|
3727
3723
|
}
|
3724
|
+
if (keyOptions.shift && !event.shiftKey || keyOptions.shift === false && event.shiftKey) {
|
3725
|
+
return;
|
3726
|
+
}
|
3727
|
+
const condition = event.key.toLowerCase() === keyOptions.key.toLowerCase();
|
3728
3728
|
if (condition) {
|
3729
3729
|
var _event$stopImmediateP;
|
3730
3730
|
// stops react handlers bubbling up to global
|
@@ -4210,7 +4210,14 @@ const defaultLocalisationTexts = {
|
|
4210
4210
|
print: {
|
4211
4211
|
error: 'An error occurred while creating a print preview',
|
4212
4212
|
loading: 'Creating a print preview',
|
4213
|
-
tooltip: 'Print'
|
4213
|
+
tooltip: 'Print',
|
4214
|
+
warningDialog: {
|
4215
|
+
title: 'Extra loading time',
|
4216
|
+
description: 'Please note that printing a large amount of data may result in a slightly longer waiting time due to data loading.',
|
4217
|
+
checkboxVisibilityLabel: "Don't show again",
|
4218
|
+
cancelButtonText: 'Cancel',
|
4219
|
+
printButtonText: 'Print'
|
4220
|
+
}
|
4214
4221
|
},
|
4215
4222
|
rowHeight: {
|
4216
4223
|
tooltip: 'Row height',
|
@@ -16564,12 +16571,13 @@ function useSettingsStateListener$1(table, onChangeSettings) {
|
|
16564
16571
|
columnVisibility: state.columnVisibility,
|
16565
16572
|
excludeUnmatchedRecordsInSearch: meta.search.excludeUnmatchedResults,
|
16566
16573
|
fontSize: meta.fontSize.size,
|
16574
|
+
showWarningWhenPrintingLargeDataset: meta.printing.printWarningDialogVisibility,
|
16567
16575
|
rowHeight: meta.rowHeight.height,
|
16568
16576
|
sorting: state.sorting
|
16569
16577
|
}), 250);
|
16570
16578
|
}
|
16571
16579
|
return () => clearTimeout(handler);
|
16572
|
-
}, [onChangeSettings, meta.columnFreezing.frozenColumnIndex, state.columnOrder, state.columnPinning, state.columnSizing, state.columnVisibility, meta.search.excludeUnmatchedResults, meta.fontSize.size, meta.rowHeight.height, state.sorting]);
|
16580
|
+
}, [onChangeSettings, meta.columnFreezing.frozenColumnIndex, state.columnOrder, state.columnPinning, state.columnSizing, state.columnVisibility, meta.search.excludeUnmatchedResults, meta.fontSize.size, meta.rowHeight.height, meta.printing.printWarningDialogVisibility, state.sorting]);
|
16573
16581
|
}
|
16574
16582
|
|
16575
16583
|
var Table3FilterComparator;
|
@@ -18012,10 +18020,13 @@ function useConvertChildrenToColumns(props, options, editing) {
|
|
18012
18020
|
};
|
18013
18021
|
}
|
18014
18022
|
|
18015
|
-
function usePrinting(isEnabled, loadAll) {
|
18023
|
+
function usePrinting(isEnabled, loadAll, showWarningWhenPrintingLargeDataset = true) {
|
18024
|
+
const [printWarningDialogVisibility, setPrintWarningDialogVisibility] = React__default.useState(showWarningWhenPrintingLargeDataset);
|
18016
18025
|
return {
|
18017
18026
|
isEnabled,
|
18018
|
-
loadAll
|
18027
|
+
loadAll,
|
18028
|
+
printWarningDialogVisibility,
|
18029
|
+
setPrintWarningDialogVisibility: isEnabled ? setPrintWarningDialogVisibility : () => undefined
|
18019
18030
|
};
|
18020
18031
|
}
|
18021
18032
|
|
@@ -18126,7 +18137,7 @@ function useSearch(isEnabled, excludeUnmatchedResultsInSearch = false, loadAll)
|
|
18126
18137
|
}
|
18127
18138
|
|
18128
18139
|
function useTable$2(props) {
|
18129
|
-
var _ref, _props$defaultSetting, _props$defaultSetting2, _props$defaultSetting3, _props$defaultSetting4, _props$defaultSetting5, _props$defaultSetting6, _props$defaultSetting7, _props$defaultSetting8, _props$length;
|
18140
|
+
var _ref, _props$defaultSetting, _props$defaultSetting2, _props$defaultSetting3, _props$defaultSetting4, _props$defaultSetting5, _props$defaultSetting6, _props$defaultSetting7, _props$defaultSetting8, _props$defaultSetting9, _props$length;
|
18130
18141
|
// options
|
18131
18142
|
const options = useTablePreset(props);
|
18132
18143
|
const tableOptions = {
|
@@ -18182,15 +18193,15 @@ function useTable$2(props) {
|
|
18182
18193
|
const editing = useEditing(options.enableEditing, props.onSave);
|
18183
18194
|
const fontSize = useFontSize(options.enableFontSize, (_props$defaultSetting4 = props.defaultSettings) === null || _props$defaultSetting4 === void 0 ? void 0 : _props$defaultSetting4.fontSize);
|
18184
18195
|
const hoverState = usePauseHoverState();
|
18185
|
-
const printing = usePrinting(options.enablePrinting, props.loadAll);
|
18196
|
+
const printing = usePrinting(options.enablePrinting, props.loadAll, (_props$defaultSetting5 = props.defaultSettings) === null || _props$defaultSetting5 === void 0 ? void 0 : _props$defaultSetting5.showWarningWhenPrintingLargeDataset);
|
18186
18197
|
const rowClick = useRowClick(props.onRowClick);
|
18187
18198
|
const rowDrag = useRowDrag(options.enableRowDrag);
|
18188
18199
|
const rowDrop = useRowDrop(options.enableRowDrop, props.onRowDrop);
|
18189
18200
|
const rowGoto = useRowGoto(options.enableRowGoto, props.onRowGoto);
|
18190
18201
|
const rowHeight = useRowHeight(options.enableRowHeight, // temporarily see if deprecated rowDensity is there
|
18191
|
-
(_props$
|
18202
|
+
(_props$defaultSetting6 = (_props$defaultSetting7 = props.defaultSettings) === null || _props$defaultSetting7 === void 0 ? void 0 : _props$defaultSetting7.rowHeight) !== null && _props$defaultSetting6 !== void 0 ? _props$defaultSetting6 : (_props$defaultSetting8 = props.defaultSettings) === null || _props$defaultSetting8 === void 0 ? void 0 : _props$defaultSetting8.rowDensity);
|
18192
18203
|
const rowSelection = useRowSelection();
|
18193
|
-
const search = useSearch(options.enableSearch, (_props$
|
18204
|
+
const search = useSearch(options.enableSearch, (_props$defaultSetting9 = props.defaultSettings) === null || _props$defaultSetting9 === void 0 ? void 0 : _props$defaultSetting9.excludeUnmatchedRecordsInSearch, props.loadAll);
|
18194
18205
|
// columns
|
18195
18206
|
const {
|
18196
18207
|
columns,
|
@@ -18200,13 +18211,13 @@ function useTable$2(props) {
|
|
18200
18211
|
} = useConvertChildrenToColumns(props, options, editing);
|
18201
18212
|
// built-in features
|
18202
18213
|
const initialState = React__default.useMemo(() => {
|
18203
|
-
var _props$
|
18214
|
+
var _props$defaultSetting10, _props$defaultSetting11, _props$defaultSetting12, _props$defaultSetting13, _props$defaultSetting14, _props$defaultSetting15, _props$defaultSetting16;
|
18204
18215
|
const sanitizeSortedColumns = column => columns.find(definedColumn => definedColumn.id === column.id);
|
18205
18216
|
return {
|
18206
|
-
columnOrder: ensureOrdering$1(columns, (_props$
|
18207
|
-
columnSizing: (_props$
|
18208
|
-
columnVisibility: (_props$
|
18209
|
-
sorting: (_props$
|
18217
|
+
columnOrder: ensureOrdering$1(columns, (_props$defaultSetting10 = props.defaultSettings) === null || _props$defaultSetting10 === void 0 ? void 0 : _props$defaultSetting10.columnOrder),
|
18218
|
+
columnSizing: (_props$defaultSetting11 = (_props$defaultSetting12 = props.defaultSettings) === null || _props$defaultSetting12 === void 0 ? void 0 : _props$defaultSetting12.columnSizing) !== null && _props$defaultSetting11 !== void 0 ? _props$defaultSetting11 : defaultColumnSizing,
|
18219
|
+
columnVisibility: (_props$defaultSetting13 = (_props$defaultSetting14 = props.defaultSettings) === null || _props$defaultSetting14 === void 0 ? void 0 : _props$defaultSetting14.columnVisibility) !== null && _props$defaultSetting13 !== void 0 ? _props$defaultSetting13 : defaultColumnVisibility,
|
18220
|
+
sorting: (_props$defaultSetting15 = props.defaultSettings) !== null && _props$defaultSetting15 !== void 0 && _props$defaultSetting15.sorting ? (_props$defaultSetting16 = props.defaultSettings) === null || _props$defaultSetting16 === void 0 ? void 0 : _props$defaultSetting16.sorting.filter(sanitizeSortedColumns) : defaultSorting
|
18210
18221
|
};
|
18211
18222
|
}, []);
|
18212
18223
|
const table = reactTable$1.useReactTable({
|
@@ -19375,7 +19386,7 @@ const PRINT_STYLES = `
|
|
19375
19386
|
}
|
19376
19387
|
|
19377
19388
|
@media print {
|
19378
|
-
|
19389
|
+
html, body, #root {
|
19379
19390
|
overflow: auto !important;
|
19380
19391
|
height: auto !important;
|
19381
19392
|
width: auto !important;
|
@@ -19394,7 +19405,7 @@ const PRINT_STYLES = `
|
|
19394
19405
|
* Summary row cells
|
19395
19406
|
*/
|
19396
19407
|
[role="table"] [role="rowgroup"]:last-child [role="cell"] {
|
19397
|
-
border-
|
19408
|
+
border-width: 0 !important;
|
19398
19409
|
}
|
19399
19410
|
|
19400
19411
|
[role="table"] a {
|
@@ -19594,6 +19605,53 @@ function PrintIFrame({
|
|
19594
19605
|
}, mountNode && stylesReady ? /*#__PURE__*/ReactDOM.createPortal( /*#__PURE__*/React__default.createElement(Table3, Object.assign({}, printTableProps)), mountNode) : null);
|
19595
19606
|
}
|
19596
19607
|
|
19608
|
+
const WarningDialog = ({
|
19609
|
+
onAccept,
|
19610
|
+
onClose,
|
19611
|
+
onVisibilityChange,
|
19612
|
+
...props
|
19613
|
+
}) => {
|
19614
|
+
const [hideWarningDialog, setHideWarningDialog] = React__default.useState(false);
|
19615
|
+
const {
|
19616
|
+
texts
|
19617
|
+
} = useLocalization();
|
19618
|
+
const handleClose = () => {
|
19619
|
+
onClose();
|
19620
|
+
// Change visibility state when the dialog is closing
|
19621
|
+
onVisibilityChange === null || onVisibilityChange === void 0 ? void 0 : onVisibilityChange(!hideWarningDialog);
|
19622
|
+
};
|
19623
|
+
return /*#__PURE__*/React__default.createElement(Dialog, Object.assign({}, props, {
|
19624
|
+
closeOnEscape: true,
|
19625
|
+
onClose: handleClose,
|
19626
|
+
showCloseButton: false,
|
19627
|
+
size: "xs"
|
19628
|
+
}), /*#__PURE__*/React__default.createElement(Dialog.Content, {
|
19629
|
+
"aria-label": texts.table3.print.warningDialog.title
|
19630
|
+
}, /*#__PURE__*/React__default.createElement(Dialog.Title, {
|
19631
|
+
className: "text-center"
|
19632
|
+
}, /*#__PURE__*/React__default.createElement(BadgeIcon, {
|
19633
|
+
icon: "warning",
|
19634
|
+
color: "yellow",
|
19635
|
+
className: "mr-2"
|
19636
|
+
}), texts.table3.print.warningDialog.title), /*#__PURE__*/React__default.createElement("p", null, texts.table3.print.warningDialog.description), /*#__PURE__*/React__default.createElement(Dialog.Footer, {
|
19637
|
+
className: "flex items-center justify-between"
|
19638
|
+
}, /*#__PURE__*/React__default.createElement(Checkbox, {
|
19639
|
+
label: texts.table3.print.warningDialog.checkboxVisibilityLabel,
|
19640
|
+
checked: hideWarningDialog,
|
19641
|
+
onChange: setHideWarningDialog
|
19642
|
+
}), /*#__PURE__*/React__default.createElement(Group, null, /*#__PURE__*/React__default.createElement(Button$1, {
|
19643
|
+
onClick: handleClose
|
19644
|
+
}, texts.table3.print.warningDialog.cancelButtonText), /*#__PURE__*/React__default.createElement(Button$1, {
|
19645
|
+
appearance: "primary",
|
19646
|
+
autoFocus: true,
|
19647
|
+
onClick: () => {
|
19648
|
+
handleClose();
|
19649
|
+
onAccept();
|
19650
|
+
}
|
19651
|
+
}, texts.table3.print.warningDialog.printButtonText)))));
|
19652
|
+
};
|
19653
|
+
|
19654
|
+
const SAFE_PRINT_CELL_COUNT = 10000;
|
19597
19655
|
function PrintButton(props) {
|
19598
19656
|
const {
|
19599
19657
|
table,
|
@@ -19604,10 +19662,14 @@ function PrintButton(props) {
|
|
19604
19662
|
} = useLocalization();
|
19605
19663
|
const toast = useToast();
|
19606
19664
|
const [isPrinting, setIsPrinting] = React__default.useState(false);
|
19665
|
+
const [showWarningDialog, setShowWarningDialog] = React__default.useState(false);
|
19607
19666
|
const loadingToastRef = React__default.useRef(null);
|
19608
19667
|
const buttonRef = React__default.useRef(null);
|
19609
19668
|
const tableMeta = table.options.meta;
|
19610
19669
|
const state = table.getState();
|
19670
|
+
const {
|
19671
|
+
printWarningDialogVisibility
|
19672
|
+
} = tableMeta.printing;
|
19611
19673
|
const settings = React__default.useMemo(() => ({
|
19612
19674
|
columnFilters: state.columnFilters,
|
19613
19675
|
columnOrder: state.columnOrder,
|
@@ -19620,7 +19682,6 @@ function PrintButton(props) {
|
|
19620
19682
|
}), [state.columnFilters, state.columnOrder, state.columnPinning, state.columnSizing, state.columnVisibility, state.sorting, tableMeta.rowHeight.height, tableMeta.columnFreezing.frozenColumnIndex]);
|
19621
19683
|
const iframeTableProps = {
|
19622
19684
|
...tableProps,
|
19623
|
-
data: tableProps.data,
|
19624
19685
|
defaultSettings: settings
|
19625
19686
|
};
|
19626
19687
|
useGlobalKeyDown({
|
@@ -19644,31 +19705,63 @@ function PrintButton(props) {
|
|
19644
19705
|
};
|
19645
19706
|
const handlePrint = function () {
|
19646
19707
|
try {
|
19708
|
+
let _exit = false;
|
19709
|
+
function _temp3(_result2) {
|
19710
|
+
if (_exit) return _result2;
|
19711
|
+
if (hasNonSafeCellCount && printWarningDialogVisibility) {
|
19712
|
+
setShowWarningDialog(true);
|
19713
|
+
} else {
|
19714
|
+
// only set printing (mount the iframe) when the data has loaded, it prevents repaint performance slow downs
|
19715
|
+
setIsPrinting(true);
|
19716
|
+
}
|
19717
|
+
}
|
19647
19718
|
loadingToastRef.current = toast.loading(texts.table3.print.loading);
|
19719
|
+
const getCellCount = data => data.length ? data.length * Object.keys(data[0]).length : 0;
|
19720
|
+
let hasNonSafeCellCount = false;
|
19648
19721
|
// if loadAll is not defined, just print with what we've got
|
19649
19722
|
// don't compare length to data.length because the api might be choosing not to return all for performance
|
19650
|
-
|
19723
|
+
const _temp2 = function () {
|
19651
19724
|
if (!tableMeta.printing.loadAll) {
|
19652
|
-
|
19725
|
+
const {
|
19726
|
+
data
|
19727
|
+
} = tableProps;
|
19728
|
+
const cellCount = getCellCount(data);
|
19729
|
+
hasNonSafeCellCount = cellCount > SAFE_PRINT_CELL_COUNT;
|
19653
19730
|
} else {
|
19654
19731
|
const _temp = _catch(function () {
|
19655
19732
|
return Promise.resolve(tableMeta.printing.loadAll(table.getState().sorting, table.getState().columnFilters, tableMeta.search.query)).then(function () {
|
19656
|
-
//
|
19657
|
-
|
19733
|
+
// After the loadAll call above, the data changes. Hence, it becomes essential to acquire the data after
|
19734
|
+
// this call rather than before it.
|
19735
|
+
const {
|
19736
|
+
data
|
19737
|
+
} = tableProps;
|
19738
|
+
const cellCount = getCellCount(data);
|
19739
|
+
hasNonSafeCellCount = cellCount > SAFE_PRINT_CELL_COUNT;
|
19658
19740
|
});
|
19659
19741
|
}, function (error) {
|
19660
19742
|
var _loadingToastRef$curr3;
|
19661
19743
|
const errorMessage = `${texts.table3.print.error}: ${error}`;
|
19662
19744
|
console.error(errorMessage);
|
19663
19745
|
(_loadingToastRef$curr3 = loadingToastRef.current) === null || _loadingToastRef$curr3 === void 0 ? void 0 : _loadingToastRef$curr3.error(errorMessage);
|
19746
|
+
// in case of error, we return early
|
19747
|
+
_exit = true;
|
19664
19748
|
});
|
19665
19749
|
if (_temp && _temp.then) return _temp.then(function () {});
|
19666
19750
|
}
|
19667
|
-
}()
|
19751
|
+
}();
|
19752
|
+
return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(_temp3) : _temp3(_temp2));
|
19668
19753
|
} catch (e) {
|
19669
19754
|
return Promise.reject(e);
|
19670
19755
|
}
|
19671
19756
|
};
|
19757
|
+
const handleWarningDialogAccept = () => {
|
19758
|
+
setIsPrinting(true);
|
19759
|
+
};
|
19760
|
+
const handleWarningDialogClose = () => {
|
19761
|
+
var _loadingToastRef$curr4;
|
19762
|
+
(_loadingToastRef$curr4 = loadingToastRef.current) === null || _loadingToastRef$curr4 === void 0 ? void 0 : _loadingToastRef$curr4.close();
|
19763
|
+
setShowWarningDialog(false);
|
19764
|
+
};
|
19672
19765
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(IconButton, {
|
19673
19766
|
disabled: isPrinting,
|
19674
19767
|
icon: "print",
|
@@ -19680,6 +19773,11 @@ function PrintButton(props) {
|
|
19680
19773
|
onAfterPrint: handleAfterPrint,
|
19681
19774
|
onBeforePrint: handleBeforePrint,
|
19682
19775
|
tableProps: iframeTableProps
|
19776
|
+
}), /*#__PURE__*/React__default.createElement(WarningDialog, {
|
19777
|
+
open: showWarningDialog,
|
19778
|
+
onAccept: handleWarningDialogAccept,
|
19779
|
+
onClose: handleWarningDialogClose,
|
19780
|
+
onVisibilityChange: tableMeta.printing.setPrintWarningDialogVisibility
|
19683
19781
|
}));
|
19684
19782
|
}
|
19685
19783
|
|